dwww Home | Show directory contents | Find package

#!/usr/local/bin/perl
#################################################
#pnuts version 0.4  part of the WN server package
#################################################
# for more info, see http://hopf.math.nwu.edu/docs/utility.html#pnuts
# Modified by Stefan Kramer for use with Pine Technical Notes
# Last modified on 1995 Nov. 02


require "getopts.pl";

# Edit to specify what should appear as text of navigation bar.  Note:
# If the HTML files processed by PNUTS will be converted to plain-text files,
# the PNUTS-generated link text will probably be stripped out, so this 
# text should be unique (i.e., not expected to occur elsewhere in text).

# This is the original link appearance, without graphic buttons
# $prevw="<b>Previous</b>";
# $nextw="<b>Next</b>";
# $upw="<b>Up one level</b>";
# $topw="<b>Table of Contents</b>";
# $searchw="<b>Search</b>";
# $indexw="<b>Index</b>";

$prevw='<IMG SRC="../graphics/BPprev.gif" ALT="[Previous]">';
$nextw='<IMG SRC="../graphics/BPnext.gif" ALT="[Next]">';
$upw=''; # not needed and don't have a graphic for UP
$topw='<IMG SRC="../graphics/BPtoc.gif" ALT="[Table of Contents]">';
$searchw='<IMG SRC="../graphics/BPsearch.gif" ALT="[Search]">';
$indexw=''; # no index here and no graphic for it



$VERSION = "0.4";

        &Getopts('s:i:');
        $search = $opt_s if $opt_s ne "";
        $index = $opt_i if $opt_i ne "";

        $file = shift;
        $marker = "<!-- pnuts -->";


        open( LIST, "<$file") || die "Can't open file: $!";


        $nextfile = <LIST>;
        print $nextfile;
        chop( $nextfile);
        $top = $nextfile;

        while ( &getnextfile() ) {
                $curcopy = $currentfile."~";

                rename( $currentfile, $curcopy)
                        || die "Can't rename file: $currentfile";
                open( OLDCURR, "<$curcopy" ) || die "Can't open file: $!";
                open( NEWCURR, ">$currentfile" ) || die "Can't open file: $!";
                while ( $line = <OLDCURR>) {
                        if ( $line =~ "^$marker") {
                                &pnutline();
                        }
                        else {
                                print NEWCURR $line;
                        }
                }
                close( OLDCURR);
                close( NEWCURR);
        }


close( LIST);
exit(0);

sub pnutline {
        printf( NEWCURR  "$marker");
        printf( NEWCURR "<P><HR>");
        if ( $previous ) {
                printf( NEWCURR " <a href=\"%s\">$prevw</a>", $previous);
        }
        if ( $nextfile ) {
                printf( NEWCURR  " <a href=\"%s\">$nextw</a>", $nextfile);
        }
        if ( $up[$curlevel - 1] ) {
                printf( NEWCURR  " <a href=\"%s\">$upw</a>",
                                $up[$curlevel-1]);
        }
        if ( $top && ( $top ne $currentfile) ) {
                printf( NEWCURR  " <a href=\"%s\">$topw</a>", $top);
        }
        if ( $search ) {
                printf( NEWCURR  " <a href=\"%s\">$searchw</a>", $search);
        }
        if ( $index ) {
                printf( NEWCURR  " <a href=\"%s\">$indexw</a>", $index);
        }
        printf( NEWCURR "\n");
}

sub getnextfile {
        if ( $nextfile eq "") {
                return 0;
        }
        $previous = $currentfile;
        $up[$curlevel] = $currentfile;

        $currentfile = $nextfile;
        while ( 1 ) {
                ($nextfile = <LIST>) || ($nextfile = "");
                $nextfile =~ s/(\t*)//;
                last if $nextfile eq "";
                print $nextfile;
                chop( $nextfile);
                if ( -d $nextfile ) {
                        print "$nextfile is directory, ignoring it\n";
                        next;
                }
                last;
        }
        $curlevel = $nextlevel;
        $nextlevel = length( $1);
        return 1;
}











Generated by dwww version 1.15 on Sun Jun 30 10:07:09 CEST 2024.