diff options
author | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-07-02 17:50:51 +0000 |
---|---|---|
committer | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-07-02 17:50:51 +0000 |
commit | be26a1ce93e3ed24e57d2e0916f09252536994cb (patch) | |
tree | 296f7fa9ab3e5072158d50ac151d04120ba19d56 /flags.c | |
parent | 2bfb79be604c68b7684b515f3be3388fecfcf1f4 (diff) |
Begin work on set_prolog_flag/2 and current_prolog_flag/2
Diffstat (limited to 'flags.c')
-rw-r--r-- | flags.c | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -4,8 +4,36 @@ #include "dat.h" #include "fns.h" +Term *setdoublequotes(Term *); + void initflags(void) { flagdoublequotes = DoubleQuotesChars; +} + +Term * +setflag(Rune *flag, Term *value) +{ + if(runestrcmp(flag, L"double_quotes") == 0) + return setdoublequotes(value); + else + return permissionerror(L"modify", L"flag", mkatom(flag)); +} + +Term * +setdoublequotes(Term *value) +{ + if(value->tag != AtomTerm) + return typeerror(L"atom", value); + + if(runestrcmp(value->text, L"chars") == 0) + flagdoublequotes = DoubleQuotesChars; + else if(runestrcmp(value->text, L"codes") == 0) + flagdoublequotes = DoubleQuotesCodes; + else if(runestrcmp(value->text, L"atom") == 0) + flagdoublequotes = DoubleQuotesAtom; + else + return domainerror(L"flag_value", value); + return nil; }
\ No newline at end of file |