[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