commit 4763efea0acd393f3171783770634ae4b620945c
Author: Jakub Bogusz <[email protected]>
Date:   Fri Sep 21 22:26:47 2018 +0200

    - added defer-unalias patch (so that unexecuted function definition doesn't 
remove alias of same name)

 pdksh-defer-unalias.patch | 39 +++++++++++++++++++++++++++++++++++++++
 pdksh.spec                |  4 +++-
 2 files changed, 42 insertions(+), 1 deletion(-)
---
diff --git a/pdksh.spec b/pdksh.spec
index 83e7fd0..a499624 100644
--- a/pdksh.spec
+++ b/pdksh.spec
@@ -28,6 +28,7 @@ Patch1:               %{name}-debian.patch
 Patch2:                %{name}-tablesize.patch
 Patch3:                %{name}-memcpy.patch
 Patch4:                %{name}-history.patch
+Patch5:                %{name}-defer-unalias.patch
 Patch9:                %{name}-no_stop_alias.patch
 Patch10:       %{name}-man_no_plusminus.patch
 Patch11:       %{name}-circumflex.patch
@@ -116,12 +117,13 @@ komendami powłoki sh(1).
 W tym pakiecie jest pdksh skonsolidowany statycznie.
 
 %prep
-%setup  -q
+%setup -q
 %{?with_static:%patch0 -p0}
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
 %patch9 -p1
 %patch11 -p1
 %patch13 -p1
diff --git a/pdksh-defer-unalias.patch b/pdksh-defer-unalias.patch
new file mode 100644
index 0000000..0094d7c
--- /dev/null
+++ b/pdksh-defer-unalias.patch
@@ -0,0 +1,39 @@
+--- pdksh-5.2.14/exec.c.orig   2018-09-21 21:09:25.763470692 +0200
++++ pdksh-5.2.14/exec.c        2018-09-21 21:49:09.843443470 +0200
+@@ -932,11 +932,20 @@
+       const char *name;
+       struct op *t;
+ {
++      int nhash;
+       struct tbl *tp;
+       int was_set = 0;
+ 
++      nhash = hash(name);
++
++      if (t != NULL && !(t->u.ksh_func)) {
++              /* drop same-name aliases for POSIX functions */
++              if ((tp = tsearch(&aliases, name, nhash)))
++                      tdelete(tp);
++      }
++
+       while (1) {
+-              tp = findfunc(name, hash(name), TRUE);
++              tp = findfunc(name, nhash, TRUE);
+ 
+               if (tp->flag & ISSET)
+                       was_set = 1;
+--- pdksh-5.2.14/lex.c.orig    2018-09-21 21:09:25.766804025 +0200
++++ pdksh-5.2.14/lex.c 2018-09-21 21:48:05.983444200 +0200
+@@ -759,11 +759,7 @@
+                       
+                  if (last_terminal_was_bracket) { 
+                  /* The token is probably part of function's definition,
+-                  * and is should not be aliased. Moreover we remove the alias
+-                  * so it won't clash with the function name
+-                  * [email protected], Feb 26th, 2005
+-                  */
+-                      tdelete(p);
++                  * and is should not be aliased. */
+                  } else {             
+                       register Source *s;
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/pdksh.git/commitdiff/4763efea0acd393f3171783770634ae4b620945c

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to