mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-30 05:40:58 +01:00 
			
		
		
		
	users/24959/0002: Update aliases documentation for the addition of the ALIAS_FUNC_DEF option.
This commit is contained in:
		
							parent
							
								
									7f58463dd3
								
							
						
					
					
						commit
						9575f2f1bf
					
				
					 2 changed files with 8 additions and 20 deletions
				
			
		|  | @ -1,5 +1,8 @@ | |||
| 2020-06-27  Daniel Shahaf  <d.s@daniel.shahaf.name> | ||||
| 
 | ||||
| 	* users/24959/0002: Doc/Zsh/grammar.yo: Update aliases | ||||
| 	documentation for the addition of the ALIAS_FUNC_DEF option. | ||||
| 
 | ||||
| 	* users/24959/0001: Doc/Zsh/builtins.yo, Doc/Zsh/grammar.yo: | ||||
| 	Extend documentation of global aliases. | ||||
| 
 | ||||
|  |  | |||
|  | @ -571,6 +571,11 @@ position (if it could be the first word of a simple command), | |||
| or if the alias is global. | ||||
| If the replacement text ends with a space, the next word in the shell input | ||||
| is always eligible for purposes of alias expansion. | ||||
| 
 | ||||
| It is an error for the function name, var(word), in the sh-compatible function | ||||
| definition syntax `var(word) tt(+LPAR()+RPAR()) ...' to be a word that resulted | ||||
| from alias expansion, unless the tt(ALIAS_FUNC_DEF) option is set. | ||||
| 
 | ||||
| findex(alias, use of) | ||||
| cindex(aliases, global) | ||||
| An alias is defined using the tt(alias) builtin; global aliases | ||||
|  | @ -656,26 +661,6 @@ a problem in shell scripts, functions, and code executed with `tt(source)' | |||
| or `tt(.)'.  Consequently, use of functions rather than aliases is | ||||
| recommended in non-interactive code. | ||||
| 
 | ||||
| Note also the unhelpful interaction of aliases and function definitions: | ||||
| 
 | ||||
| example(alias func='noglob func' | ||||
| func+LPAR()RPAR() { | ||||
|     echo Do something with $* | ||||
| }) | ||||
| 
 | ||||
| Because aliases are expanded in function definitions, this causes the | ||||
| following command to be executed: | ||||
| 
 | ||||
| example(noglob func+LPAR()RPAR() { | ||||
|     echo Do something with $* | ||||
| }) | ||||
| 
 | ||||
| which defines tt(noglob) as well as tt(func) as functions with the | ||||
| body given.  To avoid this, either quote the name tt(func) or use the | ||||
| alternative function definition form `tt(function func)'.  Ensuring the | ||||
| alias is defined after the function works but is problematic if the | ||||
| code fragment might be re-executed. | ||||
| 
 | ||||
| texinode(Quoting)()(Aliasing)(Shell Grammar) | ||||
| sect(Quoting) | ||||
| cindex(quoting) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue