fix one of the bugs in this code… still the one I’m looking for left
This commit is contained in:
parent
707a787edc
commit
16dd1d3c8f
6
check.t
6
check.t
|
@ -1,4 +1,4 @@
|
||||||
# $MirOS: src/bin/mksh/check.t,v 1.153 2008/03/01 16:40:57 tg Exp $
|
# $MirOS: src/bin/mksh/check.t,v 1.154 2008/03/01 17:14:17 tg Exp $
|
||||||
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
||||||
|
@ -1083,8 +1083,12 @@ stdin:
|
||||||
pfx=/home/user
|
pfx=/home/user
|
||||||
wd=/home/user/tmp
|
wd=/home/user/tmp
|
||||||
echo ${wd/#$pfx/~}
|
echo ${wd/#$pfx/~}
|
||||||
|
echo ${wd/#"$pfx"/~}
|
||||||
|
echo ${wd/#'$pfx'/~}
|
||||||
expected-stdout:
|
expected-stdout:
|
||||||
~/tmp
|
~/tmp
|
||||||
|
~/tmp
|
||||||
|
/home/user/tmp
|
||||||
---
|
---
|
||||||
name: glob-bad-1
|
name: glob-bad-1
|
||||||
description:
|
description:
|
||||||
|
|
8
eval.c
8
eval.c
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
#include "sh.h"
|
#include "sh.h"
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/eval.c,v 1.41 2008/02/29 11:51:21 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/eval.c,v 1.42 2008/03/01 17:14:17 tg Exp $");
|
||||||
|
|
||||||
#ifdef MKSH_SMALL
|
#ifdef MKSH_SMALL
|
||||||
#define MKSH_NOPWNAM
|
#define MKSH_NOPWNAM
|
||||||
|
@ -1026,11 +1026,11 @@ trimsub(char *str, char *pat, int how)
|
||||||
if (!(*d++ = *s++))
|
if (!(*d++ = *s++))
|
||||||
break;
|
break;
|
||||||
} else if (c == '/') {
|
} else if (c == '/') {
|
||||||
*d++ = '\0';
|
|
||||||
rrep = s;
|
rrep = s;
|
||||||
break;
|
break;
|
||||||
} else
|
} else
|
||||||
*d++ = c;
|
*d++ = c;
|
||||||
|
*d++ = '\0';
|
||||||
/* do not accept empty pattern */
|
/* do not accept empty pattern */
|
||||||
if (!*rpat) {
|
if (!*rpat) {
|
||||||
afree(rpat, ATEMP);
|
afree(rpat, ATEMP);
|
||||||
|
@ -1058,6 +1058,10 @@ trimsub(char *str, char *pat, int how)
|
||||||
tpat1 = shf_smprintf("%c*%s%c*", MAGIC, rpat, MAGIC);
|
tpat1 = shf_smprintf("%c*%s%c*", MAGIC, rpat, MAGIC);
|
||||||
tpat2 = tpat1 + 2;
|
tpat2 = tpat1 + 2;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
|
fprintf(stderr, "D: 「%s」 → 〔%s|%s〕\n", pat, tpat0, rrep);
|
||||||
|
fflush(stderr);
|
||||||
|
#endif
|
||||||
again_repl:
|
again_repl:
|
||||||
/* this would not be necessary if gmatchx would return
|
/* this would not be necessary if gmatchx would return
|
||||||
* the start and end values of a match found, like re*
|
* the start and end values of a match found, like re*
|
||||||
|
|
Loading…
Reference in New Issue