shells/ksh-devel: update to the latest ksh93/ksh github commit

This includes an urgent bugfix release that fixes a serious regression
in pathname expansion, see: https://github.com/ksh93/ksh/issues/660
This commit is contained in:
Cy Schubert
2023-06-13 11:52:21 -07:00
parent f3cb8cd9be
commit 7727c1a56b
3 changed files with 5 additions and 90 deletions
+2 -3
View File
@@ -10,7 +10,6 @@
PORTNAME= ksh
PORTVERSION= ${AST_COMMIT_DATE}
PORTREVISION= 1
CATEGORIES= shells
PKGNAMESUFFIX= -devel
@@ -22,8 +21,8 @@ LICENSE= EPL
BROKEN_FreeBSD_12= exit code 139 making lib/libcmd
HASH= c6ee0aa6
AST_COMMIT_DATE= 2023.06.09
HASH= 943089ec
AST_COMMIT_DATE= 2023.06.13
USES= compiler:c11
+3 -3
View File
@@ -1,3 +1,3 @@
TIMESTAMP = 1686561387
SHA256 (ksh93-ksh-2023.06.09-c6ee0aa6_GH0.tar.gz) = d609c245bc1dc1ecbedb49a2b4161c7e6cf35e67ad2c205ffd9c1a0759a41e7d
SIZE (ksh93-ksh-2023.06.09-c6ee0aa6_GH0.tar.gz) = 2107610
TIMESTAMP = 1686682002
SHA256 (ksh93-ksh-2023.06.13-943089ec_GH0.tar.gz) = 18dcc47bf0435af5d797066d2356be4728e8bd6f620284d06d1eaf6c62a7f97d
SIZE (ksh93-ksh-2023.06.13-943089ec_GH0.tar.gz) = 2109804
@@ -1,84 +0,0 @@
--- src/cmd/ksh93/sh/macro.c.orig 2023-06-08 23:30:08.000000000 -0700
+++ src/cmd/ksh93/sh/macro.c 2023-06-12 19:26:31.718942000 -0700
@@ -76,6 +76,7 @@
char macsub; /* set to 1 when running mac_substitute */
int dotdot; /* set for .. in subscript */
void *nvwalk; /* for name space walking */
+ char bracketexpr; /* set when in [brackets] within a non-ERE glob pattern */
} Mac_t;
#undef ESCAPE
@@ -437,7 +438,6 @@
char oldquote = mp->quote; /* save "double quoted" state */
char ansi_c = 0; /* set when processing ANSI C escape codes */
int32_t ere = 0; /* bitmask of pattern options indicating an extended regular expression */
- char bracketexpr = 0; /* set when in [brackets] within a non-ERE glob pattern */
Sfio_t *sp = mp->sp;
Stk_t *stkp = sh.stk;
char *resume = 0;
@@ -533,7 +533,7 @@
if(mp->pattern)
{
/* preserve \ for escaping glob pattern bracket expression operators */
- if(bracketexpr && n==S_BRAOP)
+ if(mp->bracketexpr && n==S_BRAOP)
break;
/* preserve \digit for pattern matching */
/* also \alpha for extended patterns */
@@ -636,8 +636,8 @@
mp->pattern = c;
break;
case S_ENDCH:
- if(bracketexpr && cp[-1]==RBRACT && !(mp->quote || mp->lit))
- bracketexpr--;
+ if(mp->bracketexpr && cp[-1]==RBRACT && !(mp->quote || mp->lit))
+ mp->bracketexpr--;
if((mp->lit || cp[-1]!=endch || mp->quote!=newquote))
goto pattern;
if(endch==RBRACE && mp->pattern && brace)
@@ -738,12 +738,12 @@
cp = first = fcseek(0);
break;
}
- if(mp->pattern==1 && !ere && !bracketexpr)
+ if(mp->pattern==1 && !ere && !mp->bracketexpr)
{
- bracketexpr++;
+ mp->bracketexpr++;
/* a ] following [, as in []abc], should not close the bracket expression */
if(cp[0]==RBRACT && cp[1])
- bracketexpr++;
+ mp->bracketexpr++;
}
/* FALLTHROUGH */
case S_PAT:
@@ -883,7 +883,7 @@
break;
case S_BRAOP:
/* escape a quoted !^- within a bracket expression */
- if(!bracketexpr || !(mp->quote || mp->lit))
+ if(!mp->bracketexpr || !(mp->quote || mp->lit))
continue;
if(c)
sfwrite(stkp,first,c);
@@ -2481,7 +2481,10 @@
continue;
}
if(n==S_ESC)
- sfputc(stkp,ESCAPE);
+ {
+ if(!mp->bracketexpr)
+ sfputc(stkp,ESCAPE);
+ }
else if(n==S_EPAT)
{
/* don't allow extended patterns in this case */
@@ -2583,7 +2586,7 @@
mp->atmode = 0;
if(mp->patfound)
{
- int musttrim = mp->wasexpan && !mp->noextpat && strchr(argp->argval,'\\');
+ int musttrim = mp->wasexpan && !mp->quoted && !mp->noextpat && strchr(argp->argval,'\\');
sh.argaddr = 0;
#if SHOPT_BRACEPAT
/* in POSIX mode, disallow brace expansion for unquoted expansions */