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

📄 troffprepro

📁 linux 下的线程库源码
💻
字号:
#!/usr/local/bin/perl$insynopsis = 0;open(INPUT, $ARGV[0]) || die("cannot open $ARGV[0]");open(OUTPUT, "> $ARGV[1]") || die("cannot create $ARGV[1]");select(OUTPUT);line:while(<INPUT>) {  if (/^\.XREF (.*)$/) {    $xref = $1;    $_ = $ARGV[1];    m/^.*\.(([1-8]).*)$/;    $suffix = $1;    $extension = $2;    open(XREF, "> $xref.$suffix");    print XREF ".so man$extension/$ARGV[1]\n";    close(XREF);    next line;  }  if (/^\.SH/) {    $insynopsis = /SYNOPSIS/;    print $_;    next;  }  if ($insynopsis) {    if (/^#/) {      print ".B ", $_;    }    elsif (/^[a-z]/) {          chop;#      if (m/^([a-zA-Z][a-zA-Z0-9_]*\s+[a-zA-Z][a-zA-Z0-9_]*)\(/) {#          print ".B \"", $1, "\"\n";#          $_ = '(' . $';#      }#      s/([a-zA-Z][a-zA-Z0-9_]*)(\s*[,()=])/" \1 "\2/g;      s/([ *])([a-zA-Z][a-zA-Z0-9_]*)(\s*[,)=])/\1" \2 "\3/g;      print ".BI \"", $_, "\"\n";    }    else {      print $_;    }    next;  }  chop;  s/!([^!]+)!\|([^|]+)\|([^\s]*)\s*/\n.BI "\1" "\2\3"\n/g;  s/([!|])([^!|]+)\1([^\s]*)\s*/do subst($1,$2,$3)/eg;  s/^\n+//;  s/\n+$//;  s/\n\n+/\n/g;  print $_, "\n";}close(INPUT);close(OUTPUT);sub subst {  local ($a, $b, $c) = @_;  if ($c) {    "\n" . ($a eq "!" ? ".BR " : ".IR ") . "\"$b\" $c\n"  } else {    "\n" . ($a eq "!" ? ".B " : ".I ") . "\"$b\"\n"  }}  

⌨️ 快捷键说明

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