This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: Useful Cygwinism #2: PATH Despacifier/Deduplicateifier
/usr/local/bin>diff -b despaceify.pl~ despaceify.pl
1a2
> #
6,12c7,9
< @pathcomps = split(/:/, shift);
< for(@pathcomps)
< {
< if(!exists($comps_seen_already{$_}))
< {
< my $path;
< $path='"'.$_.'"';
---
> @pathcomps=split(/:/, shift);
> for(@pathcomps) {
> my $path='"'.$_.'"';
14a12
> if(!exists($comps_seen_already{$path})) {
15a14
> $comps_seen_already{$path}=1;
17d15
< $comps_seen_already{$_}=1;
Gerrit P. Haase wrote:
Hallo Cyber.Zombie,
Am Montag, 29. Juli 2002 um 06:18 schriebst du:
A suggested improvement: Sometimes multiple paths are mount points to
the same directory and won't get noticed until the path has been
corrected. The following rework will further cleanup $PATH:
#!/usr/bin/perl -w
#
use strict;
my @pathcomps;
my @pathcomps_out;
my %comps_seen_already;
@pathcomps = split(/:/, shift);
for(@pathcomps) {
my $path='"'.$_.'"';
$path=qx(cygpath -u \$(cygpath -ws $path));
$path=~tr/\n//d;
if(!exists($comps_seen_already{$path})) {
push(@pathcomps_out, $path);
$comps_seen_already{$path}=1;
}
}
print join(":", @pathcomps_out);
Where is the difference now to the first version?
=========================================================
#!/usr/bin/perl -w
use strict;
my @pathcomps;
my @pathcomps_out;
my %comps_seen_already;
@pathcomps = split(/:/, shift);
for(@pathcomps)
{
if(!exists($comps_seen_already{$_}))
{
my $path;
$path='"'.$_.'"';
$path=qx(cygpath -u \$(cygpath -ws $path));
$path=~tr/\n//d;
push(@pathcomps_out, $path);
}
$comps_seen_already{$_}=1;
}
print join(":", @pathcomps_out);
==========================================================
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/