| 266 | } |
| 267 | |
| 268 | void fxPushKeyString(txMachine* the, txID theID, txBoolean* adorn) |
| 269 | { |
| 270 | txSlot* key = fxGetKey(the, theID); |
| 271 | txKind kind = key->kind; |
| 272 | if (adorn) |
| 273 | *adorn = (key->flag & XS_DONT_ENUM_FLAG) ? 0 : 1; |
| 274 | if (kind == XS_KEY_KIND) |
| 275 | mxPushString(key->value.key.string); |
| 276 | else if (kind == XS_KEY_X_KIND) |
| 277 | mxPushStringX(key->value.key.string); |
| 278 | else { |
| 279 | mxCheck(the, key->kind == XS_REFERENCE_KIND); |
| 280 | key = key->value.reference->next->next; |
| 281 | if (key->kind == XS_UNDEFINED_KIND) { |
| 282 | *adorn = 0; |
| 283 | mxPush(mxEmptyString); |
| 284 | } |
| 285 | else |
| 286 | mxPushSlot(key); |
| 287 | } |
| 288 | } |
| 289 | |
| 290 | txID fxFindName(txMachine* the, txString theString) |
| 291 | { |
no test coverage detected