mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 18:10:56 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef localedef
 | |
| 
 | |
| local curcontext="$curcontext" state line expl ret=1
 | |
| typeset -A opt_args
 | |
| 
 | |
| if _pick_variant gnu='(GNU|EGLIBC)' unix --version; then
 | |
| 
 | |
|   local exargs="-? --help --usage -V --version"
 | |
|   _arguments -A "-*" -C -S -s \
 | |
|     '(- *)'{-\?,--help}'[display help information]' \
 | |
|     '(- *)--usage[display a short usage message]' \
 | |
|     '(- *)'{-V,--version}'[print program version]' \
 | |
|     "(-A --alias-file $exargs)"{-A+,--alias-file=}'[specify locale alias file]:alias file:_files' \
 | |
|     "($exargs)--prefix=[specify path prefix]:prefix:_files" \
 | |
|     "(-c --force $exargs)"{-c,--force}'[force write despite of warnings]' \
 | |
|     "(-v --verbose $exargs)"{-v,--verbose}'[display additional information]' \
 | |
|     "($exargs)--quiet[suppress messages and warnings]" \
 | |
|     - set1 \
 | |
|     "(-f --charmap $exargs)"{-f+,--charmap=}'[specify locale charmap file]:charmap:->charmap' \
 | |
|     "(-i --inputfile $exargs)"{-i+,--inputfile=}'[specify locale definition file]:locale file:_files' \
 | |
|     "(-u --repertoire-map $exargs)"{-u+,--repertoire-map=}'[specify repertoire map file]:repertoire map file:_files' \
 | |
|     '1:path:_files' \
 | |
|     - set2 \
 | |
|     "(--list-archive $exargs)--list-archive[list locales in archive]" \
 | |
|     - set3 \
 | |
|     "(--delete-from-archive $exargs)--delete-from-archive[delete locale from archive]" \
 | |
|     '*:locale:->locale' \
 | |
|     - set4 \
 | |
|     "(--add-to-archive $exargs)--add-to-archive[add locale to archive]" \
 | |
|     "(--replace $exargs)--replace[replace locale in archive]" \
 | |
|     "(--no-archive $exargs)--no-archive[use subdir not archive]" \
 | |
|     '*:compiled path:_files -/' \
 | |
|     && return 0
 | |
| 
 | |
|   case "$state" in
 | |
|     charmap)
 | |
|       if [[ $words[-1] == */* ]]; then
 | |
|         _wanted charmaps expl charmap _files && ret=0
 | |
|       else
 | |
|         typeset -a charmaps
 | |
|         charmaps=( ${(f)"$(locale -m)"} )
 | |
|         _wanted charmaps expl charmap compadd -a charmaps && ret=0
 | |
|       fi
 | |
|     ;;
 | |
|     locale)
 | |
|       typeset -a locales
 | |
|       local pref=${opt_args[--prefix]}
 | |
|       local p=${pref:+--prefix}
 | |
|       locales=( ${(f)"$(localedef --list-archive $p $pref)"} )
 | |
|       _wanted locales expl locale compadd -a locales && ret=0
 | |
|     ;;
 | |
|   esac
 | |
| 
 | |
|   return ret
 | |
| 
 | |
| else
 | |
| 
 | |
|   typeset -a u_opt bsd_opts
 | |
|   [[ $OSTYPE != darwin* ]] && u_opt=(
 | |
|       '-u+[specify target codeset]:codeset:_files'
 | |
|     )
 | |
|   [[ $OSTYPE == (freebsd*|dragonfly*) ]] && bsd_opts=(
 | |
|       '-D[create BSD-style output]' \
 | |
|       '-U[ignore undefined character symbols]' \
 | |
|       '-v[verbose debug output]' \
 | |
|       '-w+[specify width file]:width file:_files' \
 | |
|     )
 | |
| 
 | |
|   _arguments -A "-*" -C \
 | |
|     '-c[force write despite of warnings]' \
 | |
|     '-f+[specify locale charmap file]:charmap:->charmap' \
 | |
|     '-i+[specify locale definition file]:locale file:_files' \
 | |
|     $u_opt \
 | |
|     $bsd_opts \
 | |
|     '1:path:_files' \
 | |
|     && return 0
 | |
| 
 | |
|   case "$state" in
 | |
|     charmap)
 | |
|       if [[ $words[-1] == */* ]]; then
 | |
|         _wanted charmaps expl charmap _files && ret=0
 | |
|       else
 | |
|         typeset -a charmaps
 | |
|         charmaps=( ${(f)"$(locale -m)"} )
 | |
|         _wanted charmaps expl charmap compadd -a charmaps && ret=0
 | |
|       fi
 | |
|     ;;
 | |
|   esac
 | |
| 
 | |
|   return ret
 | |
| 
 | |
| fi
 |