Problem: Script for creating cmdidxs can be improved.
Solution: Count skipped lines instead of collecting the lines. Add "const".
(Dominique Pelle, closes #1594)
# Script should be run every time new Ex commands are added in Vim,
# from the src/vim directory, since it reads commands from "ex_cmds.h".
+use strict;
+
# Find the list of Vim commands from cmdnames[] table in ex_cmds.h
my @cmds;
-my @skipped;
+my $skipped_cmds;
open(IN, "< ex_cmds.h") or die "can't open ex_cmds.h: $!\n";
while (<IN>) {
if (/^EX\(CMD_\S*,\s*"([a-z][^"]*)"/) {
- push (@cmds, $1);
+ push @cmds, $1;
} elsif (/^EX\(CMD_/) {
- push (@skipped, $1);
+ ++$skipped_cmds;
}
}
}
print "};\n",
"\n",
- "static int command_count = ", $#cmds + $#skipped + 2 , ";\n",
+ "static const int command_count = ", scalar(@cmds) + $skipped_cmds, ";\n",
"\n",
"/* End of automatically generated code by create_cmdidxs.pl */\n";
-
/* z */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }
};
-static int command_count = 539;
+static const int command_count = 539;
/* End of automatically generated code by create_cmdidxs.pl */
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 514,
/**/
513,
/**/