Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / amd64 / man / man3 / Encode::Alias.3
CommitLineData
920dae64
AT
1.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "Encode::Alias 3"
132.TH Encode::Alias 3 "2001-09-21" "perl v5.8.8" "Perl Programmers Reference Guide"
133.SH "NAME"
134Encode::Alias \- alias definitions to encodings
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 3
138\& use Encode;
139\& use Encode::Alias;
140\& define_alias( newName => ENCODING);
141.Ve
142.SH "DESCRIPTION"
143.IX Header "DESCRIPTION"
144Allows newName to be used as an alias for \s-1ENCODING\s0. \s-1ENCODING\s0 may be
145either the name of an encoding or an encoding object (as described
146in Encode).
147.PP
148Currently \fInewName\fR can be specified in the following ways:
149.IP "As a simple string." 4
150.IX Item "As a simple string."
151.PD 0
152.IP "As a qr// compiled regular expression, e.g.:" 4
153.IX Item "As a qr// compiled regular expression, e.g.:"
154.PD
155.Vb 1
156\& define_alias( qr/^iso8859-(\ed+)$/i => '"iso-8859-$1"' );
157.Ve
158.Sp
159In this case, if \fI\s-1ENCODING\s0\fR is not a reference, it is \f(CW\*(C`eval\*(C'\fR\-ed
160in order to allow \f(CW$1\fR etc. to be substituted. The example is one
161way to alias names as used in X11 fonts to the \s-1MIME\s0 names for the
162iso\-8859\-* family. Note the double quotes inside the single quotes.
163.Sp
164(or, you don't have to do this yourself because this example is predefined)
165.Sp
166If you are using a regex here, you have to use the quotes as shown or
167it won't work. Also note that regex handling is tricky even for the
168experienced. Use this feature with caution.
169.IP "As a code reference, e.g.:" 4
170.IX Item "As a code reference, e.g.:"
171.Vb 1
172\& define_alias( sub {shift =~ /^iso8859-(\ed+)$/i ? "iso-8859-$1" : undef } );
173.Ve
174.Sp
175The same effect as the example above in a different way. The coderef
176takes the alias name as an argument and returns a canonical name on
177success or undef if not. Note the second argument is not required.
178Use this with even more caution than the regex version.
179.PP
180\fIChanges in code reference aliasing\fR
181.IX Subsection "Changes in code reference aliasing"
182.PP
183As of Encode 1.87, the older form
184.PP
185.Vb 1
186\& define_alias( sub { return /^iso8859-(\ed+)$/i ? "iso-8859-$1" : undef } );
187.Ve
188.PP
189no longer works.
190.PP
191Encode up to 1.86 internally used \*(L"local \f(CW$_\fR\*(R" to implement ths older
192form. But consider the code below;
193.PP
194.Vb 6
195\& use Encode;
196\& $_ = "eeeee" ;
197\& while (/(e)/g) {
198\& my $utf = decode('aliased-encoding-name', $1);
199\& print "position:",pos,"\en";
200\& }
201.Ve
202.PP
203Prior to Encode 1.86 this fails because of \*(L"local \f(CW$_\fR\*(R".
204.Sh "Alias overloading"
205.IX Subsection "Alias overloading"
206You can override predefined aliases by simply applying \fIdefine_alias()\fR.
207The new alias is always evaluated first, and when necessary,
208\&\fIdefine_alias()\fR flushes the internal cache to make the new definition
209available.
210.PP
211.Vb 2
212\& # redirect SHIFT_JIS to MS/IBM Code Page 932, which is a
213\& # superset of SHIFT_JIS
214.Ve
215.PP
216.Vb 2
217\& define_alias( qr/shift.*jis$/i => '"cp932"' );
218\& define_alias( qr/sjis$/i => '"cp932"' );
219.Ve
220.PP
221If you want to zap all predefined aliases, you can use
222.PP
223.Vb 1
224\& Encode::Alias->undef_aliases;
225.Ve
226.PP
227to do so. And
228.PP
229.Vb 1
230\& Encode::Alias->init_aliases;
231.Ve
232.PP
233gets the factory settings back.
234.SH "SEE ALSO"
235.IX Header "SEE ALSO"
236Encode, Encode::Supported