Useful Cygwinism #2: PATH Despacifier/Deduplicateifier

Cyber.Zombie Cyber.Zombie@attbi.com
Mon Jul 29 08:09:00 GMT 2002


/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/



More information about the Cygwin mailing list