mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 21:31:19 +08:00 
			
		
		
		
	z: refresh $RANDOM's value outside subshell
This change references `$RANDOM` outside the subshell to refresh it for the next subshell invocation. Otherwise, subsequent runs of the function get the same value and, if run simultaneously, they may clobber each others' temp .z files. This is due to how zsh distributes RANDOM values when running inside a subshell: subshells that reference RANDOM will result in identical pseudo-random values unless the value of RANDOM is referenced or seeded in the parent shell in between subshell invocations See: http://zsh.sourceforge.net/Doc/Release/Parameters.html#index-RANDOM
This commit is contained in:
		
							parent
							
								
									851899e59e
								
							
						
					
					
						commit
						052493b1ba
					
				@ -222,10 +222,16 @@ if type compctl >/dev/null 2>&1; then
 | 
			
		||||
        if [ "$_Z_NO_RESOLVE_SYMLINKS" ]; then
 | 
			
		||||
            _z_precmd() {
 | 
			
		||||
                (_z --add "${PWD:a}" &)
 | 
			
		||||
                # Reference $RANDOM to refresh its value inside the subshell
 | 
			
		||||
                # Otherwise, multiple runs get the same value
 | 
			
		||||
                : $RANDOM
 | 
			
		||||
            }
 | 
			
		||||
        else
 | 
			
		||||
            _z_precmd() {
 | 
			
		||||
                (_z --add "${PWD:A}" &)
 | 
			
		||||
                # Reference $RANDOM to refresh its value inside the subshell
 | 
			
		||||
                # Otherwise, multiple runs get the same value
 | 
			
		||||
                : $RANDOM
 | 
			
		||||
            }
 | 
			
		||||
        fi
 | 
			
		||||
        [[ -n "${precmd_functions[(r)_z_precmd]}" ]] || {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user