fcpatternformat.html revision b09479dc
1a6844aabSmrg<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
2a6844aabSmrg<HTML
3a6844aabSmrg><HEAD
4a6844aabSmrg><TITLE
5a6844aabSmrg>FcPatternFormat</TITLE
6a6844aabSmrg><META
7a6844aabSmrgNAME="GENERATOR"
8a6844aabSmrgCONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
9a6844aabSmrgREL="HOME"
10a6844aabSmrgHREF="t1.html"><LINK
11a6844aabSmrgREL="UP"
12a6844aabSmrgTITLE="FcPattern"
13b09479dcSmrgHREF="x102.html#AEN241"><LINK
14a6844aabSmrgREL="PREVIOUS"
15a6844aabSmrgTITLE="FcNameUnparse"
16a6844aabSmrgHREF="fcnameunparse.html"></HEAD
17a6844aabSmrg><BODY
18a6844aabSmrgCLASS="REFENTRY"
19a6844aabSmrgBGCOLOR="#FFFFFF"
20a6844aabSmrgTEXT="#000000"
21a6844aabSmrgLINK="#0000FF"
22a6844aabSmrgVLINK="#840084"
23a6844aabSmrgALINK="#0000FF"
24a6844aabSmrg><DIV
25a6844aabSmrgCLASS="NAVHEADER"
26a6844aabSmrg><TABLE
27a6844aabSmrgSUMMARY="Header navigation table"
28a6844aabSmrgWIDTH="100%"
29a6844aabSmrgBORDER="0"
30a6844aabSmrgCELLPADDING="0"
31a6844aabSmrgCELLSPACING="0"
32a6844aabSmrg><TR
33a6844aabSmrg><TH
34a6844aabSmrgCOLSPAN="3"
35a6844aabSmrgALIGN="center"
36a6844aabSmrg></TH
37a6844aabSmrg></TR
38a6844aabSmrg><TR
39a6844aabSmrg><TD
40a6844aabSmrgWIDTH="10%"
41a6844aabSmrgALIGN="left"
42a6844aabSmrgVALIGN="bottom"
43a6844aabSmrg><A
44a6844aabSmrgHREF="fcnameunparse.html"
45a6844aabSmrgACCESSKEY="P"
46a6844aabSmrg>&#60;&#60;&#60; Previous</A
47a6844aabSmrg></TD
48a6844aabSmrg><TD
49a6844aabSmrgWIDTH="80%"
50a6844aabSmrgALIGN="center"
51a6844aabSmrgVALIGN="bottom"
52a6844aabSmrg></TD
53a6844aabSmrg><TD
54a6844aabSmrgWIDTH="10%"
55a6844aabSmrgALIGN="right"
56a6844aabSmrgVALIGN="bottom"
57a6844aabSmrg>&nbsp;</TD
58a6844aabSmrg></TR
59a6844aabSmrg></TABLE
60a6844aabSmrg><HR
61a6844aabSmrgALIGN="LEFT"
62a6844aabSmrgWIDTH="100%"></DIV
63a6844aabSmrg><H1
64a6844aabSmrg><A
65a6844aabSmrgNAME="FCPATTERNFORMAT"
66a6844aabSmrg></A
67a6844aabSmrg>FcPatternFormat</H1
68a6844aabSmrg><DIV
69a6844aabSmrgCLASS="REFNAMEDIV"
70a6844aabSmrg><A
71b09479dcSmrgNAME="AEN877"
72a6844aabSmrg></A
73a6844aabSmrg><H2
74a6844aabSmrg>Name</H2
75a6844aabSmrg>FcPatternFormat&nbsp;--&nbsp;Format a pattern into a string according to a format specifier</DIV
76a6844aabSmrg><DIV
77a6844aabSmrgCLASS="REFSYNOPSISDIV"
78a6844aabSmrg><A
79b09479dcSmrgNAME="AEN880"
80a6844aabSmrg></A
81a6844aabSmrg><H2
82a6844aabSmrg>Synopsis</H2
83a6844aabSmrg><DIV
84a6844aabSmrgCLASS="FUNCSYNOPSIS"
85a6844aabSmrg><P
86a6844aabSmrg></P
87a6844aabSmrg><A
88b09479dcSmrgNAME="AEN881"
89a6844aabSmrg></A
90a6844aabSmrg><TABLE
91a6844aabSmrgBORDER="0"
92a6844aabSmrgBGCOLOR="#E0E0E0"
93a6844aabSmrgWIDTH="100%"
94a6844aabSmrg><TR
95a6844aabSmrg><TD
96a6844aabSmrg><PRE
97a6844aabSmrgCLASS="FUNCSYNOPSISINFO"
98c9710b42Smrg>#include &#60;fontconfig/fontconfig.h&#62;
99a6844aabSmrg	</PRE
100a6844aabSmrg></TD
101a6844aabSmrg></TR
102a6844aabSmrg></TABLE
103a6844aabSmrg><P
104a6844aabSmrg><CODE
105a6844aabSmrg><CODE
106a6844aabSmrgCLASS="FUNCDEF"
107a6844aabSmrg>FcChar8 * <TT
108a6844aabSmrgCLASS="FUNCTION"
109a6844aabSmrg>FcPatternFormat</TT
110a6844aabSmrg></CODE
111a6844aabSmrg>(FcPattern *<TT
112a6844aabSmrgCLASS="PARAMETER"
113a6844aabSmrg><I
114a6844aabSmrg>pat</I
115a6844aabSmrg></TT
116a6844aabSmrg>, const FcChar8 *<TT
117a6844aabSmrgCLASS="PARAMETER"
118a6844aabSmrg><I
119a6844aabSmrg>format</I
120a6844aabSmrg></TT
121a6844aabSmrg>);</CODE
122a6844aabSmrg></P
123a6844aabSmrg><P
124a6844aabSmrg></P
125a6844aabSmrg></DIV
126a6844aabSmrg></DIV
127a6844aabSmrg><DIV
128a6844aabSmrgCLASS="REFSECT1"
129a6844aabSmrg><A
130b09479dcSmrgNAME="AEN890"
131a6844aabSmrg></A
132a6844aabSmrg><H2
133a6844aabSmrg>Description</H2
134a6844aabSmrg><P
135a6844aabSmrg>Converts given pattern <TT
136a6844aabSmrgCLASS="PARAMETER"
137a6844aabSmrg><I
138a6844aabSmrg>pat</I
139a6844aabSmrg></TT
140a6844aabSmrg> into text described by
141a6844aabSmrgthe format specifier <TT
142a6844aabSmrgCLASS="PARAMETER"
143a6844aabSmrg><I
144a6844aabSmrg>format</I
145a6844aabSmrg></TT
146a6844aabSmrg>.
147a6844aabSmrgThe return value refers to newly allocated memory which should be freed by the
148a6844aabSmrgcaller using free(), or NULL if <TT
149a6844aabSmrgCLASS="PARAMETER"
150a6844aabSmrg><I
151a6844aabSmrg>format</I
152a6844aabSmrg></TT
153a6844aabSmrg> is invalid.&#13;</P
154a6844aabSmrg><P
155ca08ab68Smrg>&#13;The format is loosely modeled after printf-style format string.
156a6844aabSmrgThe format string is composed of zero or more  directives: ordinary
157a6844aabSmrgcharacters (not "%"), which are copied unchanged to the output stream;
158a6844aabSmrgand tags which are interpreted to construct text from the pattern in a
159a6844aabSmrgvariety of ways (explained below).
160a6844aabSmrgSpecial characters can be escaped
161a6844aabSmrgusing backslash.  C-string style special characters like \n and \r are
162a6844aabSmrgalso supported (this is useful when the format string is not a C string
163a6844aabSmrgliteral).
164a6844aabSmrgIt is advisable to always escape curly braces that
165a6844aabSmrgare meant to be copied to the output as ordinary characters.&#13;</P
166a6844aabSmrg><P
167ca08ab68Smrg>&#13;Each tag is introduced by the character "%",
168a6844aabSmrgfollowed by an optional minimum field width,
169a6844aabSmrgfollowed by tag contents in curly braces ({}).
170a6844aabSmrgIf the minimum field width value is provided the tag
171a6844aabSmrgwill be expanded and the result padded to achieve the minimum width.
172a6844aabSmrgIf the minimum field width is positive, the padding will right-align
173a6844aabSmrgthe text.  Negative field width will left-align.
174a6844aabSmrgThe rest of this section describes various supported tag contents
175a6844aabSmrgand their expansion.&#13;</P
176a6844aabSmrg><P
177a6844aabSmrg>&#13;A <I
178a6844aabSmrgCLASS="FIRSTTERM"
179a6844aabSmrg>simple</I
180a6844aabSmrg> tag
181a6844aabSmrgis one where the content is an identifier.  When simple
182a6844aabSmrgtags are expanded, the named identifier will be looked up in
183a6844aabSmrg<TT
184a6844aabSmrgCLASS="PARAMETER"
185a6844aabSmrg><I
186a6844aabSmrg>pattern</I
187a6844aabSmrg></TT
188a6844aabSmrg> and the resulting list of values returned,
189ca08ab68Smrgjoined together using comma.  For example, to print the family name and style of the
190a6844aabSmrgpattern, use the format "%{family} %{style}\n".  To extend the family column
191a6844aabSmrgto forty characters use "%-40{family}%{style}\n".&#13;</P
192a6844aabSmrg><P
193a6844aabSmrg>&#13;Simple tags expand to list of all values for an element.  To only choose
194a6844aabSmrgone of the values, one can index using the syntax "%{elt[idx]}".  For example,
195a6844aabSmrgto get the first family name only, use "%{family[0]}".&#13;</P
196a6844aabSmrg><P
197a6844aabSmrg>&#13;If a simple tag ends with "=" and the element is found in the pattern, the
198a6844aabSmrgname of the element followed by "=" will be output before the list of values.
199a6844aabSmrgFor example, "%{weight=}" may expand to the string "weight=80".  Or to the empty
200a6844aabSmrgstring if <TT
201a6844aabSmrgCLASS="PARAMETER"
202a6844aabSmrg><I
203a6844aabSmrg>pattern</I
204a6844aabSmrg></TT
205a6844aabSmrg> does not have weight set.&#13;</P
206a6844aabSmrg><P
207a6844aabSmrg>&#13;If a simple tag starts with ":" and the element is found in the pattern, ":"
208a6844aabSmrgwill be printed first.  For example, combining this with the =, the format
209a6844aabSmrg"%{:weight=}" may expand to ":weight=80" or to the empty string
210a6844aabSmrgif <TT
211a6844aabSmrgCLASS="PARAMETER"
212a6844aabSmrg><I
213a6844aabSmrg>pattern</I
214a6844aabSmrg></TT
215a6844aabSmrg> does not have weight set.&#13;</P
216a6844aabSmrg><P
217a6844aabSmrg>&#13;If a simple tag contains the string ":-", the rest of the the tag contents
218a6844aabSmrgwill be used as a default string.  The default string is output if the element
219a6844aabSmrgis not found in the pattern.  For example, the format
220a6844aabSmrg"%{:weight=:-123}" may expand to ":weight=80" or to the string
221a6844aabSmrg":weight=123" if <TT
222a6844aabSmrgCLASS="PARAMETER"
223a6844aabSmrg><I
224a6844aabSmrg>pattern</I
225a6844aabSmrg></TT
226a6844aabSmrg> does not have weight set.&#13;</P
227a6844aabSmrg><P
228a6844aabSmrg>&#13;A <I
229a6844aabSmrgCLASS="FIRSTTERM"
230a6844aabSmrg>count</I
231a6844aabSmrg> tag
232a6844aabSmrgis one that starts with the character "#" followed by an element
233a6844aabSmrgname, and expands to the number of values for the element in the pattern.
234a6844aabSmrgFor example, "%{#family}" expands to the number of family names
235a6844aabSmrg<TT
236a6844aabSmrgCLASS="PARAMETER"
237a6844aabSmrg><I
238a6844aabSmrg>pattern</I
239a6844aabSmrg></TT
240a6844aabSmrg> has set, which may be zero.&#13;</P
241a6844aabSmrg><P
242a6844aabSmrg>&#13;A <I
243a6844aabSmrgCLASS="FIRSTTERM"
244a6844aabSmrg>sub-expression</I
245a6844aabSmrg> tag
246a6844aabSmrgis one that expands a sub-expression.  The tag contents
247a6844aabSmrgare the sub-expression to expand placed inside another set of curly braces.
248a6844aabSmrgSub-expression tags are useful for aligning an entire sub-expression, or to
249ca08ab68Smrgapply converters (explained later) to the entire sub-expression output.
250a6844aabSmrgFor example, the format "%40{{%{family} %{style}}}" expands the sub-expression
251a6844aabSmrgto construct the family name followed by the style, then takes the entire
252a6844aabSmrgstring and pads it on the left to be at least forty characters.&#13;</P
253a6844aabSmrg><P
254a6844aabSmrg>&#13;A <I
255a6844aabSmrgCLASS="FIRSTTERM"
256a6844aabSmrg>filter-out</I
257a6844aabSmrg> tag
258a6844aabSmrgis one starting with the character "-" followed by a
259a6844aabSmrgcomma-separated list of element names, followed by a sub-expression enclosed
260a6844aabSmrgin curly braces.  The sub-expression will be expanded but with a pattern that
261a6844aabSmrghas the listed elements removed from it.
262a6844aabSmrgFor example, the format "%{-size,pixelsize{sub-expr}}" will expand "sub-expr"
263a6844aabSmrgwith <TT
264a6844aabSmrgCLASS="PARAMETER"
265a6844aabSmrg><I
266a6844aabSmrg>pattern</I
267a6844aabSmrg></TT
268a6844aabSmrg> sans the size and pixelsize elements.&#13;</P
269a6844aabSmrg><P
270a6844aabSmrg>&#13;A <I
271a6844aabSmrgCLASS="FIRSTTERM"
272a6844aabSmrg>filter-in</I
273a6844aabSmrg> tag
274a6844aabSmrgis one starting with the character "+" followed by a
275a6844aabSmrgcomma-separated list of element names, followed by a sub-expression enclosed
276a6844aabSmrgin curly braces.  The sub-expression will be expanded but with a pattern that
277a6844aabSmrgonly has the listed elements from the surrounding pattern.
278a6844aabSmrgFor example, the format "%{+family,familylang{sub-expr}}" will expand "sub-expr"
279a6844aabSmrgwith a sub-pattern consisting only the family and family lang elements of
280a6844aabSmrg<TT
281a6844aabSmrgCLASS="PARAMETER"
282a6844aabSmrg><I
283a6844aabSmrg>pattern</I
284a6844aabSmrg></TT
285a6844aabSmrg>.&#13;</P
286a6844aabSmrg><P
287a6844aabSmrg>&#13;A <I
288a6844aabSmrgCLASS="FIRSTTERM"
289a6844aabSmrg>conditional</I
290a6844aabSmrg> tag
291a6844aabSmrgis one starting with the character "?" followed by a
292a6844aabSmrgcomma-separated list of element conditions, followed by two sub-expression
293a6844aabSmrgenclosed in curly braces.  An element condition can be an element name,
294a6844aabSmrgin which case it tests whether the element is defined in pattern, or
295a6844aabSmrgthe character "!" followed by an element name, in which case the test
296a6844aabSmrgis negated.  The conditional passes if all the element conditions pass.
297a6844aabSmrgThe tag expands the first sub-expression if the conditional passes, and
298a6844aabSmrgexpands the second sub-expression otherwise.
299a6844aabSmrgFor example, the format "%{?size,dpi,!pixelsize{pass}{fail}}" will expand
300a6844aabSmrgto "pass" if <TT
301a6844aabSmrgCLASS="PARAMETER"
302a6844aabSmrg><I
303a6844aabSmrg>pattern</I
304a6844aabSmrg></TT
305a6844aabSmrg> has size and dpi elements but
306a6844aabSmrgno pixelsize element, and to "fail" otherwise.&#13;</P
307a6844aabSmrg><P
308a6844aabSmrg>&#13;An <I
309a6844aabSmrgCLASS="FIRSTTERM"
310a6844aabSmrg>enumerate</I
311a6844aabSmrg> tag
312a6844aabSmrgis one starting with the string "[]" followed by a
313a6844aabSmrgcomma-separated list of element names, followed by a sub-expression enclosed
314a6844aabSmrgin curly braces.  The list of values for the named elements are walked in
315a6844aabSmrgparallel and the sub-expression expanded each time with a pattern just having
316a6844aabSmrga single value for those elements, starting from the first value and
317a6844aabSmrgcontinuing as long as any of those elements has a value.
318a6844aabSmrgFor example, the format "%{[]family,familylang{%{family} (%{familylang})\n}}"
319a6844aabSmrgwill expand the pattern "%{family} (%{familylang})\n" with a pattern
320ca08ab68Smrghaving only the first value of the family and familylang elements, then expands
321a6844aabSmrgit with the second values, then the third, etc.&#13;</P
322a6844aabSmrg><P
323a6844aabSmrg>&#13;As a special case, if an enumerate tag has only one element, and that element
324a6844aabSmrghas only one value in the pattern, and that value is of type FcLangSet, the
325a6844aabSmrgindividual languages in the language set are enumerated.&#13;</P
326a6844aabSmrg><P
327a6844aabSmrg>&#13;A <I
328a6844aabSmrgCLASS="FIRSTTERM"
329a6844aabSmrg>builtin</I
330a6844aabSmrg> tag
331a6844aabSmrgis one starting with the character "=" followed by a builtin
332a6844aabSmrgname.  The following builtins are defined:
333a6844aabSmrg
334a6844aabSmrg<P
335a6844aabSmrg></P
336a6844aabSmrg><DIV
337a6844aabSmrgCLASS="VARIABLELIST"
338a6844aabSmrg><DL
339a6844aabSmrg><DT
340a6844aabSmrg>unparse</DT
341a6844aabSmrg><DD
342a6844aabSmrg><P
343a6844aabSmrg>Expands to the result of calling FcNameUnparse() on the pattern.</P
344a6844aabSmrg></DD
345a6844aabSmrg><DT
346a6844aabSmrg>fcmatch</DT
347a6844aabSmrg><DD
348a6844aabSmrg><P
349a6844aabSmrg>Expands to the output of the default output format of the fc-match
350a6844aabSmrgcommand on the pattern, without the final newline.</P
351a6844aabSmrg></DD
352a6844aabSmrg><DT
353a6844aabSmrg>fclist</DT
354a6844aabSmrg><DD
355a6844aabSmrg><P
356a6844aabSmrg>Expands to the output of the default output format of the fc-list
357a6844aabSmrgcommand on the pattern, without the final newline.</P
358a6844aabSmrg></DD
359a6844aabSmrg><DT
360ca08ab68Smrg>fccat</DT
361ca08ab68Smrg><DD
362ca08ab68Smrg><P
363ca08ab68Smrg>Expands to the output of the default output format of the fc-cat
364ca08ab68Smrgcommand on the pattern, without the final newline.</P
365ca08ab68Smrg></DD
366ca08ab68Smrg><DT
367a6844aabSmrg>pkgkit</DT
368a6844aabSmrg><DD
369a6844aabSmrg><P
370a6844aabSmrg>Expands to the list of PackageKit font() tags for the pattern.
371a6844aabSmrgCurrently this includes tags for each family name, and each language
372a6844aabSmrgfrom the pattern, enumerated and sanitized into a set of tags terminated
373a6844aabSmrgby newline.  Package management systems can use these tags to tag their
374a6844aabSmrgpackages accordingly.</P
375a6844aabSmrg></DD
376a6844aabSmrg></DL
377a6844aabSmrg></DIV
378a6844aabSmrg>
379a6844aabSmrg
380a6844aabSmrgFor example, the format "%{+family,style{%{=unparse}}}\n" will expand
381a6844aabSmrgto an unparsed name containing only the family and style element values
382a6844aabSmrgfrom <TT
383a6844aabSmrgCLASS="PARAMETER"
384a6844aabSmrg><I
385a6844aabSmrg>pattern</I
386a6844aabSmrg></TT
387a6844aabSmrg>.&#13;</P
388a6844aabSmrg><P
389a6844aabSmrg>&#13;The contents of any tag can be followed by a set of zero or more
390a6844aabSmrg<I
391a6844aabSmrgCLASS="FIRSTTERM"
392a6844aabSmrg>converter</I
393a6844aabSmrg>s.  A converter is specified by the
394a6844aabSmrgcharacter "|" followed by the converter name and arguments.  The
395a6844aabSmrgfollowing converters are defined:
396a6844aabSmrg
397a6844aabSmrg<P
398a6844aabSmrg></P
399a6844aabSmrg><DIV
400a6844aabSmrgCLASS="VARIABLELIST"
401a6844aabSmrg><DL
402a6844aabSmrg><DT
403a6844aabSmrg>basename</DT
404a6844aabSmrg><DD
405a6844aabSmrg><P
406a6844aabSmrg>Replaces text with the results of calling FcStrBasename() on it.</P
407a6844aabSmrg></DD
408a6844aabSmrg><DT
409a6844aabSmrg>dirname</DT
410a6844aabSmrg><DD
411a6844aabSmrg><P
412a6844aabSmrg>Replaces text with the results of calling FcStrDirname() on it.</P
413a6844aabSmrg></DD
414a6844aabSmrg><DT
415a6844aabSmrg>downcase</DT
416a6844aabSmrg><DD
417a6844aabSmrg><P
418a6844aabSmrg>Replaces text with the results of calling FcStrDowncase() on it.</P
419a6844aabSmrg></DD
420a6844aabSmrg><DT
421a6844aabSmrg>shescape</DT
422a6844aabSmrg><DD
423a6844aabSmrg><P
424a6844aabSmrg>Escapes text for one level of shell expansion.
425a6844aabSmrg(Escapes single-quotes, also encloses text in single-quotes.)</P
426a6844aabSmrg></DD
427a6844aabSmrg><DT
428a6844aabSmrg>cescape</DT
429a6844aabSmrg><DD
430a6844aabSmrg><P
431a6844aabSmrg>Escapes text such that it can be used as part of a C string literal.
432a6844aabSmrg(Escapes backslash and double-quotes.)</P
433a6844aabSmrg></DD
434a6844aabSmrg><DT
435a6844aabSmrg>xmlescape</DT
436a6844aabSmrg><DD
437a6844aabSmrg><P
438a6844aabSmrg>Escapes text such that it can be used in XML and HTML.
439a6844aabSmrg(Escapes less-than, greater-than, and ampersand.)</P
440a6844aabSmrg></DD
441a6844aabSmrg><DT
442a6844aabSmrg>delete(<TT
443a6844aabSmrgCLASS="PARAMETER"
444a6844aabSmrg><I
445a6844aabSmrg>chars</I
446a6844aabSmrg></TT
447a6844aabSmrg>)</DT
448a6844aabSmrg><DD
449a6844aabSmrg><P
450a6844aabSmrg>Deletes all occurrences of each of the characters in <TT
451a6844aabSmrgCLASS="PARAMETER"
452a6844aabSmrg><I
453a6844aabSmrg>chars</I
454a6844aabSmrg></TT
455a6844aabSmrg>
456a6844aabSmrgfrom the text.
457a6844aabSmrgFIXME: This converter is not UTF-8 aware yet.</P
458a6844aabSmrg></DD
459a6844aabSmrg><DT
460a6844aabSmrg>escape(<TT
461a6844aabSmrgCLASS="PARAMETER"
462a6844aabSmrg><I
463a6844aabSmrg>chars</I
464a6844aabSmrg></TT
465a6844aabSmrg>)</DT
466a6844aabSmrg><DD
467a6844aabSmrg><P
468a6844aabSmrg>Escapes all occurrences of each of the characters in <TT
469a6844aabSmrgCLASS="PARAMETER"
470a6844aabSmrg><I
471a6844aabSmrg>chars</I
472a6844aabSmrg></TT
473a6844aabSmrg>
474a6844aabSmrgby prepending it by the first character in <TT
475a6844aabSmrgCLASS="PARAMETER"
476a6844aabSmrg><I
477a6844aabSmrg>chars</I
478a6844aabSmrg></TT
479a6844aabSmrg>.
480a6844aabSmrgFIXME: This converter is not UTF-8 aware yet.</P
481a6844aabSmrg></DD
482a6844aabSmrg><DT
483a6844aabSmrg>translate(<TT
484a6844aabSmrgCLASS="PARAMETER"
485a6844aabSmrg><I
486a6844aabSmrg>from</I
487a6844aabSmrg></TT
488a6844aabSmrg>,<TT
489a6844aabSmrgCLASS="PARAMETER"
490a6844aabSmrg><I
491a6844aabSmrg>to</I
492a6844aabSmrg></TT
493a6844aabSmrg>)</DT
494a6844aabSmrg><DD
495a6844aabSmrg><P
496a6844aabSmrg>Translates all occurrences of each of the characters in <TT
497a6844aabSmrgCLASS="PARAMETER"
498a6844aabSmrg><I
499a6844aabSmrg>from</I
500a6844aabSmrg></TT
501a6844aabSmrg>
502a6844aabSmrgby replacing them with their corresponding character in <TT
503a6844aabSmrgCLASS="PARAMETER"
504a6844aabSmrg><I
505a6844aabSmrg>to</I
506a6844aabSmrg></TT
507a6844aabSmrg>.
508a6844aabSmrgIf <TT
509a6844aabSmrgCLASS="PARAMETER"
510a6844aabSmrg><I
511a6844aabSmrg>to</I
512a6844aabSmrg></TT
513a6844aabSmrg> has fewer characters than
514a6844aabSmrg<TT
515a6844aabSmrgCLASS="PARAMETER"
516a6844aabSmrg><I
517a6844aabSmrg>from</I
518a6844aabSmrg></TT
519a6844aabSmrg>, it will be extended by repeating its last
520a6844aabSmrgcharacter.
521a6844aabSmrgFIXME: This converter is not UTF-8 aware yet.</P
522a6844aabSmrg></DD
523a6844aabSmrg></DL
524a6844aabSmrg></DIV
525a6844aabSmrg>
526a6844aabSmrg
527a6844aabSmrgFor example, the format "%{family|downcase|delete( )}\n" will expand
528a6844aabSmrgto the values of the family element in <TT
529a6844aabSmrgCLASS="PARAMETER"
530a6844aabSmrg><I
531a6844aabSmrg>pattern</I
532a6844aabSmrg></TT
533a6844aabSmrg>,
534a6844aabSmrglower-cased and with spaces removed.
535a6844aabSmrg	    </P
536a6844aabSmrg></DIV
537a6844aabSmrg><DIV
538a6844aabSmrgCLASS="REFSECT1"
539a6844aabSmrg><A
540b09479dcSmrgNAME="AEN1000"
541a6844aabSmrg></A
542a6844aabSmrg><H2
543b09479dcSmrg>Since</H2
544a6844aabSmrg><P
545b09479dcSmrg>version 2.9.0</P
546a6844aabSmrg></DIV
547a6844aabSmrg><DIV
548a6844aabSmrgCLASS="NAVFOOTER"
549a6844aabSmrg><HR
550a6844aabSmrgALIGN="LEFT"
551a6844aabSmrgWIDTH="100%"><TABLE
552a6844aabSmrgSUMMARY="Footer navigation table"
553a6844aabSmrgWIDTH="100%"
554a6844aabSmrgBORDER="0"
555a6844aabSmrgCELLPADDING="0"
556a6844aabSmrgCELLSPACING="0"
557a6844aabSmrg><TR
558a6844aabSmrg><TD
559a6844aabSmrgWIDTH="33%"
560a6844aabSmrgALIGN="left"
561a6844aabSmrgVALIGN="top"
562a6844aabSmrg><A
563a6844aabSmrgHREF="fcnameunparse.html"
564a6844aabSmrgACCESSKEY="P"
565a6844aabSmrg>&#60;&#60;&#60; Previous</A
566a6844aabSmrg></TD
567a6844aabSmrg><TD
568a6844aabSmrgWIDTH="34%"
569a6844aabSmrgALIGN="center"
570a6844aabSmrgVALIGN="top"
571a6844aabSmrg><A
572a6844aabSmrgHREF="t1.html"
573a6844aabSmrgACCESSKEY="H"
574a6844aabSmrg>Home</A
575a6844aabSmrg></TD
576a6844aabSmrg><TD
577a6844aabSmrgWIDTH="33%"
578a6844aabSmrgALIGN="right"
579a6844aabSmrgVALIGN="top"
580a6844aabSmrg>&nbsp;</TD
581a6844aabSmrg></TR
582a6844aabSmrg><TR
583a6844aabSmrg><TD
584a6844aabSmrgWIDTH="33%"
585a6844aabSmrgALIGN="left"
586a6844aabSmrgVALIGN="top"
587a6844aabSmrg>FcNameUnparse</TD
588a6844aabSmrg><TD
589a6844aabSmrgWIDTH="34%"
590a6844aabSmrgALIGN="center"
591a6844aabSmrgVALIGN="top"
592a6844aabSmrg><A
593b09479dcSmrgHREF="x102.html#AEN241"
594a6844aabSmrgACCESSKEY="U"
595a6844aabSmrg>Up</A
596a6844aabSmrg></TD
597a6844aabSmrg><TD
598a6844aabSmrgWIDTH="33%"
599a6844aabSmrgALIGN="right"
600a6844aabSmrgVALIGN="top"
601a6844aabSmrg>&nbsp;</TD
602a6844aabSmrg></TR
603a6844aabSmrg></TABLE
604a6844aabSmrg></DIV
605a6844aabSmrg></BODY
606a6844aabSmrg></HTML
607a6844aabSmrg>