| 1823 | } |
| 1824 | |
| 1825 | void fx_serializeQuery(txMachine* the) |
| 1826 | { |
| 1827 | txSlot* pairs; |
| 1828 | txSlot* pair; |
| 1829 | txSlot* result; |
| 1830 | |
| 1831 | txInteger length, index; |
| 1832 | fxVars(the, 3); |
| 1833 | pairs = mxVarv(0); |
| 1834 | pair = mxVarv(1); |
| 1835 | result = mxVarv(2); |
| 1836 | |
| 1837 | mxPushSlot(mxArgv(0)); |
| 1838 | mxPullSlot(pairs); |
| 1839 | |
| 1840 | mxPush(mxEmptyString); |
| 1841 | mxPullSlot(result); |
| 1842 | |
| 1843 | mxPushSlot(pairs); |
| 1844 | mxGetID(mxID(_length)); |
| 1845 | length = (txIndex)fxToLength(the, the->stack); |
| 1846 | mxPop(); |
| 1847 | |
| 1848 | index = 0; |
| 1849 | while (index < length) { |
| 1850 | if (index > 0) |
| 1851 | fxConcatStringC(the, result, "&"); |
| 1852 | mxPushSlot(pairs); |
| 1853 | mxGetIndex(index); |
| 1854 | mxPullSlot(pair); |
| 1855 | |
| 1856 | mxPushSlot(pair); |
| 1857 | mxGetID(mxID(_name)); |
| 1858 | mxPullSlot(mxArgv(0)); |
| 1859 | fx_serializeQueryPlus(the, (txString)gxFormSet); |
| 1860 | fxConcatString(the, result, mxResult); |
| 1861 | |
| 1862 | fxConcatStringC(the, result, "="); |
| 1863 | |
| 1864 | mxPushSlot(pair); |
| 1865 | mxGetID(mxID(_value)); |
| 1866 | mxPullSlot(mxArgv(0)); |
| 1867 | fx_serializeQueryPlus(the, (txString)gxFormSet); |
| 1868 | fxConcatString(the, result, mxResult); |
| 1869 | index++; |
| 1870 | } |
| 1871 | |
| 1872 | *mxResult = *result; |
| 1873 | } |
| 1874 | |
| 1875 | void fx_serializeQueryPlus(txMachine* the, txString theSet) |
| 1876 | { |
nothing calls this directly
no test coverage detected