genoptions.pl

来自「cipe 编程」· PL 代码 · 共 52 行

PL
52
字号
#!/usr/bin/perl -nw# Read the options.in file and generate options.[cht] from it.# $Id: genoptions.pl,v 1.4 2001/12/29 20:23:03 olaf Exp $BEGIN {    $h="File generated by genoptions.pl, do not edit";    open(H, ">options.h"); print H "/* $h */\n\n";    open(C, ">options.c"); print C "/* $h */\n\n";    print C "#include \"ciped.h\"\n";    print C "struct options opts[] = {\n";    open(D, ">../options.t"); print D "\@c $h\n\n";    print D "\@multitable \@columnfractions .14 .12 .10 .64\n";    print D "\@item Name\t\@tab Type\t\@tab Req\n";    $o=0;    %T=("bool", "Bool",	"int", "Int",	"str", "String",	"addr", "IP",	"uaddr", "UDP",	"taddr", "TCP",	"secret", "String");    $e=$e0=0;}/^\#/ && next;/^\s*$/ && next;if (/^\S/) {    ($n,$t,$r)=split(/\s+/, $_, 3);    $r=~tr/\n//d;    if (!$T{$t}) {	printf STDERR "%s:%d: unknown type\n", $ARGV, $.;	$e=$e0=1;    } else {	printf H "#define O%s\t%d\n", $n, $o;	printf C "{\"%s\",\tT%s,\t{0}},\n", $n, $t;	printf D "\@item \@code{%s}\t\@tab %s\t\@tab %s\n\@tab ",	         $n, $T{$t}, $r;	++$o;	$e0=0;    }    next;}s/^\s*//;tr/\n//d;printf D "%s\n", $_ unless ($e0);END {    print C "{ NULL, 0, {0} }};\n";    print D "\@end multitable\n";    $?=$e;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?