diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2013-06-01 14:57:49 +0100 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2013-06-01 14:57:49 +0100 |
commit | 0bb08cc5d2a2c66b77c3ec19db244c57a270a009 (patch) | |
tree | c15a104baec8a08b9836d75f0564cd62bd420f4f | |
parent | 8b586b2d67dad1f7d874091664ab582936e15dc4 (diff) | |
download | netsurf-0bb08cc5d2a2c66b77c3ec19db244c57a270a009.tar.gz netsurf-0bb08cc5d2a2c66b77c3ec19db244c57a270a009.tar.bz2 |
Macros for setting default options and updating user options if they are "as default"
-rw-r--r-- | utils/nsoption.h | 15 |
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 |