mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
How many options remain available?
This commit is contained in:
parent
86d7168105
commit
a32d41c5d0
48
util/freeopts
Executable file
48
util/freeopts
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/perl -n
|
||||||
|
# NOTE the use of -n above; this script is called in a loop.
|
||||||
|
use warnings;
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
our $scanning;
|
||||||
|
our %used_chars;
|
||||||
|
BEGIN {
|
||||||
|
$scanning = 0;
|
||||||
|
%used_chars = ();
|
||||||
|
|
||||||
|
open STDIN, "../src/main.c" or die "main.c: $!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/^static struct cmdline_option option_data/) {
|
||||||
|
$scanning = 1;
|
||||||
|
}
|
||||||
|
elsif (/[}];/) {
|
||||||
|
$scanning = 0;
|
||||||
|
}
|
||||||
|
elsif (
|
||||||
|
$scanning &&
|
||||||
|
/^[\t ]*\{ "[^"]*", '(.)', OPT_[A-Z0-9_]*, /
|
||||||
|
) {
|
||||||
|
$used_chars{$1} = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
my $cols = 0;
|
||||||
|
my $max_cols = 13;
|
||||||
|
my $opt_chars =
|
||||||
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%+/";
|
||||||
|
print "Free chars:\n\t";
|
||||||
|
for (my $i = 0; $i < length $opt_chars; ++$i, ++$cols) {
|
||||||
|
if ($cols == $max_cols) {
|
||||||
|
$cols = 0;
|
||||||
|
print "\n\t";
|
||||||
|
}
|
||||||
|
my $opt = substr($opt_chars,$i,1);
|
||||||
|
print ' ';
|
||||||
|
if (!$used_chars{ $opt }) {
|
||||||
|
print $opt;
|
||||||
|
} else {
|
||||||
|
print ' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print "\n";
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user