summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2013-06-01 14:57:49 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2013-06-01 14:57:49 +0100
commit0bb08cc5d2a2c66b77c3ec19db244c57a270a009 (patch)
treec15a104baec8a08b9836d75f0564cd62bd420f4f /utils
parent8b586b2d67dad1f7d874091664ab582936e15dc4 (diff)
downloadnetsurf-0bb08cc5d2a2c66b77c3ec19db244c57a270a009.tar.gz
netsurf-0bb08cc5d2a2c66b77c3ec19db244c57a270a009.tar.bz2
Macros for setting default options and updating user options if they are "as default"
Diffstat (limited to 'utils')
-rw-r--r--utils/nsoption.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/utils/nsoption.h b/utils/nsoption.h
index 868e077bd..b6ab860b1 100644
--- a/utils/nsoption.h
+++ b/utils/nsoption.h
@@ -270,5 +270,20 @@ int nsoption_snoptionf(char *string, size_t size, enum nsoption_e option, const
} \
} while (0)
+/* accessors for default options - user option is updated if it is set as per default */
+#define nsoption_default_set_bool(OPTION, VALUE) \
+ if (nsoptions_default[NSOPTION_##OPTION].value.b == nsoptions[NSOPTION_##OPTION].value.b) \
+ nsoptions[NSOPTION_##OPTION].value.b = VALUE; \
+ nsoptions_default[NSOPTION_##OPTION].value.b = VALUE
+
+#define nsoption_default_set_int(OPTION, VALUE) \
+ if (nsoptions_default[NSOPTION_##OPTION].value.i == nsoptions[NSOPTION_##OPTION].value.i) \
+ nsoptions[NSOPTION_##OPTION].value.i = VALUE; \
+ nsoptions_default[NSOPTION_##OPTION].value.i = VALUE
+
+#define nsoption_default_set_colour(OPTION, VALUE) \
+ if (nsoptions_default[NSOPTION_##OPTION].value.c == nsoptions[NSOPTION_##OPTION].value.c) \
+ nsoptions[NSOPTION_##OPTION].value.c = VALUE; \
+ nsoptions_default[NSOPTION_##OPTION].value.c = VALUE
#endif