generate-cmdlist.sh: stop sorting category lines
In a preceding commit we changed the print_command_list() loop to use
printf's auto-repeat feature. Let's now get rid of get_category_line()
entirely by not sorting the categories.
This will change the output of the generated code from e.g.:
- { "git-apply", N_("Apply a patch to files and/or to the index"), 0 | CAT_complete | CAT_plumbingmanipulators },
To:
+ { "git-apply", N_("Apply a patch to files and/or to the index"), 0 | CAT_plumbingmanipulators | CAT_complete },
I.e. the categories are no longer sorted, but as they're OR'd together
it won't matter for the end result.
This speeds up the generate-cmdlist.sh a bit. Comparing HEAD~ (old)
and "master" to this code:
'sh generate-cmdlist.sh command-list.txt' ran
1.07 ± 0.33 times faster than 'sh generate-cmdlist.sh.old command-list.txt'
1.15 ± 0.36 times faster than 'sh generate-cmdlist.sh.master command-list.txt'
Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
66d55b990e
commit
8d5be8b421
@ -9,11 +9,6 @@ command_list () {
|
||||
eval "grep -ve '^#' $exclude_programs" <"$1"
|
||||
}
|
||||
|
||||
get_category_line () {
|
||||
tr ' ' '\012' |
|
||||
LC_ALL=C sort -u
|
||||
}
|
||||
|
||||
category_list () {
|
||||
command_list "$1" |
|
||||
cut -c 40- |
|
||||
@ -67,7 +62,7 @@ print_command_list () {
|
||||
while read cmd rest
|
||||
do
|
||||
printf " { \"$cmd\", $(get_synopsis $cmd), 0"
|
||||
printf " | CAT_%s" $(echo "$rest" | get_category_line)
|
||||
printf " | CAT_%s" $rest
|
||||
echo " },"
|
||||
done
|
||||
echo "};"
|
||||
|
||||
Reference in New Issue
Block a user