📄 rfc.sum
字号:
: # *-*-perl-*-* eval 'exec perl -S $0 "$@"' if $running_under_some_shell;## RFC.sum - Summarizes an ASCII Request for Comments## RFC.sum,v 1.5 1995/09/05 20:17:29 hardy Exp########################################################################## Copyright (c) 1994, 1995. All rights reserved.## The Harvest software was developed by the Internet Research Task# Force Research Group on Resource Discovery (IRTF-RD):## Mic Bowman of Transarc Corporation.# Peter Danzig of the University of Southern California.# Darren R. Hardy of the University of Colorado at Boulder.# Udi Manber of the University of Arizona.# Michael F. Schwartz of the University of Colorado at Boulder.# Duane Wessels of the University of Colorado at Boulder.## This copyright notice applies to software in the Harvest# ``src/'' directory only. Users should consult the individual# copyright notices in the ``components/'' subdirectories for# copyright information about other software bundled with the# Harvest source code distribution.## TERMS OF USE## The Harvest software may be used and re-distributed without# charge, provided that the software origin and research team are# cited in any use of the system. Most commonly this is# accomplished by including a link to the Harvest Home Page# (http://harvest.cs.colorado.edu/) from the query page of any# Broker you deploy, as well as in the query result pages. These# links are generated automatically by the standard Broker# software distribution.## The Harvest software is provided ``as is'', without express or# implied warranty, and with no support nor obligation to assist# in its use, correction, modification or enhancement. We assume# no liability with respect to the infringement of copyrights,# trade secrets, or any patents, and are not responsible for# consequential damages. Proper use of the Harvest software is# entirely the responsibility of the user.## DERIVATIVE WORKS## Users may make derivative works from the Harvest software, subject# to the following constraints:## - You must include the above copyright notice and these# accompanying paragraphs in all forms of derivative works,# and any documentation and other materials related to such# distribution and use acknowledge that the software was# developed at the above institutions.## - You must notify IRTF-RD regarding your distribution of# the derivative work.## - You must clearly notify users that your are distributing# a modified version and not the original Harvest software.## - Any derivative product is also subject to these copyright# and use restrictions.## Note that the Harvest software is NOT in the public domain. We# retain copyright, as specified above.## HISTORY OF FREE SOFTWARE STATUS## Originally we required sites to license the software in cases# where they were going to build commercial products/services# around Harvest. In June 1995 we changed this policy. We now# allow people to use the core Harvest software (the code found in# the Harvest ``src/'' directory) for free. We made this change# in the interest of encouraging the widest possible deployment of# the technology. The Harvest software is really a reference# implementation of a set of protocols and formats, some of which# we intend to standardize. We encourage commercial# re-implementations of code complying to this set of standards.##usage() if ($#ARGV != 0);open(IN, "< $ARGV[0]") || die "Cannot open $ARGV[0]: $!";while (<IN>) { process_header($_), last if (/^Network Working Group/o);}while (<IN>) { $_ = add_section("Abstract") if (/^abstract/io); $_ = add_section("Table-of-Contents") if (/^table\s+of\s+content/io);}close(IN);foreach $k (sort keys %values) { print $k , "{" , length($values{$k}) , "}:\t"; print "$values{$k}\n";}exit(0); # END OF PROGRAMsub add_section { local($attribute) = @_; while (<IN>) { last if (/^\S+/o); $values{$attribute} .= $_; } return $_;}sub add_line { local($attribute, $line) = @_; $values{$attribute} .= $line . "\n";}sub usage { print STDERR "Usage: RFC.sum file\n"; exit(1);}sub process_header { local($top_line) = @_; $top_line =~ s/^.*Network Working Group\s+//; $rightcol = $top_line . "\n"; # Read in the header information while (<IN>) { last if (/^\s+$/o); # clear line if (/^Request for Comments:\s+(\d+)\s+(.*)$/o) { $values{"RFC-Number"} = $1; $rightcol .= $2 . "\n"; } elsif (/^Category:/o) { s/^Category:\s+//; if (/^(\w+)\s(\w+)\s+(.*)$/o) { $values{"RFC-Category"} = $1 . " " . $2; $rightcol .= $3 . "\n"; } elsif (/^(\w+)\s+(.*)$/o) { $values{"RFC-Category"} = $1; $rightcol .= $2 . "\n"; } } elsif (/^Obsoletes:\s+(\d+)\s+(.*)$/o) { $values{"RFC-Obsoletes"} = $1; $rightcol .= $2 . "\n"; } elsif (/^\s+(.*)$/o) { $rightcol .= $1 . "\n"; } elsif (/^\S+/o) { ($l, $r) = split(/\s{2,}/); $rightcol .= "\n". $r; } } $rightcol =~ s/\s+$//; # strip tailing whitespace die "Unknown RFC format: $ARGV[0]" if (!$rightcol); @rcol = split(/\n/, $rightcol); $values{"RFC-Date"} = $rcol[$#rcol]; $rcol[$#rcol] = ""; $values{"Author"} = join("\n", @rcol); # Clear until title while (<IN>) { last if (/\S+/o); # data on the line } $values{"Title"} = $_; # Read in title while (<IN>) { last if (/^\s+$/o); # clear line $values{"Title"} .= $_; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -