From nobody Tue Jun 13 02:37:55 2023 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgCQW4JtQz4brBJ; Tue, 13 Jun 2023 02:37:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgCQW3dLwz49k8; Tue, 13 Jun 2023 02:37:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686623875; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iWhH8Hzg/Mm6bdzgqHngJL9DKLMC7F10ON6UkfTjpbQ=; b=F5a1kT2/1bMOmj7FfGPTUcHzxKuEfUmJVgcR1S9VV6V+fDaOPx+2BFd2FzUIzU+b35CBcr RB+4rdignXvGmWHpWybwy18ZZduAkyCUErr+qSF+Ql0PKIZfsi9oW8DLU+ZS6UZIIM3pAQ pHgwfJ7tGmxlfE9WvYIunnlNGHA2mwFymskPTvsDPSN4/8ihkRVuLFqowoefb/FmdMJfhF G/BpFdqvgYaxxK319KuN7I7gHP3t7cHT58kGfcAEcLGVPhpBkGd/MpKSa2/0X+FUGgpZtL jQK45vyf/PgMTqZuz6LhMmTWzV6PAk1FEKA01Wo+y15fsXsfL7vPX9Xy4SOgwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686623875; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iWhH8Hzg/Mm6bdzgqHngJL9DKLMC7F10ON6UkfTjpbQ=; b=datS4mplZhdw7XmDvuISDswC0+h52eW08WRawrbBsnsr9HrmvcjLeMhm6UymcD9YXEpWqZ n4sNE9spmjeiVbgk4rjqp7loIYWsDQvv30X3V3VJvcKZzxfJflriJKrfKqQq8fnkFKx5Rd GKfC83Rgpt1hgBUNMRugIkg3v6sDnVThhEx2RJDNTJG8Wx+lL8g9ToQl/aT/JgahQPmTu/ eqEXOGYdZP7fvfeHTeLuBOpUa2UImgR+Dqwp24sYHaRedInwZrkdskqm0IVubR4KRUq2+Y 6tQavEGxziH0a0JeCp67/7T0E9tvJNFwW1K3VoaPDoJnUT4tLTLAGWqRBWLyTw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686623875; a=rsa-sha256; cv=none; b=ji7ayxTw9zae06QIBUhnbNR5bYn8qldVtDa+uqsA//m4m8p1EY3Nhq/4fW+WDu2Ljt+UI1 2t9YmAtlUPDIiCnfnLMtNiYTsXgw2/RXP45fiazC1brjqW8hqAx82Yisl5Cj3lA8P7sWIO qMFovHiZdrgSwKiNHGUALcR0JKQcmemlaayJt5LGz5EPVqVq/sXA7P7Kuric99Oj341tTe tpg/qrrAnaGsDEMaThVdhPN6aIrVV/tVEtvk4FRNT/R7BxST127RaX9+p+yigZ2iEKVnkJ 8qBXkw8HfcjhoJx0NiT+h4QpT+niiMelwNe+3/6mg26HHRwWpTGLYsHR/VvvBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgCQW2bdYz14Z5; Tue, 13 Jun 2023 02:37:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D2bt85050590; Tue, 13 Jun 2023 02:37:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D2btDl050589; Tue, 13 Jun 2023 02:37:55 GMT (envelope-from git) Date: Tue, 13 Jun 2023 02:37:55 GMT Message-Id: <202306130237.35D2btDl050589@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Cy Schubert Subject: git: 6f567e62fac5 - main - shells/ksh*: Fix ksh 1.0.5 Regression (issue #660) version 2 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6f567e62fac522bf3005a01e23b4fdec9e4dc725 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/ports/commit/?id=6f567e62fac522bf3005a01e23b4fdec9e4dc725 commit 6f567e62fac522bf3005a01e23b4fdec9e4dc725 Author: Cy Schubert AuthorDate: 2023-06-13 02:34:57 +0000 Commit: Cy Schubert CommitDate: 2023-06-13 02:37:49 +0000 shells/ksh*: Fix ksh 1.0.5 Regression (issue #660) version 2 From the upstream patch description: Patch version two. In mac_copy(), don't internally backslash-escape a backslash in a glob pattern bracket expression. This also fixes the #549 regression reintroduced by the previous patch, at least for standard glob patterns. For this, we need to use the bracketexpr flag (introduced as a copyto() local variable in 6c73c8c) in mac_copy(), so we move it to the Mac_t struct, making it globally accessible. Initialisation is automatic. --- shells/ksh-devel/Makefile | 1 + .../ksh-devel/files/patch-src_cmd_ksh93_sh_macro.c | 81 ++++++++++++++++++++-- shells/ksh/Makefile | 2 +- shells/ksh/files/patch-src_cmd_ksh93_sh_macro.c | 81 ++++++++++++++++++++-- 4 files changed, 154 insertions(+), 11 deletions(-) diff --git a/shells/ksh-devel/Makefile b/shells/ksh-devel/Makefile index 50ec6bbbd593..90300f060f96 100644 --- a/shells/ksh-devel/Makefile +++ b/shells/ksh-devel/Makefile @@ -10,6 +10,7 @@ PORTNAME= ksh PORTVERSION= ${AST_COMMIT_DATE} +PORTREVISION= 1 CATEGORIES= shells PKGNAMESUFFIX= -devel diff --git a/shells/ksh-devel/files/patch-src_cmd_ksh93_sh_macro.c b/shells/ksh-devel/files/patch-src_cmd_ksh93_sh_macro.c index 391cff245ac6..a3b6a4f2585e 100644 --- a/shells/ksh-devel/files/patch-src_cmd_ksh93_sh_macro.c +++ b/shells/ksh-devel/files/patch-src_cmd_ksh93_sh_macro.c @@ -1,8 +1,79 @@ -diff --git src/cmd/ksh93/sh/macro.c.orig src/cmd/ksh93/sh/macro.c -index aba6f9d..0d60219 100644 ---- src/cmd/ksh93/sh/macro.c.orig -+++ src/cmd/ksh93/sh/macro.c -@@ -2582,7 +2582,7 @@ static void endfield(Mac_t *mp,int split) +--- 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) { diff --git a/shells/ksh/Makefile b/shells/ksh/Makefile index 319bdab02d59..f111d24d6fd5 100644 --- a/shells/ksh/Makefile +++ b/shells/ksh/Makefile @@ -11,7 +11,7 @@ DISTVERSIONPREFIX= v PORTNAME= ksh PORTVERSION= 1.0.5 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= shells MAINTAINER= cy@FreeBSD.org diff --git a/shells/ksh/files/patch-src_cmd_ksh93_sh_macro.c b/shells/ksh/files/patch-src_cmd_ksh93_sh_macro.c index 391cff245ac6..30ba02d5304d 100644 --- a/shells/ksh/files/patch-src_cmd_ksh93_sh_macro.c +++ b/shells/ksh/files/patch-src_cmd_ksh93_sh_macro.c @@ -1,8 +1,79 @@ -diff --git src/cmd/ksh93/sh/macro.c.orig src/cmd/ksh93/sh/macro.c -index aba6f9d..0d60219 100644 ---- src/cmd/ksh93/sh/macro.c.orig -+++ src/cmd/ksh93/sh/macro.c -@@ -2582,7 +2582,7 @@ static void endfield(Mac_t *mp,int split) +--- src/cmd/ksh93/sh/macro.c.orig 2023-06-06 21:29:33.000000000 -0700 ++++ src/cmd/ksh93/sh/macro.c 2023-06-12 19:23:44.427794000 -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 */ +@@ -2582,7 +2585,7 @@ mp->atmode = 0; if(mp->patfound) {