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

Martin Quinson mquinson@ens-lyon.fr
Fri, 6 Aug 2004 18:37:12 -0700


Erm. That's kind of hackish. I know that's my fault, because the header
stuff is coded so poorly here, but I just wanted to mention that if you
wanted to cleanup the header code (using a proper hash table under {header}
instead of a string), you're welcome ;)

If not, well, I'll gonna have to leave with the repentance of my bad coding
habits.

Many thanks for your work on po4a,
Mt.

On Fri, Aug 06, 2004 at 10:48:53PM +0000, Jordi Vilalta wrote:
> 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 ]---------------------------------------------------
> 
> 
> _______________________________________________
> Po4a-devel mailing list
> Po4a-devel@lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/po4a-devel

-- 
If you can't do it in ANSI C, it isn't worth doing.