all: unicode-char.inc.pl ttfsupport
-digraphs.inc.pl:
- ./rfc1345convert $(wildcard rfc1345.txt) >$@
+data/rfc1345.txt:
+ wget http://www.ietf.org/rfc/rfc1345.txt -O $@
+
+digraphs.inc.pl: data/rfc1345.txt
+ ./rfc1345convert data/rfc1345.txt >$@
unicode-char.inc.pl: digraphs.inc.pl
tools/convert-unicode.pl >$@
use open OUT => ':utf8', ':std';
use Data::Dumper;
-our $VERSION = '1.01';
+our $VERSION = '1.02';
-# determine input data source
-my $input;
-if (@ARGV) {
- # manual contents specified (either piped or filename(s) given)
- $input = \*ARGV;
-}
-else {
- # automatic download from official website
- require LWP::Simple;
- my $contents = LWP::Simple::get('http://www.ietf.org/rfc/rfc1345.txt')
- or die "Couldn't download RFC-1345 from ietf.org";
- open $input, '<', \$contents; # emulate file handle
-}
+# expect input data source at command line
+@ARGV or die "Specify input source file or - for STDIN\n";
# skip everything until a character indented by 1 space (table start)
do {
- $_ = readline $input;
+ $_ = readline;
defined or die "Premature input end";
} until /^\s\S/;
my @t = $_; # add first line (already read, assume it's ok)
# read the rest of the character table
-while ($_ = readline $input) {
+while ($_ = readline) {
# check for table end (chapter 4)
last if /^\d/;
=head1 SYNOPSIS
-Download and convert the digraph specification from ietf.org:
+Extract digraphs from text specifications as a perl hash:
- rfc1345convert > digraphs.inc.pl
+ rfc1345convert rfc1345.txt custom.txt > digraphs.inc.pl
-Test by printing the character for DO (should be a dollar sign):
+Input can be the literal RFC (or similar) document:
- perl -e'$di = do "digraphs.inc.pl"; print chr $di->{DO}->[0]'
+ curl http://www.ietf.org/rfc/rfc1345.txt | rfc1345convert -
-Manual specification of source retrieval:
+Test by printing the character for DO (should be a dollar sign):
- rfc1345convert rfc1345.txt
- curl $url | rfc1345convert -
+ perl -e'$di = do "digraphs.inc.pl"; print chr $di->{DO}->[0]'
=head1 DESCRIPTION