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.
This commit is contained in:
parent
d3e974f4ea
commit
a0ef4ba41d
2 changed files with 87 additions and 72 deletions
69
config.def.h
69
config.def.h
|
@ -9,44 +9,45 @@ static char *cookiefile = "~/.surf/cookies.txt";
|
||||||
|
|
||||||
/* Webkit default features */
|
/* Webkit default features */
|
||||||
static Parameter defconfig[ParameterLast] = {
|
static Parameter defconfig[ParameterLast] = {
|
||||||
SETB(AcceleratedCanvas, 1),
|
/* parameter Arg value force? */
|
||||||
SETB(AccessMicrophone, 0),
|
[AcceleratedCanvas] = { { .i = 1 }, },
|
||||||
SETB(AccessWebcam, 0),
|
[AccessMicrophone] = { { .i = 0 }, },
|
||||||
SETB(Certificate, 0),
|
[AccessWebcam] = { { .i = 0 }, },
|
||||||
SETB(CaretBrowsing, 0),
|
[Certificate] = { { .i = 0 }, },
|
||||||
SETV(CookiePolicies, "@Aa"),
|
[CaretBrowsing] = { { .i = 0 }, },
|
||||||
SETV(DefaultCharset, "UTF-8"),
|
[CookiePolicies] = { { .v = "@Aa" }, },
|
||||||
SETB(DiskCache, 1),
|
[DefaultCharset] = { { .v = "UTF-8" }, },
|
||||||
SETB(DNSPrefetch, 0),
|
[DiskCache] = { { .i = 1 }, },
|
||||||
SETB(FileURLsCrossAccess,0),
|
[DNSPrefetch] = { { .i = 0 }, },
|
||||||
SETI(FontSize, 12),
|
[FileURLsCrossAccess] = { { .i = 0 }, },
|
||||||
SETB(FrameFlattening, 0),
|
[FontSize] = { { .i = 12 }, },
|
||||||
SETB(Geolocation, 0),
|
[FrameFlattening] = { { .i = 0 }, },
|
||||||
SETB(HideBackground, 0),
|
[Geolocation] = { { .i = 0 }, },
|
||||||
SETB(Inspector, 0),
|
[HideBackground] = { { .i = 0 }, },
|
||||||
SETB(Java, 1),
|
[Inspector] = { { .i = 0 }, },
|
||||||
SETB(JavaScript, 1),
|
[Java] = { { .i = 1 }, },
|
||||||
SETB(KioskMode, 0),
|
[JavaScript] = { { .i = 1 }, },
|
||||||
SETB(LoadImages, 1),
|
[KioskMode] = { { .i = 0 }, },
|
||||||
SETB(MediaManualPlay, 0),
|
[LoadImages] = { { .i = 1 }, },
|
||||||
SETB(Plugins, 1),
|
[MediaManualPlay] = { { .i = 0 }, },
|
||||||
SETV(PreferredLanguages, ((char *[]){ NULL })),
|
[Plugins] = { { .i = 1 }, },
|
||||||
SETB(RunInFullscreen, 0),
|
[PreferredLanguages] = { { .v = (char *[]){ NULL } }, },
|
||||||
SETB(ScrollBars, 1),
|
[RunInFullscreen] = { { .i = 0 }, },
|
||||||
SETB(ShowIndicators, 1),
|
[ScrollBars] = { { .i = 1 }, },
|
||||||
SETB(SiteQuirks, 1),
|
[ShowIndicators] = { { .i = 1 }, },
|
||||||
SETB(SmoothScrolling, 0),
|
[SiteQuirks] = { { .i = 1 }, },
|
||||||
SETB(SpellChecking, 0),
|
[SmoothScrolling] = { { .i = 0 }, },
|
||||||
SETV(SpellLanguages, ((char *[]){ "en_US", NULL })),
|
[SpellChecking] = { { .i = 0 }, },
|
||||||
SETB(StrictTLS, 1),
|
[SpellLanguages] = { { .v = ((char *[]){ "en_US", NULL }) }, },
|
||||||
SETB(Style, 1),
|
[StrictTLS] = { { .i = 1 }, },
|
||||||
SETF(ZoomLevel, 1.0),
|
[Style] = { { .i = 1 }, },
|
||||||
|
[ZoomLevel] = { { .f = 1.0 }, },
|
||||||
};
|
};
|
||||||
|
|
||||||
static UriParameters uriparams[] = {
|
static UriParameters uriparams[] = {
|
||||||
{ "(://|\\.)suckless\\.org(/|$)", {
|
{ "(://|\\.)suckless\\.org(/|$)", {
|
||||||
FSETB(JavaScript, 0),
|
[JavaScript] = { { .i = 0 }, 1 },
|
||||||
FSETB(Plugins, 0),
|
[Plugins] = { { .i = 0 }, 1 },
|
||||||
}, },
|
}, },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
90
surf.c
90
surf.c
|
@ -33,18 +33,6 @@
|
||||||
|
|
||||||
#define LENGTH(x) (sizeof(x) / sizeof(x[0]))
|
#define LENGTH(x) (sizeof(x) / sizeof(x[0]))
|
||||||
#define CLEANMASK(mask) (mask & (MODKEY|GDK_SHIFT_MASK))
|
#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 };
|
enum { AtomFind, AtomGo, AtomUri, AtomLast };
|
||||||
|
|
||||||
|
@ -1925,13 +1913,16 @@ main(int argc, char *argv[])
|
||||||
/* command line args */
|
/* command line args */
|
||||||
ARGBEGIN {
|
ARGBEGIN {
|
||||||
case 'a':
|
case 'a':
|
||||||
defconfig CSETV(CookiePolicies, EARGF(usage()));
|
defconfig[CookiePolicies].val.v = EARGF(usage());
|
||||||
|
defconfig[CookiePolicies].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'b':
|
case 'b':
|
||||||
defconfig CSETB(ScrollBars, 0);
|
defconfig[ScrollBars].val.i = 0;
|
||||||
|
defconfig[ScrollBars].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'B':
|
case 'B':
|
||||||
defconfig CSETB(ScrollBars, 1);
|
defconfig[ScrollBars].val.i = 1;
|
||||||
|
defconfig[ScrollBars].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
cookiefile = EARGF(usage());
|
cookiefile = EARGF(usage());
|
||||||
|
@ -1940,70 +1931,90 @@ main(int argc, char *argv[])
|
||||||
stylefile = EARGF(usage());
|
stylefile = EARGF(usage());
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
defconfig CSETB(DiskCache, 0);
|
defconfig[DiskCache].val.i = 0;
|
||||||
|
defconfig[DiskCache].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
defconfig CSETB(DiskCache, 1);
|
defconfig[DiskCache].val.i = 1;
|
||||||
|
defconfig[DiskCache].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'e':
|
case 'e':
|
||||||
embed = strtol(EARGF(usage()), NULL, 0);
|
embed = strtol(EARGF(usage()), NULL, 0);
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
defconfig CSETB(RunInFullscreen, 0);
|
defconfig[RunInFullscreen].val.i = 0;
|
||||||
|
defconfig[RunInFullscreen].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
defconfig CSETB(RunInFullscreen, 1);
|
defconfig[RunInFullscreen].val.i = 1;
|
||||||
|
defconfig[RunInFullscreen].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'g':
|
case 'g':
|
||||||
defconfig CSETB(Geolocation, 0);
|
defconfig[Geolocation].val.i = 0;
|
||||||
|
defconfig[Geolocation].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'G':
|
case 'G':
|
||||||
defconfig CSETB(Geolocation, 1);
|
defconfig[Geolocation].val.i = 1;
|
||||||
|
defconfig[Geolocation].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
defconfig CSETB(LoadImages, 0);
|
defconfig[LoadImages].val.i = 0;
|
||||||
|
defconfig[LoadImages].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'I':
|
case 'I':
|
||||||
defconfig CSETB(LoadImages, 1);
|
defconfig[LoadImages].val.i = 1;
|
||||||
|
defconfig[LoadImages].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'k':
|
case 'k':
|
||||||
defconfig CSETB(KioskMode, 0);
|
defconfig[KioskMode].val.i = 0;
|
||||||
|
defconfig[KioskMode].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'K':
|
case 'K':
|
||||||
defconfig CSETB(KioskMode, 1);
|
defconfig[KioskMode].val.i = 1;
|
||||||
|
defconfig[KioskMode].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
defconfig CSETB(Style, 0);
|
defconfig[Style].val.i = 0;
|
||||||
|
defconfig[Style].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'M':
|
case 'M':
|
||||||
defconfig CSETB(Style, 1);
|
defconfig[Style].val.i = 1;
|
||||||
|
defconfig[Style].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
defconfig CSETB(Inspector, 0);
|
defconfig[Inspector].val.i = 0;
|
||||||
|
defconfig[Inspector].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'N':
|
case 'N':
|
||||||
defconfig CSETB(Inspector, 1);
|
defconfig[Inspector].val.i = 1;
|
||||||
|
defconfig[Inspector].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
defconfig CSETB(Plugins, 0);
|
defconfig[Plugins].val.i = 0;
|
||||||
|
defconfig[Plugins].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'P':
|
case 'P':
|
||||||
defconfig CSETB(Plugins, 1);
|
defconfig[Plugins].val.i = 1;
|
||||||
|
defconfig[Plugins].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
scriptfile = EARGF(usage());
|
scriptfile = EARGF(usage());
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
defconfig CSETB(JavaScript, 0);
|
defconfig[JavaScript].val.i = 0;
|
||||||
|
defconfig[JavaScript].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'S':
|
case 'S':
|
||||||
defconfig CSETB(JavaScript, 1);
|
defconfig[JavaScript].val.i = 1;
|
||||||
|
defconfig[JavaScript].force = 1;
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
defconfig CSETB(StrictTLS, 0);
|
defconfig[StrictTLS].val.i = 0;
|
||||||
|
defconfig[StrictTLS].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'T':
|
case 'T':
|
||||||
defconfig CSETB(StrictTLS, 1);
|
defconfig[StrictTLS].val.i = 1;
|
||||||
|
defconfig[StrictTLS].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'u':
|
case 'u':
|
||||||
fulluseragent = EARGF(usage());
|
fulluseragent = EARGF(usage());
|
||||||
|
@ -2014,13 +2025,16 @@ main(int argc, char *argv[])
|
||||||
showxid = 1;
|
showxid = 1;
|
||||||
break;
|
break;
|
||||||
case 'x':
|
case 'x':
|
||||||
defconfig CSETB(Certificate, 0);
|
defconfig[Certificate].val.i = 0;
|
||||||
|
defconfig[Certificate].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'X':
|
case 'X':
|
||||||
defconfig CSETB(Certificate, 1);
|
defconfig[Certificate].val.i = 1;
|
||||||
|
defconfig[Certificate].force = 1;
|
||||||
break;
|
break;
|
||||||
case 'z':
|
case 'z':
|
||||||
defconfig CSETF(ZoomLevel, strtof(EARGF(usage()), NULL));
|
defconfig[ZoomLevel].val.f = strtof(EARGF(usage()), NULL);
|
||||||
|
defconfig[ZoomLevel].force = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
usage();
|
usage();
|
||||||
|
|
Loading…
Reference in a new issue