mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			693 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			693 B
		
	
	
	
		
			Text
		
	
	
	
	
	
# Make hex integers appear as 0x...
 | 
						|
setopt localoptions cbases
 | 
						|
 | 
						|
integer -g _insert_unicode_ready
 | 
						|
 | 
						|
if [[ $LASTWIDGET = insert-unicode-char && $_insert_unicode_ready -eq 1 ]]
 | 
						|
then
 | 
						|
  # Second call; we should have a usable prefix.
 | 
						|
  # If we don't, give up.
 | 
						|
  (( ${+NUMERIC} )) || return 1
 | 
						|
  # Convert it back to hex, padded with zeroes to 8 digits plus the 0x...
 | 
						|
  local -i 16 -Z 10 arg=$NUMERIC
 | 
						|
  # ...and use print to turn this into a Unicode character.
 | 
						|
  LBUFFER+="$(print -n "\U${arg##0x}")"
 | 
						|
  _insert_unicode_ready=0
 | 
						|
else
 | 
						|
  # Set the base to 16...
 | 
						|
  zle argument-base 16
 | 
						|
  # ...wait for user to type hex keys then call this widget again.
 | 
						|
  zle universal-argument
 | 
						|
  _insert_unicode_ready=1
 | 
						|
fi
 |