On August 11, 2017 5:23:38 PM GMT+02:00, Philip Guenther <guent...@gmail.com> 
wrote:
>
>Currently, if ksh starts as root and PS1 was exported but doesn't
>contain 
>'#' or '\$' (which will be expanded to '#') then it'll override it with
>
>the root default of '# '.  This is kind of a corner case, because PS1
>is 
>not normally exported.

So this means I, or at least someone, will not get his prompt changed to 
indicate he's in the danger zone, while it used to do so in the past. I always 
kind of liked this annoyance, but if it's in the way, go ahead.

OK halex@. 

>
>phessler's research seems to indicate that we're alone in behaving this
>
>way: everyone else seems to not check but just uses the exported PS1 
>blindly.
>
>This is making it difficult to port mininet to OpenBSD.  Let's stop
>being 
>different.
>
>ok?
>
>Philip
>
>Index: main.c
>===================================================================
>RCS file: /data/src/openbsd/src/bin/ksh/main.c,v
>retrieving revision 1.82
>diff -u -p -r1.82 main.c
>--- main.c     17 Oct 2016 17:44:47 -0000      1.82
>+++ main.c     11 Aug 2017 15:16:36 -0000
>@@ -313,14 +313,11 @@ main(int argc, char *argv[])
>       {
>               struct tbl *vp = global("PS1");
> 
>-              /* Set PS1 if it isn't set, or we are root and prompt doesn't
>-               * contain a # or \$ (only in ksh mode).
>-               */
>-              if (!(vp->flag & ISSET) ||
>-                  (!ksheuid && !strchr(str_val(vp), '#') &&
>-                  (Flag(FSH) || !strstr(str_val(vp), "\\$"))))
>+              /* Set PS1 if it isn't set */
>+              if (!(vp->flag & ISSET)) {
>                       /* setstr can't fail here */
>                       setstr(vp, safe_prompt, KSH_RETURN_ERROR);
>+              }
>       }
> 
>       /* Set this before parsing arguments */
>Index: ksh.1
>===================================================================
>RCS file: /data/src/openbsd/src/bin/ksh/ksh.1,v
>retrieving revision 1.191
>diff -u -p -r1.191 ksh.1
>--- ksh.1      6 Jul 2017 15:42:04 -0000       1.191
>+++ ksh.1      11 Aug 2017 15:17:09 -0000
>@@ -1535,15 +1535,6 @@ The default prompt is
> for non-root users,
> .Sq #\ \&
> for root.
>-If
>-.Nm
>-is invoked by root and
>-.Ev PS1
>-does not contain a
>-.Sq #
>-character, the default value will be used even if
>-.Ev PS1
>-already exists in the environment.
> .Pp
> The following backslash-escaped special characters can be used
> to customise the prompt:

Reply via email to