'main': Fix regression in zsh 5.3.1 and older: all precmd hooks later than z-sy-h would be aborted.
In those versions of zsh, «[[ -o nosuchoption ]]» is regarded as a syntax error. In newer zsh versions, it merely returns non-zero (specifically, it returns 3, unlike «[[ -o unsetoption ]]» which returns 1). Fixes #732. Fixes #733.
This commit is contained in:
		
							parent
							
								
									0582ea1910
								
							
						
					
					
						commit
						3a4b212c7d
					
				|  | @ -77,7 +77,7 @@ | ||||||
| 
 | 
 | ||||||
| - Fix an error message on stderr before every prompt when the `WARN_NESTED_VAR` zsh option is set: | - Fix an error message on stderr before every prompt when the `WARN_NESTED_VAR` zsh option is set: | ||||||
|   `_zsh_highlight_main__precmd_hook:1: array parameter _zsh_highlight_main__command_type_cache set in enclosing scope in function _zsh_highlight_main__precmd_hook` |   `_zsh_highlight_main__precmd_hook:1: array parameter _zsh_highlight_main__command_type_cache set in enclosing scope in function _zsh_highlight_main__precmd_hook` | ||||||
|   [#727, #731] |   [#727, #731, #732, #733] | ||||||
| 
 | 
 | ||||||
| # Changes in version 0.7.1 | # Changes in version 0.7.1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1692,7 +1692,7 @@ _zsh_highlight_main__precmd_hook() { | ||||||
|   # Unset the WARN_NESTED_VAR option, taking care not to error if the option |   # Unset the WARN_NESTED_VAR option, taking care not to error if the option | ||||||
|   # doesn't exist (zsh older than zsh-5.3.1-test-2). |   # doesn't exist (zsh older than zsh-5.3.1-test-2). | ||||||
|   setopt localoptions |   setopt localoptions | ||||||
|   if [[ -o warnnestedvar ]] 2>/dev/null; then |   if eval '[[ -o warnnestedvar ]]' 2>/dev/null; then | ||||||
|     unsetopt warnnestedvar |     unsetopt warnnestedvar | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue