| 1 | REM Sapphire options macro library -- © 1995 Straylight |
| 2 | |
| 3 | DEF FNoptions_test=0 |
| 4 | |
| 5 | DEF FNoption(o%,t%,n$) |
| 6 | IF FNalign |
| 7 | opt__l=opt__l |
| 8 | IF opt__l THEN !(opt__l+O%-P%+4)=P%-opt__l |
| 9 | [ opt 4 |
| 10 | .opt__l |
| 11 | dcd 0 |
| 12 | dcd 0 |
| 13 | dcd o% |
| 14 | dcd t% |
| 15 | equs n$+CHR$(0) |
| 16 | FNalign |
| 17 | ] |
| 18 | =0 |
| 19 | |
| 20 | DEF FNopt__f(f%) |
| 21 | !(opt__l+O%-P%)=!(opt__l+O%-P%) OR f% |
| 22 | =0 |
| 23 | |
| 24 | DEF FNoptions_end |
| 25 | [ opt 4 |
| 26 | FNopt__f(optFlag_last) |
| 27 | FNalign |
| 28 | ] |
| 29 | !(opt__l+O%-P%+4)=P%-opt__l |
| 30 | =0 |
| 31 | |
| 32 | DEF FNoptions_string(o%,n$,s%) |
| 33 | [ opt 4 |
| 34 | FNoption(o%,optType_string,n$) |
| 35 | dcd s% |
| 36 | ] |
| 37 | =0 |
| 38 | |
| 39 | DEF FNoptions_integer(o%,n$,b%) |
| 40 | IF FNoption(o%,optType_integer,n$) |
| 41 | IF b% THEN [opt 4:dcd b%:] |
| 42 | =0 |
| 43 | |
| 44 | DEF FNoptions_literal |
| 45 | IF FNoption(0,optType_literal,"") |
| 46 | IF FNopt__f(optFlag_ignore) |
| 47 | =0 |
| 48 | |
| 49 | DEF FNoptions_enum(o%,n$)=FNoption(o%,optType_enum,n$) |
| 50 | |
| 51 | DEF FNoptions_bool(o%,n$,f%) |
| 52 | [ opt 4 |
| 53 | FNoption(o%,optType_bool,n$) |
| 54 | dcd f% |
| 55 | ] |
| 56 | =0 |
| 57 | |
| 58 | DEF FNoptions_version(o%,n$)=FNoption(o%,optType_version,n$) |