From be26a1ce93e3ed24e57d2e0916f09252536994cb Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Fri, 2 Jul 2021 17:50:51 +0000 Subject: Begin work on set_prolog_flag/2 and current_prolog_flag/2 --- flags.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'flags.c') diff --git a/flags.c b/flags.c index 8a75135..6abd3b8 100644 --- a/flags.c +++ b/flags.c @@ -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 -- cgit v1.2.3