I looked closer at the source and all test of the error value are made
against $! instead of $|.
This patch fix all occurences i found in update-alternatives and restore
file openings error messages. 
That had nothing in termn of functionality. I hope users won't be
disturbed by those new errors .


Ciao
Alban
--- update-alternatives.orig    2005-01-20 02:28:44.610908162 +0100
+++ update-alternatives 2005-01-20 02:32:45.976432321 +0100
@@ -167,7 +167,7 @@
     }
     close(AF);
     $dataread=1;
-} elsif ($! != &ENOENT) {
+} elsif ($| != &ENOENT) {
     &quit("failed to open $admindir/$name: $!");
 }
 
@@ -179,7 +179,7 @@
         &pr("$name - status is $manual.");
         if (defined($linkname= readlink("$altdir/$name"))) {
             &pr(" link currently points to $linkname");
-        } elsif ($! == &ENOENT) {
+        } elsif ($| == &ENOENT) {
             &pr(" link currently absent");
         } else {
             &pr(" link unreadable - $!");
@@ -244,7 +244,7 @@
     } else {
         $state= 'unexpected';
     }
-} elsif ($! == &ENOENT) {
+} elsif ($| == &ENOENT) {
     $state= 'nonexistent';
 } else {
     $state= 'unexpected';
@@ -259,9 +259,9 @@
 if ($mode eq 'auto') {
     &pr("Setting up automatic selection of $name.")
       if $verbosemode > 0;
-    unlink("$altdir/$name.dpkg-tmp") || $! == &ENOENT ||
+    unlink("$altdir/$name.dpkg-tmp") || $| == &ENOENT ||
         &quit("unable to remove $altdir/$name.dpkg-tmp: $!");
-    unlink("$altdir/$name") || $! == &ENOENT ||
+    unlink("$altdir/$name") || $| == &ENOENT ||
         &quit("unable to remove $altdir/$name.dpkg-tmp: $!");
     $state= 'nonexistent';
     $manual= 'auto';
@@ -293,7 +293,7 @@
     if ($link ne $alink && $link ne '') {
         &pr("Renaming $name link from $link to $alink.")
           if $verbosemode > 0;
-        rename_mv($link,$alink) || $! == &ENOENT ||
+        rename_mv($link,$alink) || $| == &ENOENT ||
             &quit("unable to rename $link to $alink: $!");
     }
     $link= $alink;
@@ -315,7 +315,7 @@
         if ($newslavelink ne $oldslavelink && $oldslavelink ne '') {
             &pr("Renaming $sname slave link from $oldslavelink to 
$newslavelink.")
               if $verbosemode > 0;
-            rename_mv($oldslavelink,$newslavelink) || $! == &ENOENT ||
+            rename_mv($oldslavelink,$newslavelink) || $| == &ENOENT ||
                 &quit("unable to rename $oldslavelink to $newslavelink: $!");
         }
         $slavelinks[$j]= $newslavelink;
@@ -369,9 +369,9 @@
     if ($i > $#versions) {
         &pr("Discarding obsolete slave link $slavenames[$j] 
($slavelinks[$j]).")
           if $verbosemode > 0;
-        unlink("$altdir/$slavenames[$j]") || $! == &ENOENT ||
+        unlink("$altdir/$slavenames[$j]") || $| == &ENOENT ||
             &quit("unable to remove $slavenames[$j]: $!");
-        unlink($slavelinks[$j]) || $! == &ENOENT ||
+        unlink($slavelinks[$j]) || $| == &ENOENT ||
             &quit("unable to remove $slavelinks[$j]: $!");
         $k= $#slavenames;
         $slavenum{$slavenames[$k]}= $j;
@@ -435,22 +435,22 @@
     if ($best eq '') {
         &pr("Last package providing $name ($link) removed, deleting it.")
           if $verbosemode > 0;
-        unlink("$altdir/$name") || $! == &ENOENT ||
+        unlink("$altdir/$name") || $| == &ENOENT ||
             &quit("unable to remove $altdir/$name: $!");
-        unlink("$link") || $! == &ENOENT ||
+        unlink("$link") || $| == &ENOENT ||
             &quit("unable to remove $altdir/$name: $!");
         unlink("$admindir/$name.dpkg-new") ||
             &quit("unable to remove $admindir/$name.dpkg-new: $!");
-        unlink("$admindir/$name") || $! == &ENOENT ||
+        unlink("$admindir/$name") || $| == &ENOENT ||
             &quit("unable to remove $admindir/$name: $!");
         exit(0);
     } else {
-        if (!defined($linkname= readlink($link)) && $! != &ENOENT) {
+        if (!defined($linkname= readlink($link)) && $| != &ENOENT) {
             &pr("warning: $link is supposed to be a symlink to 
$altdir/$name\n".
                 " (or nonexistent); however, readlink failed: $!")
               if $verbosemode > 0;
         } elsif ($linkname ne "$altdir/$name") {
-            unlink("$link.dpkg-tmp") || $! == &ENOENT ||
+            unlink("$link.dpkg-tmp") || $| == &ENOENT ||
                 &quit("unable to ensure $link.dpkg-tmp nonexistent: $!");
             symlink("$altdir/$name","$link.dpkg-tmp") ||
                 &quit("unable to make $link.dpkg-tmp a symlink to 
$altdir/$name: $!");
@@ -464,7 +464,7 @@
             &pr("Updating $name ($link) to point to $best.")
               if $verbosemode > 0;
         }
-        unlink("$altdir/$name.dpkg-tmp") || $! == &ENOENT ||
+        unlink("$altdir/$name.dpkg-tmp") || $| == &ENOENT ||
             &quit("unable to ensure $altdir/$name.dpkg-tmp nonexistent: $!");
         symlink($best,"$altdir/$name.dpkg-tmp");
     }
@@ -479,12 +479,12 @@
     for ($j=0; $j<=$#slavenames; $j++) {
         $sname= $slavenames[$j];
         $slink= $slavelinks[$j];
-        if (!defined($linkname= readlink($slink)) && $! != &ENOENT) {
+        if (!defined($linkname= readlink($slink)) && $| != &ENOENT) {
             &pr("warning: $slink is supposed to be a slave symlink to\n".
                 " $altdir/$sname, or nonexistent; however, readlink failed: 
$!")
               if $verbosemode > 0;
         } elsif ($linkname ne "$altdir/$sname") {
-            unlink("$slink.dpkg-tmp") || $! == &ENOENT ||
+            unlink("$slink.dpkg-tmp") || $| == &ENOENT ||
                 &quit("unable to ensure $slink.dpkg-tmp nonexistent: $!");
             symlink("$altdir/$sname","$slink.dpkg-tmp") ||
                 &quit("unable to make $slink.dpkg-tmp a symlink to 
$altdir/$sname: $!");
@@ -492,14 +492,14 @@
                 &quit("unable to install $slink.dpkg-tmp as $slink: $!");
         }
         $spath= $slavepath{$bestnum,$j};
-        unlink("$altdir/$sname.dpkg-tmp") || $! == &ENOENT ||
+        unlink("$altdir/$sname.dpkg-tmp") || $| == &ENOENT ||
             &quit("unable to ensure $altdir/$sname.dpkg-tmp nonexistent: $!");
         if ($spath eq '') {
             &pr("Removing $sname ($slink), not appropriate with $best.")
               if $verbosemode > 0;
-            unlink("$altdir/$sname") || $! == &ENOENT ||
+            unlink("$altdir/$sname") || $| == &ENOENT ||
                 &quit("unable to remove $altdir/$sname: $!");
-           unlink("$slink") || $! == &ENOENT ||
+           unlink("$slink") || $| == &ENOENT ||
                &quit("unable to remove $slink: $!");
         } else {
             if (defined($linkname= readlink("$altdir/$sname")) && $linkname eq 
$spath) {
@@ -562,7 +562,7 @@
            } else {
                &pr("Removing $slave ($slavelinks[$slnum]), not appropriate 
with $versions[$preferred].")
                    if $verbosemode > 0;
-               unlink("$altdir/$slave") || $! == &ENOENT ||
+               unlink("$altdir/$slave") || $| == &ENOENT ||
                    &quit("unable to remove $altdir/$slave: $!");
            }
        }
@@ -598,7 +598,7 @@
      } else {
        &pr("Removing $slave ($slavelinks[$slnum]), not appropriate with 
$versions[$preferred].")
         if $verbosemode > 0;
-       unlink("$altdir/$slave") || $! == &ENOENT ||
+       unlink("$altdir/$slave") || $| == &ENOENT ||
         &quit("unable to remove $altdir/$slave: $!");
      }
    }
@@ -610,7 +610,7 @@
     print(AF "$_[0]\n") || &quit("error writing stdout: $!");
 }
 sub gl {
-    $!=0; $_= <AF>;
+    $|=0; $_= <AF>;
     length($_) || &quit("error or eof reading $admindir/$name for $_[0] ($!)");
     s/\n$// || &badfmt("missing newline after $_[0]");
     $_;

Reply via email to