diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-10-28 03:44:58 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-10-28 03:44:58 +0200 |
commit | 01a7c491fc2a2b826e9944dc6418325f052fb11c (patch) | |
tree | 4f795ec15672cdcd0e371e1cc8340046cd4195f0 /sys/src/cmd/hgfs | |
parent | 6b2b4b58fba2ce432bda596a53355b4daabd5612 (diff) |
hgfs: fix sign bug in path mangeling
Diffstat (limited to 'sys/src/cmd/hgfs')
-rw-r--r-- | sys/src/cmd/hgfs/tree.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/src/cmd/hgfs/tree.c b/sys/src/cmd/hgfs/tree.c index bb4fcb40c..0a45f3d64 100644 --- a/sys/src/cmd/hgfs/tree.c +++ b/sys/src/cmd/hgfs/tree.c @@ -26,7 +26,7 @@ nodepath(char *s, char *e, Revnode *nd, int mangle) for(i=0; i<nelem(frogs); i++){ l = strlen(frogs[i]); if((strncmp(frogs[i], p, l) == 0) && (p[l] == 0 || p[l] == '.')) - return seprint(s, e, "%.2s~%.2x%s", p, p[2], p+3); + return seprint(s, e, "%.2s~%.2x%s", p, (uchar)p[2], p+3); } for(; s+4 < e && *p; p++){ if(*p == '_'){ @@ -35,9 +35,9 @@ nodepath(char *s, char *e, Revnode *nd, int mangle) } else if(*p >= 'A' && *p <= 'Z'){ *s++ = '_'; *s++ = 'a' + (*p - 'A'); - } else if(*p >= 126 || strchr("\\:*?\"<>|", *p)){ + } else if((uchar)*p >= 126 || strchr("\\:*?\"<>|", *p)){ *s++ = '~'; - s = seprint(s, e, "%.2x", *p); + s = seprint(s, e, "%.2x", (uchar)*p); } else *s++ = *p; } |