mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-28 05:00:59 +01:00
40745 + 40753: Fix 'unset ZLE_RPROMPT_INDENT' not restoring the default behaviour.
To reproduce:
RPS1=foo
ZLE_RPROMPT_INDENT=42
unset ZLE_RPROMPT_INDENT
This commit is contained in:
parent
a5482971b7
commit
67d882479b
3 changed files with 23 additions and 2 deletions
|
|
@ -1,5 +1,8 @@
|
|||
2017-03-08 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||
|
||||
* 40745 + 40753: Src/init.c, Src/params.c: Fix 'unset
|
||||
ZLE_RPROMPT_INDENT' not restoring the default behaviour.
|
||||
|
||||
* 40744: Doc/Zsh/grammar.yo: Document the SHORT_LOOPS 'function'
|
||||
syntax.
|
||||
|
||||
|
|
|
|||
|
|
@ -790,7 +790,7 @@ init_term(void)
|
|||
tcstr[TCCLEARSCREEN] = ztrdup("\14");
|
||||
tclen[TCCLEARSCREEN] = 1;
|
||||
}
|
||||
rprompt_indent = 1;
|
||||
rprompt_indent = 1; /* If you change this, update rprompt_indent_unsetfn() */
|
||||
/* The following is an attempt at a heuristic,
|
||||
* but it fails in some cases */
|
||||
/* rprompt_indent = ((hasam && !hasbw) || hasye || !tccan(TCLEFT)); */
|
||||
|
|
|
|||
20
Src/params.c
20
Src/params.c
|
|
@ -128,6 +128,11 @@ struct timeval shtimer;
|
|||
/**/
|
||||
mod_export int termflags;
|
||||
|
||||
/* Forward declaration */
|
||||
|
||||
static void
|
||||
rprompt_indent_unsetfn(Param pm, int exp);
|
||||
|
||||
/* Standard methods for get/set/unset pointers in parameters */
|
||||
|
||||
/**/
|
||||
|
|
@ -241,6 +246,9 @@ static const struct gsu_integer argc_gsu =
|
|||
static const struct gsu_array pipestatus_gsu =
|
||||
{ pipestatgetfn, pipestatsetfn, stdunsetfn };
|
||||
|
||||
static const struct gsu_integer rprompt_indent_gsu =
|
||||
{ intvargetfn, zlevarsetfn, rprompt_indent_unsetfn };
|
||||
|
||||
/* Nodes for special parameters for parameter hash table */
|
||||
|
||||
#ifdef HAVE_UNION_INIT
|
||||
|
|
@ -327,7 +335,7 @@ IPDEF4("ZSH_SUBSHELL", &zsh_subshell),
|
|||
#define IPDEF5U(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL|PM_UNSET},BR((void *)B),GSU(F),10,0,NULL,NULL,NULL,0}
|
||||
IPDEF5("COLUMNS", &zterm_columns, zlevar_gsu),
|
||||
IPDEF5("LINES", &zterm_lines, zlevar_gsu),
|
||||
IPDEF5U("ZLE_RPROMPT_INDENT", &rprompt_indent, zlevar_gsu),
|
||||
IPDEF5U("ZLE_RPROMPT_INDENT", &rprompt_indent, rprompt_indent_gsu),
|
||||
IPDEF5("SHLVL", &shlvl, varinteger_gsu),
|
||||
|
||||
/* Don't import internal integer status variables. */
|
||||
|
|
@ -3733,6 +3741,16 @@ zlevarsetfn(Param pm, zlong x)
|
|||
adjustwinsize(2 + (p == &zterm_columns));
|
||||
}
|
||||
|
||||
|
||||
/* Implements gsu_integer.unsetfn for ZLE_RPROMPT_INDENT; see stdunsetfn() */
|
||||
|
||||
static void
|
||||
rprompt_indent_unsetfn(Param pm, int exp)
|
||||
{
|
||||
stdunsetfn(pm, exp);
|
||||
rprompt_indent = 1; /* Keep this in sync with init_term() */
|
||||
}
|
||||
|
||||
/* Function to set value of generic special scalar *
|
||||
* parameter. data is pointer to a character pointer *
|
||||
* representing the scalar (string). */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue