IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14791


Ignore:
Timestamp:
Sep 7, 2007, 11:21:19 AM (19 years ago)
Author:
Paul Price
Message:

Need to fix scheme identifier --- doesn't work when there are other
colons in the path. Moved scheme identifier into its own function
(should have done that a long time ago), and now only identify the
schemes that we know and love.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/PS-IPP-Config/lib/PS/IPP/Config.pm

    r14659 r14791  
    11# Copyright (c) 2006  Paul Price, Joshua Hoblitt
    22#
    3 # $Id: Config.pm,v 1.66 2007-08-24 01:03:35 price Exp $
     3# $Id: Config.pm,v 1.67 2007-09-07 21:21:19 price Exp $
    44
    55package PS::IPP::Config;
     
    178178}
    179179
     180# Return the scheme used for a filename
     181sub file_scheme
     182{
     183    my $name = shift;           # Filename for which to get the scheme
     184    my ($scheme) = $name =~ /^(path|neb|file):/; # The scheme, e.g., file://, path://
     185    # $scheme may be undef if the input doesn't contain one of the above recognised schemes
     186    return $scheme;
     187}
     188
     189
    180190# Concatenate elements of a URI
    181191sub caturi
     
    185195
    186196    carp "base is not inited" if not defined $base;
    187     my ($scheme) = $base =~ m|^(\S+):|; # The scheme, e.g., file://, path://
     197    my $scheme = file_scheme($base); # The scheme, e.g., file://, path://
    188198    $base =~ s|^\S+:/*||;
    189199
     
    263273}
    264274
    265 
    266275# Resolve a URI to a file name
    267276sub file_resolve
     
    270279    my $name = shift;           # File name to check
    271280
    272     my ($scheme) = $name =~ m|^(\S+):|; # The scheme, e.g., file://, path://
     281    my $scheme = file_scheme($name); # The scheme, e.g., file://, path://
    273282
    274283    return $name unless defined $scheme; # Probably a file name instead of a URI
     
    297306    $self->file_prepare( $name );
    298307
    299     my ($scheme) = $name =~ m|^(\S+):|; # The scheme, e.g., file://, path://
     308    my $scheme = file_scheme($name); # The scheme, e.g., file://, path://
    300309    if (defined $scheme) {
    301310        $scheme = lc($scheme);
     
    332341    $self->file_prepare( $name );
    333342
    334     my ($scheme) = $name =~ m|^(\S+):|; # The scheme, e.g., file://, path://
     343    my $scheme = file_scheme($name); # The scheme, e.g., file://, path://
    335344    if (defined $scheme) {
    336345        $scheme = lc($scheme);
     
    362371    $self->file_prepare( $name );
    363372
    364     my ($scheme) = $name =~ m|^(\S+):|; # The scheme, e.g., file://, path://
     373    my $scheme = file_scheme($name); # The scheme, e.g., file://, path://
    365374    if (defined $scheme and lc($scheme) eq 'neb') {
    366375        $name =~ s|^(\S+):/*||;
     
    378387    my $name = shift;           # File name to check
    379388
    380     my ($scheme) = $name =~ m|^(\S+):|; # The scheme, e.g., file://, path://
     389    my $scheme = file_scheme($name); # The scheme, e.g., file://, path://
    381390    if (defined $scheme and lc($scheme) eq 'neb') {
    382391        $name =~ s|^(\S+):/*||;
     
    397406    $self->file_prepare( $target );
    398407
    399     my ($scheme) = $target =~ m|^(\S+):|; # The scheme, e.g., file://, path://
     408    my $scheme = file_scheme($target); # The scheme, e.g., file://, path://
    400409    if (defined $scheme and lc($scheme) eq 'neb') {
    401410        $target =~ s|^(\S+):/*||;
     
    436445    }
    437446
    438     my ($scheme) = $name =~ m|^(\S+):|; # The scheme, e.g., file://, path://
     447    my $scheme = file_scheme($name); # The scheme, e.g., file://, path://
    439448    return $name if defined $scheme and lc($scheme) eq 'neb'; # Nothing to be done: Nebulous handles it all
    440449
     
    465474
    466475    $name =~ s|/$||; # drop tailing slashes (foobar/ to foobar)
    467     my ($scheme) = $name =~ m|^(\S+):|; # The scheme, e.g., file, path
     476    my $scheme = file_scheme($name); # The scheme, e.g., file, path
    468477
    469478    ## if this is already an absolute path (/PATH/file), just return the path
     
    511520   
    512521    # First, check to see if it's already in a relative form
    513     my ($scheme) = $name =~ m|^(\S+):|; # The scheme, e.g., file, path
     522    my $scheme = file_scheme($name); # The scheme, e.g., file, path
    514523    if (defined $scheme) {
    515524        $scheme = lc($scheme);
Note: See TracChangeset for help on using the changeset viewer.