Mailing List Archive

r2961 - trunk/varnish-cache/lib/libvarnish
Author: phk
Date: 2008-07-19 13:38:31 +0200 (Sat, 19 Jul 2008)
New Revision: 2961

Modified:
trunk/varnish-cache/lib/libvarnish/argv.c
Log:
FlexeLint inspired polishing:

Better choice of data types.



Modified: trunk/varnish-cache/lib/libvarnish/argv.c
===================================================================
--- trunk/varnish-cache/lib/libvarnish/argv.c 2008-07-19 11:33:24 UTC (rev 2960)
+++ trunk/varnish-cache/lib/libvarnish/argv.c 2008-07-19 11:38:31 UTC (rev 2961)
@@ -48,32 +48,33 @@
#include "libvarnish.h"

static int
-BackSlash(const char *s, int *res)
+BackSlash(const char *s, char *res)
{
- int i, r;
+ int r;
+ char c;
unsigned u;

assert(*s == '\\');
- r = i = 0;
+ r = c = 0;
switch(s[1]) {
case 'n':
- i = '\n';
+ c = '\n';
r = 2;
break;
case 'r':
- i = '\r';
+ c = '\r';
r = 2;
break;
case 't':
- i = '\t';
+ c = '\t';
r = 2;
break;
case '"':
- i = '"';
+ c = '"';
r = 2;
break;
case '\\':
- i = '\\';
+ c = '\\';
r = 2;
break;
case '0': case '1': case '2': case '3':
@@ -83,13 +84,14 @@
break;
if (s[r] - '0' > 7)
break;
- i <<= 3;
- i |= s[r] - '0';
+ c <<= 3; /*lint !e701 signed left shift */
+ c |= s[r] - '0';
}
break;
case 'x':
if (1 == sscanf(s + 1, "x%02x", &u)) {
- i = u;
+ assert(!(u & ~0xff));
+ c = u; /*lint !e734 loss of precision */
r = 4;
}
break;
@@ -97,7 +99,7 @@
break;
}
if (res != NULL)
- *res = i;
+ *res = c;
return (r);
}

@@ -106,7 +108,7 @@
{
const char *q;
char *p, *r;
- int i, j;
+ int i;

p = calloc((e - s) + 1, 1);
if (p == NULL)
@@ -116,9 +118,9 @@
*r++ = *q++;
continue;
}
- i = BackSlash(q, &j);
+ i = BackSlash(q, r);
q += i;
- *r++ = j;
+ r++;
}
*r = '\0';
return (p);