--- prest-0.003016/lib/Text/Restructured.pm-orig 2006-08-12 21:56:06.000000000 +0300 +++ prest-0.003016/lib/Text/Restructured.pm 2006-08-12 22:05:51.000000000 +0300 @@ -3433,51 +3433,8 @@ # Returns: array of DOM objects sub include { my($parser, $name, $parent, $source, $lineno, $dtext, $lit) = @_; - my $dhash = parse_directive($parser, $dtext, $lit, $source, $lineno); - return $dhash if ref($dhash) eq $DOM; - my($args, $options) = map($dhash->{$_}, qw(args options)); - - my @exts = split(/:/, $main::opt_D{includeext}); - my $mydir = $source =~ m|(.*)/| ? $1 : "."; - my $path = $main::opt_D{includepath}; - $path =~ s/<\.>/$mydir/; - my @dirs = map(m|^\./?$| ? "" : m|/$| ? $_ : "$_/",split(/:/, $path)); - $args =~ s/^<(.*)>$/$1/; - my $file = $args; - my $dir; - foreach $dir (@dirs) { - my @files = map("$dir$args$_", @exts); - my @foundfiles = grep(-r $_, @files); - if (@foundfiles) { - $file = $foundfiles[0]; - last; - } - } - my $text; - print STDERR "Debug: $source, $lineno: Including $file\n" if $main::opt_d; - if (open(FILE,$file)) { - $text = join('',); -# TODO: -# use Encode qw/encode decode/; -# $text = decode($options->{encoding}, $text) -# if defined $options->{encoding}; - if (defined $options->{literal}) { - my $lb = $DOM->new('literal_block', %Text::Restructured::XML_SPACE, - source=>$file); - $lb->append($DOM->newPCDATA($text)); - return $lb; - } - else { - $parser->Paragraphs($parent, $text, $file, 1) if defined $text; - } - } - else { - my $err = "IOError: " . system_error(); - return $parser->system_message - (4, $source, $lineno, - qq(Problems with "$name" directive path:\n$err: '$args'.), $lit); - } - return; + return $parser->system_message(3, $source, $lineno, + '"include" directive is disabled', $lit); } # Built-in handler for line-block directives. @@ -3636,6 +3593,10 @@ return $err if $err; return $parser->system_message(3, $source, $lineno, + qq(The "file" option is disabled for the "$name" directive.), + $lit) + if defined $options->{file}; + return $parser->system_message(3, $source, $lineno, qq("$name" directive may not both specify an external file and have content.), $lit) if defined $options->{file} && $content ne ''; @@ -3649,26 +3610,6 @@ if defined $options->{url}; my %attr; - if (defined $options->{file}) { - $source =~ m|(.*/)|; - my $opt = $options->{file}; - my $dir = $1; - my @files = ("$dir$opt", "$dir$opt.rst", "$dir$opt.txt"); - my @foundfiles = grep(-r $_, @files); - my $file = @foundfiles ? $foundfiles[0] : $args; - my $text; - if (open(FILE,$file)) { - $content = join('',); - $attr{source} = $file; - } - else { - my $err = "IOError: " . system_error(); - return $parser->system_message - (4, $source, $lineno, - qq(Problems with "$name" directive path:\n$err: '$args'.), - $lit); - } - } my $dom = $DOM->new('raw', format=>$args, %Text::Restructured::XML_SPACE, %attr); @@ -3898,6 +3839,10 @@ if ($name eq 'csv-table') { return $parser->system_message(3, $source, $lineno, + qq(The "file" option is disabled for the "$name" directive.), + $lit) + if defined $options->{file}; + return $parser->system_message(3, $source, $lineno, qq("$name" directive may not both specify an external file and have content.), $lit) if $dhash->{content} ne '' && defined $options->{file}; @@ -3906,32 +3851,7 @@ $lit) if defined $options->{file} && defined $options->{url}; my $content = $dhash->{content}; - if (defined $options->{file}) { - if (open CSV, $options->{file}) { - $content = join '', ; - return $parser->system_message - (3, $source, $lineno, - qq(No table data detected in CSV file.), $lit) - if $content eq ''; - } - else { - my $err = system_error(); - return $parser->system_message(4, $source, $lineno, - qq(Problems with "$name" directive path:\n$err: '$options->{file}'.), - $lit); - } - my $encoding = $options->{encoding} || ''; - if ($encoding eq 'latin-1') { - return $parser->system_message(3, $source, $lineno, - qq(Error with CSV data in "$name" directive:\nstring with NUL bytes), $lit) - if $content =~ /\000/; - } - elsif ($encoding ne '') { - use Encode qw(encode decode); - $content = decode($encoding, $content); - } - } - elsif (defined $options->{url}) { + if (defined $options->{url}) { my $url = $options->{url}; return $parser->system_message(4, $source, $lineno, qq(Problems with "$name" directive URL "$url":\nunknown url type: $url.)