[hackers] [surf] Get rid of config parameter MACROs || Quentin Rameau

From: <git_AT_suckless.org>
Date: Sat, 3 Jun 2017 10:39:13 +0200 (CEST)

commit a0ef4ba41d3e43618607f9cf1d14e83ee475f624
Author: Quentin Rameau <quinq_AT_fifth.space>
AuthorDate: Sat May 20 19:21:41 2017 +0200
Commit: Quentin Rameau <quinq_AT_fifth.space>
CommitDate: Mon May 22 12:38:49 2017 +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.

diff --git a/config.def.h b/config.def.h
index a29c388..9fee024 100644
--- a/config.def.h
+++ b/config.def.h
_AT_@ -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, "_AT_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 = "_AT_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
index 06b7942..5ba6e51 100644
--- a/surf.c
+++ b/surf.c
_AT_@ -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 };
 
_AT_@ -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());
_AT_@ -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());
_AT_@ -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();
Received on Sat Jun 03 2017 - 10:39:13 CEST

This archive was generated by hypermail 2.3.0 : Sat Jun 03 2017 - 10:48:43 CEST