summaryrefslogtreecommitdiffstats
path: root/source/ap/ksh93/patches/ksh-20120801-cdfork.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/ksh93/patches/ksh-20120801-cdfork.patch')
-rw-r--r--source/ap/ksh93/patches/ksh-20120801-cdfork.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/source/ap/ksh93/patches/ksh-20120801-cdfork.patch b/source/ap/ksh93/patches/ksh-20120801-cdfork.patch
new file mode 100644
index 000000000..c82cb4c00
--- /dev/null
+++ b/source/ap/ksh93/patches/ksh-20120801-cdfork.patch
@@ -0,0 +1,40 @@
+--- ksh-20120801/src/cmd/ksh93/sh/path.c 2014-09-01 15:08:06.738969962 -0300
++++ ksh-20120801/src/cmd/ksh93/sh/path.c 2014-09-01 15:13:51.321459978 -0300
+@@ -229,13 +229,12 @@ static pid_t path_xargs(Shell_t *shp,con
+ /*
+ * make sure PWD is set up correctly
+ * Return the present working directory
+- * Invokes getcwd() if flag==0 and if necessary
++ * Invokes getcwd() if necessary
+ * Sets the PWD variable to this value
+ */
+ char *path_pwd(Shell_t *shp,int flag)
+ {
+ register char *cp;
+- register char *dfault = (char*)e_dot;
+ register int count = 0;
+ if(shp->pwd)
+ return((char*)shp->pwd);
+@@ -254,11 +253,6 @@ char *path_pwd(Shell_t *shp,int flag)
+ cp = "/";
+ break;
+ case 3:
+- cp = (char*)e_crondir;
+- if(flag) /* skip next case when non-zero flag */
+- ++count;
+- break;
+- case 4:
+ {
+ if(cp=getcwd(NIL(char*),0))
+ {
+@@ -269,8 +263,8 @@ char *path_pwd(Shell_t *shp,int flag)
+ }
+ break;
+ }
+- case 5:
++ case 4:
+- return(dfault);
++ return((char*)e_dot);
+ }
+ if(cp && *cp=='/' && test_inode(cp,e_dot))
+ break;