mkproto.pl

来自「Rsync 3.0.5 source code」· PL 代码 · 共 49 行

PL
49
字号
# generate prototypes for rsync$old_protos = '';if (open(IN, 'proto.h')) {    $old_protos = join('', <IN>);    close IN;}%FN_MAP = (    BOOL => 'BOOL ',    CHAR => 'char ',    INTEGER => 'int ',    STRING => 'char *',);$inheader = 0;$protos = qq|/* This file is automatically generated with "make proto". DO NOT EDIT */\n\n|;while (<>) {    if ($inheader) {	if (/[)][ \t]*$/) {	    $inheader = 0;	    s/$/;/;	}	$protos .= $_;    } elsif (/^FN_(LOCAL|GLOBAL)_([^(]+)\(([^,()]+)/) {	$ret = $FN_MAP{$2};	$func = $3;	$arg = $1 eq 'LOCAL' ? 'int module_id' : 'void';	$protos .= "$ret$func($arg);\n";    } elsif (/^static|^extern/ || /[;]/ || !/^[A-Za-z][A-Za-z0-9_]* /) {	;    } elsif (/[(].*[)][ \t]*$/) {	s/$/;/;	$protos .= $_;    } elsif (/[(]/) {	$inheader = 1;	$protos .= $_;    }}if ($old_protos ne $protos) {    open(OUT, '>proto.h') or die $!;    print OUT $protos;    close OUT;}open(OUT, '>proto.h-tstamp') and close OUT;

⌨️ 快捷键说明

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