stas        02/04/02 23:26:25

  Modified:    lib      DocSet.pm
               lib/DocSet Doc.pm DocSet.pm RunTime.pm Util.pm
  Log:
  sync with DocSet:
  
  - replaced call to `which` with a portable which function in
    DocSet::Util (taken from Apache::Build in modperl-2.0 and made to
    use the PATHEXT env variable on WinNT: I can re-submit this one into
    the modperl-2.0 tree if you think that'll be useful, it finds the
    specified file terminated by .exe, .bat, etc.. [Per Einar Ellefsen
    <[EMAIL PROTECTED]>]
  
  - use perl %ENV instead of `env` to set PERL5LIB whenh calling
    docset_build. [Per Einar Ellefsen <[EMAIL PROTECTED]>]
  
  - had to replace all regexes that used a directory/file path, and use
    quotemeta() there, because the backslahes created illegal escape
    sequences. [Per Einar Ellefsen <[EMAIL PROTECTED]>]
  
  - changed some things before calling URI in DocSet::Doc; it not, the
    directory name would be considered part of the host name and thus
    not tried to be opened. So I replaced \ with /, as that'll open the
    file correctly. [Per Einar Ellefsen <[EMAIL PROTECTED]>]
  
  Revision  Changes    Path
  1.5       +1 -1      modperl-docs/lib/DocSet.pm
  
  Index: DocSet.pm
  ===================================================================
  RCS file: /home/cvs/modperl-docs/lib/DocSet.pm,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DocSet.pm 22 Mar 2002 02:01:51 -0000      1.4
  +++ DocSet.pm 3 Apr 2002 07:26:24 -0000       1.5
  @@ -1,6 +1,6 @@
   package DocSet;
   
  -$VERSION = '0.12';
  +$VERSION = '0.13';
   
   =head1 NAME
   
  
  
  
  1.6       +3 -0      modperl-docs/lib/DocSet/Doc.pm
  
  Index: Doc.pm
  ===================================================================
  RCS file: /home/cvs/modperl-docs/lib/DocSet/Doc.pm,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Doc.pm    22 Mar 2002 07:00:29 -0000      1.5
  +++ Doc.pm    3 Apr 2002 07:26:24 -0000       1.6
  @@ -72,6 +72,9 @@
   
       # META: at this moment everything is a file path
       my $src_uri = "file://" . $self->{src_path};
  +    # Win32: fix the path, or it'll be parsed as hostname
  +    $src_uri =~ s|\\|/|g;
  +
       my $u = URI->new($src_uri);
   
       my $scheme = $u->scheme;
  
  
  
  1.6       +3 -2      modperl-docs/lib/DocSet/DocSet.pm
  
  Index: DocSet.pm
  ===================================================================
  RCS file: /home/cvs/modperl-docs/lib/DocSet/DocSet.pm,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DocSet.pm 22 Mar 2002 02:01:51 -0000      1.5
  +++ DocSet.pm 3 Apr 2002 07:26:24 -0000       1.6
  @@ -73,7 +73,7 @@
       # cache the location of the parent node cache
       if (my $parent_o = $self->get('parent_o')) {
           my $parent_src_root   = $parent_o->get_dir('src_root');
  -        (my $rel2parent_src_root = $src_root) =~ s|$parent_src_root||;
  +        (my $rel2parent_src_root = $src_root) =~ s|\Q$parent_src_root||;
           my $rel_dir = join '/', ("..") x ($rel2parent_src_root =~ tr|/|/|);
           my $parent_cache_path = "$parent_src_root/cache.$mode.dat";
           $cache->parent_node($parent_cache_path,
  @@ -279,7 +279,8 @@
   #        # some OSs's File::Find returns files with no dir prefix root
   #        # (that's what ()* is for
   #        $dst_path =~ s/(?:$src_root)*/$dst_root/; 
  -        $dst_path =~ s/$src_root/$dst_root/;
  +#        $dst_path =~ s/$src_root/$dst_root/;
  +        $dst_path =~ s/\Q$src_root/$dst_root/;
   
           # to rebuild or not to rebuild
           my($should_update, $reason) = 
  
  
  
  1.4       +13 -9     modperl-docs/lib/DocSet/RunTime.pm
  
  Index: RunTime.pm
  ===================================================================
  RCS file: /home/cvs/modperl-docs/lib/DocSet/RunTime.pm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RunTime.pm        22 Mar 2002 07:00:30 -0000      1.3
  +++ RunTime.pm        3 Apr 2002 07:26:24 -0000       1.4
  @@ -53,25 +53,28 @@
       return HAS_STORABLE;
   }
   
  -my $html2ps_exec = `which html2ps` || '';
  -chomp $html2ps_exec;
  +# check for existence of html2ps and ps2pdf
  +
  +my $html2ps_exec = which('html2ps');
   sub can_create_ps {
       # ps2html is bundled, so we can always create PS
  -    return $html2ps_exec;
  +    return $html2ps_exec if $html2ps_exec;
  +
  +    print 'It seems that you do not have html2ps installed! You have',
  +        'to install it if you want to generate the PDF file';
  +    return 0;
   
       # if you unbundle it make sure you write here a code similar to
       # can_create_pdf()
   }
   
  -my $ps2pdf_exec = `which ps2pdf` || '';
  -chomp $ps2pdf_exec;
  +my $ps2pdf_exec = which('ps2pdf');
   sub can_create_pdf {
       # check whether ps2pdf exists
       return $ps2pdf_exec if $ps2pdf_exec;
   
  -    print(qq{It seems that you do not have ps2pdf installed! You have
  -             to install it if you want to generate the PDF file
  -            });
  +    print 'It seems that you do not have ps2pdf installed! You have',
  +        'to install it if you want to generate the PDF file';
       return 0;
   }
   
  @@ -93,9 +96,10 @@
           my $rsub_skip_seen = 
               build_matchmany_sub([EMAIL PROTECTED]);
   
  +        my $full_path_regex = quotemeta $full_path;
           $src_docs{$rel_path} = {
               map { $_ => 1 }
  -                map {s|$full_path/||; $_}
  +                map {s|$full_path_regex/||; $_}
                   grep $rsub_keep_ext->($_),   # get files with wanted exts
                   grep !$rsub_skip_seen->($_), # skip seen base dirs
                   @{ expand_dir($full_path) }
  
  
  
  1.7       +23 -1     modperl-docs/lib/DocSet/Util.pm
  
  Index: Util.pm
  ===================================================================
  RCS file: /home/cvs/modperl-docs/lib/DocSet/Util.pm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Util.pm   22 Mar 2002 07:01:25 -0000      1.6
  +++ Util.pm   3 Apr 2002 07:26:24 -0000       1.7
  @@ -15,13 +15,15 @@
   
   require DocSet::RunTime; # interdependency with DocSet::Util
   
  +use constant IS_WIN32 => $^O eq 'MSWin32';
  +
   use vars qw(@ISA @EXPORT);
   @ISA    = qw(Exporter);
   @EXPORT = qw(read_file read_file_paras copy_file gzip_file write_file
                create_dir filename filename_ext require_package dumper
                sub_trace note get_date get_timestamp proc_tmpl
                build_matchmany_sub banner should_update confess cluck
  -             carp format_bytes expand_dir);
  +             carp format_bytes expand_dir which);
   
   # copy_file($src_path, $dst_path);
   # copy a file at $src_path to $dst_path, 
  @@ -272,6 +274,26 @@
       return [EMAIL PROTECTED];
   }
   
  +# which($short_exec_name)
  +# Portable 'which' implementation.
  +#
  +# Parts borrowed from modperl-2.0/lib/Apache/Build.pm and modified to
  +# take into account Win32 PATHEXT
  +########################
  +my @path_ext = ();
  +if (IS_WIN32 and $ENV{PATHEXT}) {
  +    @path_ext = split ';', $ENV{PATHEXT};
  +}
  +sub which {
  +    foreach (map { catfile $_, $_[0] } File::Spec->path()) {
  +        return $_ if -x;
  +        if(IS_WIN32 and @path_ext) { # AFAIK, Win9x doesn't have PATHEXT
  +            foreach my $ext (@path_ext) {
  +                return $_.$ext if -x $_.$ext;
  +            }
  +        }
  +    }
  +}
   
   sub dumper {
       print Dumper @_;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to