From: Nicholas Clark Date: Sat, 22 Oct 2005 13:12:48 +0000 (+0000) Subject: use more 'const' in the Encode data structures. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7dd03145f7521e677db128080742a33214229568;p=p5sagit%2Fp5-mst-13.2.git use more 'const' in the Encode data structures. p4raw-id: //depot/perl@25823 --- diff --git a/ext/Encode/Encode/encode.h b/ext/Encode/Encode/encode.h index 7a2fa26..a6880cf 100644 --- a/ext/Encode/Encode/encode.h +++ b/ext/Encode/Encode/encode.h @@ -16,14 +16,14 @@ typedef struct encpage_s encpage_t; struct encpage_s { /* fields ordered to pack nicely on 32-bit machines */ - const U8 *seq; /* Packed output sequences we generate + const U8 *const seq; /* Packed output sequences we generate if we match */ - const encpage_t *next; /* Page to go to if we match */ - U8 min; /* Min value of octet to match this entry */ - U8 max; /* Max value of octet to match this entry */ - U8 dlen; /* destination length - + const encpage_t *const next; /* Page to go to if we match */ + const U8 min; /* Min value of octet to match this entry */ + const U8 max; /* Max value of octet to match this entry */ + const U8 dlen; /* destination length - size of entries in seq */ - U8 slen; /* source length - + const U8 slen; /* source length - number of source octets needed */ }; @@ -60,16 +60,18 @@ struct encpage_s typedef struct encode_s encode_t; struct encode_s { - const encpage_t *t_utf8; /* Starting table for translation from - the encoding to UTF-8 form */ - const encpage_t *f_utf8; /* Starting table for translation - from UTF-8 to the encoding */ - const U8 *rep; /* Replacement character in this encoding - e.g. "?" */ - int replen; /* Number of octets in rep */ - U8 min_el; /* Minimum octets to represent a character */ - U8 max_el; /* Maximum octets to represent a character */ - const char *name[2]; /* name(s) of this encoding */ + const encpage_t *const t_utf8; /* Starting table for translation from + the encoding to UTF-8 form */ + const encpage_t *const f_utf8; /* Starting table for translation + from UTF-8 to the encoding */ + const U8 *const rep; /* Replacement character in this + encoding e.g. "?" */ + int replen; /* Number of octets in rep */ + U8 min_el; /* Minimum octets to represent a + character */ + U8 max_el; /* Maximum octets to represent a + character */ + const char *const name[2]; /* name(s) of this encoding */ }; #ifdef U8 diff --git a/ext/Encode/bin/enc2xs b/ext/Encode/bin/enc2xs index ae2a166..82ff01c 100644 --- a/ext/Encode/bin/enc2xs +++ b/ext/Encode/bin/enc2xs @@ -276,16 +276,19 @@ if ($doC) #my @info = ($e2u->{Cname},$u2e->{Cname},$rsym,length($rep),$min_el,$max_el); my $replen = 0; $replen++ while($rep =~ /\G\\x[0-9A-Fa-f]/g); - my @info = ($e2u->{Cname},$u2e->{Cname},qq((U8 *)"$rep"),$replen,$min_el,$max_el); my $sym = "${enc}_encoding"; $sym =~ s/\W+/_/g; + my @info = ($e2u->{Cname},$u2e->{Cname},"${sym}_rep_character",$replen, + $min_el,$max_el); + print C "static const U8 ${sym}_rep_character[] = \"$rep\";\n"; + print C "static const char ${sym}_enc_name[] = \"$enc\";\n\n"; print C "const encode_t $sym = \n"; # This is to make null encoding work -- dankogai for (my $i = (scalar @info) - 1; $i >= 0; --$i){ $info[$i] ||= 1; } # end of null tweak -- dankogai - print C " {",join(',',@info,"{\"$enc\",(const char *)0}"),"};\n\n"; + print C " {",join(',',@info,"{${sym}_enc_name,(const char *)0}"),"};\n\n"; } foreach my $enc (sort cmp_name keys %encoding)