diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-05 09:22:40 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-05 09:22:40 +0000 |
commit | 324abf12cb0ec39dcf87949d05e619657227d529 (patch) | |
tree | 52dd0988967a16539d24a1a00db70c3eba377a50 /bin/cle.pl | |
parent | f63b701f10c60491741ce4f6d1d30f323413e35a (diff) | |
download | ATCD-324abf12cb0ec39dcf87949d05e619657227d529.tar.gz |
ChangeLogTag: Thu Aug 5 09:21:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'bin/cle.pl')
-rwxr-xr-x | bin/cle.pl | 93 |
1 files changed, 68 insertions, 25 deletions
diff --git a/bin/cle.pl b/bin/cle.pl index 4725794b25e..f72bf44674e 100755 --- a/bin/cle.pl +++ b/bin/cle.pl @@ -12,7 +12,12 @@ use strict; use Cwd; use File::Basename; -unshift(@INC, getExecutePath($0) . '/ChangeLogEditor'); +if ( $^O eq 'VMS' ) { + require VMS::Filespec; + import VMS::Filespec qw(unixpath); +} + +unshift(@INC, getExecutePath($0) . 'ChangeLogEditor'); require ChangeLogEdit; require EmailTranslator; @@ -25,14 +30,27 @@ sub which { my($prog) = shift; my($exec) = $prog; my($part) = ''; - my($envSep) = ($^O eq 'MSWin32' ? ';' : ':'); - - if (defined $ENV{'PATH'}) { - foreach $part (split(/$envSep/, $ENV{'PATH'})) { - $part .= "/$prog"; - if ( -x $part ) { - $exec = $part; - last; + if ( $^O eq 'VMS' ) { + my($envSep) = ';'; + if (defined $ENV{'PATH'}) { + foreach $part (split(/$envSep/, $ENV{'PATH'})) { + $part .= "$prog"; + if ( -x $part ) { + $exec = $part; + last; + } + } + } + } + else { + my($envSep) = ($^O eq 'MSWin32' ? ';' : ':'); + if (defined $ENV{'PATH'}) { + foreach $part (split(/$envSep/, $ENV{'PATH'})) { + $part .= "/$prog"; + if ( -x $part ) { + $exec = $part; + last; + } } } } @@ -45,27 +63,51 @@ sub getExecutePath { my($prog) = shift; my($loc) = ''; - if ($prog ne basename($prog)) { - if ($prog =~ /^[\/\\]/ || - $prog =~ /^[A-Za-z]:[\/\\]?/) { - $loc = dirname($prog); + if ( $^O eq 'VMS' ) { + if ($prog ne basename($prog)) { + my($dir) = unixpath( dirname($prog) ); + if ($prog =~ /^[\/\\]/) { + $loc = $dir; + } + else { + $loc = unixpath(getcwd()) . $dir; + } } else { - $loc = getcwd() . '/' . dirname($prog); + $loc = unixpath( dirname(which($prog)) ); } - } - else { - $loc = dirname(which($prog)); - } - if ($loc eq '.') { - $loc = getcwd(); + if ($loc eq '.') { + $loc = unixpath( getcwd() ); + } + } else { + if ($prog ne basename($prog)) { + if ($prog =~ /^[\/\\]/ || + $prog =~ /^[A-Za-z]:[\/\\]?/) { + $loc = dirname($prog); + } + else { + $loc = getcwd() . '/' . dirname($prog); + } + } + else { + $loc = dirname(which($prog)); + } + + $loc =~ s/\/\.$//; + + if ($loc eq '.') { + $loc = getcwd(); + } + + if ($loc ne '') { + $loc .= '/'; + } } return $loc; } - sub getDefaultDomain { my($domain) = undef; my($host) = `hostname`; @@ -97,10 +139,11 @@ sub getDefaultDomain { if ($^O eq 'MSWin32') { if (open($fh, 'ipconfig /all |')) { while(<$fh>) { - if (!defined $domain) { - if (/DNS\s+Suffix[^:]+:\s+(.+)/) { - $domain = $1; - } + if (/Primary\s+DNS\s+Suffix[^:]+:\s+(.*)/) { + $domain = $1; + } + elsif (/DNS\s+Suffix\s+Search[^:]+:\s+(.*)/) { + $domain = $1; } } close($fh); |