[Po4a-commits] "po4a/lib/Locale/Po4a Po.pm,1.57,1.58"

Nicolas FRANCOIS nekral-guest at alioth.debian.org
Sat Mar 4 19:04:55 UTC 2006


Update of /cvsroot/po4a/po4a/lib/Locale/Po4a
In directory haydn:/tmp/cvs-serv21375/lib/Locale/Po4a

Modified Files:
	Po.pm 
Log Message:
Finish the implementation of --split.


Index: Po.pm
===================================================================
RCS file: /cvsroot/po4a/po4a/lib/Locale/Po4a/Po.pm,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- Po.pm	25 Feb 2006 15:20:05 -0000	1.57
+++ Po.pm	4 Mar 2006 19:04:53 -0000	1.58
@@ -313,31 +313,44 @@
 
 =cut
 
+sub move_po_if_needed {
+    my ($new_po, $old_po) = (shift, shift);
+    my $diff;
+
+    if (-e $old_po) {
+        $diff = qx(diff -q -I'^#:' -I'^"POT-Creation-Date:' -I'^"PO-Revision-Date:' $old_po $new_po);
+        if ( $diff eq "" ) {
+            unlink $new_po
+                or die wrap_msg(dgettext("po4a","Can't unlink %s."),
+                                $new_po);
+            # touch the old PO
+            my ($atime, $mtime) = (time,time);
+            utime $atime, $mtime, $old_po;
+        } else {
+            move $new_po, $old_po
+                or die wrap_msg(dgettext("po4a","Can't move %s to %s."),
+                                $new_po, $old_po);
+        }
+    } else {
+        move $new_po, $old_po
+            or die wrap_msg(dgettext("po4a","Can't move %s to %s."),
+                            $new_po, $old_po);
+    }
+}
+
 sub write_if_needed {
     my $self=shift;
     my $filename=shift 
 	or croak (dgettext("po4a","Can't write to a file without filename")."\n");
 
     if (-e $filename) {
-        my ($tmp_filename, $diff);
+        my ($tmp_filename);
         (undef,$tmp_filename)=File::Temp->tempfile($filename."XXXX",
                                                    DIR    => "/tmp",
                                                    OPEN   => 0,
                                                    UNLINK => 0);
         $self->write($tmp_filename);
-        $diff = qx(diff -q -I'^#:' -I'^"POT-Creation-Date:' -I'^"PO-Revision-Date:' $filename $tmp_filename);
-        if ( $diff eq "" ) {
-            unlink $tmp_filename or
-                die wrap_msg(dgettext("po4a","Can't unlink %s."),
-                             $tmp_filename);
-            # touch it
-            my ($atime, $mtime) = (time,time);
-            utime $atime, $mtime, $filename;
-        } else {
-            move $tmp_filename, $filename or
-                die wrap_msg(dgettext("po4a","Can't rename %s to %s."),
-                             $tmp_filename, $filename);
-        }
+        move_po_if_needed($tmp_filename, $filename);
     } else {
         $self->write($filename);
     }




More information about the Po4a-commits mailing list