diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/prompt.c | 2 | ||||
-rw-r--r-- | Test/D01prompt.ztst | 8 |
3 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 0fa26a580..1d8537321 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2019-02-03 dana <dana@dana.is> + + * 44030: Src/prompt.c, Test/D01prompt.ztst: Return error for + unrecognised colour name + 2019-01-28 Fredric Silberberg <fred@silberberg.xyz> * github #32: Completion/Unix/Command/_git: Fix a typo in the diff --git a/Src/prompt.c b/Src/prompt.c index 4603ffba6..f2b3f161e 100644 --- a/Src/prompt.c +++ b/Src/prompt.c @@ -1663,6 +1663,8 @@ match_colour(const char **teststrp, int is_fg, int colour) /* default */ return is_fg ? TXTNOFGCOLOUR : TXTNOBGCOLOUR; } + if (colour < 0) + return TXT_ERROR; } else { colour = (int)zstrtol(*teststrp, (char **)teststrp, 10); diff --git a/Test/D01prompt.ztst b/Test/D01prompt.ztst index 56b7c294a..7ff478e68 100644 --- a/Test/D01prompt.ztst +++ b/Test/D01prompt.ztst @@ -221,3 +221,11 @@ print ${(%U)Y-%(v} 0:Regression test for test on empty psvar > + +# Unrecognised colour strings should produce the default sequence + f=${(%):-'%f'} # Recognised + Fdefault=${(%):-'%F{default}'} # Recognised + Freset=${(%):-'%F{reset}'} # Unrecognised + Ffoo=${(%):-'%F{foo}'} # Unrecognised + [[ $f == $Fdefault && $Fdefault == $Freset && $Freset == $Ffoo ]] +0:Regression test for workers/44029 |