aboutsummaryrefslogtreecommitdiffhomepage
path: root/uzbl.c
diff options
context:
space:
mode:
authorGravatar Brendan Taylor <whateley@gmail.com>2009-07-12 12:27:58 -0600
committerGravatar Brendan Taylor <whateley@gmail.com>2009-07-12 12:27:58 -0600
commit2bedc2c788dd7974df90b0080b6078ec5417a862 (patch)
tree241082d9e98bbca473a04775d96f033761620819 /uzbl.c
parentec6d931c0826795f55a28dedd4b4d6e65a58dd61 (diff)
get rid of some duplication in expand()
Diffstat (limited to 'uzbl.c')
-rw-r--r--uzbl.c42
1 files changed, 16 insertions, 26 deletions
diff --git a/uzbl.c b/uzbl.c
index ab12e1a..d1a1ca4 100644
--- a/uzbl.c
+++ b/uzbl.c
@@ -243,7 +243,7 @@ expand(char *s, guint recurse) {
char *end_simple_var = "^°!\"§$%&/()=?'`'+~*'#-.:,;@<>| \\{}[]¹²³¼½";
char str_end[2];
char ret[4096];
- char *vend;
+ char *vend = NULL;
GError *err = NULL;
gchar *cmd_stdout = NULL;
gchar *mycmd = NULL;
@@ -263,52 +263,42 @@ expand(char *s, guint recurse) {
switch(etype) {
case EXP_SIMPLE_VAR:
- if( (vend = strpbrk(s, end_simple_var)) ||
- (vend = strchr(s, '\0')) ) {
- strncpy(ret, s, vend-s);
- ret[vend-s] = '\0';
- }
+ vend = strpbrk(s, end_simple_var);
+ if(!vend) vend = strchr(s, '\0');
break;
case EXP_BRACED_VAR:
s++; upto = '}';
- if( (vend = strchr(s, upto)) ||
- (vend = strchr(s, '\0')) ) {
- strncpy(ret, s, vend-s);
- ret[vend-s] = '\0';
- }
+ vend = strchr(s, upto);
+ if(!vend) vend = strchr(s, '\0');
break;
case EXP_EXPR:
s++;
strcpy(str_end, ")@");
str_end[2] = '\0';
- if( (vend = strstr(s, str_end)) ||
- (vend = strchr(s, '\0')) ) {
- strncpy(ret, s, vend-s);
- ret[vend-s] = '\0';
- }
+ vend = strstr(s, str_end);
+ if(!vend) vend = strchr(s, '\0');
break;
case EXP_JS:
s++;
strcpy(str_end, ">@");
str_end[2] = '\0';
- if( (vend = strstr(s, str_end)) ||
- (vend = strchr(s, '\0')) ) {
- strncpy(ret, s, vend-s);
- ret[vend-s] = '\0';
- }
+ vend = strstr(s, str_end);
+ if(!vend) vend = strchr(s, '\0');
break;
case EXP_ESCAPE:
s++;
strcpy(str_end, "]@");
str_end[2] = '\0';
- if( (vend = strstr(s, str_end)) ||
- (vend = strchr(s, '\0')) ) {
- strncpy(ret, s, vend-s);
- ret[vend-s] = '\0';
- }
+ vend = strstr(s, str_end);
+ if(!vend) vend = strchr(s, '\0');
break;
}
+ if(vend) {
+ strncpy(ret, s, vend-s);
+ ret[vend-s] = '\0';
+ }
+
if(etype == EXP_SIMPLE_VAR ||
etype == EXP_BRACED_VAR) {
if( (c = g_hash_table_lookup(uzbl.comm.proto_var, ret)) ) {