# HG changeset patch # User Lijo George # Date 1487841671 28800 # Node ID df734e7c2a96f27059c2b5de27a49fd60b28a207 # Parent 8e5bb71809b9c49d279bcec08a70ec998acd1411 19315768 ksh93(1) lacks description of Parameter Expansions for :=, :?, and :+ 23319761 cd going dotty by removing leading periods in dir names diff -r 8e5bb71809b9 -r df734e7c2a96 components/ksh93/Makefile --- a/components/ksh93/Makefile Tue Feb 21 05:41:26 2017 -0800 +++ b/components/ksh93/Makefile Thu Feb 23 01:21:11 2017 -0800 @@ -18,7 +18,7 @@ # # CDDL HEADER END # -# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. # include ../../make-rules/shared-macros.mk @@ -84,7 +84,7 @@ 19907453.patch 22461939.patch \ 22550551.patch 22561374.patch \ 22964126.patch 22964338.patch \ - 22964358.patch + 22964358.patch 23319761.patch # Fixup HOSTTYPE to match uname output and bits HOSTTYPE32=sol11.$(shell uname -p) diff -r 8e5bb71809b9 -r df734e7c2a96 components/ksh93/ksh93.p5m --- a/components/ksh93/ksh93.p5m Tue Feb 21 05:41:26 2017 -0800 +++ b/components/ksh93/ksh93.p5m Thu Feb 23 01:21:11 2017 -0800 @@ -18,12 +18,13 @@ # # CDDL HEADER END # -# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. # # The man pages are all at the top of a "files" directory; setting the hash to # point to the files therein. set action.hash %<1> > + set action.hash src/cmd/ksh93/sh.1> # Bypassing the mangler for these files because they are pre-Solarified. add mangler.bypass true > set name=pkg.fmri \ @@ -101,7 +102,7 @@ dir path=usr/share/man/man1 file path=usr/share/man/man1/alias.1 file path=usr/share/man/man1/jsh.1 -file path=usr/share/man/man1/ksh.1 +file src/cmd/ksh93/sh.1 path=usr/share/man/man1/ksh.1 file path=usr/share/man/man1/ksh93.1 file path=usr/share/man/man1/rksh.1 file path=usr/share/man/man1/sh.1 diff -r 8e5bb71809b9 -r df734e7c2a96 components/ksh93/patches/23319761.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/ksh93/patches/23319761.patch Thu Feb 23 01:21:11 2017 -0800 @@ -0,0 +1,51 @@ +This fix comes from the community, this patch ports the relevant +changes from the upstream 2013-10-10-alpha version which fixed the issue. +--- INIT.2012-08-01.old/src/cmd/ksh93/bltins/cd_pwd.c 2016-06-28 04:05:14.983264679 -0700 ++++ INIT.2012-08-01/src/cmd/ksh93/bltins/cd_pwd.c 2016-06-28 04:12:16.937817270 -0700 +@@ -109,34 +109,20 @@ + if(!oldpwd) + oldpwd = path_pwd(shp,1); + } +- if(*dir=='.') ++ if(*dir!='/') + { +- /* test for pathname . ./ .. or ../ */ +- int n=0; +- char *sp; +- for(dp=dir; *dp=='.'; dp++) ++ /* check for leading .. */ ++ char *cp; ++ sfprintf(shp->strbuf,"%s",dir); ++ cp = sfstruse(shp->strbuf); ++ pathcanon(cp, 0); ++ if(cp[0]=='.' && cp[1]=='.' && (cp[2]=='/' || cp[2]==0)) + { +- if(*++dp=='.' && (*++dp=='/' || *dp==0)) +- n++; +- else if(*dp && *dp!='/') +- break; +- if(*dp==0) +- break; +- } +- if(n) +- { +- cdpath = 0; +- sp = oldpwd + strlen(oldpwd); +- while(n--) +- { +- while(--sp > oldpwd && *sp!='/'); +- if(sp==oldpwd) +- break; +- +- } +- sfwrite(shp->strbuf,oldpwd,sp+1-oldpwd); +- sfputr(shp->strbuf,dp,0); +- dir = sfstruse(shp->strbuf); ++ if(!shp->strbuf2) ++ shp->strbuf2 = sfstropen(); ++ sfprintf(shp->strbuf2,"%s/%s",oldpwd,cp); ++ dir = sfstruse(shp->strbuf2); ++ pathcanon(dir, 0); + } + } + rval = -1;