tGet rid of config parameter MACROs - surf - customized build of surf, the suck… | |
git clone git://src.adamsgaard.dk/surf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit a0ef4ba41d3e43618607f9cf1d14e83ee475f624 | |
parent d3e974f4eafe459990ff9b140d96a6fe568ee6dc | |
Author: Quentin Rameau <[email protected]> | |
Date: Sat, 20 May 2017 19:21:41 +0200 | |
Get rid of config parameter MACROs | |
There's no need to obfuscate so much what is done, the user can deal | |
with a few extra knobs to set instead. | |
Diffstat: | |
M config.def.h | 69 ++++++++++++++++-------------… | |
M surf.c | 90 ++++++++++++++++++-----------… | |
2 files changed, 87 insertions(+), 72 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -9,44 +9,45 @@ static char *cookiefile = "~/.surf/cookies.txt"; | |
/* Webkit default features */ | |
static Parameter defconfig[ParameterLast] = { | |
- SETB(AcceleratedCanvas, 1), | |
- SETB(AccessMicrophone, 0), | |
- SETB(AccessWebcam, 0), | |
- SETB(Certificate, 0), | |
- SETB(CaretBrowsing, 0), | |
- SETV(CookiePolicies, "@Aa"), | |
- SETV(DefaultCharset, "UTF-8"), | |
- SETB(DiskCache, 1), | |
- SETB(DNSPrefetch, 0), | |
- SETB(FileURLsCrossAccess,0), | |
- SETI(FontSize, 12), | |
- SETB(FrameFlattening, 0), | |
- SETB(Geolocation, 0), | |
- SETB(HideBackground, 0), | |
- SETB(Inspector, 0), | |
- SETB(Java, 1), | |
- SETB(JavaScript, 1), | |
- SETB(KioskMode, 0), | |
- SETB(LoadImages, 1), | |
- SETB(MediaManualPlay, 0), | |
- SETB(Plugins, 1), | |
- SETV(PreferredLanguages, ((char *[]){ NULL })), | |
- SETB(RunInFullscreen, 0), | |
- SETB(ScrollBars, 1), | |
- SETB(ShowIndicators, 1), | |
- SETB(SiteQuirks, 1), | |
- SETB(SmoothScrolling, 0), | |
- SETB(SpellChecking, 0), | |
- SETV(SpellLanguages, ((char *[]){ "en_US", NULL })), | |
- SETB(StrictTLS, 1), | |
- SETB(Style, 1), | |
- SETF(ZoomLevel, 1.0), | |
+ /* parameter Arg value force? */ | |
+ [AcceleratedCanvas] = { { .i = 1 }, }, | |
+ [AccessMicrophone] = { { .i = 0 }, }, | |
+ [AccessWebcam] = { { .i = 0 }, }, | |
+ [Certificate] = { { .i = 0 }, }, | |
+ [CaretBrowsing] = { { .i = 0 }, }, | |
+ [CookiePolicies] = { { .v = "@Aa" }, }, | |
+ [DefaultCharset] = { { .v = "UTF-8" }, }, | |
+ [DiskCache] = { { .i = 1 }, }, | |
+ [DNSPrefetch] = { { .i = 0 }, }, | |
+ [FileURLsCrossAccess] = { { .i = 0 }, }, | |
+ [FontSize] = { { .i = 12 }, }, | |
+ [FrameFlattening] = { { .i = 0 }, }, | |
+ [Geolocation] = { { .i = 0 }, }, | |
+ [HideBackground] = { { .i = 0 }, }, | |
+ [Inspector] = { { .i = 0 }, }, | |
+ [Java] = { { .i = 1 }, }, | |
+ [JavaScript] = { { .i = 1 }, }, | |
+ [KioskMode] = { { .i = 0 }, }, | |
+ [LoadImages] = { { .i = 1 }, }, | |
+ [MediaManualPlay] = { { .i = 0 }, }, | |
+ [Plugins] = { { .i = 1 }, }, | |
+ [PreferredLanguages] = { { .v = (char *[]){ NULL } }, }, | |
+ [RunInFullscreen] = { { .i = 0 }, }, | |
+ [ScrollBars] = { { .i = 1 }, }, | |
+ [ShowIndicators] = { { .i = 1 }, }, | |
+ [SiteQuirks] = { { .i = 1 }, }, | |
+ [SmoothScrolling] = { { .i = 0 }, }, | |
+ [SpellChecking] = { { .i = 0 }, }, | |
+ [SpellLanguages] = { { .v = ((char *[]){ "en_US", NULL }) }… | |
+ [StrictTLS] = { { .i = 1 }, }, | |
+ [Style] = { { .i = 1 }, }, | |
+ [ZoomLevel] = { { .f = 1.0 }, }, | |
}; | |
static UriParameters uriparams[] = { | |
{ "(://|\\.)suckless\\.org(/|$)", { | |
- FSETB(JavaScript, 0), | |
- FSETB(Plugins, 0), | |
+ [JavaScript] = { { .i = 0 }, 1 }, | |
+ [Plugins] = { { .i = 0 }, 1 }, | |
}, }, | |
}; | |
diff --git a/surf.c b/surf.c | |
t@@ -33,18 +33,6 @@ | |
#define LENGTH(x) (sizeof(x) / sizeof(x[0])) | |
#define CLEANMASK(mask) (mask & (MODKEY|GDK_SHIFT_MASK)) | |
-#define SETB(p, s) [p] = { { .b = s }, } | |
-#define SETI(p, s) [p] = { { .i = s }, } | |
-#define SETV(p, s) [p] = { { .v = s }, } | |
-#define SETF(p, s) [p] = { { .f = s }, } | |
-#define FSETB(p, s) [p] = { { .b = s }, 1 } | |
-#define FSETI(p, s) [p] = { { .i = s }, 1 } | |
-#define FSETV(p, s) [p] = { { .v = s }, 1 } | |
-#define FSETF(p, s) [p] = { { .f = s }, 1 } | |
-#define CSETB(p, s) [p] = (Parameter){ { .b = s }, 1 } | |
-#define CSETI(p, s) [p] = (Parameter){ { .i = s }, 1 } | |
-#define CSETV(p, s) [p] = (Parameter){ { .v = s }, 1 } | |
-#define CSETF(p, s) [p] = (Parameter){ { .f = s }, 1 } | |
enum { AtomFind, AtomGo, AtomUri, AtomLast }; | |
t@@ -1925,13 +1913,16 @@ main(int argc, char *argv[]) | |
/* command line args */ | |
ARGBEGIN { | |
case 'a': | |
- defconfig CSETV(CookiePolicies, EARGF(usage())); | |
+ defconfig[CookiePolicies].val.v = EARGF(usage()); | |
+ defconfig[CookiePolicies].force = 1; | |
break; | |
case 'b': | |
- defconfig CSETB(ScrollBars, 0); | |
+ defconfig[ScrollBars].val.i = 0; | |
+ defconfig[ScrollBars].force = 1; | |
break; | |
case 'B': | |
- defconfig CSETB(ScrollBars, 1); | |
+ defconfig[ScrollBars].val.i = 1; | |
+ defconfig[ScrollBars].force = 1; | |
break; | |
case 'c': | |
cookiefile = EARGF(usage()); | |
t@@ -1940,70 +1931,90 @@ main(int argc, char *argv[]) | |
stylefile = EARGF(usage()); | |
break; | |
case 'd': | |
- defconfig CSETB(DiskCache, 0); | |
+ defconfig[DiskCache].val.i = 0; | |
+ defconfig[DiskCache].force = 1; | |
break; | |
case 'D': | |
- defconfig CSETB(DiskCache, 1); | |
+ defconfig[DiskCache].val.i = 1; | |
+ defconfig[DiskCache].force = 1; | |
break; | |
case 'e': | |
embed = strtol(EARGF(usage()), NULL, 0); | |
break; | |
case 'f': | |
- defconfig CSETB(RunInFullscreen, 0); | |
+ defconfig[RunInFullscreen].val.i = 0; | |
+ defconfig[RunInFullscreen].force = 1; | |
break; | |
case 'F': | |
- defconfig CSETB(RunInFullscreen, 1); | |
+ defconfig[RunInFullscreen].val.i = 1; | |
+ defconfig[RunInFullscreen].force = 1; | |
break; | |
case 'g': | |
- defconfig CSETB(Geolocation, 0); | |
+ defconfig[Geolocation].val.i = 0; | |
+ defconfig[Geolocation].force = 1; | |
break; | |
case 'G': | |
- defconfig CSETB(Geolocation, 1); | |
+ defconfig[Geolocation].val.i = 1; | |
+ defconfig[Geolocation].force = 1; | |
break; | |
case 'i': | |
- defconfig CSETB(LoadImages, 0); | |
+ defconfig[LoadImages].val.i = 0; | |
+ defconfig[LoadImages].force = 1; | |
break; | |
case 'I': | |
- defconfig CSETB(LoadImages, 1); | |
+ defconfig[LoadImages].val.i = 1; | |
+ defconfig[LoadImages].force = 1; | |
break; | |
case 'k': | |
- defconfig CSETB(KioskMode, 0); | |
+ defconfig[KioskMode].val.i = 0; | |
+ defconfig[KioskMode].force = 1; | |
break; | |
case 'K': | |
- defconfig CSETB(KioskMode, 1); | |
+ defconfig[KioskMode].val.i = 1; | |
+ defconfig[KioskMode].force = 1; | |
break; | |
case 'm': | |
- defconfig CSETB(Style, 0); | |
+ defconfig[Style].val.i = 0; | |
+ defconfig[Style].force = 1; | |
break; | |
case 'M': | |
- defconfig CSETB(Style, 1); | |
+ defconfig[Style].val.i = 1; | |
+ defconfig[Style].force = 1; | |
break; | |
case 'n': | |
- defconfig CSETB(Inspector, 0); | |
+ defconfig[Inspector].val.i = 0; | |
+ defconfig[Inspector].force = 1; | |
break; | |
case 'N': | |
- defconfig CSETB(Inspector, 1); | |
+ defconfig[Inspector].val.i = 1; | |
+ defconfig[Inspector].force = 1; | |
break; | |
case 'p': | |
- defconfig CSETB(Plugins, 0); | |
+ defconfig[Plugins].val.i = 0; | |
+ defconfig[Plugins].force = 1; | |
break; | |
case 'P': | |
- defconfig CSETB(Plugins, 1); | |
+ defconfig[Plugins].val.i = 1; | |
+ defconfig[Plugins].force = 1; | |
break; | |
case 'r': | |
scriptfile = EARGF(usage()); | |
break; | |
case 's': | |
- defconfig CSETB(JavaScript, 0); | |
+ defconfig[JavaScript].val.i = 0; | |
+ defconfig[JavaScript].force = 1; | |
break; | |
case 'S': | |
- defconfig CSETB(JavaScript, 1); | |
+ defconfig[JavaScript].val.i = 1; | |
+ defconfig[JavaScript].force = 1; | |
break; | |
case 't': | |
- defconfig CSETB(StrictTLS, 0); | |
+ defconfig[StrictTLS].val.i = 0; | |
+ defconfig[StrictTLS].force = 1; | |
break; | |
case 'T': | |
- defconfig CSETB(StrictTLS, 1); | |
+ defconfig[StrictTLS].val.i = 1; | |
+ defconfig[StrictTLS].force = 1; | |
break; | |
case 'u': | |
fulluseragent = EARGF(usage()); | |
t@@ -2014,13 +2025,16 @@ main(int argc, char *argv[]) | |
showxid = 1; | |
break; | |
case 'x': | |
- defconfig CSETB(Certificate, 0); | |
+ defconfig[Certificate].val.i = 0; | |
+ defconfig[Certificate].force = 1; | |
break; | |
case 'X': | |
- defconfig CSETB(Certificate, 1); | |
+ defconfig[Certificate].val.i = 1; | |
+ defconfig[Certificate].force = 1; | |
break; | |
case 'z': | |
- defconfig CSETF(ZoomLevel, strtof(EARGF(usage()), NULL)); | |
+ defconfig[ZoomLevel].val.f = strtof(EARGF(usage()), NULL); | |
+ defconfig[ZoomLevel].force = 1; | |
break; | |
default: | |
usage(); |