Introduction
Introduction Statistics Contact Development Disclaimer Help
Fix handling of uri-specific parameters - surf - surf browser, a WebKit based b…
git clone git://git.suckless.org/surf
Log
Files
Refs
README
LICENSE
---
commit 2223417c91569f8314205d8f34c3cdf4d96d6e1a
parent a1328457cff30dc678a1b8e80dc44ddb73ce293c
Author: Quentin Rameau <[email protected]>
Date: Thu, 18 May 2017 12:33:28 +0200
Fix handling of uri-specific parameters
We need to (re)apply uri-specific parameters for each new uri even if
the parameter has already been set to get the correct value.
Thanks to Julien STEINHAUSER <[email protected]> for the
report!
Diffstat:
M surf.c | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
---
diff --git a/surf.c b/surf.c
@@ -643,7 +643,7 @@ cookiepolicy_set(const WebKitCookieAcceptPolicy p)
void
seturiparameters(Client *c, const char *uri)
{
- Parameter *newconfig = NULL;
+ Parameter *config, *newconfig = NULL;
int i;
for (i = 0; i < LENGTH(uriparams); ++i) {
@@ -656,16 +656,26 @@ seturiparameters(Client *c, const char *uri)
if (!newconfig)
newconfig = defconfig;
- if (newconfig == curconfig)
- return;
for (i = 0; i < ParameterLast; ++i) {
- if (defconfig[i].force)
- continue;
- if (newconfig[i].force)
- setparameter(c, 0, i, &newconfig[i].val);
- else if (curconfig[i].force)
- setparameter(c, 0, i, &defconfig[i].val);
+ switch(i) {
+ case Certificate:
+ case CookiePolicies:
+ case Style:
+ config = defconfig[i].force ? defconfig :
+ newconfig[i].force ? newconfig :
+ defconfig;
+ break;
+ default:
+ if (newconfig == curconfig || defconfig[i].force)
+ continue;
+ config = newconfig[i].force ? newconfig :
+ curconfig[i].force ? defconfig :
+ NULL;
+ }
+
+ if (config)
+ setparameter(c, 0, i, &config[i].val);
}
curconfig = newconfig;
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.