summaryrefslogtreecommitdiffstats
path: root/bin/sh/expand.c
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2013-04-01 17:18:22 +0000
committerjilles <jilles@FreeBSD.org>2013-04-01 17:18:22 +0000
commit3deb97fc0b145c3f68e924fbc0d4c173749860fd (patch)
tree9a5917477e371894a700d8481509e110a980c3bd /bin/sh/expand.c
parentf09dcb3ac2cf988f73865370bf0a644a3905b5b2 (diff)
downloadFreeBSD-src-3deb97fc0b145c3f68e924fbc0d4c173749860fd.zip
FreeBSD-src-3deb97fc0b145c3f68e924fbc0d4c173749860fd.tar.gz
sh: Fix various compiler warnings.
It now passes WARNS=7 with clang on i386. GCC 4.2.1 does not understand setjmp() properly so will always trigger -Wuninitialized. I will not add the volatile keywords to suppress this.
Diffstat (limited to 'bin/sh/expand.c')
-rw-r--r--bin/sh/expand.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/bin/sh/expand.c b/bin/sh/expand.c
index 107f798..414bfa7 100644
--- a/bin/sh/expand.c
+++ b/bin/sh/expand.c
@@ -460,7 +460,7 @@ expbackq(union node *cmd, int quoted, int flag)
int startloc = dest - stackblock();
char const *syntax = quoted? DQSYNTAX : BASESYNTAX;
int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR);
- int nnl;
+ size_t nnl;
INTOFF;
saveifs = ifsfirst;
@@ -1163,9 +1163,9 @@ nometa:
static void
expmeta(char *enddir, char *name)
{
- char *p;
- char *q;
- char *start;
+ const char *p;
+ const char *q;
+ const char *start;
char *endname;
int metaflag;
struct stat statb;
@@ -1229,7 +1229,7 @@ expmeta(char *enddir, char *name)
addfname(expdir);
return;
}
- endname = p;
+ endname = name + (p - name);
if (start != name) {
p = name;
while (p < start) {
@@ -1412,7 +1412,8 @@ match_charclass(const char *p, wchar_t chr, const char **end)
*end = NULL;
p++;
nameend = strstr(p, ":]");
- if (nameend == NULL || nameend - p >= sizeof(name) || nameend == p)
+ if (nameend == NULL || (size_t)(nameend - p) >= sizeof(name) ||
+ nameend == p)
return 0;
memcpy(name, p, nameend - p);
name[nameend - p] = '\0';
OpenPOWER on IntegriCloud