tIntroduce new data structure for handling settings - surf - customized build of surf, the suckless webkit browser
(HTM) git clone git://src.adamsgaard.dk/surf
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 2aa1c38aed02bfc37379476a07516172b2817cae
(DIR) parent d04fb9bff3796025eeedf0f32ae1c0a40366f717
(HTM) Author: Quentin Rameau <quinq@fifth.space>
Date: Sun, 29 Nov 2015 17:16:48 +0100
Introduce new data structure for handling settings
Diffstat:
M surf.c | 40 +++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/surf.c b/surf.c
t@@ -31,18 +31,42 @@
#define LENGTH(x) (sizeof(x) / sizeof(x[0]))
#define CLEANMASK(mask) (mask & (MODKEY|GDK_SHIFT_MASK))
+#define SETB(p, s) [p] = (Parameter){ { .b = s }, }
+#define SETI(p, s) [p] = (Parameter){ { .i = s }, }
+#define SETV(p, s) [p] = (Parameter){ { .v = s }, }
+#define SETF(p, s) [p] = (Parameter){ { .f = s }, }
+#define FSETB(p, s) [p] = (Parameter){ { .b = s }, 1 }
+#define FSETI(p, s) [p] = (Parameter){ { .i = s }, 1 }
+#define FSETV(p, s) [p] = (Parameter){ { .v = s }, 1 }
+#define FSETF(p, s) [p] = (Parameter){ { .f = s }, 1 }
enum { AtomFind, AtomGo, AtomUri, AtomLast };
-enum {
+typedef enum {
CaretBrowsing,
+ CookiePolicies,
+ DiskCache,
+ DNSPrefetch,
+ FontSize,
FrameFlattening,
Geolocation,
+ HideBackground,
+ Inspector,
JavaScript,
+ KioskMode,
LoadImages,
Plugins,
+ PreferredLanguages,
+ RunInFullscreen,
ScrollBars,
-};
+ ShowIndicators,
+ SpellChecking,
+ SpellLanguages,
+ StrictSSL,
+ Style,
+ ZoomLevel,
+ ParameterLast,
+} ParamName;
enum {
OnDoc = WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT,
t@@ -58,9 +82,15 @@ enum {
typedef union {
int b;
int i;
+ float f;
const void *v;
} Arg;
+typedef struct {
+ Arg val;
+ int force;
+} Parameter;
+
typedef struct Client {
GtkWidget *win;
WebKitWebView *view;
t@@ -92,6 +122,12 @@ typedef struct {
} Button;
typedef struct {
+ const char *uri;
+ Parameter config[ParameterLast];
+ regex_t re;
+} UriParameters;
+
+typedef struct {
char *regex;
char *style;
regex_t re;