diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Completion/Linux/Command/_chrt | 61 | ||||
-rw-r--r-- | Completion/Linux/Command/_ionice | 23 |
3 files changed, 88 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 63ad6134c..e8f88f88e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2008-09-21 Clint Adams <clint@zsh.org> + * Jörg Sommer: 25702: Completion/Linux/Command/_chrt, + Completion/Linux/Command/_ionice: completions for chrt and ionice + commands. + * 25701 (tweaked): Src/exec.c: fix memory leak in loadautofn. * 25697: Functions/Prompts/prompt_clint_setup: drop git code and diff --git a/Completion/Linux/Command/_chrt b/Completion/Linux/Command/_chrt new file mode 100644 index 000000000..f82ec8b81 --- /dev/null +++ b/Completion/Linux/Command/_chrt @@ -0,0 +1,61 @@ +#compdef chrt + +local context state line +typeset -A opt_args + +_arguments \ + '(* -)'{-h,--help}'[display usage information]' \ + '(* -)'{-V,--version}'[output version information]' \ + {-v,--verbose}'[display status information]' \ + {-p,--pid}'[interpret args as process ID]' \ + '(-b --batch -f --fifo -o --other -r --rr)'{-b,--batch}'[set scheduling policy to SCHED_BATCH]' \ + '(-b --batch -f --fifo -o --other -r --rr)'{-f,--fifo}'[set scheduling policy to SCHED_FIFO]' \ + '(-b --batch -f --fifo -o --other -r --rr)'{-o,--other}'[set policy scheduling policy to SCHED_OTHER]' \ + '(-b --batch -f --fifo -o --other -r --rr)'{-r,--rr}'[set scheduling policy to SCHED_RR]' \ + '(* -)'{-m,--max}'[show minimum and maximum valid priorities, then exit]' \ + '*::command or priority:->cmd_or_prio' \ + && return 0 + +_chrt_priority() +{ + local ty + if (( $+opt_args[-b] || $+opt_args[--batch] )) + then + ty=BATCH + elif (( $+opt_args[-f] || $+opt_args[--fifo] )) + then + ty=FIFO + elif (( $+opt_args[-o] || $+opt_args[--other] )) + then + ty=OTHER + else + ty=RR + fi + local range + range=${${"$(_call_program priorities chrt --max)"#*SCHED_$ty*: }%$'\n'*} + if [[ $range = 0/0 ]] + then + compadd 0 + else + _message -e priority "priority in the range $range" + fi +} + +if (( $+opt_args[-p] || $+opt_args[--pid] )) +then + if [[ $CURRENT -eq 1 ]] + then + _alternative \ + 'priority:priority:_chrt_priority' \ + 'processes:process IDs:_pids' + else + _pids + fi +elif [[ $CURRENT -eq 1 ]] +then + _chrt_priority +else + shift words + (( CURRENT-- )) + _normal +fi diff --git a/Completion/Linux/Command/_ionice b/Completion/Linux/Command/_ionice new file mode 100644 index 000000000..7a4060341 --- /dev/null +++ b/Completion/Linux/Command/_ionice @@ -0,0 +1,23 @@ +#compdef ionice + +local context state line +typeset -A opt_args + +_arguments \ + '(* -)-h[display usage information]' \ + '-p[interpret args as process ID]' \ + '-c[scheduling class]:class:(( 1\:realtime 2\:best-effort 3\:idle ))' \ + '-n[scheduling class priority]:class-pririty:(( + 0\:high\ priority + {1..6}\: + 7\:low\ priority + ))' \ + '*::command or pid:->cmd_or_pid' \ + && return 0 + +if (( $+opt_args[-p] )) +then + _pids +else + _normal +fi |