widget binding: Properly escape widget names at definition.
Re-Fixes zsh-users/zsh-syntax-highlighting#278.
This commit is contained in:
		
							parent
							
								
									47a664447c
								
							
						
					
					
						commit
						6a634fac9f
					
				|  | @ -224,19 +224,22 @@ _zsh_highlight_bind_widgets() | ||||||
| 
 | 
 | ||||||
|       # The "eval"'s are required to make $cur_widget a closure: the value of the parameter at function |       # The "eval"'s are required to make $cur_widget a closure: the value of the parameter at function | ||||||
|       # definition time is used. |       # definition time is used. | ||||||
|  |       # | ||||||
|  |       # We can't use ${0/_zsh_highlight_widget_} because these widgets are always invoked with | ||||||
|  |       # NO_function_argzero, regardless of the option's setting here. | ||||||
| 
 | 
 | ||||||
|       # User defined widget: override and rebind old one with prefix "orig-". |       # User defined widget: override and rebind old one with prefix "orig-". | ||||||
|       user:*) zle -N orig-$cur_widget ${widgets[$cur_widget]#*:} |       user:*) zle -N orig-$cur_widget ${widgets[$cur_widget]#*:} | ||||||
|               eval "_zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget orig-$cur_widget -- \"\$@\" }" |               eval "_zsh_highlight_widget_${(q)cur_widget}() { _zsh_highlight_call_widget orig-${(q)cur_widget} -- \"\$@\" }" | ||||||
|               zle -N $cur_widget _zsh_highlight_widget_$cur_widget;; |               zle -N $cur_widget _zsh_highlight_widget_$cur_widget;; | ||||||
| 
 | 
 | ||||||
|       # Completion widget: override and rebind old one with prefix "orig-". |       # Completion widget: override and rebind old one with prefix "orig-". | ||||||
|       completion:*) zle -C orig-$cur_widget ${${widgets[$cur_widget]#*:}/:/ } |       completion:*) zle -C orig-$cur_widget ${${widgets[$cur_widget]#*:}/:/ } | ||||||
|                     eval "_zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget orig-$cur_widget -- \"\$@\" }" |                     eval "_zsh_highlight_widget_${(q)cur_widget}() { _zsh_highlight_call_widget orig-${(q)cur_widget} -- \"\$@\" }" | ||||||
|                     zle -N $cur_widget _zsh_highlight_widget_$cur_widget;; |                     zle -N $cur_widget _zsh_highlight_widget_$cur_widget;; | ||||||
| 
 | 
 | ||||||
|       # Builtin widget: override and make it call the builtin ".widget". |       # Builtin widget: override and make it call the builtin ".widget". | ||||||
|       builtin) eval "_zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget .$cur_widget -- \"\$@\" }" |       builtin) eval "_zsh_highlight_widget_${(q)cur_widget}() { _zsh_highlight_call_widget .${(q)cur_widget} -- \"\$@\" }" | ||||||
|                zle -N $cur_widget _zsh_highlight_widget_$cur_widget;; |                zle -N $cur_widget _zsh_highlight_widget_$cur_widget;; | ||||||
| 
 | 
 | ||||||
|       # Default: unhandled case. |       # Default: unhandled case. | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue