⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mkproto.pl

📁 Rsync 3.0.5 source code
💻 PL
字号:
# 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -