[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/ -> fastcwd.pl (source)

   1  # By John Bazik
   2  #
   3  # This library is no longer being maintained, and is included for backward
   4  # compatibility with Perl 4 programs which may require it.
   5  #
   6  # In particular, this should not be used as an example of modern Perl
   7  # programming techniques.
   8  #
   9  # Suggested alternative: Cwd
  10  #
  11  # Usage: $cwd = &fastcwd;
  12  #
  13  # This is a faster version of getcwd.  It's also more dangerous because
  14  # you might chdir out of a directory that you can't chdir back into.
  15  
  16  sub fastcwd {
  17      local($odev, $oino, $cdev, $cino, $tdev, $tino);
  18      local(@path, $path);
  19      local(*DIR);
  20  
  21      ($cdev, $cino) = stat('.');
  22      for (;;) {
  23          ($odev, $oino) = ($cdev, $cino);
  24          chdir('..');
  25          ($cdev, $cino) = stat('.');
  26          last if $odev == $cdev && $oino == $cino;
  27          opendir(DIR, '.');
  28          for (;;) {
  29              $_ = readdir(DIR);
  30              next if $_ eq '.';
  31              next if $_ eq '..';
  32  
  33              last unless $_;
  34              ($tdev, $tino) = lstat($_);
  35              last unless $tdev != $odev || $tino != $oino;
  36          }
  37          closedir(DIR);
  38          unshift(@path, $_);
  39      }
  40      chdir($path = '/' . join('/', @path));
  41      $path;
  42  }
  43  1;


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1