My favorites | Sign in
Project Home Wiki Issues Source
Repository:
Checkout   Browse   Changes   Clones  
Changes to /regen_lib.pl
000000000000 vs. c21739460ca5 Compare: vs.  Format:
Revision c21739460ca5
Go to: 
Project members, sign in to write a code review
/regen_lib.pl /regen_lib.pl   c21739460ca5
  1 #!/usr/bin/perl -w
  2 use strict;
  3 use vars qw($Is_W32 $Is_OS2 $Is_Cygwin $Is_NetWare $Needs_Write);
  4 use Config; # Remember, this is running using an existing perl
  5
  6 # Common functions needed by the regen scripts
  7
  8 $Is_W32 = $^O eq 'MSWin32';
  9 $Is_OS2 = $^O eq 'os2';
  10 $Is_Cygwin = $^O eq 'cygwin';
  11 $Is_NetWare = $Config{osname} eq 'NetWare';
  12 if ($Is_NetWare) {
  13 $Is_W32 = 0;
  14 }
  15
  16 $Needs_Write = $Is_OS2 || $Is_W32 || $Is_Cygwin || $Is_NetWare;
  17
  18 sub safer_unlink {
  19 my @names = @_;
  20 my $cnt = 0;
  21
  22 my $name;
  23 foreach $name (@names) {
  24 next unless -e $name;
  25 chmod 0777, $name if $Needs_Write;
  26 ( CORE::unlink($name) and ++$cnt
  27 or warn "Couldn't unlink $name: $!\n" );
  28 }
  29 return $cnt;
  30 }
  31
  32 sub safer_rename_silent {
  33 my ($from, $to) = @_;
  34
  35 # Some dosish systems can't rename over an existing file:
  36 safer_unlink $to;
  37 chmod 0600, $from if $Needs_Write;
  38 rename $from, $to;
  39 }
  40
  41 sub safer_rename {
  42 my ($from, $to) = @_;
  43 safer_rename_silent($from, $to) or die "renaming $from to $to: $!";
  44 }
  45 1;
Powered by Google Project Hosting