summaryrefslogtreecommitdiffstats
path: root/source/ap/ksh93/patches/ksh-20120801-oldenvinit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/ksh93/patches/ksh-20120801-oldenvinit.patch')
-rw-r--r--source/ap/ksh93/patches/ksh-20120801-oldenvinit.patch95
1 files changed, 0 insertions, 95 deletions
diff --git a/source/ap/ksh93/patches/ksh-20120801-oldenvinit.patch b/source/ap/ksh93/patches/ksh-20120801-oldenvinit.patch
deleted file mode 100644
index 8ee086314..000000000
--- a/source/ap/ksh93/patches/ksh-20120801-oldenvinit.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-diff -up ksh-20120801/src/cmd/ksh93/sh/init.c.fixset ksh-20120801/src/cmd/ksh93/sh/init.c
---- ksh-20120801/src/cmd/ksh93/sh/init.c.fixset 2014-11-03 15:45:36.510997271 +0100
-+++ ksh-20120801/src/cmd/ksh93/sh/init.c 2014-11-03 16:20:44.398917280 +0100
-@@ -2003,8 +2003,91 @@ static Dt_t *inittree(Shell_t *shp,const
- * skip over items that are not name-value pairs
- */
-
-+
- static void env_init(Shell_t *shp)
- {
-+ register char *cp;
-+ register Namval_t *np;
-+ register char **ep=environ;
-+ register char *next=0;
-+#ifdef _ENV_H
-+ shp->env = env_open(environ,3);
-+ env_delete(shp->env,"_");
-+#endif
-+ if(ep)
-+ {
-+ while(cp= *ep++)
-+ {
-+ if(*cp=='A' && cp[1]=='_' && cp[2]=='_' && cp[3]=='z' && cp[4]=='=')
-+ next = cp+4;
-+ else if(np=nv_open(cp,shp->var_tree,(NV_EXPORT|NV_IDENT|NV_ASSIGN|NV_NOFAIL)))
-+ {
-+ nv_onattr(np,NV_IMPORT);
-+ np->nvenv = cp;
-+ nv_close(np);
-+ }
-+ else /* swap with front */
-+ {
-+ ep[-1] = environ[shp->nenv];
-+ environ[shp->nenv++] = cp;
-+ }
-+ }
-+ while(cp=next)
-+ {
-+ if(next = strchr(++cp,'='))
-+ *next = 0;
-+ np = nv_search(cp+2,shp->var_tree,NV_ADD);
-+ if(np!=SHLVL && nv_isattr(np,NV_IMPORT|NV_EXPORT))
-+ {
-+ int flag = *(unsigned char*)cp-' ';
-+ int size = *(unsigned char*)(cp+1)-' ';
-+ if((flag&NV_INTEGER) && size==0)
-+ {
-+ /* check for floating*/
-+ char *ep,*val = nv_getval(np);
-+ strtol(val,&ep,10);
-+ if(*ep=='.' || *ep=='e' || *ep=='E')
-+ {
-+ char *lp;
-+ flag |= NV_DOUBLE;
-+ if(*ep=='.')
-+ {
-+ strtol(ep+1,&lp,10);
-+ if(*lp)
-+ ep = lp;
-+ }
-+ if(*ep && *ep!='.')
-+ {
-+ flag |= NV_EXPNOTE;
-+ size = ep-val;
-+ }
-+ else
-+ size = strlen(ep);
-+ size--;
-+ }
-+ }
-+ nv_newattr(np,flag|NV_IMPORT|NV_EXPORT,size);
-+ }
-+ else
-+ cp += 2;
-+ }
-+ }
-+#ifdef _ENV_H
-+ env_delete(shp->env,e_envmarker);
-+#endif
-+ if(nv_isnull(PWDNOD) || nv_isattr(PWDNOD,NV_TAGGED))
-+ {
-+ nv_offattr(PWDNOD,NV_TAGGED);
-+ path_pwd(shp,0);
-+ }
-+ if((cp = nv_getval(SHELLNOD)) && (sh_type(cp)&SH_TYPE_RESTRICTED))
-+ sh_onoption(SH_RESTRICTED); /* restricted shell */
-+ return;
-+}
-+
-+
-+static void env_init_backup(Shell_t *shp)
-+{
- register char *cp;
- register Namval_t *np,*mp;
- register char **ep=environ;