X-Git-Url: https://git.distorted.org.uk/~mdw/ssr/blobdiff_plain/a3da4c116d4216fdec125d687dfc347e343a8b28..c1b567d833a004bb3d978f1f7c99f42cefa7845c:/StraySrc/Libraries/Sapphire/bsh/options.bas diff --git a/StraySrc/Libraries/Sapphire/bsh/options.bas b/StraySrc/Libraries/Sapphire/bsh/options.bas new file mode 100644 index 0000000..889559e --- /dev/null +++ b/StraySrc/Libraries/Sapphire/bsh/options.bas @@ -0,0 +1,58 @@ +REM Sapphire options macro library -- © 1995 Straylight + +DEF FNoptions_test=0 + +DEF FNoption(o%,t%,n$) +IF FNalign +opt__l=opt__l +IF opt__l THEN !(opt__l+O%-P%+4)=P%-opt__l +[ opt 4 +.opt__l + dcd 0 + dcd 0 + dcd o% + dcd t% + equs n$+CHR$(0) + FNalign +] +=0 + +DEF FNopt__f(f%) +!(opt__l+O%-P%)=!(opt__l+O%-P%) OR f% +=0 + +DEF FNoptions_end +[ opt 4 + FNopt__f(optFlag_last) + FNalign +] +!(opt__l+O%-P%+4)=P%-opt__l +=0 + +DEF FNoptions_string(o%,n$,s%) +[ opt 4 + FNoption(o%,optType_string,n$) + dcd s% +] +=0 + +DEF FNoptions_integer(o%,n$,b%) +IF FNoption(o%,optType_integer,n$) +IF b% THEN [opt 4:dcd b%:] +=0 + +DEF FNoptions_literal +IF FNoption(0,optType_literal,"") +IF FNopt__f(optFlag_ignore) +=0 + +DEF FNoptions_enum(o%,n$)=FNoption(o%,optType_enum,n$) + +DEF FNoptions_bool(o%,n$,f%) +[ opt 4 + FNoption(o%,optType_bool,n$) + dcd f% +] +=0 + +DEF FNoptions_version(o%,n$)=FNoption(o%,optType_version,n$)