diff options
author | jilles <jilles@FreeBSD.org> | 2013-04-01 17:18:22 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2013-04-01 17:18:22 +0000 |
commit | 3deb97fc0b145c3f68e924fbc0d4c173749860fd (patch) | |
tree | 9a5917477e371894a700d8481509e110a980c3bd /bin/sh/expand.c | |
parent | f09dcb3ac2cf988f73865370bf0a644a3905b5b2 (diff) | |
download | FreeBSD-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.c | 13 |
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'; |