]> git.wh0rd.org - fontconfig.git/blobdiff - fonts.dtd
Bump libtool revision in preparation for release
[fontconfig.git] / fonts.dtd
index 9cbff4b67a4e29f1a811899183a78d0711b15346..cbdfdab3fb5675e159b482a1f5ed21f87e71156b 100644 (file)
--- a/fonts.dtd
+++ b/fonts.dtd
@@ -1,8 +1,10 @@
 <!-- This is the Document Type Definition for font configuration files -->
 <!ELEMENT fontconfig (dir | 
                      cache | 
+                     cachedir |
                      include | 
                      config |
+                     selectfont |
                      match | 
                      alias)* >
 
 <!ELEMENT cache (#PCDATA)>
 <!ATTLIST cache xml:space (default|preserve) 'preserve'>
 
+<!--
+    Add a directory that is searched for font cache files.
+    These hold per-directory cache data and are searched in
+    order for each directory. When writing cache files, the first
+    directory which allows the cache file to be created is used.
+
+    A leading '~' in a directory name is replaced with the users
+    home directory path.
+-->
+<!ELEMENT cachedir (#PCDATA)>
+<!ATTLIST cachedir xml:space (default|preserve) 'preserve'>
+
 <!--
     Reference another configuration file; note that this
     is another complete font configuration file and not
  -->
 <!ELEMENT rescan (int)>
 
+<!--
+    Edit list of available fonts at startup/reload time
+ -->
+<!ELEMENT selectfont (rejectfont | acceptfont)* >
+
+<!ELEMENT rejectfont (glob | pattern)*>
+
+<!ELEMENT acceptfont (glob | pattern)*>
+
+<!ELEMENT glob (#PCDATA)>
+
+<!ELEMENT pattern (patelt)*>
+
+<!ENTITY % constant 'int|double|string|matrix|bool|charset|const'>
+
+<!ELEMENT patelt (%constant;)*>
+<!ATTLIST patelt
+         name CDATA    #REQUIRED>
 
 <!ELEMENT alias (family*, prefer?, accept?, default?)>
+<!ATTLIST alias
+         binding (weak|strong|same) "weak">
 <!ELEMENT prefer (family)*>
 <!ELEMENT accept (family)*>
 <!ELEMENT default (family)*>
 
 <!ENTITY % expr 'int|double|string|matrix|bool|charset
                |name|const
-               |or|and|eq|not_eq|less|less_eq|more|more_eq
-               |plus|minus|times|divide|not|if'>
+               |or|and|eq|not_eq|less|less_eq|more|more_eq|contains|not_contains
+               |plus|minus|times|divide|not|if|floor|ceil|round|trunc'>
 
 <!--
     Match and edit patterns.
 -->
 <!ELEMENT match (test*, edit*)>
 <!ATTLIST match
-         target (pattern|font) "pattern">
+         target (pattern|font|scan) "pattern">
 
 <!--
     Match a field in a pattern
     For match elements with target=font, if test 'target' is 'pattern',
     then the test is applied to the pattern used in matching rather than
     to the resulting font.
+
+    Match elements with target=scan are applied as fonts are scanned.
+    They edit the pattern generated from the scanned font and affect
+    what the fontconfig database contains.
 -->
 <!ELEMENT test (%expr;)*>
 <!ATTLIST test 
          qual (any|all|first|not_first)    "any"
          name CDATA        #REQUIRED
          target (pattern|font|default)         "default"
-         compare (eq|not_eq|less|less_eq|more|more_eq) "eq">
+         compare (eq|not_eq|less|less_eq|more|more_eq|contains|not_contains)   "eq">
 
 <!--
     Edit a field in a pattern
 <!ATTLIST edit
          name CDATA        #REQUIRED
          mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign"
-         binding (weak|strong) "weak">
+         binding (weak|strong|same) "weak">
 
 <!--
     Elements of expressions follow
 <!ELEMENT string (#PCDATA)>
 <!ATTLIST string xml:space (default|preserve) 'preserve'>
 <!ELEMENT matrix (double,double,double,double)>
-<!ELEMENT bool (true|false)>
+<!ELEMENT bool (#PCDATA)>
 <!ELEMENT charset (#PCDATA)>
 <!ATTLIST charset xml:space (default|preserve) 'preserve'>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT less_eq ((%expr;), (%expr;))>
 <!ELEMENT more ((%expr;), (%expr;))>
 <!ELEMENT more_eq ((%expr;), (%expr;))>
+<!ELEMENT contains ((%expr;), (%expr;))>
+<!ELEMENT not_contains ((%expr;), (%expr;))>
 <!ELEMENT plus (%expr;)*>
 <!ELEMENT minus (%expr;)*>
 <!ELEMENT times (%expr;)*>
 <!ELEMENT divide (%expr;)*>
 <!ELEMENT not (%expr;)>
 <!ELEMENT if ((%expr;), (%expr;), (%expr;))>
+<!ELEMENT floor (%expr;)>
+<!ELEMENT ceil (%expr;)>
+<!ELEMENT round (%expr;)>
+<!ELEMENT trunc (%expr;)>