👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

CentOS 7.0 - man page for fcpatternformat (centos section 3)

FcPatternFormat(3)							       FcPatternFormat(3)

NAME
       FcPatternFormat - Format a pattern into a string according to a format specifier

SYNOPSIS
       #include <fontconfig/fontconfig.h>

       FcChar8 * FcPatternFormat (FcPattern *pat, const FcChar8 *format);

DESCRIPTION
       Converts given pattern pat into text described by the format specifier format.  The return
       value refers to newly allocated memory which should be freed by the caller  using  free(),
       or NULL if format is invalid.

       The format is loosely modeled after printf-style format string.	The format string is com-
       posed of zero or  more  directives:  ordinary  characters  (not	"%"),  which  are  copied
       unchanged  to the output stream; and tags which are interpreted to construct text from the
       pattern in a variety of ways (explained below).	Special characters can be  escaped  using
       backslash.  C-string  style  special characters like \n and \r are also supported (this is
       useful when the format string is not a C string	literal).   It	is  advisable  to  always
       escape curly braces that are meant to be copied to the output as ordinary characters.

       Each  tag is introduced by the character "%", followed by an optional minimum field width,
       followed by tag contents in curly braces ({}).  If the minimum field width value  is  pro-
       vided the tag will be expanded and the result padded to achieve the minimum width.  If the
       minimum field width is positive, the padding will right-align  the  text.  Negative  field
       width  will left-align.	The rest of this section describes various supported tag contents
       and their expansion.

       A simple tag is one where the content is an identifier. When simple tags are expanded, the
       named  identifier  will be looked up in pattern and the resulting list of values returned,
       joined together using comma. For example, to print the family name and style of	the  pat-
       tern,  use the format "%{family} %{style}\n". To extend the family column to forty charac-
       ters use "%-40{family}%{style}\n".

       Simple tags expand to list of all values for an element. To only choose one of the values,
       one  can  index	using the syntax "%{elt[idx]}". For example, to get the first family name
       only, use "%{family[0]}".

       If a simple tag ends with "=" and the element is found in the pattern,  the  name  of  the
       element	followed  by  "="  will  be  output  before  the  list	of  values.  For example,
       "%{weight=}" may expand to the string "weight=80". Or to the empty string if pattern  does
       not have weight set.

       If  a  simple  tag  starts  with  ":" and the element is found in the pattern, ":" will be
       printed first. For example, combining this with the =, the format "%{:weight=}" may expand
       to ":weight=80" or to the empty string if pattern does not have weight set.

       If a simple tag contains the string ":-", the rest of the the tag contents will be used as
       a default string. The default string is output if the element is not found in the pattern.
       For  example,  the  format  "%{:weight=:-123}" may expand to ":weight=80" or to the string
       ":weight=123" if pattern does not have weight set.

       A count tag is one that starts with the character "#" followed by  an  element  name,  and
       expands to the number of values for the element in the pattern.	For example, "%{#family}"
       expands to the number of family names pattern has set, which may be zero.

       A sub-expression tag is one that expands a sub-expression. The tag contents are	the  sub-
       expression  to  expand placed inside another set of curly braces.  Sub-expression tags are
       useful for aligning an entire sub-expression, or to apply converters (explained later)  to
       the  entire  sub-expression  output.   For example, the format "%40{{%{family} %{style}}}"
       expands the sub-expression to construct the family name followed by the style, then  takes
       the entire string and pads it on the left to be at least forty characters.

       A filter-out tag is one starting with the character "-" followed by a comma-separated list
       of element names, followed by a sub-expression enclosed in curly braces.  The  sub-expres-
       sion  will  be  expanded  but with a pattern that has the listed elements removed from it.
       For example, the format "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with pattern
       sans the size and pixelsize elements.

       A  filter-in tag is one starting with the character "+" followed by a comma-separated list
       of element names, followed by a sub-expression enclosed in curly braces.  The  sub-expres-
       sion  will  be expanded but with a pattern that only has the listed elements from the sur-
       rounding pattern.  For example, the format "%{+family,familylang{sub-expr}}"  will  expand
       "sub-expr"  with a sub-pattern consisting only the family and family lang elements of pat-
       tern.

       A conditional tag is one starting with the character "?"  followed  by  a  comma-separated
       list  of  element  conditions, followed by two sub-expression enclosed in curly braces. An
       element condition can be an element name, in which case it tests whether  the  element  is
       defined	in  pattern,  or the character "!" followed by an element name, in which case the
       test is negated. The conditional passes if all  the  element  conditions  pass.	 The  tag
       expands	the  first  sub-expression if the conditional passes, and expands the second sub-
       expression otherwise.  For example, the format "%{?size,dpi,!pixelsize{pass}{fail}}"  will
       expand  to  "pass"  if  pattern has size and dpi elements but no pixelsize element, and to
       "fail" otherwise.

       An enumerate tag is one starting with the string "[]" followed by a  comma-separated  list
       of  element names, followed by a sub-expression enclosed in curly braces. The list of val-
       ues for the named elements are walked in parallel and  the  sub-expression  expanded  each
       time with a pattern just having a single value for those elements, starting from the first
       value and continuing as long as any of those elements has a value.  For example, the  for-
       mat  "%{[]family,familylang{%{family} (%{familylang})\n}}" will expand the pattern "%{fam-
       ily} (%{familylang})\n" with a pattern having only the first value of the family and fami-
       lylang elements, then expands it with the second values, then the third, etc.

       As a special case, if an enumerate tag has only one element, and that element has only one
       value in the pattern, and that value is of type FcLangSet, the individual languages in the
       language set are enumerated.

       A  builtin tag is one starting with the character "=" followed by a builtin name. The fol-
       lowing builtins are defined:

       unparse
	      Expands to the result of calling FcNameUnparse() on the pattern.

       fcmatch
	      Expands to the output of the default output format of the fc-match command  on  the
	      pattern, without the final newline.

       fclist Expands  to  the	output of the default output format of the fc-list command on the
	      pattern, without the final newline.

       fccat  Expands to the output of the default output format of the  fc-cat  command  on  the
	      pattern, without the final newline.

       pkgkit Expands  to  the	list  of  PackageKit font() tags for the pattern.  Currently this
	      includes tags for each family name, and each language from the pattern,  enumerated
	      and  sanitized into a set of tags terminated by newline. Package management systems
	      can use these tags to tag their packages accordingly.

       For example, the format "%{+family,style{%{=unparse}}}\n" will expand to an unparsed  name
       containing only the family and style element values from pattern.

       The  contents  of any tag can be followed by a set of zero or more converters. A converter
       is specified by the character "|" followed by the converter name and arguments.	The  fol-
       lowing converters are defined:

       basename
	      Replaces text with the results of calling FcStrBasename() on it.

       dirname
	      Replaces text with the results of calling FcStrDirname() on it.

       downcase
	      Replaces text with the results of calling FcStrDowncase() on it.

       shescape
	      Escapes  text  for  one  level  of  shell  expansion.  (Escapes single-quotes, also
	      encloses text in single-quotes.)

       cescape
	      Escapes text such that it can be used as part of	a  C  string  literal.	 (Escapes
	      backslash and double-quotes.)

       xmlescape
	      Escapes  text  such  that  it  can  be  used  in XML and HTML.  (Escapes less-than,
	      greater-than, and ampersand.)

       delete(chars)
	      Deletes all occurrences of each of the characters in chars from the  text.   FIXME:
	      This converter is not UTF-8 aware yet.

       escape(chars)
	      Escapes  all occurrences of each of the characters in chars by prepending it by the
	      first character in chars.  FIXME: This converter is not UTF-8 aware yet.

       translate(from,to)
	      Translates all occurrences of each of the characters in from by replacing them with
	      their corresponding character in to.  If to has fewer characters than from, it will
	      be extended by repeating its last character.  FIXME: This converter  is  not  UTF-8
	      aware yet.

       For  example, the format "%{family|downcase|delete( )}\n" will expand to the values of the
       family element in pattern, lower-cased and with spaces removed.

VERSION
       Fontconfig version 2.10.95

					    31 8 2013			       FcPatternFormat(3)


All times are GMT -4. The time now is 08:48 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password