Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: RPS* and RPROMPT* are no longer tied since zsh 5.0.6
- X-seq: zsh-workers 49628
- From: Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
- To: Marc Cornellà <hello@xxxxxxxxxxxxx>
- Cc: zsh-workers@xxxxxxx
- Subject: Re: RPS* and RPROMPT* are no longer tied since zsh 5.0.6
- Date: Wed, 1 Dec 2021 06:32:11 +0000
- Archived-at: <https://zsh.org/workers/49628>
- In-reply-to: <CACn48Nqckr7epujOdhK_3wT-jyCABPBk=mFJK=jEUVaGf0rQEg@mail.gmail.com>
- List-id: <zsh-workers.zsh.org>
- References: <CACn48Nqckr7epujOdhK_3wT-jyCABPBk=mFJK=jEUVaGf0rQEg@mail.gmail.com>
Marc Cornellà wrote on Wed, Nov 24, 2021 at 11:03:58 +0100:
> doing some testing I've found that, when either RPS1 or RPROMPT are
> unset (but not both), changes in one of them are not reflected in the
> other. The same happens with RPS2 and RPROMPT2.
> The same does not happen with PS* and PROMPT*.
>
> % zsh_test_versions 'RPS1=abcd; echo RPS1=$RPS1 RPROMPT=$RPROMPT' #
> function in https://github.com/mcornella/dotfiles/blob/4bf802f6/functions#L78-L118
> 4.3.11: RPS1=abcd RPROMPT=abcd
⋮
> 5.0.5: RPS1=abcd RPROMPT=abcd
> 5.0.6: RPS1=abcd RPROMPT=
⋮
> 5.8: RPS1=abcd RPROMPT=
> master: RPS1=abcd RPROMPT=
>
Thanks. Bisects to 32337. (That post refers to another thread without
identifying it. I think the referenced thread is 32158.)
> I can work around that, but should this be considered a bug or is this intended?
Looks like a bug to me. The two Param's share the param::u.data member,
so once both are set changes to one are reflected in the other.
However, they are both initialized with PM_UNSET. Presumably, setting
either doesn't remove the PM_UNSET flag from the other, and then the
presence of PM_UNSET causes the value not to be used, even though it's
non-NULL.
diff --git a/Test/D01prompt.ztst b/Test/D01prompt.ztst
index 3fb27e620..6879e6fd1 100644
--- a/Test/D01prompt.ztst
+++ b/Test/D01prompt.ztst
@@ -257,3 +257,9 @@
ZTST_skip='Missing terminfo module or non-colour terminal'
fi
0:Equivalence of terminal colour settings (background colour)
+
+ (RPS1=foo; echo $RPS1 $RPROMPT)
+ (RPS2=bar; echo $RPS2 $RPROMPT2)
+-fD:RPS1 and RPROMPT are aliases (regression from 5.0.6) (workers/49600)
+>foo foo
+>bar bar
Messages sorted by:
Reverse Date,
Date,
Thread,
Author