[Po4a-devel][CVS] po4a/lib/Locale/Po4a Po.pm,1.16,1.17

Jordi Vilalta po4a-devel@lists.alioth.debian.org
Fri, 06 Aug 2004 22:48:53 +0000


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

Modified Files:
	Po.pm 
Log Message:
Added 2 new small functions: {g|s}et_charset(), that work with the po header


Index: Po.pm
===================================================================
RCS file: /cvsroot/po4a/po4a/lib/Locale/Po4a/Po.pm,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- Po.pm	2 Aug 2004 09:35:39 -0000	1.16
+++ Po.pm	6 Aug 2004 22:48:51 -0000	1.17
@@ -265,7 +265,7 @@
 =item gettextize()
 
 This function produce one translated message catalog from two catalogs, an
-original an a translation. This process is described in po4a(7), section
+original and a translation. This process is described in po4a(7), section
 I<Gettextization: how does it work?>. 
 
 =cut
@@ -873,6 +873,39 @@
 	return $msgid if ($self->{po}{$msgid}{'pos'} eq $num);
     }
     return undef;
+}
+
+=item get_charset()
+
+This returns the character set specified in the po header. If it hasn't been
+set, it will return "CHARSET".
+
+=cut
+
+sub get_charset() {
+    my $self=shift;
+    $self->{header} =~ /charset=(.*?)[\s\\]/;
+    return $1;
+}
+
+=item set_charset()
+
+This sets the character set of the po header to the value specified in its
+first argument. If you never call this function (and no file with an specified
+character set is read), the default value is left to "CHARSET". This value
+doesn't change the behavior of this module, it's just used to fill that field
+in the header, and to return it in get_charset().
+
+=cut
+
+sub set_charset() {
+    my $self=shift;
+
+    my ($newchar,$oldchar);
+    $newchar = shift;
+    $oldchar = $self->get_charset();
+
+    $self->{header} =~ s/$oldchar/$newchar/;
 }
 
 #----[ helper functions ]---------------------------------------------------