[Fontconfig] fontconfig: Branch 'master' - 189 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Wed Jun 24 12:18:08 PDT 2009


 .gitignore                      |   10 
 COPYING                         |    6 
 Makefile.am                     |   32 -
 README                          |  222 +++++++
 conf.d/50-user.conf             |    1 
 conf.d/65-fonts-persian.conf    |   16 
 conf.d/65-nonlatin.conf         |   52 +
 conf.d/Makefile.am              |   13 
 config/Makedefs.in              |    6 
 config/install.sh               |    2 
 configure.in                    |   30 
 doc/Makefile.am                 |   15 
 doc/confdir.sgml.in             |    6 
 doc/edit-sgml.c                 |    6 
 doc/fcatomic.fncs               |    6 
 doc/fcblanks.fncs               |    6 
 doc/fccache.fncs                |    4 
 doc/fccharset.fncs              |   21 
 doc/fcconfig.fncs               |   58 +
 doc/fcconstant.fncs             |    6 
 doc/fcfile.fncs                 |   24 
 doc/fcfontset.fncs              |    9 
 doc/fcformat.fncs               |  301 ++++++++++
 doc/fcfreetype.fncs             |    6 
 doc/fcinit.fncs                 |    6 
 doc/fclangset.fncs              |    8 
 doc/fcmatrix.fncs               |    6 
 doc/fcobjectset.fncs            |    6 
 doc/fcobjecttype.fncs           |    6 
 doc/fcpattern.fncs              |   38 -
 doc/fcstring.fncs               |    6 
 doc/fcstrset.fncs               |    6 
 doc/fcvalue.fncs                |    6 
 doc/fontconfig-devel.sgml       |   12 
 doc/fontconfig-user.sgml        |    6 
 doc/func.sgml                   |    6 
 doc/version.sgml.in             |    6 
 fc-arch/Makefile.am             |    7 
 fc-arch/fcarch.tmpl.h           |    4 
 fc-cache/Makefile.am            |    8 
 fc-cache/fc-cache.c             |   53 -
 fc-cache/fc-cache.sgml          |   27 
 fc-case/Makefile.am             |    4 
 fc-case/fc-case.c               |    6 
 fc-case/fccase.tmpl.h           |    6 
 fc-cat/Makefile.am              |    8 
 fc-cat/fc-cat.c                 |   51 -
 fc-cat/fc-cat.sgml              |   21 
 fc-glyphname/Makefile.am        |    4 
 fc-glyphname/fc-glyphname.c     |    6 
 fc-glyphname/fcglyphname.tmpl.h |    6 
 fc-lang/Makefile.am             |  256 ++++++++
 fc-lang/aa.orth                 |    6 
 fc-lang/ab.orth                 |    6 
 fc-lang/af.orth                 |    6 
 fc-lang/ak.orth                 |   30 
 fc-lang/am.orth                 |    6 
 fc-lang/an.orth                 |   45 +
 fc-lang/ar.orth                 |    6 
 fc-lang/as.orth                 |   37 -
 fc-lang/ast.orth                |   18 
 fc-lang/av.orth                 |   97 +++
 fc-lang/ava.orth                |   97 ---
 fc-lang/ay.orth                 |    6 
 fc-lang/az.orth                 |   66 --
 fc-lang/az_az.orth              |   53 +
 fc-lang/az_ir.orth              |    6 
 fc-lang/ba.orth                 |    6 
 fc-lang/bam.orth                |   37 -
 fc-lang/be.orth                 |    6 
 fc-lang/ber_dz.orth             |   27 
 fc-lang/ber_ma.orth             |   46 +
 fc-lang/bg.orth                 |    6 
 fc-lang/bh.orth                 |    6 
 fc-lang/bho.orth                |    6 
 fc-lang/bi.orth                 |    6 
 fc-lang/bin.orth                |    6 
 fc-lang/bm.orth                 |   37 +
 fc-lang/bn.orth                 |   23 
 fc-lang/bo.orth                 |    6 
 fc-lang/br.orth                 |    6 
 fc-lang/bs.orth                 |    6 
 fc-lang/bua.orth                |    6 
 fc-lang/byn.orth                |   27 
 fc-lang/ca.orth                 |    6 
 fc-lang/ce.orth                 |    6 
 fc-lang/ch.orth                 |    6 
 fc-lang/chm.orth                |    6 
 fc-lang/chr.orth                |    6 
 fc-lang/co.orth                 |    6 
 fc-lang/crh.orth                |   46 +
 fc-lang/cs.orth                 |    6 
 fc-lang/csb.orth                |   46 +
 fc-lang/cu.orth                 |    6 
 fc-lang/cv.orth                 |    6 
 fc-lang/cy.orth                 |    6 
 fc-lang/da.orth                 |    6 
 fc-lang/de.orth                 |    7 
 fc-lang/dv.orth                 |   34 +
 fc-lang/dz.orth                 |    6 
 fc-lang/ee.orth                 |   77 ++
 fc-lang/el.orth                 |    7 
 fc-lang/en.orth                 |    7 
 fc-lang/eo.orth                 |    6 
 fc-lang/es.orth                 |    7 
 fc-lang/et.orth                 |    6 
 fc-lang/eu.orth                 |    6 
 fc-lang/fa.orth                 |    6 
 fc-lang/fat.orth                |   30 
 fc-lang/fc-lang.c               |   86 +-
 fc-lang/fc-lang.man             |    6 
 fc-lang/fclang.tmpl.h           |    6 
 fc-lang/ff.orth                 |   38 +
 fc-lang/fi.orth                 |    7 
 fc-lang/fil.orth                |   45 +
 fc-lang/fj.orth                 |    6 
 fc-lang/fo.orth                 |    6 
 fc-lang/fr.orth                 |    7 
 fc-lang/ful.orth                |   38 -
 fc-lang/fur.orth                |    6 
 fc-lang/fy.orth                 |    6 
 fc-lang/ga.orth                 |    6 
 fc-lang/gd.orth                 |    6 
 fc-lang/gez.orth                |    6 
 fc-lang/gl.orth                 |    6 
 fc-lang/gn.orth                 |    6 
 fc-lang/gu.orth                 |   10 
 fc-lang/gv.orth                 |    6 
 fc-lang/ha.orth                 |    6 
 fc-lang/haw.orth                |    6 
 fc-lang/he.orth                 |    6 
 fc-lang/hi.orth                 |    6 
 fc-lang/hne.orth                |   28 
 fc-lang/ho.orth                 |    6 
 fc-lang/hr.orth                 |    6 
 fc-lang/hsb.orth                |   42 +
 fc-lang/ht.orth                 |   35 +
 fc-lang/hu.orth                 |    6 
 fc-lang/hy.orth                 |    6 
 fc-lang/hz.orth                 |   35 +
 fc-lang/ia.orth                 |    6 
 fc-lang/ibo.orth                |   35 -
 fc-lang/id.orth                 |    6 
 fc-lang/ie.orth                 |    6 
 fc-lang/ig.orth                 |   35 +
 fc-lang/ii.orth                 |   34 +
 fc-lang/ik.orth                 |    6 
 fc-lang/io.orth                 |    6 
 fc-lang/is.orth                 |    6 
 fc-lang/it.orth                 |    7 
 fc-lang/iu.orth                 |    6 
 fc-lang/ja.orth                 |    6 
 fc-lang/jv.orth                 |   36 +
 fc-lang/ka.orth                 |    6 
 fc-lang/kaa.orth                |    6 
 fc-lang/kab.orth                |   42 +
 fc-lang/ki.orth                 |    6 
 fc-lang/kj.orth                 |   34 +
 fc-lang/kk.orth                 |    6 
 fc-lang/kl.orth                 |    6 
 fc-lang/km.orth                 |   26 
 fc-lang/kn.orth                 |   10 
 fc-lang/ko.orth                 |    6 
 fc-lang/kok.orth                |    6 
 fc-lang/kr.orth                 |   43 +
 fc-lang/ks.orth                 |   21 
 fc-lang/ku.orth                 |   94 ---
 fc-lang/ku_am.orth              |   91 +++
 fc-lang/ku_iq.orth              |   27 
 fc-lang/ku_ir.orth              |    6 
 fc-lang/ku_tr.orth              |   42 +
 fc-lang/kum.orth                |    6 
 fc-lang/kv.orth                 |    6 
 fc-lang/kw.orth                 |    6 
 fc-lang/kwm.orth                |   29 
 fc-lang/ky.orth                 |    6 
 fc-lang/la.orth                 |    6 
 fc-lang/lah.orth                |   35 +
 fc-lang/lb.orth                 |    6 
 fc-lang/lez.orth                |    6 
 fc-lang/lg.orth                 |   33 +
 fc-lang/li.orth                 |   43 +
 fc-lang/ln.orth                 |    6 
 fc-lang/lo.orth                 |   10 
 fc-lang/lt.orth                 |    6 
 fc-lang/lv.orth                 |    6 
 fc-lang/mai.orth                |   25 
 fc-lang/mg.orth                 |    6 
 fc-lang/mh.orth                 |    6 
 fc-lang/mi.orth                 |    6 
 fc-lang/mk.orth                 |    6 
 fc-lang/ml.orth                 |   10 
 fc-lang/mn.orth                 |   37 -
 fc-lang/mn_cn.orth              |   37 +
 fc-lang/mn_mn.orth              |   35 +
 fc-lang/mo.orth                 |    6 
 fc-lang/mr.orth                 |    6 
 fc-lang/ms.orth                 |   32 +
 fc-lang/mt.orth                 |    6 
 fc-lang/my.orth                 |    6 
 fc-lang/na.orth                 |   40 +
 fc-lang/nb.orth                 |    8 
 fc-lang/nds.orth                |    6 
 fc-lang/ne.orth                 |    6 
 fc-lang/ng.orth                 |   29 
 fc-lang/nl.orth                 |    7 
 fc-lang/nn.orth                 |    6 
 fc-lang/no.orth                 |    6 
 fc-lang/nr.orth                 |    2 
 fc-lang/nso.orth                |    2 
 fc-lang/nv.orth                 |   48 +
 fc-lang/ny.orth                 |    6 
 fc-lang/oc.orth                 |    6 
 fc-lang/om.orth                 |    6 
 fc-lang/or.orth                 |   11 
 fc-lang/os.orth                 |    6 
 fc-lang/ota.orth                |   41 +
 fc-lang/pa.orth                 |   21 
 fc-lang/pa_pk.orth              |   29 
 fc-lang/pap_an.orth             |   46 +
 fc-lang/pap_aw.orth             |   31 +
 fc-lang/pl.orth                 |    6 
 fc-lang/ps_af.orth              |    6 
 fc-lang/ps_pk.orth              |    6 
 fc-lang/pt.orth                 |    7 
 fc-lang/qu.orth                 |   36 +
 fc-lang/rm.orth                 |    6 
 fc-lang/rn.orth                 |   32 +
 fc-lang/ro.orth                 |    6 
 fc-lang/ru.orth                 |    6 
 fc-lang/rw.orth                 |   31 +
 fc-lang/sa.orth                 |    6 
 fc-lang/sah.orth                |    6 
 fc-lang/sc.orth                 |   42 +
 fc-lang/sco.orth                |    6 
 fc-lang/sd.orth                 |   58 +
 fc-lang/se.orth                 |    6 
 fc-lang/sel.orth                |    6 
 fc-lang/sg.orth                 |   47 +
 fc-lang/sh.orth                 |   20 
 fc-lang/shs.orth                |    2 
 fc-lang/si.orth                 |   63 +-
 fc-lang/sid.orth                |   27 
 fc-lang/sk.orth                 |    6 
 fc-lang/sl.orth                 |    6 
 fc-lang/sm.orth                 |    6 
 fc-lang/sma.orth                |    6 
 fc-lang/smj.orth                |    6 
 fc-lang/smn.orth                |    6 
 fc-lang/sms.orth                |    6 
 fc-lang/sn.orth                 |   35 +
 fc-lang/so.orth                 |    6 
 fc-lang/sq.orth                 |    6 
 fc-lang/sr.orth                 |   30 
 fc-lang/ss.orth                 |    2 
 fc-lang/st.orth                 |    2 
 fc-lang/su.orth                 |   33 +
 fc-lang/sv.orth                 |    6 
 fc-lang/sw.orth                 |    6 
 fc-lang/syr.orth                |    6 
 fc-lang/ta.orth                 |    6 
 fc-lang/te.orth                 |   10 
 fc-lang/tg.orth                 |    6 
 fc-lang/th.orth                 |   14 
 fc-lang/ti_er.orth              |    6 
 fc-lang/ti_et.orth              |    6 
 fc-lang/tig.orth                |    6 
 fc-lang/tk.orth                 |  116 ---
 fc-lang/tl.orth                 |   25 
 fc-lang/tn.orth                 |    6 
 fc-lang/to.orth                 |    6 
 fc-lang/tr.orth                 |    6 
 fc-lang/ts.orth                 |    6 
 fc-lang/tt.orth                 |    6 
 fc-lang/tw.orth                 |    6 
 fc-lang/ty.orth                 |   41 +
 fc-lang/tyv.orth                |    6 
 fc-lang/ug.orth                 |    6 
 fc-lang/uk.orth                 |    6 
 fc-lang/ur.orth                 |    6 
 fc-lang/uz.orth                 |   96 ---
 fc-lang/ve.orth                 |   34 +
 fc-lang/ven.orth                |   34 -
 fc-lang/vi.orth                 |    6 
 fc-lang/vo.orth                 |    6 
 fc-lang/vot.orth                |    6 
 fc-lang/wa.orth                 |    6 
 fc-lang/wal.orth                |   27 
 fc-lang/wen.orth                |    6 
 fc-lang/wo.orth                 |    6 
 fc-lang/xh.orth                 |    6 
 fc-lang/yap.orth                |    6 
 fc-lang/yi.orth                 |    6 
 fc-lang/yo.orth                 |    6 
 fc-lang/za.orth                 |   39 +
 fc-lang/zh_cn.orth              |    6 
 fc-lang/zh_hk.orth              |    6 
 fc-lang/zh_mo.orth              |    6 
 fc-lang/zh_sg.orth              |    6 
 fc-lang/zh_tw.orth              |    6 
 fc-lang/zu.orth                 |    6 
 fc-list/Makefile.am             |    8 
 fc-list/fc-list.c               |  118 ++-
 fc-list/fc-list.sgml            |   48 +
 fc-match/Makefile.am            |    8 
 fc-match/fc-match.c             |  111 ++-
 fc-match/fc-match.sgml          |   84 ++
 fc-query/Makefile.am            |   59 +
 fc-query/fc-query.c             |  191 ++++++
 fc-query/fc-query.sgml          |  191 ++++++
 fc-scan/Makefile.am             |   59 +
 fc-scan/fc-scan.c               |  184 ++++++
 fc-scan/fc-scan.sgml            |  176 +++++
 fontconfig.pc.in                |    2 
 fontconfig/fcfreetype.h         |    6 
 fontconfig/fcprivate.h          |    6 
 fontconfig/fontconfig.h         |   27 
 new-version.sh                  |   10 
 src/Makefile.am                 |    7 
 src/fcatomic.c                  |    8 
 src/fcblanks.c                  |    6 
 src/fccache.c                   |   53 +
 src/fccfg.c                     |   66 +-
 src/fccharset.c                 |  182 +++---
 src/fcdbg.c                     |   27 
 src/fcdefault.c                 |    6 
 src/fcdir.c                     |  163 +++--
 src/fcformat.c                  | 1203 ++++++++++++++++++++++++++++++++++++++++
 src/fcfreetype.c                |   64 +-
 src/fcfs.c                      |    6 
 src/fcinit.c                    |    6 
 src/fcint.h                     |   92 +--
 src/fclang.c                    |   42 +
 src/fclist.c                    |   19 
 src/fcmatch.c                   |  176 +++--
 src/fcmatrix.c                  |    2 
 src/fcname.c                    |   24 
 src/fcpat.c                     |   75 +-
 src/fcstr.c                     |   51 +
 src/fcxml.c                     |  472 ++++++++-------
 src/ftglue.c                    |   11 
 341 files changed, 7499 insertions(+), 2286 deletions(-)

New commits:
commit 0f40912599a4be1b961c091733ed86d08a4e14e1
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Jun 24 15:04:11 2009 -0400

    Bump version to 2.7.0

diff --git a/README b/README
index 205aea4..1fbbb95 100644
--- a/README
+++ b/README
@@ -1,12 +1,230 @@
                               Fontconfig
              Font configuration and customization library
-                              Version 2.6
-                              2008-05-31
+                              Version 2.7
+                              2009-06-24
 
 
 Check INSTALL for compilation and installation instructions.
 Report bugs to https://bugs.freedesktop.org in the fontconfig module.
 
+2.7
+
+Alexey Khoroshilov (1):
+      Use human-readable file names in the docs (bug #16278)
+
+Behdad Esfahbod (119):
+      Avoid C99ism in Win32 code (#16651)
+      [doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985)
+      When canonizing filenames, squash // and remove final / (#bug 16286)
+      Add orth file for Maithili mai.orth (#15821)
+      Replace RCS Id tags with the file name
+      [doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272)
+      Update Thai default families (#16223)
+      Add ~/.fonts.conf.d to default config (#17100)
+      [fc-match] Fix list of getopt options in --help
+      Update man pages
+      Add fc-query (#13019)
+      Implement fc-list --verbose (#13015)
+      [doc] Add const decorator for FcPatternDuplicate()
+      Add FcPatternFilter() (#13016)
+      [doc] Document that a zero rescanInterval disables automatic checks (#17103)
+      Get rid of $Id$ tags
+      [doc] Fix signature of FcConfigHome()
+      Fix docs re 'orig' argument of FcPatternBuild and family
+      Update sr.orth to actul subset of Cyrillic used by Serbian (#17208)
+      Add Sindhi .orth file. (#17140)
+      Add WenQuanYi fonts to default conf (#17262, from Mandriva)
+      Handle -h and --help according to GNU Coding Standards (#17104)
+      Document when config can be NULL (#17105)
+      Add FcConfigReference() (#17124)
+      Document how to free return value of FcNameUnparse()
+      Don't leak FcValues string loaded through fcxml.c (#17661)
+      Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361)
+      Fix two more doc typos
+      [.gitignore] Update
+      Cleanup symlinks in "make uninstall" (bug #18885)
+      [fccache] Consistently use FcStat() over stat() (bug #18195)
+      Consistently use FcStat() over stat() in all places
+      Use __builtin_popcount() when available (bug #17592)
+      Fix compile with old FreeType that doesn't have FT_Select_Size() (bug #17498)
+      Implement fc-list --quiet ala grep (bug #17141)
+      [65-fonts-persian.conf] Set foundry in target=scan instead of target=font
+      Don't use identifier named complex
+      Explicitly chmod() directories (bug #18934)
+      Remove special-casing of FC_FILE in FcPatternPrint()
+      [.gitignore] Update
+      Implement FcPatternFormat and use it in cmdline tools (bug #17107)
+      Fix comparison of family names to ignore leading space properly
+      [fcmatch.c] Fix debug formatting
+      [fcmatch] Use larger multipliers to enforce order
+      [fcmatch] When matching, reserve score 0 for when elements don't exist
+      [fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal()
+      [doc] Note that fontset returned by FcConfigGetFonts should not be modified
+      Make FcCharSetMerge() public
+      Don't use FcCharSetCopy in FcCharSetMerge
+      Oops.  Fix usage output.
+      Revive FcConfigScan() (bug #17121)
+      Add fc-scan too that runs FcFileScan/FcDirScan
+      Oops, fix FcPatternFilter
+      [fc-match] Accept list of elements like fc-list (bug #13017)
+      Cleanup all manpage.* files
+      [fcmatch] Fix crash when no fonts are available.
+      [fcfreetype] Fix typo in GB2312 encoding name string (#19845)
+      Add ICONV_LIBS to fontconfig.pc.in (#19606)
+      [win32] Fix usage of GetFullPathName()
+      [win32] Expand "APPSHAREFONTDIR" to ../share/fonts relative to binary location
+      [win32] Do not remove leading '\\' such that network paths work
+      [fccache] Make sure the cache is current when reusing from open caches
+      Update Sinhala orthography (#19288)
+      [cache] After writing cache to file, update the internal copy to reflect this
+      Further update Sinhala orthography (#19288)
+      [fcformat] Add support for width modifiers
+      [fcformat] Refactor and restructure code for upcoming changes
+      [fcformat] Add support for subexpressions
+      [fcformat] Add element filtering and deletion
+      [fcformat] Add conditionals
+      [fcformat] Add simple converters
+      [fcformat] Implement 'cescape', 'shescape', and 'xmlescape' converters
+      [FcStrBuf] better handle malloc failure
+      [fcformat] Add value-count syntax
+      [fcformat] Implement 'delete', 'escape', and 'translate' filter functions
+      [fcformat] Start adding builtins
+      [fcformat] Refactor code to avoid malloc
+      [fcformat] Add support for builtin formats
+      [fcformat] Support indexing simple tags
+      [fcformat] Support 'default value' for simple tags
+      [fcformat] Implement array enumeration
+      [fclang] Implement FcLangSetGetLangs() (#18846)
+      [fcformat] Enumerate langsets like we do arrays of values
+      [fcformat] Add a 'pkgkit' builtin that prints tags for font packages
+      [fcformat] Add list of undocumented language features
+      [fc-lang] Continue parsing after an "include" (#20179)
+      Fix Fanti (fat) orth file (#20390)
+      Fix Makefile's to not create target file in case of failure
+      [fcstr.c] Embed a static 64-byte buffer in FcStrBuf
+      [fcstr,fcxml] Don't copy FcStrBuf contents when we would free it soon
+      [fcxml] Don't allocate attr array if there are no attributes
+      [fcxml] Embed 8 static FcPStack objects in FcConfigParse
+      [fcxml] Embed 64 static FcVStack objects in FcConfigParse
+      [fcxml.c] Embed a static 64-byte attr buffer in FcPStack
+      Call git tools using "git cmd" instead of "git-cmd" syntax
+      Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files
+      [fcformat] Fix default-value handling
+      Document FcPatternFormat() format
+      [Makefile.am] Don't clean ChangeLog in distclean
+      Revert "[conf] Disable hinting when emboldening (#19904)" (#20599)
+      [fc-lang] Fix bug in country map generation
+      [fcstr] Remove unused variable
+      [fc-lang] Make LangSet representation in the cache files stable
+      [fc-cache] Remove obsolete sentence from man page
+      Detect TrueType Collections by checking the font data header
+      Mark matchers array const (#21935)
+      Use/prefer WWS family/style (name table id 21/22)
+      Simplify FcValueSave() semantics
+      Add XXX note about Unicode Plane 16
+      Always set *changed in FcCharsetMerge
+      [charset] Grow internal FcCharset arrays exponentially
+      Remove unused prototypes and function
+      [xml] Centralize FcExpr allocation
+      [xml] Mark more symbols static
+      [xml] Allocate FcExpr's in a pool in FcConfig
+      [xml] Intern more strings
+      Bug 22154 -- fontconfig.pc doesn't include libxml2 link flags
+      Fix distcheck
+      Remove keithp's GPG key id
+
+Benjamin Close (1):
+      Remove build manpage logfile if it exists
+
+Chris Wilson (1):
+      Reduce number of allocations during FcSortWalk().
+
+Dan Nicholson (1):
+      Let make expand fc_cachedir/FC_CACHEDIR (bug #18675)
+
+Harald Fernengel (1):
+      Don't use variables named 'bool' (bug #18851)
+
+Harshula Jayasuriya (1):
+      Fix Sinhala coverage (bug #19288)
+
+Karl Tomlinson (1):
+      Change FcCharSetMerge API
+
+Mike FABIAN (1):
+      [conf] Disable hinting when emboldening (#19904)
+
+Peter (1):
+      Make sure alias files are built first (bug 16464)
+
+Rahul Bhalerao (1):
+      Add config for new Indic fonts (bug #17856)
+
+Roozbeh Pournader (60):
+      Correct Sindhi orthography to use Arabic script (bug #17140)
+      Remove Sinhala characters not in modern use (bug #19288)
+      Add Filipino orth, alias Tagalog to Filipino (bug #19846)
+      Split Mongolian orth to Mongolia and China (bug #19847)
+      Fix doubly encoded UTF-8 in comments (bug #19848)
+      Change Turkmen orth from Cyrillic to Latin (bug #19849)
+      Rename Venda from "ven" to "ve" (bug #19852)
+      Rename "ku" to "ku_am", add "ku_iq" (bug #19853).
+      Add Kashubian (csb) orth file (bug #19866)
+      Add Malay (ms) orthography (bug #19867)
+      Add Kinyarwanda (rw) orthography (bug #19868)
+      Add Upper Sorbian (hsb) orthography (bug #19870)
+      Add Berber orthographies in Latin and Tifinagh scripts (bug #19881)
+      Renamed az to az_az (bug #19889)
+      Rename Igbo from "ibo" to "ig" (bug #19892)
+      Remove punctuation symbols from Asturian orthography (bug #19893)
+      Add Chhattisgarhi (hne) orthography (bug #19891)
+      Use newly added Cyrillic letters for Kurdish (bug #20049)
+      Add Kurdish in Turkey (ku_tr) orthography (bug #19891)
+      Add Aragonese (an) orthography (bug #19891)
+      Add Haitian Creole (ht) orthography (bug #19891)
+      Ad Ganda (lg) orthography (bug #19891)
+      Add Limburgan (li) orthography (bug #19891)
+      Add Sardinian (sc) orthography (bug #19891)
+      Add Sidamo (sid) and Wolaitta (wal) orthographies (bug #19891)
+      Fix Bengali (bn) and Assamese (as) orthographies (bug #22924)
+      Remove Euro Sign from all orthographies (bug #19865)
+      Add Ottoman Turkish (ota) orthography (bug #20114)
+      Divide Panjabi (pa) to that of Pakistan and India (bug #19890)
+      Add Blin (byn) orthography (bug #19891)
+      Add Papiamento (pap_aw, pap_an) orthographies (bug #19891)
+      Add Crimean Tatar (crh) orthography (bug #19891)
+      Switch Uzbek (uz) orthography to Latin (bug #19851)
+      Update Azerbaijani in Latin (az_az) to present usage (bug #20173)
+      Rename Avaric orthography from 'ava' to 'av' (bug #20174)
+      Rename Bambara orthography from 'bam' to 'bm' (bug #20175)
+      Rename Fulah orthography from 'ful' to 'ff' (bug #20177)
+      Change Kashmiri (ks) orthography to Arabic script (bug #20200)
+      Tighten Central Khmer (km) orthography (bug #20202)
+      Remove digits and symbols from some Indic orthographies (bug #20204)
+      Add Divehi (dv) orthography (bug #20207)
+      Extend Crimean Tatar (crh) orthography (bug #19891)
+      Update Serbo-Croatian (sh) orthography (bug #20368)
+      Add Ewe (ee) orthography (bug #20386)
+      Add Herero (hz) orthograhy (bug #20387)
+      Add Akan (ak) and Fanti (fat) orthographies (bug #20390)
+      Added Quechua (qu) orthography (bug #20392)
+      Add Sango (sg) orthography (bug #20393)
+      Add Tahitian (ty) orthography (bug #20391)
+      Add Navajo (nv) orthography (bug #20395)
+      Add Rundi (rn) orthography (bug #20398)
+      Add Zhuang (za) orthography (bug #20399)
+      Add orthographies for Oshiwambo languages (bug #20401)
+      Add Shona (sn) orthography (bug #20394)
+      Add Sichuan Yi (ii) orthography (bug #20402)
+      Add Javanese (jv) orthography (bug #20403)
+      Add Nauru (na) orthography (bug #20418)
+      Add Kanuri (kr) orthography (bug #20438)
+      Add Sundanese (su) orthography (bug #20440)
+      Reorganize Panjabi/Punjabi and Lahnda orthographies (bug #19890)
+
+Serge van den Boom (1):
+      Correctly handle mmap() failure (#21062)
+
 2.6
 
 2.5.93 (2.6 RC3)
diff --git a/configure.in b/configure.in
index 9bd78e4..fe93459 100644
--- a/configure.in
+++ b/configure.in
@@ -33,7 +33,7 @@ dnl This is the package version number, not the shared library
 dnl version.  This same version number must appear in fontconfig/fontconfig.h
 dnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
 dnl not possible to extract the version number here from fontconfig.h
-AM_INIT_AUTOMAKE(fontconfig, 2.6.0)
+AM_INIT_AUTOMAKE(fontconfig, 2.7.0)
 AM_MAINTAINER_MODE
 
 dnl libtool versioning
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index a59a7b3..935e4f1 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -52,7 +52,7 @@ typedef int		FcBool;
  */
 
 #define FC_MAJOR	2
-#define FC_MINOR	6
+#define FC_MINOR	7
 #define FC_REVISION	0
 
 #define FC_VERSION	((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
commit 3734d6a5a2c5326bf1cd8b7cc7f3f07fe6943aa5
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Jun 24 15:03:32 2009 -0400

    Remove keithp's GPG key id

diff --git a/new-version.sh b/new-version.sh
index 55e6886..4515f50 100644
--- a/new-version.sh
+++ b/new-version.sh
@@ -110,7 +110,7 @@ $test git commit -m"Bump version to $version" \
 	README
 
 # tag the tree
-$test git tag -u 096c4dd3 -m "Version $version" $version
+$test git tag -m "Version $version" $version
 
 # Make distributed change log
 
commit d07059b7a3f8044904d884818d5e03596e7cc1a2
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Jun 24 14:43:32 2009 -0400

    Fix distcheck

diff --git a/Makefile.am b/Makefile.am
index 2d1de2b..e08857e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -63,11 +63,10 @@ endif
 
 # Creating ChangeLog from git log:
 
-MAINTAINERCLEANFILES += ChangeLog
-
+MAINTAINERCLEANFILES += $(srcdir)/ChangeLog
 EXTRA_DIST += ChangeLog
-
-ChangeLog:
+ChangeLog: $(srcdir)/ChangeLog
+$(srcdir)/ChangeLog:
 	if test -d "$(srcdir)/.git"; then \
 	  (GIT_DIR=$(top_srcdir)/.git ./missing --run git log --stat) | fmt --split-only > $@.tmp \
 	  && mv -f $@.tmp $@ \
commit b65fa0c3113bd1e1cec38d05f8c4f45f78e3e044
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jun 11 07:08:10 2009 -0400

    Bug 22154 -- fontconfig.pc doesn't include libxml2 link flags

diff --git a/fontconfig.pc.in b/fontconfig.pc.in
index 6d95f64..db55f6e 100644
--- a/fontconfig.pc.in
+++ b/fontconfig.pc.in
@@ -7,5 +7,5 @@ Name: Fontconfig
 Description: Font configuration and customization library
 Version: @VERSION@
 Libs: -L${libdir} -lfontconfig
-Libs.private: @EXPAT_LIBS@ @FREETYPE_LIBS@ @ICONV_LIBS@
+Libs.private: @LIBXML2_LIBS@ @EXPAT_LIBS@ @FREETYPE_LIBS@ @ICONV_LIBS@
 Cflags: -I${includedir}
commit 3164ac76229d9817120015401c1f532934d0a3e2
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 22:59:06 2009 -0400

    [xml] Intern more strings

diff --git a/src/fcxml.c b/src/fcxml.c
index f74f4ef..7b0b287 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -102,7 +102,7 @@ FcExprCreateString (FcConfig *config, const FcChar8 *s)
     if (e)
     {
 	e->op = FcOpString;
-	e->u.sval = FcStrCopy (s);
+	e->u.sval = FcStrStaticName (s);
     }
     return e;
 }
@@ -162,7 +162,7 @@ FcExprCreateConst (FcConfig *config, const FcChar8 *constant)
     if (e)
     {
 	e->op = FcOpConst;
-	e->u.constant = FcStrCopy (constant);
+	e->u.constant = FcStrStaticName (constant);
     }
     return e;
 }
@@ -191,7 +191,6 @@ FcExprDestroy (FcExpr *e)
     case FcOpDouble:
 	break;
     case FcOpString:
-	FcStrFree (e->u.sval);
 	break;
     case FcOpMatrix:
 	FcMatrixFree (e->u.mval);
@@ -204,7 +203,6 @@ FcExprDestroy (FcExpr *e)
     case FcOpField:
 	break;
     case FcOpConst:
-	FcStrFree (e->u.constant);
 	break;
     case FcOpAssign:
     case FcOpAssignReplace:
@@ -840,6 +838,7 @@ FcVStackPopAndDestroy (FcConfigParse *parse)
 	break;
     case FcVStackString:
     case FcVStackFamily:
+	break;
     case FcVStackField:
     case FcVStackConstant:
     case FcVStackGlob:
@@ -1920,7 +1919,7 @@ FcPopValue (FcConfigParse *parse)
     
     switch (vstack->tag) {
     case FcVStackString:
-	value.u.s = FcStrCopy (vstack->u.string);
+	value.u.s = FcStrStaticName (vstack->u.string);
 	if (value.u.s)
 	    value.type = FcTypeString;
 	break;
commit 390c05e64a3716f6ea6fd81cf3ab63439051fbaa
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 22:32:31 2009 -0400

    [xml] Allocate FcExpr's in a pool in FcConfig
    
    Reduces number of malloc's for FcExprs from hundreds into single digits.

diff --git a/src/fccfg.c b/src/fccfg.c
index 95c5016..0f89b57 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -93,6 +93,8 @@ FcConfigCreate (void)
     config->rescanTime = time(0);
     config->rescanInterval = 30;    
 
+    config->expr_pool = NULL;
+
     config->ref = 1;
     
     return config;
@@ -193,6 +195,26 @@ FcSubstDestroy (FcSubst *s)
     }
 }
 
+FcExpr *
+FcConfigAllocExpr (FcConfig *config)
+{
+  if (!config->expr_pool || config->expr_pool->next == config->expr_pool->end)
+  {
+    FcExprPage *new_page;
+
+    new_page = malloc (sizeof (FcExprPage));
+    if (!new_page)
+      return 0;
+    FcMemAlloc (FC_MEM_EXPR, sizeof (FcExprPage));
+
+    new_page->next_page = config->expr_pool;
+    new_page->next = new_page->exprs;
+    config->expr_pool = new_page;
+  }
+
+  return config->expr_pool->next++;
+}
+
 FcConfig *
 FcConfigReference (FcConfig *config)
 {
@@ -212,6 +234,7 @@ void
 FcConfigDestroy (FcConfig *config)
 {
     FcSetName	set;
+    FcExprPage	*page;
 
     if (--config->ref > 0)
 	return;
@@ -238,6 +261,15 @@ FcConfigDestroy (FcConfig *config)
 	if (config->fonts[set])
 	    FcFontSetDestroy (config->fonts[set]);
 
+    page = config->expr_pool;
+    while (page)
+    {
+      FcExprPage *next = page->next_page;
+      FcMemFree (FC_MEM_EXPR, sizeof (FcExprPage));
+      free (page);
+      page = next;
+    }
+
     free (config);
     FcMemFree (FC_MEM_CONFIG, sizeof (FcConfig));
 }
diff --git a/src/fcint.h b/src/fcint.h
index 606097a..4414a2d 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -247,6 +247,15 @@ typedef struct _FcExpr {
     } u;
 } FcExpr;
 
+typedef struct _FcExprPage FcExprPage;
+
+struct _FcExprPage {
+  FcExprPage *next_page;
+  FcExpr *next;
+  FcExpr exprs[(1024 - 2/* two pointers */ - 2/* malloc overhead */) * sizeof (void *) / sizeof (FcExpr)];
+  FcExpr end[0];
+};
+
 typedef enum _FcQual {
     FcQualAny, FcQualAll, FcQualFirst, FcQualNotFirst
 } FcQual;
@@ -486,6 +495,8 @@ struct _FcConfig {
     int		rescanInterval;	    /* interval between scans */
 
     int		ref;                /* reference count */
+
+    FcExprPage *expr_pool;	    /* pool of FcExpr's */
 };
  
 extern FcPrivate FcConfig	*_fcConfig;
@@ -534,6 +545,9 @@ FcStat (const char *file, struct stat *statb)
 
 /* fccfg.c */
 
+FcPrivate FcExpr *
+FcConfigAllocExpr (FcConfig *config);
+
 FcPrivate FcBool
 FcConfigAddConfigDir (FcConfig	    *config,
 		      const FcChar8 *d);
diff --git a/src/fcxml.c b/src/fcxml.c
index 32b8be1..f74f4ef 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -72,20 +72,9 @@ FcTestDestroy (FcTest *test)
 }
 
 static FcExpr *
-FcExprAlloc (void)
+FcExprCreateInteger (FcConfig *config, int i)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
-    if (e)
-      FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
-
-    return e;
-}
-
-static FcExpr *
-FcExprCreateInteger (int i)
-{
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	e->op = FcOpInteger;
@@ -95,9 +84,9 @@ FcExprCreateInteger (int i)
 }
 
 static FcExpr *
-FcExprCreateDouble (double d)
+FcExprCreateDouble (FcConfig *config, double d)
 {
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	e->op = FcOpDouble;
@@ -107,9 +96,9 @@ FcExprCreateDouble (double d)
 }
 
 static FcExpr *
-FcExprCreateString (const FcChar8 *s)
+FcExprCreateString (FcConfig *config, const FcChar8 *s)
 {
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	e->op = FcOpString;
@@ -119,9 +108,9 @@ FcExprCreateString (const FcChar8 *s)
 }
 
 static FcExpr *
-FcExprCreateMatrix (const FcMatrix *m)
+FcExprCreateMatrix (FcConfig *config, const FcMatrix *m)
 {
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	e->op = FcOpMatrix;
@@ -131,9 +120,9 @@ FcExprCreateMatrix (const FcMatrix *m)
 }
 
 static FcExpr *
-FcExprCreateBool (FcBool b)
+FcExprCreateBool (FcConfig *config, FcBool b)
 {
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	e->op = FcOpBool;
@@ -143,9 +132,9 @@ FcExprCreateBool (FcBool b)
 }
 
 static FcExpr *
-FcExprCreateNil (void)
+FcExprCreateNil (FcConfig *config)
 {
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
@@ -155,9 +144,9 @@ FcExprCreateNil (void)
 }
 
 static FcExpr *
-FcExprCreateField (const char *field)
+FcExprCreateField (FcConfig *config, const char *field)
 {
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	e->op = FcOpField;
@@ -167,9 +156,9 @@ FcExprCreateField (const char *field)
 }
 
 static FcExpr *
-FcExprCreateConst (const FcChar8 *constant)
+FcExprCreateConst (FcConfig *config, const FcChar8 *constant)
 {
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	e->op = FcOpConst;
@@ -179,9 +168,9 @@ FcExprCreateConst (const FcChar8 *constant)
 }
 
 static FcExpr *
-FcExprCreateOp (FcExpr *left, FcOp op, FcExpr *right)
+FcExprCreateOp (FcConfig *config, FcExpr *left, FcOp op, FcExpr *right)
 {
-    FcExpr *e = FcExprAlloc ();
+    FcExpr *e = FcConfigAllocExpr (config);
     if (e)
     {
 	e->op = op;
@@ -254,8 +243,8 @@ FcExprDestroy (FcExpr *e)
     case FcOpInvalid:
 	break;
     }
-    FcMemFree (FC_MEM_EXPR, sizeof (FcExpr));
-    free (e);
+
+    e->op = FcOpNil;
 }
 
 void
@@ -1337,7 +1326,7 @@ FcParseFamilies (FcConfigParse *parse, FcVStackTag tag)
 	FcVStackPopAndDestroy (parse);
 	if (expr)
 	{
-	    new = FcExprCreateOp (left, FcOpComma, expr);
+	    new = FcExprCreateOp (parse->config, left, FcOpComma, expr);
 	    if (!new)
 	    {
 		FcConfigMessage (parse, FcSevereError, "out of memory");
@@ -1374,7 +1363,7 @@ FcParseFamily (FcConfigParse *parse)
 	FcConfigMessage (parse, FcSevereError, "out of memory");
 	return;
     }
-    expr = FcExprCreateString (s);
+    expr = FcExprCreateString (parse->config, s);
     FcStrBufDestroy (&parse->pstack->str);
     if (expr)
 	FcVStackPushExpr (parse, FcVStackFamily, expr);
@@ -1397,7 +1386,7 @@ FcParseAlias (FcConfigParse *parse)
 	case FcVStackFamily:
 	    if (family)
 	    {
-		new = FcExprCreateOp (vstack->u.expr, FcOpComma, family);
+		new = FcExprCreateOp (parse->config, vstack->u.expr, FcOpComma, family);
 		if (!new)
 		    FcConfigMessage (parse, FcSevereError, "out of memory");
 		else
@@ -1511,13 +1500,13 @@ FcPopExpr (FcConfigParse *parse)
 	break;
     case FcVStackString:
     case FcVStackFamily:
-	expr = FcExprCreateString (vstack->u.string);
+	expr = FcExprCreateString (parse->config, vstack->u.string);
 	break;
     case FcVStackField:
-	expr = FcExprCreateField ((char *) vstack->u.string);
+	expr = FcExprCreateField (parse->config, (char *) vstack->u.string);
 	break;
     case FcVStackConstant:
-	expr = FcExprCreateConst (vstack->u.string);
+	expr = FcExprCreateConst (parse->config, vstack->u.string);
 	break;
     case FcVStackGlob:
 	/* XXX: What's the correct action here? (CDW) */
@@ -1529,16 +1518,16 @@ FcPopExpr (FcConfigParse *parse)
 	vstack->tag = FcVStackNone;
 	break;
     case FcVStackInteger:
-	expr = FcExprCreateInteger (vstack->u.integer);
+	expr = FcExprCreateInteger (parse->config, vstack->u.integer);
 	break;
     case FcVStackDouble:
-	expr = FcExprCreateDouble (vstack->u._double);
+	expr = FcExprCreateDouble (parse->config, vstack->u._double);
 	break;
     case FcVStackMatrix:
-	expr = FcExprCreateMatrix (vstack->u.matrix);
+	expr = FcExprCreateMatrix (parse->config, vstack->u.matrix);
 	break;
     case FcVStackBool:
-	expr = FcExprCreateBool (vstack->u.bool_);
+	expr = FcExprCreateBool (parse->config, vstack->u.bool_);
 	break;
     case FcVStackTest:
 	break;
@@ -1573,7 +1562,7 @@ FcPopBinary (FcConfigParse *parse, FcOp op)
     {
 	if (expr)
 	{
-	    new = FcExprCreateOp (left, op, expr);
+	    new = FcExprCreateOp (parse->config, left, op, expr);
 	    if (!new)
 	    {
 		FcConfigMessage (parse, FcSevereError, "out of memory");
@@ -1609,7 +1598,7 @@ FcPopUnary (FcConfigParse *parse, FcOp op)
 
     if ((operand = FcPopExpr (parse)))
     {
-	new = FcExprCreateOp (operand, op, 0);
+	new = FcExprCreateOp (parse->config, operand, op, 0);
 	if (!new)
 	{
 	    FcExprDestroy (operand);
commit 398d436441d741d6f8edcc25ca01aa9715c0731c
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 21:37:01 2009 -0400

    [xml] Mark more symbols static

diff --git a/src/fcint.h b/src/fcint.h
index 70836c0..606097a 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -737,36 +737,6 @@ FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s);
 FcPrivate void
 FcTestDestroy (FcTest *test);
 
-FcPrivate FcExpr *
-FcExprCreateInteger (int i);
-
-FcPrivate FcExpr *
-FcExprCreateDouble (double d);
-
-FcPrivate FcExpr *
-FcExprCreateString (const FcChar8 *s);
-
-FcPrivate FcExpr *
-FcExprCreateMatrix (const FcMatrix *m);
-
-FcPrivate FcExpr *
-FcExprCreateBool (FcBool b);
-
-FcPrivate FcExpr *
-FcExprCreateNil (void);
-
-FcPrivate FcExpr *
-FcExprCreateField (const char *field);
-
-FcPrivate FcExpr *
-FcExprCreateConst (const FcChar8 *constant);
-
-FcPrivate FcExpr *
-FcExprCreateOp (FcExpr *left, FcOp op, FcExpr *right);
-
-FcPrivate void
-FcExprDestroy (FcExpr *e);
-
 FcPrivate void
 FcEditDestroy (FcEdit *e);
 
diff --git a/src/fcxml.c b/src/fcxml.c
index 23591d2..32b8be1 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -58,6 +58,8 @@
 #undef STRICT
 #endif
 
+static void
+FcExprDestroy (FcExpr *e);
 
 void
 FcTestDestroy (FcTest *test)
@@ -80,7 +82,7 @@ FcExprAlloc (void)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateInteger (int i)
 {
     FcExpr *e = FcExprAlloc ();
@@ -92,7 +94,7 @@ FcExprCreateInteger (int i)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateDouble (double d)
 {
     FcExpr *e = FcExprAlloc ();
@@ -104,7 +106,7 @@ FcExprCreateDouble (double d)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateString (const FcChar8 *s)
 {
     FcExpr *e = FcExprAlloc ();
@@ -116,7 +118,7 @@ FcExprCreateString (const FcChar8 *s)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateMatrix (const FcMatrix *m)
 {
     FcExpr *e = FcExprAlloc ();
@@ -128,7 +130,7 @@ FcExprCreateMatrix (const FcMatrix *m)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateBool (FcBool b)
 {
     FcExpr *e = FcExprAlloc ();
@@ -140,7 +142,7 @@ FcExprCreateBool (FcBool b)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateNil (void)
 {
     FcExpr *e = FcExprAlloc ();
@@ -152,7 +154,7 @@ FcExprCreateNil (void)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateField (const char *field)
 {
     FcExpr *e = FcExprAlloc ();
@@ -164,7 +166,7 @@ FcExprCreateField (const char *field)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateConst (const FcChar8 *constant)
 {
     FcExpr *e = FcExprAlloc ();
@@ -176,7 +178,7 @@ FcExprCreateConst (const FcChar8 *constant)
     return e;
 }
 
-FcExpr *
+static FcExpr *
 FcExprCreateOp (FcExpr *left, FcOp op, FcExpr *right)
 {
     FcExpr *e = FcExprAlloc ();
@@ -189,7 +191,7 @@ FcExprCreateOp (FcExpr *left, FcOp op, FcExpr *right)
     return e;
 }
 
-void
+static void
 FcExprDestroy (FcExpr *e)
 {
     if (!e)
commit a96ecbfa20fbc66fad3847b1d2bc6fb3cd712c91
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 18:40:46 2009 -0400

    [xml] Centralize FcExpr allocation
    
    To be improved, using a central pool.

diff --git a/src/fcxml.c b/src/fcxml.c
index 75c55d6..23591d2 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -69,14 +69,23 @@ FcTestDestroy (FcTest *test)
     free (test);
 }
 
-FcExpr *
-FcExprCreateInteger (int i)
+static FcExpr *
+FcExprAlloc (void)
 {
     FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
 
     if (e)
+      FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
+
+    return e;
+}
+
+FcExpr *
+FcExprCreateInteger (int i)
+{
+    FcExpr *e = FcExprAlloc ();
+    if (e)
     {
-	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
 	e->op = FcOpInteger;
 	e->u.ival = i;
     }
@@ -86,11 +95,9 @@ FcExprCreateInteger (int i)
 FcExpr *
 FcExprCreateDouble (double d)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
+    FcExpr *e = FcExprAlloc ();
     if (e)
     {
-	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
 	e->op = FcOpDouble;
 	e->u.dval = d;
     }
@@ -100,11 +107,9 @@ FcExprCreateDouble (double d)
 FcExpr *
 FcExprCreateString (const FcChar8 *s)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
+    FcExpr *e = FcExprAlloc ();
     if (e)
     {
-	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
 	e->op = FcOpString;
 	e->u.sval = FcStrCopy (s);
     }
@@ -114,11 +119,9 @@ FcExprCreateString (const FcChar8 *s)
 FcExpr *
 FcExprCreateMatrix (const FcMatrix *m)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
+    FcExpr *e = FcExprAlloc ();
     if (e)
     {
-	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
 	e->op = FcOpMatrix;
 	e->u.mval = FcMatrixCopy (m);
     }
@@ -128,11 +131,9 @@ FcExprCreateMatrix (const FcMatrix *m)
 FcExpr *
 FcExprCreateBool (FcBool b)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
+    FcExpr *e = FcExprAlloc ();
     if (e)
     {
-	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
 	e->op = FcOpBool;
 	e->u.bval = b;
     }
@@ -142,8 +143,7 @@ FcExprCreateBool (FcBool b)
 FcExpr *
 FcExprCreateNil (void)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
+    FcExpr *e = FcExprAlloc ();
     if (e)
     {
 	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
@@ -155,11 +155,9 @@ FcExprCreateNil (void)
 FcExpr *
 FcExprCreateField (const char *field)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
+    FcExpr *e = FcExprAlloc ();
     if (e)
     {
-	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
 	e->op = FcOpField;
 	e->u.object = FcObjectFromName (field);
     }
@@ -169,11 +167,9 @@ FcExprCreateField (const char *field)
 FcExpr *
 FcExprCreateConst (const FcChar8 *constant)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
+    FcExpr *e = FcExprAlloc ();
     if (e)
     {
-	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
 	e->op = FcOpConst;
 	e->u.constant = FcStrCopy (constant);
     }
@@ -183,11 +179,9 @@ FcExprCreateConst (const FcChar8 *constant)
 FcExpr *
 FcExprCreateOp (FcExpr *left, FcOp op, FcExpr *right)
 {
-    FcExpr *e = (FcExpr *) malloc (sizeof (FcExpr));
-
+    FcExpr *e = FcExprAlloc ();
     if (e)
     {
-	FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr));
 	e->op = op;
 	e->u.tree.left = left;
 	e->u.tree.right = right;
commit 5aebb3e299d877c4a66f409a7d448b2ac4e94be0
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 18:27:47 2009 -0400

    Remove unused prototypes and function

diff --git a/src/fcint.h b/src/fcint.h
index 157e973..70836c0 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -724,7 +724,7 @@ FcDirScanConfig (FcFontSet	*set,
 /* fcfont.c */
 FcPrivate int
 FcFontDebug (void);
-    
+
 /* fcfs.c */
 
 FcPrivate FcBool
@@ -732,20 +732,8 @@ FcFontSetSerializeAlloc (FcSerialize *serialize, const FcFontSet *s);
 
 FcPrivate FcFontSet *
 FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s);
-    
-/* fcgram.y */
-FcPrivate int
-FcConfigparse (void);
-
-FcPrivate int
-FcConfigwrap (void);
-    
-FcPrivate void
-FcConfigerror (char *fmt, ...);
-    
-FcPrivate char *
-FcConfigSaveField (const char *field);
 
+/* fcxml.c */
 FcPrivate void
 FcTestDestroy (FcTest *test);
 
diff --git a/src/fcxml.c b/src/fcxml.c
index 886413b..75c55d6 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -272,12 +272,6 @@ FcEditDestroy (FcEdit *e)
     free (e);
 }
 
-char *
-FcConfigSaveField (const char *field)
-{
-    return (char *) FcStrCopy ((FcChar8 *) field);
-}
-
 typedef enum _FcElement {
     FcElementNone,
     FcElementFontconfig,
commit 900723f3d2396cfb606e5eceb8df0b71c4ffc0dd
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 18:16:38 2009 -0400

    [charset] Grow internal FcCharset arrays exponentially

diff --git a/src/fccharset.c b/src/fccharset.c
index cba21c7..cd9b158 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -68,11 +68,9 @@ FcCharSetDestroy (FcCharSet *fcs)
     }
     if (fcs->num)
     {
+        /* the numbers here are estimates */
 	FcMemFree (FC_MEM_CHARSET, fcs->num * sizeof (intptr_t));
 	free (FcCharSetLeaves (fcs));
-    }
-    if (fcs->num)
-    {
 	FcMemFree (FC_MEM_CHARSET, fcs->num * sizeof (FcChar16));
 	free (FcCharSetNumbers (fcs));
     }
@@ -134,6 +132,8 @@ FcCharSetFindLeaf (const FcCharSet *fcs, FcChar32 ucs4)
     return 0;
 }
 
+#define FC_IS_ZERO_OR_POWER_OF_TWO(x) (!((x) & ((x)-1)))
+
 static FcBool
 FcCharSetPutLeaf (FcCharSet	*fcs, 
 		  FcChar32	ucs4,
@@ -143,45 +143,52 @@ FcCharSetPutLeaf (FcCharSet	*fcs,
     intptr_t	*leaves = FcCharSetLeaves (fcs);
     FcChar16	*numbers = FcCharSetNumbers (fcs);
 
-    /* XXX We can't handle Unicode values in Plane 16 */
     ucs4 >>= 8;
+    /* XXX We can't handle Unicode values in Plane 16 */
     if (ucs4 >= 0x10000)
 	return FcFalse;
 
-    if (fcs->num == fcs->alloced)
+    if (FC_IS_ZERO_OR_POWER_OF_TWO (fcs->num))
     {
-	intptr_t    *new_leaves = realloc (leaves, (fcs->num + 1) * 
-					   sizeof (*leaves));
-	intptr_t    distance = (intptr_t) new_leaves - (intptr_t) leaves;
-	
+      if (!fcs->num)
+      {
+        unsigned int alloced = 8;
+	leaves = malloc (alloced * sizeof (*leaves));
+	numbers = malloc (alloced * sizeof (*numbers));
+	FcMemAlloc (FC_MEM_CHARSET, alloced * sizeof (*leaves));
+	FcMemAlloc (FC_MEM_CHARSET, alloced * sizeof (*numbers));
+      }
+      else
+      {
+        unsigned int alloced = fcs->num;
+	intptr_t *new_leaves, distance;
+
+	FcMemFree (FC_MEM_CHARSET, alloced * sizeof (*leaves));
+	FcMemFree (FC_MEM_CHARSET, alloced * sizeof (*numbers));
+
+	alloced *= 2;
+	new_leaves = realloc (leaves, alloced * sizeof (*leaves));
+	numbers = realloc (numbers, alloced * sizeof (*numbers));
+
+	FcMemAlloc (FC_MEM_CHARSET, alloced * sizeof (*leaves));
+	FcMemAlloc (FC_MEM_CHARSET, alloced * sizeof (*numbers));
+
+	distance = (intptr_t) new_leaves - (intptr_t) leaves;
 	if (new_leaves && distance)
 	{
 	    int i;
-
 	    for (i = 0; i < fcs->num; i++)
 		new_leaves[i] -= distance;
 	}
 	leaves = new_leaves;
+      }
+
+      if (!leaves || !numbers)
+	  return FcFalse;
+
+      fcs->leaves_offset = FcPtrToOffset (fcs, leaves);
+      fcs->numbers_offset = FcPtrToOffset (fcs, numbers);
     }
-    if (!leaves)
-	return FcFalse;
-    
-    if (fcs->num)
-	FcMemFree (FC_MEM_CHARSET, fcs->num * sizeof (intptr_t));
-    FcMemAlloc (FC_MEM_CHARSET, (fcs->num + 1) * sizeof (intptr_t));
-    fcs->leaves_offset = FcPtrToOffset (fcs, leaves);
-    
-    if (!fcs->num)
-	numbers = malloc (sizeof (FcChar16));
-    else
-	numbers = realloc (numbers, (fcs->num + 1) * sizeof (FcChar16));
-    if (!numbers)
-	return FcFalse;
-    
-    if (fcs->num)
-	FcMemFree (FC_MEM_CHARSET, fcs->num * sizeof (FcChar16));
-    FcMemAlloc (FC_MEM_CHARSET, (fcs->num + 1) * sizeof (FcChar16));
-    fcs->numbers_offset = FcPtrToOffset (fcs, numbers);
     
     memmove (leaves + pos + 1, leaves + pos, 
 	     (fcs->num - pos) * sizeof (*leaves));
commit cce69b07efd82056c8eb855ef7ac7e02c94439da
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 17:15:53 2009 -0400

    Always set *changed in FcCharsetMerge

diff --git a/src/fccharset.c b/src/fccharset.c
index fba1f4a..cba21c7 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -470,8 +470,11 @@ FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed)
     int		ai = 0, bi = 0;
     FcChar16	an, bn;
 
-    if (a->ref == FC_REF_CONSTANT)
+    if (a->ref == FC_REF_CONSTANT) {
+	if (changed)
+	    *changed = FcFalse;
 	return FcFalse;
+    }
 
     if (changed) {
 	*changed = !FcCharSetIsSubset(b, a);
commit 86bdf4598fb46f7f2a36151016a5d318da073d60
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 16:57:35 2009 -0400

    Add XXX note about Unicode Plane 16

diff --git a/src/fccharset.c b/src/fccharset.c
index 2ec74da..fba1f4a 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -143,12 +143,12 @@ FcCharSetPutLeaf (FcCharSet	*fcs,
     intptr_t	*leaves = FcCharSetLeaves (fcs);
     FcChar16	*numbers = FcCharSetNumbers (fcs);
 
+    /* XXX We can't handle Unicode values in Plane 16 */
     ucs4 >>= 8;
     if (ucs4 >= 0x10000)
 	return FcFalse;
-    if (!fcs->num)
-	leaves = malloc (sizeof (*leaves));
-    else
+
+    if (fcs->num == fcs->alloced)
     {
 	intptr_t    *new_leaves = realloc (leaves, (fcs->num + 1) * 
 					   sizeof (*leaves));
commit efe5eae26b2443363b1000b3197d1731a40f8af9
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jun 5 16:49:07 2009 -0400

    Simplify FcValueSave() semantics

diff --git a/src/fccfg.c b/src/fccfg.c
index da13f8c..95c5016 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -852,7 +852,8 @@ FcConfigEvaluate (FcPattern *p, FcExpr *e)
 	break;
     case FcOpString:
 	v.type = FcTypeString;
-	v.u.s = FcStrStaticName(e->u.sval);
+	v.u.s = e->u.sval;
+	v = FcValueSave (v);
 	break;
     case FcOpMatrix:
 	v.type = FcTypeMatrix;
diff --git a/src/fcpat.c b/src/fcpat.c
index 188f560..792a164 100644
--- a/src/fcpat.c
+++ b/src/fcpat.c
@@ -98,7 +98,7 @@ FcValueSave (FcValue v)
 {
     switch (v.type) {
     case FcTypeString:
-	v.u.s = FcStrCopy (v.u.s);
+	v.u.s = FcStrStaticName (v.u.s);
 	if (!v.u.s)
 	    v.type = FcTypeVoid;
 	break;
@@ -482,15 +482,7 @@ FcPatternObjectAddWithBinding  (FcPattern	*p,
 
     memset(new, 0, sizeof (FcValueList));
     FcMemAlloc (FC_MEM_VALLIST, sizeof (FcValueList));
-    /* dup string */
-    if (value.type == FcTypeString)
-    {
-	value.u.s = FcStrStaticName (value.u.s);
-	if (!value.u.s)
-	    value.type = FcTypeVoid;
-    }
-    else
-	value = FcValueSave (value);
+    value = FcValueSave (value);
     if (value.type == FcTypeVoid)
 	goto bail1;
 
commit 8ea654b2aa6b4e97b369e299325da49807559511
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Jun 1 21:14:56 2009 -0400

    Use/prefer WWS family/style (name table id 21/22)

diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index 0bc52d1..3dd8a9c 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -1091,10 +1091,16 @@ static const FT_UShort platform_order[] = {
 #define NUM_PLATFORM_ORDER (sizeof (platform_order) / sizeof (platform_order[0]))
 
 static const FT_UShort nameid_order[] = {
+#ifdef TT_NAME_ID_WWS_FAMILY
+    TT_NAME_ID_WWS_FAMILY,
+#endif
     TT_NAME_ID_PREFERRED_FAMILY,
     TT_NAME_ID_FONT_FAMILY,
     TT_NAME_ID_MAC_FULL_NAME,
     TT_NAME_ID_FULL_NAME,
+#ifdef TT_NAME_ID_WWS_SUBFAMILY
+    TT_NAME_ID_WWS_SUBFAMILY,
+#endif
     TT_NAME_ID_PREFERRED_SUBFAMILY,
     TT_NAME_ID_FONT_SUBFAMILY,
     TT_NAME_ID_TRADEMARK,
@@ -1236,6 +1242,9 @@ FcFreeTypeQueryFace (const FT_Face  face,
 		    continue;
 
 		switch (sname.name_id) {
+#ifdef TT_NAME_ID_WWS_FAMILY
+		case TT_NAME_ID_WWS_FAMILY:
+#endif
 		case TT_NAME_ID_PREFERRED_FAMILY:
 		case TT_NAME_ID_FONT_FAMILY:
 #if 0	    
@@ -1266,6 +1275,9 @@ FcFreeTypeQueryFace (const FT_Face  face,
 		    np = &nfullname;
 		    nlangp = &nfullname_lang;
 		    break;
+#ifdef TT_NAME_ID_WWS_SUBFAMILY
+		case TT_NAME_ID_WWS_SUBFAMILY:
+#endif
 		case TT_NAME_ID_PREFERRED_SUBFAMILY:
 		case TT_NAME_ID_FONT_SUBFAMILY:
 		    if (FcDebug () & FC_DBG_SCANV)
commit 76845a40c58b092a9b1812830dc98b6f32e13da6
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon May 25 20:26:56 2009 -0400

    Mark matchers array const (#21935)

diff --git a/src/fcmatch.c b/src/fcmatch.c
index 01420a6..0abd42a 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -184,7 +184,7 @@ typedef struct _FcMatcher {
  * each value, earlier values are more significant than
  * later values
  */
-static FcMatcher _FcMatchers [] = {
+static const FcMatcher _FcMatchers [] = {
     { FC_FOUNDRY_OBJECT,	FcCompareString,	0, 0 },
 #define MATCH_FOUNDRY	    0
 #define MATCH_FOUNDRY_INDEX 0
commit aa82a4f81d4d5e547c84266e66274d55e3843746
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Thu May 7 14:31:11 2009 -0700

    Reorganize Panjabi/Punjabi and Lahnda orthographies (bug #19890)
    
    The correct ISO 639 code for Pakistani/Western Panjabi seems to be 'lah',
    not 'pa'. We are keeping 'pa_pk.orth' for compatiblity with glibc.
    
    Signed-off-by: Behdad Esfahbod <behdad at behdad.org>

diff --git a/fc-lang/Makefile.am b/fc-lang/Makefile.am
index f248e0e..a7290f4 100644
--- a/fc-lang/Makefile.am
+++ b/fc-lang/Makefile.am
@@ -181,7 +181,7 @@ ORTH = \
 	om.orth \
 	or.orth \
 	os.orth \
-	pa_in.orth \
+	pa.orth \
 	pl.orth \
 	ps_af.orth \
 	ps_pk.orth \
@@ -295,5 +295,6 @@ ORTH = \
 	su.orth \
 	ty.orth \
 	wal.orth \
-	za.orth
+	za.orth \
+	lah.orth
 #	^-------------- Add new orth files here
diff --git a/fc-lang/lah.orth b/fc-lang/lah.orth
new file mode 100644
index 0000000..c0321b6
--- /dev/null
+++ b/fc-lang/lah.orth
@@ -0,0 +1,35 @@
+#
+# fontconfig/fc-lang/lah.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Lahnda (lah)
+#
+# This is basically Western Panjabi/Punjabi, or Panjabi for Pakistan. It is
+# written in the Arabic script, also known as Shahmukhi. According to
+# ISO 639-3, the 'pa/pan' language code does not include Pakistani Panjabi,
+# but 'lah' does:
+#   http://www.sil.org/iso639-3/documentation.asp?id=lah
+#   http://www.sil.org/iso639-3/documentation.asp?id=pan
+#
+# The letter list appears to be identical to Urdu. More research may be
+# needed for rare letters.
+include ur.orth
diff --git a/fc-lang/pa.orth b/fc-lang/pa.orth
new file mode 100644
index 0000000..1258850
--- /dev/null
+++ b/fc-lang/pa.orth
@@ -0,0 +1,53 @@
+#
+# fontconfig/fc-lang/pa.orth
+#
+# Copyright © 2004 Red Hat, Inc.
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Panjabi/Punjabi (pa)
+#
+# According to ISO 639-3, 'pa/pan' only applies to Panjabi as used in India:
+#   http://www.sil.org/iso639-3/documentation.asp?id=pan
+#
+# For Panjabi as used in Pakistan, use 'lah' or 'pa-PK':
+#   http://www.sil.org/iso639-3/documentation.asp?id=lah
+#
+# From Unicode coverage for Gurmukhi, with modifications based on
+# the 'Lohit Punjabi' font
+#
+# 0A01-0A03	# Various signs
+0A05-0A0A	# Independent vowels
+0A0F-0A10
+0A13-0A14
+0A15-0A28	# Consonants
+0A2A-0A30
+0A32-0A33
+0A35-0A36
+0A38-0A39
+0A3C		# Nukta
+0A3E-0A42	# Dependent vowel signs
+0A47-0A48
+0A4B-0A4C
+0A4D		# Virama
+0A59-0A5C	# Additional consonants
+# 0A5E		# GURMUKHI LETTER FA
+# 0A66-0A6F	# Digits
+0A70-0A74	# Gurmukhi-specific additions
diff --git a/fc-lang/pa_in.orth b/fc-lang/pa_in.orth
deleted file mode 100644
index 1925291..0000000
--- a/fc-lang/pa_in.orth
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# fontconfig/fc-lang/pa_in.orth
-#
-# Copyright © 2004 Red Hat, Inc.
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Red Hat not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Red Hat makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Panjabi/Punjabi in India (Gurmukhi script) (pa-IN)
-#
-# From Unicode coverage for Gurmukhi, with modifications based on
-# the 'Lohit Punjabi' font
-#
-# 0A01-0A03	# Various signs
-0A05-0A0A	# Independent vowels
-0A0F-0A10
-0A13-0A14
-0A15-0A28	# Consonants
-0A2A-0A30
-0A32-0A33
-0A35-0A36
-0A38-0A39
-0A3C		# Nukta
-0A3E-0A42	# Dependent vowel signs
-0A47-0A48
-0A4B-0A4C
-0A4D		# Virama
-0A59-0A5C	# Additional consonants
-# 0A5E		# GURMUKHI LETTER FA
-# 0A66-0A6F	# Digits
-0A70-0A74	# Gurmukhi-specific additions
diff --git a/fc-lang/pa_pk.orth b/fc-lang/pa_pk.orth
index deec216..fba09e3 100644
--- a/fc-lang/pa_pk.orth
+++ b/fc-lang/pa_pk.orth
@@ -23,6 +23,7 @@
 #
 # Panjabi/Punjabi in Pakistan (pa-PK)
 #
-# The letter list appears identical to Urdu. More research may be needed
-# for rare letters.
-include ur.orth
+# This file is kept for compatiblity for glibc: According to ISO 639-3, the
+# proper code for Pakistani Panjabi is 'lah'. See the file 'lah.orth' for
+# more information.
+include lah.orth
commit 58aa0c8ee83f7bbd232401583106387517d216a9
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Apr 9 13:31:18 2009 -0400

    Detect TrueType Collections by checking the font data header
    
    Instead of checking for "face->num_faces >1". (GNOME bug #577952)

diff --git a/src/ftglue.c b/src/ftglue.c
index 9caad7c..b337751 100644
--- a/src/ftglue.c
+++ b/src/ftglue.c
@@ -245,10 +245,17 @@ ftglue_face_goto_table( FT_Face    face,
    /* parse the directory table directly, without using
     * FreeType's built-in data structures
     */
-    FT_ULong  offset = 0;
+    FT_ULong  offset = 0, sig;
     FT_UInt   count, nn;
 
-    if ( face->num_faces > 1 )
+    if ( FILE_Seek( 0 ) || ACCESS_Frame( 4 ) )
+      goto Exit;
+
+    sig = GET_Tag4();
+
+    FORGET_Frame();
+
+    if ( sig == FT_MAKE_TAG( 't', 't', 'c', 'f' ) )
     {
       /* deal with TrueType collections */
 
commit 1dd95fcb8bb9b5feeabee0dfe334448733f5cb4c
Author: Serge van den Boom <svdb+freedesktop.org at stack.nl>
Date:   Sun Apr 5 19:00:18 2009 -0400

    Correctly handle mmap() failure (#21062)

diff --git a/src/fccache.c b/src/fccache.c
index 63319f6..69e1a6b 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -553,6 +553,8 @@ FcDirCacheMapFd (int fd, struct stat *fd_stat, struct stat *dir_stat)
     {
 #if defined(HAVE_MMAP) || defined(__CYGWIN__)
 	cache = mmap (0, fd_stat->st_size, PROT_READ, MAP_SHARED, fd, 0);
+	if (cache == MAP_FAILED)
+	    cache = NULL;
 #elif defined(_WIN32)
 	{
 	    HANDLE hFileMap;
commit 35c51811515ab316c7279bd779f6685f2aaf7e81
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Mar 25 23:40:40 2009 -0400

    [fc-cache] Remove obsolete sentence from man page

diff --git a/fc-cache/fc-cache.sgml b/fc-cache/fc-cache.sgml
index fb9f96d..0b602a3 100644
--- a/fc-cache/fc-cache.sgml
+++ b/fc-cache/fc-cache.sgml
@@ -90,10 +90,7 @@ manpage.1: manpage.sgml
 
       <para>Note that <command>&dhpackage;</command> must be executed
         once per architecture to generate font information customized
-        for that architecture.  On a subsequent run,
-        <command>&dhpackage;</command> will augment the cache
-        information files with the information for the new
-        architecture. </para>
+        for that architecture.</para>
 
   </refsect1>
   <refsect1>
commit ffd6668b469508177c4baf7745ae42aee5b00322
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Mar 18 19:28:52 2009 -0400

    [fc-lang] Make LangSet representation in the cache files stable
    
    Fontconfig assigns an index number to each language it knows about.
    The index is used to index a bit in FcLangSet language map.  The bit
    map is stored in the cache.
    
    Previously fc-lang simply sorted the list of languages and assigned
    them an index starting from zero.  Net effect is that whenever new
    orth files were added, all the FcLangSet info in the cache files would
    become invalid.  This was causing weird bugs like this one:
    
      https://bugzilla.redhat.com/show_bug.cgi?id=490888
    
    With this commit we fix the index assigned to each language.  The index
    will be based on the order the orth files are passed to fc-lang.  As a
    result all orth files are explicitly listed in Makefile.am now, and
    new additions should be made to the end of the list.  The list is made
    to reflect the sorted list of orthographies from 2.6.0 released followed
    by new additions since.
    
    This fixes the stability problem.  Needless to say, recreating caches
    is necessary before any new orthography is recognized in existing fonts,
    but at least the existing caches are still valid and don't cause bugs
    like the above.

diff --git a/configure.in b/configure.in
index f2c94c2..9bd78e4 100644
--- a/configure.in
+++ b/configure.in
@@ -488,13 +488,6 @@ AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
 AC_SUBST(CONFDIR)
 
 #
-# Find out what language orthographies are included
-#
-
-ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
-AC_SUBST(ORTH_FILES)
-
-#
 # Let people not build/install docs if they don't have docbook
 #
 
diff --git a/fc-lang/Makefile.am b/fc-lang/Makefile.am
index eaf76d2..f248e0e 100644
--- a/fc-lang/Makefile.am
+++ b/fc-lang/Makefile.am
@@ -36,8 +36,6 @@ noinst_PROGRAMS=fc-lang
 
 noinst_MANS=fc-lang.man
 
-ORTH=@ORTH_FILES@
-
 EXTRA_DIST=$(TMPL) $(ORTH)
 
 $(TARG):$(ORTH) fc-lang${EXEEXT} $(STMPL)
@@ -53,3 +51,249 @@ $(ALIAS_FILES):
 	touch $(ALIAS_FILES)
 
 CLEANFILES = $(TARG) $(ALIAS_FILES)
+
+# NOTE:
+#
+# The order of the orth files here is extremely important (part of the cache
+# format) and should not be modified.  New orth files should be added at the
+# end.  No files should be removed either.
+#
+ORTH = \
+	aa.orth \
+	ab.orth \
+	af.orth \
+	am.orth \
+	ar.orth \
+	as.orth \
+	ast.orth \
+	av.orth \
+	ay.orth \
+	az_az.orth \
+	az_ir.orth \
+	ba.orth \
+	bm.orth \
+	be.orth \
+	bg.orth \
+	bh.orth \
+	bho.orth \
+	bi.orth \
+	bin.orth \
+	bn.orth \
+	bo.orth \
+	br.orth \
+	bs.orth \
+	bua.orth \
+	ca.orth \
+	ce.orth \
+	ch.orth \
+	chm.orth \
+	chr.orth \
+	co.orth \
+	cs.orth \
+	cu.orth \
+	cv.orth \
+	cy.orth \
+	da.orth \
+	de.orth \
+	dz.orth \
+	el.orth \
+	en.orth \
+	eo.orth \
+	es.orth \
+	et.orth \
+	eu.orth \
+	fa.orth \
+	fi.orth \
+	fj.orth \
+	fo.orth \
+	fr.orth \
+	ff.orth \
+	fur.orth \
+	fy.orth \
+	ga.orth \
+	gd.orth \
+	gez.orth \
+	gl.orth \
+	gn.orth \
+	gu.orth \
+	gv.orth \
+	ha.orth \
+	haw.orth \
+	he.orth \
+	hi.orth \
+	ho.orth \
+	hr.orth \
+	hu.orth \
+	hy.orth \
+	ia.orth \
+	ig.orth \
+	id.orth \
+	ie.orth \
+	ik.orth \
+	io.orth \
+	is.orth \
+	it.orth \
+	iu.orth \
+	ja.orth \
+	ka.orth \
+	kaa.orth \
+	ki.orth \
+	kk.orth \
+	kl.orth \
+	km.orth \
+	kn.orth \
+	ko.orth \
+	kok.orth \
+	ks.orth \
+	ku_am.orth \
+	ku_ir.orth \
+	kum.orth \
+	kv.orth \
+	kw.orth \
+	ky.orth \
+	la.orth \
+	lb.orth \
+	lez.orth \
+	ln.orth \
+	lo.orth \
+	lt.orth \
+	lv.orth \
+	mg.orth \
+	mh.orth \
+	mi.orth \
+	mk.orth \
+	ml.orth \
+	mn_cn.orth \
+	mo.orth \
+	mr.orth \
+	mt.orth \
+	my.orth \
+	nb.orth \
+	nds.orth \
+	ne.orth \
+	nl.orth \
+	nn.orth \
+	no.orth \
+	nr.orth \
+	nso.orth \
+	ny.orth \
+	oc.orth \
+	om.orth \
+	or.orth \
+	os.orth \
+	pa_in.orth \
+	pl.orth \
+	ps_af.orth \
+	ps_pk.orth \
+	pt.orth \
+	rm.orth \
+	ro.orth \
+	ru.orth \
+	sa.orth \
+	sah.orth \
+	sco.orth \
+	se.orth \
+	sel.orth \
+	sh.orth \
+	shs.orth \
+	si.orth \
+	sk.orth \
+	sl.orth \
+	sm.orth \
+	sma.orth \
+	smj.orth \
+	smn.orth \
+	sms.orth \
+	so.orth \
+	sq.orth \
+	sr.orth \
+	ss.orth \
+	st.orth \
+	sv.orth \
+	sw.orth \
+	syr.orth \
+	ta.orth \
+	te.orth \
+	tg.orth \
+	th.orth \
+	ti_er.orth \
+	ti_et.orth \
+	tig.orth \
+	tk.orth \
+	tl.orth \
+	tn.orth \
+	to.orth \
+	tr.orth \
+	ts.orth \
+	tt.orth \
+	tw.orth \
+	tyv.orth \
+	ug.orth \
+	uk.orth \
+	ur.orth \
+	uz.orth \
+	ve.orth \
+	vi.orth \
+	vo.orth \
+	vot.orth \
+	wa.orth \
+	wen.orth \
+	wo.orth \
+	xh.orth \
+	yap.orth \
+	yi.orth \
+	yo.orth \
+	zh_cn.orth \
+	zh_hk.orth \
+	zh_mo.orth \
+	zh_sg.orth \
+	zh_tw.orth \
+	zu.orth \
+	ak.orth \
+	an.orth \
+	ber_dz.orth \
+	ber_ma.orth \
+	byn.orth \
+	crh.orth \
+	csb.orth \
+	dv.orth \
+	ee.orth \
+	fat.orth \
+	fil.orth \
+	hne.orth \
+	hsb.orth \
+	ht.orth \
+	hz.orth \
+	ii.orth \
+	jv.orth \
+	kab.orth \
+	kj.orth \
+	kr.orth \
+	ku_iq.orth \
+	ku_tr.orth \
+	kwm.orth \
+	lg.orth \
+	li.orth \
+	mai.orth \
+	mn_mn.orth \
+	ms.orth \
+	na.orth \
+	ng.orth \
+	nv.orth \
+	ota.orth \
+	pa_pk.orth \
+	pap_an.orth \
+	pap_aw.orth \
+	qu.orth \
+	rn.orth \
+	rw.orth \
+	sc.orth \
+	sd.orth \
+	sg.orth \
+	sid.orth \
+	sn.orth \
+	su.orth \
+	ty.orth \
+	wal.orth \
+	za.orth
+#	^-------------- Add new orth files here
diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c
index b0f1690..a00aabc 100644
--- a/fc-lang/fc-lang.c
+++ b/fc-lang/fc-lang.c
@@ -129,7 +129,7 @@ static const FcCharSet *
 scan (FILE *f, char *file, FcCharSetFreezer *freezer)
 {
     FcCharSet	    *c = 0;
-    const FcCharSet *n;
+    FcCharSet	    *n;
     int		    start, end, ucs4;
     char	    line[1024];
     int		    lineno = 0;
@@ -224,22 +224,27 @@ get_lang (char *name)
     return lang;
 }
 
+typedef struct _Entry {
+    int id;
+    char *file;
+} Entry;
+
 static int compare (const void *a, const void *b)
 {
-    const FcChar8    *const *as = a, *const *bs = b;
-    return FcStrCmpIgnoreCase (*as, *bs);
+    const Entry const *as = a, *bs = b;
+    return FcStrCmpIgnoreCase (as->file, bs->file);
 }
 
 #define MAX_LANG	    1024
 #define MAX_LANG_SET_MAP    ((MAX_LANG + 31) / 32)
 
-#define BitSet(map, id)   ((map)[(id)>>5] |= ((FcChar32) 1 << ((id) & 0x1f)))
-#define BitGet(map, id)   ((map)[(id)>>5] >> ((id) & 0x1f)) & 1)
+#define BitSet(map, i)   ((map)[(entries[i].id)>>5] |= ((FcChar32) 1 << ((entries[i].id) & 0x1f)))
+#define BitGet(map, i)   ((map)[(entries[i].id)>>5] >> ((entries[i].id) & 0x1f)) & 1)
 
 int
 main (int argc, char **argv)
 {
-    static char		*files[MAX_LANG];
+    static Entry	entries[MAX_LANG];
     static const FcCharSet	*sets[MAX_LANG];
     static int		duplicate[MAX_LANG];
     static int		country[MAX_LANG];
@@ -276,18 +281,20 @@ main (int argc, char **argv)
 	}
 	if (i == MAX_LANG)
 	    fatal (argv[0], 0, "Too many languages");
-	files[i++] = argv[argi++];
+	entries[i].id = i;
+	entries[i].file = argv[argi++];
+	i++;
     }
-    files[i] = 0;
-    qsort (files, i, sizeof (char *), compare);
+    entries[i].file = 0;
+    qsort (entries, i, sizeof (Entry), compare);
     i = 0;
-    while (files[i])
+    while (entries[i].file)
     {
-	f = scanopen (files[i]);
+	f = scanopen (entries[i].file);
 	if (!f)
-	    fatal (files[i], 0, strerror (errno));
-	sets[i] = scan (f, files[i], freezer);
-	names[i] = get_name (files[i]);
+	    fatal (entries[i].file, 0, strerror (errno));
+	sets[i] = scan (f, entries[i].file, freezer);
+	names[i] = get_name (entries[i].file);
 	langs[i] = get_lang(names[i]);
 	if (strchr (langs[i], '-'))
 	    country[ncountry++] = i;
@@ -362,6 +369,7 @@ main (int argc, char **argv)
     printf ("#define NUM(s,n)    (NUM0 + n * sizeof (FcChar16) - SET(s))\n");
     printf ("#define LEAF(o,l)   (LEAF0 + l * sizeof (FcCharLeaf) - (OFF0 + o * sizeof (intptr_t)))\n");
     printf ("#define fcLangCharSets (fcLangData.langCharSets)\n");
+    printf ("#define fcLangCharSetIndices (fcLangData.langIndices)\n");
     printf ("\n");
     
     printf ("static const struct {\n"
@@ -369,8 +377,10 @@ main (int argc, char **argv)
 	    "    FcCharLeaf     leaves[%d];\n"
 	    "    intptr_t       leaf_offsets[%d];\n"
 	    "    FcChar16       numbers[%d];\n"
+	    "    FcChar%s       langIndices[%d];\n"
 	    "} fcLangData = {\n",
-	    nsets, tl, tn, tn);
+	    nsets, tl, tn, tn,
+	    nsets < 256 ? "8 " : "16", nsets);
 	
     /*
      * Dump sets
@@ -457,6 +467,13 @@ main (int argc, char **argv)
 	if (n % 8 != 0)
 	    printf ("\n");
     }
+    printf ("},\n");
+
+    printf ("{\n");
+    for (i = 0; sets[i]; i++)
+    {
+	printf ("    %d, /* %s */\n", entries[i].id, names[i]);
+    }
     printf ("}\n");
     
     printf ("};\n\n");
@@ -527,7 +544,9 @@ main (int argc, char **argv)
     /*
      * Dump sets start/finish for the fastpath
      */
+    printf ("\n");
     printf ("static const FcLangCharSetRange  fcLangCharSetRanges[] = {\n");
+	printf ("\n");
     for (setRangeChar = 'a'; setRangeChar <= 'z' ; setRangeChar++)
     {
 	printf ("    { %d, %d }, /* %c */\n",
diff --git a/src/fclang.c b/src/fclang.c
index 90426a0..fe4674c 100644
--- a/src/fclang.c
+++ b/src/fclang.c
@@ -42,8 +42,8 @@ struct _FcLangSet {
     FcStrSet	*extra;
 };
 
-#define FcLangSetBitSet(ls, id)	((ls)->map[(id)>>5] |= ((FcChar32) 1 << ((id) & 0x1f)))
-#define FcLangSetBitGet(ls, id) (((ls)->map[(id)>>5] >> ((id) & 0x1f)) & 1)
+#define FcLangSetBitSet(ls, id)	((ls)->map[(fcLangCharSetIndices[id])>>5] |= ((FcChar32) 1 << ((fcLangCharSetIndices[id]) & 0x1f)))
+#define FcLangSetBitGet(ls, id) (((ls)->map[(fcLangCharSetIndices[id])>>5] >> ((fcLangCharSetIndices[id]) & 0x1f)) & 1)
 
 FcLangSet *
 FcFreeTypeLangSet (const FcCharSet  *charset, 
commit 4d13536db49bdfba97f84f702325d1a99796c06b
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Mar 18 18:50:14 2009 -0400

    [fcstr] Remove unused variable

diff --git a/src/fcstr.c b/src/fcstr.c
index 95d4543..ea7c376 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -757,8 +757,6 @@ FcStrBufDone (FcStrBuf *buf)
 FcChar8 *
 FcStrBufDoneStatic (FcStrBuf *buf)
 {
-    FcChar8 *ret;
-
     FcStrBufChar (buf, '\0');
 
     if (buf->failed)
commit bb36e67685dc4139fc4199c57c9d74d97f7923c8
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Mar 18 18:43:09 2009 -0400

    [fc-lang] Fix bug in country map generation
    
    Previously the county map code was using an uninitialized variable and
    hence was totally failing to populate same-lang-different-territory map.

diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c
index 22afe90..b0f1690 100644
--- a/fc-lang/fc-lang.c
+++ b/fc-lang/fc-lang.c
@@ -488,7 +488,7 @@ main (int argc, char **argv)
 		for (d = c + 1; d < ncountry; d++)
 		{
 		    int j = country[d];
-		    if (j >= 0 && !strncmp (langs[j], langs[i], l))
+		    if (j >= 0 && !strncmp (langs[j], langs[i], lang + 1))
 		    {
 			BitSet(map, j);
 			country[d] = -1;
commit 0f11354877323edc2145f687f9127d2de83c5b3b
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Mar 17 12:52:48 2009 -0400

    Revert "[conf] Disable hinting when emboldening (#19904)" (#20599)
    
    This reverts commit 10609af4aa4030a15c19573198462fa002d2ef13.
    Apparently disabling hinting can cause worse rendering with certain
    fonts.  This is better handled on a per font basis.

diff --git a/conf.d/90-synthetic.conf b/conf.d/90-synthetic.conf
index 6736423..63d9b89 100644
--- a/conf.d/90-synthetic.conf
+++ b/conf.d/90-synthetic.conf
@@ -60,16 +60,5 @@
 		<edit name="weight" mode="assign">
 			<const>bold</const>
 		</edit>
-		<!--
-		 Hinting will be done before Embolden in freetype2,
-		 but in such case, Embolden will get wrong result
-		 on some glyph contours after applying hinting.
-		 Actually, hinting should be done after embolden, but we can't
-		 fix it in current freetype2. So as a workaround, just turn off
-		 hinting if we want to do embolden.
-		-->
-		<edit name="hintstyle" mode="assign">
-			<const>hintnone</const>
-		</edit>
 	</match>
 </fontconfig>
commit 7042e236495399aab4eaf268232177d4b1680a12
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Mar 16 17:59:50 2009 -0400

    [Makefile.am] Don't clean ChangeLog in distclean

diff --git a/Makefile.am b/Makefile.am
index 7f76536..2d1de2b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -33,7 +33,7 @@ EXTRA_DIST = \
         fontconfig.spec \
 	fontconfig-zip.in
 CLEANFILES = fonts.conf
-DISTCLEANFILES = config.cache ChangeLog doltcompile
+DISTCLEANFILES = config.cache doltcompile
 MAINTAINERCLEANFILES = \
 	$(srcdir)/aclocal.m4 \
 	$(srcdir)/autoscan.log \
commit caeea376da54a6337bfcb1bb20f50c8c2302458f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Mar 13 17:26:21 2009 -0400

    Document FcPatternFormat() format

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 8bf1ba1..9ffd54f 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -49,6 +49,7 @@ DOC_FUNCS_FNCS=\
 	fcdircache.fncs \
 	fcfile.fncs \
 	fcfontset.fncs \
+	fcformat.fncs \
 	fcfreetype.fncs \
 	fcinit.fncs \
 	fclangset.fncs \
@@ -70,6 +71,7 @@ DOC_FUNCS_SGML=\
 	fcdircache.sgml \
 	fcfile.sgml \
 	fcfontset.sgml \
+	fcformat.sgml \
 	fcfreetype.sgml \
 	fcinit.sgml \
 	fclangset.sgml \
diff --git a/doc/fcformat.fncs b/doc/fcformat.fncs
new file mode 100644
index 0000000..b092449
--- /dev/null
+++ b/doc/fcformat.fncs
@@ -0,0 +1,301 @@
+/*
+ * fontconfig/doc/fcformat.fncs
+ *
+ * Copyright © 2008 Behdad Esfahbod
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+ at RET@		FcChar8 *
+ at FUNC@		FcPatternFormat
+ at TYPE1@		FcPattern *			@ARG1@		pat
+ at TYPE2@		const FcChar8 *			@ARG2@		format
+ at PURPOSE@	Format a pattern into a string according to a format specifier
+ at DESC@
+
+Converts given pattern <parameter>pat</parameter> into text described by
+the format specifier <parameter>format</parameter>.
+The return value refers to newly allocated memory which should be freed by the
+caller using free(), or NULL if <parameter>format</parameter> is invalid.
+
+</para><para>
+
+The format is loosely modelled after printf-style format string.
+The format string is composed 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.
+
+</para><para>
+
+Each tags 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 provided 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.
+
+</para><para>
+
+A <firstterm>simple</firstterm> tag
+is one where the content is an identifier.  When simple
+tags are expanded, the named identifier will be looked up in
+<parameter>pattern</parameter> and the resulting list of values returned,
+joined together using comma.  For example, to print the family name and style the
+pattern, use the format "%{family} %{style}\n".  To extend the family column
+to forty characters use "%-40{family}%{style}\n".
+
+</para><para>
+
+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]}".
+
+</para><para>
+
+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 <parameter>pattern</parameter> does not have weight set.
+
+</para><para>
+
+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 <parameter>pattern</parameter> does not have weight set.
+
+</para><para>
+
+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 <parameter>pattern</parameter> does not have weight set.
+
+</para><para>
+
+A <firstterm>count</firstterm> 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
+<parameter>pattern</parameter> has set, which may be zero.
+
+</para><para>
+
+A <firstterm>sub-expression</firstterm> 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) on an entire sub-expression.
+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.
+
+</para><para>
+
+A <firstterm>filter-out</firstterm> 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-expression 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 <parameter>pattern</parameter> sans the size and pixelsize elements.
+
+</para><para>
+
+A <firstterm>filter-in</firstterm> 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-expression will be expanded but with a pattern that
+only has the listed elements from the surrounding 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
+<parameter>pattern</parameter>.
+
+</para><para>
+
+A <firstterm>conditional</firstterm> 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 <parameter>pattern</parameter> has size and dpi elements but
+no pixelsize element, and to "fail" otherwise.
+
+</para><para>
+
+An <firstterm>enumerate</firstterm> 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 values 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 format "%{[]family,familylang{%{family} (%{familylang})\n}}"
+will expand the pattern "%{family} (%{familylang})\n" with a pattern
+having only the first value of the family and familylang elemtns, then expands
+it with the second values, then the third, etc.
+
+</para><para>
+
+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.
+
+</para><para>
+
+A <firstterm>builtin</firstterm> tag
+is one starting with the character "=" followed by a builtin
+name.  The following builtins are defined:
+
+<variablelist>
+
+<varlistentry><term>
+unparse
+</term><listitem><para>
+Expands to the result of calling FcNameUnparse() on the pattern.
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+fcmatch
+</term><listitem><para>
+Expands to the output of the default output format of the fc-match
+command on the pattern, without the final newline.
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+fclist
+</term><listitem><para>
+Expands to the output of the default output format of the fc-list
+command on the pattern, without the final newline.
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+pkgkit
+</term><listitem><para>
+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.
+</para></listitem></varlistentry>
+
+</variablelist>
+
+For example, the format "%{+family,style{%{=unparse}}}\n" will expand
+to an unparsed name containing only the family and style element values
+from <parameter>pattern</parameter>.
+
+</para><para>
+
+The contents of any tag can be followed by a set of zero or more
+<firstterm>converter</firstterm>s.  A converter is specified by the
+character "|" followed by the converter name and arguments.  The
+following converters are defined:
+
+<variablelist>
+
+<varlistentry><term>
+basename
+</term><listitem><para>
+Replaces text with the results of calling FcStrBasename() on it.
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+dirname
+</term><listitem><para>
+Replaces text with the results of calling FcStrDirname() on it.
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+downcase
+</term><listitem><para>
+Replaces text with the results of calling FcStrDowncase() on it.
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+shescape
+</term><listitem><para>
+Escapes text for one level of shell expansion.
+(Escapes single-quotes, also encloses text in single-quotes.)
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+cescape
+</term><listitem><para>
+Escapes text such that it can be used as part of a C string literal.
+(Escapes backslash and double-quotes.)
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+xmlescape
+</term><listitem><para>
+Escapes text such that it can be used in XML and HTML.
+(Escapes less-than, greater-than, and ampersand.)
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+delete(<parameter>chars</parameter>)
+</term><listitem><para>
+Deletes all occurrences of each of the characters in <parameter>chars</parameter>
+from the text.
+FIXME: This converter is not UTF-8 aware yet.
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+escape(<parameter>chars</parameter>)
+</term><listitem><para>
+Escapes all occurrences of each of the characters in <parameter>chars</parameter>
+by prepending it by the first character in <parameter>chars</parameter>.
+FIXME: This converter is not UTF-8 aware yet.
+</para></listitem></varlistentry>
+
+<varlistentry><term>
+translate(<parameter>from</parameter>,<parameter>to</parameter>)
+</term><listitem><para>
+Translates all occurrences of each of the characters in <parameter>from</parameter>
+by replacing them with their corresponding character in <parameter>to</parameter>.
+If <parameter>to</parameter> has fewer characters than
+<parameter>from</parameter>, it will be extended by repeating its last
+character.
+FIXME: This converter is not UTF-8 aware yet.
+</para></listitem></varlistentry>
+
+</variablelist>
+
+For example, the format "%{family|downcase|delete( )}\n" will expand
+to the values of the family element in <parameter>pattern</parameter>,
+lower-cased and with spaces removed.
+
+@@
diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index 8948e88..e2c2953 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -395,23 +395,3 @@ Converts the given pattern into the standard text format described above.
 The return value is not static, but instead refers to newly allocated memory
 which should be freed by the caller using free().
 @@
-
- at RET@		FcChar8 *
- at FUNC@		FcPatternFormat
- at TYPE1@		FcPattern *			@ARG1@		pat
- at TYPE2@		const FcChar8 *			@ARG2@		format
- at PURPOSE@	Format a pattern into a string according to a format specifier
- at DESC@
-
-Converts the given pattern into text format described by the format specifier.
-The format specifier is similar to a C style printf string, which the
-printf(2) man page provides a good introduction to. However, as fontconfig
-already knows the type of data that is being printed, you must omit the type
-specifier. In its place put the element name you wish to print enclosed in
-curly braces ({}). For example, to print the family name and style the
-pattern, use the format "%{family} %{style}\n".
-There can be an option width specifier after the percent sign and before
-the opening brace.  The width modifier acts similar to those in printf.
-The return value refers to newly allocated memory which should be freed by the
-caller using free(), or NULL if <parameter>format</parameter> is invalid.
-@@
diff --git a/doc/fontconfig-devel.sgml b/doc/fontconfig-devel.sgml
index bce8d68..891251f 100644
--- a/doc/fontconfig-devel.sgml
+++ b/doc/fontconfig-devel.sgml
@@ -8,6 +8,7 @@
 <!ENTITY fcdircache SYSTEM "fcdircache.sgml">
 <!ENTITY fcfile SYSTEM "fcfile.sgml">
 <!ENTITY fcfontset SYSTEM "fcfontset.sgml">
+<!ENTITY fcformat SYSTEM "fcformat.sgml">
 <!ENTITY fcfreetype SYSTEM "fcfreetype.sgml">
 <!ENTITY fcinit SYSTEM "fcinit.sgml">
 <!ENTITY fclangset SYSTEM "fclangset.sgml">
@@ -437,6 +438,7 @@ An FcPattern is an opaque type that holds both patterns to match against the
 available fonts, as well as the information about each font.
     </para>
     &fcpattern;
+    &fcformat;
   </sect2>
   <sect2><title>FcFontSet</title>
     <para>
diff --git a/src/fcformat.c b/src/fcformat.c
index 5a05238..bf94017 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -28,44 +28,46 @@
 #include <stdarg.h>
 
 
-/* XXX Document the language.
+/* The language is documented in doc/fcformat.fncs
+ * These are the features implemented:
  *
- * These are mostly the features implemented but not documented:
+ * simple	%{elt}
+ * width	%width{elt}
+ * index	%{elt[idx]}
+ * name=	%{elt=}
+ * :name=	%{:elt}
+ * default	%{elt:-word}
+ * count	%{#elt}
+ * subexpr	%{{expr}}
+ * filter-out	%{-elt1,elt2,elt3{expr}}
+ * filter-in	%{+elt1,elt2,elt3{expr}}
+ * conditional	%{?elt1,elt2,!elt3{}{}}
+ * enumerate	%{[]elt1,elt2{expr}}
+ * langset	langset enumeration using the same syntax
+ * builtin	%{=blt}
+ * convert	%{elt|conv1|conv2|conv3}
  *
- * width   %[[-]width]{tag}
- * index   %{tag[ids]}
- * name=   %{tag=|decorator}
- * :name=  %{:tag=|decorator}
- * subexpr %{{expr}|decorator1|decorator2}
- * delete  %{-charset,lang{expr}|decorator}
- * filter  %{+family,familylang{expr}|decorator}
- * cond    %{?tag1,tag2,!tag3{}{}}
- * decorat %{tag|decorator1|decorator2}
- * default %{parameter:-word}
- * array   %{[]family,familylang{expr}|decorator}
- * langset enumeration using the same syntax as arrays
- *
- * filters:
- * basename        FcStrBasename
- * dirname         FcStrDirname
- * downcase        FcStrDowncase
+ * converters:
+ * basename	FcStrBasename
+ * dirname	FcStrDirname
+ * downcase	FcStrDowncase
  * shescape
  * cescape
  * xmlescape
- * delete          delete chars
- * escape          escape chars
- * translate       translate chars
+ * delete	delete chars
+ * escape	escape chars
+ * translate	translate chars
  *
  * builtins:
- * unparse
- * fcmatch
- * fclist
- * pkgkit
- */
-
-/*
+ * unparse	FcNameUnparse
+ * fcmatch	fc-match default
+ * fclist	fc-list default
+ * pkgkit	PackageKit package tag format
+ *
+ *
  * Some ideas for future syntax extensions:
  *
+ * - verbose builtin that is like FcPatternPrint
  * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
  * - conditional/filtering/deletion on binding (using '(w)'/'(s)'/'(=)' notation)
  */
@@ -418,9 +420,9 @@ maybe_skip_subexpr (FcFormatContext *c)
 }
 
 static FcBool
-interpret_filter (FcFormatContext *c,
-		  FcPattern       *pat,
-		  FcStrBuf        *buf)
+interpret_filter_in (FcFormatContext *c,
+		     FcPattern       *pat,
+		     FcStrBuf        *buf)
 {
     FcObjectSet  *os;
     FcPattern    *subpat;
@@ -455,9 +457,9 @@ interpret_filter (FcFormatContext *c,
 }
 
 static FcBool
-interpret_delete (FcFormatContext *c,
-		  FcPattern       *pat,
-		  FcStrBuf        *buf)
+interpret_filter_out (FcFormatContext *c,
+		      FcPattern       *pat,
+		      FcStrBuf        *buf)
 {
     FcPattern    *subpat;
 
@@ -567,9 +569,9 @@ interpret_count (FcFormatContext *c,
 }
 
 static FcBool
-interpret_array (FcFormatContext *c,
-		 FcPattern       *pat,
-		 FcStrBuf        *buf)
+interpret_enumerate (FcFormatContext *c,
+		     FcPattern       *pat,
+		     FcStrBuf        *buf)
 {
     FcObjectSet   *os;
     FcPattern     *subpat;
@@ -1115,14 +1117,14 @@ interpret_percent (FcFormatContext *c,
     start = buf->len;
 
     switch (*c->format) {
-    case '=': ret = interpret_builtin (c, pat, buf); break;
-    case '{': ret = interpret_subexpr (c, pat, buf); break;
-    case '+': ret = interpret_filter  (c, pat, buf); break;
-    case '-': ret = interpret_delete  (c, pat, buf); break;
-    case '?': ret = interpret_cond    (c, pat, buf); break;
-    case '#': ret = interpret_count   (c, pat, buf); break;
-    case '[': ret = interpret_array   (c, pat, buf); break;
-    default:  ret = interpret_simple  (c, pat, buf); break;
+    case '=': ret = interpret_builtin    (c, pat, buf); break;
+    case '{': ret = interpret_subexpr    (c, pat, buf); break;
+    case '+': ret = interpret_filter_in  (c, pat, buf); break;
+    case '-': ret = interpret_filter_out (c, pat, buf); break;
+    case '?': ret = interpret_cond       (c, pat, buf); break;
+    case '#': ret = interpret_count      (c, pat, buf); break;
+    case '[': ret = interpret_enumerate  (c, pat, buf); break;
+    default:  ret = interpret_simple     (c, pat, buf); break;
     }
 
     return ret &&
commit f6d83439890c165e5a7f6a8a746ffdb189dbbd0d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Mar 13 12:11:13 2009 -0400

    [fcformat] Fix default-value handling

diff --git a/src/fcformat.c b/src/fcformat.c
index 99c4f85..5a05238 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -737,9 +737,9 @@ interpret_simple (FcFormatContext *c,
 
     e = FcPatternObjectFindElt (pat,
 				FcObjectFromName ((const char *) c->word));
-    if (e)
+    if (e || else_string)
     {
-	FcValueListPtr l;
+	FcValueListPtr l = NULL;
 
 	if (add_colon)
 	    FcStrBufChar (buf, ':');
@@ -749,7 +749,8 @@ interpret_simple (FcFormatContext *c,
 	    FcStrBufChar (buf, '=');
 	}
 
-	l = FcPatternEltValues(e);
+	if (e)
+	    l = FcPatternEltValues(e);
 
 	if (idx != -1)
 	{
@@ -765,16 +766,16 @@ interpret_simple (FcFormatContext *c,
 	    }
 	    else goto notfound;
         }
-	else
+	else if (l)
 	{
 	    FcNameUnparseValueList (buf, l, '\0');
 	}
-    }
-    else
-notfound:
-    {
-	if (else_string)
-	    printf ("%s", else_string);
+	else
+	{
+    notfound:
+	    if (else_string)
+		FcStrBufString (buf, else_string);
+	}
     }
 
     return FcTrue;
commit 3074a73b418b40135d4a4f4e0713fcf987d34795
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Mar 12 16:00:08 2009 -0400

    Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files

diff --git a/COPYING b/COPYING
index c0f1976..d683722 100644
--- a/COPYING
+++ b/COPYING
@@ -12,9 +12,9 @@ specific, written prior permission.  Keith Packard makes no
 representations about the suitability of this software for any purpose.  It
 is provided "as is" without express or implied warranty.
 
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/Makefile.am b/Makefile.am
index 46dbb41..7f76536 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,9 +13,9 @@
 #  representations about the suitability of this software for any purpose.  It
 #  is provided "as is" without express or implied warranty.
 # 
-#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 #  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 #  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 #  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/conf.d/65-fonts-persian.conf b/conf.d/65-fonts-persian.conf
index c28468e..49dd297 100644
--- a/conf.d/65-fonts-persian.conf
+++ b/conf.d/65-fonts-persian.conf
@@ -18,7 +18,7 @@
 
   SHARIF FARSIWEB, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
   INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
   DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
   TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/conf.d/Makefile.am b/conf.d/Makefile.am
index 0f6eebd..bff1171 100644
--- a/conf.d/Makefile.am
+++ b/conf.d/Makefile.am
@@ -13,9 +13,9 @@
 #  representations about the suitability of this software for any purpose.  It
 #  is provided "as is" without express or implied warranty.
 # 
-#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 #  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 #  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 #  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/config/Makedefs.in b/config/Makedefs.in
index e30ada6..da156b6 100644
--- a/config/Makedefs.in
+++ b/config/Makedefs.in
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/configure.in b/configure.in
index 7a40ada..f2c94c2 100644
--- a/configure.in
+++ b/configure.in
@@ -13,9 +13,9 @@ dnl  specific, written prior permission.  Keith Packard makes no
 dnl  representations about the suitability of this software for any purpose.  It
 dnl  is provided "as is" without express or implied warranty.
 dnl 
-dnl  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+dnl  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 dnl  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-dnl  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+dnl  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 dnl  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 dnl  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 dnl  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 419cc61..8bf1ba1 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/confdir.sgml.in b/doc/confdir.sgml.in
index 60ee961..6dc6526 100644
--- a/doc/confdir.sgml.in
+++ b/doc/confdir.sgml.in
@@ -13,9 +13,9 @@
    representations about the suitability of this software for any purpose.  It
    is provided "as is" without express or implied warranty.
   
-   KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+   THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
    INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-   EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+   EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
    CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
    DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
    TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/edit-sgml.c b/doc/edit-sgml.c
index 6638a7c..b69c93e 100644
--- a/doc/edit-sgml.c
+++ b/doc/edit-sgml.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcatomic.fncs b/doc/fcatomic.fncs
index 4e60eb7..c6b924d 100644
--- a/doc/fcatomic.fncs
+++ b/doc/fcatomic.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcblanks.fncs b/doc/fcblanks.fncs
index cda5a5b..b8ce47d 100644
--- a/doc/fcblanks.fncs
+++ b/doc/fcblanks.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fccache.fncs b/doc/fccache.fncs
index 36db10c..f0c984d 100644
--- a/doc/fccache.fncs
+++ b/doc/fccache.fncs
@@ -11,9 +11,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fccharset.fncs b/doc/fccharset.fncs
index de06aa4..b12064a 100644
--- a/doc/fccharset.fncs
+++ b/doc/fccharset.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs
index 08408af..8bb953b 100644
--- a/doc/fcconfig.fncs
+++ b/doc/fcconfig.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcconstant.fncs b/doc/fcconstant.fncs
index e492359..86150f2 100644
--- a/doc/fcconstant.fncs
+++ b/doc/fcconstant.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcfile.fncs b/doc/fcfile.fncs
index 1f324b1..d15ab27 100644
--- a/doc/fcfile.fncs
+++ b/doc/fcfile.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcfontset.fncs b/doc/fcfontset.fncs
index db1ae37..57005fd 100644
--- a/doc/fcfontset.fncs
+++ b/doc/fcfontset.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcfreetype.fncs b/doc/fcfreetype.fncs
index d482144..366cfae 100644
--- a/doc/fcfreetype.fncs
+++ b/doc/fcfreetype.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcinit.fncs b/doc/fcinit.fncs
index 54fa6fe..e9b7947 100644
--- a/doc/fcinit.fncs
+++ b/doc/fcinit.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcmatrix.fncs b/doc/fcmatrix.fncs
index 9cad998..fd680e4 100644
--- a/doc/fcmatrix.fncs
+++ b/doc/fcmatrix.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcobjectset.fncs b/doc/fcobjectset.fncs
index 02c089b..468a7bf 100644
--- a/doc/fcobjectset.fncs
+++ b/doc/fcobjectset.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcobjecttype.fncs b/doc/fcobjecttype.fncs
index f11137b..bc254f3 100644
--- a/doc/fcobjecttype.fncs
+++ b/doc/fcobjecttype.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index 35ef68b..8948e88 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcstring.fncs b/doc/fcstring.fncs
index ed73040..5f1f93a 100644
--- a/doc/fcstring.fncs
+++ b/doc/fcstring.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcstrset.fncs b/doc/fcstrset.fncs
index d1869ba..61af37b 100644
--- a/doc/fcstrset.fncs
+++ b/doc/fcstrset.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fcvalue.fncs b/doc/fcvalue.fncs
index 0786028..d0c669b 100644
--- a/doc/fcvalue.fncs
+++ b/doc/fcvalue.fncs
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fontconfig-devel.sgml b/doc/fontconfig-devel.sgml
index 560a862..bce8d68 100644
--- a/doc/fontconfig-devel.sgml
+++ b/doc/fontconfig-devel.sgml
@@ -35,9 +35,9 @@
     representations about the suitability of this software for any purpose.  It
     is provided "as is" without express or implied warranty.
    
-    KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+    THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-    EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+    EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
     DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
     TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
@@ -70,9 +70,9 @@ specific, written prior permission.  Keith Packard makes no
 representations about the suitability of this software for any purpose.  It
 is provided "as is" without express or implied warranty.
 			</simpara><simpara>
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/fontconfig-user.sgml b/doc/fontconfig-user.sgml
index 316f085..86d8d59 100644
--- a/doc/fontconfig-user.sgml
+++ b/doc/fontconfig-user.sgml
@@ -15,9 +15,9 @@
     representations about the suitability of this software for any purpose.  It
     is provided "as is" without express or implied warranty.
    
-    KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+    THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-    EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+    EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
     DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
     TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/func.sgml b/doc/func.sgml
index 02b3e3d..0da5ae4 100644
--- a/doc/func.sgml
+++ b/doc/func.sgml
@@ -13,9 +13,9 @@
    representations about the suitability of this software for any purpose.  It
    is provided "as is" without express or implied warranty.
   
-   KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+   THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
    INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-   EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+   EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
    CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
    DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
    TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/doc/version.sgml.in b/doc/version.sgml.in
index f7666c0..9981b1c 100644
--- a/doc/version.sgml.in
+++ b/doc/version.sgml.in
@@ -13,9 +13,9 @@
    representations about the suitability of this software for any purpose.  It
    is provided "as is" without express or implied warranty.
   
-   KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+   THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
    INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-   EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+   EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
    CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
    DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
    TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-arch/Makefile.am b/fc-arch/Makefile.am
index c226639..f3b4e50 100644
--- a/fc-arch/Makefile.am
+++ b/fc-arch/Makefile.am
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-arch/fcarch.tmpl.h b/fc-arch/fcarch.tmpl.h
index 96dccb4..20e5705 100644
--- a/fc-arch/fcarch.tmpl.h
+++ b/fc-arch/fcarch.tmpl.h
@@ -11,9 +11,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-cache/Makefile.am b/fc-cache/Makefile.am
index b00a3e2..5067c04 100644
--- a/fc-cache/Makefile.am
+++ b/fc-cache/Makefile.am
@@ -13,9 +13,9 @@
 #  representations about the suitability of this software for any purpose.  It
 #  is provided "as is" without express or implied warranty.
 # 
-#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 #  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 #  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 #  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c
index 225c085..19e9d0d 100644
--- a/fc-cache/fc-cache.c
+++ b/fc-cache/fc-cache.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-case/Makefile.am b/fc-case/Makefile.am
index e1e3046..191758c 100644
--- a/fc-case/Makefile.am
+++ b/fc-case/Makefile.am
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-case/fc-case.c b/fc-case/fc-case.c
index 33edffd..e86b347 100644
--- a/fc-case/fc-case.c
+++ b/fc-case/fc-case.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-case/fccase.tmpl.h b/fc-case/fccase.tmpl.h
index 9c06e02..6263329 100644
--- a/fc-case/fccase.tmpl.h
+++ b/fc-case/fccase.tmpl.h
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-cat/Makefile.am b/fc-cat/Makefile.am
index e10204a..27b6375 100644
--- a/fc-cat/Makefile.am
+++ b/fc-cat/Makefile.am
@@ -13,9 +13,9 @@
 #  representations about the suitability of this software for any purpose.  It
 #  is provided "as is" without express or implied warranty.
 # 
-#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 #  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 #  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 #  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-cat/fc-cat.c b/fc-cat/fc-cat.c
index ec2b032..a9326c8 100644
--- a/fc-cat/fc-cat.c
+++ b/fc-cat/fc-cat.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-glyphname/Makefile.am b/fc-glyphname/Makefile.am
index 412d663..0244a7d 100644
--- a/fc-glyphname/Makefile.am
+++ b/fc-glyphname/Makefile.am
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-glyphname/fc-glyphname.c b/fc-glyphname/fc-glyphname.c
index e0f0a17..5788460 100644
--- a/fc-glyphname/fc-glyphname.c
+++ b/fc-glyphname/fc-glyphname.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-glyphname/fcglyphname.tmpl.h b/fc-glyphname/fcglyphname.tmpl.h
index bbef84d..e2f76a2 100644
--- a/fc-glyphname/fcglyphname.tmpl.h
+++ b/fc-glyphname/fcglyphname.tmpl.h
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/Makefile.am b/fc-lang/Makefile.am
index f210894..eaf76d2 100644
--- a/fc-lang/Makefile.am
+++ b/fc-lang/Makefile.am
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/aa.orth b/fc-lang/aa.orth
index 4bfa58f..58658ce 100644
--- a/fc-lang/aa.orth
+++ b/fc-lang/aa.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ab.orth b/fc-lang/ab.orth
index fefb747..7049ac1 100644
--- a/fc-lang/ab.orth
+++ b/fc-lang/ab.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/af.orth b/fc-lang/af.orth
index f154b63..4c34460 100644
--- a/fc-lang/af.orth
+++ b/fc-lang/af.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/am.orth b/fc-lang/am.orth
index ddd2096..2f00a96 100644
--- a/fc-lang/am.orth
+++ b/fc-lang/am.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ar.orth b/fc-lang/ar.orth
index 3aab23f..5afef09 100644
--- a/fc-lang/ar.orth
+++ b/fc-lang/ar.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ast.orth b/fc-lang/ast.orth
index bc4ce67..20b81f4 100644
--- a/fc-lang/ast.orth
+++ b/fc-lang/ast.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/av.orth b/fc-lang/av.orth
index 37fd981..21e4c22 100644
--- a/fc-lang/av.orth
+++ b/fc-lang/av.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ay.orth b/fc-lang/ay.orth
index e03a39a..8055e93 100644
--- a/fc-lang/ay.orth
+++ b/fc-lang/ay.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/az_ir.orth b/fc-lang/az_ir.orth
index 2a5d9c8..6899791 100644
--- a/fc-lang/az_ir.orth
+++ b/fc-lang/az_ir.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ba.orth b/fc-lang/ba.orth
index 6407278..1690835 100644
--- a/fc-lang/ba.orth
+++ b/fc-lang/ba.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/be.orth b/fc-lang/be.orth
index a9f46fb..ebcd195 100644
--- a/fc-lang/be.orth
+++ b/fc-lang/be.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bg.orth b/fc-lang/bg.orth
index d2c6480..7c84790 100644
--- a/fc-lang/bg.orth
+++ b/fc-lang/bg.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bh.orth b/fc-lang/bh.orth
index 647a58a..4dc39ef 100644
--- a/fc-lang/bh.orth
+++ b/fc-lang/bh.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bho.orth b/fc-lang/bho.orth
index 0972f18..d5998b4 100644
--- a/fc-lang/bho.orth
+++ b/fc-lang/bho.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bi.orth b/fc-lang/bi.orth
index 61ee35b..451783e 100644
--- a/fc-lang/bi.orth
+++ b/fc-lang/bi.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bin.orth b/fc-lang/bin.orth
index 8863953..1ff2c4b 100644
--- a/fc-lang/bin.orth
+++ b/fc-lang/bin.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bm.orth b/fc-lang/bm.orth
index 269816c..d87a5bf 100644
--- a/fc-lang/bm.orth
+++ b/fc-lang/bm.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bo.orth b/fc-lang/bo.orth
index ad06895..f09d18e 100644
--- a/fc-lang/bo.orth
+++ b/fc-lang/bo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/br.orth b/fc-lang/br.orth
index 4a0df27..fb90f0f 100644
--- a/fc-lang/br.orth
+++ b/fc-lang/br.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bs.orth b/fc-lang/bs.orth
index ec53bdb..5df4706 100644
--- a/fc-lang/bs.orth
+++ b/fc-lang/bs.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/bua.orth b/fc-lang/bua.orth
index 4f5d241..cb67299 100644
--- a/fc-lang/bua.orth
+++ b/fc-lang/bua.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ca.orth b/fc-lang/ca.orth
index 9d25e3c..6ace8fa 100644
--- a/fc-lang/ca.orth
+++ b/fc-lang/ca.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ce.orth b/fc-lang/ce.orth
index 1dea23e..4db7fbd 100644
--- a/fc-lang/ce.orth
+++ b/fc-lang/ce.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ch.orth b/fc-lang/ch.orth
index fa15ddd..795c821 100644
--- a/fc-lang/ch.orth
+++ b/fc-lang/ch.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/chm.orth b/fc-lang/chm.orth
index 19bfc0c..0f4b13c 100644
--- a/fc-lang/chm.orth
+++ b/fc-lang/chm.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/chr.orth b/fc-lang/chr.orth
index 5ce81be..f419511 100644
--- a/fc-lang/chr.orth
+++ b/fc-lang/chr.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/co.orth b/fc-lang/co.orth
index ec4b294..ccfc7d4 100644
--- a/fc-lang/co.orth
+++ b/fc-lang/co.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/cs.orth b/fc-lang/cs.orth
index 72afd64..aa7e7aa 100644
--- a/fc-lang/cs.orth
+++ b/fc-lang/cs.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/cu.orth b/fc-lang/cu.orth
index e1d18df..043ad74 100644
--- a/fc-lang/cu.orth
+++ b/fc-lang/cu.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/cv.orth b/fc-lang/cv.orth
index 88aee6c..3fe1b02 100644
--- a/fc-lang/cv.orth
+++ b/fc-lang/cv.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/cy.orth b/fc-lang/cy.orth
index 416ccc7..db790c9 100644
--- a/fc-lang/cy.orth
+++ b/fc-lang/cy.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/da.orth b/fc-lang/da.orth
index da473be..b1f6467 100644
--- a/fc-lang/da.orth
+++ b/fc-lang/da.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/de.orth b/fc-lang/de.orth
index 881da90..15bf178 100644
--- a/fc-lang/de.orth
+++ b/fc-lang/de.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/dz.orth b/fc-lang/dz.orth
index c492330..c7843af 100644
--- a/fc-lang/dz.orth
+++ b/fc-lang/dz.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/el.orth b/fc-lang/el.orth
index 11fc8b8..0b9782e 100644
--- a/fc-lang/el.orth
+++ b/fc-lang/el.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/en.orth b/fc-lang/en.orth
index 57f5d04..c521e21 100644
--- a/fc-lang/en.orth
+++ b/fc-lang/en.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/eo.orth b/fc-lang/eo.orth
index 74577dd..80501c7 100644
--- a/fc-lang/eo.orth
+++ b/fc-lang/eo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/es.orth b/fc-lang/es.orth
index f9f20a7..603ef60 100644
--- a/fc-lang/es.orth
+++ b/fc-lang/es.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/et.orth b/fc-lang/et.orth
index af4ad04..db2d2c1 100644
--- a/fc-lang/et.orth
+++ b/fc-lang/et.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/eu.orth b/fc-lang/eu.orth
index cf533d9..6ff3577 100644
--- a/fc-lang/eu.orth
+++ b/fc-lang/eu.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fa.orth b/fc-lang/fa.orth
index 8114e5c..a988d61 100644
--- a/fc-lang/fa.orth
+++ b/fc-lang/fa.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c
index 8f50133..22afe90 100644
--- a/fc-lang/fc-lang.c
+++ b/fc-lang/fc-lang.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fc-lang.man b/fc-lang/fc-lang.man
index 24ad02e..8767be6 100644
--- a/fc-lang/fc-lang.man
+++ b/fc-lang/fc-lang.man
@@ -11,9 +11,9 @@
 .\" representations about the suitability of this software for any purpose.  It
 .\" is provided "as is" without express or implied warranty.
 .\"
-.\" KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+.\" THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 .\" INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-.\" EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+.\" EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 .\" CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 .\" DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 .\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fclang.tmpl.h b/fc-lang/fclang.tmpl.h
index 9c920c8..c7d3889 100644
--- a/fc-lang/fclang.tmpl.h
+++ b/fc-lang/fclang.tmpl.h
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ff.orth b/fc-lang/ff.orth
index 0d11a00..25b4e35 100644
--- a/fc-lang/ff.orth
+++ b/fc-lang/ff.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fi.orth b/fc-lang/fi.orth
index b1555d0..ccac86e 100644
--- a/fc-lang/fi.orth
+++ b/fc-lang/fi.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fj.orth b/fc-lang/fj.orth
index 2b3889c..5b7b6fb 100644
--- a/fc-lang/fj.orth
+++ b/fc-lang/fj.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fo.orth b/fc-lang/fo.orth
index f999cf3..9d5d8c5 100644
--- a/fc-lang/fo.orth
+++ b/fc-lang/fo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fr.orth b/fc-lang/fr.orth
index 0dff246..3441b9e 100644
--- a/fc-lang/fr.orth
+++ b/fc-lang/fr.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fur.orth b/fc-lang/fur.orth
index 90e860e..066feb0 100644
--- a/fc-lang/fur.orth
+++ b/fc-lang/fur.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/fy.orth b/fc-lang/fy.orth
index 5e468b2..b17f4d6 100644
--- a/fc-lang/fy.orth
+++ b/fc-lang/fy.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ga.orth b/fc-lang/ga.orth
index 3c991a4..880114e 100644
--- a/fc-lang/ga.orth
+++ b/fc-lang/ga.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/gd.orth b/fc-lang/gd.orth
index c8dd893..39c308e 100644
--- a/fc-lang/gd.orth
+++ b/fc-lang/gd.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/gez.orth b/fc-lang/gez.orth
index 3b2390c..7d915fa 100644
--- a/fc-lang/gez.orth
+++ b/fc-lang/gez.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/gl.orth b/fc-lang/gl.orth
index b2a824a..5538be5 100644
--- a/fc-lang/gl.orth
+++ b/fc-lang/gl.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/gn.orth b/fc-lang/gn.orth
index 7b42595..36ddb76 100644
--- a/fc-lang/gn.orth
+++ b/fc-lang/gn.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/gu.orth b/fc-lang/gu.orth
index 9c89579..4646907 100644
--- a/fc-lang/gu.orth
+++ b/fc-lang/gu.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/gv.orth b/fc-lang/gv.orth
index a69704b..c22c666 100644
--- a/fc-lang/gv.orth
+++ b/fc-lang/gv.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ha.orth b/fc-lang/ha.orth
index c8c5a1e..cea4faf 100644
--- a/fc-lang/ha.orth
+++ b/fc-lang/ha.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/haw.orth b/fc-lang/haw.orth
index 89a811c..563fbd0 100644
--- a/fc-lang/haw.orth
+++ b/fc-lang/haw.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/he.orth b/fc-lang/he.orth
index 2eb56e5..bd68fa4 100644
--- a/fc-lang/he.orth
+++ b/fc-lang/he.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/hi.orth b/fc-lang/hi.orth
index 59bdc9f..3e2226a 100644
--- a/fc-lang/hi.orth
+++ b/fc-lang/hi.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ho.orth b/fc-lang/ho.orth
index 7dcb5da..f488c3c 100644
--- a/fc-lang/ho.orth
+++ b/fc-lang/ho.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/hr.orth b/fc-lang/hr.orth
index 31f8ff6..755c367 100644
--- a/fc-lang/hr.orth
+++ b/fc-lang/hr.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/hu.orth b/fc-lang/hu.orth
index 56e7db3..76c024a 100644
--- a/fc-lang/hu.orth
+++ b/fc-lang/hu.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/hy.orth b/fc-lang/hy.orth
index 2138ff8..22dd829 100644
--- a/fc-lang/hy.orth
+++ b/fc-lang/hy.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ia.orth b/fc-lang/ia.orth
index dfd6b8f..e1ee8e7 100644
--- a/fc-lang/ia.orth
+++ b/fc-lang/ia.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/id.orth b/fc-lang/id.orth
index f5eeb37..313c146 100644
--- a/fc-lang/id.orth
+++ b/fc-lang/id.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ie.orth b/fc-lang/ie.orth
index 6641527..7c94405 100644
--- a/fc-lang/ie.orth
+++ b/fc-lang/ie.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ig.orth b/fc-lang/ig.orth
index de4ec6e..5486fea 100644
--- a/fc-lang/ig.orth
+++ b/fc-lang/ig.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ik.orth b/fc-lang/ik.orth
index 18775ab..1380188 100644
--- a/fc-lang/ik.orth
+++ b/fc-lang/ik.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/io.orth b/fc-lang/io.orth
index d268d6f..eaaac39 100644
--- a/fc-lang/io.orth
+++ b/fc-lang/io.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/is.orth b/fc-lang/is.orth
index 0d20a37..c33e7d2 100644
--- a/fc-lang/is.orth
+++ b/fc-lang/is.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/it.orth b/fc-lang/it.orth
index 6e65225..ad1a22d 100644
--- a/fc-lang/it.orth
+++ b/fc-lang/it.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/iu.orth b/fc-lang/iu.orth
index d083b5d..1c1300a 100644
--- a/fc-lang/iu.orth
+++ b/fc-lang/iu.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ja.orth b/fc-lang/ja.orth
index c72a3ea..3c383e3 100644
--- a/fc-lang/ja.orth
+++ b/fc-lang/ja.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ka.orth b/fc-lang/ka.orth
index 7007f87..dda35ad 100644
--- a/fc-lang/ka.orth
+++ b/fc-lang/ka.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/kaa.orth b/fc-lang/kaa.orth
index f4a507b..fe641a5 100644
--- a/fc-lang/kaa.orth
+++ b/fc-lang/kaa.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ki.orth b/fc-lang/ki.orth
index f47c77b..147ce85 100644
--- a/fc-lang/ki.orth
+++ b/fc-lang/ki.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/kk.orth b/fc-lang/kk.orth
index 6c36d19..009a97e 100644
--- a/fc-lang/kk.orth
+++ b/fc-lang/kk.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/kl.orth b/fc-lang/kl.orth
index d95f64e..2763de2 100644
--- a/fc-lang/kl.orth
+++ b/fc-lang/kl.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/kn.orth b/fc-lang/kn.orth
index b3641ec..7b52530 100644
--- a/fc-lang/kn.orth
+++ b/fc-lang/kn.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ko.orth b/fc-lang/ko.orth
index 815ba03..1b02d9a 100644
--- a/fc-lang/ko.orth
+++ b/fc-lang/ko.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/kok.orth b/fc-lang/kok.orth
index 5a6edf7..e77de66 100644
--- a/fc-lang/kok.orth
+++ b/fc-lang/kok.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ku_am.orth b/fc-lang/ku_am.orth
index bfead68..80e4340 100644
--- a/fc-lang/ku_am.orth
+++ b/fc-lang/ku_am.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ku_ir.orth b/fc-lang/ku_ir.orth
index 13fa146..6ca2e70 100644
--- a/fc-lang/ku_ir.orth
+++ b/fc-lang/ku_ir.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/kum.orth b/fc-lang/kum.orth
index 55da2da..0107bfe 100644
--- a/fc-lang/kum.orth
+++ b/fc-lang/kum.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/kv.orth b/fc-lang/kv.orth
index 3b5fb28..87d4d93 100644
--- a/fc-lang/kv.orth
+++ b/fc-lang/kv.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/kw.orth b/fc-lang/kw.orth
index 25d11dd..11824b7 100644
--- a/fc-lang/kw.orth
+++ b/fc-lang/kw.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ky.orth b/fc-lang/ky.orth
index 1f96f52..ba84250 100644
--- a/fc-lang/ky.orth
+++ b/fc-lang/ky.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/la.orth b/fc-lang/la.orth
index 1fa30b0..b28cbcc 100644
--- a/fc-lang/la.orth
+++ b/fc-lang/la.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/lb.orth b/fc-lang/lb.orth
index fc84d00..6f7b2c2 100644
--- a/fc-lang/lb.orth
+++ b/fc-lang/lb.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/lez.orth b/fc-lang/lez.orth
index ade7699..3fe9ac2 100644
--- a/fc-lang/lez.orth
+++ b/fc-lang/lez.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ln.orth b/fc-lang/ln.orth
index 58d00fe..c32d66d 100644
--- a/fc-lang/ln.orth
+++ b/fc-lang/ln.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/lo.orth b/fc-lang/lo.orth
index 13d2084..7c2dd03 100644
--- a/fc-lang/lo.orth
+++ b/fc-lang/lo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/lt.orth b/fc-lang/lt.orth
index 09d7024..4bdfe76 100644
--- a/fc-lang/lt.orth
+++ b/fc-lang/lt.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/lv.orth b/fc-lang/lv.orth
index f0cfb1c..fad0425 100644
--- a/fc-lang/lv.orth
+++ b/fc-lang/lv.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mai.orth b/fc-lang/mai.orth
index fcfe462..fd3971c 100644
--- a/fc-lang/mai.orth
+++ b/fc-lang/mai.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mg.orth b/fc-lang/mg.orth
index 02a8fc7..3482c8f 100644
--- a/fc-lang/mg.orth
+++ b/fc-lang/mg.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mh.orth b/fc-lang/mh.orth
index ce909a4..cdd6fb4 100644
--- a/fc-lang/mh.orth
+++ b/fc-lang/mh.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mi.orth b/fc-lang/mi.orth
index 2ef46b6..1bc6832 100644
--- a/fc-lang/mi.orth
+++ b/fc-lang/mi.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mk.orth b/fc-lang/mk.orth
index 8806200..0dac534 100644
--- a/fc-lang/mk.orth
+++ b/fc-lang/mk.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ml.orth b/fc-lang/ml.orth
index 1409604..744eb7c 100644
--- a/fc-lang/ml.orth
+++ b/fc-lang/ml.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mn_cn.orth b/fc-lang/mn_cn.orth
index b8bdc24..c204979 100644
--- a/fc-lang/mn_cn.orth
+++ b/fc-lang/mn_cn.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mo.orth b/fc-lang/mo.orth
index 8e84dd0..5b42633 100644
--- a/fc-lang/mo.orth
+++ b/fc-lang/mo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mr.orth b/fc-lang/mr.orth
index 552b4c3..029d51e 100644
--- a/fc-lang/mr.orth
+++ b/fc-lang/mr.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/mt.orth b/fc-lang/mt.orth
index 3dfa720..51edc4e 100644
--- a/fc-lang/mt.orth
+++ b/fc-lang/mt.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/my.orth b/fc-lang/my.orth
index 907cc61..9046d26 100644
--- a/fc-lang/my.orth
+++ b/fc-lang/my.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/nb.orth b/fc-lang/nb.orth
index 17544ab..ff84176 100644
--- a/fc-lang/nb.orth
+++ b/fc-lang/nb.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/nds.orth b/fc-lang/nds.orth
index 9de5769..3b2db30 100644
--- a/fc-lang/nds.orth
+++ b/fc-lang/nds.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ne.orth b/fc-lang/ne.orth
index 2a3a332..18cf011 100644
--- a/fc-lang/ne.orth
+++ b/fc-lang/ne.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/nl.orth b/fc-lang/nl.orth
index dad3253..6f6315f 100644
--- a/fc-lang/nl.orth
+++ b/fc-lang/nl.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/nn.orth b/fc-lang/nn.orth
index f75ad2d..b21e90f 100644
--- a/fc-lang/nn.orth
+++ b/fc-lang/nn.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/no.orth b/fc-lang/no.orth
index 8e1b96d..305c361 100644
--- a/fc-lang/no.orth
+++ b/fc-lang/no.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ny.orth b/fc-lang/ny.orth
index 56ba8b3..b846647 100644
--- a/fc-lang/ny.orth
+++ b/fc-lang/ny.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/oc.orth b/fc-lang/oc.orth
index 2fe970d..55b237e 100644
--- a/fc-lang/oc.orth
+++ b/fc-lang/oc.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/om.orth b/fc-lang/om.orth
index fb50767..7f28d39 100644
--- a/fc-lang/om.orth
+++ b/fc-lang/om.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/or.orth b/fc-lang/or.orth
index 1f63235..3c54fe3 100644
--- a/fc-lang/or.orth
+++ b/fc-lang/or.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/os.orth b/fc-lang/os.orth
index ab678c9..a5929df 100644
--- a/fc-lang/os.orth
+++ b/fc-lang/os.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/pa_in.orth b/fc-lang/pa_in.orth
index 31abe25..1925291 100644
--- a/fc-lang/pa_in.orth
+++ b/fc-lang/pa_in.orth
@@ -15,7 +15,7 @@
 #
 # RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/pl.orth b/fc-lang/pl.orth
index f4cfe50..e2d494e 100644
--- a/fc-lang/pl.orth
+++ b/fc-lang/pl.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ps_af.orth b/fc-lang/ps_af.orth
index 08db272..5cae9ed 100644
--- a/fc-lang/ps_af.orth
+++ b/fc-lang/ps_af.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ps_pk.orth b/fc-lang/ps_pk.orth
index 31c0164..1ce76d5 100644
--- a/fc-lang/ps_pk.orth
+++ b/fc-lang/ps_pk.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/pt.orth b/fc-lang/pt.orth
index c717290..77e97bf 100644
--- a/fc-lang/pt.orth
+++ b/fc-lang/pt.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/rm.orth b/fc-lang/rm.orth
index 94e9399..4c62810 100644
--- a/fc-lang/rm.orth
+++ b/fc-lang/rm.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ro.orth b/fc-lang/ro.orth
index a3b3d17..8c97d4d 100644
--- a/fc-lang/ro.orth
+++ b/fc-lang/ro.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ru.orth b/fc-lang/ru.orth
index b6f7a2c..b8cb2ee 100644
--- a/fc-lang/ru.orth
+++ b/fc-lang/ru.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sa.orth b/fc-lang/sa.orth
index c200ca0..c7b08e1 100644
--- a/fc-lang/sa.orth
+++ b/fc-lang/sa.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sah.orth b/fc-lang/sah.orth
index 570cd3f..b4f25d9 100644
--- a/fc-lang/sah.orth
+++ b/fc-lang/sah.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sco.orth b/fc-lang/sco.orth
index 3dfee5f..26bf0d6 100644
--- a/fc-lang/sco.orth
+++ b/fc-lang/sco.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/se.orth b/fc-lang/se.orth
index 39c02fa..e08733b 100644
--- a/fc-lang/se.orth
+++ b/fc-lang/se.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sel.orth b/fc-lang/sel.orth
index d17cb35..d76466a 100644
--- a/fc-lang/sel.orth
+++ b/fc-lang/sel.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sk.orth b/fc-lang/sk.orth
index 6470b9f..c7c870d 100644
--- a/fc-lang/sk.orth
+++ b/fc-lang/sk.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sl.orth b/fc-lang/sl.orth
index 5b559eb..f371475 100644
--- a/fc-lang/sl.orth
+++ b/fc-lang/sl.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sm.orth b/fc-lang/sm.orth
index 44ea742..fba7d3d 100644
--- a/fc-lang/sm.orth
+++ b/fc-lang/sm.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sma.orth b/fc-lang/sma.orth
index f092365..f6e65ec 100644
--- a/fc-lang/sma.orth
+++ b/fc-lang/sma.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/smj.orth b/fc-lang/smj.orth
index b48ed59..e708a90 100644
--- a/fc-lang/smj.orth
+++ b/fc-lang/smj.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/smn.orth b/fc-lang/smn.orth
index 3dc2836..4c2e2d6 100644
--- a/fc-lang/smn.orth
+++ b/fc-lang/smn.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sms.orth b/fc-lang/sms.orth
index 3b260ab..04d1de3 100644
--- a/fc-lang/sms.orth
+++ b/fc-lang/sms.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/so.orth b/fc-lang/so.orth
index 15a8280..2436578 100644
--- a/fc-lang/so.orth
+++ b/fc-lang/so.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sq.orth b/fc-lang/sq.orth
index b24afcc..2522302 100644
--- a/fc-lang/sq.orth
+++ b/fc-lang/sq.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sr.orth b/fc-lang/sr.orth
index d360896..5439d63 100644
--- a/fc-lang/sr.orth
+++ b/fc-lang/sr.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sv.orth b/fc-lang/sv.orth
index 2f7db77..ac627c8 100644
--- a/fc-lang/sv.orth
+++ b/fc-lang/sv.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/sw.orth b/fc-lang/sw.orth
index 9cf5144..81975e9 100644
--- a/fc-lang/sw.orth
+++ b/fc-lang/sw.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/syr.orth b/fc-lang/syr.orth
index cd2427c..b1f4a8d 100644
--- a/fc-lang/syr.orth
+++ b/fc-lang/syr.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ta.orth b/fc-lang/ta.orth
index eb68f33..cb6b215 100644
--- a/fc-lang/ta.orth
+++ b/fc-lang/ta.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/te.orth b/fc-lang/te.orth
index 31589f4..cb9989e 100644
--- a/fc-lang/te.orth
+++ b/fc-lang/te.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/tg.orth b/fc-lang/tg.orth
index 3933244..f11e6af 100644
--- a/fc-lang/tg.orth
+++ b/fc-lang/tg.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/th.orth b/fc-lang/th.orth
index f9217e1..47396bf 100644
--- a/fc-lang/th.orth
+++ b/fc-lang/th.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ti_er.orth b/fc-lang/ti_er.orth
index aecd8d0..b1f7dc6 100644
--- a/fc-lang/ti_er.orth
+++ b/fc-lang/ti_er.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ti_et.orth b/fc-lang/ti_et.orth
index 6fdbd58..37ee0f7 100644
--- a/fc-lang/ti_et.orth
+++ b/fc-lang/ti_et.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/tig.orth b/fc-lang/tig.orth
index cb4649b..c5b9c06 100644
--- a/fc-lang/tig.orth
+++ b/fc-lang/tig.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/tn.orth b/fc-lang/tn.orth
index 92fe9ee..342281e 100644
--- a/fc-lang/tn.orth
+++ b/fc-lang/tn.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/to.orth b/fc-lang/to.orth
index 0be140c..3b85a1e 100644
--- a/fc-lang/to.orth
+++ b/fc-lang/to.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/tr.orth b/fc-lang/tr.orth
index 0bedc09..155a69d 100644
--- a/fc-lang/tr.orth
+++ b/fc-lang/tr.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ts.orth b/fc-lang/ts.orth
index 63e296b..ffc1807 100644
--- a/fc-lang/ts.orth
+++ b/fc-lang/ts.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/tt.orth b/fc-lang/tt.orth
index 91b4ca0..a91d7c4 100644
--- a/fc-lang/tt.orth
+++ b/fc-lang/tt.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/tw.orth b/fc-lang/tw.orth
index 5c5c07b..b6e6546 100644
--- a/fc-lang/tw.orth
+++ b/fc-lang/tw.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/tyv.orth b/fc-lang/tyv.orth
index 9f07334..9d5bd74 100644
--- a/fc-lang/tyv.orth
+++ b/fc-lang/tyv.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ug.orth b/fc-lang/ug.orth
index 6e829b3..bf8e674 100644
--- a/fc-lang/ug.orth
+++ b/fc-lang/ug.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/uk.orth b/fc-lang/uk.orth
index ec21f90..593fc5c 100644
--- a/fc-lang/uk.orth
+++ b/fc-lang/uk.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ur.orth b/fc-lang/ur.orth
index 9a26494..767da03 100644
--- a/fc-lang/ur.orth
+++ b/fc-lang/ur.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/ve.orth b/fc-lang/ve.orth
index 122bcff..a7c91db 100644
--- a/fc-lang/ve.orth
+++ b/fc-lang/ve.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/vi.orth b/fc-lang/vi.orth
index 0cc746b..7915cab 100644
--- a/fc-lang/vi.orth
+++ b/fc-lang/vi.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/vo.orth b/fc-lang/vo.orth
index 2fb4250..8b33469 100644
--- a/fc-lang/vo.orth
+++ b/fc-lang/vo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/vot.orth b/fc-lang/vot.orth
index b538e77..006b3e3 100644
--- a/fc-lang/vot.orth
+++ b/fc-lang/vot.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/wa.orth b/fc-lang/wa.orth
index 91fdc63..6b57527 100644
--- a/fc-lang/wa.orth
+++ b/fc-lang/wa.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/wen.orth b/fc-lang/wen.orth
index 205984f..13d1714 100644
--- a/fc-lang/wen.orth
+++ b/fc-lang/wen.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/wo.orth b/fc-lang/wo.orth
index 674321d..3e3fc3d 100644
--- a/fc-lang/wo.orth
+++ b/fc-lang/wo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/xh.orth b/fc-lang/xh.orth
index b969587..a068709 100644
--- a/fc-lang/xh.orth
+++ b/fc-lang/xh.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/yap.orth b/fc-lang/yap.orth
index 4ce34c9..6678b87 100644
--- a/fc-lang/yap.orth
+++ b/fc-lang/yap.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/yi.orth b/fc-lang/yi.orth
index 3f764cf..954b025 100644
--- a/fc-lang/yi.orth
+++ b/fc-lang/yi.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/yo.orth b/fc-lang/yo.orth
index 974808e..7e38d8a 100644
--- a/fc-lang/yo.orth
+++ b/fc-lang/yo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/zh_cn.orth b/fc-lang/zh_cn.orth
index 1713151..6438869 100644
--- a/fc-lang/zh_cn.orth
+++ b/fc-lang/zh_cn.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/zh_hk.orth b/fc-lang/zh_hk.orth
index 74c908b..d280179 100644
--- a/fc-lang/zh_hk.orth
+++ b/fc-lang/zh_hk.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/zh_mo.orth b/fc-lang/zh_mo.orth
index 609a92e..fe70977 100644
--- a/fc-lang/zh_mo.orth
+++ b/fc-lang/zh_mo.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/zh_sg.orth b/fc-lang/zh_sg.orth
index 98885a9..0191915 100644
--- a/fc-lang/zh_sg.orth
+++ b/fc-lang/zh_sg.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/zh_tw.orth b/fc-lang/zh_tw.orth
index 9716a41..a052bfd 100644
--- a/fc-lang/zh_tw.orth
+++ b/fc-lang/zh_tw.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-lang/zu.orth b/fc-lang/zu.orth
index e9588c5..dc236c8 100644
--- a/fc-lang/zu.orth
+++ b/fc-lang/zu.orth
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-list/Makefile.am b/fc-list/Makefile.am
index 55a8e4d..b364271 100644
--- a/fc-list/Makefile.am
+++ b/fc-list/Makefile.am
@@ -13,9 +13,9 @@
 #  representations about the suitability of this software for any purpose.  It
 #  is provided "as is" without express or implied warranty.
 # 
-#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 #  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 #  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 #  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index cbcc3c0..e7813a6 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-match/Makefile.am b/fc-match/Makefile.am
index ae44761..9d725a5 100644
--- a/fc-match/Makefile.am
+++ b/fc-match/Makefile.am
@@ -13,9 +13,9 @@
 #  representations about the suitability of this software for any purpose.  It
 #  is provided "as is" without express or implied warranty.
 # 
-#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 #  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 #  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 #  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-match/fc-match.c b/fc-match/fc-match.c
index 86ff253..8963e7a 100644
--- a/fc-match/fc-match.c
+++ b/fc-match/fc-match.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-query/Makefile.am b/fc-query/Makefile.am
index 6536d70..114fd7f 100644
--- a/fc-query/Makefile.am
+++ b/fc-query/Makefile.am
@@ -13,9 +13,9 @@
 #  representations about the suitability of this software for any purpose.  It
 #  is provided "as is" without express or implied warranty.
 #
-#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 #  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 #  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 #  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c
index 4d707bc..f2693de 100644
--- a/fc-query/fc-query.c
+++ b/fc-query/fc-query.c
@@ -15,9 +15,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-scan/Makefile.am b/fc-scan/Makefile.am
index 918deaa..af43831 100644
--- a/fc-scan/Makefile.am
+++ b/fc-scan/Makefile.am
@@ -13,9 +13,9 @@
 #  representations about the suitability of this software for any purpose.  It
 #  is provided "as is" without express or implied warranty.
 #
-#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 #  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 #  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 #  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fc-scan/fc-scan.c b/fc-scan/fc-scan.c
index 1f023fb..5f9a466 100644
--- a/fc-scan/fc-scan.c
+++ b/fc-scan/fc-scan.c
@@ -15,9 +15,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fontconfig/fcfreetype.h b/fontconfig/fcfreetype.h
index d54ec6f..de9988f 100644
--- a/fontconfig/fcfreetype.h
+++ b/fontconfig/fcfreetype.h
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fontconfig/fcprivate.h b/fontconfig/fcprivate.h
index 1ef03f4..ec964fc 100644
--- a/fontconfig/fcprivate.h
+++ b/fontconfig/fcprivate.h
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 54dedac..a59a7b3 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/Makefile.am b/src/Makefile.am
index 964b295..ab0e6b4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -13,9 +13,9 @@
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcatomic.c b/src/fcatomic.c
index fca2399..89cae61 100644
--- a/src/fcatomic.c
+++ b/src/fcatomic.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcblanks.c b/src/fcblanks.c
index ce1d655..bab3066 100644
--- a/src/fcblanks.c
+++ b/src/fcblanks.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fccache.c b/src/fccache.c
index ba28ddc..63319f6 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -12,9 +12,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fccfg.c b/src/fccfg.c
index d375d8a..da13f8c 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fccharset.c b/src/fccharset.c
index 1885c26..2ec74da 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcdbg.c b/src/fcdbg.c
index 3f952ea..b2ab512 100644
--- a/src/fcdbg.c
+++ b/src/fcdbg.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcdefault.c b/src/fcdefault.c
index 443a4b2..091276b 100644
--- a/src/fcdefault.c
+++ b/src/fcdefault.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcdir.c b/src/fcdir.c
index 4ea2187..b43c3c6 100644
--- a/src/fcdir.c
+++ b/src/fcdir.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcformat.c b/src/fcformat.c
index 417aba6..99c4f85 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index 0e8f883..0bc52d1 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcfs.c b/src/fcfs.c
index 04fb33e..0e97501 100644
--- a/src/fcfs.c
+++ b/src/fcfs.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcinit.c b/src/fcinit.c
index efe95fa..3789d67 100644
--- a/src/fcinit.c
+++ b/src/fcinit.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcint.h b/src/fcint.h
index ec6a01c..157e973 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fclang.c b/src/fclang.c
index d5afd52..90426a0 100644
--- a/src/fclang.c
+++ b/src/fclang.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fclist.c b/src/fclist.c
index e87e06e..6103408 100644
--- a/src/fclist.c
+++ b/src/fclist.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcmatch.c b/src/fcmatch.c
index e06444c..01420a6 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcname.c b/src/fcname.c
index dd05bc3..b4ce944 100644
--- a/src/fcname.c
+++ b/src/fcname.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcpat.c b/src/fcpat.c
index 53eee0f..188f560 100644
--- a/src/fcpat.c
+++ b/src/fcpat.c
@@ -11,9 +11,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcstr.c b/src/fcstr.c
index bebf8ce..95d4543 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
diff --git a/src/fcxml.c b/src/fcxml.c
index 2928ef9..886413b 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -13,9 +13,9 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
commit b9b01b6ed0849f770200fb6ae2a3ac0ca2166877
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Mar 12 13:48:07 2009 -0400

    Call git tools using "git cmd" instead of "git-cmd" syntax
    
    Recent git doesn't install the git-* commands in path.

diff --git a/Makefile.am b/Makefile.am
index ec7a5d9..46dbb41 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -69,7 +69,7 @@ EXTRA_DIST += ChangeLog
 
 ChangeLog:
 	if test -d "$(srcdir)/.git"; then \
-	  (GIT_DIR=$(top_srcdir)/.git ./missing --run git-log --stat) | fmt --split-only > $@.tmp \
+	  (GIT_DIR=$(top_srcdir)/.git ./missing --run git log --stat) | fmt --split-only > $@.tmp \
 	  && mv -f $@.tmp $@ \
 	  || ($(RM) $@.tmp; \
 	      echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
diff --git a/new-version.sh b/new-version.sh
index c771aeb..55e6886 100644
--- a/new-version.sh
+++ b/new-version.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-if git-status -a > /dev/null; then
+if git status -a > /dev/null; then
 	echo 'Uncommited changes in repository' 1>&2
 	exit 1
 fi
@@ -92,7 +92,7 @@ if [ $version != $last ]; then
 	
 	echo $version_note
 	echo
-	git-log --pretty=short $last.. | git-shortlog | cat
+	git log --pretty=short $last.. | git shortlog | cat
 	
 	#
 	# previous changelogs
@@ -104,15 +104,15 @@ if [ $version != $last ]; then
 	mv README.tmp README
 fi
 
-$test git-commit -m"Bump version to $version" \
+$test git commit -m"Bump version to $version" \
 	configure.in \
 	fontconfig/fontconfig.h \
 	README
 
 # tag the tree
-$test git-tag -u 096c4dd3 -m "Version $version" $version
+$test git tag -u 096c4dd3 -m "Version $version" $version
 
 # Make distributed change log
 
-git-log --stat $last.. > ChangeLog-$version
+git log --stat $last.. > ChangeLog-$version
 
commit de69ee14d3ed094cd2bc4df603a03675c28d1b5b
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Mar 12 12:31:57 2009 -0400

    [fcxml.c] Embed a static 64-byte attr buffer in FcPStack
    
    Reduces number of mallocs called from FcConfigSaveAttr in my small test
    from 160 down to 6.

diff --git a/src/fcstr.c b/src/fcstr.c
index c683c80..bebf8ce 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -716,8 +716,8 @@ FcStrBufInit (FcStrBuf *buf, FcChar8 *init, int size)
 	buf->size = size;
     } else
     {
-	buf->buf = buf->static_buf;
-	buf->size = sizeof (buf->static_buf);
+	buf->buf = buf->buf_static;
+	buf->size = sizeof (buf->buf_static);
     }
     buf->allocated = FcFalse;
     buf->failed = FcFalse;
diff --git a/src/fcxml.c b/src/fcxml.c
index a25ffe7..2928ef9 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -414,6 +414,7 @@ typedef struct _FcPStack {
     FcElement		element;
     FcChar8		**attr;
     FcStrBuf		str;
+    FcChar8            *attr_buf_static[16];
 } FcPStack;
     
 typedef enum _FcVStackTag {
@@ -920,7 +921,7 @@ FcVStackElements (FcConfigParse *parse)
 }
 
 static FcChar8 **
-FcConfigSaveAttr (const XML_Char **attr)
+FcConfigSaveAttr (const XML_Char **attr, FcChar8 **buf, int size_bytes)
 {
     int		slen;
     int		i;
@@ -934,13 +935,19 @@ FcConfigSaveAttr (const XML_Char **attr)
 	slen += strlen ((char *) attr[i]) + 1;
     if (i == 0)
 	return 0;
-    new = malloc ((i + 1) * sizeof (FcChar8 *) + slen);
-    if (!new)
+    slen += (i + 1) * sizeof (FcChar8 *);
+    if (slen <= size_bytes)
+	new = buf;
+    else
     {
-	FcConfigMessage (0, FcSevereError, "out of memory");
-	return 0;
+	new = malloc (slen);
+	if (!new)
+	{
+	    FcConfigMessage (0, FcSevereError, "out of memory");
+	    return 0;
+	}
+	FcMemAlloc (FC_MEM_ATTR, 1);    /* size is too expensive */
     }
-    FcMemAlloc (FC_MEM_ATTR, 1);    /* size is too expensive */
     s = (FcChar8 *) (new + (i + 1));
     for (i = 0; attr[i]; i++)
     {
@@ -969,7 +976,7 @@ FcPStackPush (FcConfigParse *parse, FcElement element, const XML_Char **attr)
 
     new->prev = parse->pstack;
     new->element = element;
-    new->attr = FcConfigSaveAttr (attr);
+    new->attr = FcConfigSaveAttr (attr, new->attr_buf_static, sizeof (new->attr_buf_static));
     FcStrBufInit (&new->str, 0, 0);
     parse->pstack = new;
     return FcTrue;
@@ -989,7 +996,7 @@ FcPStackPop (FcConfigParse *parse)
     old = parse->pstack;
     parse->pstack = old->prev;
     FcStrBufDestroy (&old->str);
-    if (old->attr)
+    if (old->attr && old->attr != old->attr_buf_static)
     {
 	FcMemFree (FC_MEM_ATTR, 1); /* size is to expensive */
 	free (old->attr);
commit 39861b7d9c69e71b9a8fb0d0d04279520cb30f04
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Mar 12 12:22:37 2009 -0400

    [fcxml] Embed 64 static FcVStack objects in FcConfigParse
    
    This reduces the number of mallocs called from FcVStackPush from
    over 800 down to zero.

diff --git a/src/fcxml.c b/src/fcxml.c
index e6d16f3..a25ffe7 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -471,6 +471,8 @@ typedef struct _FcConfigParse {
     XML_Parser	    parser;
     int             pstack_static_used;
     FcPStack        pstack_static[8];
+    int             vstack_static_used;
+    FcVStack        vstack_static[64];
 } FcConfigParse;
 
 typedef enum _FcConfigSeverity {
@@ -699,186 +701,130 @@ FcEditCreate (FcConfigParse	*parse,
     return e;
 }
 
-static void
-FcVStackPush (FcConfigParse *parse, FcVStack *vstack)
-{
-    vstack->prev = parse->vstack;
-    vstack->pstack = parse->pstack ? parse->pstack->prev : 0;
-    parse->vstack = vstack;
-}
-
 static FcVStack *
-FcVStackCreate (void)
+FcVStackCreateAndPush (FcConfigParse *parse)
 {
     FcVStack    *new;
 
-    new = malloc (sizeof (FcVStack));
-    if (!new)
-	return 0;
-    FcMemAlloc (FC_MEM_VSTACK, sizeof (FcVStack));
+    if (parse->vstack_static_used < sizeof (parse->vstack_static) / sizeof (parse->vstack_static[0]))
+	new = &parse->vstack_static[parse->vstack_static_used++];
+    else
+    {
+	new = malloc (sizeof (FcVStack));
+	if (!new)
+	    return 0;
+	FcMemAlloc (FC_MEM_VSTACK, sizeof (FcVStack));
+    }
     new->tag = FcVStackNone;
     new->prev = 0;
-    return new;
-}
 
-static void
-FcVStackDestroy (FcVStack *vstack)
-{
-    FcVStack    *prev;
+    new->prev = parse->vstack;
+    new->pstack = parse->pstack ? parse->pstack->prev : 0;
+    parse->vstack = new;
 
-    for (; vstack; vstack = prev)
-    {
-	prev = vstack->prev;
-	switch (vstack->tag) {
-	case FcVStackNone:
-	    break;
-	case FcVStackString:
-	case FcVStackFamily:
-	case FcVStackField:
-	case FcVStackConstant:
-	case FcVStackGlob:
-	    FcStrFree (vstack->u.string);
-	    break;
-	case FcVStackPattern:
-	    FcPatternDestroy (vstack->u.pattern);
-	    break;
-	case FcVStackInteger:
-	case FcVStackDouble:
-	    break;
-	case FcVStackMatrix:
-	    FcMatrixFree (vstack->u.matrix);
-	    break;
-	case FcVStackBool:
-	    break;
-	case FcVStackTest:
-	    FcTestDestroy (vstack->u.test);
-	    break;
-	case FcVStackExpr:
-	case FcVStackPrefer:
-	case FcVStackAccept:
-	case FcVStackDefault:
-	    FcExprDestroy (vstack->u.expr);
-	    break;
-	case FcVStackEdit:
-	    FcEditDestroy (vstack->u.edit);
-	    break;
-	}
-	FcMemFree (FC_MEM_VSTACK, sizeof (FcVStack));
-	free (vstack);
-    }
+    return new;
 }
 
 static FcBool
 FcVStackPushString (FcConfigParse *parse, FcVStackTag tag, FcChar8 *string)
 {
-    FcVStack    *vstack = FcVStackCreate ();
+    FcVStack    *vstack = FcVStackCreateAndPush (parse);
     if (!vstack)
 	return FcFalse;
     vstack->u.string = string;
     vstack->tag = tag;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
 static FcBool
 FcVStackPushInteger (FcConfigParse *parse, int integer)
 {
-    FcVStack    *vstack = FcVStackCreate ();
+    FcVStack    *vstack = FcVStackCreateAndPush (parse);
     if (!vstack)
 	return FcFalse;
     vstack->u.integer = integer;
     vstack->tag = FcVStackInteger;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
 static FcBool
 FcVStackPushDouble (FcConfigParse *parse, double _double)
 {
-    FcVStack    *vstack = FcVStackCreate ();
+    FcVStack    *vstack = FcVStackCreateAndPush (parse);
     if (!vstack)
 	return FcFalse;
     vstack->u._double = _double;
     vstack->tag = FcVStackDouble;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
 static FcBool
 FcVStackPushMatrix (FcConfigParse *parse, FcMatrix *matrix)
 {
-    FcVStack    *vstack = FcVStackCreate ();
-    if (!vstack)
-	return FcFalse;
+    FcVStack    *vstack;
     matrix = FcMatrixCopy (matrix);
     if (!matrix)
-    {
-	FcVStackDestroy (vstack);
 	return FcFalse;
-    }
+    vstack = FcVStackCreateAndPush (parse);
+    if (!vstack)
+	return FcFalse;
     vstack->u.matrix = matrix;
     vstack->tag = FcVStackMatrix;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
 static FcBool
 FcVStackPushBool (FcConfigParse *parse, FcBool bool_)
 {
-    FcVStack    *vstack = FcVStackCreate ();
+    FcVStack    *vstack = FcVStackCreateAndPush (parse);
     if (!vstack)
 	return FcFalse;
     vstack->u.bool_ = bool_;
     vstack->tag = FcVStackBool;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
 static FcBool
 FcVStackPushTest (FcConfigParse *parse, FcTest *test)
 {
-    FcVStack    *vstack = FcVStackCreate ();
+    FcVStack    *vstack = FcVStackCreateAndPush (parse);
     if (!vstack)
 	return FcFalse;
     vstack->u.test = test;
     vstack->tag = FcVStackTest;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
 static FcBool
 FcVStackPushExpr (FcConfigParse *parse, FcVStackTag tag, FcExpr *expr)
 {
-    FcVStack    *vstack = FcVStackCreate ();
+    FcVStack    *vstack = FcVStackCreateAndPush (parse);
     if (!vstack)
 	return FcFalse;
     vstack->u.expr = expr;
     vstack->tag = tag;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
 static FcBool
 FcVStackPushEdit (FcConfigParse *parse, FcEdit *edit)
 {
-    FcVStack    *vstack = FcVStackCreate ();
+    FcVStack    *vstack = FcVStackCreateAndPush (parse);
     if (!vstack)
 	return FcFalse;
     vstack->u.edit = edit;
     vstack->tag = FcVStackEdit;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
 static FcBool
 FcVStackPushPattern (FcConfigParse *parse, FcPattern *pattern)
 {
-    FcVStack    *vstack = FcVStackCreate ();
+    FcVStack    *vstack = FcVStackCreateAndPush (parse);
     if (!vstack)
 	return FcFalse;
     vstack->u.pattern = pattern;
     vstack->tag = FcVStackPattern;
-    FcVStackPush (parse, vstack);
     return FcTrue;
 }
 
@@ -891,28 +837,73 @@ FcVStackFetch (FcConfigParse *parse, int off)
     return vstack;
 }
 
-static void
-FcVStackClear (FcConfigParse *parse)
+static FcVStack *
+FcVStackPeek (FcConfigParse *parse)
 {
-    while (parse->vstack && parse->vstack->pstack == parse->pstack)
-    {
-	FcVStack    *vstack = parse->vstack;
-	parse->vstack = vstack->prev;
-	vstack->prev = 0;
-	FcVStackDestroy (vstack);
-    }
+    FcVStack	*vstack = parse->vstack;
+
+    return vstack && vstack->pstack == parse->pstack ? vstack : 0;
 }
 
-static FcVStack *
-FcVStackPop (FcConfigParse *parse)
+static void
+FcVStackPopAndDestroy (FcConfigParse *parse)
 {
     FcVStack	*vstack = parse->vstack;
     
     if (!vstack || vstack->pstack != parse->pstack)
-	return 0;
+	return;
+
     parse->vstack = vstack->prev;
-    vstack->prev = 0;
-    return vstack;
+
+    switch (vstack->tag) {
+    case FcVStackNone:
+	break;
+    case FcVStackString:
+    case FcVStackFamily:
+    case FcVStackField:
+    case FcVStackConstant:
+    case FcVStackGlob:
+	FcStrFree (vstack->u.string);
+	break;
+    case FcVStackPattern:
+	FcPatternDestroy (vstack->u.pattern);
+	break;
+    case FcVStackInteger:
+    case FcVStackDouble:
+	break;
+    case FcVStackMatrix:
+	FcMatrixFree (vstack->u.matrix);
+	break;
+    case FcVStackBool:
+	break;
+    case FcVStackTest:
+	FcTestDestroy (vstack->u.test);
+	break;
+    case FcVStackExpr:
+    case FcVStackPrefer:
+    case FcVStackAccept:
+    case FcVStackDefault:
+	FcExprDestroy (vstack->u.expr);
+	break;
+    case FcVStackEdit:
+	FcEditDestroy (vstack->u.edit);
+	break;
+    }
+
+    if (vstack == &parse->vstack_static[parse->vstack_static_used - 1])
+	parse->vstack_static_used--;
+    else
+    {
+	FcMemFree (FC_MEM_VSTACK, sizeof (FcVStack));
+	free (vstack);
+    }
+}
+
+static void
+FcVStackClear (FcConfigParse *parse)
+{
+    while (FcVStackPeek (parse))
+	FcVStackPopAndDestroy (parse);
 }
 
 static int
@@ -1020,6 +1011,7 @@ FcConfigInit (FcConfigParse *parse, const FcChar8 *name, FcConfig *config, XML_P
     parse->pstack = 0;
     parse->pstack_static_used = 0;
     parse->vstack = 0;
+    parse->vstack_static_used = 0;
     parse->error = FcFalse;
     parse->name = name;
     parse->config = config;
@@ -1243,7 +1235,7 @@ FcParseMatrix (FcConfigParse *parse)
     enum { m_done, m_xx, m_xy, m_yx, m_yy } matrix_state = m_yy;
     FcMatrix	m;
     
-    while ((vstack = FcVStackPop (parse)))
+    while ((vstack = FcVStackPeek (parse)))
     {
 	double	v;
 	switch (vstack->tag) {
@@ -1265,7 +1257,7 @@ FcParseMatrix (FcConfigParse *parse)
 	case m_yy: m.yy = v; break;
 	default: break;
 	}
-	FcVStackDestroy (vstack);
+	FcVStackPopAndDestroy (parse);
 	matrix_state--;
     }
     if (matrix_state != m_done)
@@ -1335,17 +1327,17 @@ FcParseFamilies (FcConfigParse *parse, FcVStackTag tag)
     FcVStack	*vstack;
     FcExpr	*left, *expr = 0, *new;
 
-    while ((vstack = FcVStackPop (parse)))
+    while ((vstack = FcVStackPeek (parse)))
     {
 	if (vstack->tag != FcVStackFamily)
 	{
 	    FcConfigMessage (parse, FcSevereWarning, "non-family");
-	    FcVStackDestroy (vstack);
+	    FcVStackPopAndDestroy (parse);
 	    continue;
 	}
 	left = vstack->u.expr;
 	vstack->tag = FcVStackNone;
-	FcVStackDestroy (vstack);
+	FcVStackPopAndDestroy (parse);
 	if (expr)
 	{
 	    new = FcExprCreateOp (left, FcOpComma, expr);
@@ -1402,7 +1394,7 @@ FcParseAlias (FcConfigParse *parse)
 
     if (!FcConfigLexBinding (parse, FcConfigGetAttribute (parse, "binding"), &binding))
 	return;
-    while ((vstack = FcVStackPop (parse))) 
+    while ((vstack = FcVStackPeek (parse)))
     {
 	switch (vstack->tag) {
 	case FcVStackFamily:
@@ -1444,7 +1436,7 @@ FcParseAlias (FcConfigParse *parse)
 	    FcConfigMessage (parse, FcSevereWarning, "bad alias");
 	    break;
 	}
-	FcVStackDestroy (vstack);
+	FcVStackPopAndDestroy (parse);
     }
     if (!family)
     {
@@ -1513,7 +1505,7 @@ FcParseAlias (FcConfigParse *parse)
 static FcExpr *
 FcPopExpr (FcConfigParse *parse)
 {
-    FcVStack	*vstack = FcVStackPop (parse);
+    FcVStack	*vstack = FcVStackPeek (parse);
     FcExpr	*expr = 0;
     if (!vstack)
 	return 0;
@@ -1562,7 +1554,7 @@ FcPopExpr (FcConfigParse *parse)
     default:
 	break;
     }
-    FcVStackDestroy (vstack);
+    FcVStackPopAndDestroy (parse);
     return expr;
 }
 
@@ -1865,7 +1857,7 @@ FcParseMatch (FcConfigParse *parse)
 	    return;
 	}
     }
-    while ((vstack = FcVStackPop (parse)))
+    while ((vstack = FcVStackPeek (parse)))
     {
 	switch (vstack->tag) {
 	case FcVStackTest:
@@ -1888,7 +1880,7 @@ FcParseMatch (FcConfigParse *parse)
 	    FcConfigMessage (parse, FcSevereWarning, "invalid match element");
 	    break;
 	}
-	FcVStackDestroy (vstack);
+	FcVStackPopAndDestroy (parse);
     }
     if (!FcConfigAddEdit (parse->config, test, edit, kind))
 	FcConfigMessage (parse, FcSevereError, "out of memory");
@@ -1899,7 +1891,7 @@ FcParseAcceptRejectFont (FcConfigParse *parse, FcElement element)
 {
     FcVStack	*vstack;
 
-    while ((vstack = FcVStackPop (parse)))
+    while ((vstack = FcVStackPeek (parse)))
     {
 	switch (vstack->tag) {
 	case FcVStackGlob:
@@ -1924,7 +1916,7 @@ FcParseAcceptRejectFont (FcConfigParse *parse, FcElement element)
 	    FcConfigMessage (parse, FcSevereWarning, "bad font selector");
 	    break;
 	}
-	FcVStackDestroy (vstack);
+	FcVStackPopAndDestroy (parse);
     }
 }
 
@@ -1932,7 +1924,7 @@ FcParseAcceptRejectFont (FcConfigParse *parse, FcElement element)
 static FcValue
 FcPopValue (FcConfigParse *parse)
 {
-    FcVStack	*vstack = FcVStackPop (parse);
+    FcVStack	*vstack = FcVStackPeek (parse);
     FcValue	value;
     
     value.type = FcTypeVoid;
@@ -1972,7 +1964,7 @@ FcPopValue (FcConfigParse *parse)
 			 vstack->tag);
 	break;
     }
-    FcVStackDestroy (vstack);
+    FcVStackPopAndDestroy (parse);
     
     return value;
 }
@@ -2027,7 +2019,7 @@ FcParsePattern (FcConfigParse *parse)
 	return;
     }
 	
-    while ((vstack = FcVStackPop (parse)))
+    while ((vstack = FcVStackPeek (parse)))
     {
 	switch (vstack->tag) {
 	case FcVStackPattern:
@@ -2042,7 +2034,7 @@ FcParsePattern (FcConfigParse *parse)
 	    FcConfigMessage (parse, FcSevereWarning, "unknown pattern element");
 	    break;
 	}
-	FcVStackDestroy (vstack);
+	FcVStackPopAndDestroy (parse);
     }
 
     FcVStackPushPattern (parse, pattern);
commit 1d7b47da9da574a8adf39b0b5d11aab3d3cf4a37
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Mar 12 11:58:04 2009 -0400

    [fcxml] Embed 8 static FcPStack objects in FcConfigParse
    
    This reduces the number of mallocs called from FcPStackPush from
    over 900 down to zero.

diff --git a/src/fcxml.c b/src/fcxml.c
index ccc9c19..e6d16f3 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -469,6 +469,8 @@ typedef struct _FcConfigParse {
     const FcChar8   *name;
     FcConfig	    *config;
     XML_Parser	    parser;
+    int             pstack_static_used;
+    FcPStack        pstack_static[8];
 } FcConfigParse;
 
 typedef enum _FcConfigSeverity {
@@ -962,11 +964,18 @@ FcConfigSaveAttr (const XML_Char **attr)
 static FcBool
 FcPStackPush (FcConfigParse *parse, FcElement element, const XML_Char **attr)
 {
-    FcPStack   *new = malloc (sizeof (FcPStack));
+    FcPStack   *new;
+
+    if (parse->pstack_static_used < sizeof (parse->pstack_static) / sizeof (parse->pstack_static[0]))
+	new = &parse->pstack_static[parse->pstack_static_used++];
+    else
+    {
+	new = malloc (sizeof (FcPStack));
+	if (!new)
+	    return FcFalse;
+	FcMemAlloc (FC_MEM_PSTACK, sizeof (FcPStack));
+    }
 
-    if (!new)
-	return FcFalse;
-    FcMemAlloc (FC_MEM_PSTACK, sizeof (FcPStack));
     new->prev = parse->pstack;
     new->element = element;
     new->attr = FcConfigSaveAttr (attr);
@@ -994,8 +1003,14 @@ FcPStackPop (FcConfigParse *parse)
 	FcMemFree (FC_MEM_ATTR, 1); /* size is to expensive */
 	free (old->attr);
     }
-    FcMemFree (FC_MEM_PSTACK, sizeof (FcPStack));
-    free (old);
+
+    if (old == &parse->pstack_static[parse->pstack_static_used - 1])
+	parse->pstack_static_used--;
+    else
+    {
+	FcMemFree (FC_MEM_PSTACK, sizeof (FcPStack));
+	free (old);
+    }
     return FcTrue;
 }
 
@@ -1003,6 +1018,7 @@ static FcBool
 FcConfigInit (FcConfigParse *parse, const FcChar8 *name, FcConfig *config, XML_Parser parser)
 {
     parse->pstack = 0;
+    parse->pstack_static_used = 0;
     parse->vstack = 0;
     parse->error = FcFalse;
     parse->name = name;
commit 532d8a1dbc2baebc2603d091952a640b954b6f71
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Mar 12 09:27:20 2009 -0400

    [fcxml] Don't allocate attr array if there are no attributes
    
    Reduces number of mallocs from FcConfigSaveAttr() in my small test
    from over 900 down to 157.

diff --git a/src/fcxml.c b/src/fcxml.c
index f60e248..ccc9c19 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -939,9 +939,14 @@ FcConfigSaveAttr (const XML_Char **attr)
     slen = 0;
     for (i = 0; attr[i]; i++)
 	slen += strlen ((char *) attr[i]) + 1;
+    if (i == 0)
+	return 0;
     new = malloc ((i + 1) * sizeof (FcChar8 *) + slen);
     if (!new)
+    {
+	FcConfigMessage (0, FcSevereError, "out of memory");
 	return 0;
+    }
     FcMemAlloc (FC_MEM_ATTR, 1);    /* size is too expensive */
     s = (FcChar8 *) (new + (i + 1));
     for (i = 0; attr[i]; i++)
@@ -964,19 +969,7 @@ FcPStackPush (FcConfigParse *parse, FcElement element, const XML_Char **attr)
     FcMemAlloc (FC_MEM_PSTACK, sizeof (FcPStack));
     new->prev = parse->pstack;
     new->element = element;
-    if (attr)
-    {
-	new->attr = FcConfigSaveAttr (attr);
-	if (!new->attr)
-	{
-	    FcConfigMessage (parse, FcSevereError, "out of memory");
-	    FcMemFree (FC_MEM_PSTACK, sizeof (FcPStack));
-	    free (new);
-	    return FcFalse;
-	}
-    }
-    else
-	new->attr = 0;
+    new->attr = FcConfigSaveAttr (attr);
     FcStrBufInit (&new->str, 0, 0);
     parse->pstack = new;
     return FcTrue;
commit 3ed70071cdc8a03229c009f5565c23948264a5e0
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Mar 11 14:07:15 2009 -0400

    [fcstr,fcxml] Don't copy FcStrBuf contents when we would free it soon
    
    We can simply NUL-terminate the buffer and use it.  Reduces number of
    mallocs called from FcStrBufDone in my small test from 631 down to 66.

diff --git a/src/fcint.h b/src/fcint.h
index be520e7..ec6a01c 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -1018,6 +1018,9 @@ FcStrBufDestroy (FcStrBuf *buf);
 FcPrivate FcChar8 *
 FcStrBufDone (FcStrBuf *buf);
 
+FcPrivate FcChar8 *
+FcStrBufDoneStatic (FcStrBuf *buf);
+
 FcPrivate FcBool
 FcStrBufChar (FcStrBuf *buf, FcChar8 c);
 
diff --git a/src/fcstr.c b/src/fcstr.c
index 4fbb1a2..c683c80 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -754,6 +754,19 @@ FcStrBufDone (FcStrBuf *buf)
     return ret;
 }
 
+FcChar8 *
+FcStrBufDoneStatic (FcStrBuf *buf)
+{
+    FcChar8 *ret;
+
+    FcStrBufChar (buf, '\0');
+
+    if (buf->failed)
+	return NULL;
+
+    return buf->buf;
+}
+
 FcBool
 FcStrBufChar (FcStrBuf *buf, FcChar8 c)
 {
diff --git a/src/fcxml.c b/src/fcxml.c
index 14da713..f60e248 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -1114,7 +1114,7 @@ FcParseInt (FcConfigParse *parse)
     
     if (!parse->pstack)
 	return;
-    s = FcStrBufDone (&parse->pstack->str);
+    s = FcStrBufDoneStatic (&parse->pstack->str);
     if (!s)
     {
 	FcConfigMessage (parse, FcSevereError, "out of memory");
@@ -1126,7 +1126,7 @@ FcParseInt (FcConfigParse *parse)
 	FcConfigMessage (parse, FcSevereError, "\"%s\": not a valid integer", s);
     else
 	FcVStackPushInteger (parse, l);
-    FcStrFree (s);
+    FcStrBufDestroy (&parse->pstack->str);
 }
 
 /*
@@ -1195,7 +1195,7 @@ FcParseDouble (FcConfigParse *parse)
     
     if (!parse->pstack)
 	return;
-    s = FcStrBufDone (&parse->pstack->str);
+    s = FcStrBufDoneStatic (&parse->pstack->str);
     if (!s)
     {
 	FcConfigMessage (parse, FcSevereError, "out of memory");
@@ -1207,7 +1207,7 @@ FcParseDouble (FcConfigParse *parse)
 	FcConfigMessage (parse, FcSevereError, "\"%s\": not a valid double", s);
     else
 	FcVStackPushDouble (parse, d);
-    FcStrFree (s);
+    FcStrBufDestroy (&parse->pstack->str);
 }
 
 static void
@@ -1283,14 +1283,14 @@ FcParseBool (FcConfigParse *parse)
 
     if (!parse->pstack)
 	return;
-    s = FcStrBufDone (&parse->pstack->str);
+    s = FcStrBufDoneStatic (&parse->pstack->str);
     if (!s)
     {
 	FcConfigMessage (parse, FcSevereError, "out of memory");
 	return;
     }
     FcVStackPushBool (parse, FcConfigLexBool (parse, s));
-    FcStrFree (s);
+    FcStrBufDestroy (&parse->pstack->str);
 }
 
 static FcBool
@@ -1370,14 +1370,14 @@ FcParseFamily (FcConfigParse *parse)
 
     if (!parse->pstack)
 	return;
-    s = FcStrBufDone (&parse->pstack->str);
+    s = FcStrBufDoneStatic (&parse->pstack->str);
     if (!s)
     {
 	FcConfigMessage (parse, FcSevereError, "out of memory");
 	return;
     }
     expr = FcExprCreateString (s);
-    FcStrFree (s);
+    FcStrBufDestroy (&parse->pstack->str);
     if (expr)
 	FcVStackPushExpr (parse, FcVStackFamily, expr);
 }
@@ -1636,7 +1636,7 @@ FcParseInclude (FcConfigParse *parse)
     const FcChar8   *i;
     FcBool	    ignore_missing = FcFalse;
     
-    s = FcStrBufDone (&parse->pstack->str);
+    s = FcStrBufDoneStatic (&parse->pstack->str);
     if (!s)
     {
 	FcConfigMessage (parse, FcSevereError, "out of memory");
@@ -1647,7 +1647,7 @@ FcParseInclude (FcConfigParse *parse)
 	ignore_missing = FcTrue;
     if (!FcConfigParseAndLoad (parse->config, s, !ignore_missing))
 	parse->error = FcTrue;
-    FcStrFree (s);
+    FcStrBufDestroy (&parse->pstack->str);
 }
 
 typedef struct _FcOpMap {
@@ -2053,7 +2053,7 @@ FcEndElement(void *userData, const XML_Char *name)
     case FcElementFontconfig:
 	break;
     case FcElementDir:
-	data = FcStrBufDone (&parse->pstack->str);
+	data = FcStrBufDoneStatic (&parse->pstack->str);
 	if (!data)
 	{
 	    FcConfigMessage (parse, FcSevereError, "out of memory");
@@ -2132,7 +2132,7 @@ FcEndElement(void *userData, const XML_Char *name)
 	    if (!FcConfigAddDir (parse->config, data))
 		FcConfigMessage (parse, FcSevereError, "out of memory; cannot add directory %s", data);
 	}
-	FcStrFree (data);
+	FcStrBufDestroy (&parse->pstack->str);
 	break;
     case FcElementCacheDir:
 	data = FcStrBufDone (&parse->pstack->str);
@@ -2174,14 +2174,14 @@ FcEndElement(void *userData, const XML_Char *name)
 	break;
 	
     case FcElementCache:
-	data = FcStrBufDone (&parse->pstack->str);
+	data = FcStrBufDoneStatic (&parse->pstack->str);
 	if (!data)
 	{
 	    FcConfigMessage (parse, FcSevereError, "out of memory");
 	    break;
 	}
 	/* discard this data; no longer used */
-	FcStrFree (data);
+	FcStrBufDestroy (&parse->pstack->str);
 	break;
     case FcElementInclude:
 	FcParseInclude (parse);
commit 7d35c11b3304659d8be43913c9b125f2b5b38516
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Mar 11 13:56:09 2009 -0400

    [fcstr.c] Embed a static 64-byte buffer in FcStrBuf
    
    Reduces number of mallocs called from FcStrBufChar in my small test
    from 900 down to 6.

diff --git a/src/fcint.h b/src/fcint.h
index b667e54..be520e7 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -313,6 +313,7 @@ typedef struct _FcStrBuf {
     FcBool  failed;
     int	    len;
     int	    size;
+    FcChar8 buf_static[16 * sizeof (void *)];
 } FcStrBuf;
 
 struct _FcCache {
diff --git a/src/fcstr.c b/src/fcstr.c
index 3b84ac0..4fbb1a2 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -710,11 +710,18 @@ FcUtf16Len (const FcChar8   *string,
 void
 FcStrBufInit (FcStrBuf *buf, FcChar8 *init, int size)
 {
-    buf->buf = init;
+    if (init)
+    {
+	buf->buf = init;
+	buf->size = size;
+    } else
+    {
+	buf->buf = buf->static_buf;
+	buf->size = sizeof (buf->static_buf);
+    }
     buf->allocated = FcFalse;
     buf->failed = FcFalse;
     buf->len = 0;
-    buf->size = size;
 }
 
 void
commit 916640ce40b995d1d97244975139ec0c030483e4
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Mar 10 02:15:37 2009 -0400

    Fix Makefile's to not create target file in case of failure

diff --git a/fc-arch/Makefile.am b/fc-arch/Makefile.am
index 7e1dd3e..c226639 100644
--- a/fc-arch/Makefile.am
+++ b/fc-arch/Makefile.am
@@ -43,7 +43,8 @@ EXTRA_DIST=$(TMPL)
 
 $(TARG):fc-arch${EXEEXT} $(STMPL) ${top_srcdir}/src/fcint.h ../config.h
 	rm -f $(TARG)
-	./fc-arch${EXEEXT} $(ARCHITECTURE) < $(STMPL) > $(TARG)
+	./fc-arch${EXEEXT} $(ARCHITECTURE) < $(STMPL) > $(TARG).tmp && \
+	mv $(TARG).tmp $(TARG)
 
 ALIAS_FILES = fcalias.h fcaliastail.h
 
diff --git a/fc-lang/Makefile.am b/fc-lang/Makefile.am
index 60e4f31..f210894 100644
--- a/fc-lang/Makefile.am
+++ b/fc-lang/Makefile.am
@@ -42,7 +42,8 @@ EXTRA_DIST=$(TMPL) $(ORTH)
 
 $(TARG):$(ORTH) fc-lang${EXEEXT} $(STMPL)
 	rm -f $(TARG)
-	./fc-lang${EXEEXT} -d ${srcdir} $(ORTH) < $(STMPL) > $(TARG)
+	./fc-lang${EXEEXT} -d ${srcdir} $(ORTH) < $(STMPL) > $(TARG).tmp && \
+	mv $(TARG).tmp $(TARG)
 
 ALIAS_FILES = fcalias.h fcaliastail.h
 
commit 26ce979e825d661be046b1440563115ddc5ea4ab
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Mar 10 02:14:15 2009 -0400

    Fix Fanti (fat) orth file (#20390)

diff --git a/fc-lang/fat.orth b/fc-lang/fat.orth
index 7e60098..f3cba10 100644
--- a/fc-lang/fat.orth
+++ b/fc-lang/fat.orth
@@ -27,4 +27,4 @@
 # Information on the web indicates Twi and Fanti now have a unified
 # orthography. We include Twi.
 #
-include fat.orth
+include tw.orth
commit 49111c11fb5dca2af06004cc2ae443517f6c9557
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Mon Mar 2 22:48:37 2009 -0800

    Add Sundanese (su) orthography (bug #20440)

diff --git a/fc-lang/su.orth b/fc-lang/su.orth
new file mode 100644
index 0000000..5646fe2
--- /dev/null
+++ b/fc-lang/su.orth
@@ -0,0 +1,33 @@
+#
+# fontconfig/fc-lang/su.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Sundanese (su)
+#
+# Sources:
+# * http://en.wikipedia.org/wiki/Sundanese_language
+# * http://www.omniglot.com/writing/sundanese.php
+#
+0041-005A
+0061-007A
+00C9
+00E9
commit 0eaed16d34687bddc831d1ab3c50406c7c56792d
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Mon Mar 2 20:53:26 2009 -0800

    Add Kanuri (kr) orthography (bug #20438)

diff --git a/fc-lang/kr.orth b/fc-lang/kr.orth
new file mode 100644
index 0000000..301da7f
--- /dev/null
+++ b/fc-lang/kr.orth
@@ -0,0 +1,43 @@
+#
+# fontconfig/fc-lang/kr.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Kanuri (kr)
+#
+# Sources:
+# * http://www.panafril10n.org/wikidoc/pmwiki.php/PanAfrLoc/Kanuri
+# * http://www.sciences.univ-nantes.fr/info/perso/permanents/enguehard/recherche/Afrique/alphabet_kanuri.htm
+# * http://sumale.vjf.cnrs.fr/phono/AfficheTableauOrtho2N.php?choixLangue=kanuri
+# * http://www.rosettaproject.org/archive/kby/ortho-1
+# * http://std.dkuug.dk/jtc1/sc2/wg2/docs/n2906.pdf
+#
+# This is for Kanuri as written in the Latin script. An Arabic script
+# orthography is also used (called Ajami), but I could not find much
+# information about it.
+#
+# Q, V, and X are not used.
+#
+0041-005A
+0061-007A
+018E
+01DD
+024C-024D
commit fe4838588b0b9eb84f66bd4ad70ee12013e0b49a
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Mon Mar 2 02:21:17 2009 -0800

    Add Nauru (na) orthography (bug #20418)

diff --git a/fc-lang/na.orth b/fc-lang/na.orth
new file mode 100644
index 0000000..9a82913
--- /dev/null
+++ b/fc-lang/na.orth
@@ -0,0 +1,40 @@
+#
+# fontconfig/fc-lang/na.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Nauru (na)
+#
+# Sources:
+# * http://en.wikipedia.org/wiki/Nauruan_language
+# * http://www.geonames.de/alphmq.html
+#
+# V and X are not used.
+#
+0041-005A
+0061-007A
+00C3
+00D1
+00D5
+00E3
+00F1
+00F5
+0168-0169
commit 9141b4bbe9a100200b09597f02521cd6e30d0f06
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Mar 1 03:53:11 2009 -0800

    Add Javanese (jv) orthography (bug #20403)

diff --git a/fc-lang/jv.orth b/fc-lang/jv.orth
new file mode 100644
index 0000000..0a8610b
--- /dev/null
+++ b/fc-lang/jv.orth
@@ -0,0 +1,36 @@
+#
+# fontconfig/fc-lang/jv.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Javanese (jv)
+#
+# Sources:
+# http://www.omniglot.com/writing/javanese.htm
+# http://en.wikipedia.org/wiki/Javanese_language
+#
+# The historical Javanese script is not the main script anymore. Latin has
+# replaced it.
+#
+0041-005A
+0061-007A
+00C8-00C9
+00E8-00E9
commit dc6daae9494e30d8c2d9657bab04d8f88751f751
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Mar 1 03:50:46 2009 -0800

    Add Sichuan Yi (ii) orthography (bug #20402)

diff --git a/fc-lang/ii.orth b/fc-lang/ii.orth
new file mode 100644
index 0000000..52fe699
--- /dev/null
+++ b/fc-lang/ii.orth
@@ -0,0 +1,34 @@
+#
+# fontconfig/fc-lang/ii.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Sichuan Yi/Nuosu (ii)
+#
+# Sources:
+# * http://www.babelstone.co.uk/Yi/unicode.html
+# * http://www.babelstone.co.uk/Yi/script.html
+# * http://en.wikipedia.org/wiki/Yi_script
+#
+# As of Unicode 5.1, every encoded syllable (U+A000..A48C) is used. The
+# radicals (U+A490..A4C6) are for linguistic use only.
+#
+A000-A48C
commit 43517045f885c0e463c8a784c65f0b783658fc9b
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Mar 1 03:46:48 2009 -0800

    Add Shona (sn) orthography (bug #20394)

diff --git a/fc-lang/sn.orth b/fc-lang/sn.orth
new file mode 100644
index 0000000..52839ee
--- /dev/null
+++ b/fc-lang/sn.orth
@@ -0,0 +1,35 @@
+#
+# fontconfig/fc-lang/sn.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Shona (sn)
+#
+# Sources:
+# * http://en.wikipedia.org/wiki/Shona_language
+# * http://www.dokpro.uio.no/allex/gsd/fm/7-Mabhii.htm
+# * http://www.omniglot.com/writing/shona.php
+#
+# Q and X are not used. An apostrophe-like modifier exists,
+# that is used after N. More research is needed.
+#
+0041-005A
+0061-007A
commit 42a8008df14c7dcdd85ab7d3ce12b4191b807f27
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Mar 1 03:30:58 2009 -0800

    Add orthographies for Oshiwambo languages (bug #20401)
    
    The languages are Kuanyama/Kwanyama (kj), Ndonga (ng), and Kwambi (kwm).

diff --git a/fc-lang/kj.orth b/fc-lang/kj.orth
new file mode 100644
index 0000000..79edc31
--- /dev/null
+++ b/fc-lang/kj.orth
@@ -0,0 +1,34 @@
+#
+# fontconfig/fc-lang/kj.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Kuanyama/Kwanyama (kj)
+#
+# Sources:
+# * http://www.omniglot.com/writing/oshiwambo.php
+# * http://www.panafril10n.org/wikidoc/pmwiki.php/PanAfrLoc/Oshiwambo
+# * http://wingolog.org/pub/hai-ti/hai-ti.pdf
+#
+# C, Q, and X are not used.
+#
+0041-005A
+0061-007A
diff --git a/fc-lang/kwm.orth b/fc-lang/kwm.orth
new file mode 100644
index 0000000..34cd405
--- /dev/null
+++ b/fc-lang/kwm.orth
@@ -0,0 +1,29 @@
+#
+# fontconfig/fc-lang/kwm.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Kwambi (kwm)
+#
+# Considered a sister language/dialect to Kuanyama (kj) and Ndonga (ng).
+# We'll include Kuanyama.
+#
+include kj.orth
diff --git a/fc-lang/ng.orth b/fc-lang/ng.orth
new file mode 100644
index 0000000..9c62bc6
--- /dev/null
+++ b/fc-lang/ng.orth
@@ -0,0 +1,29 @@
+#
+# fontconfig/fc-lang/ng.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Ndonga (ng)
+#
+# Considered a sister language/dialect to Kuanyama (kj) and Kwambi (kwm).
+# We'll include Kuanyama.
+#
+include kj.orth
commit f0b546372967434418aa6cfe6f2d709795fdff24
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Mar 1 02:33:54 2009 -0800

    Add Zhuang (za) orthography (bug #20399)

diff --git a/fc-lang/za.orth b/fc-lang/za.orth
new file mode 100644
index 0000000..22deabe
--- /dev/null
+++ b/fc-lang/za.orth
@@ -0,0 +1,39 @@
+#
+# fontconfig/fc-lang/za.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Zhuang/Chuang (za)
+#
+# Sources:
+# * http://www.omniglot.com/writing/zhuang.htm
+# * http://www006.upp.so-net.ne.jp/FFS/zhuangyu_ch01.htm
+# * http://en.wikipedia.org/wiki/Zhuang_language
+#
+# There is an older orthography with several uncommon letters that was
+# reformed in 1986. In the 1986 orthography, just basic Latin letters are
+# used.
+#
+# Some letters are not used. Apostrophe is used, but usage is comparable to
+# usage in English.
+#
+0041-005A
+0061-007A
commit 7886b147834decbcab6f556b1c43cc003e2bf893
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Mar 1 02:12:38 2009 -0800

    Add Rundi (rn) orthography (bug #20398)

diff --git a/fc-lang/rn.orth b/fc-lang/rn.orth
new file mode 100644
index 0000000..3caf84b
--- /dev/null
+++ b/fc-lang/rn.orth
@@ -0,0 +1,32 @@
+#
+# fontconfig/fc-lang/rn.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Rundi (rn)
+#
+# Sources:
+# http://www.omniglot.com/writing/kirundi.php
+#
+# Q and X are not used. An apostrophe-like letter also exists.
+#
+0041-005A
+0061-007A
commit 10a85249d9e79ae474c996d3e4f14d0ea8aa50b8
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sat Feb 28 19:43:02 2009 -0800

    Add Navajo (nv) orthography (bug #20395)

diff --git a/fc-lang/nv.orth b/fc-lang/nv.orth
new file mode 100644
index 0000000..a64224b
--- /dev/null
+++ b/fc-lang/nv.orth
@@ -0,0 +1,48 @@
+#
+# fontconfig/fc-lang/nv.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Navajo/Navaho (nv)
+#
+# Sources:
+# * http://en.wikipedia.org/wiki/Navajo_language
+# * http://www.omniglot.com/writing/navajo.htm
+#
+# F, P, Q, R, U, and V are not used.  A vertical glottal stop may be used.
+#
+0041-005A
+0061-007A
+00C1
+00C9
+00CD
+00D3
+00E1
+00E9
+00ED
+00F3
+0104-0105
+0118-0119
+012E-012F
+0141-0142
+01EA-01EB
+02BC # modifier letter apostrophe
+0301 # combining acute accent, to be used with ogonek-ed forms of vowels
commit bf20886085a18227702f67b70dd7ef5f0e919469
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sat Feb 28 18:25:20 2009 -0800

    Add Tahitian (ty) orthography (bug #20391)

diff --git a/fc-lang/ty.orth b/fc-lang/ty.orth
new file mode 100644
index 0000000..fe4f245
--- /dev/null
+++ b/fc-lang/ty.orth
@@ -0,0 +1,41 @@
+#
+# fontconfig/fc-lang/ty.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Tahitian (ty)
+#
+# Sources:
+# * http://www.omniglot.com/writing/tahitian.htm
+# * http://en.wikipedia.org/wiki/Tahitian_language
+#
+# B, C, D, G, J, K, L, Q, S, W, X, Y and Z are not used.
+#
+0041-005A
+0061-007A
+00CF # used in one word only?
+00EF # used in one word only?
+0100-0101
+0112-0113
+012A-012B
+014C-014D
+016A-016B
+02BC # or possibly 02BB
commit 0e05d7e5c730a1740d4c289a66f43f11a527c840
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sat Feb 28 18:01:11 2009 -0800

    Add Sango (sg) orthography (bug #20393)

diff --git a/fc-lang/sg.orth b/fc-lang/sg.orth
new file mode 100644
index 0000000..aa9c0d1
--- /dev/null
+++ b/fc-lang/sg.orth
@@ -0,0 +1,47 @@
+#
+# fontconfig/fc-lang/sg.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Sango (sg)
+#
+# Sources:
+# * http://en.wikipedia.org/wiki/Sango_language
+# * http://www.omniglot.com/writing/sango.php
+#
+# C, Q, and X are not used.
+#
+0041-005A
+0061-007A
+00C2
+00C4
+00CA-00CB
+00CE-00CF
+00D4
+00D6
+00DB-00DC
+00E2
+00E4
+00EA-00EB
+00EE-00EF
+00F4
+00F6
+00FB-00FC
commit bdbdc64dd1e0a1727e2486c3320f9598695e4ab4
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sat Feb 28 17:38:21 2009 -0800

    Added Quechua (qu) orthography (bug #20392)

diff --git a/fc-lang/qu.orth b/fc-lang/qu.orth
new file mode 100644
index 0000000..118b650
--- /dev/null
+++ b/fc-lang/qu.orth
@@ -0,0 +1,36 @@
+#
+# fontconfig/fc-lang/qu.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Quechua (qu)
+#
+# Sources:
+# * http://en.wikipedia.org/wiki/Quechua_alphabet
+# * http://www.omniglot.com/writing/quechua.htm
+#
+# Some basic Latin letters are not used, based on dialect
+#
+0041-005A
+0061-007A
+00D1
+00F1
+02C8
commit 16159d0fae1d8d0d2ba6ac1fc7f845582dec351b
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sat Feb 28 17:05:11 2009 -0800

    Add Akan (ak) and Fanti (fat) orthographies (bug #20390)

diff --git a/fc-lang/ak.orth b/fc-lang/ak.orth
new file mode 100644
index 0000000..de94f07
--- /dev/null
+++ b/fc-lang/ak.orth
@@ -0,0 +1,30 @@
+#
+# fontconfig/fc-lang/ak.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Akan (ak)
+#
+# According to ISO 639-3, Akan is a macro-language of Twi and Fanti.
+# Information on the web indicates Twi and Fanti now have a unified
+# orthography. We include Twi.
+#
+include tw.orth
diff --git a/fc-lang/fat.orth b/fc-lang/fat.orth
new file mode 100644
index 0000000..7e60098
--- /dev/null
+++ b/fc-lang/fat.orth
@@ -0,0 +1,30 @@
+#
+# fontconfig/fc-lang/fat.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Fanti (fat)
+#
+# According to ISO 639-3, Akan is a macro-language of Twi and Fanti.
+# Information on the web indicates Twi and Fanti now have a unified
+# orthography. We include Twi.
+#
+include fat.orth
commit 881a7cd93b3358e371a25bc7ad4818baa3c8968b
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sat Feb 28 16:29:07 2009 -0800

    Add Herero (hz) orthograhy (bug #20387)

diff --git a/fc-lang/hz.orth b/fc-lang/hz.orth
new file mode 100644
index 0000000..91a3285
--- /dev/null
+++ b/fc-lang/hz.orth
@@ -0,0 +1,35 @@
+#
+# fontconfig/fc-lang/hz.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Herero (hz)
+#
+# Source:
+# * http://www.omniglot.com/writing/herero.php
+#
+# C, Q, and X are not used.
+#
+0041-005A
+0061-007A
+032F # used under S and Z
+1E12-1E13
+1E4A-1E4B
commit bc701d2a5b7dc687ba25bafc5fea282adad37ecb
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sat Feb 28 16:03:51 2009 -0800

    Add Ewe (ee) orthography (bug #20386)

diff --git a/fc-lang/ee.orth b/fc-lang/ee.orth
new file mode 100644
index 0000000..7818b51
--- /dev/null
+++ b/fc-lang/ee.orth
@@ -0,0 +1,77 @@
+#
+# fontconfig/fc-lang/ee.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Ewe (ee)
+#
+# Sources:
+# * http://www.uni-koeln.de/phil-fak/afrikanistik/down/publikationen/basic_ewe.pdf
+# * http://en.wikipedia.org/wiki/Ewe_language
+# * http://www.omniglot.com/writing/ewe.htm
+# * http://www.panafril10n.org/wikidoc/pmwiki.php/PanAfrLoc/Gbe
+#
+# We amend the main alphabet with tone marks over each vowel, but some
+# combinations lack precomposed forms in Unicode, so we also add indiviual
+# combining marks.
+#
+# Sources also differ on the notation used for the fourth tone: circumflex
+# vs combining line above (U+030D). At the moment, we are not including any
+# of the two.
+#
+# There is also a nasalization mark for vowels (combining tilde), but there
+# is a need for more research to find which vowels it's used with. The
+# combination of nasalization and tones may also exist, resulting in double
+# accents.
+#
+# C, J, and Q are not used.
+#
+0041-005A
+0061-007A
+00C0-00C1
+00C8-00C9
+00CC-00CD
+00D2-00D3
+00D9-00DA
+00E0-00E1
+00E8-00E9
+00EC-00ED
+00F2-00F3
+00F9-00FA
+011A-011B
+014A-014B
+0186
+0189
+# 018A # according to Unicode characters notes for U+0257
+0190-0192
+0194
+01B2
+01CD-01D4
+0254
+0256
+# 0257 # according to Unicode character notes
+025A
+0263
+028B
+0300-0301 # to be used with open e and open o
+# 0303 # combining tilde
+030C # to be used with open e and open o
+# 030D # combining vertical line above
commit 5a83914b733755ff6c710ff398cb5668fdb74a19
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Fri Feb 27 14:41:07 2009 -0800

    Update Serbo-Croatian (sh) orthography (bug #20368)

diff --git a/fc-lang/sh.orth b/fc-lang/sh.orth
index 9dee41c..80dae3e 100644
--- a/fc-lang/sh.orth
+++ b/fc-lang/sh.orth
@@ -2,24 +2,32 @@
 # fontconfig/fc-lang/sh.orth
 #
 # Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Serbo-Croatian (SH)
+# Serbo-Croatian (sh)
+#
+# This tag is deprecated since 2000 in ISO 639-1 and BCP 47. It is kept here
+# for backward compatibility. Since ISO 639-3 defines this as a
+# macrolanguage consisting of Bosnian, Croatian, and Serbian, we union
+# those three.
+include ba.orth
+include hr.orth
 include sr.orth
commit 505ea8ce37dff9cc35dba6a98de4a31ed1ac5f8c
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Thu Feb 26 23:27:20 2009 -0800

    Extend Crimean Tatar (crh) orthography (bug #19891)

diff --git a/fc-lang/crh.orth b/fc-lang/crh.orth
index a199440..4e4a986 100644
--- a/fc-lang/crh.orth
+++ b/fc-lang/crh.orth
@@ -2,6 +2,7 @@
 # fontconfig/fc-lang/crh.orth
 #
 # Copyright © 2009 Roozbeh Pournader
+# Copyright © 2009 Reşat SABIQ
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
@@ -26,16 +27,16 @@
 # Sources:
 # * http://www.omniglot.com/writing/crimeantatar.php
 # * http://en.wikipedia.org/wiki/Crimean_Tatar_language
-# * http://salpagarov.narod.ru/alfabet/page_1.htm
-#
-# There seems to be a “â” or “ä” too. Needs more research.
+# * http://www.vatankirim.net/yazi.asp?yaziNo=31
 #
 0041-005A
 0061-007A
+00C2
 00C7
 00D1
 00D6
 00DC
+00E2
 00E7
 00F1
 00F6
commit 4c7da799f3b90fb2f1117f9e9c45fa7fc1bd268c
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 18 21:21:01 2009 -0800

    Add Divehi (dv) orthography (bug #20207)

diff --git a/fc-lang/dv.orth b/fc-lang/dv.orth
new file mode 100644
index 0000000..2893584
--- /dev/null
+++ b/fc-lang/dv.orth
@@ -0,0 +1,34 @@
+#
+# fontconfig/fc-lang/dv.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Divehi/Dhivehi/Maldivian (dv)
+#
+# Sources:
+# * The Unicode standard
+# * http://www.omniglot.com/writing/thaana.htm
+# * http://en.wikipedia.org/wiki/T%C4%81na
+#
+0780-0797 # main consonants
+0798-07A5 # consonants used for loanwords
+07A6-07B0 # vowels
+#07B1 # used only in dialectic or historic Divehi
commit 5cac0a4fd681087562c84b3d2534cecff6876048
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 18 17:09:51 2009 -0800

    Remove digits and symbols from some Indic orthographies (bug #20204)
    
    These orthographies were changed: Gujarati (gu), Kannada (kn), Lao (lo),
    Malayalam (ml), Oriya (or), Telugu (te), and Thai (th).

diff --git a/fc-lang/gu.orth b/fc-lang/gu.orth
index 9d8ebe2..9c89579 100644
--- a/fc-lang/gu.orth
+++ b/fc-lang/gu.orth
@@ -21,7 +21,7 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Gujarati (GU)
+# Gujarati (gu)
 #
 # Taken from the Unicode coverage of this language
 #
@@ -38,4 +38,4 @@
 0acb-0acd
 0ad0
 0ae0
-0ae6-0aef
+#0ae6-0aef # Digits
diff --git a/fc-lang/kn.orth b/fc-lang/kn.orth
index 8352bea..b3641ec 100644
--- a/fc-lang/kn.orth
+++ b/fc-lang/kn.orth
@@ -21,7 +21,7 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Kannada (KN)
+# Kannada (kn)
 #
 # Taken from the Unicode coverage of this language
 #
@@ -37,4 +37,4 @@
 0cd5-0cd6
 0cde
 0ce0-0ce1
-0ce6-0cef
+#0ce6-0cef # Digits
diff --git a/fc-lang/lo.orth b/fc-lang/lo.orth
index eb25ef5..13d2084 100644
--- a/fc-lang/lo.orth
+++ b/fc-lang/lo.orth
@@ -21,7 +21,7 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Lao (LO)
+# Lao (lo)
 #
 # Taken from the Unicode coverage of this language
 #
@@ -41,5 +41,5 @@
 0ec0-0ec4
 0ec6
 0ec8-0ecd
-0ed0-0ed9
+#0ed0-0ed9 # Digits
 0edc-0edd
diff --git a/fc-lang/ml.orth b/fc-lang/ml.orth
index 13f44f5..1409604 100644
--- a/fc-lang/ml.orth
+++ b/fc-lang/ml.orth
@@ -21,7 +21,7 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Malayalam (ML)
+# Malayalam (ml)
 #
 # Taken from the Unicode coverage of this language
 #
@@ -35,4 +35,4 @@
 0d4a-0d4d
 0d57
 0d60-0d61
-0d66-0d6f
+#0d66-0d6f # Digits
diff --git a/fc-lang/or.orth b/fc-lang/or.orth
index 163ca47..1f63235 100644
--- a/fc-lang/or.orth
+++ b/fc-lang/or.orth
@@ -21,7 +21,7 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Oriya (OR)
+# Oriya (or)
 #
 # Taken from the Unicode coverage of this language
 #
@@ -38,4 +38,5 @@
 0b56-0b57
 0b5c-0b5d
 0b5f-0b61
-0b66-0b70
+#0b66-0b6f # Digits
+#0b70 # Symbol
diff --git a/fc-lang/te.orth b/fc-lang/te.orth
index fa0f1fc..31589f4 100644
--- a/fc-lang/te.orth
+++ b/fc-lang/te.orth
@@ -21,7 +21,7 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Telugu (GE)
+# Telugu (te)
 #
 # Taken from the Unicode coverage of this language
 #
@@ -36,4 +36,4 @@
 0c4a-0c4d
 0c55-0c56
 0c60-0c61
-0c66-0c6f
+#0c66-0c6f # Digits
diff --git a/fc-lang/th.orth b/fc-lang/th.orth
index 0387549..f9217e1 100644
--- a/fc-lang/th.orth
+++ b/fc-lang/th.orth
@@ -21,6 +21,10 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Thai (TH)
+# Thai (th)
+#
 0e01-0e3a
-0e3f-0e5b
+0e3f-0e4e
+#0e4f # Punctuation
+#0e50-0e59 # Digits
+#0e5a-0e5b # Punctuation
commit ea628d97706e842cb5555ceb5368fd972c941e0c
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 18 16:44:10 2009 -0800

    Tighten Central Khmer (km) orthography (bug #20202)

diff --git a/fc-lang/km.orth b/fc-lang/km.orth
index d5dff12..2bad0cf 100644
--- a/fc-lang/km.orth
+++ b/fc-lang/km.orth
@@ -2,28 +2,38 @@
 # fontconfig/fc-lang/km.orth
 #
 # Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Khmer (KM)
+# Central Khmer (km)
 #
-# Taken from the Unicode coverage of this language
+# Taken from the Unicode coverage of Khmer script and Unicode character
+# notes
 #
-1780-17c5
+1780-179C
+# 179D-179E # Pali/Sanskrit transliteration only
+179F-17A2
+# 17A3-17A4 # Deprecated/Discouraged
+17A5-17A7
+# 17A8 # Discouraged
+17A9-17B3
+# 17B4-17B5 # Discouraged
+17B6-17C5
 
commit 4a5805d9c6b20b4c8f56f3b8201653e88e3706be
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 18 16:03:30 2009 -0800

    Change Kashmiri (ks) orthography to Arabic script (bug #20200)

diff --git a/fc-lang/ks.orth b/fc-lang/ks.orth
index 42bd241..e86ba0d 100644
--- a/fc-lang/ks.orth
+++ b/fc-lang/ks.orth
@@ -1,25 +1,30 @@
 #
 # fontconfig/fc-lang/ks.orth
 #
-# Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Kashmiri (Devanagari script) (KS)
-include hi.orth
+# Kashmiri (ks)
+#
+# Kashmiri is written in Arabic in both India and Pakistan. The problem is,
+# Unicode 5.1 does not contain all the letters required in the orthography,
+# including Wavy Hamza Below and the Alef Maksura With Ring Below. We'll
+# just include Urdu for now.
+include ur.orth
commit cda57219229025db963d3db0f984974187a409f8
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 23:33:07 2009 -0800

    Rename Fulah orthography from 'ful' to 'ff' (bug #20177)

diff --git a/fc-lang/ff.orth b/fc-lang/ff.orth
new file mode 100644
index 0000000..0d11a00
--- /dev/null
+++ b/fc-lang/ff.orth
@@ -0,0 +1,38 @@
+#
+# fontconfig/fc-lang/ff.orth
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Fulah (Fula) (ff)
+#
+# Orthography from http://www.eki.ee/letter
+#
+0041-005a
+0061-007a
+0181
+0253
+018a
+0257
+014a
+014b
+019d
+0272
+01b3-01b4
diff --git a/fc-lang/ful.orth b/fc-lang/ful.orth
deleted file mode 100644
index e116596..0000000
--- a/fc-lang/ful.orth
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# fontconfig/fc-lang/ful.orth
-#
-# Copyright © 2002 Keith Packard
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Fulah (Fula) (ful)
-#
-# Orthography from http://www.eki.ee/letter
-#
-0041-005a
-0061-007a
-0181
-0253
-018a
-0257
-014a
-014b
-019d
-0272
-01b3-01b4
commit a32b79c3a5251916597bb871d2cd7698baeb5e58
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 22:45:17 2009 -0800

    Rename Bambara orthography from 'bam' to 'bm' (bug #20175)

diff --git a/fc-lang/bam.orth b/fc-lang/bam.orth
deleted file mode 100644
index f52f3c3..0000000
--- a/fc-lang/bam.orth
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# fontconfig/fc-lang/bam.orth
-#
-# Copyright © 2002 Keith Packard
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Bambara (BAM)
-#
-# Orthography from http://www.eki.ee/letter
-#
-0041-005a
-0061-007a
-0190
-025b
-014a
-014b
-019d
-0272
-0186
-0254
diff --git a/fc-lang/bm.orth b/fc-lang/bm.orth
new file mode 100644
index 0000000..269816c
--- /dev/null
+++ b/fc-lang/bm.orth
@@ -0,0 +1,37 @@
+#
+# fontconfig/fc-lang/bm.orth
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Bambara (bm)
+#
+# Orthography from http://www.eki.ee/letter
+#
+0041-005a
+0061-007a
+0190
+025b
+014a
+014b
+019d
+0272
+0186
+0254
commit 74a0a28695a24e02bc623d1b2c1c72054ff03d52
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 22:40:50 2009 -0800

    Rename Avaric orthography from 'ava' to 'av' (bug #20174)

diff --git a/fc-lang/av.orth b/fc-lang/av.orth
new file mode 100644
index 0000000..37fd981
--- /dev/null
+++ b/fc-lang/av.orth
@@ -0,0 +1,97 @@
+#
+# fontconfig/fc-lang/av.orth
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Coverage taken from TITUS (Thesaurus Indogermanischer Text und
+# Sprachmaterialien)
+#
+# http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm
+#
+# Avaric (av)
+#
+0401
+0406
+0410
+0411
+0412
+0413
+0414
+0415
+0416
+0417
+0418
+0419
+041a
+041b
+041c
+041d
+041e
+041f
+0420
+0421
+0422
+0423
+0424
+0425
+0426
+0427
+0428
+0429
+042a
+042b
+042c
+042d
+042e
+042f
+0430
+0431
+0432
+0433
+0434
+0435
+0436
+0437
+0438
+0439
+043a
+043b
+043c
+043d
+043e
+043f
+0440
+0441
+0442
+0443
+0444
+0445
+0446
+0447
+0448
+0449
+044a
+044b
+044c
+044d
+044e
+044f
+0451
diff --git a/fc-lang/ava.orth b/fc-lang/ava.orth
deleted file mode 100644
index ac2468f..0000000
--- a/fc-lang/ava.orth
+++ /dev/null
@@ -1,97 +0,0 @@
-#
-# fontconfig/fc-lang/ava.orth
-#
-# Copyright © 2002 Keith Packard
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Coverage taken from TITUS (Thesaurus Indogermanischer Text und
-# Sprachmaterialien)
-#
-# http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm
-#
-# Avaric (AVA)
-#
-0401
-0406
-0410
-0411
-0412
-0413
-0414
-0415
-0416
-0417
-0418
-0419
-041a
-041b
-041c
-041d
-041e
-041f
-0420
-0421
-0422
-0423
-0424
-0425
-0426
-0427
-0428
-0429
-042a
-042b
-042c
-042d
-042e
-042f
-0430
-0431
-0432
-0433
-0434
-0435
-0436
-0437
-0438
-0439
-043a
-043b
-043c
-043d
-043e
-043f
-0440
-0441
-0442
-0443
-0444
-0445
-0446
-0447
-0448
-0449
-044a
-044b
-044c
-044d
-044e
-044f
-0451
commit eba32fa3f3024fb94f75cdedaa8d4c17d786a761
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 22:09:53 2009 -0800

    Update Azerbaijani in Latin (az_az) to present usage (bug #20173)
    
    Removed Cyrillic that is no longer in use. Removed "A WITH DIAERESIS"
    too, since it was only temporarily used in 1991-1992.

diff --git a/fc-lang/az_az.orth b/fc-lang/az_az.orth
index 9439f3e..3c96715 100644
--- a/fc-lang/az_az.orth
+++ b/fc-lang/az_az.orth
@@ -2,20 +2,21 @@
 # fontconfig/fc-lang/az_az.orth
 #
 # Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
@@ -23,18 +24,21 @@
 #
 # Azerbaijani in Azerbaijan (az-AZ)
 #
-# The complete orthography is from http://www.evertype.com
+# The complete orthography was from http://www.evertype.com
 #
-# This has been verified with the latin and cyrillic orthographies found at
+# This had been verified with the latin and cyrillic orthographies found at
 # http://www.eki.ee/letter
 #
+# Cyrillic was removed because the switch to Latin is almost finished.
+# The letter “ä” is also deprecated and replaced with “ə” since 1992.
+#
 0041-005a
 0061-007a
-00C4	# LATIN CAPITAL LETTER A WITH DIAERESIS
+#00C4	# LATIN CAPITAL LETTER A WITH DIAERESIS
 00C7	# LATIN CAPITAL LETTER C WITH CEDILLA
 00D6	# LATIN CAPITAL LETTER O WITH DIAERESIS
 00DC	# LATIN CAPITAL LETTER U WITH DIAERESIS
-00E4	# LATIN SMALL LETTER A WITH DIAERESIS
+#00E4	# LATIN SMALL LETTER A WITH DIAERESIS
 00E7	# LATIN SMALL LETTER C WITH CEDILLA
 00F6	# LATIN SMALL LETTER O WITH DIAERESIS
 00FC	# LATIN SMALL LETTER U WITH DIAERESIS
@@ -42,25 +46,8 @@
 011F	# LATIN SMALL LETTER G WITH BREVE
 0130	# LATIN CAPITAL LETTER I WITH DOT ABOVE
 0131	# LATIN SMALL LETTER DOTLESS I
-015E	# LATIN CAPITAL LETTER S WITH CEDILLA *
-015F	# LATIN SMALL LETTER S WITH CEDILLA *
+015E	# LATIN CAPITAL LETTER S WITH CEDILLA
+015F	# LATIN SMALL LETTER S WITH CEDILLA
 018F	# LATIN CAPITAL LETTER SCHWA
 0259	# LATIN SMALL LETTER SCHWA
 #02BC	# MODIFIER LETTER APOSTROPHE
-0408	# CYRILLIC CAPITAL LETTER JE
-0410-044f	# CYRILLIC CAPITAL AND SMALL
-0458	# CYRILLIC SMALL LETTER JE
-0493	# CYRILLIC SMALL LETTER GHE WITH STROKE
-0492	# CYRILLIC CAPITAL LETTER GHE WITH STROKE
-049C	# CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-049D	# CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-04AE	# CYRILLIC CAPITAL LETTER STRAIGHT U
-04AF	# CYRILLIC SMALL LETTER STRAIGHT U
-04B8	# CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-04B9	# CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04BA	# CYRILLIC CAPITAL LETTER SHHA
-04BB	# CYRILLIC SMALL LETTER SHHA
-04D8	# CYRILLIC CAPITAL LETTER SCHWA
-04D9	# CYRILLIC SMALL LETTER SCHWA
-04E8	# CYRILLIC CAPITAL LETTER BARRED O
-04E9	# CYRILLIC SMALL LETTER BARRED O
commit 1c7bacc214f6e6e507f932230ec52744337cdf47
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 21:37:45 2009 -0800

    Switch Uzbek (uz) orthography to Latin (bug #19851)

diff --git a/fc-lang/uz.orth b/fc-lang/uz.orth
index 2786946..a85670a 100644
--- a/fc-lang/uz.orth
+++ b/fc-lang/uz.orth
@@ -1,98 +1,36 @@
 #
 # fontconfig/fc-lang/uz.orth
 #
-# Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Coverage taken from TITUS (Thesaurus Indogermanischer Text und
-# Sprachmaterialien)
+# Uzbek (uz)
 #
-# http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm
+# Sources:
+# * http://ru.wikipedia.org/wiki/Узбекская_письменность
+# * http://unicode.org/cldr/data/common/main/uz_Latn.xml
+# * http://www.oxuscom.com/New_Uzbek_Latin_Alphabet.pdf
 #
-# Uzbek (UZ)
-#
-0401
-0410
-0411
-0412
-0413
-0414
-0415
-0416
-0417
-0418
-0419
-041a
-041b
-041c
-041d
-041e
-041f
-0420
-0421
-0422
-0423
-0424
-0425
-0426
-0427
-0428
-042a
-042d
-042e
-042f
-0430
-0431
-0432
-0433
-0434
-0435
-0436
-0437
-0438
-0439
-043a
-043b
-043c
-043d
-043e
-043f
-0440
-0441
-0442
-0443
-0444
-0445
-0446
-0447
-0448
-044a
-044d
-044e
-044f
-0451
-0492
-0493
-049a
-049b
-04b2
-04b3
-04f0
-04f1
+0041-005A
+0061-007A
+# There are one to three modifier letters too, that are important for the
+# orthography. But it's impossible to locate them in Unicode with the
+# information available online. Possible candidates:
+# U+02BB, U+02BC, U+02BF, U+02C8.
commit dfd5d0937ce44b4a60b5ee7e2e82650a5e31a456
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 20:02:39 2009 -0800

    Add Crimean Tatar (crh) orthography (bug #19891)

diff --git a/fc-lang/crh.orth b/fc-lang/crh.orth
new file mode 100644
index 0000000..a199440
--- /dev/null
+++ b/fc-lang/crh.orth
@@ -0,0 +1,45 @@
+#
+# fontconfig/fc-lang/crh.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Crimean Tatar/Crimean Turkish (crh)
+#
+# Sources:
+# * http://www.omniglot.com/writing/crimeantatar.php
+# * http://en.wikipedia.org/wiki/Crimean_Tatar_language
+# * http://salpagarov.narod.ru/alfabet/page_1.htm
+#
+# There seems to be a “â” or “ä” too. Needs more research.
+#
+0041-005A
+0061-007A
+00C7
+00D1
+00D6
+00DC
+00E7
+00F1
+00F6
+00FC
+011E-011F
+0130-0131
+015E-015F
commit 502c46c23d3e36dbfff29484486091f140756535
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 19:41:30 2009 -0800

    Add Papiamento (pap_aw, pap_an) orthographies (bug #19891)

diff --git a/fc-lang/pap_an.orth b/fc-lang/pap_an.orth
new file mode 100644
index 0000000..fa4b8a9
--- /dev/null
+++ b/fc-lang/pap_an.orth
@@ -0,0 +1,46 @@
+#
+# fontconfig/fc-lang/pap_an.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Papiamento in Netherlands Antilles (pap-AN)
+#
+# This is based on Curaçao orthography, also called "Papiamentu".
+#
+# Sources:
+# * http://papiamentu.pbwiki.com/Pronunciation
+# * http://en.wikipedia.org/wiki/Papiamento
+# * http://papiamentu.donamaro.nl/
+#
+0041-005A
+0061-007A
+00C1
+00C8-00C9
+00CD
+00D1-00D3
+00D9-00DA
+00DC
+00E1
+00E8-00E9
+00ED
+00F1-00F3
+00F9-00FA
+00FC
diff --git a/fc-lang/pap_aw.orth b/fc-lang/pap_aw.orth
new file mode 100644
index 0000000..b3af694
--- /dev/null
+++ b/fc-lang/pap_aw.orth
@@ -0,0 +1,31 @@
+#
+# fontconfig/fc-lang/pap_aw.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Papiamento in Aruba (pap-AW)
+#
+# Sources: studying online newspapers, random wikipedia pages
+#
+0041-005A
+0061-007A
+00D1
+00F1
commit b4cd4cb6cc2cfd6432bfd4a5b2ec9c63cf653f6d
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 17:30:15 2009 -0800

    Add Blin (byn) orthography (bug #19891)

diff --git a/fc-lang/byn.orth b/fc-lang/byn.orth
new file mode 100644
index 0000000..539feeb
--- /dev/null
+++ b/fc-lang/byn.orth
@@ -0,0 +1,27 @@
+#
+# fontconfig/fc-lang/byn.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Blin/Bilin (byn)
+#
+# Copying Tigrinya of Eritrea, as does glibc
+include ti_er.orth
commit 4d7412a28b834830d0d1749852115846b3554932
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Tue Feb 17 17:03:54 2009 -0800

    Divide Panjabi (pa) to that of Pakistan and India (bug #19890)
    
    Previous Panjabi orthography was in the Gurmukhi script only, while in
    Pakistan, the Arabic script (called Shahmukhi) is used for Panjani.

diff --git a/fc-lang/pa.orth b/fc-lang/pa.orth
deleted file mode 100644
index 2d6f193..0000000
--- a/fc-lang/pa.orth
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# fontconfig/fc-lang/pa.orth
-#
-# Copyright © 2004 Red Hat, Inc.
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Red Hat not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Red Hat makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Punjabi (Gurumukhi script) (HI)
-#
-# From Unicode coverage for Gurumukhi, with modifications based on
-# the 'Lohit Punjabi' font
-#
-# 0A01-0A03	# Various signs
-0A05-0A0A	# Independent vowels
-0A0F-0A10
-0A13-0A14
-0A15-0A28	# Consonants
-0A2A-0A30
-0A32-0A33
-0A35-0A36
-0A38-0A39
-0A3C		# Nukta
-0A3E-0A42	# Dependent vowel signs
-0A47-0A48
-0A4B-0A4C
-0A4D		# Virama
-0A59-0A5C	# Additional consonants
-# 0A5E		# GURMUKHI LETTER FA
-# 0A66-0A6F	# Digits
-0A70-0A74	# Gurmukhi-specific additions
diff --git a/fc-lang/pa_in.orth b/fc-lang/pa_in.orth
new file mode 100644
index 0000000..31abe25
--- /dev/null
+++ b/fc-lang/pa_in.orth
@@ -0,0 +1,46 @@
+#
+# fontconfig/fc-lang/pa_in.orth
+#
+# Copyright © 2004 Red Hat, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Red Hat not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Red Hat makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Panjabi/Punjabi in India (Gurmukhi script) (pa-IN)
+#
+# From Unicode coverage for Gurmukhi, with modifications based on
+# the 'Lohit Punjabi' font
+#
+# 0A01-0A03	# Various signs
+0A05-0A0A	# Independent vowels
+0A0F-0A10
+0A13-0A14
+0A15-0A28	# Consonants
+0A2A-0A30
+0A32-0A33
+0A35-0A36
+0A38-0A39
+0A3C		# Nukta
+0A3E-0A42	# Dependent vowel signs
+0A47-0A48
+0A4B-0A4C
+0A4D		# Virama
+0A59-0A5C	# Additional consonants
+# 0A5E		# GURMUKHI LETTER FA
+# 0A66-0A6F	# Digits
+0A70-0A74	# Gurmukhi-specific additions
diff --git a/fc-lang/pa_pk.orth b/fc-lang/pa_pk.orth
new file mode 100644
index 0000000..deec216
--- /dev/null
+++ b/fc-lang/pa_pk.orth
@@ -0,0 +1,28 @@
+#
+# fontconfig/fc-lang/pa_pk.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Panjabi/Punjabi in Pakistan (pa-PK)
+#
+# The letter list appears identical to Urdu. More research may be needed
+# for rare letters.
+include ur.orth
commit 7a22c9d3471cd4963c529937df823148ab8e1a7d
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Fri Feb 13 20:04:42 2009 -0800

    Add Ottoman Turkish (ota) orthography (bug #20114)

diff --git a/fc-lang/ota.orth b/fc-lang/ota.orth
new file mode 100644
index 0000000..77d75e5
--- /dev/null
+++ b/fc-lang/ota.orth
@@ -0,0 +1,41 @@
+#
+# fontconfig/fc-lang/ota.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Ottoman Turkish (ota)
+#
+# Sources:
+# * Daniels and Bright, “The World’s Writing Systems”, pp. 756–759.
+# * Library of Congress ALA-LC Romanization Tables:
+# http://www.loc.gov/catdir/cpso/romanization/ottoman.pdf
+#
+# General forms, since presentation forms for one letter is not in Unicode.
+#
+0621-0622
+0626-063A
+0641-0648
+067E
+0686
+0698
+06AD
+06AF
+06CC
commit b5675e4c920dbb146ab76d49b4807693749e8143
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Fri Feb 13 17:14:14 2009 -0800

    Remove Euro Sign from all orthographies (bug #19865)

diff --git a/fc-lang/de.orth b/fc-lang/de.orth
index c3c695a..881da90 100644
--- a/fc-lang/de.orth
+++ b/fc-lang/de.orth
@@ -47,4 +47,3 @@
 #201c		# double quotes
 #201e		# double quotes
 #2039-203a	# angle quotes
-20AC            # EURO SIGN
diff --git a/fc-lang/el.orth b/fc-lang/el.orth
index 6510329..11fc8b8 100644
--- a/fc-lang/el.orth
+++ b/fc-lang/el.orth
@@ -30,4 +30,3 @@
 038c
 038e-03a1
 03a3-03ce
-20AC            # EURO SIGN
diff --git a/fc-lang/en.orth b/fc-lang/en.orth
index 6dd6619..57f5d04 100644
--- a/fc-lang/en.orth
+++ b/fc-lang/en.orth
@@ -38,4 +38,3 @@
 00f6
 #2018-2019	# single quotes
 #201c-201d	# double quotes
-20AC            # EURO SIGN
diff --git a/fc-lang/es.orth b/fc-lang/es.orth
index 7fe447a..f9f20a7 100644
--- a/fc-lang/es.orth
+++ b/fc-lang/es.orth
@@ -47,5 +47,4 @@
 00F3		# LATIN SMALL LETTER O WITH ACUTE
 00FA		# LATIN SMALL LETTER U WITH ACUTE
 00FC		# LATIN SMALL LETTER U WITH DIAERESIS
-20AC            # EURO SIGN
 #
diff --git a/fc-lang/fi.orth b/fc-lang/fi.orth
index 94b8f02..b1555d0 100644
--- a/fc-lang/fi.orth
+++ b/fc-lang/fi.orth
@@ -49,4 +49,3 @@
 #2019		# single quote
 #201d		# double quote
 #203a		# angle quote
-20AC            # EURO SIGN
diff --git a/fc-lang/fr.orth b/fc-lang/fr.orth
index c31508b..0dff246 100644
--- a/fc-lang/fr.orth
+++ b/fc-lang/fr.orth
@@ -56,4 +56,3 @@
 00FF #	LATIN SMALL LETTER Y WITH DIAERESIS
 00C6 #	LATIN CAPITAL LETTER AE (ash) *
 00E6 #	LATIN SMALL LETTER AE (ash) *
-20AC # EURO SIGN
diff --git a/fc-lang/it.orth b/fc-lang/it.orth
index e95c170..6e65225 100644
--- a/fc-lang/it.orth
+++ b/fc-lang/it.orth
@@ -49,4 +49,3 @@
 00f2-00f3
 00f9
 00fa
-20AC            # EURO SIGN
diff --git a/fc-lang/nl.orth b/fc-lang/nl.orth
index 7692227..dad3253 100644
--- a/fc-lang/nl.orth
+++ b/fc-lang/nl.orth
@@ -60,5 +60,4 @@
 00fb
 00fc
 #0132-0133	# IJ and ij ligatures
-20AC            # EURO SIGN
 
diff --git a/fc-lang/pt.orth b/fc-lang/pt.orth
index f09df16..c717290 100644
--- a/fc-lang/pt.orth
+++ b/fc-lang/pt.orth
@@ -62,4 +62,3 @@
 00fc
 ##203a	# angle quote
 #
-20AC            # EURO SIGN
commit f6993c880345b45abc0f7e7f0bb14dd0ddae0caa
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Mar 2 13:25:37 2009 +0330

    [fc-lang] Continue parsing after an "include" (#20179)

diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c
index 40f3bfe..8f50133 100644
--- a/fc-lang/fc-lang.c
+++ b/fc-lang/fc-lang.c
@@ -138,18 +138,25 @@ scan (FILE *f, char *file, FcCharSetFreezer *freezer)
     {
 	if (!strncmp (line, "include", 7))
 	{
-	    file = strchr (line, ' ');
-            if (!file)
-                fatal (line, lineno, 
+	    FILE *included_f;
+	    char *included_file;
+	    included_file = strchr (line, ' ');
+            if (!included_file)
+                fatal (file, lineno,
                        "invalid syntax, expected: include filename");
-	    while (isspace(*file))
-		file++;
-	    f = scanopen (file);
-	    if (!f)
-		fatal (file, 0, "can't open");
-	    n = scan (f, file, freezer);
-	    fclose (f);
-	    return n;
+	    while (isspace(*included_file))
+		included_file++;
+	    included_f = scanopen (included_file);
+	    if (!included_f)
+		fatal (included_file, 0, "can't open");
+	    n = scan (included_f, included_file, freezer);
+	    fclose (included_f);
+	    if (!c)
+		c = FcCharSetCreate ();
+	    if (!FcCharSetMerge (c, n, NULL))
+		fatal (file, lineno, "out of memory");
+	    FcCharSetDestroy (n);
+	    continue;
 	}
 	if (strchr (line, '-'))
 	{
commit abe0e056d5a93dee80d8e964569563dc4d131a90
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Fri Feb 13 16:47:11 2009 -0800

    Fix Bengali (bn) and Assamese (as) orthographies (bug #22924)
    
    Removing digits, symbols, and the letters not used in the languages.

diff --git a/fc-lang/as.orth b/fc-lang/as.orth
index b5d7294..7b7cef8 100644
--- a/fc-lang/as.orth
+++ b/fc-lang/as.orth
@@ -1,28 +1,45 @@
 #
+# fontconfig/fc-lang/as.orth
+#
 # Copyright © 2006 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Assamese
-#
-# Behdad Esfahbod says:
-#
-# Seems like copying file for Bengali should be enough.
+# Assamese (as)
 #
-include bn.orth
+# Source: Unicode coverage and notes for Bengali script, Unicode internal
+# documents, Wikipedia articles
+0981-0983
+0985-098c
+098f-0990
+0993-09a8
+09aa-09af
+# 09b0 # Assamese uses U+09F0 instead
+09b2
+09b6-09b9
+09bc
+09be-09c4
+09c7-09c8
+09cb-09cd
+# 09d7 # Only used as a part of U+09CC
+09dc-09dd
+09df
+# 09e0-09e3 # These are for Sanskrit
+09f0-09f1
diff --git a/fc-lang/bn.orth b/fc-lang/bn.orth
index e606a48..151ced2 100644
--- a/fc-lang/bn.orth
+++ b/fc-lang/bn.orth
@@ -2,28 +2,30 @@
 # fontconfig/fc-lang/bn.orth
 #
 # Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Bengali (BN)
+# Bengali (bn)
 #
-# Taken straight from the Unicode coverage for Bengali
+# Source: Unicode coverage and notes for Bengali script, Unicode internal
+# documents
 0981-0983
 0985-098c
 098f-0990
@@ -35,7 +37,8 @@
 09be-09c4
 09c7-09c8
 09cb-09cd
-09d7
+# 09d7 # Only used as a part of U+09CC
 09dc-09dd
-09df-09e3
-09e6-09fa
+09df
+# 09e0-09e3 # These are for Sanskrit
+# 09f0-09f1 # These are for Assamese
commit 40b2904c8984db90cc35eecbec571552c2e4d120
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Fri Feb 13 16:07:14 2009 -0800

    Add Sidamo (sid) and Wolaitta (wal) orthographies (bug #19891)

diff --git a/fc-lang/sid.orth b/fc-lang/sid.orth
new file mode 100644
index 0000000..179080b
--- /dev/null
+++ b/fc-lang/sid.orth
@@ -0,0 +1,27 @@
+#
+# fontconfig/fc-lang/sid.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Sidamo (sid)
+#
+# Copying Tigrinya of Ethiopia, as does glibc
+include ti_et.orth
diff --git a/fc-lang/wal.orth b/fc-lang/wal.orth
new file mode 100644
index 0000000..450e21a
--- /dev/null
+++ b/fc-lang/wal.orth
@@ -0,0 +1,27 @@
+#
+# fontconfig/fc-lang/wal.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Wolaitta/Wolaytta (wal)
+#
+# Copying Tigrinya of Ethiopia, as does glibc
+include ti_et.orth
commit d333969e0c809b3175193c7dda26703287d57fd4
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Fri Feb 13 15:52:23 2009 -0800

    Add Sardinian (sc) orthography (bug #19891)

diff --git a/fc-lang/sc.orth b/fc-lang/sc.orth
new file mode 100644
index 0000000..c30ec1d
--- /dev/null
+++ b/fc-lang/sc.orth
@@ -0,0 +1,42 @@
+#
+# fontconfig/fc-lang/sc.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Sardinian (sc)
+#
+# Sources:
+# * http://www.omniglot.com/writing/sardinian.htm
+# * http://www.limbasarda.it/lingui/ling_alfa.html
+#
+# K, W, X, and Y are not used.
+0041-005A
+0061-007A
+00C0
+00C8
+00CC
+00D2
+00D9
+00E0
+00E8
+00EC
+00F2
+00F9
commit 1ae2e9b479818835ba3ddddb3c613cdb5acf46d4
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Fri Feb 13 13:31:10 2009 -0800

    Add Limburgan (li) orthography (bug #19891)

diff --git a/fc-lang/li.orth b/fc-lang/li.orth
new file mode 100644
index 0000000..1b30538
--- /dev/null
+++ b/fc-lang/li.orth
@@ -0,0 +1,43 @@
+#
+# fontconfig/fc-lang/li.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Limburgan/Limburger/Limburgish (li)
+#
+# Sources:
+# * http://www.limburgsedialecten.nl/pdf/Spellingbook-def.pdf
+# * http://li.wikipedia.org/wiki/Wikipedia:Sjpellingssjpiekpagina
+#
+# There's also an apostrophe-like character that needs more research. U+02BB?
+#
+0041-005A
+0061-007A
+00C4
+00C8
+00CB
+00D3
+00D6
+00E4
+00E8
+00EB
+00F3
+00F6
commit d8a4ee921a3bf0e78dffcea8f27d457cc1bc378e
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 11 01:59:56 2009 -0800

    Ad Ganda (lg) orthography (bug #19891)

diff --git a/fc-lang/lg.orth b/fc-lang/lg.orth
new file mode 100644
index 0000000..423cfe3
--- /dev/null
+++ b/fc-lang/lg.orth
@@ -0,0 +1,33 @@
+#
+# fontconfig/fc-lang/lg.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Ganda (lg)
+#
+# Sources:
+# * http://www.buganda.com/luganda.htm
+# * http://www.omniglot.com/writing/ganda.php
+# * http://sumale.vjf.cnrs.fr/phono/AfficheTableauOrtho2N.php?choixLangue=luganda
+#
+0041-005A
+0061-007A
+014A-014B
commit f4159adaa88d55118fe1c2c62b05600d0a8fbc0a
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 11 01:44:45 2009 -0800

    Add Haitian Creole (ht) orthography (bug #19891)

diff --git a/fc-lang/ht.orth b/fc-lang/ht.orth
new file mode 100644
index 0000000..d453020
--- /dev/null
+++ b/fc-lang/ht.orth
@@ -0,0 +1,35 @@
+#
+# fontconfig/fc-lang/ht.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Haitian/Haitian Creole (ht)
+#
+# Sources:
+# * http://www.omniglot.com/writing/haitiancreole.htm
+# * http://www.lecorde.com/creole/kreyol/index.php?page=Pronunciation
+#
+0041-005A
+0061-007A
+00C8
+00D2
+00E8
+00F2
commit 190b4b5b2bd9a4822660b134639a759a5949c862
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 11 01:11:30 2009 -0800

    Add Aragonese (an) orthography (bug #19891)

diff --git a/fc-lang/an.orth b/fc-lang/an.orth
new file mode 100644
index 0000000..7236886
--- /dev/null
+++ b/fc-lang/an.orth
@@ -0,0 +1,45 @@
+#
+# fontconfig/fc-lang/an.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Aragonese (an)
+#
+# Source:
+# * Consello d’a Fabla Aragonesa, "Normas graficas de l’aragonés", at
+# http://www.charrando.com/normasgraficas.pdf
+# 
+0041-005A
+0061-007A
+00C1
+00C9
+00CD
+00D1
+00D3
+00DA
+00DC
+00E1
+00E9
+00ED
+00F1
+00F3
+00FA
+00FC
commit 3541f01828be06e2a414fa5bcd9543dbb2c9e0fd
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 11 00:34:10 2009 -0800

    Add Kurdish in Turkey (ku_tr) orthography (bug #19891)

diff --git a/fc-lang/ku_tr.orth b/fc-lang/ku_tr.orth
new file mode 100644
index 0000000..1c0b334
--- /dev/null
+++ b/fc-lang/ku_tr.orth
@@ -0,0 +1,42 @@
+#
+# fontconfig/fc-lang/ku_tr.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Kurdish in Turkey (ku-TR)
+#
+# This is based on the commonly used "Hawar" alphabet
+#
+# Sources:
+# * http://www.omniglot.com/writing/kurdish.htm
+# * http://www.kurdishacademy.org/?q=node/145
+#
+0041-005A
+0061-007A
+00C7
+00CA
+00CE
+00DB
+00E7
+00EA
+00EE
+00FB
+015E-015F
commit 3792f0199065cdf808d723eacf3fa86910453f70
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 11 00:22:53 2009 -0800

    Use newly added Cyrillic letters for Kurdish (bug #20049)

diff --git a/fc-lang/ku_am.orth b/fc-lang/ku_am.orth
index d87d025..bfead68 100644
--- a/fc-lang/ku_am.orth
+++ b/fc-lang/ku_am.orth
@@ -88,7 +88,4 @@
 04d9
 04e6
 04e7
-051	# Latin Q
-057	# Latin W
-071	# Latin q
-077	# Latin w
+051a-051d
commit 0d8b15f00f11a5150d842a3bd10e8dd05413fb9c
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Wed Feb 11 00:05:16 2009 -0800

    Add Chhattisgarhi (hne) orthography (bug #19891)

diff --git a/fc-lang/hne.orth b/fc-lang/hne.orth
new file mode 100644
index 0000000..3a0bacc
--- /dev/null
+++ b/fc-lang/hne.orth
@@ -0,0 +1,28 @@
+#
+# fontconfig/fc-lang/hne.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Chhattisgarhi (hne)
+#
+# The government of India considers this a dialect of Hindi:
+# including Hindi until further information is found.
+include hi.orth
commit 04ac14fc14131a66f0c391d8bb3894a01e556a05
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Feb 13 17:18:11 2009 -0800

    [fcformat] Add list of undocumented language features

diff --git a/src/fcformat.c b/src/fcformat.c
index ee7796a..417aba6 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -28,6 +28,41 @@
 #include <stdarg.h>
 
 
+/* XXX Document the language.
+ *
+ * These are mostly the features implemented but not documented:
+ *
+ * width   %[[-]width]{tag}
+ * index   %{tag[ids]}
+ * name=   %{tag=|decorator}
+ * :name=  %{:tag=|decorator}
+ * subexpr %{{expr}|decorator1|decorator2}
+ * delete  %{-charset,lang{expr}|decorator}
+ * filter  %{+family,familylang{expr}|decorator}
+ * cond    %{?tag1,tag2,!tag3{}{}}
+ * decorat %{tag|decorator1|decorator2}
+ * default %{parameter:-word}
+ * array   %{[]family,familylang{expr}|decorator}
+ * langset enumeration using the same syntax as arrays
+ *
+ * filters:
+ * basename        FcStrBasename
+ * dirname         FcStrDirname
+ * downcase        FcStrDowncase
+ * shescape
+ * cescape
+ * xmlescape
+ * delete          delete chars
+ * escape          escape chars
+ * translate       translate chars
+ *
+ * builtins:
+ * unparse
+ * fcmatch
+ * fclist
+ * pkgkit
+ */
+
 /*
  * Some ideas for future syntax extensions:
  *
commit 384542fa915b27285ec22d899c4aa19be8c275f1
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Feb 13 16:41:37 2009 -0800

    [fcformat] Add a 'pkgkit' builtin that prints tags for font packages
    
    For DejaVu Sans Condensed it generates:
    
    font(dejavusans)
    font(dejavusanscondensed)
    font(:lang=aa)
    font(:lang=ab)
    ...
    font(:lang=yo)
    font(:lang=zu)

diff --git a/src/fcformat.c b/src/fcformat.c
index 77c502d..ee7796a 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -38,6 +38,7 @@
 
 #define FCMATCH_FORMAT	"%{file:-<unknown filename>|basename}: \"%{family[0]:-<unknown family>}\" \"%{style[0]:-<unknown style>}\""
 #define FCLIST_FORMAT	"%{?file{%{file}: }}%{=unparse}"
+#define PKGKIT_FORMAT	"%{[]family{font(%{family|downcase|delete( )})\n}}%{[]lang{font(:lang=%{lang|downcase|translate(_,-)})\n}}"
 
 
 static void
@@ -267,6 +268,7 @@ interpret_builtin (FcFormatContext *c,
 	ret = FcPatternFormatToBuf (pat, (const FcChar8 *) format, buf)
     BUILTIN ("fcmatch",  FCMATCH_FORMAT);
     BUILTIN ("fclist",   FCLIST_FORMAT);
+    BUILTIN ("pkgkit",   PKGKIT_FORMAT);
 #undef BUILTIN
     else
 	ret = FcFalse;
commit 9d58d01c5c061c1fcfb3cca3a3a4622f9bbec727
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Feb 13 16:33:58 2009 -0800

    [fcformat] Enumerate langsets like we do arrays of values
    
    If one asks for a format like '%{[]elt{expr}}' and the first value
    for elt is a langset, we enumerate the langset languages in expr.

diff --git a/src/fcformat.c b/src/fcformat.c
index 5aa1977..77c502d 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -31,7 +31,6 @@
 /*
  * Some ideas for future syntax extensions:
  *
- * - langset enumeration using same syntax as array enumeration
  * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
  * - conditional/filtering/deletion on binding (using '(w)'/'(s)'/'(=)' notation)
  */
@@ -540,6 +539,7 @@ interpret_array (FcFormatContext *c,
     const FcChar8 *format_save;
     int            idx;
     FcBool         ret, done;
+    FcStrList      *lang_strs;
 
     if (!expect_char (c, '[') ||
 	!expect_char (c, ']'))
@@ -562,6 +562,22 @@ interpret_array (FcFormatContext *c,
     }
     while (consume_char (c, ','));
 
+    /* If we have one element and it's of type FcLangSet, we want
+     * to enumerate the languages in it. */
+    lang_strs = NULL;
+    if (os->nobject == 1)
+    {
+	FcLangSet *langset;
+	if (FcResultMatch ==
+	    FcPatternGetLangSet (pat, os->objects[0], idx, &langset))
+	{
+	    FcStrSet *ss;
+	    if (!(ss = FcLangSetGetLangs (langset)) ||
+		!(lang_strs = FcStrListCreate (ss)))
+		goto bail0;
+	}
+    }
+
     subpat = FcPatternDuplicate (pat);
     if (!subpat)
 	goto bail0;
@@ -574,22 +590,36 @@ interpret_array (FcFormatContext *c,
 
 	done = FcTrue;
 
-	for (i = 0; i < os->nobject; i++)
+	if (lang_strs)
 	{
-	    FcValue v;
-
-	    /* XXX this can be optimized by accessing valuelist linked lists
-	     * directly and remembering where we were.  Most (all) value lists
-	     * in normal uses are pretty short though (language tags are
-	     * stored as a LangSet, not separate values.). */
-	    FcPatternDel (subpat, os->objects[i]);
-	    if (FcResultMatch ==
-		FcPatternGet (pat, os->objects[i], idx, &v))
+	    FcChar8 *lang;
+
+	    FcPatternDel (subpat, os->objects[0]);
+	    if ((lang = FcStrListNext (lang_strs)))
 	    {
-		FcPatternAdd (subpat, os->objects[i], v, FcFalse);
+		FcPatternAddString (subpat, os->objects[0], lang);
 		done = FcFalse;
 	    }
 	}
+	else
+	{
+	    for (i = 0; i < os->nobject; i++)
+	    {
+		FcValue v;
+
+		/* XXX this can be optimized by accessing valuelist linked lists
+		 * directly and remembering where we were.  Most (all) value lists
+		 * in normal uses are pretty short though (language tags are
+		 * stored as a LangSet, not separate values.). */
+		FcPatternDel (subpat, os->objects[i]);
+		if (FcResultMatch ==
+		    FcPatternGet (pat, os->objects[i], idx, &v))
+		{
+		    FcPatternAdd (subpat, os->objects[i], v, FcFalse);
+		    done = FcFalse;
+		}
+	    }
+	}
 
 	if (!done)
 	{
@@ -602,9 +632,14 @@ interpret_array (FcFormatContext *c,
 	idx++;
     } while (!done);
 
+    if (c->format == format_save)
+	skip_subexpr (c);
+
 bail:
     FcPatternDestroy (subpat);
 bail0:
+    if (lang_strs)
+	FcStrListDone (lang_strs);
     FcObjectSetDestroy (os);
 
     return ret;
commit d62b85af21777582ad720efd9c319fde97b67d82
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Feb 13 16:30:43 2009 -0800

    [fclang] Implement FcLangSetGetLangs() (#18846)

diff --git a/doc/fclangset.fncs b/doc/fclangset.fncs
index 3f69f0d..f9d578e 100644
--- a/doc/fclangset.fncs
+++ b/doc/fclangset.fncs
@@ -124,6 +124,14 @@ has no matching language, this function returns FcLangDifferentLang.
 @@
 
 @RET@		FcStrSet *
+ at FUNC@		FcLangSetGetLangs
+ at TYPE1@		const FcLangSet *		@ARG1@		ls
+ at PURPOSE@	get the list of languages in the langset
+ at DESC@
+Returns a string set of all languages in <parameter>langset</parameter>.
+@@
+
+ at RET@		FcStrSet *
 @FUNC@		FcGetLangs
 @TYPE1@		void
 @PURPOSE@	Get list of languages
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 99e2f04..54dedac 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -597,6 +597,9 @@ FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);
 FcPublic FcChar32
 FcLangSetHash (const FcLangSet *ls);
 
+FcPublic FcStrSet *
+FcLangSetGetLangs (const FcLangSet *ls);
+
 /* fclist.c */
 FcPublic FcObjectSet *
 FcObjectSetCreate (void);
diff --git a/src/fclang.c b/src/fclang.c
index 2553336..d5afd52 100644
--- a/src/fclang.c
+++ b/src/fclang.c
@@ -744,6 +744,38 @@ FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l)
     *l_serialize = *l;
     return l_serialize;
 }
+
+FcStrSet *
+FcLangSetGetLangs (const FcLangSet *ls)
+{
+    FcStrSet *langs;
+    int	      i;
+
+    langs = FcStrSetCreate();
+    if (!langs)
+	return 0;
+
+    for (i = 0; i < NUM_LANG_CHAR_SET; i++)
+	if (FcLangSetBitGet (ls, i))
+	    FcStrSetAdd (langs, fcLangCharSets[i].lang);
+
+    if (ls->extra)
+    {
+	FcStrList	*list = FcStrListCreate (ls->extra);
+	FcChar8		*extra;
+
+	if (list)
+	{
+	    while ((extra = FcStrListNext (list)))
+		FcStrSetAdd (langs, extra);
+
+	    FcStrListDone (list);
+	}
+    }
+
+    return langs;
+}
+
 #define __fclang__
 #include "fcaliastail.h"
 #include "fcftaliastail.h"
commit cdfb76585e7afbe739d00ed83a029ce1f909142f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Feb 12 21:48:22 2009 -0600

    [fcformat] Implement array enumeration
    
    The format '%{[]family,familylang{expr}}' expands expr once for the first
    value of family and familylang, then for the second, etc, until both lists
    are exhausted.

diff --git a/src/fcformat.c b/src/fcformat.c
index f91b6e0..5aa1977 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -31,7 +31,6 @@
 /*
  * Some ideas for future syntax extensions:
  *
- * - array enumeration using '%{[]family,familylang{expr}|decorator}'
  * - langset enumeration using same syntax as array enumeration
  * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
  * - conditional/filtering/deletion on binding (using '(w)'/'(s)'/'(=)' notation)
@@ -476,9 +475,8 @@ interpret_cond (FcFormatContext *c,
 
 	pass = pass &&
 	       (negate ^
-		(FcResultMatch == FcPatternGet (pat,
-						(const char *) c->word,
-						0, &v)));
+		(FcResultMatch ==
+		 FcPatternGet (pat, (const char *) c->word, 0, &v)));
     }
     while (consume_char (c, ','));
 
@@ -533,6 +531,86 @@ interpret_count (FcFormatContext *c,
 }
 
 static FcBool
+interpret_array (FcFormatContext *c,
+		 FcPattern       *pat,
+		 FcStrBuf        *buf)
+{
+    FcObjectSet   *os;
+    FcPattern     *subpat;
+    const FcChar8 *format_save;
+    int            idx;
+    FcBool         ret, done;
+
+    if (!expect_char (c, '[') ||
+	!expect_char (c, ']'))
+	return FcFalse;
+
+    os = FcObjectSetCreate ();
+    if (!os)
+	return FcFalse;
+
+    ret = FcTrue;
+
+    do
+    {
+	if (!read_word (c) ||
+	    !FcObjectSetAdd (os, (const char *) c->word))
+	{
+	    FcObjectSetDestroy (os);
+	    return FcFalse;
+	}
+    }
+    while (consume_char (c, ','));
+
+    subpat = FcPatternDuplicate (pat);
+    if (!subpat)
+	goto bail0;
+
+    format_save = c->format;
+    idx = 0;
+    do
+    {
+	int i;
+
+	done = FcTrue;
+
+	for (i = 0; i < os->nobject; i++)
+	{
+	    FcValue v;
+
+	    /* XXX this can be optimized by accessing valuelist linked lists
+	     * directly and remembering where we were.  Most (all) value lists
+	     * in normal uses are pretty short though (language tags are
+	     * stored as a LangSet, not separate values.). */
+	    FcPatternDel (subpat, os->objects[i]);
+	    if (FcResultMatch ==
+		FcPatternGet (pat, os->objects[i], idx, &v))
+	    {
+		FcPatternAdd (subpat, os->objects[i], v, FcFalse);
+		done = FcFalse;
+	    }
+	}
+
+	if (!done)
+	{
+	    c->format = format_save;
+	    ret = interpret_subexpr (c, subpat, buf);
+	    if (!ret)
+		goto bail;
+	}
+
+	idx++;
+    } while (!done);
+
+bail:
+    FcPatternDestroy (subpat);
+bail0:
+    FcObjectSetDestroy (os);
+
+    return ret;
+}
+
+static FcBool
 interpret_simple (FcFormatContext *c,
 		  FcPattern       *pat,
 		  FcStrBuf        *buf)
@@ -559,7 +637,8 @@ interpret_simple (FcFormatContext *c,
 		     c->format-1 - c->format_orig + 1);
 	    return FcFalse;
 	}
-	expect_char (c, ']');
+	if (!expect_char (c, ']'))
+	    return FcFalse;
     }
 
     if (consume_char (c, '='))
@@ -969,6 +1048,7 @@ interpret_percent (FcFormatContext *c,
     case '-': ret = interpret_delete  (c, pat, buf); break;
     case '?': ret = interpret_cond    (c, pat, buf); break;
     case '#': ret = interpret_count   (c, pat, buf); break;
+    case '[': ret = interpret_array   (c, pat, buf); break;
     default:  ret = interpret_simple  (c, pat, buf); break;
     }
 
commit 0673ef3881d24820e627b9a8cd3a4b3e3889c545
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Feb 11 23:55:11 2009 -0500

    [fcformat] Support 'default value' for simple tags
    
    The format '%{family:-XXX} prints XٓٓٓٓXX if the element family is not defined.
    Also works for things like '%{family[1]:-XXX}'.

diff --git a/src/fcformat.c b/src/fcformat.c
index 898ee32..f91b6e0 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -33,14 +33,12 @@
  *
  * - array enumeration using '%{[]family,familylang{expr}|decorator}'
  * - langset enumeration using same syntax as array enumeration
- * - allow indexing simple tags using '%{elt[idx]}'
  * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
  * - conditional/filtering/deletion on binding (using '(w)'/'(s)'/'(=)' notation)
  */
 
 
-/* fc-match needs '<unknown filename>', etc handling. */
-#define FCMATCH_FORMAT	"%{file|basename}: \"%{family[0]}\" \"%{style[0]}\""
+#define FCMATCH_FORMAT	"%{file:-<unknown filename>|basename}: \"%{family[0]:-<unknown family>}\" \"%{style[0]:-<unknown style>}\""
 #define FCLIST_FORMAT	"%{?file{%{file}: }}%{=unparse}"
 
 
@@ -247,7 +245,7 @@ interpret_builtin (FcFormatContext *c,
     else if (0 == strcmp ((const char *) c->word, name))\
 	do { new_str = func (pat); ret = FcTrue; } while (0)
     BUILTIN ("unparse",  FcNameUnparse);
- /* BUILTIN ("verbose",  FcPatternPrint); */
+ /* BUILTIN ("verbose",  FcPatternPrint); XXX */
 #undef BUILTIN
     else
 	ret = FcFalse;
@@ -543,6 +541,7 @@ interpret_simple (FcFormatContext *c,
     FcBool        add_colon = FcFalse;
     FcBool        add_elt_name = FcFalse;
     int           idx;
+    FcChar8      *else_string;
 
     if (consume_char (c, ':'))
 	add_colon = FcTrue;
@@ -566,6 +565,25 @@ interpret_simple (FcFormatContext *c,
     if (consume_char (c, '='))
 	add_elt_name = FcTrue;
 
+    /* modifiers */
+    else_string = NULL;
+    if (consume_char (c, ':'))
+    {
+	FcChar8 *orig;
+	/* divert the c->word for now */
+	orig = c->word;
+	c->word = c->word + strlen ((const char *) c->word) + 1;
+	/* for now we just support 'default value' */
+	if (!expect_char (c, '-') ||
+	    !read_chars (c, '\0'))
+	{
+	    c->word = orig;
+	    return FcFalse;
+	}
+	else_string = c->word;
+	c->word = orig;
+    }
+
     e = FcPatternObjectFindElt (pat,
 				FcObjectFromName ((const char *) c->word));
     if (e)
@@ -604,6 +622,8 @@ interpret_simple (FcFormatContext *c,
     else
 notfound:
     {
+	if (else_string)
+	    printf ("%s", else_string);
     }
 
     return FcTrue;
@@ -752,7 +772,7 @@ translate_chars (FcFormatContext *c,
     from_len = strlen (from);
     to = from + from_len + 1;
 
-    /* hack: we temporarily diverge c->word */
+    /* hack: we temporarily divert c->word */
     c->word = (FcChar8 *) to;
     if (!read_chars (c, ')'))
     {
commit 9c83a8376f7db19421fb42d311fba81b398c67b0
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Feb 11 23:44:36 2009 -0500

    [fcformat] Support indexing simple tags
    
    The format '%{family[0]}' will only output the first value for element family.

diff --git a/src/fcformat.c b/src/fcformat.c
index 334eee6..898ee32 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -39,9 +39,8 @@
  */
 
 
-/* fc-match needs '<unknown filename>', etc handling, as well as printing
- * printing first value only. */
-#define FCMATCH_FORMAT	"%{file|basename}: \"%{family}\" \"%{style}\""
+/* fc-match needs '<unknown filename>', etc handling. */
+#define FCMATCH_FORMAT	"%{file|basename}: \"%{family[0]}\" \"%{style[0]}\""
 #define FCLIST_FORMAT	"%{?file{%{file}: }}%{=unparse}"
 
 
@@ -543,6 +542,7 @@ interpret_simple (FcFormatContext *c,
     FcPatternElt *e;
     FcBool        add_colon = FcFalse;
     FcBool        add_elt_name = FcFalse;
+    int           idx;
 
     if (consume_char (c, ':'))
 	add_colon = FcTrue;
@@ -550,6 +550,19 @@ interpret_simple (FcFormatContext *c,
     if (!read_word (c))
 	return FcFalse;
 
+    idx = -1;
+    if (consume_char (c, '['))
+    {
+	idx = strtol ((const char *) c->format, (char **) &c->format, 10);
+	if (idx < 0)
+	{
+	    message ("expected non-negative number at %d",
+		     c->format-1 - c->format_orig + 1);
+	    return FcFalse;
+	}
+	expect_char (c, ']');
+    }
+
     if (consume_char (c, '='))
 	add_elt_name = FcTrue;
 
@@ -568,7 +581,29 @@ interpret_simple (FcFormatContext *c,
 	}
 
 	l = FcPatternEltValues(e);
-	FcNameUnparseValueList (buf, l, '\0');
+
+	if (idx != -1)
+	{
+	    while (l && idx > 0)
+	    {
+		l = FcValueListNext(l);
+		idx--;
+	    }
+	    if (l && idx == 0)
+	    {
+		if (!FcNameUnparseValue (buf, &l->value, '\0'))
+		    return FcFalse;
+	    }
+	    else goto notfound;
+        }
+	else
+	{
+	    FcNameUnparseValueList (buf, l, '\0');
+	}
+    }
+    else
+notfound:
+    {
     }
 
     return FcTrue;
diff --git a/src/fcint.h b/src/fcint.h
index 0b41d59..b667e54 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -646,6 +646,11 @@ FcPrivate FcCharSet *
 FcNameParseCharSet (FcChar8 *string);
 
 FcPrivate FcBool
+FcNameUnparseValue (FcStrBuf    *buf,
+                    FcValue     *v0,
+		    FcChar8     *escape);
+
+FcPrivate FcBool
 FcNameUnparseValueList (FcStrBuf	*buf,
 			FcValueListPtr	v,
 			FcChar8		*escape);
diff --git a/src/fcname.c b/src/fcname.c
index 02a2b82..dd05bc3 100644
--- a/src/fcname.c
+++ b/src/fcname.c
@@ -783,7 +783,7 @@ FcNameUnparseString (FcStrBuf	    *buf,
     return FcTrue;
 }
 
-static FcBool
+FcBool
 FcNameUnparseValue (FcStrBuf	*buf,
 		    FcValue	*v0,
 		    FcChar8	*escape)
commit d04a750764d89a7048f49d655fb7e4aabbcd10b3
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 20:56:39 2009 -0500

    [fcformat] Add support for builtin formats
    
    The '%{=unparse}' format expands to the FcNameUnparse() result on the
    pattern.  Need to add '%{=verbose}' for FcPatternPrint() output but
    need to change that function to output to a string first.
    
    Also added the '%{=fclist}' and '%{=fcmatch}' which format like the
    default format of fc-list and fc-match respectively.

diff --git a/src/fcformat.c b/src/fcformat.c
index 4473009..334eee6 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -31,11 +31,20 @@
 /*
  * Some ideas for future syntax extensions:
  *
- * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
+ * - array enumeration using '%{[]family,familylang{expr}|decorator}'
+ * - langset enumeration using same syntax as array enumeration
  * - allow indexing simple tags using '%{elt[idx]}'
+ * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
  * - conditional/filtering/deletion on binding (using '(w)'/'(s)'/'(=)' notation)
  */
 
+
+/* fc-match needs '<unknown filename>', etc handling, as well as printing
+ * printing first value only. */
+#define FCMATCH_FORMAT	"%{file|basename}: \"%{family}\" \"%{style}\""
+#define FCLIST_FORMAT	"%{?file{%{file}: }}%{=unparse}"
+
+
 static void
 message (const char *fmt, ...)
 {
@@ -217,29 +226,61 @@ read_chars (FcFormatContext *c,
 }
 
 static FcBool
+FcPatternFormatToBuf (FcPattern     *pat,
+		      const FcChar8 *format,
+		      FcStrBuf      *buf);
+
+static FcBool
 interpret_builtin (FcFormatContext *c,
 		   FcPattern       *pat,
 		   FcStrBuf        *buf)
 {
-    if (!expect_char (c, '='))
-	return FcFalse;
+    FcChar8       *new_str;
+    FcBool         ret;
 
-    if (!read_word (c))
+    if (!expect_char (c, '=') ||
+	!read_word (c))
 	return FcFalse;
+
+    /* try simple builtins first */
+    if (0) { }
 #define BUILTIN(name, func) \
     else if (0 == strcmp ((const char *) c->word, name))\
-	return func (c, pat, buf)
-#if 0
-    BUILTIN  ("unparse",  FcNameUnparse);
-    BUILTIN  ("verbose",  FcPatternPrint);
-    BUILTIN2 ("fcmatch",  FcStrDirname);
-    BUILTIN2 ("fclist",   FcStrDirname);
-    BUILTIN2 ("pkgkit",   FcStrDirname);
-#endif
-
-    message ("unknown builtin \"%s\"",
-	     c->word);
-    return FcFalse;
+	do { new_str = func (pat); ret = FcTrue; } while (0)
+    BUILTIN ("unparse",  FcNameUnparse);
+ /* BUILTIN ("verbose",  FcPatternPrint); */
+#undef BUILTIN
+    else
+	ret = FcFalse;
+
+    if (ret)
+    {
+	if (new_str)
+	{
+	    FcStrBufString (buf, new_str);
+	    free (new_str);
+	    return FcTrue;
+	}
+	else
+	    return FcFalse;
+    }
+
+    /* now try our custom formats */
+    if (0) { }
+#define BUILTIN(name, format) \
+    else if (0 == strcmp ((const char *) c->word, name))\
+	ret = FcPatternFormatToBuf (pat, (const FcChar8 *) format, buf)
+    BUILTIN ("fcmatch",  FCMATCH_FORMAT);
+    BUILTIN ("fclist",   FCLIST_FORMAT);
+#undef BUILTIN
+    else
+	ret = FcFalse;
+
+    if (!ret)
+	message ("unknown builtin \"%s\"",
+		 c->word);
+
+    return ret;
 }
 
 static FcBool
@@ -535,8 +576,8 @@ interpret_simple (FcFormatContext *c,
 
 static FcBool
 cescape (FcFormatContext *c,
-	 FcStrBuf        *buf,
-	 const FcChar8   *str)
+	 const FcChar8   *str,
+	 FcStrBuf        *buf)
 {
     while(*str)
     {
@@ -554,8 +595,8 @@ cescape (FcFormatContext *c,
 
 static FcBool
 shescape (FcFormatContext *c,
-	  FcStrBuf        *buf,
-	  const FcChar8   *str)
+	  const FcChar8   *str,
+	  FcStrBuf        *buf)
 {
     FcStrBufChar (buf, '\'');
     while(*str)
@@ -572,8 +613,8 @@ shescape (FcFormatContext *c,
 
 static FcBool
 xmlescape (FcFormatContext *c,
-	   FcStrBuf        *buf,
-	   const FcChar8   *str)
+	   const FcChar8   *str,
+	   FcStrBuf        *buf)
 {
     while(*str)
     {
@@ -591,8 +632,8 @@ xmlescape (FcFormatContext *c,
 
 static FcBool
 delete_chars (FcFormatContext *c,
-	      FcStrBuf        *buf,
-	      const FcChar8   *str)
+	      const FcChar8   *str,
+	      FcStrBuf        *buf)
 {
     /* XXX not UTF-8 aware */
 
@@ -624,8 +665,8 @@ delete_chars (FcFormatContext *c,
 
 static FcBool
 escape_chars (FcFormatContext *c,
-	      FcStrBuf        *buf,
-	      const FcChar8   *str)
+	      const FcChar8   *str,
+	      FcStrBuf        *buf)
 {
     /* XXX not UTF-8 aware */
 
@@ -659,8 +700,8 @@ escape_chars (FcFormatContext *c,
 
 static FcBool
 translate_chars (FcFormatContext *c,
-		 FcStrBuf        *buf,
-		 const FcChar8   *str)
+		 const FcChar8   *str,
+		 FcStrBuf        *buf)
 {
     char *from, *to, repeat;
     int from_len, to_len;
@@ -726,19 +767,17 @@ interpret_convert (FcFormatContext *c,
     FcChar8        buf_static[8192];
     FcBool         ret;
 
-    if (!expect_char (c, '|'))
+    if (!expect_char (c, '|') ||
+	!read_word (c))
 	return FcFalse;
 
-    /* nul-terminate the buffer */
+    /* prepare the buffer */
     FcStrBufChar (buf, '\0');
     if (buf->failed)
 	return FcFalse;
     str = buf->buf + start;
     buf->len = start;
 
-    if (!read_word (c))
-	return FcFalse;
-
     /* try simple converters first */
     if (0) { }
 #define CONVERTER(name, func) \
@@ -755,7 +794,6 @@ interpret_convert (FcFormatContext *c,
     {
 	if (new_str)
 	{
-	    /* replace in the buffer */
 	    FcStrBufString (buf, new_str);
 	    free (new_str);
 	    return FcTrue;
@@ -770,7 +808,7 @@ interpret_convert (FcFormatContext *c,
     if (0) { }
 #define CONVERTER(name, func) \
     else if (0 == strcmp ((const char *) c->word, name))\
-	ret = func (c, &new_buf, str)
+	ret = func (c, str, &new_buf)
     CONVERTER ("cescape",   cescape);
     CONVERTER ("shescape",  shescape);
     CONVERTER ("xmlescape", xmlescape);
@@ -910,22 +948,37 @@ interpret_expr (FcFormatContext *c,
     return FcTrue;
 }
 
+static FcBool
+FcPatternFormatToBuf (FcPattern     *pat,
+		      const FcChar8 *format,
+		      FcStrBuf      *buf)
+{
+    FcFormatContext c;
+    FcChar8         word_static[1024];
+    FcBool          ret;
+
+    if (!FcFormatContextInit (&c, format, word_static, sizeof (word_static)))
+	return FcFalse;
+
+    ret = interpret_expr (&c, pat, buf, '\0');
+
+    FcFormatContextDone (&c);
+
+    return ret;
+}
+
 FcChar8 *
-FcPatternFormat (FcPattern *pat, const FcChar8 *format)
+FcPatternFormat (FcPattern *pat,
+		 const FcChar8 *format)
 {
     FcStrBuf        buf;
-    FcChar8         word_static[1024];
     FcChar8         buf_static[8192 - 1024];
-    FcFormatContext c;
     FcBool          ret;
 
     FcStrBufInit (&buf, buf_static, sizeof (buf_static));
-    if (!FcFormatContextInit (&c, format, word_static, sizeof (word_static)))
-	return NULL;
 
-    ret = interpret_expr (&c, pat, &buf, '\0');
+    ret = FcPatternFormatToBuf (pat, format, &buf);
 
-    FcFormatContextDone (&c);
     if (ret)
 	return FcStrBufDone (&buf);
     else
commit 85c7fb67ce9f77574f71de7d9b69867bb974cd48
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 18:57:34 2009 -0500

    [fcformat] Refactor code to avoid malloc

diff --git a/src/fcformat.c b/src/fcformat.c
index 1d67a9d..4473009 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -54,15 +54,28 @@ typedef struct _FcFormatContext
     const FcChar8 *format;
     int            format_len;
     FcChar8       *word;
+    FcBool         word_allocated;
 } FcFormatContext;
 
 static FcBool
 FcFormatContextInit (FcFormatContext *c,
-		     const FcChar8   *format)
+		     const FcChar8   *format,
+		     FcChar8         *scratch,
+		     int              scratch_len)
 {
     c->format_orig = c->format = format;
     c->format_len = strlen ((const char *) format);
-    c->word = malloc (c->format_len + 1);
+
+    if (c->format_len < scratch_len)
+    {
+	c->word = scratch;
+	c->word_allocated = FcFalse;
+    }
+    else
+    {
+	c->word = malloc (c->format_len + 1);
+	c->word_allocated = FcTrue;
+    }
 
     return c->word != NULL;
 }
@@ -70,7 +83,7 @@ FcFormatContextInit (FcFormatContext *c,
 static void
 FcFormatContextDone (FcFormatContext *c)
 {
-    if (c)
+    if (c && c->word_allocated)
     {
 	free (c->word);
     }
@@ -163,7 +176,7 @@ read_word (FcFormatContext *c)
 
     if (p == c->word)
     {
-	message ("expected element name at %d",
+	message ("expected identifier at %d",
 		 c->format - c->format_orig + 1);
 	return FcFalse;
     }
@@ -216,11 +229,13 @@ interpret_builtin (FcFormatContext *c,
 #define BUILTIN(name, func) \
     else if (0 == strcmp ((const char *) c->word, name))\
 	return func (c, pat, buf)
+#if 0
     BUILTIN  ("unparse",  FcNameUnparse);
     BUILTIN  ("verbose",  FcPatternPrint);
     BUILTIN2 ("fcmatch",  FcStrDirname);
     BUILTIN2 ("fclist",   FcStrDirname);
     BUILTIN2 ("pkgkit",   FcStrDirname);
+#endif
 
     message ("unknown builtin \"%s\"",
 	     c->word);
@@ -518,83 +533,74 @@ interpret_simple (FcFormatContext *c,
     return FcTrue;
 }
 
-static FcChar8 *
-cescape (const FcChar8 *str)
+static FcBool
+cescape (FcFormatContext *c,
+	 FcStrBuf        *buf,
+	 const FcChar8   *str)
 {
-    FcStrBuf buf;
-    FcChar8  buf_static[8192];
-
-    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     while(*str)
     {
 	switch (*str)
 	{
 	case '\\':
 	case '"':
-	    FcStrBufChar (&buf, '\\');
+	    FcStrBufChar (buf, '\\');
 	    break;
 	}
-	FcStrBufChar (&buf, *str++);
+	FcStrBufChar (buf, *str++);
     }
-    return FcStrBufDone (&buf);
+    return FcTrue;
 }
 
-static FcChar8 *
-shescape (const FcChar8 *str)
+static FcBool
+shescape (FcFormatContext *c,
+	  FcStrBuf        *buf,
+	  const FcChar8   *str)
 {
-    FcStrBuf buf;
-    FcChar8  buf_static[8192];
-
-    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
-    FcStrBufChar (&buf, '\'');
+    FcStrBufChar (buf, '\'');
     while(*str)
     {
 	if (*str == '\'')
-	    FcStrBufString (&buf, (const FcChar8 *) "'\\''");
+	    FcStrBufString (buf, (const FcChar8 *) "'\\''");
 	else
-	    FcStrBufChar (&buf, *str);
+	    FcStrBufChar (buf, *str);
 	str++;
     }
-    FcStrBufChar (&buf, '\'');
-    return FcStrBufDone (&buf);
+    FcStrBufChar (buf, '\'');
+    return FcTrue;
 }
 
-static FcChar8 *
-xmlescape (const FcChar8 *str)
+static FcBool
+xmlescape (FcFormatContext *c,
+	   FcStrBuf        *buf,
+	   const FcChar8   *str)
 {
-    FcStrBuf buf;
-    FcChar8  buf_static[8192];
-
-    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     while(*str)
     {
 	switch (*str)
 	{
-	case '&': FcStrBufString (&buf, (const FcChar8 *) "&amp;"); break;
-	case '<': FcStrBufString (&buf, (const FcChar8 *) "&lt;");  break;
-	case '>': FcStrBufString (&buf, (const FcChar8 *) "&gt;");  break;
-	default:  FcStrBufChar   (&buf, *str);                      break;
+	case '&': FcStrBufString (buf, (const FcChar8 *) "&amp;"); break;
+	case '<': FcStrBufString (buf, (const FcChar8 *) "&lt;");  break;
+	case '>': FcStrBufString (buf, (const FcChar8 *) "&gt;");  break;
+	default:  FcStrBufChar   (buf, *str);                      break;
 	}
 	str++;
     }
-    return FcStrBufDone (&buf);
+    return FcTrue;
 }
 
-static FcChar8 *
+static FcBool
 delete_chars (FcFormatContext *c,
+	      FcStrBuf        *buf,
 	      const FcChar8   *str)
 {
-    FcStrBuf buf;
-    FcChar8  buf_static[8192];
-
     /* XXX not UTF-8 aware */
 
     if (!expect_char (c, '(') ||
 	!read_chars (c, ')') ||
 	!expect_char (c, ')'))
-	return NULL;
+	return FcFalse;
 
-    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     while(*str)
     {
 	FcChar8 *p;
@@ -602,34 +608,32 @@ delete_chars (FcFormatContext *c,
 	p = (FcChar8 *) strpbrk ((const char *) str, (const char *) c->word);
 	if (p)
 	{
-	    FcStrBufData (&buf, str, p - str);
+	    FcStrBufData (buf, str, p - str);
 	    str = p + 1;
 	}
 	else
 	{
-	    FcStrBufString (&buf, str);
+	    FcStrBufString (buf, str);
 	    break;
 	}
 
     }
-    return FcStrBufDone (&buf);
+
+    return FcTrue;
 }
 
-static FcChar8 *
+static FcBool
 escape_chars (FcFormatContext *c,
+	      FcStrBuf        *buf,
 	      const FcChar8   *str)
 {
-    FcStrBuf buf;
-    FcChar8  buf_static[8192];
-
     /* XXX not UTF-8 aware */
 
     if (!expect_char (c, '(') ||
 	!read_chars (c, ')') ||
 	!expect_char (c, ')'))
-	return NULL;
+	return FcFalse;
 
-    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     while(*str)
     {
 	FcChar8 *p;
@@ -637,27 +641,27 @@ escape_chars (FcFormatContext *c,
 	p = (FcChar8 *) strpbrk ((const char *) str, (const char *) c->word);
 	if (p)
 	{
-	    FcStrBufData (&buf, str, p - str);
-	    FcStrBufChar (&buf, c->word[0]);
-	    FcStrBufChar (&buf, *p);
+	    FcStrBufData (buf, str, p - str);
+	    FcStrBufChar (buf, c->word[0]);
+	    FcStrBufChar (buf, *p);
 	    str = p + 1;
 	}
 	else
 	{
-	    FcStrBufString (&buf, str);
+	    FcStrBufString (buf, str);
 	    break;
 	}
 
     }
-    return FcStrBufDone (&buf);
+
+    return FcTrue;
 }
 
-static FcChar8 *
+static FcBool
 translate_chars (FcFormatContext *c,
+		 FcStrBuf        *buf,
 		 const FcChar8   *str)
 {
-    FcStrBuf buf;
-    FcChar8  buf_static[8192];
     char *from, *to, repeat;
     int from_len, to_len;
 
@@ -666,7 +670,7 @@ translate_chars (FcFormatContext *c,
     if (!expect_char (c, '(') ||
 	!read_chars (c, ',') ||
 	!expect_char (c, ','))
-	return NULL;
+	return FcFalse;
 
     from = (char *) c->word;
     from_len = strlen (from);
@@ -687,7 +691,6 @@ translate_chars (FcFormatContext *c,
     if (!expect_char (c, ')'))
 	return FcFalse;
 
-    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     while(*str)
     {
 	FcChar8 *p;
@@ -696,46 +699,100 @@ translate_chars (FcFormatContext *c,
 	if (p)
 	{
 	    int i;
-	    FcStrBufData (&buf, str, p - str);
+	    FcStrBufData (buf, str, p - str);
 	    i = strchr (from, *p) - from;
-	    FcStrBufChar (&buf, i < to_len ? to[i] : repeat);
+	    FcStrBufChar (buf, i < to_len ? to[i] : repeat);
 	    str = p + 1;
 	}
 	else
 	{
-	    FcStrBufString (&buf, str);
+	    FcStrBufString (buf, str);
 	    break;
 	}
 
     }
-    return FcStrBufDone (&buf);
+
+    return FcTrue;
 }
 
-static FcChar8 *
-convert (FcFormatContext *c,
-	 const FcChar8   *str)
+static FcBool
+interpret_convert (FcFormatContext *c,
+		   FcStrBuf        *buf,
+		   int              start)
 {
+    const FcChar8 *str;
+    FcChar8       *new_str;
+    FcStrBuf       new_buf;
+    FcChar8        buf_static[8192];
+    FcBool         ret;
+
+    if (!expect_char (c, '|'))
+	return FcFalse;
+
+    /* nul-terminate the buffer */
+    FcStrBufChar (buf, '\0');
+    if (buf->failed)
+	return FcFalse;
+    str = buf->buf + start;
+    buf->len = start;
+
     if (!read_word (c))
-	return NULL;
+	return FcFalse;
+
+    /* try simple converters first */
+    if (0) { }
 #define CONVERTER(name, func) \
     else if (0 == strcmp ((const char *) c->word, name))\
-	return func (str)
-#define CONVERTER2(name, func) \
-    else if (0 == strcmp ((const char *) c->word, name))\
-	return func (c, str)
+	do { new_str = func (str); ret = FcTrue; } while (0)
     CONVERTER  ("downcase",  FcStrDowncase);
     CONVERTER  ("basename",  FcStrBasename);
     CONVERTER  ("dirname",   FcStrDirname);
-    CONVERTER  ("cescape",   cescape);
-    CONVERTER  ("shescape",  shescape);
-    CONVERTER  ("xmlescape", xmlescape);
-    CONVERTER2 ("delete",    delete_chars);
-    CONVERTER2 ("escape",    escape_chars);
-    CONVERTER2 ("translate", translate_chars);
-
-    message ("unknown converter \"%s\"",
-	     c->word);
-    return NULL;
+#undef CONVERTER
+    else
+	ret = FcFalse;
+
+    if (ret)
+    {
+	if (new_str)
+	{
+	    /* replace in the buffer */
+	    FcStrBufString (buf, new_str);
+	    free (new_str);
+	    return FcTrue;
+	}
+	else
+	    return FcFalse;
+    }
+
+    FcStrBufInit (&new_buf, buf_static, sizeof (buf_static));
+
+    /* now try our custom converters */
+    if (0) { }
+#define CONVERTER(name, func) \
+    else if (0 == strcmp ((const char *) c->word, name))\
+	ret = func (c, &new_buf, str)
+    CONVERTER ("cescape",   cescape);
+    CONVERTER ("shescape",  shescape);
+    CONVERTER ("xmlescape", xmlescape);
+    CONVERTER ("delete",    delete_chars);
+    CONVERTER ("escape",    escape_chars);
+    CONVERTER ("translate", translate_chars);
+#undef CONVERTER
+    else
+	ret = FcFalse;
+
+    if (ret)
+    {
+	FcStrBufChar (&new_buf, '\0');
+	FcStrBufString (buf, new_buf.buf);
+    }
+    else
+	message ("unknown converter \"%s\"",
+		 c->word);
+
+    FcStrBufDestroy (&new_buf);
+
+    return ret;
 }
 
 static FcBool
@@ -743,26 +800,10 @@ maybe_interpret_converts (FcFormatContext *c,
 			   FcStrBuf        *buf,
 			   int              start)
 {
-    while (consume_char (c, '|'))
-    {
-	const FcChar8 *str;
-	FcChar8       *new_str;
-
-	/* nul-terminate the buffer */
-	FcStrBufChar (buf, '\0');
-	if (buf->failed)
-	    return FcFalse;
-	str = buf->buf + start;
-
-	if (!(new_str = convert (c, str)))
+    while (*c->format == '|')
+	if (!interpret_convert (c, buf, start))
 	    return FcFalse;
 
-	/* replace in the buffer */
-	buf->len = start;
-	FcStrBufString (buf, new_str);
-	free (new_str);
-    }
-
     return FcTrue;
 }
 
@@ -873,12 +914,13 @@ FcChar8 *
 FcPatternFormat (FcPattern *pat, const FcChar8 *format)
 {
     FcStrBuf        buf;
-    FcChar8         buf_static[8192];
+    FcChar8         word_static[1024];
+    FcChar8         buf_static[8192 - 1024];
     FcFormatContext c;
     FcBool          ret;
 
     FcStrBufInit (&buf, buf_static, sizeof (buf_static));
-    if (!FcFormatContextInit (&c, format))
+    if (!FcFormatContextInit (&c, format, word_static, sizeof (word_static)))
 	return NULL;
 
     ret = interpret_expr (&c, pat, &buf, '\0');
commit d4f7a4c6af5420afbbcf2217f9fe396623671294
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 06:22:55 2009 -0500

    [fcformat] Start adding builtins

diff --git a/src/fcformat.c b/src/fcformat.c
index 971ee08..1d67a9d 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -33,7 +33,7 @@
  *
  * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
  * - allow indexing simple tags using '%{elt[idx]}'
- * - conditional/filtering/deletion on binding (using '(w)'/'(s)' notation)
+ * - conditional/filtering/deletion on binding (using '(w)'/'(s)'/'(=)' notation)
  */
 
 static void
@@ -204,6 +204,30 @@ read_chars (FcFormatContext *c,
 }
 
 static FcBool
+interpret_builtin (FcFormatContext *c,
+		   FcPattern       *pat,
+		   FcStrBuf        *buf)
+{
+    if (!expect_char (c, '='))
+	return FcFalse;
+
+    if (!read_word (c))
+	return FcFalse;
+#define BUILTIN(name, func) \
+    else if (0 == strcmp ((const char *) c->word, name))\
+	return func (c, pat, buf)
+    BUILTIN  ("unparse",  FcNameUnparse);
+    BUILTIN  ("verbose",  FcPatternPrint);
+    BUILTIN2 ("fcmatch",  FcStrDirname);
+    BUILTIN2 ("fclist",   FcStrDirname);
+    BUILTIN2 ("pkgkit",   FcStrDirname);
+
+    message ("unknown builtin \"%s\"",
+	     c->word);
+    return FcFalse;
+}
+
+static FcBool
 interpret_expr (FcFormatContext *c,
 		FcPattern       *pat,
 		FcStrBuf        *buf,
@@ -805,6 +829,7 @@ interpret_percent (FcFormatContext *c,
     start = buf->len;
 
     switch (*c->format) {
+    case '=': ret = interpret_builtin (c, pat, buf); break;
     case '{': ret = interpret_subexpr (c, pat, buf); break;
     case '+': ret = interpret_filter  (c, pat, buf); break;
     case '-': ret = interpret_delete  (c, pat, buf); break;
commit c8f5933d13efa6705854d8f89b22d40cf720e68d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 05:57:10 2009 -0500

    [fcformat] Implement 'delete', 'escape', and 'translate' filter functions
    
    The format '%{family|delete( )}' expands to family values with space removed.
    The format '%{family|translate( ,-)}' expands to family values with space
    replaced by dash.  Multiple chars are supported, like tr(1).
    The format '%{family|escape(\\ )}' expands to family values with space
    escaped using backslash.

diff --git a/src/fcformat.c b/src/fcformat.c
index 6a463fd..971ee08 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -124,6 +124,20 @@ FcCharIsPunct (const FcChar8 c)
     return FcFalse;
 }
 
+static char escaped_char(const char ch)
+{
+    switch (ch) {
+    case 'a':   return '\a';
+    case 'b':   return '\b';
+    case 'f':   return '\f';
+    case 'n':   return '\n';
+    case 'r':   return '\r';
+    case 't':   return '\t';
+    case 'v':   return '\v';
+    default:    return ch;
+    }
+}
+
 static FcBool
 read_word (FcFormatContext *c)
 {
@@ -137,7 +151,7 @@ read_word (FcFormatContext *c)
 	{
 	    c->format++;
 	    if (*c->format)
-		c->format++;
+	      *p++ = escaped_char (*c->format++);
 	    continue;
 	}
 	else if (FcCharIsPunct (*c->format))
@@ -158,6 +172,38 @@ read_word (FcFormatContext *c)
 }
 
 static FcBool
+read_chars (FcFormatContext *c,
+	    FcChar8          term)
+{
+    FcChar8 *p;
+
+    p = c->word;
+
+    while (*c->format && *c->format != '}' && *c->format != term)
+    {
+	if (*c->format == '\\')
+	{
+	    c->format++;
+	    if (*c->format)
+	      *p++ = escaped_char (*c->format++);
+	    continue;
+	}
+
+	*p++ = *c->format++;
+    }
+    *p = '\0';
+
+    if (p == c->word)
+    {
+	message ("expected character data at %d",
+		 c->format - c->format_orig + 1);
+	return FcFalse;
+    }
+
+    return FcTrue;
+}
+
+static FcBool
 interpret_expr (FcFormatContext *c,
 		FcPattern       *pat,
 		FcStrBuf        *buf,
@@ -403,7 +449,7 @@ interpret_count (FcFormatContext *c,
 	    count++;
     }
 
-    snprintf (buf_static, sizeof (buf_static), "%d", count);
+    snprintf ((char *) buf_static, sizeof (buf_static), "%d", count);
     FcStrBufString (buf, buf_static);
 
     return FcTrue;
@@ -452,7 +498,7 @@ static FcChar8 *
 cescape (const FcChar8 *str)
 {
     FcStrBuf buf;
-    FcChar8         buf_static[8192];
+    FcChar8  buf_static[8192];
 
     FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     while(*str)
@@ -473,7 +519,7 @@ static FcChar8 *
 shescape (const FcChar8 *str)
 {
     FcStrBuf buf;
-    FcChar8         buf_static[8192];
+    FcChar8  buf_static[8192];
 
     FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     FcStrBufChar (&buf, '\'');
@@ -493,7 +539,7 @@ static FcChar8 *
 xmlescape (const FcChar8 *str)
 {
     FcStrBuf buf;
-    FcChar8         buf_static[8192];
+    FcChar8  buf_static[8192];
 
     FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     while(*str)
@@ -511,6 +557,137 @@ xmlescape (const FcChar8 *str)
 }
 
 static FcChar8 *
+delete_chars (FcFormatContext *c,
+	      const FcChar8   *str)
+{
+    FcStrBuf buf;
+    FcChar8  buf_static[8192];
+
+    /* XXX not UTF-8 aware */
+
+    if (!expect_char (c, '(') ||
+	!read_chars (c, ')') ||
+	!expect_char (c, ')'))
+	return NULL;
+
+    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
+    while(*str)
+    {
+	FcChar8 *p;
+
+	p = (FcChar8 *) strpbrk ((const char *) str, (const char *) c->word);
+	if (p)
+	{
+	    FcStrBufData (&buf, str, p - str);
+	    str = p + 1;
+	}
+	else
+	{
+	    FcStrBufString (&buf, str);
+	    break;
+	}
+
+    }
+    return FcStrBufDone (&buf);
+}
+
+static FcChar8 *
+escape_chars (FcFormatContext *c,
+	      const FcChar8   *str)
+{
+    FcStrBuf buf;
+    FcChar8  buf_static[8192];
+
+    /* XXX not UTF-8 aware */
+
+    if (!expect_char (c, '(') ||
+	!read_chars (c, ')') ||
+	!expect_char (c, ')'))
+	return NULL;
+
+    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
+    while(*str)
+    {
+	FcChar8 *p;
+
+	p = (FcChar8 *) strpbrk ((const char *) str, (const char *) c->word);
+	if (p)
+	{
+	    FcStrBufData (&buf, str, p - str);
+	    FcStrBufChar (&buf, c->word[0]);
+	    FcStrBufChar (&buf, *p);
+	    str = p + 1;
+	}
+	else
+	{
+	    FcStrBufString (&buf, str);
+	    break;
+	}
+
+    }
+    return FcStrBufDone (&buf);
+}
+
+static FcChar8 *
+translate_chars (FcFormatContext *c,
+		 const FcChar8   *str)
+{
+    FcStrBuf buf;
+    FcChar8  buf_static[8192];
+    char *from, *to, repeat;
+    int from_len, to_len;
+
+    /* XXX not UTF-8 aware */
+
+    if (!expect_char (c, '(') ||
+	!read_chars (c, ',') ||
+	!expect_char (c, ','))
+	return NULL;
+
+    from = (char *) c->word;
+    from_len = strlen (from);
+    to = from + from_len + 1;
+
+    /* hack: we temporarily diverge c->word */
+    c->word = (FcChar8 *) to;
+    if (!read_chars (c, ')'))
+    {
+      c->word = (FcChar8 *) from;
+      return FcFalse;
+    }
+    c->word = (FcChar8 *) from;
+
+    to_len = strlen (to);
+    repeat = to[to_len - 1];
+
+    if (!expect_char (c, ')'))
+	return FcFalse;
+
+    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
+    while(*str)
+    {
+	FcChar8 *p;
+
+	p = (FcChar8 *) strpbrk ((const char *) str, (const char *) from);
+	if (p)
+	{
+	    int i;
+	    FcStrBufData (&buf, str, p - str);
+	    i = strchr (from, *p) - from;
+	    FcStrBufChar (&buf, i < to_len ? to[i] : repeat);
+	    str = p + 1;
+	}
+	else
+	{
+	    FcStrBufString (&buf, str);
+	    break;
+	}
+
+    }
+    return FcStrBufDone (&buf);
+}
+
+static FcChar8 *
 convert (FcFormatContext *c,
 	 const FcChar8   *str)
 {
@@ -519,12 +696,18 @@ convert (FcFormatContext *c,
 #define CONVERTER(name, func) \
     else if (0 == strcmp ((const char *) c->word, name))\
 	return func (str)
-    CONVERTER ("downcase",  FcStrDowncase);
-    CONVERTER ("basename",  FcStrBasename);
-    CONVERTER ("dirname",   FcStrDirname);
-    CONVERTER ("cescape",   cescape);
-    CONVERTER ("shescape",  shescape);
-    CONVERTER ("xmlescape", xmlescape);
+#define CONVERTER2(name, func) \
+    else if (0 == strcmp ((const char *) c->word, name))\
+	return func (c, str)
+    CONVERTER  ("downcase",  FcStrDowncase);
+    CONVERTER  ("basename",  FcStrBasename);
+    CONVERTER  ("dirname",   FcStrDirname);
+    CONVERTER  ("cescape",   cescape);
+    CONVERTER  ("shescape",  shescape);
+    CONVERTER  ("xmlescape", xmlescape);
+    CONVERTER2 ("delete",    delete_chars);
+    CONVERTER2 ("escape",    escape_chars);
+    CONVERTER2 ("translate", translate_chars);
 
     message ("unknown converter \"%s\"",
 	     c->word);
@@ -636,20 +819,6 @@ interpret_percent (FcFormatContext *c,
 	   expect_char (c, '}');
 }
 
-static char escaped_char(const char ch)
-{
-    switch (ch) {
-    case 'a':   return '\a';
-    case 'b':   return '\b';
-    case 'f':   return '\f';
-    case 'n':   return '\n';
-    case 'r':   return '\r';
-    case 't':   return '\t';
-    case 'v':   return '\v';
-    default:    return ch;
-    }
-}
-
 static FcBool
 interpret_expr (FcFormatContext *c,
 		FcPattern       *pat,
commit b6a23028beb3b99022599344ebd8511c12dc7fd0
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 05:05:53 2009 -0500

    [fcformat] Add value-count syntax
    
    The format '%{#family}' expands to the number of values for the element
    'family', or '0' if no such element exists in the pattern.

diff --git a/src/fcformat.c b/src/fcformat.c
index 238f8d2..6a463fd 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2008 Red Hat, Inc.
+ * Copyright © 2008,2009 Red Hat, Inc.
  *
  * Red Hat Author(s): Behdad Esfahbod
  *
@@ -31,7 +31,6 @@
 /*
  * Some ideas for future syntax extensions:
  *
- * - number of values for element using '%{#elt}'
  * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
  * - allow indexing simple tags using '%{elt[idx]}'
  * - conditional/filtering/deletion on binding (using '(w)'/'(s)' notation)
@@ -261,45 +260,6 @@ maybe_skip_subexpr (FcFormatContext *c)
 }
 
 static FcBool
-interpret_simple (FcFormatContext *c,
-		  FcPattern       *pat,
-		  FcStrBuf        *buf)
-{
-    FcPatternElt *e;
-    FcBool        add_colon = FcFalse;
-    FcBool        add_elt_name = FcFalse;
-
-    if (consume_char (c, ':'))
-	add_colon = FcTrue;
-
-    if (!read_word (c))
-	return FcFalse;
-
-    if (consume_char (c, '='))
-	add_elt_name = FcTrue;
-
-    e = FcPatternObjectFindElt (pat,
-				FcObjectFromName ((const char *) c->word));
-    if (e)
-    {
-	FcValueListPtr l;
-
-	if (add_colon)
-	    FcStrBufChar (buf, ':');
-	if (add_elt_name)
-	{
-	    FcStrBufString (buf, c->word);
-	    FcStrBufChar (buf, '=');
-	}
-
-	l = FcPatternEltValues(e);
-	FcNameUnparseValueList (buf, l, '\0');
-    }
-
-    return FcTrue;
-}
-
-static FcBool
 interpret_filter (FcFormatContext *c,
 		  FcPattern       *pat,
 		  FcStrBuf        *buf)
@@ -415,6 +375,79 @@ interpret_cond (FcFormatContext *c,
     return FcTrue;
 }
 
+static FcBool
+interpret_count (FcFormatContext *c,
+		 FcPattern       *pat,
+		 FcStrBuf        *buf)
+{
+    int count;
+    FcPatternElt *e;
+    FcChar8 buf_static[64];
+
+    if (!expect_char (c, '#'))
+	return FcFalse;
+
+    if (!read_word (c))
+	return FcFalse;
+
+    count = 0;
+    e = FcPatternObjectFindElt (pat,
+				FcObjectFromName ((const char *) c->word));
+    if (e)
+    {
+	FcValueListPtr l;
+	count++;
+	for (l = FcPatternEltValues(e);
+	     l->next;
+	     l = l->next)
+	    count++;
+    }
+
+    snprintf (buf_static, sizeof (buf_static), "%d", count);
+    FcStrBufString (buf, buf_static);
+
+    return FcTrue;
+}
+
+static FcBool
+interpret_simple (FcFormatContext *c,
+		  FcPattern       *pat,
+		  FcStrBuf        *buf)
+{
+    FcPatternElt *e;
+    FcBool        add_colon = FcFalse;
+    FcBool        add_elt_name = FcFalse;
+
+    if (consume_char (c, ':'))
+	add_colon = FcTrue;
+
+    if (!read_word (c))
+	return FcFalse;
+
+    if (consume_char (c, '='))
+	add_elt_name = FcTrue;
+
+    e = FcPatternObjectFindElt (pat,
+				FcObjectFromName ((const char *) c->word));
+    if (e)
+    {
+	FcValueListPtr l;
+
+	if (add_colon)
+	    FcStrBufChar (buf, ':');
+	if (add_elt_name)
+	{
+	    FcStrBufString (buf, c->word);
+	    FcStrBufChar (buf, '=');
+	}
+
+	l = FcPatternEltValues(e);
+	FcNameUnparseValueList (buf, l, '\0');
+    }
+
+    return FcTrue;
+}
+
 static FcChar8 *
 cescape (const FcChar8 *str)
 {
@@ -593,6 +626,7 @@ interpret_percent (FcFormatContext *c,
     case '+': ret = interpret_filter  (c, pat, buf); break;
     case '-': ret = interpret_delete  (c, pat, buf); break;
     case '?': ret = interpret_cond    (c, pat, buf); break;
+    case '#': ret = interpret_count   (c, pat, buf); break;
     default:  ret = interpret_simple  (c, pat, buf); break;
     }
 
commit dccbbe83eff54097c55fdc560810cdc56b679a60
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 04:47:24 2009 -0500

    [FcStrBuf] better handle malloc failure
    
    If buffer has failed allocation, return NULL when done.

diff --git a/src/fcstr.c b/src/fcstr.c
index 2f2cd4d..3b84ac0 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -733,7 +733,10 @@ FcStrBufDone (FcStrBuf *buf)
 {
     FcChar8 *ret;
 
-    ret = malloc (buf->len + 1);
+    if (buf->failed)
+	ret = NULL;
+    else
+	ret = malloc (buf->len + 1);
     if (ret)
     {
 	FcMemAlloc (FC_MEM_STRING, buf->len + 1);
@@ -752,6 +755,9 @@ FcStrBufChar (FcStrBuf *buf, FcChar8 c)
 	FcChar8	    *new;
 	int	    size;
 
+	if (buf->failed)
+	    return FcFalse;
+
 	if (buf->allocated)
 	{
 	    size = buf->size * 2;
commit ced38254b49ab616df79930bbb798a93e5ce51fa
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 04:44:54 2009 -0500

    [fcformat] Implement 'cescape', 'shescape', and 'xmlescape' converters

diff --git a/src/fcformat.c b/src/fcformat.c
index 9250ea8..238f8d2 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -31,6 +31,7 @@
 /*
  * Some ideas for future syntax extensions:
  *
+ * - number of values for element using '%{#elt}'
  * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
  * - allow indexing simple tags using '%{elt[idx]}'
  * - conditional/filtering/deletion on binding (using '(w)'/'(s)' notation)
@@ -415,17 +416,82 @@ interpret_cond (FcFormatContext *c,
 }
 
 static FcChar8 *
+cescape (const FcChar8 *str)
+{
+    FcStrBuf buf;
+    FcChar8         buf_static[8192];
+
+    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
+    while(*str)
+    {
+	switch (*str)
+	{
+	case '\\':
+	case '"':
+	    FcStrBufChar (&buf, '\\');
+	    break;
+	}
+	FcStrBufChar (&buf, *str++);
+    }
+    return FcStrBufDone (&buf);
+}
+
+static FcChar8 *
+shescape (const FcChar8 *str)
+{
+    FcStrBuf buf;
+    FcChar8         buf_static[8192];
+
+    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
+    FcStrBufChar (&buf, '\'');
+    while(*str)
+    {
+	if (*str == '\'')
+	    FcStrBufString (&buf, (const FcChar8 *) "'\\''");
+	else
+	    FcStrBufChar (&buf, *str);
+	str++;
+    }
+    FcStrBufChar (&buf, '\'');
+    return FcStrBufDone (&buf);
+}
+
+static FcChar8 *
+xmlescape (const FcChar8 *str)
+{
+    FcStrBuf buf;
+    FcChar8         buf_static[8192];
+
+    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
+    while(*str)
+    {
+	switch (*str)
+	{
+	case '&': FcStrBufString (&buf, (const FcChar8 *) "&amp;"); break;
+	case '<': FcStrBufString (&buf, (const FcChar8 *) "&lt;");  break;
+	case '>': FcStrBufString (&buf, (const FcChar8 *) "&gt;");  break;
+	default:  FcStrBufChar   (&buf, *str);                      break;
+	}
+	str++;
+    }
+    return FcStrBufDone (&buf);
+}
+
+static FcChar8 *
 convert (FcFormatContext *c,
 	 const FcChar8   *str)
 {
     if (!read_word (c))
 	return NULL;
-    else if (0 == strcmp ((const char *) c->word, "downcase"))
-	return FcStrDowncase (str);
-    else if (0 == strcmp ((const char *) c->word, "basename"))
-	return FcStrBasename (str);
-    else if (0 == strcmp ((const char *) c->word, "dirname"))
-	return FcStrDirname (str);
+#define CONVERTER(name, func) \
+    else if (0 == strcmp ((const char *) c->word, name))\
+	return func (str)
+    CONVERTER ("downcase",  FcStrDowncase);
+    CONVERTER ("basename",  FcStrBasename);
+    CONVERTER ("dirname",   FcStrDirname);
+    CONVERTER ("cescape",   cescape);
+    CONVERTER ("shescape",  shescape);
+    CONVERTER ("xmlescape", xmlescape);
 
     message ("unknown converter \"%s\"",
 	     c->word);
@@ -578,17 +644,16 @@ interpret_expr (FcFormatContext *c,
 FcChar8 *
 FcPatternFormat (FcPattern *pat, const FcChar8 *format)
 {
-    FcStrBuf buf;
+    FcStrBuf        buf;
+    FcChar8         buf_static[8192];
     FcFormatContext c;
-    FcBool ret;
+    FcBool          ret;
 
-    FcStrBufInit (&buf, 0, 0);
+    FcStrBufInit (&buf, buf_static, sizeof (buf_static));
     if (!FcFormatContextInit (&c, format))
 	return NULL;
 
     ret = interpret_expr (&c, pat, &buf, '\0');
-    if (buf.failed)
-	ret = FcFalse;
 
     FcFormatContextDone (&c);
     if (ret)
commit 2017a5eb79a0774cc5bace8c76304e1a9ef157b9
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 03:38:22 2009 -0500

    [fcformat] Add simple converters
    
    The format '%{family|downcase}' for example prints the lowercase of
    the family element.  Three converters are defined right now:
    'downcase', 'basename', and 'dirname'.

diff --git a/src/fcformat.c b/src/fcformat.c
index e1e05ee..9250ea8 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -28,6 +28,14 @@
 #include <stdarg.h>
 
 
+/*
+ * Some ideas for future syntax extensions:
+ *
+ * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}'
+ * - allow indexing simple tags using '%{elt[idx]}'
+ * - conditional/filtering/deletion on binding (using '(w)'/'(s)' notation)
+ */
+
 static void
 message (const char *fmt, ...)
 {
@@ -45,7 +53,7 @@ typedef struct _FcFormatContext
     const FcChar8 *format_orig;
     const FcChar8 *format;
     int            format_len;
-    FcChar8       *scratch;
+    FcChar8       *word;
 } FcFormatContext;
 
 static FcBool
@@ -54,9 +62,9 @@ FcFormatContextInit (FcFormatContext *c,
 {
     c->format_orig = c->format = format;
     c->format_len = strlen ((const char *) format);
-    c->scratch = malloc (c->format_len + 1);
+    c->word = malloc (c->format_len + 1);
 
-    return c->scratch != NULL;
+    return c->word != NULL;
 }
 
 static void
@@ -64,7 +72,7 @@ FcFormatContextDone (FcFormatContext *c)
 {
     if (c)
     {
-	free (c->scratch);
+	free (c->word);
     }
 }
 
@@ -117,11 +125,11 @@ FcCharIsPunct (const FcChar8 c)
 }
 
 static FcBool
-read_elt_name_to_scratch (FcFormatContext *c)
+read_word (FcFormatContext *c)
 {
     FcChar8 *p;
 
-    p = c->scratch;
+    p = c->word;
 
     while (*c->format)
     {
@@ -139,7 +147,7 @@ read_elt_name_to_scratch (FcFormatContext *c)
     }
     *p = '\0';
 
-    if (p == c->scratch)
+    if (p == c->word)
     {
 	message ("expected element name at %d",
 		 c->format - c->format_orig + 1);
@@ -181,11 +189,13 @@ skip_subexpr (FcFormatContext *c);
 static FcBool
 skip_percent (FcFormatContext *c)
 {
+    int width;
+
     if (!expect_char (c, '%'))
 	return FcFalse;
 
     /* skip an optional width specifier */
-    strtol ((const char *) c->format, (char **) &c->format, 10);
+    width = strtol ((const char *) c->format, (char **) &c->format, 10);
 
     if (!expect_char (c, '{'))
 	return FcFalse;
@@ -250,9 +260,9 @@ maybe_skip_subexpr (FcFormatContext *c)
 }
 
 static FcBool
-interpret_simple_tag (FcFormatContext *c,
-		      FcPattern       *pat,
-		      FcStrBuf        *buf)
+interpret_simple (FcFormatContext *c,
+		  FcPattern       *pat,
+		  FcStrBuf        *buf)
 {
     FcPatternElt *e;
     FcBool        add_colon = FcFalse;
@@ -261,14 +271,14 @@ interpret_simple_tag (FcFormatContext *c,
     if (consume_char (c, ':'))
 	add_colon = FcTrue;
 
-    if (!read_elt_name_to_scratch (c))
+    if (!read_word (c))
 	return FcFalse;
 
     if (consume_char (c, '='))
 	add_elt_name = FcTrue;
 
     e = FcPatternObjectFindElt (pat,
-				FcObjectFromName ((const char *) c->scratch));
+				FcObjectFromName ((const char *) c->word));
     if (e)
     {
 	FcValueListPtr l;
@@ -277,7 +287,7 @@ interpret_simple_tag (FcFormatContext *c,
 	    FcStrBufChar (buf, ':');
 	if (add_elt_name)
 	{
-	    FcStrBufString (buf, c->scratch);
+	    FcStrBufString (buf, c->word);
 	    FcStrBufChar (buf, '=');
 	}
 
@@ -305,8 +315,8 @@ interpret_filter (FcFormatContext *c,
 
     do
     {
-	if (!read_elt_name_to_scratch (c) ||
-	    !FcObjectSetAdd (os, (const char *) c->scratch))
+	if (!read_word (c) ||
+	    !FcObjectSetAdd (os, (const char *) c->word))
 	{
 	    FcObjectSetDestroy (os);
 	    return FcFalse;
@@ -341,13 +351,13 @@ interpret_delete (FcFormatContext *c,
 
     do
     {
-	if (!read_elt_name_to_scratch (c))
+	if (!read_word (c))
 	{
 	    FcPatternDestroy (subpat);
 	    return FcFalse;
 	}
 
-	FcPatternDel (subpat, (const char *) c->scratch);
+	FcPatternDel (subpat, (const char *) c->word);
     }
     while (consume_char (c, ','));
 
@@ -359,9 +369,9 @@ interpret_delete (FcFormatContext *c,
 }
 
 static FcBool
-interpret_conditional (FcFormatContext *c,
-		       FcPattern       *pat,
-		       FcStrBuf        *buf)
+interpret_cond (FcFormatContext *c,
+		FcPattern       *pat,
+		FcStrBuf        *buf)
 {
     FcBool pass;
 
@@ -377,14 +387,14 @@ interpret_conditional (FcFormatContext *c,
 
 	negate = consume_char (c, '!');
 
-	if (!read_elt_name_to_scratch (c))
+	if (!read_word (c))
 	    return FcFalse;
 
 	pass = pass &&
 	       (negate ^
-		FcResultMatch == FcPatternGet (pat,
-					       (const char *) c->scratch,
-					       0, &v));
+		(FcResultMatch == FcPatternGet (pat,
+						(const char *) c->word,
+						0, &v)));
     }
     while (consume_char (c, ','));
 
@@ -404,12 +414,96 @@ interpret_conditional (FcFormatContext *c,
     return FcTrue;
 }
 
+static FcChar8 *
+convert (FcFormatContext *c,
+	 const FcChar8   *str)
+{
+    if (!read_word (c))
+	return NULL;
+    else if (0 == strcmp ((const char *) c->word, "downcase"))
+	return FcStrDowncase (str);
+    else if (0 == strcmp ((const char *) c->word, "basename"))
+	return FcStrBasename (str);
+    else if (0 == strcmp ((const char *) c->word, "dirname"))
+	return FcStrDirname (str);
+
+    message ("unknown converter \"%s\"",
+	     c->word);
+    return NULL;
+}
+
+static FcBool
+maybe_interpret_converts (FcFormatContext *c,
+			   FcStrBuf        *buf,
+			   int              start)
+{
+    while (consume_char (c, '|'))
+    {
+	const FcChar8 *str;
+	FcChar8       *new_str;
+
+	/* nul-terminate the buffer */
+	FcStrBufChar (buf, '\0');
+	if (buf->failed)
+	    return FcFalse;
+	str = buf->buf + start;
+
+	if (!(new_str = convert (c, str)))
+	    return FcFalse;
+
+	/* replace in the buffer */
+	buf->len = start;
+	FcStrBufString (buf, new_str);
+	free (new_str);
+    }
+
+    return FcTrue;
+}
+
+static FcBool
+align_to_width (FcStrBuf *buf,
+		int       start,
+		int       width)
+{
+    int len;
+
+    if (buf->failed)
+	return FcFalse;
+
+    len = buf->len - start;
+    if (len < -width)
+    {
+	/* left align */
+	while (len++ < -width)
+	    FcStrBufChar (buf, ' ');
+    }
+    else if (len < width)
+    {
+	int old_len;
+	old_len = len;
+	/* right align */
+	while (len++ < width)
+	    FcStrBufChar (buf, ' ');
+	if (buf->failed)
+	    return FcFalse;
+	len = old_len;
+	memmove (buf->buf + buf->len - len,
+		 buf->buf + buf->len - width,
+		 len);
+	memset (buf->buf + buf->len - width,
+		' ',
+		width - len);
+    }
+
+    return !buf->failed;
+}
 static FcBool
 interpret_percent (FcFormatContext *c,
 		   FcPattern       *pat,
 		   FcStrBuf        *buf)
 {
-    int           width, before;
+    int width, start;
+    FcBool ret;
 
     if (!expect_char (c, '%'))
 	return FcFalse;
@@ -423,79 +517,23 @@ interpret_percent (FcFormatContext *c,
     /* parse an optional width specifier */
     width = strtol ((const char *) c->format, (char **) &c->format, 10);
 
-    before = buf->len;
-
     if (!expect_char (c, '{'))
 	return FcFalse;
 
-    switch (*c->format) {
-
-    case '{':
-	/* subexpression */
-	if (!interpret_subexpr (c, pat, buf))
-	    return FcFalse;
-	break;
-
-    case '+':
-	/* filtering pattern elements */
-	if (!interpret_filter (c, pat, buf))
-	    return FcFalse;
-	break;
-
-    case '-':
-	/* deleting pattern elements */
-	if (!interpret_delete (c, pat, buf))
-	    return FcFalse;
-	break;
-
-    case '?':
-	/* conditional on pattern elements */
-	if (!interpret_conditional (c, pat, buf))
-	    return FcFalse;
-	break;
-
-    default:
-	/* simple tag */
-	if (!interpret_simple_tag (c, pat, buf))
-	    return FcFalse;
-	break;
-
-    }
-
-    /* handle filters, if any */
-    /* XXX */
-
-    /* align to width */
-    if (!buf->failed)
-    {
-	int after, len;
-
-	after = buf->len;
+    start = buf->len;
 
-	len = after - before;
-
-	if (len < -width)
-	{
-	    /* left align */
-	    while (len++ < -width)
-		FcStrBufChar (buf, ' ');
-	}
-	else if (len < width)
-	{
-	    /* right align */
-	    while (len++ < width)
-		FcStrBufChar (buf, ' ');
-	    len = after - before;
-	    memmove (buf->buf + buf->len - len,
-		     buf->buf + buf->len - width,
-		     len);
-	    memset (buf->buf + buf->len - width,
-		    ' ',
-		    width - len);
-	}
+    switch (*c->format) {
+    case '{': ret = interpret_subexpr (c, pat, buf); break;
+    case '+': ret = interpret_filter  (c, pat, buf); break;
+    case '-': ret = interpret_delete  (c, pat, buf); break;
+    case '?': ret = interpret_cond    (c, pat, buf); break;
+    default:  ret = interpret_simple  (c, pat, buf); break;
     }
 
-    return expect_char (c, '}');
+    return ret &&
+	   maybe_interpret_converts (c, buf, start) &&
+	   align_to_width (buf, start, width) &&
+	   expect_char (c, '}');
 }
 
 static char escaped_char(const char ch)
commit 7717b25ffdd9507b0d73ef60b70b692f7286c0a2
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 10 00:15:08 2009 -0500

    [fcformat] Add conditionals
    
    The conditional '%{?elt1,elt2,!elt3{expr1}{expr2}}' will evaluate
    expr1 if elt1 and elt2 exist in pattern and elt3 doesn't exist, and
    expr2 otherwise.  The '{expr2}' part is optional.

diff --git a/src/fcformat.c b/src/fcformat.c
index 31f3a74..e1e05ee 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -150,10 +150,10 @@ read_elt_name_to_scratch (FcFormatContext *c)
 }
 
 static FcBool
-interpret (FcFormatContext *c,
-	   FcPattern       *pat,
-	   FcStrBuf        *buf,
-	   FcChar8          term);
+interpret_expr (FcFormatContext *c,
+		FcPattern       *pat,
+		FcStrBuf        *buf,
+		FcChar8          term);
 
 static FcBool
 interpret_subexpr (FcFormatContext *c,
@@ -161,11 +161,95 @@ interpret_subexpr (FcFormatContext *c,
 		   FcStrBuf        *buf)
 {
     return expect_char (c, '{') &&
-	   interpret (c, pat, buf, '}') &&
+	   interpret_expr (c, pat, buf, '}') &&
 	   expect_char (c, '}');
 }
 
 static FcBool
+maybe_interpret_subexpr (FcFormatContext *c,
+			 FcPattern       *pat,
+			 FcStrBuf        *buf)
+{
+    return (*c->format == '{') ?
+	   interpret_subexpr (c, pat, buf) :
+	   FcTrue;
+}
+
+static FcBool
+skip_subexpr (FcFormatContext *c);
+
+static FcBool
+skip_percent (FcFormatContext *c)
+{
+    if (!expect_char (c, '%'))
+	return FcFalse;
+
+    /* skip an optional width specifier */
+    strtol ((const char *) c->format, (char **) &c->format, 10);
+
+    if (!expect_char (c, '{'))
+	return FcFalse;
+
+    while(*c->format && *c->format != '}')
+    {
+	switch (*c->format)
+	{
+	case '\\':
+	    c->format++; /* skip over '\\' */
+	    if (*c->format)
+		c->format++;
+	    continue;
+	case '{':
+	    if (!skip_subexpr (c))
+		return FcFalse;
+	    continue;
+	}
+	c->format++;
+    }
+
+    return expect_char (c, '}');
+}
+
+static FcBool
+skip_expr (FcFormatContext *c)
+{
+    while(*c->format && *c->format != '}')
+    {
+	switch (*c->format)
+	{
+	case '\\':
+	    c->format++; /* skip over '\\' */
+	    if (*c->format)
+		c->format++;
+	    continue;
+	case '%':
+	    if (!skip_percent (c))
+		return FcFalse;
+	    continue;
+	}
+	c->format++;
+    }
+
+    return FcTrue;
+}
+
+static FcBool
+skip_subexpr (FcFormatContext *c)
+{
+    return expect_char (c, '{') &&
+	   skip_expr (c) &&
+	   expect_char (c, '}');
+}
+
+static FcBool
+maybe_skip_subexpr (FcFormatContext *c)
+{
+    return (*c->format == '{') ?
+	   skip_subexpr (c) :
+	   FcTrue;
+}
+
+static FcBool
 interpret_simple_tag (FcFormatContext *c,
 		      FcPattern       *pat,
 		      FcStrBuf        *buf)
@@ -275,6 +359,52 @@ interpret_delete (FcFormatContext *c,
 }
 
 static FcBool
+interpret_conditional (FcFormatContext *c,
+		       FcPattern       *pat,
+		       FcStrBuf        *buf)
+{
+    FcBool pass;
+
+    if (!expect_char (c, '?'))
+	return FcFalse;
+
+    pass = FcTrue;
+
+    do
+    {
+	FcBool negate;
+	FcValue v;
+
+	negate = consume_char (c, '!');
+
+	if (!read_elt_name_to_scratch (c))
+	    return FcFalse;
+
+	pass = pass &&
+	       (negate ^
+		FcResultMatch == FcPatternGet (pat,
+					       (const char *) c->scratch,
+					       0, &v));
+    }
+    while (consume_char (c, ','));
+
+    if (pass)
+    {
+	if (!interpret_subexpr  (c, pat, buf) ||
+	    !maybe_skip_subexpr (c))
+	    return FcFalse;
+    }
+    else
+    {
+	if (!skip_subexpr (c) ||
+	    !maybe_interpret_subexpr  (c, pat, buf))
+	    return FcFalse;
+    }
+
+    return FcTrue;
+}
+
+static FcBool
 interpret_percent (FcFormatContext *c,
 		   FcPattern       *pat,
 		   FcStrBuf        *buf)
@@ -318,6 +448,12 @@ interpret_percent (FcFormatContext *c,
 	    return FcFalse;
 	break;
 
+    case '?':
+	/* conditional on pattern elements */
+	if (!interpret_conditional (c, pat, buf))
+	    return FcFalse;
+	break;
+
     default:
 	/* simple tag */
 	if (!interpret_simple_tag (c, pat, buf))
@@ -377,12 +513,12 @@ static char escaped_char(const char ch)
 }
 
 static FcBool
-interpret (FcFormatContext *c,
-	   FcPattern       *pat,
-	   FcStrBuf        *buf,
-	   FcChar8          term)
+interpret_expr (FcFormatContext *c,
+		FcPattern       *pat,
+		FcStrBuf        *buf,
+		FcChar8          term)
 {
-    for (; *c->format && *c->format != term;)
+    while (*c->format && *c->format != term)
     {
 	switch (*c->format)
 	{
@@ -412,7 +548,7 @@ FcPatternFormat (FcPattern *pat, const FcChar8 *format)
     if (!FcFormatContextInit (&c, format))
 	return NULL;
 
-    ret = interpret (&c, pat, &buf, '\0');
+    ret = interpret_expr (&c, pat, &buf, '\0');
     if (buf.failed)
 	ret = FcFalse;
 
commit 8c31a2434d5dfa475ef710ad52c992111caac424
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Feb 9 23:08:08 2009 -0500

    [fcformat] Add element filtering and deletion
    
    The filtering, '%{+elt1,elt2,elt3{subexpr}}' will evaluate subexpr
    with a pattern only having the listed elements from the surrounding
    pattern.
    
    The deletion, '%{-elt1,elt2,elt3{subexpr}}' will evaluate subexpr
    with a the surrounding pattern sans the listed elements.

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index 22a89ad..35ef68b 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -413,5 +413,5 @@ pattern, use the format "%{family} %{style}\n".
 There can be an option width specifier after the percent sign and before
 the opening brace.  The width modifier acts similar to those in printf.
 The return value refers to newly allocated memory which should be freed by the
-caller using free().
+caller using free(), or NULL if <parameter>format</parameter> is invalid.
 @@
diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index 470b4b9..cbcc3c0 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -178,8 +178,11 @@ main (int argc, char **argv)
 	        FcChar8 *s;
 
 		s = FcPatternFormat (fs->fonts[j], format);
-		printf ("%s", s);
-		free (s);
+		if (s)
+		{
+		    printf ("%s", s);
+		    free (s);
+		}
 	    }
 	    else
 	    {
diff --git a/fc-match/fc-match.c b/fc-match/fc-match.c
index 6f3d2dc..86ff253 100644
--- a/fc-match/fc-match.c
+++ b/fc-match/fc-match.c
@@ -214,7 +214,11 @@ main (int argc, char **argv)
 	        FcChar8 *s;
 
 		s = FcPatternFormat (font, format);
-		free (s);
+		if (s)
+		{
+		    printf ("%s", s);
+		    free (s);
+		}
 	    }
 	    else if (os)
 	    {
diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c
index 8c5672c..4d707bc 100644
--- a/fc-query/fc-query.c
+++ b/fc-query/fc-query.c
@@ -162,8 +162,11 @@ main (int argc, char **argv)
 		    FcChar8 *s;
 
 		    s = FcPatternFormat (pat, format);
-		    printf ("%s", s);
-		    free (s);
+		    if (s)
+		    {
+			printf ("%s", s);
+			free (s);
+		    }
 		}
 		else
 		{
diff --git a/fc-scan/fc-scan.c b/fc-scan/fc-scan.c
index 573f7ef..1f023fb 100644
--- a/fc-scan/fc-scan.c
+++ b/fc-scan/fc-scan.c
@@ -165,8 +165,11 @@ main (int argc, char **argv)
 	    FcChar8 *s;
 
 	    s = FcPatternFormat (pat, format);
-	    printf ("%s", s);
-	    free (s);
+	    if (s)
+	    {
+		printf ("%s", s);
+		free (s);
+	    }
 	}
 	else
 	{
diff --git a/src/fcformat.c b/src/fcformat.c
index 30c5a8d..31f3a74 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -33,7 +33,7 @@ message (const char *fmt, ...)
 {
     va_list	args;
     va_start (args, fmt);
-    fprintf (stderr, "Fontconfig: Pattern format error:");
+    fprintf (stderr, "Fontconfig: Pattern format error: ");
     vfprintf (stderr, fmt, args);
     fprintf (stderr, ".\n");
     va_end (args);
@@ -48,13 +48,15 @@ typedef struct _FcFormatContext
     FcChar8       *scratch;
 } FcFormatContext;
 
-static void
+static FcBool
 FcFormatContextInit (FcFormatContext *c,
 		     const FcChar8   *format)
 {
     c->format_orig = c->format = format;
     c->format_len = strlen ((const char *) format);
     c->scratch = malloc (c->format_len + 1);
+
+    return c->scratch != NULL;
 }
 
 static void
@@ -147,60 +149,36 @@ read_elt_name_to_scratch (FcFormatContext *c)
     return FcTrue;
 }
 
-static void
+static FcBool
 interpret (FcFormatContext *c,
 	   FcPattern       *pat,
 	   FcStrBuf        *buf,
 	   FcChar8          term);
 
-static void
-interpret_percent (FcFormatContext *c,
+static FcBool
+interpret_subexpr (FcFormatContext *c,
 		   FcPattern       *pat,
 		   FcStrBuf        *buf)
 {
-    int           width, before;
-    FcChar8      *p;
-    FcPatternElt *e;
+    return expect_char (c, '{') &&
+	   interpret (c, pat, buf, '}') &&
+	   expect_char (c, '}');
+}
 
-    FcPattern    *subpat = pat;
+static FcBool
+interpret_simple_tag (FcFormatContext *c,
+		      FcPattern       *pat,
+		      FcStrBuf        *buf)
+{
+    FcPatternElt *e;
     FcBool        add_colon = FcFalse;
     FcBool        add_elt_name = FcFalse;
 
-    if (!expect_char (c, '%'))
-	return;
-
-    if (consume_char (c, '%')) /* "%%" */
-    {
-	FcStrBufChar (buf, '%');
-	return;
-    }
-
-    /* parse an optional width specifier */
-    width = strtol ((const char *) c->format, (char **) &c->format, 10);
-
-    before = buf->len;
-
-    if (!expect_char (c, '{'))
-	goto bail;
-
-    if (consume_char (c, '{'))
-    {
-	/* it's just a subexpression.  no tag involved */
-	interpret (c, pat, buf, '}');
-	expect_char (c, '}');
-	goto filter;
-    }
-
-    switch (*c->format) {
-    case ':':
+    if (consume_char (c, ':'))
 	add_colon = FcTrue;
-	consume_char (c, ':');
-	break;
-    }
 
-parse_tag:
     if (!read_elt_name_to_scratch (c))
-        goto bail;
+	return FcFalse;
 
     if (consume_char (c, '='))
 	add_elt_name = FcTrue;
@@ -223,7 +201,131 @@ parse_tag:
 	FcNameUnparseValueList (buf, l, '\0');
     }
 
-filter:
+    return FcTrue;
+}
+
+static FcBool
+interpret_filter (FcFormatContext *c,
+		  FcPattern       *pat,
+		  FcStrBuf        *buf)
+{
+    FcObjectSet  *os;
+    FcPattern    *subpat;
+
+    if (!expect_char (c, '+'))
+	return FcFalse;
+
+    os = FcObjectSetCreate ();
+    if (!os)
+	return FcFalse;
+
+    do
+    {
+	if (!read_elt_name_to_scratch (c) ||
+	    !FcObjectSetAdd (os, (const char *) c->scratch))
+	{
+	    FcObjectSetDestroy (os);
+	    return FcFalse;
+	}
+    }
+    while (consume_char (c, ','));
+
+    subpat = FcPatternFilter (pat, os);
+    FcObjectSetDestroy (os);
+
+    if (!subpat ||
+	!interpret_subexpr (c, subpat, buf))
+	return FcFalse;
+
+    FcPatternDestroy (subpat);
+    return FcTrue;
+}
+
+static FcBool
+interpret_delete (FcFormatContext *c,
+		  FcPattern       *pat,
+		  FcStrBuf        *buf)
+{
+    FcPattern    *subpat;
+
+    if (!expect_char (c, '-'))
+	return FcFalse;
+
+    subpat = FcPatternDuplicate (pat);
+    if (!subpat)
+	return FcFalse;
+
+    do
+    {
+	if (!read_elt_name_to_scratch (c))
+	{
+	    FcPatternDestroy (subpat);
+	    return FcFalse;
+	}
+
+	FcPatternDel (subpat, (const char *) c->scratch);
+    }
+    while (consume_char (c, ','));
+
+    if (!interpret_subexpr (c, subpat, buf))
+	return FcFalse;
+
+    FcPatternDestroy (subpat);
+    return FcTrue;
+}
+
+static FcBool
+interpret_percent (FcFormatContext *c,
+		   FcPattern       *pat,
+		   FcStrBuf        *buf)
+{
+    int           width, before;
+
+    if (!expect_char (c, '%'))
+	return FcFalse;
+
+    if (consume_char (c, '%')) /* "%%" */
+    {
+	FcStrBufChar (buf, '%');
+	return FcTrue;
+    }
+
+    /* parse an optional width specifier */
+    width = strtol ((const char *) c->format, (char **) &c->format, 10);
+
+    before = buf->len;
+
+    if (!expect_char (c, '{'))
+	return FcFalse;
+
+    switch (*c->format) {
+
+    case '{':
+	/* subexpression */
+	if (!interpret_subexpr (c, pat, buf))
+	    return FcFalse;
+	break;
+
+    case '+':
+	/* filtering pattern elements */
+	if (!interpret_filter (c, pat, buf))
+	    return FcFalse;
+	break;
+
+    case '-':
+	/* deleting pattern elements */
+	if (!interpret_delete (c, pat, buf))
+	    return FcFalse;
+	break;
+
+    default:
+	/* simple tag */
+	if (!interpret_simple_tag (c, pat, buf))
+	    return FcFalse;
+	break;
+
+    }
+
     /* handle filters, if any */
     /* XXX */
 
@@ -257,11 +359,7 @@ filter:
 	}
     }
 
-    expect_char (c, '}');
-
-bail:
-    if (subpat != pat)
-	FcPatternDestroy (subpat);
+    return expect_char (c, '}');
 }
 
 static char escaped_char(const char ch)
@@ -278,7 +376,7 @@ static char escaped_char(const char ch)
     }
 }
 
-static void
+static FcBool
 interpret (FcFormatContext *c,
 	   FcPattern       *pat,
 	   FcStrBuf        *buf,
@@ -294,11 +392,13 @@ interpret (FcFormatContext *c,
 		FcStrBufChar (buf, escaped_char (*c->format++));
 	    continue;
 	case '%':
-	    interpret_percent (c, pat, buf);
+	    if (!interpret_percent (c, pat, buf))
+		return FcFalse;
 	    continue;
 	}
 	FcStrBufChar (buf, *c->format++);
     }
+    return FcTrue;
 }
 
 FcChar8 *
@@ -306,14 +406,24 @@ FcPatternFormat (FcPattern *pat, const FcChar8 *format)
 {
     FcStrBuf buf;
     FcFormatContext c;
+    FcBool ret;
 
     FcStrBufInit (&buf, 0, 0);
-    FcFormatContextInit (&c, format);
+    if (!FcFormatContextInit (&c, format))
+	return NULL;
 
-    interpret (&c, pat, &buf, '\0');
+    ret = interpret (&c, pat, &buf, '\0');
+    if (buf.failed)
+	ret = FcFalse;
 
     FcFormatContextDone (&c);
-    return FcStrBufDone (&buf);
+    if (ret)
+	return FcStrBufDone (&buf);
+    else
+    {
+	FcStrBufDestroy (&buf);
+	return NULL;
+    }
 }
 
 #define __fcformat__
commit d6506ff6eeb4a4cb0bfe827174e474c7b91ff045
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Feb 9 20:49:45 2009 -0500

    [fcformat] Add support for subexpressions
    
    The syntax is '{{expr}}'.  Can be used for aligning/justifying an entire
    subexpr for example.

diff --git a/src/fcformat.c b/src/fcformat.c
index 415114b..30c5a8d 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -33,9 +33,9 @@ message (const char *fmt, ...)
 {
     va_list	args;
     va_start (args, fmt);
-    fprintf (stderr, "Fontconfig: ");
+    fprintf (stderr, "Fontconfig: Pattern format error:");
     vfprintf (stderr, fmt, args);
-    fprintf (stderr, "\n");
+    fprintf (stderr, ".\n");
     va_end (args);
 }
 
@@ -71,31 +71,107 @@ consume_char (FcFormatContext *c,
 	      FcChar8          term)
 {
     if (*c->format != term)
+	return FcFalse;
+
+    c->format++;
+    return FcTrue;
+}
+
+static FcBool
+expect_char (FcFormatContext *c,
+	      FcChar8          term)
+{
+    FcBool res = consume_char (c, term);
+    if (!res)
+    {
+	if (c->format == c->format_orig + c->format_len)
+	    message ("format ended while expecting '%c'",
+		     term);
+	else
+	    message ("expected '%c' at %d",
+		     term, c->format - c->format_orig + 1);
+    }
+    return res;
+}
+
+static FcBool
+FcCharIsPunct (const FcChar8 c)
+{
+    if (c < '0')
+	return FcTrue;
+    if (c <= '9')
+	return FcFalse;
+    if (c < 'A')
+	return FcTrue;
+    if (c <= 'Z')
+	return FcFalse;
+    if (c < 'a')
+	return FcTrue;
+    if (c <= 'z')
+	return FcFalse;
+    if (c <= '~')
+	return FcTrue;
+    return FcFalse;
+}
+
+static FcBool
+read_elt_name_to_scratch (FcFormatContext *c)
+{
+    FcChar8 *p;
+
+    p = c->scratch;
+
+    while (*c->format)
+    {
+	if (*c->format == '\\')
+	{
+	    c->format++;
+	    if (*c->format)
+		c->format++;
+	    continue;
+	}
+	else if (FcCharIsPunct (*c->format))
+	    break;
+
+	*p++ = *c->format++;
+    }
+    *p = '\0';
+
+    if (p == c->scratch)
     {
-	message ("Pattern format error: expected '%c' at %d",
-		 term, c->format - c->format_orig + 1);
+	message ("expected element name at %d",
+		 c->format - c->format_orig + 1);
 	return FcFalse;
     }
 
-    c->format++;
     return FcTrue;
 }
 
 static void
+interpret (FcFormatContext *c,
+	   FcPattern       *pat,
+	   FcStrBuf        *buf,
+	   FcChar8          term);
+
+static void
 interpret_percent (FcFormatContext *c,
 		   FcPattern       *pat,
 		   FcStrBuf        *buf)
 {
-    int width, before;
-    FcChar8 *p;
+    int           width, before;
+    FcChar8      *p;
     FcPatternElt *e;
 
-    if (!consume_char (c, '%'))
+    FcPattern    *subpat = pat;
+    FcBool        add_colon = FcFalse;
+    FcBool        add_elt_name = FcFalse;
+
+    if (!expect_char (c, '%'))
 	return;
 
-    if (*c->format == '%') /* "%%" */
+    if (consume_char (c, '%')) /* "%%" */
     {
-	FcStrBufChar (buf, *c->format++);
+	FcStrBufChar (buf, '%');
 	return;
     }
 
@@ -104,29 +180,50 @@ interpret_percent (FcFormatContext *c,
 
     before = buf->len;
 
-    if (!consume_char (c, '{'))
-	return;
+    if (!expect_char (c, '{'))
+	goto bail;
 
-    p = (FcChar8 *) strpbrk ((const char *) c->format, "}" /* "=?:}" */);
-    if (!p)
+    if (consume_char (c, '{'))
     {
-	message ("Pattern format missing closing brace for opening brace at %d",
-		 c->format-1 - c->format_orig + 1);
-	return;
+	/* it's just a subexpression.  no tag involved */
+	interpret (c, pat, buf, '}');
+	expect_char (c, '}');
+	goto filter;
     }
-    /* extract the element name */
-    memcpy (c->scratch, c->format, p - c->format);
-    c->scratch[p - c->format] = '\0';
-    c->format = p;
 
-    e = FcPatternObjectFindElt (pat, FcObjectFromName ((const char *) c->scratch));
+    switch (*c->format) {
+    case ':':
+	add_colon = FcTrue;
+	consume_char (c, ':');
+	break;
+    }
+
+parse_tag:
+    if (!read_elt_name_to_scratch (c))
+        goto bail;
+
+    if (consume_char (c, '='))
+	add_elt_name = FcTrue;
+
+    e = FcPatternObjectFindElt (pat,
+				FcObjectFromName ((const char *) c->scratch));
     if (e)
     {
 	FcValueListPtr l;
+
+	if (add_colon)
+	    FcStrBufChar (buf, ':');
+	if (add_elt_name)
+	{
+	    FcStrBufString (buf, c->scratch);
+	    FcStrBufChar (buf, '=');
+	}
+
 	l = FcPatternEltValues(e);
 	FcNameUnparseValueList (buf, l, '\0');
     }
 
+filter:
     /* handle filters, if any */
     /* XXX */
 
@@ -160,7 +257,11 @@ interpret_percent (FcFormatContext *c,
 	}
     }
 
-    consume_char (c, '}');
+    expect_char (c, '}');
+
+bail:
+    if (subpat != pat)
+	FcPatternDestroy (subpat);
 }
 
 static char escaped_char(const char ch)
@@ -198,8 +299,6 @@ interpret (FcFormatContext *c,
 	}
 	FcStrBufChar (buf, *c->format++);
     }
-    if (*c->format != term)
-	message ("Pattern format ended while looking for '%c'", term);
 }
 
 FcChar8 *
commit 27b3e2dddf6a89c66e8d79f4a28b1a0653e8e100
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Feb 9 19:13:07 2009 -0500

    [fcformat] Refactor and restructure code for upcoming changes
    
    Also makes it thread-safe.

diff --git a/src/fcformat.c b/src/fcformat.c
index a780f56..415114b 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -40,58 +40,96 @@ message (const char *fmt, ...)
 }
 
 
-static FcChar8 *scratch1;
-static FcChar8 *scratch2;
-static const FcChar8 *format_orig;
-
-static const FcChar8 *
-interpret_percent (FcPattern *pat,
-		   FcStrBuf *buf,
-		   const FcChar8 *format)
+typedef struct _FcFormatContext
 {
-    int width, before;
+    const FcChar8 *format_orig;
+    const FcChar8 *format;
+    int            format_len;
+    FcChar8       *scratch;
+} FcFormatContext;
 
-    /* parse an optional width specifier */
-    width = strtol (format, (char **) &format, 10);
+static void
+FcFormatContextInit (FcFormatContext *c,
+		     const FcChar8   *format)
+{
+    c->format_orig = c->format = format;
+    c->format_len = strlen ((const char *) format);
+    c->scratch = malloc (c->format_len + 1);
+}
 
-    before = buf->len;
+static void
+FcFormatContextDone (FcFormatContext *c)
+{
+    if (c)
+    {
+	free (c->scratch);
+    }
+}
 
-    switch (*format) {
-    case '{':
+static FcBool
+consume_char (FcFormatContext *c,
+	      FcChar8          term)
+{
+    if (*c->format != term)
     {
-	FcChar8 *p;
-	FcPatternElt *e;
+	message ("Pattern format error: expected '%c' at %d",
+		 term, c->format - c->format_orig + 1);
+	return FcFalse;
+    }
 
-	format++; /* skip over '{' */
+    c->format++;
+    return FcTrue;
+}
 
-	p = (FcChar8 *) strpbrk ((const char *) format, "}");
-	if (!p)
-	{
-	    message ("Pattern format missing closing brace");
-	    break;
-	}
-	/* extract the element name */
-	memcpy (scratch1, format, p - format);
-	scratch1[p - format] = '\0';
+static void
+interpret_percent (FcFormatContext *c,
+		   FcPattern       *pat,
+		   FcStrBuf        *buf)
+{
+    int width, before;
+    FcChar8 *p;
+    FcPatternElt *e;
 
-	e = FcPatternObjectFindElt (pat, FcObjectFromName ((const char *) scratch1));
-	if (e)
-	{
-	    FcValueListPtr l;
-	    l = FcPatternEltValues(e);
-	    FcNameUnparseValueList (buf, l, '\0');
-	}
+    if (!consume_char (c, '%'))
+	return;
+
+    if (*c->format == '%') /* "%%" */
+    {
+	FcStrBufChar (buf, *c->format++);
+	return;
+    }
+
+    /* parse an optional width specifier */
+    width = strtol ((const char *) c->format, (char **) &c->format, 10);
+
+    before = buf->len;
+
+    if (!consume_char (c, '{'))
+	return;
 
-	p++; /* skip over '}' */
-	format = p;
-	break;
+    p = (FcChar8 *) strpbrk ((const char *) c->format, "}" /* "=?:}" */);
+    if (!p)
+    {
+	message ("Pattern format missing closing brace for opening brace at %d",
+		 c->format-1 - c->format_orig + 1);
+	return;
     }
-    default:
-	message ("Pattern format has invalid character after '%%' at %d",
-		 format - format_orig);
-	break;
+    /* extract the element name */
+    memcpy (c->scratch, c->format, p - c->format);
+    c->scratch[p - c->format] = '\0';
+    c->format = p;
+
+    e = FcPatternObjectFindElt (pat, FcObjectFromName ((const char *) c->scratch));
+    if (e)
+    {
+	FcValueListPtr l;
+	l = FcPatternEltValues(e);
+	FcNameUnparseValueList (buf, l, '\0');
     }
 
+    /* handle filters, if any */
+    /* XXX */
+
     /* align to width */
     if (!buf->failed)
     {
@@ -122,7 +160,7 @@ interpret_percent (FcPattern *pat,
 	}
     }
 
-    return format;
+    consume_char (c, '}');
 }
 
 static char escaped_char(const char ch)
@@ -139,54 +177,43 @@ static char escaped_char(const char ch)
     }
 }
 
-static const FcChar8 *
-interpret (FcPattern *pat,
-	   FcStrBuf *buf,
-	   const FcChar8 *format,
-	   FcChar8 term)
+static void
+interpret (FcFormatContext *c,
+	   FcPattern       *pat,
+	   FcStrBuf        *buf,
+	   FcChar8          term)
 {
-    const FcChar8 *end;
-
-    for (end = format; *end && *end != term;)
+    for (; *c->format && *c->format != term;)
     {
-	switch (*end)
+	switch (*c->format)
 	{
 	case '\\':
-	    end++; /* skip over '\\' */
-	    FcStrBufChar (buf, escaped_char (*end++));
+	    c->format++; /* skip over '\\' */
+	    if (*c->format)
+		FcStrBufChar (buf, escaped_char (*c->format++));
 	    continue;
 	case '%':
-	    end++; /* skip over '%' */
-	    if (*end == '%')
-		break;
-	    end = interpret_percent (pat, buf, end);
+	    interpret_percent (c, pat, buf);
 	    continue;
 	}
-	FcStrBufChar (buf, *end);
-	end++;
+	FcStrBufChar (buf, *c->format++);
     }
-    if (*end != term)
+    if (*c->format != term)
 	message ("Pattern format ended while looking for '%c'", term);
-
-    return end;
 }
 
 FcChar8 *
 FcPatternFormat (FcPattern *pat, const FcChar8 *format)
 {
-    int len;
     FcStrBuf buf;
+    FcFormatContext c;
 
     FcStrBufInit (&buf, 0, 0);
-    len = strlen ((const char *) format);
-    scratch1 = malloc (len);
-    scratch2 = malloc (len);
-    format_orig = format;
+    FcFormatContextInit (&c, format);
 
-    interpret (pat, &buf, format, '\0');
+    interpret (&c, pat, &buf, '\0');
 
-    free (scratch1);
-    free (scratch2);
+    FcFormatContextDone (&c);
     return FcStrBufDone (&buf);
 }
 
commit c493c3b770ab12ab1c61a4fb10419c490d2b5ba6
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Feb 9 18:18:59 2009 -0500

    [fcformat] Add support for width modifiers
    
    One can do '%30{family}' for example.  Or '%-30{family}' for the
    left-aligned version.

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index c89706a..22a89ad 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -405,11 +405,13 @@ which should be freed by the caller using free().
 
 Converts the given pattern into text format described by the format specifier.
 The format specifier is similar to a C style printf string, which the
-printf(2) man page provides a good introduction to. However, as RPM already
-knows the type of data that is being printed, you must omit the type
+printf(2) man page provides a good introduction to. However, as fontconfig
+already knows the type of data that is being printed, you must omit the type
 specifier. In its place put the element name you wish to print enclosed in
 curly braces ({}). For example, to print the family name and style the
 pattern, use the format "%{family} %{style}\n".
+There can be an option width specifier after the percent sign and before
+the opening brace.  The width modifier acts similar to those in printf.
 The return value refers to newly allocated memory which should be freed by the
 caller using free().
 @@
diff --git a/src/fcformat.c b/src/fcformat.c
index 80c99c3..a780f56 100644
--- a/src/fcformat.c
+++ b/src/fcformat.c
@@ -49,6 +49,13 @@ interpret_percent (FcPattern *pat,
 		   FcStrBuf *buf,
 		   const FcChar8 *format)
 {
+    int width, before;
+
+    /* parse an optional width specifier */
+    width = strtol (format, (char **) &format, 10);
+
+    before = buf->len;
+
     switch (*format) {
     case '{':
     {
@@ -61,7 +68,7 @@ interpret_percent (FcPattern *pat,
 	if (!p)
 	{
 	    message ("Pattern format missing closing brace");
-	    return format;
+	    break;
 	}
 	/* extract the element name */
 	memcpy (scratch1, format, p - format);
@@ -76,13 +83,46 @@ interpret_percent (FcPattern *pat,
 	}
 
 	p++; /* skip over '}' */
-	return p;
+	format = p;
+	break;
     }
     default:
 	message ("Pattern format has invalid character after '%%' at %d",
 		 format - format_orig);
-	return format;
+	break;
+    }
+
+    /* align to width */
+    if (!buf->failed)
+    {
+	int after, len;
+
+	after = buf->len;
+
+	len = after - before;
+
+	if (len < -width)
+	{
+	    /* left align */
+	    while (len++ < -width)
+		FcStrBufChar (buf, ' ');
+	}
+	else if (len < width)
+	{
+	    /* right align */
+	    while (len++ < width)
+		FcStrBufChar (buf, ' ');
+	    len = after - before;
+	    memmove (buf->buf + buf->len - len,
+		     buf->buf + buf->len - width,
+		     len);
+	    memset (buf->buf + buf->len - width,
+		    ' ',
+		    width - len);
+	}
     }
+
+    return format;
 }
 
 static char escaped_char(const char ch)
commit 967267556c762d2746f819eca85f3c59fbb95875
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Feb 5 23:37:16 2009 -0500

    Further update Sinhala orthography (#19288)

diff --git a/fc-lang/si.orth b/fc-lang/si.orth
index 1651db7..8f8f15d 100644
--- a/fc-lang/si.orth
+++ b/fc-lang/si.orth
@@ -51,12 +51,15 @@
 # Semi Consonants
 0d82-0d83
 # Independent Vowels
-0d85-0d8e
+0d85-0d8d
+# 0d8e IRUUYANNA (Level 1, but not in modern use)
 # 0d8f ILUYANNA (Level 3)
 # 0d90 ILUUYANNA (Level 3)
 0d91-0d96
 # Consonants
-0d9a-0db1
+0d9a-0da5
+#0da6 SANYAKA JAYANNA (Level 1, but not in modern use)
+0da7-0db1
 0db3-0dbb
 0dbd
 0dc0-0dc6
commit b697fa2523a6d3fe091e14710d14720a9e051bf1
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Feb 5 02:46:16 2009 -0500

    [cache] After writing cache to file, update the internal copy to reflect this
    
    Only do it for small caches though.  For large cache we'd better off loading
    the cache file again, mmap()ing it.
    
    Based on patch from Diego Santa Cruz.

diff --git a/src/fccache.c b/src/fccache.c
index f35304a..ba28ddc 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -844,6 +844,8 @@ FcDirCacheWrite (FcCache *cache, FcConfig *config)
     FcStrList	    *list;
     FcChar8	    *cache_dir = NULL;
     FcChar8	    *test_dir;
+    FcCacheSkip     *skip;
+    struct stat     cache_stat;
     int		    magic;
     int		    written;
 
@@ -929,6 +931,20 @@ FcDirCacheWrite (FcCache *cache, FcConfig *config)
     close(fd);
     if (!FcAtomicReplaceOrig(atomic))
         goto bail4;
+
+    /* If the file is small, update the cache chain entry such that the
+     * new cache file is not read again.  If it's large, we don't do that
+     * such that we reload it, using mmap, which is shared across processes.
+     */
+    if (cache->size < FC_CACHE_MIN_MMAP &&
+	(skip = FcCacheFindByAddr (cache)) &&
+	FcStat (cache_hashed, &cache_stat))
+    {
+	skip->cache_dev = cache_stat.st_dev;
+	skip->cache_ino = cache_stat.st_ino;
+	skip->cache_mtime = cache_stat.st_mtime;
+    }
+
     FcStrFree (cache_hashed);
     FcAtomicUnlock (atomic);
     FcAtomicDestroy (atomic);
commit ecce22d40cfbc50bbe19891035c06bbbeef5232f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Feb 4 15:58:36 2009 -0500

    Update Sinhala orthography (#19288)
    
    Patch from Harshula Jayasuriya.

diff --git a/fc-lang/si.orth b/fc-lang/si.orth
index 9310815..1651db7 100644
--- a/fc-lang/si.orth
+++ b/fc-lang/si.orth
@@ -24,26 +24,49 @@
 #
 # Sinhala/Sinhalese (si)
 #
-# The glyph list is based on information available at:
+# The document SINHALA CHARACTER CODE FOR INFORMATION INTERCHANGE, PART 2:
+# REQUIREMENTS AND METHODS OF TEST (SLS 1134:PART2:2007 UDC 003.035:003.336)
+# describes three (3) levels of compliance for Unicode Sinhala fonts. The
+# first level describes the minimum requirements for SLS certification. The
+# third level includes the first and second level requirements and additional
+# requirements.
 #
-# http://std.dkuug.dk/JTC1/SC2/WG2/docs/n2737.pdf
+# To get a copy of this document contact the Sri Lanka Standards Institution
+# (http://www.slsi.lk/).
 #
-# and Unicode 5.0 Section 10.1.
+# The Unicode document: http://unicode.org/charts/PDF/U0D80.PDF
+# describes the base for level 3 compliance.
 #
+# Level 1 compliance can be described as level 3 with the exclusion of:
+# U+0D8F ILUYANNA (Independent Vowel)
+# U+0D90 ILUUYANNA (Independent Vowel)
+# U+0DDF GAYANUKITTA (Dependent Vowel)
+# U+0DF3 DIGA GAYANUKITTA (Dependent Vowel)
+# U+0DF4 KUNDDALIYA (Punctuation)
+#
+# Sinhala and SLS1134 experts can be contacted at:
+# sinhala-technical at lists.sourceforge.net
+# ltrl at ucsc.cmb.ac.lk
+#
+# Semi Consonants
 0d82-0d83
-0d85-0d8d
-#0d8e-0d90 are not in modern use (SLS 1134 p. 4)
+# Independent Vowels
+0d85-0d8e
+# 0d8f ILUYANNA (Level 3)
+# 0d90 ILUUYANNA (Level 3)
 0d91-0d96
-0d9a-0da5
-#0da6 is not in modern use (SLS 1134 p. 5)
-0da7-0db1
+# Consonants
+0d9a-0db1
 0db3-0dbb
 0dbd
 0dc0-0dc6
+# Dependent Vowels
 0dca
 0dcf-0dd4
 0dd6
-0dd8-0ddf
+0dd8-0dde
+# 0ddf GAYANUKITTA (Level 3)
 0df2
-#0df3 is not in modern use (SLS 1134 p. 6)
-#0df4 is historical punctuation (Unicode 5.0 pp. 342-343)
+# 0df3 DIGA GAYANUKITTA (Level 3)
+# Punctuation
+# 0df4 KUNDDALIYA (Level 3)
commit 6bb5d72fe788f897e30ab39ac7585c624282303f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 3 21:06:15 2009 -0500

    [fccache] Make sure the cache is current when reusing from open caches
    
    Reported by Diego Santa Cruz.

diff --git a/src/fccache.c b/src/fccache.c
index 53df860..f35304a 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -538,7 +538,13 @@ FcDirCacheMapFd (int fd, struct stat *fd_stat, struct stat *dir_stat)
 	return NULL;
     cache = FcCacheFindByStat (fd_stat);
     if (cache)
-	return cache;
+    {
+	if (FcCacheTimeValid (cache, dir_stat))
+	    return cache;
+	FcDirCacheUnload (cache);
+	cache = NULL;
+    }
+
     /*
      * Lage cache files are mmap'ed, smaller cache files are read. This
      * balances the system cost of mmap against per-process memory usage.
commit f9feb587faa5a3df0f03e5ba945d228b8b49ec51
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 3 20:50:29 2009 -0500

    [win32] Do not remove leading '\\' such that network paths work
    
    Raised by Diego Santa Cruz.

diff --git a/src/fcstr.c b/src/fcstr.c
index dc7807d..2f2cd4d 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -943,7 +943,13 @@ FcConvertDosPath (char *str)
   char *dest = str;
   char *end = str + len;
   char last = 0;
-  
+
+  if (*p == '\\')
+    {
+      *p = '/';
+      p++;
+      dest++;
+    }
   while (p < end)
     {
       if (*p == '\\')
commit 1cdf7efb224867c41b2dea48884d87c5fb67bdaf
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 3 20:35:10 2009 -0500

    [win32] Expand "APPSHAREFONTDIR" to ../share/fonts relative to binary location
    
    Proposed by Diego Santa Cruz.

diff --git a/src/fcxml.c b/src/fcxml.c
index 15d4d30..14da713 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -2081,6 +2081,27 @@ FcEndElement(void *userData, const XML_Char *name)
 		if (p) *p = '\0';
 		strcat (data, "\\fonts");
 	}
+	else if (strcmp (data, "APPSHAREFONTDIR") == 0)
+	{
+		char *p;
+		FcStrFree (data);
+		data = malloc (1000);
+		if (!data)
+		{
+			FcConfigMessage (parse, FcSevereError, "out of memory");
+			break;
+		}
+		FcMemAlloc (FC_MEM_STRING, 1000);
+		if(!GetModuleFileName(NULL, data, 1000))
+		{
+			FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed");
+			FcStrFree (data);
+			break;
+		}
+		p = strrchr (data, '\\');
+		if (p) *p = '\0';
+		strcat (data, "\\..\\share\\fonts");
+	}
 	else if (strcmp (data, "WINDOWSFONTDIR") == 0)
 	{
 	    int rc;
commit e62058abb9cf04b3f2270a45f3c0760287f12033
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 3 20:31:30 2009 -0500

    [win32] Fix usage of GetFullPathName()
    
    Diego Santa Cruz pointed out that we are using that API wrongly.
    The forth argument is a pointer to a pointer.  Turns out we don't
    need that arugment and it accepts NULL, so just pass that.

diff --git a/src/fcstr.c b/src/fcstr.c
index 1d94692..dc7807d 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -968,10 +968,8 @@ FcStrCanonFilename (const FcChar8 *s)
 {
 #ifdef _WIN32
     FcChar8 full[FC_MAX_FILE_LEN + 2];
-    FcChar8 basename[FC_MAX_FILE_LEN + 2];
     int size = GetFullPathName (s, sizeof (full) -1,
-				full,
-				basename);
+				full, NULL);
 
     if (size == 0)
 	perror ("GetFullPathName");
commit c4d557ab90c7ef6eccb998550190ccccde80670d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Feb 3 17:15:52 2009 -0500

    Add ICONV_LIBS to fontconfig.pc.in (#19606)

diff --git a/fontconfig.pc.in b/fontconfig.pc.in
index e2f6898..6d95f64 100644
--- a/fontconfig.pc.in
+++ b/fontconfig.pc.in
@@ -7,5 +7,5 @@ Name: Fontconfig
 Description: Font configuration and customization library
 Version: @VERSION@
 Libs: -L${libdir} -lfontconfig
-Libs.private: @EXPAT_LIBS@ @FREETYPE_LIBS@
+Libs.private: @EXPAT_LIBS@ @FREETYPE_LIBS@ @ICONV_LIBS@
 Cflags: -I${includedir}
commit 10609af4aa4030a15c19573198462fa002d2ef13
Author: Mike FABIAN <mfabian at suse.de>
Date:   Tue Feb 3 16:57:01 2009 -0500

    [conf] Disable hinting when emboldening (#19904)
    
    Hinting will be done before Embolden in freetype2,
    but in such case, Embolden will get wrong result
    on some glyph contours after applying hinting.
    Actually, hinting should be done after embolden, but we can't
    fix it in current freetype2. So as a workaround, just turn off
    hinting if we want to do embolden.

diff --git a/conf.d/90-synthetic.conf b/conf.d/90-synthetic.conf
index 63d9b89..6736423 100644
--- a/conf.d/90-synthetic.conf
+++ b/conf.d/90-synthetic.conf
@@ -60,5 +60,16 @@
 		<edit name="weight" mode="assign">
 			<const>bold</const>
 		</edit>
+		<!--
+		 Hinting will be done before Embolden in freetype2,
+		 but in such case, Embolden will get wrong result
+		 on some glyph contours after applying hinting.
+		 Actually, hinting should be done after embolden, but we can't
+		 fix it in current freetype2. So as a workaround, just turn off
+		 hinting if we want to do embolden.
+		-->
+		<edit name="hintstyle" mode="assign">
+			<const>hintnone</const>
+		</edit>
 	</match>
 </fontconfig>
commit fe00689cddb42df141d891c2cd5b4a8ea3a42816
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Mon Feb 2 00:27:58 2009 -0800

    Remove punctuation symbols from Asturian orthography (bug #19893)
    
    Also fix the URL for orthography.

diff --git a/fc-lang/ast.orth b/fc-lang/ast.orth
index 132b6e4..bc4ce67 100644
--- a/fc-lang/ast.orth
+++ b/fc-lang/ast.orth
@@ -21,16 +21,12 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Orthography from http://www.everytype.com/alphabets/asturian.pdf
+# Orthography from http://www.evertype.com/alphabets/asturian.pdf
 #
-# Asturian (AST)
+# Asturian/Bable/Leonese/Asturleonese (ast)
 #
-0040-005a
-0060-007a
-00a1
-00ab
-00bb
-00bf
+0041-005a
+0061-007a
 00c1
 00c9
 00cd
commit a4f651241e2db62bd058e773b4e5931d205af0f6
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 23:52:10 2009 -0800

    Rename Igbo from "ibo" to "ig" (bug #19892)

diff --git a/fc-lang/ibo.orth b/fc-lang/ibo.orth
deleted file mode 100644
index 4b84ac2..0000000
--- a/fc-lang/ibo.orth
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# fontconfig/fc-lang/ibo.orth
-#
-# Copyright © 2002 Keith Packard
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Igbo (Ibo) (IBO)
-#
-# Orthography from http://www.eki.ee/letter
-#
-0041-005a
-0061-007a
-1eca
-1ecb
-1ecc
-1ecd
-1ee4
-1ee5
diff --git a/fc-lang/ig.orth b/fc-lang/ig.orth
new file mode 100644
index 0000000..de4ec6e
--- /dev/null
+++ b/fc-lang/ig.orth
@@ -0,0 +1,35 @@
+#
+# fontconfig/fc-lang/ig.orth
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Igbo (ig)
+#
+# Orthography from http://www.eki.ee/letter
+#
+0041-005a
+0061-007a
+1eca
+1ecb
+1ecc
+1ecd
+1ee4
+1ee5
commit ff71a83c207891323b487d9cbec0658e16ca11c3
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 22:14:53 2009 -0800

    Renamed az to az_az (bug #19889)

diff --git a/fc-lang/az.orth b/fc-lang/az.orth
deleted file mode 100644
index db2f32e..0000000
--- a/fc-lang/az.orth
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# fontconfig/fc-lang/az.orth
-#
-# Copyright © 2002 Keith Packard
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Azerbaijani (AZ)
-#
-# The complete orthography is from http://www.evertype.com
-#
-# This has been verified with the latin and cyrillic orthographies found at
-# http://www.eki.ee/letter
-#
-0041-005a
-0061-007a
-00C4	# LATIN CAPITAL LETTER A WITH DIAERESIS
-00C7	# LATIN CAPITAL LETTER C WITH CEDILLA
-00D6	# LATIN CAPITAL LETTER O WITH DIAERESIS
-00DC	# LATIN CAPITAL LETTER U WITH DIAERESIS
-00E4	# LATIN SMALL LETTER A WITH DIAERESIS
-00E7	# LATIN SMALL LETTER C WITH CEDILLA
-00F6	# LATIN SMALL LETTER O WITH DIAERESIS
-00FC	# LATIN SMALL LETTER U WITH DIAERESIS
-011E	# LATIN CAPITAL LETTER G WITH BREVE
-011F	# LATIN SMALL LETTER G WITH BREVE
-0130	# LATIN CAPITAL LETTER I WITH DOT ABOVE
-0131	# LATIN SMALL LETTER DOTLESS I
-015E	# LATIN CAPITAL LETTER S WITH CEDILLA *
-015F	# LATIN SMALL LETTER S WITH CEDILLA *
-018F	# LATIN CAPITAL LETTER SCHWA
-0259	# LATIN SMALL LETTER SCHWA
-#02BC	# MODIFIER LETTER APOSTROPHE
-0408	# CYRILLIC CAPITAL LETTER JE
-0410-044f	# CYRILLIC CAPITAL AND SMALL
-0458	# CYRILLIC SMALL LETTER JE
-0493	# CYRILLIC SMALL LETTER GHE WITH STROKE
-0492	# CYRILLIC CAPITAL LETTER GHE WITH STROKE
-049C	# CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-049D	# CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-04AE	# CYRILLIC CAPITAL LETTER STRAIGHT U
-04AF	# CYRILLIC SMALL LETTER STRAIGHT U
-04B8	# CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-04B9	# CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04BA	# CYRILLIC CAPITAL LETTER SHHA
-04BB	# CYRILLIC SMALL LETTER SHHA
-04D8	# CYRILLIC CAPITAL LETTER SCHWA
-04D9	# CYRILLIC SMALL LETTER SCHWA
-04E8	# CYRILLIC CAPITAL LETTER BARRED O
-04E9	# CYRILLIC SMALL LETTER BARRED O
diff --git a/fc-lang/az_az.orth b/fc-lang/az_az.orth
new file mode 100644
index 0000000..9439f3e
--- /dev/null
+++ b/fc-lang/az_az.orth
@@ -0,0 +1,66 @@
+#
+# fontconfig/fc-lang/az_az.orth
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Azerbaijani in Azerbaijan (az-AZ)
+#
+# The complete orthography is from http://www.evertype.com
+#
+# This has been verified with the latin and cyrillic orthographies found at
+# http://www.eki.ee/letter
+#
+0041-005a
+0061-007a
+00C4	# LATIN CAPITAL LETTER A WITH DIAERESIS
+00C7	# LATIN CAPITAL LETTER C WITH CEDILLA
+00D6	# LATIN CAPITAL LETTER O WITH DIAERESIS
+00DC	# LATIN CAPITAL LETTER U WITH DIAERESIS
+00E4	# LATIN SMALL LETTER A WITH DIAERESIS
+00E7	# LATIN SMALL LETTER C WITH CEDILLA
+00F6	# LATIN SMALL LETTER O WITH DIAERESIS
+00FC	# LATIN SMALL LETTER U WITH DIAERESIS
+011E	# LATIN CAPITAL LETTER G WITH BREVE
+011F	# LATIN SMALL LETTER G WITH BREVE
+0130	# LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131	# LATIN SMALL LETTER DOTLESS I
+015E	# LATIN CAPITAL LETTER S WITH CEDILLA *
+015F	# LATIN SMALL LETTER S WITH CEDILLA *
+018F	# LATIN CAPITAL LETTER SCHWA
+0259	# LATIN SMALL LETTER SCHWA
+#02BC	# MODIFIER LETTER APOSTROPHE
+0408	# CYRILLIC CAPITAL LETTER JE
+0410-044f	# CYRILLIC CAPITAL AND SMALL
+0458	# CYRILLIC SMALL LETTER JE
+0493	# CYRILLIC SMALL LETTER GHE WITH STROKE
+0492	# CYRILLIC CAPITAL LETTER GHE WITH STROKE
+049C	# CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049D	# CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+04AE	# CYRILLIC CAPITAL LETTER STRAIGHT U
+04AF	# CYRILLIC SMALL LETTER STRAIGHT U
+04B8	# CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04B9	# CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04BA	# CYRILLIC CAPITAL LETTER SHHA
+04BB	# CYRILLIC SMALL LETTER SHHA
+04D8	# CYRILLIC CAPITAL LETTER SCHWA
+04D9	# CYRILLIC SMALL LETTER SCHWA
+04E8	# CYRILLIC CAPITAL LETTER BARRED O
+04E9	# CYRILLIC SMALL LETTER BARRED O
commit e53956ee5e6340c5c8a78bf65e9c9df0757af439
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 20:46:23 2009 -0800

    Add Berber orthographies in Latin and Tifinagh scripts (bug #19881)

diff --git a/fc-lang/ber_dz.orth b/fc-lang/ber_dz.orth
new file mode 100644
index 0000000..bfd20f7
--- /dev/null
+++ b/fc-lang/ber_dz.orth
@@ -0,0 +1,27 @@
+#
+# fontconfig/fc-lang/ber_dz.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Berber in Algeria (ber-DZ)
+#
+# Algerian Berber is usually Kabyle
+include kab.orth
diff --git a/fc-lang/ber_ma.orth b/fc-lang/ber_ma.orth
new file mode 100644
index 0000000..3e63e91
--- /dev/null
+++ b/fc-lang/ber_ma.orth
@@ -0,0 +1,46 @@
+#
+# fontconfig/fc-lang/ber_ma.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Berber in Morocco (ber-MA)
+#
+# Tifinagh is the official script for Berber language(s) in Morocco.
+# The character list comes from Institut Royal de la Culture Amazighe (IRCAM).
+# Sources:
+# http://www.omniglot.com/writing/tifinagh.htm
+# http://www.win.tue.nl/~aeb/natlang/berber/tifinagh/tifinagh.html
+2D30-2D31
+2D33
+2D37
+2D39
+2D3B-2D3D
+2D40
+2D43-2D45
+2D47
+2D49-2D4A
+2D4D-2D4F
+2D53-2D56
+2D59-2D5C
+2D5F
+2D61-2D63
+2D65
+2D6F
diff --git a/fc-lang/kab.orth b/fc-lang/kab.orth
new file mode 100644
index 0000000..8513fd7
--- /dev/null
+++ b/fc-lang/kab.orth
@@ -0,0 +1,42 @@
+#
+# fontconfig/fc-lang/kab.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Kabyle (kab)
+#
+# Sources:
+# http://www.omniglot.com/writing/kabyle.php
+# http://www.geonames.de/alphkl.html
+#
+0041-005A
+0061-007A
+010C-010D
+0190
+0194
+01E6-01E7
+025B
+0263
+1E0C-1E0D
+1E24-1E25
+1E62-1E63
+1E6C-1E6D
+1E92-1E93
commit 3765a7483e1d313c6d0ced8a20cd5a258165f8e0
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 20:42:54 2009 -0800

    Add Upper Sorbian (hsb) orthography (bug #19870)

diff --git a/fc-lang/hsb.orth b/fc-lang/hsb.orth
new file mode 100644
index 0000000..b03e454
--- /dev/null
+++ b/fc-lang/hsb.orth
@@ -0,0 +1,42 @@
+#
+# fontconfig/fc-lang/hsb.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Upper Sorbian (hsb)
+#
+# Sources:
+# http://www.omniglot.com/writing/sorbian.htm
+# http://www.evertype.com/alphabets/upper-sorbian.pdf
+#
+# Q, V, and X are not used
+0041-005A
+0061-007A
+00D3
+00F3
+0106-0107
+010C-010D
+011A-011B
+0141-0144
+0158-0159
+0160-0161
+0179-017A
+017D-017E
commit 9f54d9db2912287358c1c01771a1bc8263e9539a
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 20:41:14 2009 -0800

    Add Kinyarwanda (rw) orthography (bug #19868)

diff --git a/fc-lang/rw.orth b/fc-lang/rw.orth
new file mode 100644
index 0000000..954c333
--- /dev/null
+++ b/fc-lang/rw.orth
@@ -0,0 +1,31 @@
+#
+# fontconfig/fc-lang/rw.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Kinyarwanda (rw)
+#
+# Sources:
+# http://www.omniglot.com/writing/kinyarwanda.htm
+#
+# Q and X are not used
+0041-005A
+0061-007A
commit 3889de9e3c0a0b6aacd0558ce41953d9aa35878b
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 20:39:03 2009 -0800

    Add Malay (ms) orthography (bug #19867)

diff --git a/fc-lang/ms.orth b/fc-lang/ms.orth
new file mode 100644
index 0000000..e6b03bd
--- /dev/null
+++ b/fc-lang/ms.orth
@@ -0,0 +1,32 @@
+#
+# fontconfig/fc-lang/ms.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Malay (ms)
+#
+# Sources:
+# http://www.omniglot.com/writing/malay.htm
+# * CLDR exemplar set for Malay:
+# http://unicode.org/cldr/data/common/main/ms.xml
+#
+0041-005A
+0061-007A
commit 0896d14ab7fe5a7233102f5ff7c59199f893c734
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 20:36:55 2009 -0800

    Add Kashubian (csb) orth file (bug #19866)

diff --git a/fc-lang/csb.orth b/fc-lang/csb.orth
new file mode 100644
index 0000000..4f69fff
--- /dev/null
+++ b/fc-lang/csb.orth
@@ -0,0 +1,46 @@
+#
+# fontconfig/fc-lang/csb.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Kashubian (CSB)
+#
+# Sources:
+# http://www.omniglot.com/writing/kashubian.htm
+# http://www.evertype.com/alphabets/kashubian.pdf
+#
+0041-005A
+0061-007A
+00C3
+00C9
+00CB
+00D2-00D4
+00D9
+00E3
+00E9
+00EB
+00F2-00F4
+00F9
+0104-0105
+#0118-0119 # E with ogonek - only in evertype
+0141-0144
+#015A-015B # S with acute - only in evertype
+017B-017C
commit a32870457eb8f35a19193bc3e9e66db9948186fb
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 20:29:12 2009 -0800

    Rename "ku" to "ku_am", add "ku_iq" (bug #19853).
    
    For Iraq, we are assuming its the same Arabic orthography used in Iran.
    
    According to Ethnologue, Kurdish is written in Cyrillic in Armenia:
    http://www.ethnologue.com/show_language.asp?code=kmr
    
    Turkey and Syria need more research.

diff --git a/fc-lang/ku.orth b/fc-lang/ku.orth
deleted file mode 100644
index ae20870..0000000
--- a/fc-lang/ku.orth
+++ /dev/null
@@ -1,94 +0,0 @@
-#
-# fontconfig/fc-lang/ku.orth
-#
-# Copyright © 2002 Keith Packard
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Coverage taken from TITUS (Thesaurus Indogermanischer Text und
-# Sprachmaterialien)
-#
-# http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm
-#
-# Kurdish (KU)
-#
-0410
-0411
-0412
-0413
-0414
-0415
-0416
-0417
-0418
-0419
-041a
-041b
-041c
-041d
-041e
-041f
-0420
-0421
-0422
-0423
-0424
-0425
-0427
-0428
-0429
-042a
-042d
-0430
-0431
-0432
-0433
-0434
-0435
-0436
-0437
-0438
-0439
-043a
-043b
-043c
-043d
-043e
-043f
-0440
-0441
-0442
-0443
-0444
-0445
-0447
-0448
-0449
-044a
-044d
-04ba
-04bb
-04d8
-04d9
-04e6
-04e7
-051	# Latin Q
-057	# Latin W
-071	# Latin q
-077	# Latin w
diff --git a/fc-lang/ku_am.orth b/fc-lang/ku_am.orth
new file mode 100644
index 0000000..d87d025
--- /dev/null
+++ b/fc-lang/ku_am.orth
@@ -0,0 +1,94 @@
+#
+# fontconfig/fc-lang/ku_am.orth
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Coverage taken from TITUS (Thesaurus Indogermanischer Text und
+# Sprachmaterialien)
+#
+# http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm
+#
+# Kurdish in Armenia (ku-AM)
+#
+0410
+0411
+0412
+0413
+0414
+0415
+0416
+0417
+0418
+0419
+041a
+041b
+041c
+041d
+041e
+041f
+0420
+0421
+0422
+0423
+0424
+0425
+0427
+0428
+0429
+042a
+042d
+0430
+0431
+0432
+0433
+0434
+0435
+0436
+0437
+0438
+0439
+043a
+043b
+043c
+043d
+043e
+043f
+0440
+0441
+0442
+0443
+0444
+0445
+0447
+0448
+0449
+044a
+044d
+04ba
+04bb
+04d8
+04d9
+04e6
+04e7
+051	# Latin Q
+057	# Latin W
+071	# Latin q
+077	# Latin w
diff --git a/fc-lang/ku_iq.orth b/fc-lang/ku_iq.orth
new file mode 100644
index 0000000..d2a0655
--- /dev/null
+++ b/fc-lang/ku_iq.orth
@@ -0,0 +1,27 @@
+#
+# fontconfig/fc-lang/ku_iq.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Kurdish in Iraq (ku-IQ)
+#
+# Assuming Iraqi Kurdish uses the same orthography as Iranian Kurdish
+include ku_ir.orth
commit 2199c6e321c92cf42711180b483e3f1b0091d980
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 20:21:45 2009 -0800

    Rename Venda from "ven" to "ve" (bug #19852)
    
    Since ISO 639-1 code exists, we should use it.

diff --git a/fc-lang/ve.orth b/fc-lang/ve.orth
new file mode 100644
index 0000000..122bcff
--- /dev/null
+++ b/fc-lang/ve.orth
@@ -0,0 +1,34 @@
+#
+# fontconfig/fc-lang/ve.orth
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Venda (ve)
+#
+# Orthography from http://www.eki.ee/letter
+#
+0041-005a
+0061-007a
+1e12-1e13
+1e3c-1e3d
+1e44-1e45
+1e4a-1e4b
+1e70-1e71
diff --git a/fc-lang/ven.orth b/fc-lang/ven.orth
deleted file mode 100644
index 30de015..0000000
--- a/fc-lang/ven.orth
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# fontconfig/fc-lang/ven.orth
-#
-# Copyright © 2002 Keith Packard
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Venda (VEN)
-#
-# Orthography from http://www.eki.ee/letter
-#
-0041-005a
-0061-007a
-1e12-1e13
-1e3c-1e3d
-1e44-1e45
-1e4a-1e4b
-1e70-1e71
commit d7dd87649c07b7b73cf4ecfe7273cb0fcedc5be0
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 20:00:15 2009 -0800

    Change Turkmen orth from Cyrillic to Latin (bug #19849)

diff --git a/fc-lang/tk.orth b/fc-lang/tk.orth
index 21b8c86..7a8a985 100644
--- a/fc-lang/tk.orth
+++ b/fc-lang/tk.orth
@@ -1,106 +1,44 @@
 #
 # fontconfig/fc-lang/tk.orth
 #
-# Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Coverage taken from TITUS (Thesaurus Indogermanischer Text und
-# Sprachmaterialien)
-#
-# http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm
-#
-# Turkmen (TK)
-#
-0401
-0410
-0411
-0412
-0413
-0414
-0415
-0416
-0417
-0418
-0419
-041a
-041b
-041c
-041d
-041e
-041f
-0420
-0421
-0422
-0423
-0424
-0425
-0426
-0427
-0428
-0429
-042a
-042b
-042c
-042d
-042e
-042f
-0430
-0431
-0432
-0433
-0434
-0435
-0436
-0437
-0438
-0439
-043a
-043b
-043c
-043d
-043e
-043f
-0440
-0441
-0442
-0443
-0444
-0445
-0446
-0447
-0448
-0449
-044a
-044b
-044c
-044d
-044e
-044f
-0451
-#0472		# CYRILLIC CAPITAL LETTER FITA
-#0473		# CYRILLIC SMALL LETTER FITA
-0496
-0497
-04a2
-04a3
-04ae
-04af
-04d8
-04d9
+# Turkmen (tk)
+#
+# Sources:
+# http://www.omniglot.com/writing/turkmen.htm
+# http://www.itscj.ipsj.or.jp/ISO-IR/230.pdf
+# http://www.eki.ee/wgrs/rom2_tk.htm
+#
+# C, Q, V, and X are not used
+0041-005A
+0061-007A
+00C4
+00C7
+00D6
+00DC-00DD
+00E4
+00E7
+00F6
+00FC-00FD
+0147-0148
+015E-015F
+017D-017E
commit b25a42963d70f9ead6bc026f57ae2433b4ac5e85
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 19:35:37 2009 -0800

    Fix doubly encoded UTF-8 in comments (bug #19848)

diff --git a/fc-lang/nb.orth b/fc-lang/nb.orth
index d44c071..17544ab 100644
--- a/fc-lang/nb.orth
+++ b/fc-lang/nb.orth
@@ -21,5 +21,5 @@
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Norwegian Bokmäl (NB)
+# Norwegian Bokmål (nb)
 include no.orth
commit f3c214a1cd799dc1eb965ced8107f52cc9dd065e
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 19:29:21 2009 -0800

    Split Mongolian orth to Mongolia and China (bug #19847)
    
    The orth file for Mongolia uses Cyrillic, while that of
    China uses the classical Mongolian script.

diff --git a/fc-lang/mn.orth b/fc-lang/mn.orth
deleted file mode 100644
index 01ddf63..0000000
--- a/fc-lang/mn.orth
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# fontconfig/fc-lang/mn.orth
-#
-# Copyright © 2002 Keith Packard
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
-# advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
-# representations about the suitability of this software for any purpose.  It
-# is provided "as is" without express or implied warranty.
-#
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# Mongolian (MN)
-#
-# Taken from the Unicode coverage of this language
-#
-# Basic letters
-1820-1842
-# Todo letters
-1843-185c
-# Sibe letters
-185d-1872
-# Manchu letters
-1873-1877
-# Extensions for Sanskrit and Tibetan
-1880-18a9
diff --git a/fc-lang/mn_cn.orth b/fc-lang/mn_cn.orth
new file mode 100644
index 0000000..b8bdc24
--- /dev/null
+++ b/fc-lang/mn_cn.orth
@@ -0,0 +1,37 @@
+#
+# fontconfig/fc-lang/mn_cn.orth
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Mongolian in China (mn-CN)
+#
+# Taken from the Unicode coverage of this language
+#
+# Basic letters
+1820-1842
+# Todo letters
+1843-185c
+# Sibe letters
+185d-1872
+# Manchu letters
+1873-1877
+# Extensions for Sanskrit and Tibetan
+1880-18a9
diff --git a/fc-lang/mn_mn.orth b/fc-lang/mn_mn.orth
new file mode 100644
index 0000000..af5d602
--- /dev/null
+++ b/fc-lang/mn_mn.orth
@@ -0,0 +1,35 @@
+#
+# fontconfig/fc-lang/mn_mn.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Mongolian in Mongolia (mn-MN)
+#
+# Sources:
+# http://www.omniglot.com/writing/mongolian.htm
+# http://www.viahistoria.com/SilverHorde/main.html?research/MongolScripts.html
+# http://unicode.org/cldr/data/common/main/mn.xml
+#
+0401
+0410-044F
+0451
+04AE-04AF
+04E8-04E9
commit 0d5f9a2592634e6f9c74f48bbad9f6b443d1b574
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 18:55:31 2009 -0800

    Add Filipino orth, alias Tagalog to Filipino (bug #19846)
    
    The previous Tagalog orthography used the Tagalog script, which is not in
    modern use.

diff --git a/fc-lang/fil.orth b/fc-lang/fil.orth
new file mode 100644
index 0000000..0f27195
--- /dev/null
+++ b/fc-lang/fil.orth
@@ -0,0 +1,45 @@
+#
+# fontconfig/fc-lang/fil.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The author(s) make(s) no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Filipino (fil)
+#
+# Sources:
+# * Paul Morrow, "A Brief Guide to Filipino Pronunciation",
+# http://www.mts.net/~pmorrow/filpro.htm
+# * Komisyon sa Wikang Filipino, "Ang Ortograpiya ng Wikang Pambansa",
+# http://wika.pbwiki.com/f/ORTOPDF.pdf (in Filipino)
+# * CLDR exemplar set for Filipino:
+# http://unicode.org/cldr/data/common/main/fil.xml
+#
+0041-005A
+0061-007A
+00C0-00C2
+00C8-00CA
+00CC-00CE
+00D1-00D4
+00D9-00DB
+00E0-00E2
+00E8-00EA
+00EC-00EE
+00F1-00F4
+00F9-00FB
diff --git a/fc-lang/tl.orth b/fc-lang/tl.orth
index 430cf07..6ab5c2d 100644
--- a/fc-lang/tl.orth
+++ b/fc-lang/tl.orth
@@ -1,34 +1,27 @@
 #
 # fontconfig/fc-lang/tl.orth
 #
-# Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Tagalog (TL)
+# Tagalog (tl)
 #
-# Taken from the Unicode coverage of this language
-#
-# Independent vowels
-1700-1702
-# Consonants
-1703-170c
-170e-1711
-# Dependent vowel signs
-1712-1713
+# Since Filipino is standardized Tagalog, we just include that
+include fil.orth
commit 2bf7d799bf8c9e116f08864f4f62575a6a25b380
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 18:52:41 2009 -0800

    Remove Sinhala characters not in modern use (bug #19288)

diff --git a/fc-lang/si.orth b/fc-lang/si.orth
index 12f3c9c..9310815 100644
--- a/fc-lang/si.orth
+++ b/fc-lang/si.orth
@@ -2,33 +2,41 @@
 # fontconfig/fc-lang/si.orth
 #
 # Copyright © 2002 Keith Packard
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Sinhala (Sinhalese) (SI)
+# Sinhala/Sinhalese (si)
 #
-# Taken from the Unicode coverage of Sinhala
-# http://unicode.org/charts/PDF/U0D80.PDF
+# The glyph list is based on information available at:
+#
+# http://std.dkuug.dk/JTC1/SC2/WG2/docs/n2737.pdf
+#
+# and Unicode 5.0 Section 10.1.
 #
 0d82-0d83
-0d85-0d96
-0d9a-0db1
+0d85-0d8d
+#0d8e-0d90 are not in modern use (SLS 1134 p. 4)
+0d91-0d96
+0d9a-0da5
+#0da6 is not in modern use (SLS 1134 p. 5)
+0da7-0db1
 0db3-0dbb
 0dbd
 0dc0-0dc6
@@ -36,4 +44,6 @@
 0dcf-0dd4
 0dd6
 0dd8-0ddf
-0df2-0df4
+0df2
+#0df3 is not in modern use (SLS 1134 p. 6)
+#0df4 is historical punctuation (Unicode 5.0 pp. 342-343)
commit 2f3b07fe80415873ef3e0e0a7e753a55e766986b
Author: Roozbeh Pournader <roozbeh at gmail.com>
Date:   Sun Feb 1 18:32:21 2009 -0800

    Correct Sindhi orthography to use Arabic script (bug #17140)
    
    The previous version used the Devanagari script. But in both Pakistan and
    India, Sindhi is generally written in Arabic. The Devanagari data could
    prove to be useful, if we decide on how we should name such files (see
    bug #17208 and bug #19869).

diff --git a/fc-lang/sd.orth b/fc-lang/sd.orth
index d06549c..3fab421 100644
--- a/fc-lang/sd.orth
+++ b/fc-lang/sd.orth
@@ -1,28 +1,58 @@
 #
 # fontconfig/fc-lang/sd.orth
 #
-# Copyright © 2008 Rahul Bhalerao
+# Copyright © 2009 Roozbeh Pournader
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
-# documentation, and that the name of Keith Packard not be used in
+# documentation, and that the name of the author(s) not be used in
 # advertising or publicity pertaining to distribution of the software without
-# specific, written prior permission.  Keith Packard makes no
+# specific, written prior permission.  The author(s) make(s) no
 # representations about the suitability of this software for any purpose.  It
 # is provided "as is" without express or implied warranty.
 #
-# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# Sindhi (Devanagari script) (SD)
+# Sindhi (sd)
 #
-include hi.orth
-097b-097c	# Sindhi implosives
-097e-097f	# Sindhi implosives
+# Sindhi is mostly written in the Arabic script in both Pakistan and India.
+#
+# Sources:
+# * http://www.user.uni-hannover.de/nhtcapri/sindhi-alphabet.html
+# * http://www.omniglot.com/writing/sindhi.htm
+# * http://tdil.mit.gov.in/sindhidesignguideoct02.pdf
+#
+# Some of the Sindhi letters are not available as presentation forms in
+# Unicode, so we go with general-purpose Arabic letters.
+#
+0621-0622
+0624
+0626-0628
+062A-063A
+0641-0642
+0644-0648
+064A
+067A-067B
+067D-0680
+0683-0684
+0686-0687
+068A
+068C-068D
+068F
+0699
+06A6
+06A9-06AA
+06AF
+06B1
+06B3
+06BB
+06BE
+#06FD-06FD # signs are usually not included in orthographies
commit 574805478c19cdb487aea96922ff7177dd0844d7
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sat Jan 31 03:38:19 2009 -0500

    [fcfreetype] Fix typo in GB2312 encoding name string (#19845)
    
    This was causing failure when opening iconv converter, hence rendering
    GB2312-encoded fonts with no other usable encoding unusable.

diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index 7e30fdf..0e8f883 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -120,7 +120,7 @@ static const FcFtEncoding   fcFtEncoding[] = {
  {  TT_PLATFORM_MACINTOSH,	TT_MAC_ID_JAPANESE,	"SJIS" },
  {  TT_PLATFORM_MICROSOFT,	TT_MS_ID_UNICODE_CS,	"UTF-16BE" },
  {  TT_PLATFORM_MICROSOFT,	TT_MS_ID_SJIS,		"SJIS-WIN" },
- {  TT_PLATFORM_MICROSOFT,	TT_MS_ID_GB2312,	"GB3212" },
+ {  TT_PLATFORM_MICROSOFT,	TT_MS_ID_GB2312,	"GB2312" },
  {  TT_PLATFORM_MICROSOFT,	TT_MS_ID_BIG_5,		"BIG-5" },
  {  TT_PLATFORM_MICROSOFT,	TT_MS_ID_WANSUNG,	"Wansung" },
  {  TT_PLATFORM_MICROSOFT,	TT_MS_ID_JOHAB,		"Johab" },
commit 575ee6cddd391857339f57331d2677fcc868369e
Author: Karl Tomlinson <bugs.freedesktop at karlt.net>
Date:   Tue Jan 27 03:35:51 2009 -0500

    Change FcCharSetMerge API
    
    To only work on writable charsets.  Also, return a bool indicating whether
    the merge changed the charset.
    
    Also changes the implementation of FcCharSetMerge and FcCharSetIsSubset

diff --git a/doc/fccharset.fncs b/doc/fccharset.fncs
index 0dd7d1a..de06aa4 100644
--- a/doc/fccharset.fncs
+++ b/doc/fccharset.fncs
@@ -98,17 +98,19 @@ Returns a set including only those chars found in either <parameter>a</parameter
 Returns a set including only those chars found in <parameter>a</parameter> but not <parameter>b</parameter>. 
 @@
 
- at RET@		FcCharSet *
+ at RET@		FcBool
 @FUNC@		FcCharSetMerge
- at TYPE1@		const FcCharSet *	@ARG1@		a
+ at TYPE1@		FcCharSet *		@ARG1@		a
 @TYPE2@		const FcCharSet *	@ARG2@		b
+ at TYPE3@		FcBool *		@ARG3@		changed
 @PURPOSE@	Merge charsets
 @DESC@
-If <parameter>a</parameter> is NULL, returns a newly-created copy of <parameter>b</parameter>.
-If <parameter>a</parameter> is an FcCharSet object owned by fontconfig that
-cannot be modified, it returns the union of <parameter>a</parameter> and
-<parameter>b</parameter> in a newly-created FcCharSet object.
-Otherwise, adds all chars in <parameter>b</parameter> to <parameter>a</parameter> and returns <parameter>a</parameter>.  In other words, this is an in-place versionof FcCharSetUnion.
+Adds all chars in <parameter>b</parameter> to <parameter>a</parameter>.
+In other words, this is an in-place version of FcCharSetUnion.
+If <parameter>changed</parameter> is not NULL, then it returns whether any new
+chars from <parameter>b</parameter> were added to <parameter>a</parameter>.
+Returns FcFalse on failure, either when <parameter>a</parameter> is a constant
+set or from running out of memory.
 @@
 
 @RET@		FcBool 
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 606580d..99e2f04 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -439,8 +439,8 @@ FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
 FcPublic FcCharSet*
 FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
 
-FcPublic FcCharSet *
-FcCharSetMerge (FcCharSet *a, const FcCharSet *b);
+FcPublic FcBool
+FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed);
 
 FcPublic FcBool
 FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
diff --git a/src/fccharset.c b/src/fccharset.c
index 2daa39d..1885c26 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -81,38 +81,50 @@ FcCharSetDestroy (FcCharSet *fcs)
 }
 
 /*
- * Locate the leaf containing the specified char, return
- * its index if it exists, otherwise return negative of
+ * Search for the leaf containing with the specified num.
+ * Return its index if it exists, otherwise return negative of
  * the (position + 1) where it should be inserted
  */
 
+
 static int
-FcCharSetFindLeafPos (const FcCharSet *fcs, FcChar32 ucs4)
+FcCharSetFindLeafForward (const FcCharSet *fcs, int start, FcChar16 num)
 {
     FcChar16		*numbers = FcCharSetNumbers(fcs);
     FcChar16		page;
-    int			low = 0;
+    int			low = start;
     int			high = fcs->num - 1;
 
     if (!numbers)
 	return -1;
-    ucs4 >>= 8;
     while (low <= high)
     {
 	int mid = (low + high) >> 1;
 	page = numbers[mid];
-	if (page == ucs4)
+	if (page == num)
 	    return mid;
-	if (page < ucs4)
+	if (page < num)
 	    low = mid + 1;
 	else
 	    high = mid - 1;
     }
-    if (high < 0 || (high < fcs->num && numbers[high] < ucs4))
+    if (high < 0 || (high < fcs->num && numbers[high] < num))
 	high++;
     return -(high + 1);
 }
 
+/*
+ * Locate the leaf containing the specified char, return
+ * its index if it exists, otherwise return negative of
+ * the (position + 1) where it should be inserted
+ */
+
+static int
+FcCharSetFindLeafPos (const FcCharSet *fcs, FcChar32 ucs4)
+{
+    return FcCharSetFindLeafForward (fcs, 0, ucs4 >> 8);
+}
+
 static FcCharLeaf *
 FcCharSetFindLeaf (const FcCharSet *fcs, FcChar32 ucs4)
 {
@@ -452,67 +464,52 @@ FcCharSetUnion (const FcCharSet *a, const FcCharSet *b)
     return FcCharSetOperate (a, b, FcCharSetUnionLeaf, FcTrue, FcTrue);
 }
 
-FcCharSet *
-FcCharSetMerge (FcCharSet *a, const FcCharSet *b)
+FcBool
+FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed)
 {
-    FcCharSet	    *fcs;
-    FcCharSetIter    ai, bi;
+    int		ai = 0, bi = 0;
+    FcChar16	an, bn;
 
-    if (a == NULL) {
-	fcs = a = FcCharSetCreate ();
-    } else if (a->ref == FC_REF_CONSTANT) {
-	fcs = FcCharSetCreate ();
-    } else
-	fcs = a;
+    if (a->ref == FC_REF_CONSTANT)
+	return FcFalse;
 
-    if (fcs == NULL)
-	return NULL;
+    if (changed) {
+	*changed = !FcCharSetIsSubset(b, a);
+	if (!*changed)
+	    return FcTrue;
+    }
 
-    FcCharSetIterStart (a, &ai);
-    FcCharSetIterStart (b, &bi);
-    while (ai.leaf || bi.leaf)
+    while (bi < b->num)
     {
-	if (ai.ucs4 < bi.ucs4)
-	{
-	    if (!FcCharSetAddLeaf (fcs, ai.ucs4, ai.leaf))
-		goto bail;
+	an = ai < a->num ? FcCharSetNumbers(a)[ai] : ~0;
+	bn = FcCharSetNumbers(b)[bi];
 
-	    FcCharSetIterNext (a, &ai);
-	}
-	else if (bi.ucs4 < ai.ucs4)
+	if (an < bn)
 	{
-	    if (!FcCharSetAddLeaf (fcs, bi.ucs4, bi.leaf))
-		goto bail;
-
-	    FcCharSetIterNext (b, &bi);
+	    ai = FcCharSetFindLeafForward (a, ai + 1, bn);
+	    if (ai < 0)
+		ai = -ai - 1;
 	}
 	else
 	{
-	    FcCharLeaf  leaf;
-
-	    if (FcCharSetUnionLeaf (&leaf, ai.leaf, bi.leaf))
+	    FcCharLeaf *bl = FcCharSetLeaf(b, bi);
+	    if (bn < an)
 	    {
-		if (!FcCharSetAddLeaf (fcs, ai.ucs4, &leaf))
-		    goto bail;
+		if (!FcCharSetAddLeaf (a, bn << 8, bl))
+		    return FcFalse;
+	    }
+	    else
+	    {
+		FcCharLeaf *al = FcCharSetLeaf(a, ai);
+		FcCharSetUnionLeaf (al, al, bl);
 	    }
 
-	    FcCharSetIterNext (a, &ai);
-	    FcCharSetIterNext (b, &bi);
+	    ai++;
+	    bi++;
 	}
     }
 
-    if (fcs != a)
-	FcCharSetDestroy (a);
-
-    return fcs;
-
-bail:
-    FcCharSetDestroy (fcs);
-
-    if (fcs != a)
-	FcCharSetDestroy (a);
-
-    return NULL;
+    return FcTrue;
 }
 
 static FcBool
@@ -687,29 +684,9 @@ FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b)
 	    return FcFalse;
 	else
 	{
-	    int	    low = bi + 1;
-	    int	    high = b->num - 1;
-
-	    /*
-	     * Search for page 'an' in 'b'
-	     */
-	    while (low <= high)
-	    {
-		int mid = (low + high) >> 1;
-		bn = FcCharSetNumbers(b)[mid];
-		if (bn == an)
-		{
-		    high = mid;
-		    break;
-		}
-		if (bn < an)
-		    low = mid + 1;
-		else
-		    high = mid - 1;
-	    }
-	    bi = high;
-	    while (bi < b->num && FcCharSetNumbers(b)[bi] < an)
-		bi++;
+	    bi = FcCharSetFindLeafForward (b, bi + 1, an);
+	    if (bi < 0)
+		bi = -bi - 1;
 	}
     }
     /*
diff --git a/src/fcmatch.c b/src/fcmatch.c
index b86cbbc..e06444c 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -606,38 +606,45 @@ FcSortCompare (const void *aa, const void *ab)
 }
 
 static FcBool
-FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **cs, FcBool trim, FcBool build_cs)
+FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **csp, FcBool trim)
 {
-    FcCharSet	*ncs;
-    FcSortNode	*node;
+    FcBool ret = FcFalse;
+    FcCharSet *cs;
+
+    cs = 0;
+    if (trim || csp)
+    {
+	cs = FcCharSetCreate ();
+	if (cs == NULL)
+	    goto bail;
+    }
 
     while (nnode--)
     {
-	node = *n++;
+	FcSortNode	*node = *n++;
+	FcBool		adds_chars = FcFalse;
 
 	/*
 	 * Only fetch node charset if we'd need it
 	 */
-	if (trim || build_cs)
+	if (cs)
 	{
+	    FcCharSet	*ncs;
+
 	    if (FcPatternGetCharSet (node->pattern, FC_CHARSET, 0, &ncs) !=
 		FcResultMatch)
 	        continue;
+
+	    if (!FcCharSetMerge (cs, ncs, &adds_chars))
+		goto bail;
 	}
 
 	/*
 	 * If this font isn't a subset of the previous fonts,
 	 * add it to the list
 	 */
-	if (!trim || !*cs || !FcCharSetIsSubset (ncs, *cs))
+	if (!trim || adds_chars)
 	{
-	    if (trim || build_cs)
-	    {
-		*cs = FcCharSetMerge (*cs, ncs);
-		if (*cs == NULL)
-		    return FcFalse;
-	    }
-
 	    FcPatternReference (node->pattern);
 	    if (FcDebug () & FC_DBG_MATCHV)
 	    {
@@ -647,11 +654,23 @@ FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **cs, FcBool tri
 	    if (!FcFontSetAdd (fs, node->pattern))
 	    {
 		FcPatternDestroy (node->pattern);
-		return FcFalse;
+		goto bail;
 	    }
 	}
     }
-    return FcTrue;
+    if (csp)
+    {
+	*csp = cs;
+	cs = 0;
+    }
+
+    ret = FcTrue;
+
+bail:
+    if (cs)
+	FcCharSetDestroy (cs);
+
+    return ret;
 }
 
 void
@@ -675,7 +694,6 @@ FcFontSetSort (FcConfig	    *config,
     FcSortNode	    **nodeps, **nodep;
     int		    nnodes;
     FcSortNode	    *new;
-    FcCharSet	    *cs;
     int		    set;
     int		    f;
     int		    i;
@@ -803,19 +821,9 @@ FcFontSetSort (FcConfig	    *config,
     if (!ret)
 	goto bail1;
 
-    cs = 0;
-
-    if (!FcSortWalk (nodeps, nnodes, ret, &cs, trim, (csp!=0)))
+    if (!FcSortWalk (nodeps, nnodes, ret, csp, trim))
 	goto bail2;
 
-    if (csp)
-	*csp = cs;
-    else
-    {
-        if (cs)
-            FcCharSetDestroy (cs);
-    }
-
     free (nodes);
 
     if (FcDebug() & FC_DBG_MATCH)
@@ -826,8 +834,6 @@ FcFontSetSort (FcConfig	    *config,
     return ret;
 
 bail2:
-    if (cs)
-	FcCharSetDestroy (cs);
     FcFontSetDestroy (ret);
 bail1:
     free (nodes);
commit b8860e2faffa8b3f62b3c7aafd2d3b6962566f41
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jan 23 14:17:08 2009 -0500

    [fcmatch] Fix crash when no fonts are available.

diff --git a/src/fcmatch.c b/src/fcmatch.c
index 556fffe..b86cbbc 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -550,7 +550,10 @@ FcFontSetMatch (FcConfig    *config,
 	    return 0;
     }
     best = FcFontSetMatchInternal (config, sets, nsets, p, result);
-    return FcFontRenderPrepare (config, p, best);
+    if (best)
+	return FcFontRenderPrepare (config, p, best);
+    else
+	return NULL;
 }
 
 FcPattern *
@@ -575,7 +578,10 @@ FcFontMatch (FcConfig	*config,
 	sets[nsets++] = config->fonts[FcSetApplication];
 
     best = FcFontSetMatchInternal (config, sets, nsets, p, result);
-    return FcFontRenderPrepare (config, p, best);
+    if (best)
+	return FcFontRenderPrepare (config, p, best);
+    else
+	return NULL;
 }
 
 typedef struct _FcSortNode {
commit c08216c6f468ce22cb7c0c1959019a7caad3484a
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jan 19 17:02:55 2009 -0500

    Let make expand fc_cachedir/FC_CACHEDIR (bug #18675)
    
    configure replaces a NONE prefix with the default prefix too late.
    So we move fonts.conf creation to Makefile, such that prefix is correctly
    expanded. Ugly, but works.

diff --git a/Makefile.am b/Makefile.am
index e982dd2..ec7a5d9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -32,6 +32,7 @@ EXTRA_DIST = \
         fontconfig.spec.in \
         fontconfig.spec \
 	fontconfig-zip.in
+CLEANFILES = fonts.conf
 DISTCLEANFILES = config.cache ChangeLog doltcompile
 MAINTAINERCLEANFILES = \
 	$(srcdir)/aclocal.m4 \
@@ -81,7 +82,17 @@ ChangeLog:
 
 .PHONY: ChangeLog
 
-install-data-local:
+fonts.conf: fonts.conf.in Makefile
+	sed \
+		-e 's, at FC_CACHEDIR\@,$(FC_CACHEDIR),g' \
+		-e 's, at FC_DEFAULT_FONTS\@,$(FC_DEFAULT_FONTS),g' \
+		-e 's, at FC_FONTPATH\@,$(FC_FONTPATH),g' \
+		-e 's, at PACKAGE\@,$(PACKAGE),g' \
+		-e 's, at VERSION\@,$(VERSION),g' \
+		$< > $@.tmp && \
+	mv $@.tmp $@
+
+install-data-local: fonts.conf
 	$(mkinstalldirs) $(DESTDIR)$(configdir) $(DESTDIR)$(fc_cachedir)
 	if [ -f $(DESTDIR)$(configdir)/fonts.conf ]; then \
 	  echo "backing up existing $(DESTDIR)$(configdir)/fonts.conf"; \
diff --git a/configure.in b/configure.in
index bbca05a..7a40ada 100644
--- a/configure.in
+++ b/configure.in
@@ -455,7 +455,7 @@ no|yes)
 	if test "$os_win32" = "yes"; then
 		fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
 	else
-		fc_cachedir=`eval echo "${localstatedir}/cache/"${PACKAGE}`
+		fc_cachedir='${localstatedir}/cache/${PACKAGE}'
 	fi
 	;;
 *)
@@ -571,6 +571,5 @@ doc/version.sgml
 test/Makefile
 fontconfig.spec
 fontconfig.pc
-fonts.conf
 fontconfig-zip
 ])
commit 98d765a53ba33d28283e499ebd1098d27cbe6d02
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jan 15 19:27:53 2009 -0500

    Cleanup all manpage.* files
    
    Recent doc2man generates files called manpage.log.  This was breaking build.

diff --git a/doc/Makefile.am b/doc/Makefile.am
index d6f0d7b..419cc61 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -121,8 +121,7 @@ func.refs: local-fontconfig-devel.sgml $(DOC_FUNCS_SGML) version.sgml confdir.sg
 	$(DOC2MAN) -o devel-man local-fontconfig-devel.sgml && \
 	mv devel-man/manpage.refs func.refs && \
 	mv devel-man/*.3 . && \
-	$(RM) devel-man/manpage.links && \
-	rm -f devel-man/manpage.log
+	$(RM) devel-man/manpage.* && \
 	rmdir devel-man
 
 local-fontconfig-devel.sgml: fontconfig-devel.sgml
@@ -133,7 +132,7 @@ $(DOC_FUNCS_SGML): edit-sgml$(EXEEXT) $(FNCS_TMPL)
 fonts-conf.5: local-fontconfig-user.sgml version.sgml confdir.sgml
 	$(RM) $@
 	$(DOC2MAN) local-fontconfig-user.sgml && \
-	$(RM) manpage.refs manpage.links
+	$(RM) manpage.*
 	
 local-fontconfig-user.sgml: fontconfig-user.sgml
 	$(LN_S) $< $@
diff --git a/fc-cache/Makefile.am b/fc-cache/Makefile.am
index 49c59ec..b00a3e2 100644
--- a/fc-cache/Makefile.am
+++ b/fc-cache/Makefile.am
@@ -55,7 +55,7 @@ if USEDOCBOOK
 ${man_MANS}: ${SGML}	
 	$(RM) $@
 	$(DOC2MAN) ${SGML}
-	$(RM) manpage.refs manpage.links
+	$(RM) manpage.*
 
 all-local: $(man_MANS)
 
diff --git a/fc-cat/Makefile.am b/fc-cat/Makefile.am
index 50ad7a7..e10204a 100644
--- a/fc-cat/Makefile.am
+++ b/fc-cat/Makefile.am
@@ -46,7 +46,7 @@ if USEDOCBOOK
 ${man_MANS}: ${SGML}	
 	$(RM) $@
 	$(DOC2MAN) ${SGML}
-	$(RM) manpage.refs manpage.links
+	$(RM) manpage.*
 
 all-local: $(man_MANS)
 
diff --git a/fc-list/Makefile.am b/fc-list/Makefile.am
index 84517e7..55a8e4d 100644
--- a/fc-list/Makefile.am
+++ b/fc-list/Makefile.am
@@ -46,7 +46,7 @@ if USEDOCBOOK
 ${man_MANS}: ${SGML}
 	$(RM) $@
 	$(DOC2MAN) ${SGML}
-	$(RM) manpage.refs manpage.links
+	$(RM) manpage.*
 
 all-local: $(man_MANS)
 
diff --git a/fc-match/Makefile.am b/fc-match/Makefile.am
index 1ca036f..ae44761 100644
--- a/fc-match/Makefile.am
+++ b/fc-match/Makefile.am
@@ -46,7 +46,7 @@ if USEDOCBOOK
 ${man_MANS}: ${SGML}
 	$(RM) $@
 	$(DOC2MAN) ${SGML}
-	$(RM) manpage.refs manpage.links
+	$(RM) manpage.*
 
 all-local: $(man_MANS)
 
diff --git a/fc-query/Makefile.am b/fc-query/Makefile.am
index 9b4aa53..6536d70 100644
--- a/fc-query/Makefile.am
+++ b/fc-query/Makefile.am
@@ -46,7 +46,7 @@ if USEDOCBOOK
 ${man_MANS}: ${SGML}
 	$(RM) $@
 	$(DOC2MAN) ${SGML}
-	$(RM) manpage.refs manpage.links
+	$(RM) manpage.*
 
 all-local: $(man_MANS)
 
diff --git a/fc-scan/Makefile.am b/fc-scan/Makefile.am
index cb7f5ab..918deaa 100644
--- a/fc-scan/Makefile.am
+++ b/fc-scan/Makefile.am
@@ -46,7 +46,7 @@ if USEDOCBOOK
 ${man_MANS}: ${SGML}
 	$(RM) $@
 	$(DOC2MAN) ${SGML}
-	$(RM) manpage.refs manpage.links
+	$(RM) manpage.*
 
 all-local: $(man_MANS)
 
commit 41af588f543ca5c0efaeb699992376d89cb35763
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jan 15 19:12:37 2009 -0500

    [fc-match] Accept list of elements like fc-list (bug #13017)
    
    Also make --verbose not ignore list of elements and only print those.
    Update docs.

diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index f7a66b5..470b4b9 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -76,13 +76,13 @@ usage (char *program, int error)
     fprintf (file, "List fonts matching [pattern]\n");
     fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
-    fprintf (file, "  -v, --verbose        display entire font pattern\n");
+    fprintf (file, "  -v, --verbose        display entire font pattern verbosely\n");
     fprintf (file, "  -f, --format=FORMAT  use the given output format\n");
     fprintf (file, "  -q, --quiet          suppress all normal output, exit 1 if no fonts matched\n");
     fprintf (file, "  -V, --version        display font config version and exit\n");
     fprintf (file, "  -h, --help           display this help and exit\n");
 #else
-    fprintf (file, "  -v         (verbose) display entire font pattern\n");
+    fprintf (file, "  -v         (verbose) display entire font pattern verbosely\n");
     fprintf (file, "  -f FORMAT  (format)  use the given output format\n");
     fprintf (file, "  -q,        (quiet)   suppress all normal output, exit 1 if no fonts matched\n");
     fprintf (file, "  -V         (version) display font config version and exit\n");
@@ -144,13 +144,12 @@ main (int argc, char **argv)
     if (argv[i])
     {
 	pat = FcNameParse ((FcChar8 *) argv[i]);
-	if (!verbose)
-	    while (argv[++i])
-	    {
-		if (!os)
-		    os = FcObjectSetCreate ();
-		FcObjectSetAdd (os, argv[i]);
-	    }
+	while (argv[++i])
+	{
+	    if (!os)
+		os = FcObjectSetCreate ();
+	    FcObjectSetAdd (os, argv[i]);
+	}
     }
     else
 	pat = FcPatternCreate ();
@@ -170,9 +169,6 @@ main (int argc, char **argv)
 
 	for (j = 0; j < fs->nfont; j++)
 	{
-	    FcChar8 *font;
-	    FcChar8 *file;
-
 	    if (verbose)
 	    {
 		FcPatternPrint (fs->fonts[j]);
@@ -187,11 +183,14 @@ main (int argc, char **argv)
 	    }
 	    else
 	    {
-		font = FcNameUnparse (fs->fonts[j]);
+		FcChar8 *str;
+		FcChar8 *file;
+
+		str = FcNameUnparse (fs->fonts[j]);
 		if (FcPatternGetString (fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch)
 		    printf ("%s: ", file);
-		printf ("%s\n", font);
-		free (font);
+		printf ("%s\n", str);
+		free (str);
 	    }
 	}
     }
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index cc98779..ffa0891 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -81,9 +81,9 @@ manpage.1: manpage.sgml
 
     <para><command>&dhpackage;</command> lists fonts and styles
       available on the system for applications using fontconfig.
-      With <option>--verbose</option>, the whole font pattern
-      for each font is printed, otherwise only the elements requested
-      are printed (family and style if none provided).</para>
+      If any elements are specified, only those are printed.
+      Otherwise family and style are printed, unless verbose
+      output is requested.</para>
   </refsect1>
   <refsect1>
     <title>OPTIONS</title>
@@ -98,9 +98,9 @@ manpage.1: manpage.sgml
           <option>--verbose</option>
         </term>
         <listitem>
-          <para>Print whole font pattern for each match.  Provided
-	        <replaceable>element</replaceable>s are ignored in this
-		case.</para>
+          <para>Print verbose output of the whole font pattern for each match,
+	        or <replaceable>element</replaceable>s if any is
+		provided.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
diff --git a/fc-match/fc-match.c b/fc-match/fc-match.c
index c402905..6f3d2dc 100644
--- a/fc-match/fc-match.c
+++ b/fc-match/fc-match.c
@@ -69,25 +69,25 @@ usage (char *program, int error)
 {
     FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (file, "usage: %s [-savVh] [-f FORMAT] [--sort] [--all] [--verbose] [--format=FORMAT] [--version] [--help] [pattern]\n",
+    fprintf (file, "usage: %s [-savVh] [-f FORMAT] [--sort] [--all] [--verbose] [--format=FORMAT] [--version] [--help] [pattern] {element...}\n",
 	     program);
 #else
-    fprintf (file, "usage: %s [-savVh] [-f FORMAT] [pattern]\n",
+    fprintf (file, "usage: %s [-savVh] [-f FORMAT] [pattern] {element...}\n",
 	     program);
 #endif
-    fprintf (file, "List fonts matching [pattern]\n");
+    fprintf (file, "List best font matching [pattern]\n");
     fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
     fprintf (file, "  -s, --sort           display sorted list of matches\n");
     fprintf (file, "  -a, --all            display unpruned sorted list of matches\n");
-    fprintf (file, "  -v, --verbose        display entire font pattern\n");
+    fprintf (file, "  -v, --verbose        display entire font pattern verbosely\n");
     fprintf (file, "  -f, --format=FORMAT  use the given output format\n");
     fprintf (file, "  -V, --version        display font config version and exit\n");
     fprintf (file, "  -h, --help           display this help and exit\n");
 #else
     fprintf (file, "  -s,        (sort)    display sorted list of matches\n");
     fprintf (file, "  -a         (all)     display unpruned sorted list of matches\n");
-    fprintf (file, "  -v         (verbose) display entire font pattern\n");
+    fprintf (file, "  -v         (verbose) display entire font pattern verbosely\n");
     fprintf (file, "  -f FORMAT  (format)  use the given output format\n");
     fprintf (file, "  -V         (version) display font config version and exit\n");
     fprintf (file, "  -h         (help)    display this help and exit\n");
@@ -102,6 +102,7 @@ main (int argc, char **argv)
     int		sort = 0, all = 0;
     FcChar8     *format = NULL;
     int		i;
+    FcObjectSet *os = 0;
     FcFontSet	*fs;
     FcPattern   *pat;
     FcResult	result;
@@ -148,7 +149,15 @@ main (int argc, char **argv)
 	return 1;
     }
     if (argv[i])
+    {
 	pat = FcNameParse ((FcChar8 *) argv[i]);
+	while (argv[++i])
+	{
+	    if (!os)
+		os = FcObjectSetCreate ();
+	    FcObjectSetAdd (os, argv[i]);
+	}
+    }
     else
 	pat = FcPatternCreate ();
 
@@ -192,25 +201,35 @@ main (int argc, char **argv)
 
 	for (j = 0; j < fs->nfont; j++)
 	{
+	    FcPattern *font;
+
+	    font = FcPatternFilter (fs->fonts[j], os);
+
 	    if (verbose)
 	    {
-		FcPatternPrint (fs->fonts[j]);
+		FcPatternPrint (font);
 	    }
 	    else if (format)
 	    {
 	        FcChar8 *s;
 
-		s = FcPatternFormat (fs->fonts[j], format);
-		printf ("%s", s);
+		s = FcPatternFormat (font, format);
 		free (s);
 	    }
+	    else if (os)
+	    {
+		FcChar8 *str;
+		str = FcNameUnparse (font);
+		printf ("%s\n", str);
+		free (str);
+	    }
 	    else
 	    {
 		FcChar8	*family;
 		FcChar8	*style;
 		FcChar8	*file;
 
-		if (FcPatternGetString (fs->fonts[j], FC_FILE, 0, &file) != FcResultMatch)
+		if (FcPatternGetString (font, FC_FILE, 0, &file) != FcResultMatch)
 		    file = (FcChar8 *) "<unknown filename>";
 		else
 		{
@@ -218,16 +237,23 @@ main (int argc, char **argv)
 		    if (slash)
 			file = slash+1;
 		}
-		if (FcPatternGetString (fs->fonts[j], FC_FAMILY, 0, &family) != FcResultMatch)
+		if (FcPatternGetString (font, FC_FAMILY, 0, &family) != FcResultMatch)
 		    family = (FcChar8 *) "<unknown family>";
-		if (FcPatternGetString (fs->fonts[j], FC_STYLE, 0, &style) != FcResultMatch)
+		if (FcPatternGetString (font, FC_STYLE, 0, &style) != FcResultMatch)
 		    style = (FcChar8 *) "<unknown style>";
 
 		printf ("%s: \"%s\" \"%s\"\n", file, family, style);
 	    }
+
+	    FcPatternDestroy (font);
 	}
 	FcFontSetDestroy (fs);
     }
+
+    if (os)
+	FcObjectSetDestroy (os);
+
     FcFini ();
+
     return 0;
 }
diff --git a/fc-match/fc-match.sgml b/fc-match/fc-match.sgml
index 8c71033..86e6b46 100644
--- a/fc-match/fc-match.sgml
+++ b/fc-match/fc-match.sgml
@@ -73,7 +73,8 @@ manpage.1: manpage.sgml
       </group>
       <arg><option>--version</option></arg>
       <arg><option>--help</option></arg>
-      <arg><option><replaceable>font-pattern</replaceable></option></arg>
+      <sbr>
+      <arg><option><replaceable>pattern</replaceable></option> <arg rep="repeat"><option><replaceable>element</replaceable></option></arg> </arg>
       
      </cmdsynopsis>
   </refsynopsisdiv>
@@ -81,14 +82,15 @@ manpage.1: manpage.sgml
     <title>DESCRIPTION</title>
 
     <para><command>&dhpackage;</command> matches
-    <replaceable>font-pattern</replaceable> (empty
+    <replaceable>pattern</replaceable> (empty
 pattern by default) using the normal fontconfig matching rules to find
 the best font available.  If <option>--sort</option> is given, the sorted list of best
-matching fonts is displayed.  With <option>--verbose</option>, the whole font pattern
-for each match is printed, otherwise only the file, family and style
-are printed.  The <option>--all</option> option works like
+matching fonts is displayed.
+The <option>--all</option> option works like
 <option>--sort</option> except that no pruning is done on the list of fonts.</para>
-
+If any elements are specified, only those are printed.
+Otherwise short file name, family, and style are printed, unless verbose
+output is requested.</para>
   </refsect1>
   <refsect1>
     <title>OPTIONS</title>
@@ -120,7 +122,9 @@ are printed.  The <option>--all</option> option works like
           <option>--verbose</option>
         </term>
         <listitem>
-          <para>Print whole font pattern for each match.</para>
+          <para>Print verbose output of the whole font pattern for each match,
+	        or <replaceable>element</replaceable>s if any is
+		provided.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -150,13 +154,20 @@ are printed.  The <option>--all</option> option works like
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option><replaceable>font-pattern</replaceable></option>
+        <term><option><replaceable>pattern</replaceable></option>
         </term>
         <listitem>
           <para>Displays fonts matching
-                <replaceable>font-pattern</replaceable> (uses empty pattern by default).</para>
+                <replaceable>pattern</replaceable> (uses empty pattern by default).</para>
         </listitem>
       </varlistentry>
+      <varlistentry>
+        <term><option><replaceable>element</replaceable></option>
+        </term>
+        <listitem>
+          <para>If set, the <replaceable>element</replaceable> property
+                is displayed for matching fonts.</para>
+        </listitem>
     </variablelist>
   </refsect1>
 
commit 263f16ced279b0c09834bb4ca0df87fd0f76dcaf
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jan 15 19:12:27 2009 -0500

    Oops, fix FcPatternFilter

diff --git a/src/fcpat.c b/src/fcpat.c
index 4bff659..53eee0f 100644
--- a/src/fcpat.c
+++ b/src/fcpat.c
@@ -1027,7 +1027,7 @@ FcPatternFilter (FcPattern *p, const FcObjectSet *os)
 	    }
 	}
     }
-    return p;
+    return ret;
 
 bail0:
     FcPatternDestroy (ret);
commit 6bffe1a95bfd6609358d38590ad638c688232575
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jan 15 18:39:48 2009 -0500

    Add fc-scan too that runs FcFileScan/FcDirScan
    
    This is quite similar to fc-query, but calling FcFileScan/FcDirScan instead
    of FcFreeTypeQuery.

diff --git a/.gitignore b/.gitignore
index 1c44392..3879fa3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,6 +86,8 @@ fc-match/fc-match
 fc-match/fc-match.1
 fc-query/fc-query
 fc-query/fc-query.1
+fc-scan/fc-scan
+fc-scan/fc-scan.1
 src/fontconfig.def
 fcalias.h
 fcaliastail.h
diff --git a/Makefile.am b/Makefile.am
index 45c71bc..e982dd2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,7 +23,7 @@
 
 DOCSRC=@DOCSRC@
 SUBDIRS=fontconfig fc-case fc-lang fc-glyphname fc-arch src \
-	fc-cache fc-cat fc-list fc-match fc-query conf.d $(DOCSRC) test
+	fc-cache fc-cat fc-list fc-match fc-query fc-scan conf.d $(DOCSRC) test
 	 
 EXTRA_DIST = \
         fontconfig.pc.in \
diff --git a/configure.in b/configure.in
index bd843a2..bbca05a 100644
--- a/configure.in
+++ b/configure.in
@@ -565,6 +565,7 @@ fc-cat/Makefile
 fc-list/Makefile
 fc-match/Makefile
 fc-query/Makefile
+fc-scan/Makefile
 doc/Makefile
 doc/version.sgml
 test/Makefile
diff --git a/doc/fcfile.fncs b/doc/fcfile.fncs
index 7a98044..1f324b1 100644
--- a/doc/fcfile.fncs
+++ b/doc/fcfile.fncs
@@ -29,7 +29,7 @@
 @TYPE3@		FcFileCache *			@ARG3@		cache	
 @TYPE4@		FcBlanks *			@ARG4@		blanks	
 @TYPE5@		const FcChar8 *			@ARG5@		file	
- at TYPE6@		FcBool% 				@ARG6@		force	
+ at TYPE6@		FcBool% 			@ARG6@		force
 @PURPOSE@	scan a font file
 @DESC@
 Scans a single file and adds all fonts found to <parameter>set</parameter>.
@@ -61,15 +61,15 @@ returns FcFalse.
 @TYPE3@		FcFileCache *			@ARG3@		cache	
 @TYPE4@		FcBlanks *			@ARG4@		blanks	
 @TYPE5@		const FcChar8 *			@ARG5@		dir	
- at TYPE6@		FcBool% 				@ARG6@		force	
- at PURPOSE@	DEPRECATED: formerly used to scan a font directory
+ at TYPE6@		FcBool% 			@ARG6@		force
+ at PURPOSE@	scan a font directory without caching it
 @DESC@
-This function does nothing aside from returning FcFalse. It used to scan an
-entire directory and add all fonts found to
-<parameter>set</parameter>.  If <parameter>force</parameter> was FcTrue, then
-the directory and all files within it were scanned even if information was
-present in the per-directory cache file or <parameter>cache</parameter>. Any
-subdirectories found were added to <parameter>dirs</parameter>.
+If <parameter>cache</parameter> is not zero or if <parameter>force</parameter>
+is FcFalse, this function currently returns FcFalse.  Otherwise, it scans an
+entire directory and adds all fonts found to <parameter>set</parameter>.
+Any subdirectories found are added to <parameter>dirs</parameter>.  Calling
+this function does not create any cache files.  Use FcDirCacheRead() if
+caching is desired.
 @@
 
 @RET@		FcBool 	
diff --git a/fc-cache/fc-cache.sgml b/fc-cache/fc-cache.sgml
index 20a7e85..fb9f96d 100644
--- a/fc-cache/fc-cache.sgml
+++ b/fc-cache/fc-cache.sgml
@@ -179,6 +179,7 @@ manpage.1: manpage.sgml
       <command>fc-list</command>(1)
       <command>fc-match</command>(1)
       <command>fc-query</command>(1)
+      <command>fc-scan</command>(1)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-cat/fc-cat.sgml b/fc-cat/fc-cat.sgml
index 69482b5..b042dc6 100644
--- a/fc-cat/fc-cat.sgml
+++ b/fc-cat/fc-cat.sgml
@@ -135,6 +135,7 @@ manpage.1: manpage.sgml
       <command>fc-list</command>(1)
       <command>fc-match</command>(1)
       <command>fc-query</command>(1)
+      <command>fc-scan</command>(1)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index 5807ed1..cc98779 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -174,12 +174,13 @@ manpage.1: manpage.sgml
     <title>SEE ALSO</title>
 
     <para>
-      <command>fc-cat</command>(1)
-      <command>fc-cache</command>(1)
       <command>fc-match</command>(1)
-      <command>fc-query</command>(1)
       <function>FcFontList</function>(3)
       <function>FcPatternFormat</function>(3)
+      <command>fc-cat</command>(1)
+      <command>fc-cache</command>(1)
+      <command>fc-query</command>(1)
+      <command>fc-scan</command>(1)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-match/fc-match.sgml b/fc-match/fc-match.sgml
index bb0d84e..8c71033 100644
--- a/fc-match/fc-match.sgml
+++ b/fc-match/fc-match.sgml
@@ -164,13 +164,14 @@ are printed.  The <option>--all</option> option works like
     <title>SEE ALSO</title>
 
     <para>
-      <command>fc-cat</command>(1)
-      <command>fc-cache</command>(1)
       <command>fc-list</command>(1)
-      <command>fc-query</command>(1)
       <function>FcFontMatch</function>(3)
       <function>FcFontSort</function>(3)
       <function>FcPatternFormat</function>(3)
+      <command>fc-cat</command>(1)
+      <command>fc-cache</command>(1)
+      <command>fc-query</command>(1)
+      <command>fc-scal</command>(1)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-query/fc-query.sgml b/fc-query/fc-query.sgml
index e363db5..59fd635 100644
--- a/fc-query/fc-query.sgml
+++ b/fc-query/fc-query.sgml
@@ -152,12 +152,13 @@ manpage.1: manpage.sgml
     <title>SEE ALSO</title>
 
     <para>
+      <command>fc-scan</command>(1)
+      <function>FcFreeTypeQuery</function>(3)
+      <function>FcPatternFormat</function>(3)
       <command>fc-cat</command>(1)
       <command>fc-cache</command>(1)
       <command>fc-list</command>(1)
       <command>fc-match</command>(1)
-      <function>FcFreeTypeQuery</function>(3)
-      <function>FcPatternFormat</function>(3)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-scan/Makefile.am b/fc-scan/Makefile.am
new file mode 100644
index 0000000..cb7f5ab
--- /dev/null
+++ b/fc-scan/Makefile.am
@@ -0,0 +1,59 @@
+#
+#  fontconfig/fc-scan/Makefile.am
+#
+#  Copyright © 2003 Keith Packard
+#
+#  Permission to use, copy, modify, distribute, and sell this software and its
+#  documentation for any purpose is hereby granted without fee, provided that
+#  the above copyright notice appear in all copies and that both that
+#  copyright notice and this permission notice appear in supporting
+#  documentation, and that the name of Keith Packard not be used in
+#  advertising or publicity pertaining to distribution of the software without
+#  specific, written prior permission.  Keith Packard makes no
+#  representations about the suitability of this software for any purpose.  It
+#  is provided "as is" without express or implied warranty.
+#
+#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+#  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+#  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+#  PERFORMANCE OF THIS SOFTWARE.
+
+bin_PROGRAMS=fc-scan
+
+DOC2MAN = docbook2man
+
+FC_SCAN_SRC=${top_srcdir}/fc-scan
+
+SGML = ${FC_SCAN_SRC}/fc-scan.sgml
+
+INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+
+BUILT_MANS=fc-scan.1
+
+if ENABLE_DOCS
+man_MANS=${BUILT_MANS}
+endif
+
+EXTRA_DIST=fc-scan.sgml $(BUILT_MANS)
+
+fc_scan_LDADD = ${top_builddir}/src/libfontconfig.la
+
+if USEDOCBOOK
+
+${man_MANS}: ${SGML}
+	$(RM) $@
+	$(DOC2MAN) ${SGML}
+	$(RM) manpage.refs manpage.links
+
+all-local: $(man_MANS)
+
+clean-local:
+	$(RM) $(man_MANS)
+
+else
+all-local:
+clean-local:
+endif
diff --git a/fc-scan/fc-scan.c b/fc-scan/fc-scan.c
new file mode 100644
index 0000000..573f7ef
--- /dev/null
+++ b/fc-scan/fc-scan.c
@@ -0,0 +1,181 @@
+/*
+ * fontconfig/fc-scan/fc-scan.c
+ *
+ * Copyright © 2003 Keith Packard
+ * Copyright © 2008 Red Hat, Inc.
+ * Red Hat Author(s): Behdad Esfahbod
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#else
+#ifdef linux
+#define HAVE_GETOPT_LONG 1
+#endif
+#define HAVE_GETOPT 1
+#endif
+
+#include <fontconfig/fontconfig.h>
+#include <fontconfig/fcfreetype.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef HAVE_GETOPT
+#define HAVE_GETOPT 0
+#endif
+#ifndef HAVE_GETOPT_LONG
+#define HAVE_GETOPT_LONG 0
+#endif
+
+#if HAVE_GETOPT_LONG
+#undef  _GNU_SOURCE
+#define _GNU_SOURCE
+#include <getopt.h>
+static const struct option longopts[] = {
+    {"format", 1, 0, 'f'},
+    {"version", 0, 0, 'V'},
+    {"help", 0, 0, 'h'},
+    {NULL,0,0,0},
+};
+#else
+#if HAVE_GETOPT
+extern char *optarg;
+extern int optind, opterr, optopt;
+#endif
+#endif
+
+static void
+usage (char *program, int error)
+{
+    FILE *file = error ? stderr : stdout;
+#if HAVE_GETOPT_LONG
+    fprintf (file, "usage: %s [-Vh] [-f FORMAT] [--format FORMAT] [--version] [--help] font-file...\n",
+	     program);
+#else
+    fprintf (file, "usage: %s [-Vh] [-f FORMAT] font-file...\n",
+	     program);
+#endif
+    fprintf (file, "Scan font files and directories, and print resulting pattern(s)\n");
+    fprintf (file, "\n");
+#if HAVE_GETOPT_LONG
+    fprintf (file, "  -f, --format=FORMAT  use the given output format\n");
+    fprintf (file, "  -V, --version        display font config version and exit\n");
+    fprintf (file, "  -h, --help           display this help and exit\n");
+#else
+    fprintf (file, "  -f FORMAT  (format)  use the given output format\n");
+    fprintf (file, "  -V         (version) display font config version and exit\n");
+    fprintf (file, "  -h         (help)    display this help and exit\n");
+#endif
+    exit (error);
+}
+
+int
+main (int argc, char **argv)
+{
+    FcChar8     *format = NULL;
+    int		i;
+    FcFontSet   *fs;
+#if HAVE_GETOPT_LONG || HAVE_GETOPT
+    int		c;
+
+#if HAVE_GETOPT_LONG
+    while ((c = getopt_long (argc, argv, "f:Vh", longopts, NULL)) != -1)
+#else
+    while ((c = getopt (argc, argv, "f:Vh")) != -1)
+#endif
+    {
+	switch (c) {
+	case 'f':
+	    format = (FcChar8 *) strdup (optarg);
+	    break;
+	case 'V':
+	    fprintf (stderr, "fontconfig version %d.%d.%d\n",
+		     FC_MAJOR, FC_MINOR, FC_REVISION);
+	    exit (0);
+	case 'h':
+	    usage (argv[0], 0);
+	default:
+	    usage (argv[0], 1);
+	}
+    }
+    i = optind;
+#else
+    i = 1;
+#endif
+
+    if (i == argc)
+	usage (argv[0], 1);
+
+    if (!FcInit ())
+    {
+	fprintf (stderr, "Can't init font config library\n");
+	return 1;
+    }
+
+    fs = FcFontSetCreate ();
+
+    for (; i < argc; i++)
+    {
+	const FcChar8 *file = (FcChar8*) argv[i];
+
+	if (!FcFileIsDir (file))
+	    FcFileScan (fs, NULL, NULL, NULL, file, FcTrue);
+	else
+	{
+	    FcStrSet *dirs = FcStrSetCreate ();
+	    FcStrList *strlist = FcStrListCreate (dirs);
+	    do
+	    {
+		FcDirScan (fs, dirs, NULL, NULL, file, FcTrue);
+	    }
+	    while ((file = FcStrListNext (strlist)));
+	    FcStrListDone (strlist);
+	    FcStrSetDestroy (dirs);
+	}
+    }
+
+    for (i = 0; i < fs->nfont; i++)
+    {
+	FcPattern *pat;
+
+	pat = fs->fonts[i];
+
+	if (format)
+	{
+	    FcChar8 *s;
+
+	    s = FcPatternFormat (pat, format);
+	    printf ("%s", s);
+	    free (s);
+	}
+	else
+	{
+	    FcPatternPrint (pat);
+	}
+    }
+
+    FcFontSetDestroy (fs);
+
+    FcFini ();
+    return i > 0 ? 0 : 1;
+}
diff --git a/fc-scan/fc-scan.sgml b/fc-scan/fc-scan.sgml
new file mode 100644
index 0000000..c527c56
--- /dev/null
+++ b/fc-scan/fc-scan.sgml
@@ -0,0 +1,176 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+     page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
+     the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+     less'.  A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+	docbook-to-man $< > $@
+
+
+	The docbook-to-man binary is found in the docbook-to-man package.
+	Please remember that if you create the nroff version in one of the
+	debian/rules file targets (such as build), you will need to include
+	docbook-to-man in your Build-Depends control field.
+
+  -->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>Behdad</firstname>">
+  <!ENTITY dhsurname   "<surname>Esfahbod</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>Jan 15, 2009</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>behdad at behdad.org</email>">
+  <!ENTITY dhusername  "Behdad Esfahbod">
+  <!ENTITY dhucpackage "<refentrytitle>fc-scan</refentrytitle>">
+  <!ENTITY dhpackage   "fc-scan">
+
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2008</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>scan font files or directories</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+
+      <arg><option>-Vh</option></arg>
+      <sbr>
+      <group>
+        <arg><option>-f</option> <option><replaceable>format</replaceable></option></arg>
+        <arg><option>--format</option> <option><replaceable>format</replaceable></option></arg>
+      </group>
+      <arg><option>--version</option></arg>
+      <arg><option>--help</option></arg>
+      <arg choice="req" rep="repeat"><option><replaceable>file</replaceable></option></arg>
+
+     </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para><command>&dhpackage;</command> scans
+    <replaceable>file</replaceable>(s) recursively
+    and prints out font pattern for each face found.
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <para>This program follows the usual &gnu; command line syntax,
+      with long options starting with two dashes (`-').  A summary of
+      options is included below.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-f</option>
+          <option>--format</option>
+	  <option><replaceable>format</replaceable></option>
+        </term>
+        <listitem>
+          <para>Format output according to the format specifier
+	  <replaceable>format</replaceable>.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-V</option>
+          <option>--version</option>
+        </term>
+        <listitem>
+          <para>Show version of the program and exit.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-h</option>
+          <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show summary of options.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option><replaceable>file</replaceable></option>
+        </term>
+        <listitem>
+          <para>Scan <replaceable>file</replaceable> recursively for font faces.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title>RETURN CODES</title>
+    <para><command>fc-scan</command> returns error code 0 if at least one font
+    was found or 1 otherwise.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>SEE ALSO</title>
+
+    <para>
+      <command>fc-query</command>(1)
+      <function>FcFileScan</function>(3)
+      <function>FcDirScan</function>(3)
+      <function>FcPatternFormat</function>(3)
+      <command>fc-cat</command>(1)
+      <command>fc-cache</command>(1)
+      <command>fc-list</command>(1)
+      <command>fc-match</command>(1)
+    </para>
+
+    <para>The fontconfig user's guide, in HTML format:
+      <filename>/usr/share/doc/fontconfig/fontconfig-user.html</filename>.</para>
+
+ </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>This manual page was updated by &dhusername; &dhemail;.</para>
+
+  </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
commit 4074fd254e5ad707448d3665a034e0fbdf6de033
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jan 15 18:35:09 2009 -0500

    Revive FcConfigScan() (bug #17121)
    
    FcConfigScan() with parameters cache=NULL and force=FcTrue can be used
    to scan font dirs without any caching side effect.

diff --git a/src/fcdir.c b/src/fcdir.c
index 5166408..4ea2187 100644
--- a/src/fcdir.c
+++ b/src/fcdir.c
@@ -129,27 +129,30 @@ cmpstringp(const void *p1, const void *p2)
     return strcmp(* (char **) p1, * (char **) p2);
 }
 
-/*
- * Scan the specified directory and construct a cache of its contents
- */
-FcCache *
-FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
+FcBool
+FcDirScanConfig (FcFontSet	*set,
+		 FcStrSet	*dirs,
+		 FcBlanks	*blanks,
+		 const FcChar8	*dir,
+		 FcBool		force, /* XXX unused */
+		 FcConfig	*config)
 {
     DIR			*d;
     struct dirent	*e;
     FcStrSet		*files;
-    FcStrSet		*dirs;
     FcChar8		*file;
     FcChar8		*base;
     FcBool		ret = FcTrue;
-    FcFontSet		*set;
     int			i;
-    FcBlanks		*blanks = FcConfigGetBlanks (config);
-    FcCache		*cache = NULL;
-    struct stat		dir_stat;
 
-    if (FcDebug () & FC_DBG_FONTSET)
-    	printf ("cache scan dir %s\n", dir);
+    if (!force)
+	return FcFalse;
+
+    if (!set && !dirs)
+	return FcTrue;
+
+    if (!blanks)
+	blanks = FcConfigGetBlanks (config);
 
     /* freed below */
     file = (FcChar8 *) malloc (strlen ((char *) dir) + 1 + FC_MAX_FILE_LEN + 1);
@@ -169,23 +172,9 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
     if (!d)
     {
 	/* Don't complain about missing directories */
-	if (errno == ENOENT)
-	    ret = FcTrue;
-	else
+	if (errno != ENOENT)
 	    ret = FcFalse;
-	goto bail_1;
-    }
-    if (FcStat ((char *) dir, &dir_stat) < 0)
-    {
-	ret = FcFalse;
-	goto bail_1;
-    }
-
-    set = FcFontSetCreate();
-    if (!set) 
-    {
-	ret = FcFalse;
-	goto bail0;
+	goto bail;
     }
 
     files = FcStrSetCreate ();
@@ -210,41 +199,99 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
      * Sort files to make things prettier
      */
     qsort(files->strs, files->num, sizeof(FcChar8 *), cmpstringp);
-    
-    dirs = FcStrSetCreate ();
-    if (!dirs)
-	goto bail2;
-    
+
     /*
      * Scan file files to build font patterns
      */
     for (i = 0; i < files->num; i++)
 	FcFileScanConfig (set, dirs, blanks, files->strs[i], config);
     
+bail2:
+    FcStrSetDestroy (files);
+bail1:
+    closedir (d);
+bail:
+    return ret;
+}
+
+FcBool
+FcDirScan (FcFontSet	    *set,
+	   FcStrSet	    *dirs,
+	   FcFileCache	    *cache, /* XXX unused */
+	   FcBlanks	    *blanks,
+	   const FcChar8    *dir,
+	   FcBool	    force /* XXX unused */)
+{
+    if (cache || !force)
+	return FcFalse;
+
+    return FcDirScanConfig (set, dirs, blanks, dir, force, NULL);
+}
+
+/*
+ * Scan the specified directory and construct a cache of its contents
+ */
+FcCache *
+FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
+{
+    FcStrSet		*dirs;
+    FcBool		ret = FcTrue;
+    FcFontSet		*set;
+    FcCache		*cache = NULL;
+    struct stat		dir_stat;
+
+    if (FcDebug () & FC_DBG_FONTSET)
+	printf ("cache scan dir %s\n", dir);
+
+    if (FcStat ((char *) dir, &dir_stat) < 0)
+    {
+	if (errno != ENOENT)
+	    ret = FcFalse;
+	goto bail;
+    }
+
+    set = FcFontSetCreate();
+    if (!set)
+    {
+	ret = FcFalse;
+	goto bail;
+    }
+
+    dirs = FcStrSetCreate ();
+    if (!dirs)
+    {
+	ret = FcFalse;
+	goto bail1;
+    }
+
+    /*
+     * Scan the dir
+     */
+    if (!FcDirScanConfig (set, dirs, NULL, dir, FcTrue, config))
+    {
+	ret = FcFalse;
+	goto bail2;
+    }
+
     /*
      * Build the cache object
      */
     cache = FcDirCacheBuild (set, dir, &dir_stat, dirs);
     if (!cache)
-	goto bail3;
+    {
+	ret = FcFalse;
+	goto bail2;
+    }
     
     /*
      * Write out the cache file, ignoring any troubles
      */
     FcDirCacheWrite (cache, config);
     
- bail3:
-    FcStrSetDestroy (dirs);
  bail2:
-    FcStrSetDestroy (files);
+    FcStrSetDestroy (dirs);
  bail1:
     FcFontSetDestroy (set);
-    
- bail0:
-    closedir (d);
-    
- bail_1:
-    free (file);
  bail:
     return cache;
 }
@@ -272,28 +319,6 @@ FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config)
 }
 
 FcBool
-FcDirScanConfig (FcFontSet	*set,
-		 FcStrSet	*dirs,
-		 FcBlanks	*blanks,
-		 const FcChar8	*dir,
-		 FcBool		force,
-		 FcConfig	*config)
-{
-    return FcFalse; /* XXX deprecated */
-}
-
-FcBool
-FcDirScan (FcFontSet	    *set,
-	   FcStrSet	    *dirs,
-	   FcFileCache	    *cache, /* XXX unused */
-	   FcBlanks	    *blanks,
-	   const FcChar8    *dir,
-	   FcBool	    force)
-{
-    return FcFalse; /* XXX deprecated */
-}
-
-FcBool
 FcDirSave (FcFontSet *set, FcStrSet * dirs, const FcChar8 *dir)
 {
     return FcFalse; /* XXX deprecated */
commit 46e405cb9ab5870bda1947f3afd80f8f54c7ac75
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jan 15 17:34:26 2009 -0500

    Oops.  Fix usage output.

diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c
index 8fec7d4..8c5672c 100644
--- a/fc-query/fc-query.c
+++ b/fc-query/fc-query.c
@@ -86,7 +86,6 @@ usage (char *program, int error)
 #else
     fprintf (file, "  -i INDEX   (index)   display the INDEX face of each font file only\n");
     fprintf (file, "  -f FORMAT  (format)  use the given output format\n");
-    fprintf (file, "  -a         (all)     display unpruned sorted list of matches\n");
     fprintf (file, "  -V         (version) display font config version and exit\n");
     fprintf (file, "  -h         (help)    display this help and exit\n");
 #endif
@@ -106,9 +105,9 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "i:sVvh", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "i:f:Vh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "i:asVvh")) != -1)
+    while ((c = getopt (argc, argv, "i:f:Vh")) != -1)
 #endif
     {
 	switch (c) {
commit 25a09eb9bf2d993228a3d98d1dd271f55efb2358
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jan 8 03:04:34 2009 -0500

    Don't use FcCharSetCopy in FcCharSetMerge
    
    The Copy function is actually a ref, not real copy.

diff --git a/doc/fccharset.fncs b/doc/fccharset.fncs
index 93e1f5c..0dd7d1a 100644
--- a/doc/fccharset.fncs
+++ b/doc/fccharset.fncs
@@ -104,7 +104,7 @@ Returns a set including only those chars found in <parameter>a</parameter> but n
 @TYPE2@		const FcCharSet *	@ARG2@		b
 @PURPOSE@	Merge charsets
 @DESC@
-If <parameter>a</parameter> is NULL, returns a copy of <parameter>b</parameter>.
+If <parameter>a</parameter> is NULL, returns a newly-created copy of <parameter>b</parameter>.
 If <parameter>a</parameter> is an FcCharSet object owned by fontconfig that
 cannot be modified, it returns the union of <parameter>a</parameter> and
 <parameter>b</parameter> in a newly-created FcCharSet object.
diff --git a/src/fccharset.c b/src/fccharset.c
index 1891f08..2daa39d 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -459,14 +459,15 @@ FcCharSetMerge (FcCharSet *a, const FcCharSet *b)
     FcCharSetIter    ai, bi;
 
     if (a == NULL) {
-	return FcCharSetCopy ((FcCharSet *) b);
+	fcs = a = FcCharSetCreate ();
     } else if (a->ref == FC_REF_CONSTANT) {
 	fcs = FcCharSetCreate ();
-	if (fcs == NULL)
-	    return NULL;
     } else
 	fcs = a;
 
+    if (fcs == NULL)
+	return NULL;
+
     FcCharSetIterStart (a, &ai);
     FcCharSetIterStart (b, &bi);
     while (ai.leaf || bi.leaf)
commit d230cf144f84c8a50b932c8b89daa55c1a3620d8
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Jan 7 20:15:20 2009 -0500

    Make FcCharSetMerge() public
    
    That's needed for apps to be abled to do pruning themselves without
    the performance penalty of recreating new charsets all the time.

diff --git a/doc/fccharset.fncs b/doc/fccharset.fncs
index f4c7d32..93e1f5c 100644
--- a/doc/fccharset.fncs
+++ b/doc/fccharset.fncs
@@ -98,6 +98,19 @@ Returns a set including only those chars found in either <parameter>a</parameter
 Returns a set including only those chars found in <parameter>a</parameter> but not <parameter>b</parameter>. 
 @@
 
+ at RET@		FcCharSet *
+ at FUNC@		FcCharSetMerge
+ at TYPE1@		const FcCharSet *	@ARG1@		a
+ at TYPE2@		const FcCharSet *	@ARG2@		b
+ at PURPOSE@	Merge charsets
+ at DESC@
+If <parameter>a</parameter> is NULL, returns a copy of <parameter>b</parameter>.
+If <parameter>a</parameter> is an FcCharSet object owned by fontconfig that
+cannot be modified, it returns the union of <parameter>a</parameter> and
+<parameter>b</parameter> in a newly-created FcCharSet object.
+Otherwise, adds all chars in <parameter>b</parameter> to <parameter>a</parameter> and returns <parameter>a</parameter>.  In other words, this is an in-place versionof FcCharSetUnion.
+@@
+
 @RET@		FcBool 
 @FUNC@		FcCharSetHasChar
 @TYPE1@		const FcCharSet *	@ARG1@		fcs
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 529456f..606580d 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -439,6 +439,9 @@ FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
 FcPublic FcCharSet*
 FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
 
+FcPublic FcCharSet *
+FcCharSetMerge (FcCharSet *a, const FcCharSet *b);
+
 FcPublic FcBool
 FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
 
diff --git a/src/fcint.h b/src/fcint.h
index c8ff228..0b41d59 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -653,9 +653,6 @@ FcNameUnparseValueList (FcStrBuf	*buf,
 FcPrivate FcCharLeaf *
 FcCharSetFindLeafCreate (FcCharSet *fcs, FcChar32 ucs4);
 
-FcPrivate FcCharSet *
-FcCharSetMerge (FcCharSet *a, const FcCharSet *b);
-
 FcPrivate FcBool
 FcCharSetSerializeAlloc(FcSerialize *serialize, const FcCharSet *cs);
 
commit 3b725d0a318623bba08a9f7c75e4fe71527f5dec
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jan 1 16:29:01 2009 -0500

    [doc] Note that fontset returned by FcConfigGetFonts should not be modified

diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs
index 3ceab92..08408af 100644
--- a/doc/fcconfig.fncs
+++ b/doc/fcconfig.fncs
@@ -171,7 +171,7 @@ If <parameter>config</parameter> is NULL, the current configuration is used.
 @DESC@
 Returns one of the two sets of fonts from the configuration as specified
 by <parameter>set</parameter>. This font set is owned by the library and must
-not be freed.
+not be modified or freed.
 If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
commit 6d764a3f9b89f21b5c2cdf48cbd913b9706d42b2
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Dec 31 20:16:40 2008 -0500

    [fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal()
    
    Except for the final FcFontRenderPrepare().  This way we have more
    flexibility to do caching in FcFontMatch() while leaving FcFontSetMatch()
    intact.

diff --git a/src/fcmatch.c b/src/fcmatch.c
index 49dd0dd..556fffe 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -459,12 +459,12 @@ FcFontRenderPrepare (FcConfig	    *config,
     return new;
 }
 
-FcPattern *
-FcFontSetMatch (FcConfig    *config,
-		FcFontSet   **sets,
-		int	    nsets,
-		FcPattern   *p,
-		FcResult    *result)
+static FcPattern *
+FcFontSetMatchInternal (FcConfig    *config,
+			FcFontSet   **sets,
+			int	    nsets,
+			FcPattern   *p,
+			FcResult    *result)
 {
     double    	    score[NUM_MATCH_VALUES], bestscore[NUM_MATCH_VALUES];
     int		    f;
@@ -481,12 +481,6 @@ FcFontSetMatch (FcConfig    *config,
 	printf ("Match ");
 	FcPatternPrint (p);
     }
-    if (!config)
-    {
-	config = FcConfigGetCurrent ();
-	if (!config)
-	    return 0;
-    }
     for (set = 0; set < nsets; set++)
     {
 	s = sets[set];
@@ -537,6 +531,25 @@ FcFontSetMatch (FcConfig    *config,
 	*result = FcResultNoMatch;
 	return 0;
     }
+    return best;
+}
+
+FcPattern *
+FcFontSetMatch (FcConfig    *config,
+		FcFontSet   **sets,
+		int	    nsets,
+		FcPattern   *p,
+		FcResult    *result)
+{
+    FcPattern	    *best;
+
+    if (!config)
+    {
+	config = FcConfigGetCurrent ();
+	if (!config)
+	    return 0;
+    }
+    best = FcFontSetMatchInternal (config, sets, nsets, p, result);
     return FcFontRenderPrepare (config, p, best);
 }
 
@@ -547,6 +560,7 @@ FcFontMatch (FcConfig	*config,
 {
     FcFontSet	*sets[2];
     int		nsets;
+    FcPattern   *best;
 
     if (!config)
     {
@@ -559,7 +573,9 @@ FcFontMatch (FcConfig	*config,
 	sets[nsets++] = config->fonts[FcSetSystem];
     if (config->fonts[FcSetApplication])
 	sets[nsets++] = config->fonts[FcSetApplication];
-    return FcFontSetMatch (config, sets, nsets, p, result);
+
+    best = FcFontSetMatchInternal (config, sets, nsets, p, result);
+    return FcFontRenderPrepare (config, p, best);
 }
 
 typedef struct _FcSortNode {
commit a5a384c5ffb479e095092c2aaedd406f8785280a
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Dec 31 19:44:32 2008 -0500

    [fcmatch] When matching, reserve score 0 for when elements don't exist
    
    Previously an index j was added to element score to prefer matches earlier
    in the value list to the later ones.  This index started from 0, meaning
    that the score zero could be generated for the first element.  By starting
    j from one, scores for when the element exists in both pattern and font
    can never be zero.  The score zero is reserved for when the element is
    NOT available in both font and pattern.  We will use this property later.
    
    This shouldn't change matching much.  The only difference I can think of
    is that if a font family exists both as a bitmap font and a scalable
    version, and when requesting it at the size of the bitmap version,
    previously the font returned was nondeterministic.  Now the scalable
    version will always be preferred.

diff --git a/src/fcmatch.c b/src/fcmatch.c
index 4d20a61..49dd0dd 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -317,7 +317,7 @@ FcCompareValueList (FcObject	 object,
     best = 1e99;
     bestStrong = 1e99;
     bestWeak = 1e99;
-    j = 0;
+    j = 1;
     for (v1 = v1orig; v1; v1 = FcValueListNext(v1))
     {
 	for (v2 = v2orig; v2; v2 = FcValueListNext(v2))
commit c7641f2872329197250db6ffe194df3d33ff42b3
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Dec 31 19:35:27 2008 -0500

    [fcmatch] Use larger multipliers to enforce order
    
    Previously the matcher multiplied comparison results by 100 and added
    index value to it.  With long lists of families (lots of aliases),
    reaching 100 is not that hard.  That could result in a non-match early
    in the list to be preferred over a match late in the list.  Changing
    the multiplier from 100 to 1000 should fix that.
    
    To keep things relatively in order, the lang multiplier is changed
    from 1000 to 10000.

diff --git a/src/fcmatch.c b/src/fcmatch.c
index ac63fbe..4d20a61 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -328,7 +328,7 @@ FcCompareValueList (FcObject	 object,
 		*result = FcResultTypeMismatch;
 		return FcFalse;
 	    }
-	    v = v * 100 + j;
+	    v = v * 1000 + j;
 	    if (v < best)
 	    {
 		if (bestValue)
@@ -768,7 +768,7 @@ FcFontSetSort (FcConfig	    *config,
 	    }
 	}
 	if (!satisfies)
-	    nodeps[f]->score[MATCH_LANG_INDEX] = 1000.0;
+	    nodeps[f]->score[MATCH_LANG_INDEX] = 10000.0;
     }
 
     /*
commit 1b43ccc805f26a78934267d92275cd19b5648e91
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Dec 31 18:10:31 2008 -0500

    [fcmatch.c] Fix debug formatting

diff --git a/src/fcmatch.c b/src/fcmatch.c
index e46eefe..ac63fbe 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -529,6 +529,7 @@ FcFontSetMatch (FcConfig    *config,
 	printf ("Best score");
 	for (i = 0; i < NUM_MATCH_VALUES; i++)
 	    printf (" %g", bestscore[i]);
+	printf ("\n");
 	FcPatternPrint (best);
     }
     if (!best)
commit a291cfc710c5989ba3e787ae20911d3176bea307
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Dec 31 18:06:07 2008 -0500

    Fix comparison of family names to ignore leading space properly
    
    Previously fc-match "xxx,nazli" matched Nazli, but "xxx, nazli" didn't.
    This was because of a bug in FcCompareFamily's short-circuit check
    that forgot to ignore spaces.

diff --git a/src/fcmatch.c b/src/fcmatch.c
index a181496..e46eefe 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -72,7 +72,8 @@ FcCompareFamily (FcValue *v1, FcValue *v2)
     const FcChar8* v1_string = fc_value_string(v1);
     const FcChar8* v2_string = fc_value_string(v2);
 
-    if (FcToLower(*v1_string) != FcToLower(*v2_string))
+    if (FcToLower(*v1_string) != FcToLower(*v2_string) &&
+	*v1_string != ' ' && *v2_string != ' ')
        return 1.0;
 
     return (double) FcStrCmpIgnoreBlanksAndCase (v1_string, v2_string) != 0;
commit 0c93b91db0cdf7c5e901477c266b45c8baeadd00
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Dec 29 20:00:26 2008 -0500

    Implement FcPatternFormat and use it in cmdline tools (bug #17107)
    
    Still need to add more features, but the API is there, and used
    by cmdline tools with -f or --format.

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index 7297e01..c89706a 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -395,3 +395,21 @@ Converts the given pattern into the standard text format described above.
 The return value is not static, but instead refers to newly allocated memory
 which should be freed by the caller using free().
 @@
+
+ at RET@		FcChar8 *
+ at FUNC@		FcPatternFormat
+ at TYPE1@		FcPattern *			@ARG1@		pat
+ at TYPE2@		const FcChar8 *			@ARG2@		format
+ at PURPOSE@	Format a pattern into a string according to a format specifier
+ at DESC@
+
+Converts the given pattern into text format described by the format specifier.
+The format specifier is similar to a C style printf string, which the
+printf(2) man page provides a good introduction to. However, as RPM already
+knows the type of data that is being printed, you must omit the type
+specifier. In its place put the element name you wish to print enclosed in
+curly braces ({}). For example, to print the family name and style the
+pattern, use the format "%{family} %{style}\n".
+The return value refers to newly allocated memory which should be freed by the
+caller using free().
+@@
diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index 89f4167..f7a66b5 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -26,6 +26,7 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
+#include <string.h>
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #else
@@ -47,9 +48,10 @@
 #define _GNU_SOURCE
 #include <getopt.h>
 const struct option longopts[] = {
-    {"version", 0, 0, 'V'},
     {"verbose", 0, 0, 'v'},
+    {"format", 1, 0, 'f'},
     {"quiet", 0, 0, 'q'},
+    {"version", 0, 0, 'V'},
     {"help", 0, 0, 'h'},
     {NULL,0,0,0},
 };
@@ -65,21 +67,23 @@ usage (char *program, int error)
 {
     FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (file, "usage: %s [-vqVh] [--verbose] [--quiet] [--version] [--help] [pattern] {element ...} \n",
+    fprintf (file, "usage: %s [-vqVh] [-f FORMAT] [--verbose] [--format=FORMAT] [--quiet] [--version] [--help] [pattern] {element ...} \n",
 	     program);
 #else
-    fprintf (file, "usage: %s [-vqVh] [pattern] {element ...} \n",
+    fprintf (file, "usage: %s [-vqVh] [-f FORMAT] [pattern] {element ...} \n",
 	     program);
 #endif
     fprintf (file, "List fonts matching [pattern]\n");
     fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
     fprintf (file, "  -v, --verbose        display entire font pattern\n");
+    fprintf (file, "  -f, --format=FORMAT  use the given output format\n");
     fprintf (file, "  -q, --quiet          suppress all normal output, exit 1 if no fonts matched\n");
     fprintf (file, "  -V, --version        display font config version and exit\n");
     fprintf (file, "  -h, --help           display this help and exit\n");
 #else
     fprintf (file, "  -v         (verbose) display entire font pattern\n");
+    fprintf (file, "  -f FORMAT  (format)  use the given output format\n");
     fprintf (file, "  -q,        (quiet)   suppress all normal output, exit 1 if no fonts matched\n");
     fprintf (file, "  -V         (version) display font config version and exit\n");
     fprintf (file, "  -h         (help)    display this help and exit\n");
@@ -92,6 +96,7 @@ main (int argc, char **argv)
 {
     int		verbose = 0;
     int		quiet = 0;
+    FcChar8     *format = NULL;
     int		nfont = 0;
     int		i;
     FcObjectSet *os = 0;
@@ -101,22 +106,25 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "Vqvh", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "vf:qVh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "Vqvh")) != -1)
+    while ((c = getopt (argc, argv, "vf:qVh")) != -1)
 #endif
     {
 	switch (c) {
-	case 'V':
-	    fprintf (stderr, "fontconfig version %d.%d.%d\n", 
-		     FC_MAJOR, FC_MINOR, FC_REVISION);
-	    exit (0);
 	case 'v':
 	    verbose = 1;
 	    break;
+	case 'f':
+	    format = (FcChar8 *) strdup (optarg);
+	    break;
 	case 'q':
 	    quiet = 1;
 	    break;
+	case 'V':
+	    fprintf (stderr, "fontconfig version %d.%d.%d\n",
+		     FC_MAJOR, FC_MINOR, FC_REVISION);
+	    exit (0);
 	case 'h':
 	    usage (argv[0], 0);
 	default:
@@ -148,7 +156,7 @@ main (int argc, char **argv)
 	pat = FcPatternCreate ();
     if (quiet && !os)
 	os = FcObjectSetCreate ();
-    if (!verbose && !os)
+    if (!verbose && !format && !os)
 	os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *) 0);
     fs = FcFontList (0, pat, os);
     if (os)
@@ -166,7 +174,17 @@ main (int argc, char **argv)
 	    FcChar8 *file;
 
 	    if (verbose)
+	    {
 		FcPatternPrint (fs->fonts[j]);
+	    }
+	    else if (format)
+	    {
+	        FcChar8 *s;
+
+		s = FcPatternFormat (fs->fonts[j], format);
+		printf ("%s", s);
+		free (s);
+	    }
 	    else
 	    {
 		font = FcNameUnparse (fs->fonts[j]);
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index 35bf899..5807ed1 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -65,6 +65,10 @@ manpage.1: manpage.sgml
 
       <arg><option>-vVh</option></arg>
       <arg><option>--verbose</option></arg>
+      <group>
+        <arg><option>-f</option> <option><replaceable>format</replaceable></option></arg>
+        <arg><option>--format</option> <option><replaceable>format</replaceable></option></arg>
+      </group>
       <arg><option>--version</option></arg>
       <arg><option>--help</option></arg>
       <sbr>
@@ -100,11 +104,13 @@ manpage.1: manpage.sgml
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option>-h</option>
-          <option>--help</option>
+        <term><option>-f</option>
+          <option>--format</option>
+	  <option><replaceable>format</replaceable></option>
         </term>
         <listitem>
-          <para>Show summary of options.</para>
+          <para>Format output according to the format specifier
+	  <replaceable>format</replaceable>.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -116,6 +122,14 @@ manpage.1: manpage.sgml
         </listitem>
       </varlistentry>
       <varlistentry>
+        <term><option>-h</option>
+          <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show summary of options.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
         <term><option><replaceable>pattern</replaceable></option>
         </term>
         <listitem>
@@ -164,6 +178,8 @@ manpage.1: manpage.sgml
       <command>fc-cache</command>(1)
       <command>fc-match</command>(1)
       <command>fc-query</command>(1)
+      <function>FcFontList</function>(3)
+      <function>FcPatternFormat</function>(3)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-match/fc-match.c b/fc-match/fc-match.c
index 5ed8def..c402905 100644
--- a/fc-match/fc-match.c
+++ b/fc-match/fc-match.c
@@ -51,8 +51,9 @@
 static const struct option longopts[] = {
     {"sort", 0, 0, 's'},
     {"all", 0, 0, 'a'},
-    {"version", 0, 0, 'V'},
     {"verbose", 0, 0, 'v'},
+    {"format", 1, 0, 'f'},
+    {"version", 0, 0, 'V'},
     {"help", 0, 0, 'h'},
     {NULL,0,0,0},
 };
@@ -68,10 +69,10 @@ usage (char *program, int error)
 {
     FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (file, "usage: %s [-savVh] [--sort] [--all] [--verbose] [--version] [--help] [pattern]\n",
+    fprintf (file, "usage: %s [-savVh] [-f FORMAT] [--sort] [--all] [--verbose] [--format=FORMAT] [--version] [--help] [pattern]\n",
 	     program);
 #else
-    fprintf (file, "usage: %s [-savVh] [pattern]\n",
+    fprintf (file, "usage: %s [-savVh] [-f FORMAT] [pattern]\n",
 	     program);
 #endif
     fprintf (file, "List fonts matching [pattern]\n");
@@ -80,12 +81,14 @@ usage (char *program, int error)
     fprintf (file, "  -s, --sort           display sorted list of matches\n");
     fprintf (file, "  -a, --all            display unpruned sorted list of matches\n");
     fprintf (file, "  -v, --verbose        display entire font pattern\n");
+    fprintf (file, "  -f, --format=FORMAT  use the given output format\n");
     fprintf (file, "  -V, --version        display font config version and exit\n");
     fprintf (file, "  -h, --help           display this help and exit\n");
 #else
     fprintf (file, "  -s,        (sort)    display sorted list of matches\n");
     fprintf (file, "  -a         (all)     display unpruned sorted list of matches\n");
     fprintf (file, "  -v         (verbose) display entire font pattern\n");
+    fprintf (file, "  -f FORMAT  (format)  use the given output format\n");
     fprintf (file, "  -V         (version) display font config version and exit\n");
     fprintf (file, "  -h         (help)    display this help and exit\n");
 #endif
@@ -97,6 +100,7 @@ main (int argc, char **argv)
 {
     int		verbose = 0;
     int		sort = 0, all = 0;
+    FcChar8     *format = NULL;
     int		i;
     FcFontSet	*fs;
     FcPattern   *pat;
@@ -105,9 +109,9 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "asVvh", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "asvf:Vh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "asVvh")) != -1)
+    while ((c = getopt (argc, argv, "asvf:Vh")) != -1)
 #endif
     {
 	switch (c) {
@@ -117,13 +121,16 @@ main (int argc, char **argv)
 	case 's':
 	    sort = 1;
 	    break;
+	case 'v':
+	    verbose = 1;
+	    break;
+	case 'f':
+	    format = (FcChar8 *) strdup (optarg);
+	    break;
 	case 'V':
 	    fprintf (stderr, "fontconfig version %d.%d.%d\n", 
 		     FC_MAJOR, FC_MINOR, FC_REVISION);
 	    exit (0);
-	case 'v':
-	    verbose = 1;
-	    break;
 	case 'h':
 	    usage (argv[0], 0);
 	default:
@@ -189,6 +196,14 @@ main (int argc, char **argv)
 	    {
 		FcPatternPrint (fs->fonts[j]);
 	    }
+	    else if (format)
+	    {
+	        FcChar8 *s;
+
+		s = FcPatternFormat (fs->fonts[j], format);
+		printf ("%s", s);
+		free (s);
+	    }
 	    else
 	    {
 		FcChar8	*family;
diff --git a/fc-match/fc-match.sgml b/fc-match/fc-match.sgml
index b5ca675..bb0d84e 100644
--- a/fc-match/fc-match.sgml
+++ b/fc-match/fc-match.sgml
@@ -67,6 +67,10 @@ manpage.1: manpage.sgml
       <arg><option>--all</option></arg>
       <arg><option>--sort</option></arg>
       <arg><option>--verbose</option></arg>
+      <group>
+        <arg><option>-f</option> <option><replaceable>format</replaceable></option></arg>
+        <arg><option>--format</option> <option><replaceable>format</replaceable></option></arg>
+      </group>
       <arg><option>--version</option></arg>
       <arg><option>--help</option></arg>
       <arg><option><replaceable>font-pattern</replaceable></option></arg>
@@ -95,6 +99,23 @@ are printed.  The <option>--all</option> option works like
 
     <variablelist>
       <varlistentry>
+        <term><option>-a</option>
+          <option>--all</option>
+        </term>
+        <listitem>
+          <para>Displays sorted list of best matching fonts, but do not do any
+		pruning on the list.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-s</option>
+          <option>--sort</option>
+        </term>
+        <listitem>
+          <para>Displays sorted list of best matching fonts.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
         <term><option>-v</option>
           <option>--verbose</option>
         </term>
@@ -103,11 +124,13 @@ are printed.  The <option>--all</option> option works like
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option>-h</option>
-          <option>--help</option>
+        <term><option>-f</option>
+          <option>--format</option>
+	  <option><replaceable>format</replaceable></option>
         </term>
         <listitem>
-          <para>Show summary of options.</para>
+          <para>Format output according to the format specifier
+	  <replaceable>format</replaceable>.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -119,20 +142,11 @@ are printed.  The <option>--all</option> option works like
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option>-a</option>
-          <option>--all</option>
-        </term>
-        <listitem>
-          <para>Displays sorted list of best matching fonts, but do not do any
-		pruning on the list.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><option>-s</option>
-          <option>--sort</option>
+        <term><option>-h</option>
+          <option>--help</option>
         </term>
         <listitem>
-          <para>Displays sorted list of best matching fonts.</para>
+          <para>Show summary of options.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -154,6 +168,9 @@ are printed.  The <option>--all</option> option works like
       <command>fc-cache</command>(1)
       <command>fc-list</command>(1)
       <command>fc-query</command>(1)
+      <function>FcFontMatch</function>(3)
+      <function>FcFontSort</function>(3)
+      <function>FcPatternFormat</function>(3)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c
index 6ea45ea..8fec7d4 100644
--- a/fc-query/fc-query.c
+++ b/fc-query/fc-query.c
@@ -53,6 +53,7 @@
 #include <getopt.h>
 static const struct option longopts[] = {
     {"index", 1, 0, 'i'},
+    {"format", 1, 0, 'f'},
     {"version", 0, 0, 'V'},
     {"help", 0, 0, 'h'},
     {NULL,0,0,0},
@@ -69,20 +70,22 @@ usage (char *program, int error)
 {
     FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (file, "usage: %s [-Vh] [-i index] [--index index] [--version] [--help] font-file...\n",
+    fprintf (file, "usage: %s [-Vh] [-i index] [-f FORMAT] [--index index] [--format FORMAT] [--version] [--help] font-file...\n",
 	     program);
 #else
-    fprintf (file, "usage: %s [-Vh] [-i index] font-file...\n",
+    fprintf (file, "usage: %s [-Vh] [-i index] [-f FORMAT] font-file...\n",
 	     program);
 #endif
     fprintf (file, "Query font files and print resulting pattern(s)\n");
     fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
     fprintf (file, "  -i, --index INDEX    display the INDEX face of each font file only\n");
+    fprintf (file, "  -f, --format=FORMAT  use the given output format\n");
     fprintf (file, "  -V, --version        display font config version and exit\n");
     fprintf (file, "  -h, --help           display this help and exit\n");
 #else
     fprintf (file, "  -i INDEX   (index)   display the INDEX face of each font file only\n");
+    fprintf (file, "  -f FORMAT  (format)  use the given output format\n");
     fprintf (file, "  -a         (all)     display unpruned sorted list of matches\n");
     fprintf (file, "  -V         (version) display font config version and exit\n");
     fprintf (file, "  -h         (help)    display this help and exit\n");
@@ -95,6 +98,7 @@ main (int argc, char **argv)
 {
     int		index_set = 0;
     int		set_index = 0;
+    FcChar8     *format = NULL;
     int		err = 0;
     int		i;
     FcBlanks    *blanks;
@@ -112,6 +116,9 @@ main (int argc, char **argv)
 	    index_set = 1;
 	    set_index = atoi (optarg);
 	    break;
+	case 'f':
+	    format = (FcChar8 *) strdup (optarg);
+	    break;
 	case 'V':
 	    fprintf (stderr, "fontconfig version %d.%d.%d\n",
 		     FC_MAJOR, FC_MINOR, FC_REVISION);
@@ -151,7 +158,19 @@ main (int argc, char **argv)
 	    pat = FcFreeTypeQuery ((FcChar8 *) argv[i], index, blanks, &count);
 	    if (pat)
 	    {
-		FcPatternPrint (pat);
+		if (format)
+		{
+		    FcChar8 *s;
+
+		    s = FcPatternFormat (pat, format);
+		    printf ("%s", s);
+		    free (s);
+		}
+		else
+		{
+		    FcPatternPrint (pat);
+		}
+
 		FcPatternDestroy (pat);
 	    }
 	    else
diff --git a/fc-query/fc-query.sgml b/fc-query/fc-query.sgml
index 2c73129..e363db5 100644
--- a/fc-query/fc-query.sgml
+++ b/fc-query/fc-query.sgml
@@ -63,13 +63,17 @@ manpage.1: manpage.sgml
       <command>&dhpackage;</command>
 
       <arg><option>-Vh</option></arg>
-      <arg><option>--version</option></arg>
-      <arg><option>--help</option></arg>
       <sbr>
       <group>
         <arg><option>-i</option> <option><replaceable>index</replaceable></option></arg>
         <arg><option>--index</option> <option><replaceable>index</replaceable></option></arg>
       </group>
+      <group>
+        <arg><option>-f</option> <option><replaceable>format</replaceable></option></arg>
+        <arg><option>--format</option> <option><replaceable>format</replaceable></option></arg>
+      </group>
+      <arg><option>--version</option></arg>
+      <arg><option>--help</option></arg>
       <arg choice="req" rep="repeat"><option><replaceable>font-file</replaceable></option></arg>
 
      </cmdsynopsis>
@@ -93,11 +97,23 @@ manpage.1: manpage.sgml
 
     <variablelist>
       <varlistentry>
-        <term><option>-h</option>
-          <option>--help</option>
+        <term><option>-i</option>
+          <option>--index</option>
+	  <option><replaceable>index</replaceable></option>
         </term>
         <listitem>
-          <para>Show summary of options.</para>
+          <para>Only query face indexed <replaceable>index</replaceable> of
+	  each file.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-f</option>
+          <option>--format</option>
+	  <option><replaceable>format</replaceable></option>
+        </term>
+        <listitem>
+          <para>Format output according to the format specifier
+	  <replaceable>format</replaceable>.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -109,13 +125,11 @@ manpage.1: manpage.sgml
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option>-i</option>
-          <option>--index</option>
-	  <option><replaceable>index</replaceable></option>
+        <term><option>-h</option>
+          <option>--help</option>
         </term>
         <listitem>
-          <para>Only query face indexed <replaceable>index</replaceable> of
-	  each file.</para>
+          <para>Show summary of options.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -142,6 +156,8 @@ manpage.1: manpage.sgml
       <command>fc-cache</command>(1)
       <command>fc-list</command>(1)
       <command>fc-match</command>(1)
+      <function>FcFreeTypeQuery</function>(3)
+      <function>FcPatternFormat</function>(3)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 4149072..529456f 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -830,6 +830,9 @@ FcPatternVaBuild (FcPattern *p, va_list va);
 FcPublic FcPattern *
 FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0);
 
+FcPublic FcChar8 *
+FcPatternFormat (FcPattern *pat, const FcChar8 *format);
+
 /* fcstr.c */
 
 FcPublic FcChar8 *
diff --git a/src/Makefile.am b/src/Makefile.am
index e18f937..964b295 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -94,6 +94,7 @@ libfontconfig_la_SOURCES = \
 	fcdbg.c \
 	fcdefault.c \
 	fcdir.c \
+	fcformat.c \
 	fcfreetype.c \
 	fcfs.c \
 	fcinit.c \
diff --git a/src/fcformat.c b/src/fcformat.c
new file mode 100644
index 0000000..80c99c3
--- /dev/null
+++ b/src/fcformat.c
@@ -0,0 +1,155 @@
+/*
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * Red Hat Author(s): Behdad Esfahbod
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "fcint.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+
+
+static void
+message (const char *fmt, ...)
+{
+    va_list	args;
+    va_start (args, fmt);
+    fprintf (stderr, "Fontconfig: ");
+    vfprintf (stderr, fmt, args);
+    fprintf (stderr, "\n");
+    va_end (args);
+}
+
+
+static FcChar8 *scratch1;
+static FcChar8 *scratch2;
+static const FcChar8 *format_orig;
+
+static const FcChar8 *
+interpret_percent (FcPattern *pat,
+		   FcStrBuf *buf,
+		   const FcChar8 *format)
+{
+    switch (*format) {
+    case '{':
+    {
+	FcChar8 *p;
+	FcPatternElt *e;
+
+	format++; /* skip over '{' */
+
+	p = (FcChar8 *) strpbrk ((const char *) format, "}");
+	if (!p)
+	{
+	    message ("Pattern format missing closing brace");
+	    return format;
+	}
+	/* extract the element name */
+	memcpy (scratch1, format, p - format);
+	scratch1[p - format] = '\0';
+
+	e = FcPatternObjectFindElt (pat, FcObjectFromName ((const char *) scratch1));
+	if (e)
+	{
+	    FcValueListPtr l;
+	    l = FcPatternEltValues(e);
+	    FcNameUnparseValueList (buf, l, '\0');
+	}
+
+	p++; /* skip over '}' */
+	return p;
+    }
+    default:
+	message ("Pattern format has invalid character after '%%' at %d",
+		 format - format_orig);
+	return format;
+    }
+}
+
+static char escaped_char(const char ch)
+{
+    switch (ch) {
+    case 'a':   return '\a';
+    case 'b':   return '\b';
+    case 'f':   return '\f';
+    case 'n':   return '\n';
+    case 'r':   return '\r';
+    case 't':   return '\t';
+    case 'v':   return '\v';
+    default:    return ch;
+    }
+}
+
+static const FcChar8 *
+interpret (FcPattern *pat,
+	   FcStrBuf *buf,
+	   const FcChar8 *format,
+	   FcChar8 term)
+{
+    const FcChar8 *end;
+
+    for (end = format; *end && *end != term;)
+    {
+	switch (*end)
+	{
+	case '\\':
+	    end++; /* skip over '\\' */
+	    FcStrBufChar (buf, escaped_char (*end++));
+	    continue;
+	case '%':
+	    end++; /* skip over '%' */
+	    if (*end == '%')
+		break;
+	    end = interpret_percent (pat, buf, end);
+	    continue;
+	}
+	FcStrBufChar (buf, *end);
+	end++;
+    }
+    if (*end != term)
+	message ("Pattern format ended while looking for '%c'", term);
+
+    return end;
+}
+
+FcChar8 *
+FcPatternFormat (FcPattern *pat, const FcChar8 *format)
+{
+    int len;
+    FcStrBuf buf;
+
+    FcStrBufInit (&buf, 0, 0);
+    len = strlen ((const char *) format);
+    scratch1 = malloc (len);
+    scratch2 = malloc (len);
+    format_orig = format;
+
+    interpret (pat, &buf, format, '\0');
+
+    free (scratch1);
+    free (scratch2);
+    return FcStrBufDone (&buf);
+}
+
+#define __fcformat__
+#include "fcaliastail.h"
+#undef __fcformat__
diff --git a/src/fcint.h b/src/fcint.h
index 47925b0..c8ff228 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -645,6 +645,11 @@ FcNameUnparseCharSet (FcStrBuf *buf, const FcCharSet *c);
 FcPrivate FcCharSet *
 FcNameParseCharSet (FcChar8 *string);
 
+FcPrivate FcBool
+FcNameUnparseValueList (FcStrBuf	*buf,
+			FcValueListPtr	v,
+			FcChar8		*escape);
+
 FcPrivate FcCharLeaf *
 FcCharSetFindLeafCreate (FcCharSet *fcs, FcChar32 ucs4);
 
diff --git a/src/fcname.c b/src/fcname.c
index 0815cf3..02a2b82 100644
--- a/src/fcname.c
+++ b/src/fcname.c
@@ -818,7 +818,7 @@ FcNameUnparseValue (FcStrBuf	*buf,
     return FcFalse;
 }
 
-static FcBool
+FcBool
 FcNameUnparseValueList (FcStrBuf	*buf,
 			FcValueListPtr	v,
 			FcChar8		*escape)
commit 5cf04b201fb5e9dc989d30cf5c30f7575dda56bc
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Dec 29 19:27:00 2008 -0500

    [.gitignore] Update

diff --git a/.gitignore b/.gitignore
index 7d27d84..1c44392 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@ libtool
 ltmain.sh
 missing
 stamp-h1
+manpage.log
 doc/*.3
 doc/confdir.sgml
 doc/edit-sgml
@@ -66,6 +67,7 @@ doc/func.refs
 doc/local-fontconfig-devel.sgml
 doc/local-fontconfig-user.sgml
 doc/version.sgml
+doc/devel-man
 fc-arch/fc-arch
 fc-arch/fcarch.h
 fc-cache/fc-cache
commit f9806ab4b9bfa88a782008156511e29f37ce967d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Dec 29 18:58:29 2008 -0500

    Remove special-casing of FC_FILE in FcPatternPrint()
    
    I can't understand why the special case is needed.  Indeed, removing it
    does not make any difference in the "fc-match --verbose" output, and
    that's the only time fc-match uses FcPatternPrint.

diff --git a/src/fcdbg.c b/src/fcdbg.c
index 2a15969..3f952ea 100644
--- a/src/fcdbg.c
+++ b/src/fcdbg.c
@@ -146,26 +146,7 @@ FcPatternPrint (const FcPattern *p)
     {
 	e = &FcPatternElts(p)[i];
 	printf ("\t%s:", FcObjectName(e->object));
-	/* so that fc-match properly displays file: foo... */
-	if (e->object == FC_FILE_OBJECT)
-	{
-	    FcChar8 * s;
-	    FcPatternObjectGetString (p, FC_FILE_OBJECT, 0, &s);
-	    printf (" \"%s\"", s);
-	    switch (FcPatternEltValues(e)->binding) {
-	    case FcValueBindingWeak:
-	        printf ("(w)");
-	        break;
-	    case FcValueBindingStrong:
-	        printf ("(s)");
-	        break;
-	    case FcValueBindingSame:
-	        printf ("(=)");
-	        break;
-	    }
-	}
-	else
-	    FcValueListPrint (FcPatternEltValues(e));
+	FcValueListPrint (FcPatternEltValues(e));
 	printf ("\n");
     }
     printf ("\n");
commit 8ae1e3d5dc323542e7def06a42deea62c7ba7027
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 16:54:44 2008 -0500

    Explicitly chmod() directories (bug #18934)
    
    Two changes:
    
      - after mkdir(), we immediately chmod(), such that we are not affected
        by stupid umask's.
    
      - if a directory we want to use is not writable but exists, we try a
        chmod on it.  This is to recover from stupid umask's having affected
        us with older versions.

diff --git a/src/fccache.c b/src/fccache.c
index b5aa4ea..53df860 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -817,9 +817,9 @@ FcMakeDirectory (const FcChar8 *dir)
     if (!parent)
 	return FcFalse;
     if (access ((char *) parent, F_OK) == 0)
-	ret = mkdir ((char *) dir, 0777) == 0;
+	ret = mkdir ((char *) dir, 0755) == 0 && chmod ((char *) dir, 0755) == 0;
     else if (access ((char *) parent, F_OK) == -1)
-	ret = FcMakeDirectory (parent) && (mkdir ((char *) dir, 0777) == 0);
+	ret = FcMakeDirectory (parent) && (mkdir ((char *) dir, 0755) == 0) && chmod ((char *) dir, 0755) == 0;
     else
 	ret = FcFalse;
     FcStrFree (parent);
@@ -849,7 +849,7 @@ FcDirCacheWrite (FcCache *cache, FcConfig *config)
     if (!list)
 	return FcFalse;
     while ((test_dir = FcStrListNext (list))) {
-	if (access ((char *) test_dir, W_OK) == 0)
+	if (access ((char *) test_dir, W_OK|X_OK) == 0)
 	{
 	    cache_dir = test_dir;
 	    break;
@@ -866,6 +866,14 @@ FcDirCacheWrite (FcCache *cache, FcConfig *config)
 		    break;
 		}
 	    }
+	    /*
+	     * Otherwise, try making it writable
+	     */
+	    else if (chmod ((char *) test_dir, 0755) == 0)
+	    {
+		cache_dir = test_dir;
+		break;
+	    }
 	}
     }
     FcStrListDone (list);
commit b6cf885a0a71a0e8f03832fe038e57e6f2778974
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 09:03:29 2008 -0500

    Don't use identifier named complex

diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index 104786d..7e30fdf 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -1119,7 +1119,7 @@ FcFreeTypeQueryFace (const FT_Face  face,
 #if 0
     FcChar8	    *family = 0;
 #endif
-    FcChar8	    *complex;
+    FcChar8	    *complex_;
     const FcChar8   *foundry = 0;
     int		    spacing;
     TT_OS2	    *os2;
@@ -1478,14 +1478,14 @@ FcFreeTypeQueryFace (const FT_Face  face,
 	    printf ("\tos2 width class %d maps to width %d\n",
 		    os2->usWidthClass, width);
     }
-    if (os2 && (complex = FcFontCapabilities(face)))
+    if (os2 && (complex_ = FcFontCapabilities(face)))
     {
-	if (!FcPatternAddString (pat, FC_CAPABILITY, complex))
+	if (!FcPatternAddString (pat, FC_CAPABILITY, complex_))
 	{
-	    free (complex);
+	    free (complex_);
 	    goto bail1;
 	}
-	free (complex);
+	free (complex_);
     }
 
     /*
@@ -2822,7 +2822,7 @@ FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks)
 #define FcIsValidScript(x)  (FcIsLower(x) || FcIsUpper (x) || FcIsSpace(x))
 			     
 static void
-addtag(FcChar8 *complex, FT_ULong tag)
+addtag(FcChar8 *complex_, FT_ULong tag)
 {
     FcChar8 tagstring[OTLAYOUT_ID_LEN + 1];
 
@@ -2841,10 +2841,10 @@ addtag(FcChar8 *complex, FT_ULong tag)
 	!FcIsValidScript(tagstring[3]))
 	return;
 
-    if (*complex != '\0')
-	strcat ((char *) complex, " ");
-    strcat ((char *) complex, "otlayout:");
-    strcat ((char *) complex, (char *) tagstring);
+    if (*complex_ != '\0')
+	strcat ((char *) complex_, " ");
+    strcat ((char *) complex_, "otlayout:");
+    strcat ((char *) complex_, (char *) tagstring);
 }
 
 static int
@@ -2952,7 +2952,7 @@ FcFontCapabilities(FT_Face face)
     FT_UShort gsub_count=0, gpos_count=0;
     FT_ULong maxsize;
     FT_Memory  memory = face->stream->memory;
-    FcChar8 *complex = NULL;
+    FcChar8 *complex_ = NULL;
     int indx1 = 0, indx2 = 0;
 
     err = FT_Load_Sfnt_Table(face, TTAG_SILF, 0, 0, &len);
@@ -2968,36 +2968,36 @@ FcFontCapabilities(FT_Face face)
 
     maxsize = (((FT_ULong) gpos_count + (FT_ULong) gsub_count) * OTLAYOUT_LEN + 
 	       (issilgraphitefont ? 13 : 0));
-    complex = malloc (sizeof (FcChar8) * maxsize);
-    if (!complex)
+    complex_ = malloc (sizeof (FcChar8) * maxsize);
+    if (!complex_)
 	goto bail;
 
-    complex[0] = '\0';
+    complex_[0] = '\0';
     if (issilgraphitefont)
-        strcpy((char *) complex, "ttable:Silf ");
+        strcpy((char *) complex_, "ttable:Silf ");
 
     while ((indx1 < gsub_count) || (indx2 < gpos_count)) {
 	if (indx1 == gsub_count) {
-	    addtag(complex, gpostags[indx2]);
+	    addtag(complex_, gpostags[indx2]);
 	    indx2++;
 	} else if ((indx2 == gpos_count) || (gsubtags[indx1] < gpostags[indx2])) {
-	    addtag(complex, gsubtags[indx1]);
+	    addtag(complex_, gsubtags[indx1]);
 	    indx1++;
 	} else if (gsubtags[indx1] == gpostags[indx2]) {
-	    addtag(complex, gsubtags[indx1]);
+	    addtag(complex_, gsubtags[indx1]);
 	    indx1++;
 	    indx2++;
 	} else {
-	    addtag(complex, gpostags[indx2]);
+	    addtag(complex_, gpostags[indx2]);
 	    indx2++;
 	}
     }
     if (FcDebug () & FC_DBG_SCANV)
-	printf("complex features in this font: %s\n", complex);
+	printf("complex_ features in this font: %s\n", complex_);
 bail:
     ftglue_free(memory, gsubtags);
     ftglue_free(memory, gpostags);
-    return complex;
+    return complex_;
 }
 
 #define __fcfreetype__
commit 627dd913cf1588436936bc8731c7dd9c96baee90
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 08:06:07 2008 -0500

    [65-fonts-persian.conf] Set foundry in target=scan instead of target=font

diff --git a/conf.d/65-fonts-persian.conf b/conf.d/65-fonts-persian.conf
index 97b783e..c28468e 100644
--- a/conf.d/65-fonts-persian.conf
+++ b/conf.d/65-fonts-persian.conf
@@ -180,7 +180,7 @@
 
 <!-- Register the fonts that we actually do have -->
 
-	<match target="font">
+	<match target="scan">
 		<test name="family">
 			<string>Elham</string>
 		</test>
@@ -189,7 +189,7 @@
 		</edit>
 	</match>
 
-	<match target="font">
+	<match target="scan">
 		<test name="family">
 			<string>Homa</string>
 		</test>
@@ -198,7 +198,7 @@
 		</edit>
 	</match>
 
-	<match target="font">
+	<match target="scan">
 		<test name="family">
 			<string>Koodak</string>
 		</test>
@@ -207,7 +207,7 @@
 		</edit>
 	</match>
 
-	<match target="font">
+	<match target="scan">
 		<test name="family">
 			<string>Nazli</string>
 		</test>
@@ -216,7 +216,7 @@
 		</edit>
 	</match>
 
-	<match target="font">
+	<match target="scan">
 		<test name="family">
 			<string>Roya</string>
 		</test>
@@ -225,7 +225,7 @@
 		</edit>
 	</match>
 
-	<match target="font">
+	<match target="scan">
 		<test name="family">
 			<string>Terafik</string>
 		</test>
@@ -234,7 +234,7 @@
 		</edit>
 	</match>
 
-	<match target="font">
+	<match target="scan">
 		<test name="family">
 			<string>Titr</string>
 		</test>
commit 030983185bb6f3f3885dc2e4d80fec330455f11c
Author: Harshula Jayasuriya <harshula at gmail.com>
Date:   Sun Dec 28 06:13:19 2008 -0500

    Fix Sinhala coverage (bug #19288)

diff --git a/fc-lang/si.orth b/fc-lang/si.orth
index b638246..12f3c9c 100644
--- a/fc-lang/si.orth
+++ b/fc-lang/si.orth
@@ -23,18 +23,17 @@
 #
 # Sinhala (Sinhalese) (SI)
 #
-# Taken from the Unicode coverage of this language
+# Taken from the Unicode coverage of Sinhala
+# http://unicode.org/charts/PDF/U0D80.PDF
 #
-# Independent vowels
+0d82-0d83
 0d85-0d96
-# Consonants
 0d9a-0db1
 0db3-0dbb
 0dbd
 0dc0-0dc6
-# Dependent vowel signs
+0dca
 0dcf-0dd4
 0dd6
 0dd8-0ddf
-# Additional dependent vowel signs
 0df2-0df4
commit 6ca36812b4ece5368468278a9ff18f5a9c62b39f
Author: Alexey Khoroshilov <khoroshilov at linuxtesting.org>
Date:   Sun Dec 28 05:15:45 2008 -0500

    Use human-readable file names in the docs (bug #16278)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 2bc1f5e..d6f0d7b 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -146,7 +146,7 @@ clean-local:
 
 $(HTML_DIR): local-fontconfig-devel.sgml $(DOC_FUNCS_SGML) version.sgml confdir.sgml
 	$(RM) -r $(HTML_DIR)
-	$(DOC2HTML) -o $(HTML_DIR) local-fontconfig-devel.sgml
+	$(DOC2HTML) -V '%use-id-as-filename%' -o $(HTML_DIR) local-fontconfig-devel.sgml
 
 fontconfig-devel.txt: local-fontconfig-devel.sgml $(DOC_FUNCS_SGML) version.sgml confdir.sgml
 	$(RM) $@
commit f26062b277e1781876a30d3170fca8bbba2409ab
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 04:58:14 2008 -0500

    Implement fc-list --quiet ala grep (bug #17141)
    
    Exits 1 if no fonts matched, 0 otherwise.

diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index 97baea4..89f4167 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -49,6 +49,7 @@
 const struct option longopts[] = {
     {"version", 0, 0, 'V'},
     {"verbose", 0, 0, 'v'},
+    {"quiet", 0, 0, 'q'},
     {"help", 0, 0, 'h'},
     {NULL,0,0,0},
 };
@@ -64,20 +65,22 @@ usage (char *program, int error)
 {
     FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (file, "usage: %s [-vVh] [--verbose] [--version] [--help] [pattern] {element ...} \n",
+    fprintf (file, "usage: %s [-vqVh] [--verbose] [--quiet] [--version] [--help] [pattern] {element ...} \n",
 	     program);
 #else
-    fprintf (file, "usage: %s [-vVh] [pattern] {element ...} \n",
+    fprintf (file, "usage: %s [-vqVh] [pattern] {element ...} \n",
 	     program);
 #endif
     fprintf (file, "List fonts matching [pattern]\n");
     fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
     fprintf (file, "  -v, --verbose        display entire font pattern\n");
+    fprintf (file, "  -q, --quiet          suppress all normal output, exit 1 if no fonts matched\n");
     fprintf (file, "  -V, --version        display font config version and exit\n");
     fprintf (file, "  -h, --help           display this help and exit\n");
 #else
     fprintf (file, "  -v         (verbose) display entire font pattern\n");
+    fprintf (file, "  -q,        (quiet)   suppress all normal output, exit 1 if no fonts matched\n");
     fprintf (file, "  -V         (version) display font config version and exit\n");
     fprintf (file, "  -h         (help)    display this help and exit\n");
 #endif
@@ -88,6 +91,8 @@ int
 main (int argc, char **argv)
 {
     int		verbose = 0;
+    int		quiet = 0;
+    int		nfont = 0;
     int		i;
     FcObjectSet *os = 0;
     FcFontSet	*fs;
@@ -96,9 +101,9 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "Vvh", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "Vqvh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "Vvh")) != -1)
+    while ((c = getopt (argc, argv, "Vqvh")) != -1)
 #endif
     {
 	switch (c) {
@@ -109,6 +114,9 @@ main (int argc, char **argv)
 	case 'v':
 	    verbose = 1;
 	    break;
+	case 'q':
+	    quiet = 1;
+	    break;
 	case 'h':
 	    usage (argv[0], 0);
 	default:
@@ -138,7 +146,8 @@ main (int argc, char **argv)
     }
     else
 	pat = FcPatternCreate ();
-    
+    if (quiet && !os)
+	os = FcObjectSetCreate ();
     if (!verbose && !os)
 	os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *) 0);
     fs = FcFontList (0, pat, os);
@@ -147,7 +156,7 @@ main (int argc, char **argv)
     if (pat)
 	FcPatternDestroy (pat);
 
-    if (fs)
+    if (!quiet && fs)
     {
 	int	j;
 
@@ -167,10 +176,14 @@ main (int argc, char **argv)
 		free (font);
 	    }
 	}
+    }
+
+    if (fs) {
+	nfont = fs->nfont;
 	FcFontSetDestroy (fs);
     }
 
     FcFini ();
 
-    return 0;
+    return quiet ? (nfont == 0 ? 1 : 0) : 0;
 }
commit 00c0972acae849ca3b18a7c76894c078185d3be4
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 04:48:54 2008 -0500

    Fix compile with old FreeType that doesn't have FT_Select_Size() (bug #17498)

diff --git a/configure.in b/configure.in
index e9166c7..bd843a2 100644
--- a/configure.in
+++ b/configure.in
@@ -223,19 +223,11 @@ FREETYPE_LIBS="`$ft_config --libs`"
 AC_SUBST(FREETYPE_LIBS)
 AC_SUBST(FREETYPE_CFLAGS)
 
-#
-# Check to see whether we have:
-#  FT_Get_Next_Char
-#  FT_Get_BDF_Property
-#  FT_Get_PS_Font_Info
-#  FT_Has_PS_Glyph_Names
-#
-
 fontconfig_save_libs="$LIBS"
 fontconfig_save_cflags="$CFLAGS"
 LIBS="$LIBS $FREETYPE_LIBS"
 CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
-AC_CHECK_FUNCS(FT_Get_Next_Char FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format)
+AC_CHECK_FUNCS(FT_Get_Next_Char FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Select_Size)
 AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
 		HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
 		HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index d6197de..104786d 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -2551,11 +2551,13 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing
     if (!fcs)
 	goto bail0;
     
+#if HAVE_FT_SELECT_SIZE
     if (strike_index >= 0) {
 	if (FT_Select_Size (face, strike_index) != FT_Err_Ok)
 	    goto bail1;
 	using_strike = FcTrue;
     }
+#endif
 
 #ifdef CHECK
     printf ("Family %s style %s\n", face->family_name, face->style_name);
commit 350dc5f35091e7e5635a6cf239e4cad56e992d01
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 04:26:26 2008 -0500

    Use __builtin_popcount() when available (bug #17592)

diff --git a/src/fccharset.c b/src/fccharset.c
index 98ced27..1891f08 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -546,10 +546,14 @@ FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4)
 static FcChar32
 FcCharSetPopCount (FcChar32 c1)
 {
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+    return __builtin_popcount (c1);
+#else
     /* hackmem 169 */
     FcChar32	c2 = (c1 >> 1) & 033333333333;
     c2 = c1 - c2 - ((c2 >> 1) & 033333333333);
     return (((c2 + (c2 >> 3)) & 030707070707) % 077);
+#endif
 }
 
 FcChar32
commit 4c209d5f0c217ff9d8f3b517017212d6362b07a8
Author: Rahul Bhalerao <b.rahul.pm at gmail.com>
Date:   Sun Dec 28 04:10:53 2008 -0500

    Add config for new Indic fonts (bug #17856)

diff --git a/conf.d/65-nonlatin.conf b/conf.d/65-nonlatin.conf
index 4f3c955..53ac064 100644
--- a/conf.d/65-nonlatin.conf
+++ b/conf.d/65-nonlatin.conf
@@ -50,9 +50,16 @@
 			<family>Lohit Bengali</family>
  			<family>Lohit Gujarati</family>
  			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
  			<family>Lohit Punjabi</family>
  			<family>Lohit Tamil</family>
- 			<family>Lohit Malayalam</family>
+			<family>Meera</family>
+			<family>Lohit Malayalam</family>
  			<family>Lohit Kannada</family>
  			<family>Lohit Telugu</family>
  			<family>Lohit Oriya</family>
@@ -117,8 +124,15 @@
 			<family>Lohit Bengali</family>
  			<family>Lohit Gujarati</family>
  			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
  			<family>Lohit Punjabi</family>
  			<family>Lohit Tamil</family>
+			<family>Meera</family>
  			<family>Lohit Malayalam</family>
  			<family>Lohit Kannada</family>
  			<family>Lohit Telugu</family>
@@ -162,13 +176,20 @@
 			<family>Lohit Bengali</family>
 			<family>Lohit Gujarati</family>
 			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
 			<family>Lohit Punjabi</family>
- 			<family>Lohit Tamil</family>
- 			<family>Lohit Malayalam</family>
- 			<family>Lohit Kannada</family>
- 			<family>Lohit Telugu</family>
- 			<family>Lohit Oriya</family>
- 			<family>LKLUG</family>
+			<family>Lohit Tamil</family>
+			<family>Meera</family>
+			<family>Lohit Malayalam</family>
+			<family>Lohit Kannada</family>
+			<family>Lohit Telugu</family>
+			<family>Lohit Oriya</family>
+			<family>LKLUG</family>
 		</prefer>
 	</alias>
 </fontconfig>
commit f69db8d49cbd929b80527719be6c0b1e6d49ccac
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 04:06:01 2008 -0500

    Consistently use FcStat() over stat() in all places

diff --git a/src/fcatomic.c b/src/fcatomic.c
index 180168c..fca2399 100644
--- a/src/fcatomic.c
+++ b/src/fcatomic.c
@@ -142,7 +142,7 @@ FcAtomicLock (FcAtomic *atomic)
 	 * machines sharing the same filesystem will have clocks
 	 * reasonably close to each other.
 	 */
-	if (stat ((char *) atomic->lck, &lck_stat) >= 0)
+	if (FcStat ((char *) atomic->lck, &lck_stat) >= 0)
 	{
 	    time_t  now = time (0);
 	    if ((long int) (now - lck_stat.st_mtime) > 10 * 60)
diff --git a/src/fccache.c b/src/fccache.c
index c7a2dcd..b5aa4ea 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -85,7 +85,7 @@ typedef __int64 INT64;
  * just use the UTC timestamps from NTFS, converted to the Unix epoch.
  */
 
-static int
+int
 FcStat (const char *file, struct stat *statb)
 {
     WIN32_FILE_ATTRIBUTE_DATA wfad;
@@ -131,11 +131,6 @@ FcStat (const char *file, struct stat *statb)
     
     return 0;
 }
-
-#else
-
-#define FcStat stat
-
 #endif
 
 static const char bin2hex[] = { '0', '1', '2', '3',
diff --git a/src/fccfg.c b/src/fccfg.c
index 70748c8..d375d8a 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -129,7 +129,7 @@ FcConfigNewestFile (FcStrSet *files)
     if (list)
     {
 	while ((file = FcStrListNext (list)))
-	    if (stat ((char *) file, &statb) == 0)
+	    if (FcStat ((char *) file, &statb) == 0)
 		if (!newest.set || statb.st_mtime - newest.time > 0)
 		{
 		    newest.set = FcTrue;
diff --git a/src/fcdir.c b/src/fcdir.c
index 59ea33d..5166408 100644
--- a/src/fcdir.c
+++ b/src/fcdir.c
@@ -30,7 +30,7 @@ FcFileIsDir (const FcChar8 *file)
 {
     struct stat	    statb;
 
-    if (stat ((const char *) file, &statb) != 0)
+    if (FcStat ((const char *) file, &statb) != 0)
 	return FcFalse;
     return S_ISDIR(statb.st_mode);
 }
@@ -175,7 +175,7 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
 	    ret = FcFalse;
 	goto bail_1;
     }
-    if (stat ((char *) dir, &dir_stat) < 0)
+    if (FcStat ((char *) dir, &dir_stat) < 0)
     {
 	ret = FcFalse;
 	goto bail_1;
diff --git a/src/fcint.h b/src/fcint.h
index 9a768c2..47925b0 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -524,6 +524,13 @@ FcCacheFini (void);
 FcPrivate void
 FcDirCacheReference (FcCache *cache, int nref);
 
+#ifdef _WIN32
+FcPrivate int
+FcStat (const char *file, struct stat *statb)
+#else
+#define FcStat stat
+#endif
+
 /* fccfg.c */
 
 FcPrivate FcBool
commit 9e2ed2513bb4c2ecc7ee09c48c1dc677ea58a723
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 04:00:09 2008 -0500

    [fccache] Consistently use FcStat() over stat() (bug #18195)

diff --git a/src/fccache.c b/src/fccache.c
index 241ebd0..c7a2dcd 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -520,7 +520,7 @@ FcCacheTimeValid (FcCache *cache, struct stat *dir_stat)
 
     if (!dir_stat)
     {
-	if (stat ((const char *) FcCacheDir (cache), &dir_static) < 0)
+	if (FcStat ((const char *) FcCacheDir (cache), &dir_static) < 0)
 	    return FcFalse;
 	dir_stat = &dir_static;
     }
commit ee2463fbcbe105a413021aa870e8a3f0094a1a24
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 03:40:21 2008 -0500

    Cleanup symlinks in "make uninstall" (bug #18885)

diff --git a/conf.d/Makefile.am b/conf.d/Makefile.am
index b5284f1..0f6eebd 100644
--- a/conf.d/Makefile.am
+++ b/conf.d/Makefile.am
@@ -87,3 +87,10 @@ install-data-local:
 		echo rm -f $$i";" ln -s ../conf.avail/$$i .; \
 		ln -s ../conf.avail/$$i .; \
 	 done)
+uninstall-local:
+	@(echo cd ${DESTDIR}${confddir}; \
+	 cd ${DESTDIR}${confddir}; \
+	 for i in ${CONF_LINKS}; do \
+		echo rm -f $$i; \
+		rm -f $$i; \
+	 done)
commit fe8e8a1dd777ab53f57c4d31dc9547b3e4ba0d70
Author: Harald Fernengel <harry at kdevelop.org>
Date:   Sun Dec 28 03:23:58 2008 -0500

    Don't use variables named 'bool' (bug #18851)

diff --git a/src/fcxml.c b/src/fcxml.c
index b679dd1..15d4d30 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -450,7 +450,7 @@ typedef struct _FcVStack {
 	int		integer;
 	double		_double;
 	FcMatrix	*matrix;
-	FcBool		bool;
+	FcBool		bool_;
 
 	FcTest		*test;
 	FcQual		qual;
@@ -821,12 +821,12 @@ FcVStackPushMatrix (FcConfigParse *parse, FcMatrix *matrix)
 }
 
 static FcBool
-FcVStackPushBool (FcConfigParse *parse, FcBool bool)
+FcVStackPushBool (FcConfigParse *parse, FcBool bool_)
 {
     FcVStack    *vstack = FcVStackCreate ();
     if (!vstack)
 	return FcFalse;
-    vstack->u.bool = bool;
+    vstack->u.bool_ = bool_;
     vstack->tag = FcVStackBool;
     FcVStackPush (parse, vstack);
     return FcTrue;
@@ -1266,13 +1266,13 @@ FcParseMatrix (FcConfigParse *parse)
 }
 
 static FcBool
-FcConfigLexBool (FcConfigParse *parse, const FcChar8 *bool)
+FcConfigLexBool (FcConfigParse *parse, const FcChar8 *bool_)
 {
     FcBool  result = FcFalse;
 
-    if (!FcNameBool (bool, &result))
+    if (!FcNameBool (bool_, &result))
 	FcConfigMessage (parse, FcSevereWarning, "\"%s\" is not known boolean",
-			 bool);
+			 bool_);
     return result;
 }
 
@@ -1540,7 +1540,7 @@ FcPopExpr (FcConfigParse *parse)
 	expr = FcExprCreateMatrix (vstack->u.matrix);
 	break;
     case FcVStackBool:
-	expr = FcExprCreateBool (vstack->u.bool);
+	expr = FcExprCreateBool (vstack->u.bool_);
 	break;
     case FcVStackTest:
 	break;
@@ -1955,7 +1955,7 @@ FcPopValue (FcConfigParse *parse)
 	    value.type = FcTypeMatrix;
 	break;
     case FcVStackBool:
-	value.u.b = vstack->u.bool;
+	value.u.b = vstack->u.bool_;
 	value.type = FcTypeBool;
 	break;
     default:
commit a9ac5c52a658920f1054a12435d8c07205953153
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Dec 28 03:08:38 2008 -0500

    [.gitignore] Update

diff --git a/.gitignore b/.gitignore
index e29bb57..7d27d84 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,14 @@
 tags
+TAGS
 *.tar.gz
 .libs
 .deps
 *.o
 *.lo
 *.la
+*~
+*.orig
+*.rej
 ChangeLog
 ChangeLog-*
 Makefile
commit 1c7f4de80cc4819b504707ae143a2d718af42733
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Dec 2 06:07:41 2008 -0500

    Fix two more doc typos

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index e071c81..7297e01 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -253,7 +253,7 @@ within the pattern directly.  Applications must not free this value.
 @TYPE4+++++@ 	FcBool * 			@ARG4+++++@ 	b 
 
 @PROTOTYPE++++++@
- at RET++++++@	FcBool
+ at RET++++++@	FcResult
 @FUNC++++++@	FcPatternGetFTFace
 @TYPE1++++++@ 	FcPattern * 			@ARG1++++++@ 	p
 @TYPE2++++++@	const char *			@ARG2++++++@	object
@@ -261,7 +261,7 @@ within the pattern directly.  Applications must not free this value.
 @TYPE3++++++@	FT_Face *			@ARG3++++++@	f
 
 @PROTOTYPE+++++++@
- at RET+++++++@	FcBool
+ at RET+++++++@	FcResult
 @FUNC+++++++@	FcPatternGetLangSet
 @TYPE1+++++++@ 	FcPattern * 			@ARG1+++++++@ 	p
 @TYPE2+++++++@	const char *			@ARG2+++++++@	object
commit 355ed50b185b7879a5c95e1f8697824c6dec6f9f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Sep 22 18:51:11 2008 -0400

    Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361)

diff --git a/src/fcmatch.c b/src/fcmatch.c
index 77b49cf..a181496 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -590,33 +590,40 @@ FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **cs, FcBool tri
     while (nnode--)
     {
 	node = *n++;
-	if (FcPatternGetCharSet (node->pattern, FC_CHARSET, 0, &ncs) == 
-	    FcResultMatch)
+
+	/*
+	 * Only fetch node charset if we'd need it
+	 */
+	if (trim || build_cs)
+	{
+	    if (FcPatternGetCharSet (node->pattern, FC_CHARSET, 0, &ncs) !=
+		FcResultMatch)
+	        continue;
+	}
+
+	/*
+	 * If this font isn't a subset of the previous fonts,
+	 * add it to the list
+	 */
+	if (!trim || !*cs || !FcCharSetIsSubset (ncs, *cs))
 	{
-	    /*
-	     * If this font isn't a subset of the previous fonts,
-	     * add it to the list
-	     */
-	    if (!trim || !*cs || !FcCharSetIsSubset (ncs, *cs))
+	    if (trim || build_cs)
 	    {
-                if (trim || build_cs)
-                {
-		    *cs = FcCharSetMerge (*cs, ncs);
-		    if (*cs == NULL)
-			return FcFalse;
-                }
-
-		FcPatternReference (node->pattern);
-		if (FcDebug () & FC_DBG_MATCHV)
-		{
-		    printf ("Add ");
-		    FcPatternPrint (node->pattern);
-		}
-		if (!FcFontSetAdd (fs, node->pattern))
-		{
-		    FcPatternDestroy (node->pattern);
+		*cs = FcCharSetMerge (*cs, ncs);
+		if (*cs == NULL)
 		    return FcFalse;
-		}
+	    }
+
+	    FcPatternReference (node->pattern);
+	    if (FcDebug () & FC_DBG_MATCHV)
+	    {
+		printf ("Add ");
+		FcPatternPrint (node->pattern);
+	    }
+	    if (!FcFontSetAdd (fs, node->pattern))
+	    {
+		FcPatternDestroy (node->pattern);
+		return FcFalse;
 	    }
 	}
     }
commit 799691c901ea2d8561980c763a7e78383f1cceec
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Sep 22 18:16:30 2008 -0400

    Don't leak FcValues string loaded through fcxml.c (#17661)
    
    Patch from Caolan McNamara.

diff --git a/src/fcpat.c b/src/fcpat.c
index f9b533c..4bff659 100644
--- a/src/fcpat.c
+++ b/src/fcpat.c
@@ -27,7 +27,7 @@
 #include <assert.h>
 
 static FcBool
-FcStrHashed (const FcChar8 *name);
+FcHashOwnsName(const FcChar8 *name);
 
 FcPattern *
 FcPatternCreate (void)
@@ -50,7 +50,7 @@ FcValueDestroy (FcValue v)
 {
     switch (v.type) {
     case FcTypeString:
-        if (!FcStrHashed (v.u.s))
+        if (!FcHashOwnsName(v.u.s))
             FcStrFree ((FcChar8 *) v.u.s);
 	break;
     case FcTypeMatrix:
@@ -131,7 +131,7 @@ FcValueListDestroy (FcValueListPtr l)
     {
 	switch (l->value.type) {
 	case FcTypeString:
-            if (!FcStrHashed ((FcChar8 *)l->value.u.s))
+            if (!FcHashOwnsName((FcChar8 *)l->value.u.s))
                 FcStrFree ((FcChar8 *)l->value.u.s);
 	    break;
 	case FcTypeMatrix:
@@ -1041,14 +1041,14 @@ static struct objectBucket {
 } *FcObjectBuckets[OBJECT_HASH_SIZE];
 
 static FcBool
-FcStrHashed (const FcChar8 *name)
+FcHashOwnsName (const FcChar8 *name)
 {
     FcChar32		hash = FcStringHash (name);
     struct objectBucket	**p;
     struct objectBucket	*b;
 
     for (p = &FcObjectBuckets[hash % OBJECT_HASH_SIZE]; (b = *p); p = &(b->next))
-	if (b->hash == hash && !strcmp ((char *)name, (char *) (b + 1)))
+	if (b->hash == hash && ((char *)name == (char *) (b + 1)))
             return FcTrue;
     return FcFalse;
 }
diff --git a/src/fcxml.c b/src/fcxml.c
index efdb297..b679dd1 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -1997,8 +1997,10 @@ FcParsePatelt (FcConfigParse *parse)
 	if (!FcPatternAdd (pattern, name, value, FcTrue))
 	{
 	    FcConfigMessage (parse, FcSevereError, "out of memory");
+            FcValueDestroy(value);
 	    break;
 	}
+        FcValueDestroy(value);
     }
 
     FcVStackPushPattern (parse, pattern);
commit 311da2316f5d40d9b8c72c9965f7d70330f3c498
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Apr 23 09:07:28 2008 +0100

    Reduce number of allocations during FcSortWalk().
    
    The current behaviour of FcSortWalk() is to create a new FcCharSet on
    each iteration that is the union of the previous iteration with the next
    FcCharSet in the font set. This causes the existing FcCharSet to be
    reproduced in its entirety and then allocates fresh leaves for the new
    FcCharSet. In essence the number of allocations is quadratic wrt the
    number of fonts required.
    
    By introducing a new method for merging a new FcCharSet with an existing
    one we can change the behaviour to be effectively linear with the number
    of fonts - allocating no more leaves than necessary to cover all the
    fonts in the set.
    
    For example, profiling 'gedit UTF-8-demo.txt'
        Allocator		    nAllocs	    nBytes
    Before:
        FcCharSetFindLeafCreate 62886	    2012352
        FcCharSetPutLeaf        9361	    11441108
    After:
        FcCharSetFindLeafCreate 1940	    62080
        FcCharSetPutLeaf        281		    190336
    
    The savings are even more significant for applications like firefox-3.0b5
    which need to switch between large number of fonts.
    Before:
        FcCharSetFindLeafCreate 4461192	    142758144
        FcCharSetPutLeaf	    1124536	    451574172
    After:
        FcCharSetFindLeafCreate 80359	    2571488
        FcCharSetPutLeaf	    18940	    9720522
    
    Out of interest, the next most frequent allocations are
        FcPatternObjectAddWithBinding 526029    10520580
        tt_face_load_eblc	    42103	    2529892

diff --git a/src/fccharset.c b/src/fccharset.c
index d42d78f..98ced27 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -452,6 +452,68 @@ FcCharSetUnion (const FcCharSet *a, const FcCharSet *b)
     return FcCharSetOperate (a, b, FcCharSetUnionLeaf, FcTrue, FcTrue);
 }
 
+FcCharSet *
+FcCharSetMerge (FcCharSet *a, const FcCharSet *b)
+{
+    FcCharSet	    *fcs;
+    FcCharSetIter    ai, bi;
+
+    if (a == NULL) {
+	return FcCharSetCopy ((FcCharSet *) b);
+    } else if (a->ref == FC_REF_CONSTANT) {
+	fcs = FcCharSetCreate ();
+	if (fcs == NULL)
+	    return NULL;
+    } else
+	fcs = a;
+
+    FcCharSetIterStart (a, &ai);
+    FcCharSetIterStart (b, &bi);
+    while (ai.leaf || bi.leaf)
+    {
+	if (ai.ucs4 < bi.ucs4)
+	{
+	    if (!FcCharSetAddLeaf (fcs, ai.ucs4, ai.leaf))
+		goto bail;
+
+	    FcCharSetIterNext (a, &ai);
+	}
+	else if (bi.ucs4 < ai.ucs4)
+	{
+	    if (!FcCharSetAddLeaf (fcs, bi.ucs4, bi.leaf))
+		goto bail;
+
+	    FcCharSetIterNext (b, &bi);
+	}
+	else
+	{
+	    FcCharLeaf  leaf;
+
+	    if (FcCharSetUnionLeaf (&leaf, ai.leaf, bi.leaf))
+	    {
+		if (!FcCharSetAddLeaf (fcs, ai.ucs4, &leaf))
+		    goto bail;
+	    }
+
+	    FcCharSetIterNext (a, &ai);
+	    FcCharSetIterNext (b, &bi);
+	}
+    }
+
+    if (fcs != a)
+	FcCharSetDestroy (a);
+
+    return fcs;
+
+bail:
+    FcCharSetDestroy (fcs);
+
+    if (fcs != a)
+	FcCharSetDestroy (a);
+
+    return NULL;
+}
+
 static FcBool
 FcCharSetSubtractLeaf (FcCharLeaf *result,
 		       const FcCharLeaf *al,
diff --git a/src/fcint.h b/src/fcint.h
index 370dd7e..9a768c2 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -641,6 +641,9 @@ FcNameParseCharSet (FcChar8 *string);
 FcPrivate FcCharLeaf *
 FcCharSetFindLeafCreate (FcCharSet *fcs, FcChar32 ucs4);
 
+FcPrivate FcCharSet *
+FcCharSetMerge (FcCharSet *a, const FcCharSet *b);
+
 FcPrivate FcBool
 FcCharSetSerializeAlloc(FcSerialize *serialize, const FcCharSet *cs);
 
diff --git a/src/fcmatch.c b/src/fcmatch.c
index b3ee5c1..77b49cf 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -601,16 +601,9 @@ FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **cs, FcBool tri
 	    {
                 if (trim || build_cs)
                 {
-                    if (*cs)
-                    {
-                        ncs = FcCharSetUnion (ncs, *cs);
-                        if (!ncs)
-                            return FcFalse;
-                        FcCharSetDestroy (*cs);
-                    }
-                    else
-                        ncs = FcCharSetCopy (ncs);
-                    *cs = ncs;
+		    *cs = FcCharSetMerge (*cs, ncs);
+		    if (*cs == NULL)
+			return FcFalse;
                 }
 
 		FcPatternReference (node->pattern);
commit 8072f4b1304efc59fee5e61efc4c4b0fc05bb8fb
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Aug 22 18:25:22 2008 -0400

    Document how to free return value of FcNameUnparse()

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index 5a9912f..e071c81 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -393,5 +393,5 @@ Converts <parameter>name</parameter> from the standard text format described abo
 @DESC@
 Converts the given pattern into the standard text format described above.
 The return value is not static, but instead refers to newly allocated memory
-which should be freed by the caller.
+which should be freed by the caller using free().
 @@
commit 241fbde1ab28d7beb9b861d8804d0416f0d5589c
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Aug 22 18:08:07 2008 -0400

    Add FcConfigReference() (#17124)

diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs
index 16d1000..3ceab92 100644
--- a/doc/fcconfig.fncs
+++ b/doc/fcconfig.fncs
@@ -29,14 +29,28 @@
 Creates an empty configuration.
 @@
 
+ at RET@           FcConfig *
+ at FUNC@          FcConfigReference
+ at TYPE1@         FcConfig *                      @ARG1@          config
+ at PURPOSE@	Increment config reference count
+ at DESC@
+Add another reference to <parameter>config</parameter>. Configs are freed only
+when the reference count reaches zero.
+If <parameter>config</parameter> is NULL, the current configuration is used.
+In that case this function will be similar to FcConfigGetCurrent() except that
+it increments the reference count before returning and the user is responsible
+for destroying the configuration when not needed anymore.
+@@
+
 @RET@           void
 @FUNC@          FcConfigDestroy
 @TYPE1@         FcConfig *                      @ARG1@          config
 @PURPOSE@	Destroy a configuration
 @DESC@
-Destroys a configuration and any data associated with it.  Note that calling
-this function with the return from FcConfigGetCurrent will place the library
-in an indeterminate state.
+Decrements the config reference count. If all references are gone, destroys
+the configuration and any data associated with it.
+Note that calling this function with the return from FcConfigGetCurrent will
+cause a new configuration to be created for use as current configuration.
 @@
 
 @RET@           FcBool
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 55e1763..4149072 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -342,6 +342,9 @@ FcConfigFilename (const FcChar8 *url);
 FcPublic FcConfig *
 FcConfigCreate (void);
 
+FcPublic FcConfig *
+FcConfigReference (FcConfig *config);
+
 FcPublic void
 FcConfigDestroy (FcConfig *config);
 
diff --git a/src/fccfg.c b/src/fccfg.c
index 85ad0f5..70748c8 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -92,6 +92,8 @@ FcConfigCreate (void)
 
     config->rescanTime = time(0);
     config->rescanInterval = 30;    
+
+    config->ref = 1;
     
     return config;
 
@@ -191,11 +193,29 @@ FcSubstDestroy (FcSubst *s)
     }
 }
 
+FcConfig *
+FcConfigReference (FcConfig *config)
+{
+    if (!config)
+    {
+	config = FcConfigGetCurrent ();
+	if (!config)
+	    return 0;
+    }
+
+    config->ref++;
+
+    return config;
+}
+
 void
 FcConfigDestroy (FcConfig *config)
 {
     FcSetName	set;
 
+    if (--config->ref > 0)
+	return;
+
     if (config == _fcConfig)
 	_fcConfig = 0;
 
diff --git a/src/fcint.h b/src/fcint.h
index 5798702..370dd7e 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -483,6 +483,8 @@ struct _FcConfig {
      */
     time_t	rescanTime;	    /* last time information was scanned */
     int		rescanInterval;	    /* interval between scans */
+
+    int		ref;                /* reference count */
 };
  
 extern FcPrivate FcConfig	*_fcConfig;
commit 03dcaaa08fe324a058c427ab2da993fddaa7b3fd
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Aug 22 17:49:02 2008 -0400

    Document when config can be NULL (#17105)
    
    Note that this also fixes a bug with FcFontList() where previously
    it was NOT checking whether the config is up-to-date.  May want to
    keep the old behavior and document that ScanInterval is essentially
    unused internally (FcFontSetList uses it, but we can remove that
    too).

diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs
index 4251309..16d1000 100644
--- a/doc/fcconfig.fncs
+++ b/doc/fcconfig.fncs
@@ -63,6 +63,7 @@ Returns the current default configuration.
 @DESC@
 Checks all of the files related to <parameter>config</parameter> and returns
 whether any of them has been modified since the configuration was created.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@		FcChar8 *
@@ -95,6 +96,7 @@ disabled. The previous setting of the value is returned.
 Builds the set of available fonts for the given configuration.  Note that
 any changes to the configuration after this call have indeterminate effects.
 Returns FcFalse if this operation runs out of memory.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcStrList *
@@ -104,6 +106,7 @@ Returns FcFalse if this operation runs out of memory.
 @DESC@
 Returns the list of font directories specified in the configuration files
 for <parameter>config</parameter>.  Does not include any subdirectories.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcStrList *
@@ -114,6 +117,7 @@ for <parameter>config</parameter>.  Does not include any subdirectories.
 Returns the list of font directories in <parameter>config</parameter>. This includes the
 configured font directories along with any directories below those in the
 filesystem.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcStrList *
@@ -122,6 +126,7 @@ filesystem.
 @PURPOSE@	Get config files
 @DESC@
 Returns the list of known configuration files used to generate <parameter>config</parameter>.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcChar8 *
@@ -141,6 +146,7 @@ simply returns NULL to indicate that no per-user file exists.
 <function>FcConfigGetCacheDirs</function> returns a string list containing
 all of the directories that fontconfig will search when attempting to load a
 cache file for a font directory.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcFontSet *
@@ -152,6 +158,7 @@ cache file for a font directory.
 Returns one of the two sets of fonts from the configuration as specified
 by <parameter>set</parameter>. This font set is owned by the library and must
 not be freed.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcBlanks *
@@ -161,6 +168,9 @@ not be freed.
 @DESC@
 Returns the FcBlanks object associated with the given configuration, if no
 blanks were present in the configuration, this function will return 0.
+The returned FcBlanks object if not NULL, is valid as long as the owning
+FcConfig is alive.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           int
@@ -172,6 +182,7 @@ Returns the interval between automatic checks of the configuration (in
 seconds) specified in <parameter>config</parameter>.  The configuration is checked during
 a call to FcFontList when this interval has passed since the last check.
 An interval setting of zero disables automatic checks.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcBool
@@ -183,6 +194,7 @@ An interval setting of zero disables automatic checks.
 Sets the rescan interval. Returns FcFalse if the interval cannot be set (due
 to allocation failure). Otherwise returns FcTrue.
 An interval setting of zero disables automatic checks.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcBool
@@ -193,6 +205,7 @@ An interval setting of zero disables automatic checks.
 @DESC@
 Adds an application-specific font to the configuration. Returns FcFalse
 if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcBool
@@ -204,6 +217,7 @@ if the fonts cannot be added (due to allocation failure). Otherwise returns FcTr
 Scans the specified directory for fonts, adding each one found to the
 application-specific set of fonts. Returns FcFalse
 if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           void
@@ -212,6 +226,7 @@ if the fonts cannot be added (due to allocation failure). Otherwise returns FcTr
 @PURPOSE@	Remove all app fonts from font database
 @DESC@
 Clears the set of application-specific fonts.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcBool
@@ -227,6 +242,7 @@ FcMatchPattern, then those tagged as pattern operations are applied, else
 if <parameter>kind</parameter> is FcMatchFont, those tagged as font operations are applied and
 p_pat is used for &lt;test&gt; elements with target=pattern. Returns FcFalse
 if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcBool
@@ -238,6 +254,7 @@ if the substitution cannot be performed (due to allocation failure). Otherwise r
 @DESC@
 Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse
 if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcPattern *
@@ -254,6 +271,7 @@ pattern. This function should be called only after
 <function>FcConfigSubstitute</function> and
 <function>FcDefaultSubstitute</function> have been called for
 <parameter>p</parameter>; otherwise the results will not be correct.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcFontSet *
@@ -278,6 +296,7 @@ modify these patterns.  Instead, they should be passed, along with <parameter>p<
 <function>FcFontRenderPrepare</function> which combines them into a complete pattern.
     </para><para>
 The FcFontSet returned by FcFontSort is destroyed by caling FcFontSetDestroy.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 @@
 
 @RET@           FcPattern *
@@ -302,6 +321,8 @@ FcConfigSubstituteWithPat with <parameter>kind</parameter> FcMatchFont and then
 @DESC@
 Selects fonts matching <parameter>p</parameter>, creates patterns from those fonts containing
 only the objects in <parameter>os</parameter> and returns the set of unique such patterns.
+If <parameter>config</parameter> is NULL, the default configuration is checked
+to be up to date, and used.
 @@
 
 @RET@           FcChar8 *
diff --git a/doc/fcfontset.fncs b/doc/fcfontset.fncs
index 19d4272..db1ae37 100644
--- a/doc/fcfontset.fncs
+++ b/doc/fcfontset.fncs
@@ -62,6 +62,8 @@ Selects fonts matching <parameter>pattern</parameter> from
 <parameter>sets</parameter>, creates patterns from those
 fonts containing only the objects in <parameter>object_set</parameter> and returns
 the set of unique such patterns.
+If <parameter>config</parameter> is NULL, the default configuration is checked
+to be up to date, and used.
 @@
 
 @RET@		FcPattern *
@@ -80,6 +82,7 @@ pattern. This function should be called only after
 <function>FcConfigSubstitute</function> and
 <function>FcDefaultSubstitute</function> have been called for
 <parameter>pattern</parameter>; otherwise the results will not be correct.
+If <parameter>config</parameter> is NULL, the current configuration is used.
 Returns NULL if an error occurs during this process.
 @@
 
diff --git a/src/fclist.c b/src/fclist.c
index 2a53b79..e87e06e 100644
--- a/src/fclist.c
+++ b/src/fclist.c
@@ -555,6 +555,9 @@ FcFontList (FcConfig	*config,
 
     if (!config)
     {
+	if (!FcInitBringUptoDate ())
+	    return 0;
+
 	config = FcConfigGetCurrent ();
 	if (!config)
 	    return 0;
commit 1439c8f21af1533a920b54333f79459f456a402e
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Aug 22 16:51:33 2008 -0400

    Handle -h and --help according to GNU Coding Standards (#17104)
    
    Added -h instead of -?.  And upon -h and --help, write usave to stdout
    instead of stdin, and return 0 instead of 1.
    
    -? still works like before as that's what getopt returns upon unknown
    arguments.

diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c
index c11bb3d..225c085 100644
--- a/fc-cache/fc-cache.c
+++ b/fc-cache/fc-cache.c
@@ -72,7 +72,7 @@ const struct option longopts[] = {
     {"system-only", 0, 0, 's'},
     {"version", 0, 0, 'V'},
     {"verbose", 0, 0, 'v'},
-    {"help", 0, 0, '?'},
+    {"help", 0, 0, 'h'},
     {NULL,0,0,0},
 };
 #else
@@ -83,34 +83,35 @@ extern int optind, opterr, optopt;
 #endif
 
 static void
-usage (char *program)
+usage (char *program, int error)
 {
+    FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "usage: %s [-frsvV?] [--force|--really-force] [--system-only] [--verbose] [--version] [--help] [dirs]\n",
+    fprintf (file, "usage: %s [-frsvVh] [--force|--really-force] [--system-only] [--verbose] [--version] [--help] [dirs]\n",
 	     program);
 #else
-    fprintf (stderr, "usage: %s [-frsvV?] [dirs]\n",
+    fprintf (file, "usage: %s [-frsvVh] [dirs]\n",
 	     program);
 #endif
-    fprintf (stderr, "Build font information caches in [dirs]\n"
+    fprintf (file, "Build font information caches in [dirs]\n"
 	     "(all directories in font configuration by default).\n");
-    fprintf (stderr, "\n");
+    fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "  -f, --force          scan directories with apparently valid caches\n");
-    fprintf (stderr, "  -r, --really-force   erase all existing caches, then rescan\n");
-    fprintf (stderr, "  -s, --system-only    scan system-wide directories only\n");
-    fprintf (stderr, "  -v, --verbose        display status information while busy\n");
-    fprintf (stderr, "  -V, --version        display font config version and exit\n");
-    fprintf (stderr, "  -?, --help           display this help and exit\n");
+    fprintf (file, "  -f, --force          scan directories with apparently valid caches\n");
+    fprintf (file, "  -r, --really-force   erase all existing caches, then rescan\n");
+    fprintf (file, "  -s, --system-only    scan system-wide directories only\n");
+    fprintf (file, "  -v, --verbose        display status information while busy\n");
+    fprintf (file, "  -V, --version        display font config version and exit\n");
+    fprintf (file, "  -h, --help           display this help and exit\n");
 #else
-    fprintf (stderr, "  -f         (force)   scan directories with apparently valid caches\n");
-    fprintf (stderr, "  -r,   (really force) erase all existing caches, then rescan\n");
-    fprintf (stderr, "  -s         (system)  scan system-wide directories only\n");
-    fprintf (stderr, "  -v         (verbose) display status information while busy\n");
-    fprintf (stderr, "  -V         (version) display font config version and exit\n");
-    fprintf (stderr, "  -?         (help)    display this help and exit\n");
+    fprintf (file, "  -f         (force)   scan directories with apparently valid caches\n");
+    fprintf (file, "  -r,   (really force) erase all existing caches, then rescan\n");
+    fprintf (file, "  -s         (system)  scan system-wide directories only\n");
+    fprintf (file, "  -v         (verbose) display status information while busy\n");
+    fprintf (file, "  -V         (version) display font config version and exit\n");
+    fprintf (file, "  -h         (help)    display this help and exit\n");
 #endif
-    exit (1);
+    exit (error);
 }
 
 static FcStrSet *processed_dirs;
@@ -373,9 +374,9 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "frsVv?", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "frsVvh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "frsVv?")) != -1)
+    while ((c = getopt (argc, argv, "frsVvh")) != -1)
 #endif
     {
 	switch (c) {
@@ -395,8 +396,10 @@ main (int argc, char **argv)
 	case 'v':
 	    verbose = FcTrue;
 	    break;
+	case 'h':
+	    usage (argv[0], 0);
 	default:
-	    usage (argv[0]);
+	    usage (argv[0], 1);
 	}
     }
     i = optind;
diff --git a/fc-cache/fc-cache.sgml b/fc-cache/fc-cache.sgml
index 62c0ddf..20a7e85 100644
--- a/fc-cache/fc-cache.sgml
+++ b/fc-cache/fc-cache.sgml
@@ -63,7 +63,7 @@ manpage.1: manpage.sgml
     <cmdsynopsis>
       <command>&dhpackage;</command>
 
-      <arg><option>-fsvV?</option></arg>
+      <arg><option>-fsvVh</option></arg>
       <arg><option>--force</option></arg>
       <arg><option>--system-only</option></arg>
       <arg><option>--verbose</option></arg>
@@ -131,7 +131,7 @@ manpage.1: manpage.sgml
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option>-?</option>
+        <term><option>-h</option>
           <option>--help</option>
         </term>
         <listitem>
diff --git a/fc-cat/fc-cat.c b/fc-cat/fc-cat.c
index 86a1c2f..ec2b032 100644
--- a/fc-cat/fc-cat.c
+++ b/fc-cat/fc-cat.c
@@ -56,7 +56,7 @@ const struct option longopts[] = {
     {"version", 0, 0, 'V'},
     {"verbose", 0, 0, 'v'},
     {"recurse", 0, 0, 'r'},
-    {"help", 0, 0, '?'},
+    {"help", 0, 0, 'h'},
     {NULL,0,0,0},
 };
 #else
@@ -146,32 +146,33 @@ write_string (FILE *f, const FcChar8 *string)
 }
 
 static void
-usage (char *program)
+usage (char *program, int error)
 {
+    FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "usage: %s [-rv] [--recurse] [--verbose] [*-%s.cache-2|directory]...\n",
+    fprintf (file, "usage: %s [-rv] [--recurse] [--verbose] [*-%s.cache-2|directory]...\n",
 	     program, FC_ARCHITECTURE);
-    fprintf (stderr, "       %s [-V?] [--version] [--help]\n", program);
+    fprintf (file, "       %s [-Vh] [--version] [--help]\n", program);
 #else
-    fprintf (stderr, "usage: %s [-rvV?] [*-%s.cache-2|directory]...\n",
+    fprintf (file, "usage: %s [-rvVh] [*-%s.cache-2|directory]...\n",
 	     program, FC_ARCHITECTURE);
 #endif
-    fprintf (stderr, "Reads font information cache from:\n"); 
-    fprintf (stderr, " 1) specified fontconfig cache file\n");
-    fprintf (stderr, " 2) related to a particular font directory\n");
-    fprintf (stderr, "\n");
+    fprintf (file, "Reads font information cache from:\n");
+    fprintf (file, " 1) specified fontconfig cache file\n");
+    fprintf (file, " 2) related to a particular font directory\n");
+    fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "  -r, --recurse        recurse into subdirectories\n");
-    fprintf (stderr, "  -v, --verbose        be verbose\n");
-    fprintf (stderr, "  -V, --version        display font config version and exit\n");
-    fprintf (stderr, "  -?, --help           display this help and exit\n");
+    fprintf (file, "  -r, --recurse        recurse into subdirectories\n");
+    fprintf (file, "  -v, --verbose        be verbose\n");
+    fprintf (file, "  -V, --version        display font config version and exit\n");
+    fprintf (file, "  -h, --help           display this help and exit\n");
 #else
-    fprintf (stderr, "  -r         (recurse) recurse into subdirectories\n");
-    fprintf (stderr, "  -v         (verbose) be verbose\n");
-    fprintf (stderr, "  -V         (version) display font config version and exit\n");
-    fprintf (stderr, "  -?         (help)    display this help and exit\n");
+    fprintf (file, "  -r         (recurse) recurse into subdirectories\n");
+    fprintf (file, "  -v         (verbose) be verbose\n");
+    fprintf (file, "  -V         (version) display font config version and exit\n");
+    fprintf (file, "  -h         (help)    display this help and exit\n");
 #endif
-    exit (1);
+    exit (error);
 }
 
 /*
@@ -282,9 +283,9 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "Vvr?", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "Vvrh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "Vvr?")) != -1)
+    while ((c = getopt (argc, argv, "Vvrh")) != -1)
 #endif
     {
 	switch (c) {
@@ -298,8 +299,10 @@ main (int argc, char **argv)
 	case 'r':
 	    recurse++;
 	    break;
+	case 'h':
+	    usage (argv[0], 0);
 	default:
-	    usage (argv[0]);
+	    usage (argv[0], 1);
 	}
     }
     i = optind;
diff --git a/fc-cat/fc-cat.sgml b/fc-cat/fc-cat.sgml
index 94c74b2..69482b5 100644
--- a/fc-cat/fc-cat.sgml
+++ b/fc-cat/fc-cat.sgml
@@ -63,7 +63,7 @@ manpage.1: manpage.sgml
     <cmdsynopsis>
       <command>&dhpackage;</command>
 
-      <arg><option>-rvV?</option></arg>
+      <arg><option>-rvVh</option></arg>
       <arg><option>--recurse</option></arg>
       <arg><option>--verbose</option></arg>
       <arg><option>--version</option></arg>
@@ -109,7 +109,7 @@ manpage.1: manpage.sgml
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option>-?</option>
+        <term><option>-h</option>
           <option>--help</option>
         </term>
         <listitem>
diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index 8384f28..97baea4 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -49,7 +49,7 @@
 const struct option longopts[] = {
     {"version", 0, 0, 'V'},
     {"verbose", 0, 0, 'v'},
-    {"help", 0, 0, '?'},
+    {"help", 0, 0, 'h'},
     {NULL,0,0,0},
 };
 #else
@@ -59,27 +59,29 @@ extern int optind, opterr, optopt;
 #endif
 #endif
 
-static void usage (char *program)
+static void
+usage (char *program, int error)
 {
+    FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "usage: %s [-vV?] [--verbose] [--version] [--help] [pattern] {element ...} \n",
+    fprintf (file, "usage: %s [-vVh] [--verbose] [--version] [--help] [pattern] {element ...} \n",
 	     program);
 #else
-    fprintf (stderr, "usage: %s [-vV?] [pattern] {element ...} \n",
+    fprintf (file, "usage: %s [-vVh] [pattern] {element ...} \n",
 	     program);
 #endif
-    fprintf (stderr, "List fonts matching [pattern]\n");
-    fprintf (stderr, "\n");
+    fprintf (file, "List fonts matching [pattern]\n");
+    fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "  -v, --verbose        display entire font pattern\n");
-    fprintf (stderr, "  -V, --version        display font config version and exit\n");
-    fprintf (stderr, "  -?, --help           display this help and exit\n");
+    fprintf (file, "  -v, --verbose        display entire font pattern\n");
+    fprintf (file, "  -V, --version        display font config version and exit\n");
+    fprintf (file, "  -h, --help           display this help and exit\n");
 #else
-    fprintf (stderr, "  -v         (verbose) display entire font pattern\n");
-    fprintf (stderr, "  -V         (version) display font config version and exit\n");
-    fprintf (stderr, "  -?         (help)    display this help and exit\n");
+    fprintf (file, "  -v         (verbose) display entire font pattern\n");
+    fprintf (file, "  -V         (version) display font config version and exit\n");
+    fprintf (file, "  -h         (help)    display this help and exit\n");
 #endif
-    exit (1);
+    exit (error);
 }
 
 int
@@ -94,9 +96,9 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "Vv?", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "Vvh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "Vv?")) != -1)
+    while ((c = getopt (argc, argv, "Vvh")) != -1)
 #endif
     {
 	switch (c) {
@@ -107,8 +109,10 @@ main (int argc, char **argv)
 	case 'v':
 	    verbose = 1;
 	    break;
+	case 'h':
+	    usage (argv[0], 0);
 	default:
-	    usage (argv[0]);
+	    usage (argv[0], 1);
 	}
     }
     i = optind;
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index f4a3147..35bf899 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -63,7 +63,7 @@ manpage.1: manpage.sgml
     <cmdsynopsis>
       <command>&dhpackage;</command>
 
-      <arg><option>-vV?</option></arg>
+      <arg><option>-vVh</option></arg>
       <arg><option>--verbose</option></arg>
       <arg><option>--version</option></arg>
       <arg><option>--help</option></arg>
@@ -100,7 +100,7 @@ manpage.1: manpage.sgml
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option>-?</option>
+        <term><option>-h</option>
           <option>--help</option>
         </term>
         <listitem>
diff --git a/fc-match/fc-match.c b/fc-match/fc-match.c
index 05bf774..5ed8def 100644
--- a/fc-match/fc-match.c
+++ b/fc-match/fc-match.c
@@ -53,7 +53,7 @@ static const struct option longopts[] = {
     {"all", 0, 0, 'a'},
     {"version", 0, 0, 'V'},
     {"verbose", 0, 0, 'v'},
-    {"help", 0, 0, '?'},
+    {"help", 0, 0, 'h'},
     {NULL,0,0,0},
 };
 #else
@@ -63,31 +63,33 @@ extern int optind, opterr, optopt;
 #endif
 #endif
 
-static void usage (char *program)
+static void
+usage (char *program, int error)
 {
+    FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "usage: %s [-savV?] [--sort] [--all] [--verbose] [--version] [--help] [pattern]\n",
+    fprintf (file, "usage: %s [-savVh] [--sort] [--all] [--verbose] [--version] [--help] [pattern]\n",
 	     program);
 #else
-    fprintf (stderr, "usage: %s [-savV?] [pattern]\n",
+    fprintf (file, "usage: %s [-savVh] [pattern]\n",
 	     program);
 #endif
-    fprintf (stderr, "List fonts matching [pattern]\n");
-    fprintf (stderr, "\n");
+    fprintf (file, "List fonts matching [pattern]\n");
+    fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "  -s, --sort           display sorted list of matches\n");
-    fprintf (stderr, "  -a, --all            display unpruned sorted list of matches\n");
-    fprintf (stderr, "  -v, --verbose        display entire font pattern\n");
-    fprintf (stderr, "  -V, --version        display font config version and exit\n");
-    fprintf (stderr, "  -?, --help           display this help and exit\n");
+    fprintf (file, "  -s, --sort           display sorted list of matches\n");
+    fprintf (file, "  -a, --all            display unpruned sorted list of matches\n");
+    fprintf (file, "  -v, --verbose        display entire font pattern\n");
+    fprintf (file, "  -V, --version        display font config version and exit\n");
+    fprintf (file, "  -h, --help           display this help and exit\n");
 #else
-    fprintf (stderr, "  -s,        (sort)    display sorted list of matches\n");
-    fprintf (stderr, "  -a         (all)     display unpruned sorted list of matches\n");
-    fprintf (stderr, "  -v         (verbose) display entire font pattern\n");
-    fprintf (stderr, "  -V         (version) display font config version and exit\n");
-    fprintf (stderr, "  -?         (help)    display this help and exit\n");
+    fprintf (file, "  -s,        (sort)    display sorted list of matches\n");
+    fprintf (file, "  -a         (all)     display unpruned sorted list of matches\n");
+    fprintf (file, "  -v         (verbose) display entire font pattern\n");
+    fprintf (file, "  -V         (version) display font config version and exit\n");
+    fprintf (file, "  -h         (help)    display this help and exit\n");
 #endif
-    exit (1);
+    exit (error);
 }
 
 int
@@ -103,9 +105,9 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "asVv?", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "asVvh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "asVv?")) != -1)
+    while ((c = getopt (argc, argv, "asVvh")) != -1)
 #endif
     {
 	switch (c) {
@@ -122,8 +124,10 @@ main (int argc, char **argv)
 	case 'v':
 	    verbose = 1;
 	    break;
+	case 'h':
+	    usage (argv[0], 0);
 	default:
-	    usage (argv[0]);
+	    usage (argv[0], 1);
 	}
     }
     i = optind;
diff --git a/fc-match/fc-match.sgml b/fc-match/fc-match.sgml
index c2f699d..b5ca675 100644
--- a/fc-match/fc-match.sgml
+++ b/fc-match/fc-match.sgml
@@ -63,7 +63,7 @@ manpage.1: manpage.sgml
     <cmdsynopsis>
       <command>&dhpackage;</command>
 
-      <arg><option>-asvV?</option></arg>
+      <arg><option>-asvVh</option></arg>
       <arg><option>--all</option></arg>
       <arg><option>--sort</option></arg>
       <arg><option>--verbose</option></arg>
@@ -103,7 +103,7 @@ are printed.  The <option>--all</option> option works like
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option>-?</option>
+        <term><option>-h</option>
           <option>--help</option>
         </term>
         <listitem>
diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c
index 2a36bf0..6ea45ea 100644
--- a/fc-query/fc-query.c
+++ b/fc-query/fc-query.c
@@ -54,7 +54,7 @@
 static const struct option longopts[] = {
     {"index", 1, 0, 'i'},
     {"version", 0, 0, 'V'},
-    {"help", 0, 0, '?'},
+    {"help", 0, 0, 'h'},
     {NULL,0,0,0},
 };
 #else
@@ -64,28 +64,30 @@ extern int optind, opterr, optopt;
 #endif
 #endif
 
-static void usage (char *program)
+static void
+usage (char *program, int error)
 {
+    FILE *file = error ? stderr : stdout;
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "usage: %s [-V?] [-i index] [--index index] [--version] [--help] font-file...\n",
+    fprintf (file, "usage: %s [-Vh] [-i index] [--index index] [--version] [--help] font-file...\n",
 	     program);
 #else
-    fprintf (stderr, "usage: %s [-V?] [-i index] font-file...\n",
+    fprintf (file, "usage: %s [-Vh] [-i index] font-file...\n",
 	     program);
 #endif
-    fprintf (stderr, "Query font files and print resulting pattern(s)\n");
-    fprintf (stderr, "\n");
+    fprintf (file, "Query font files and print resulting pattern(s)\n");
+    fprintf (file, "\n");
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "  -i, --index INDEX    display the INDEX face of each font file only\n");
-    fprintf (stderr, "  -V, --version        display font config version and exit\n");
-    fprintf (stderr, "  -?, --help           display this help and exit\n");
+    fprintf (file, "  -i, --index INDEX    display the INDEX face of each font file only\n");
+    fprintf (file, "  -V, --version        display font config version and exit\n");
+    fprintf (file, "  -h, --help           display this help and exit\n");
 #else
-    fprintf (stderr, "  -i INDEX   (index)   display the INDEX face of each font file only\n");
-    fprintf (stderr, "  -a         (all)     display unpruned sorted list of matches\n");
-    fprintf (stderr, "  -V         (version) display font config version and exit\n");
-    fprintf (stderr, "  -?         (help)    display this help and exit\n");
+    fprintf (file, "  -i INDEX   (index)   display the INDEX face of each font file only\n");
+    fprintf (file, "  -a         (all)     display unpruned sorted list of matches\n");
+    fprintf (file, "  -V         (version) display font config version and exit\n");
+    fprintf (file, "  -h         (help)    display this help and exit\n");
 #endif
-    exit (1);
+    exit (error);
 }
 
 int
@@ -100,9 +102,9 @@ main (int argc, char **argv)
     int		c;
 
 #if HAVE_GETOPT_LONG
-    while ((c = getopt_long (argc, argv, "i:sVv?", longopts, NULL)) != -1)
+    while ((c = getopt_long (argc, argv, "i:sVvh", longopts, NULL)) != -1)
 #else
-    while ((c = getopt (argc, argv, "i:asVv?")) != -1)
+    while ((c = getopt (argc, argv, "i:asVvh")) != -1)
 #endif
     {
 	switch (c) {
@@ -114,8 +116,10 @@ main (int argc, char **argv)
 	    fprintf (stderr, "fontconfig version %d.%d.%d\n",
 		     FC_MAJOR, FC_MINOR, FC_REVISION);
 	    exit (0);
+	case 'h':
+	    usage (argv[0], 0);
 	default:
-	    usage (argv[0]);
+	    usage (argv[0], 1);
 	}
     }
     i = optind;
@@ -124,7 +128,7 @@ main (int argc, char **argv)
 #endif
 
     if (i == argc)
-	usage (argv[0]);
+	usage (argv[0], 1);
 
     if (!FcInit ())
     {
diff --git a/fc-query/fc-query.sgml b/fc-query/fc-query.sgml
index 4a1a5e6..2c73129 100644
--- a/fc-query/fc-query.sgml
+++ b/fc-query/fc-query.sgml
@@ -62,7 +62,7 @@ manpage.1: manpage.sgml
     <cmdsynopsis>
       <command>&dhpackage;</command>
 
-      <arg><option>-V?</option></arg>
+      <arg><option>-Vh</option></arg>
       <arg><option>--version</option></arg>
       <arg><option>--help</option></arg>
       <sbr>
@@ -93,7 +93,7 @@ manpage.1: manpage.sgml
 
     <variablelist>
       <varlistentry>
-        <term><option>-?</option>
+        <term><option>-h</option>
           <option>--help</option>
         </term>
         <listitem>
commit df243f93be4306e788aebf6b2ac4a7c1b97550ae
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Aug 22 13:02:14 2008 -0400

    Add WenQuanYi fonts to default conf (#17262, from Mandriva)

diff --git a/conf.d/65-nonlatin.conf b/conf.d/65-nonlatin.conf
index 1d55484..4f3c955 100644
--- a/conf.d/65-nonlatin.conf
+++ b/conf.d/65-nonlatin.conf
@@ -27,6 +27,8 @@
 			<family>UmePlus P Gothic</family> <!-- han (ja) -->
 			<family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
 			<family>PMingLiu</family> <!-- han (zh-tw) -->
+			<family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
+			<family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
 			<family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
 			<family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
 			<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
@@ -90,6 +92,8 @@
 			<!-- chinese fonts are actually serifed -->
 			<family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
 			<family>PMingLiu</family> <!-- han (zh-tw) -->
+			<family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
+			<family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
 			<family>AR PL ShanHeiSun Uni</family> <!--han (ja,zh-cn,zh-tw) -->
 			<family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
 			<family>MgOpen Modata</family>
commit f31d8b1b1a93334611353d7ea846f8006fda855c
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Aug 22 03:51:57 2008 -0400

    Add Sindhi .orth file. (#17140)

diff --git a/fc-lang/sd.orth b/fc-lang/sd.orth
new file mode 100644
index 0000000..d06549c
--- /dev/null
+++ b/fc-lang/sd.orth
@@ -0,0 +1,28 @@
+#
+# fontconfig/fc-lang/sd.orth
+#
+# Copyright © 2008 Rahul Bhalerao
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Sindhi (Devanagari script) (SD)
+#
+include hi.orth
+097b-097c	# Sindhi implosives
+097e-097f	# Sindhi implosives
commit b9f18922f112f2f551429b692d793dda7d02cd86
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Aug 21 17:17:04 2008 -0400

    Update sr.orth to actul subset of Cyrillic used by Serbian (#17208)

diff --git a/fc-lang/sr.orth b/fc-lang/sr.orth
index 2295c81..d360896 100644
--- a/fc-lang/sr.orth
+++ b/fc-lang/sr.orth
@@ -1,7 +1,7 @@
 #
 # fontconfig/fc-lang/sr.orth
 #
-# Copyright © 2002 Keith Packard
+# Copyright © 2008 Danilo Šegan
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
@@ -23,23 +23,13 @@
 #
 # Serbian (SR)
 #
-# Sources:
-#	www.evertype.com
-#	www.eki.ee/letter
-#
-# evertype.com marks a subset of the standard Cyrillic alphabet; I've
-# simply included all of it here.
-#
 0402
-0408
-0409
-040a
-040b
+0408-040b
 040f
-0410-044f
+0410-0418
+041a-0428
+0430-0438
+043a-0448
 0452
-0458
-0459
-045a
-045b
+0458-045b
 045f
commit 74e16ceeeab86f50c4b6bea12800f70110cd4794
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Aug 14 15:27:16 2008 -0400

    Fix docs re 'orig' argument of FcPatternBuild and family
    
    Now call it 'p' or 'pattern', since it's modified in place.
    There is no copying.

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index ed59580..5a9912f 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -279,20 +279,20 @@ in preference to FcPatternGet to provide compile-time typechecking.
 
 @RET@		FcPattern *
 @FUNC@		FcPatternBuild
- at TYPE1@		FcPattern *			@ARG1@		orig
+ at TYPE1@		FcPattern *			@ARG1@		pattern
 @TYPE2@ 	...
 
 @PROTOTYPE+@
 @RET+@		FcPattern *
 @FUNC+@		FcPatternVaBuild
- at TYPE1+@	FcPattern *			@ARG1+@		orig
+ at TYPE1+@	FcPattern *			@ARG1+@		pattern
 @TYPE2+@	va_list% 			@ARG2+@		va
 
 @PROTOTYPE++@
 @RET++@		void
 @FUNC++@	FcPatternVapBuild
 @TYPE1++@	FcPattern *			@ARG1++@	result
- at TYPE2++@	FcPattern *			@ARG2++@	orig
+ at TYPE2++@	FcPattern *			@ARG2++@	pattern
 @TYPE3++@	va_list%			@ARG3++@	va
 
 @PURPOSE@	Create patterns from arguments
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 5139bbc..55e1763 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -822,10 +822,10 @@ FcPublic FcResult
 FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
 
 FcPublic FcPattern *
-FcPatternVaBuild (FcPattern *orig, va_list va);
+FcPatternVaBuild (FcPattern *p, va_list va);
     
 FcPublic FcPattern *
-FcPatternBuild (FcPattern *orig, ...) FC_ATTRIBUTE_SENTINEL(0);
+FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0);
 
 /* fcstr.c */
 
diff --git a/src/fcpat.c b/src/fcpat.c
index 350c4c2..f9b533c 100644
--- a/src/fcpat.c
+++ b/src/fcpat.c
@@ -954,23 +954,23 @@ FcPatternReference (FcPattern *p)
 }
 
 FcPattern *
-FcPatternVaBuild (FcPattern *orig, va_list va)
+FcPatternVaBuild (FcPattern *p, va_list va)
 {
     FcPattern	*ret;
     
-    FcPatternVapBuild (ret, orig, va);
+    FcPatternVapBuild (ret, p, va);
     return ret;
 }
 
 FcPattern *
-FcPatternBuild (FcPattern *orig, ...)
+FcPatternBuild (FcPattern *p, ...)
 {
     va_list	va;
     
-    va_start (va, orig);
-    FcPatternVapBuild (orig, orig, va);
+    va_start (va, p);
+    FcPatternVapBuild (p, p, va);
     va_end (va);
-    return orig;
+    return p;
 }
 
 /*
commit bb65f58f6354b8ad363021457852ad9e841cef89
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Aug 13 16:45:18 2008 -0400

    [doc] Fix signature of FcConfigHome()
    
    We should write a test to automatically cross-check signatures
    from public headers to docs.

diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs
index 2b3f81d..4251309 100644
--- a/doc/fcconfig.fncs
+++ b/doc/fcconfig.fncs
@@ -65,13 +65,14 @@ Checks all of the files related to <parameter>config</parameter> and returns
 whether any of them has been modified since the configuration was created.
 @@
 
- at RET@		FcBool
+ at RET@		FcChar8 *
 @FUNC@		FcConfigHome
 @TYPE1@		void
 @PURPOSE@	return the current home directory.
 @DESC@
 Return the current user's home directory, if it is available, and if using it
-is enabled. See also <function>FcConfigEnableHome</function>).
+is enabled, and NULL otherwise.
+See also <function>FcConfigEnableHome</function>).
 @@
 
 @RET@		FcBol
commit e690fbb20ec41ef018a32ac01118a41103c01289
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Aug 13 03:30:23 2008 -0400

    Get rid of $Id$ tags

diff --git a/COPYING b/COPYING
index 4ee13ed..c0f1976 100644
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,4 @@
-$Id$
+fontconfig/COPYING
 
 Copyright © 2001,2003 Keith Packard
 
diff --git a/Makefile.am b/Makefile.am
index 6e1c207..45c71bc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
 # 
-#  $Id$
+#  fontconfig/Makefile.am
 # 
 #  Copyright © 2003 Keith Packard
 # 
diff --git a/conf.d/Makefile.am b/conf.d/Makefile.am
index eeb3974..b5284f1 100644
--- a/conf.d/Makefile.am
+++ b/conf.d/Makefile.am
@@ -1,5 +1,5 @@
 # 
-#  $Id$
+#  fontconfig/conf.d/Makefile.am
 # 
 #  Copyright © 2005 Keith Packard
 # 
diff --git a/configure.in b/configure.in
index e381475..e9166c7 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
 dnl 
-dnl  $Id$
+dnl  fontconfig/configure.in
 dnl 
 dnl  Copyright © 2003 Keith Packard
 dnl 
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 0e7b839..2bc1f5e 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,5 +1,5 @@
 #
-# $Id$
+# fontconfig/doc/Makefile.am
 #
 # Copyright © 2003 Keith Packard
 #
diff --git a/doc/confdir.sgml.in b/doc/confdir.sgml.in
index d190d0c..60ee961 100644
--- a/doc/confdir.sgml.in
+++ b/doc/confdir.sgml.in
@@ -1,5 +1,5 @@
 <!--  
-   $Id$
+   fontconfig/doc/confdir.sgml.in
   
    Copyright © 2003 Keith Packard
   
diff --git a/doc/edit-sgml.c b/doc/edit-sgml.c
index 02f4a46..6638a7c 100644
--- a/doc/edit-sgml.c
+++ b/doc/edit-sgml.c
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/edit-sgml.c
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcatomic.fncs b/doc/fcatomic.fncs
index 54ea696..4e60eb7 100644
--- a/doc/fcatomic.fncs
+++ b/doc/fcatomic.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcatomic.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcblanks.fncs b/doc/fcblanks.fncs
index 5b8bab3..cda5a5b 100644
--- a/doc/fcblanks.fncs
+++ b/doc/fcblanks.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcblanks.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fccharset.fncs b/doc/fccharset.fncs
index f4e81a7..f4c7d32 100644
--- a/doc/fccharset.fncs
+++ b/doc/fccharset.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fccharset.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs
index 0360df9..2b3f81d 100644
--- a/doc/fcconfig.fncs
+++ b/doc/fcconfig.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcconfig.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcconstant.fncs b/doc/fcconstant.fncs
index 8fb4e90..e492359 100644
--- a/doc/fcconstant.fncs
+++ b/doc/fcconstant.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcconstant.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcfile.fncs b/doc/fcfile.fncs
index 80d7e7f..7a98044 100644
--- a/doc/fcfile.fncs
+++ b/doc/fcfile.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcfile.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcfontset.fncs b/doc/fcfontset.fncs
index 3e214aa..19d4272 100644
--- a/doc/fcfontset.fncs
+++ b/doc/fcfontset.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcfontset.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcfreetype.fncs b/doc/fcfreetype.fncs
index 6eb29b1..d482144 100644
--- a/doc/fcfreetype.fncs
+++ b/doc/fcfreetype.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcfreetype.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcinit.fncs b/doc/fcinit.fncs
index 13e4604..54fa6fe 100644
--- a/doc/fcinit.fncs
+++ b/doc/fcinit.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcinit.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcmatrix.fncs b/doc/fcmatrix.fncs
index 0159555..9cad998 100644
--- a/doc/fcmatrix.fncs
+++ b/doc/fcmatrix.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcmatrix.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcobjectset.fncs b/doc/fcobjectset.fncs
index a15326a..02c089b 100644
--- a/doc/fcobjectset.fncs
+++ b/doc/fcobjectset.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcobjectset.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcobjecttype.fncs b/doc/fcobjecttype.fncs
index 8325dd6..f11137b 100644
--- a/doc/fcobjecttype.fncs
+++ b/doc/fcobjecttype.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcobjecttype.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index 4775dbd..ed59580 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcpattern.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcstring.fncs b/doc/fcstring.fncs
index 8ba19e8..ed73040 100644
--- a/doc/fcstring.fncs
+++ b/doc/fcstring.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcstring.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcstrset.fncs b/doc/fcstrset.fncs
index d6b0520..d1869ba 100644
--- a/doc/fcstrset.fncs
+++ b/doc/fcstrset.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcstrset.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fcvalue.fncs b/doc/fcvalue.fncs
index 14d043b..0786028 100644
--- a/doc/fcvalue.fncs
+++ b/doc/fcvalue.fncs
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/doc/fcvalue.fncs
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/doc/fontconfig-devel.sgml b/doc/fontconfig-devel.sgml
index 6ca8e60..560a862 100644
--- a/doc/fontconfig-devel.sgml
+++ b/doc/fontconfig-devel.sgml
@@ -21,7 +21,7 @@
 <!ENTITY version SYSTEM "version.sgml">
 ]>
 <!--
-    $Id$
+    fontconfig/doc/local-fontconfig-devel.sgml
    
     Copyright © 2003 Keith Packard
    
diff --git a/doc/func.sgml b/doc/func.sgml
index e764cdc..02b3e3d 100644
--- a/doc/func.sgml
+++ b/doc/func.sgml
@@ -1,5 +1,5 @@
 <!--
-   $Id$
+   fontconfig/doc/func.sgml
   
    Copyright © 2003 Keith Packard
   
diff --git a/doc/version.sgml.in b/doc/version.sgml.in
index bf05273..f7666c0 100644
--- a/doc/version.sgml.in
+++ b/doc/version.sgml.in
@@ -1,5 +1,5 @@
 <!--  
-   $Id$
+   fontconfig/doc/version.sgml.in
   
    Copyright © 2003 Keith Packard
   
diff --git a/fc-cache/Makefile.am b/fc-cache/Makefile.am
index 2c86a77..49c59ec 100644
--- a/fc-cache/Makefile.am
+++ b/fc-cache/Makefile.am
@@ -1,5 +1,5 @@
 # 
-#  $Id$
+#  fontconfig/fc-cache/Makefile.am
 # 
 #  Copyright © 2003 Keith Packard
 # 
diff --git a/fc-case/fc-case.c b/fc-case/fc-case.c
index a4fffde..33edffd 100644
--- a/fc-case/fc-case.c
+++ b/fc-case/fc-case.c
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/fc-case/fc-case.c
  *
  * Copyright © 2004 Keith Packard
  *
diff --git a/fc-case/fccase.tmpl.h b/fc-case/fccase.tmpl.h
index 24222d2..9c06e02 100644
--- a/fc-case/fccase.tmpl.h
+++ b/fc-case/fccase.tmpl.h
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/fc-case/fccase.tmpl.h
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/fc-cat/Makefile.am b/fc-cat/Makefile.am
index 62f983c..50ad7a7 100644
--- a/fc-cat/Makefile.am
+++ b/fc-cat/Makefile.am
@@ -1,5 +1,5 @@
 # 
-#  $Id$
+#  fontconfig/fc-cat/Makefile.am
 # 
 #  Copyright © 2003 Keith Packard
 # 
diff --git a/fc-glyphname/fc-glyphname.c b/fc-glyphname/fc-glyphname.c
index b63ed24..e0f0a17 100644
--- a/fc-glyphname/fc-glyphname.c
+++ b/fc-glyphname/fc-glyphname.c
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/fc-glyphname/fc-glyphname.c
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/fc-glyphname/fcglyphname.tmpl.h b/fc-glyphname/fcglyphname.tmpl.h
index 24222d2..bbef84d 100644
--- a/fc-glyphname/fcglyphname.tmpl.h
+++ b/fc-glyphname/fcglyphname.tmpl.h
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * fontconfig/fc-glyphname/fcglyphname.tmpl.h
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/fc-list/Makefile.am b/fc-list/Makefile.am
index fcbb326..84517e7 100644
--- a/fc-list/Makefile.am
+++ b/fc-list/Makefile.am
@@ -1,5 +1,5 @@
 # 
-#  $Id$
+#  fontconfig/fc-list/Makefile.am
 # 
 #  Copyright © 2003 Keith Packard
 # 
diff --git a/fc-match/Makefile.am b/fc-match/Makefile.am
index ca5ca39..1ca036f 100644
--- a/fc-match/Makefile.am
+++ b/fc-match/Makefile.am
@@ -1,5 +1,5 @@
 # 
-#  $Id$
+#  fontconfig/fc-match/Makefile.am
 # 
 #  Copyright © 2003 Keith Packard
 # 
diff --git a/fc-query/Makefile.am b/fc-query/Makefile.am
index d75459a..9b4aa53 100644
--- a/fc-query/Makefile.am
+++ b/fc-query/Makefile.am
@@ -1,5 +1,5 @@
 #
-#  $Id$
+#  fontconfig/fc-query/Makefile.am
 #
 #  Copyright © 2003 Keith Packard
 #
diff --git a/src/Makefile.am b/src/Makefile.am
index a71ef1d..e18f937 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,5 @@
 #
-# $Id$
+# fontconfig/src/Makefile.am
 #
 # Copyright © 2003 Keith Packard
 #
commit 3042050954ddbe205e3166c9910886839829e788
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Aug 13 03:16:39 2008 -0400

    [doc] Document that a zero rescanInterval disables automatic checks (#17103)

diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs
index 6c91403..0360df9 100644
--- a/doc/fcconfig.fncs
+++ b/doc/fcconfig.fncs
@@ -170,6 +170,7 @@ blanks were present in the configuration, this function will return 0.
 Returns the interval between automatic checks of the configuration (in
 seconds) specified in <parameter>config</parameter>.  The configuration is checked during
 a call to FcFontList when this interval has passed since the last check.
+An interval setting of zero disables automatic checks.
 @@
 
 @RET@           FcBool
@@ -180,6 +181,7 @@ a call to FcFontList when this interval has passed since the last check.
 @DESC@
 Sets the rescan interval. Returns FcFalse if the interval cannot be set (due
 to allocation failure). Otherwise returns FcTrue.
+An interval setting of zero disables automatic checks.
 @@
 
 @RET@           FcBool
commit 41fc0fe68d88c1fdd38469a51a322dab6a30757d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Aug 13 02:50:35 2008 -0400

    Add FcPatternFilter() (#13016)

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index 9552918..4775dbd 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -77,6 +77,18 @@ Returns whether <parameter>pa</parameter> and <parameter>pb</parameter> have exa
 objects in <parameter>os</parameter>.
 @@
 
+ at RET@		FcPattern *
+ at FUNC@		FcPatternFilter
+ at TYPE1@		FcPattern * 			@ARG1@		 p
+ at TYPE2@		const FcObjectSet * 		@ARG1@		 os
+ at PURPOSE@	Filter the objects of pattern
+ at DESC@
+Returns a new pattern that only has those objects from
+<parameter>p</parameter> that are in <parameter>os</parameter>.
+If <parameter>os</parameter> is NULL, a duplicate of
+<parameter>p</parameter> is returned.
+@@
+
 @RET@		FcChar32
 @FUNC@		FcPatternHash
 @TYPE1@		const FcPattern *		@ARG1@		p
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 499e831..5139bbc 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -740,6 +740,9 @@ FcPatternDuplicate (const FcPattern *p);
 FcPublic void
 FcPatternReference (FcPattern *p);
 
+FcPublic FcPattern *
+FcPatternFilter (FcPattern *p, const FcObjectSet *os);
+
 FcPublic void
 FcValueDestroy (FcValue v);
 
diff --git a/src/fcpat.c b/src/fcpat.c
index 35127f2..350c4c2 100644
--- a/src/fcpat.c
+++ b/src/fcpat.c
@@ -997,6 +997,43 @@ FcPatternAppend (FcPattern *p, FcPattern *s)
     return FcTrue;
 }
 
+FcPattern *
+FcPatternFilter (FcPattern *p, const FcObjectSet *os)
+{
+    int		    i;
+    FcPattern	    *ret;
+    FcPatternElt    *e;
+    FcValueListPtr  v;
+
+    if (!os)
+	return FcPatternDuplicate (p);
+
+    ret = FcPatternCreate ();
+    if (!ret)
+	return NULL;
+
+    for (i = 0; i < os->nobject; i++)
+    {
+	FcObject object = FcObjectFromName (os->objects[i]);
+	e = FcPatternObjectFindElt (p, object);
+	if (e)
+	{
+	    for (v = FcPatternEltValues(e); v; v = FcValueListNext(v))
+	    {
+		if (!FcPatternObjectAddWithBinding (ret, e->object,
+						    FcValueCanonicalize(&v->value),
+						    v->binding, FcTrue))
+		    goto bail0;
+	    }
+	}
+    }
+    return p;
+
+bail0:
+    FcPatternDestroy (ret);
+    return NULL;
+}
+
 #define OBJECT_HASH_SIZE    31
 static struct objectBucket {
     struct objectBucket	*next;
commit e6f14d3c513a9f2e7d75c389db4f65aa0dc0502f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Aug 13 02:47:12 2008 -0400

    [doc] Add const decorator for FcPatternDuplicate()

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index 4e3a743..9552918 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -31,7 +31,7 @@ Creates a pattern with no properties; used to build patterns from scratch.
 
 @RET@		FcPattern *	
 @FUNC@		FcPatternDuplicate
- at TYPE1@		FcPattern * 			@ARG1@		 p
+ at TYPE1@		const FcPattern * 		@ARG1@		 p
 @PURPOSE@	Copy a pattern
 @DESC@
 Copy a pattern, returning a new pattern that matches
commit 29874098537e763e8e4cd3fefb1ecc0f36b808a5
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Aug 13 02:24:42 2008 -0400

    Implement fc-list --verbose (#13015)
    
    A private FcObjectGetSet() is implemented that provides an
    FcObjectSet of all registered elements.  FcFontSetList() is
    then modified to use the object set from FcObjectGetSet() if
    provided object-set is NULL.
    
    Alternatively FcObjectGetSet() can be made public.  In that
    case fc-list can use that as a base if --verbose is included,
    and also add any elements provided by the user (though that has
    no effect, as all elements from the cache are already registered).
    Currently fc-list ignores user-provided elements if --verbose
    is specified.

diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index a410df8..8384f28 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -71,11 +71,11 @@ static void usage (char *program)
     fprintf (stderr, "List fonts matching [pattern]\n");
     fprintf (stderr, "\n");
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "  -v, --verbose        display status information while busy\n");
+    fprintf (stderr, "  -v, --verbose        display entire font pattern\n");
     fprintf (stderr, "  -V, --version        display font config version and exit\n");
     fprintf (stderr, "  -?, --help           display this help and exit\n");
 #else
-    fprintf (stderr, "  -v         (verbose) display status information while busy\n");
+    fprintf (stderr, "  -v         (verbose) display entire font pattern\n");
     fprintf (stderr, "  -V         (version) display font config version and exit\n");
     fprintf (stderr, "  -?         (help)    display this help and exit\n");
 #endif
@@ -85,7 +85,7 @@ static void usage (char *program)
 int
 main (int argc, char **argv)
 {
-    /*int		verbose = 0;*/
+    int		verbose = 0;
     int		i;
     FcObjectSet *os = 0;
     FcFontSet	*fs;
@@ -105,7 +105,7 @@ main (int argc, char **argv)
 		     FC_MAJOR, FC_MINOR, FC_REVISION);
 	    exit (0);
 	case 'v':
-	    /* verbose = 1; */
+	    verbose = 1;
 	    break;
 	default:
 	    usage (argv[0]);
@@ -124,20 +124,22 @@ main (int argc, char **argv)
     if (argv[i])
     {
 	pat = FcNameParse ((FcChar8 *) argv[i]);
-	while (argv[++i])
-	{
-	    if (!os)
-		os = FcObjectSetCreate ();
-	    FcObjectSetAdd (os, argv[i]);
-	}
+	if (!verbose)
+	    while (argv[++i])
+	    {
+		if (!os)
+		    os = FcObjectSetCreate ();
+		FcObjectSetAdd (os, argv[i]);
+	    }
     }
     else
 	pat = FcPatternCreate ();
     
-    if (!os)
+    if (!verbose && !os)
 	os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *) 0);
     fs = FcFontList (0, pat, os);
-    FcObjectSetDestroy (os);
+    if (os)
+	FcObjectSetDestroy (os);
     if (pat)
 	FcPatternDestroy (pat);
 
@@ -150,11 +152,16 @@ main (int argc, char **argv)
 	    FcChar8 *font;
 	    FcChar8 *file;
 
-	    font = FcNameUnparse (fs->fonts[j]);
-	    if (FcPatternGetString (fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch)
-		printf ("%s: ", file);
-	    printf ("%s\n", font);
-	    free (font);
+	    if (verbose)
+		FcPatternPrint (fs->fonts[j]);
+	    else
+	    {
+		font = FcNameUnparse (fs->fonts[j]);
+		if (FcPatternGetString (fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch)
+		    printf ("%s: ", file);
+		printf ("%s\n", font);
+		free (font);
+	    }
 	}
 	FcFontSetDestroy (fs);
     }
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index fbd0b0d..f4a3147 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -76,8 +76,10 @@ manpage.1: manpage.sgml
     <title>DESCRIPTION</title>
 
     <para><command>&dhpackage;</command> lists fonts and styles
-      available on the system for applications using fontconfig.</para>
-
+      available on the system for applications using fontconfig.
+      With <option>--verbose</option>, the whole font pattern
+      for each font is printed, otherwise only the elements requested
+      are printed (family and style if none provided).</para>
   </refsect1>
   <refsect1>
     <title>OPTIONS</title>
@@ -92,7 +94,9 @@ manpage.1: manpage.sgml
           <option>--verbose</option>
         </term>
         <listitem>
-          <para>Display status information while busy.</para>
+          <para>Print whole font pattern for each match.  Provided
+	        <replaceable>element</replaceable>s are ignored in this
+		case.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
diff --git a/src/fcint.h b/src/fcint.h
index fe59947..5798702 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -863,6 +863,9 @@ FcObjectFromName (const char * name);
 FcPrivate const char *
 FcObjectName (FcObject object);
 
+FcPrivate FcObjectSet *
+FcObjectGetSet (void);
+
 FcPrivate FcBool
 FcObjectInit (void);
 
diff --git a/src/fclist.c b/src/fclist.c
index a0306ca..2a53b79 100644
--- a/src/fclist.c
+++ b/src/fclist.c
@@ -457,6 +457,7 @@ FcFontSetList (FcConfig	    *config,
     FcListHashTable table;
     int		    i;
     FcListBucket    *bucket;
+    int             destroy_os = 0;
 
     if (!config)
     {
@@ -468,6 +469,13 @@ FcFontSetList (FcConfig	    *config,
 	    goto bail0;
     }
     FcListHashTableInit (&table);
+
+    if (!os)
+    {
+	os = FcObjectGetSet ();
+	destroy_os = 1;
+    }
+
     /*
      * Walk all available fonts adding those that
      * match to the hash table
@@ -532,6 +540,8 @@ bail2:
 bail1:
     FcListHashTableCleanup (&table);
 bail0:
+    if (destroy_os)
+	FcObjectSetDestroy (os);
     return 0;
 }
 
diff --git a/src/fcname.c b/src/fcname.c
index 51544de..0815cf3 100644
--- a/src/fcname.c
+++ b/src/fcname.c
@@ -327,6 +327,20 @@ FcObjectFromName (const char * name)
     return 0;
 }
 
+FcObjectSet *
+FcObjectGetSet (void)
+{
+    int		i;
+    FcObjectSet	*os = NULL;
+
+
+    os = FcObjectSetCreate ();
+    for (i = 0; i < FcObjectsNumber; i++)
+	FcObjectSetAdd (os, FcObjects[i].object);
+
+    return os;
+}
+
 FcBool
 FcObjectInit (void)
 {
commit 77c0d8bce86ca088782d5631617c0ef681d91312
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Aug 13 01:31:18 2008 -0400

    Add fc-query (#13019)

diff --git a/.gitignore b/.gitignore
index b46262c..e29bb57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -78,6 +78,8 @@ fc-list/fc-list
 fc-list/fc-list.1
 fc-match/fc-match
 fc-match/fc-match.1
+fc-query/fc-query
+fc-query/fc-query.1
 src/fontconfig.def
 fcalias.h
 fcaliastail.h
diff --git a/Makefile.am b/Makefile.am
index 1b78d1b..6e1c207 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,7 +23,7 @@
 
 DOCSRC=@DOCSRC@
 SUBDIRS=fontconfig fc-case fc-lang fc-glyphname fc-arch src \
-	fc-cache fc-cat fc-list fc-match conf.d $(DOCSRC) test
+	fc-cache fc-cat fc-list fc-match fc-query conf.d $(DOCSRC) test
 	 
 EXTRA_DIST = \
         fontconfig.pc.in \
diff --git a/configure.in b/configure.in
index e2e3f06..e381475 100644
--- a/configure.in
+++ b/configure.in
@@ -572,6 +572,7 @@ fc-cache/Makefile
 fc-cat/Makefile
 fc-list/Makefile
 fc-match/Makefile
+fc-query/Makefile
 doc/Makefile
 doc/version.sgml
 test/Makefile
diff --git a/doc/fontconfig-user.sgml b/doc/fontconfig-user.sgml
index 22fadbb..316f085 100644
--- a/doc/fontconfig-user.sgml
+++ b/doc/fontconfig-user.sgml
@@ -674,7 +674,7 @@ per-directory caches.  This file is automatically maintained by fontconfig.
 </refsect1>
 <refsect1><title>See Also</title>
   <para>
-fc-cache(1), fc-match(1), fc-list(1)
+fc-cat(1), fc-cache(1), fc-list(1), fc-match(1), fc-query(1)
   </para>
 </refsect1>
 <refsect1><title>Version</title>
diff --git a/fc-cache/fc-cache.sgml b/fc-cache/fc-cache.sgml
index e693244..62c0ddf 100644
--- a/fc-cache/fc-cache.sgml
+++ b/fc-cache/fc-cache.sgml
@@ -178,6 +178,7 @@ manpage.1: manpage.sgml
       <command>fc-cat</command>(1)
       <command>fc-list</command>(1)
       <command>fc-match</command>(1)
+      <command>fc-query</command>(1)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-cat/fc-cat.sgml b/fc-cat/fc-cat.sgml
index 19eb983..94c74b2 100644
--- a/fc-cat/fc-cat.sgml
+++ b/fc-cat/fc-cat.sgml
@@ -134,6 +134,7 @@ manpage.1: manpage.sgml
       <command>fc-cache</command>(1)
       <command>fc-list</command>(1)
       <command>fc-match</command>(1)
+      <command>fc-query</command>(1)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index 9a9536e..fbd0b0d 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -159,6 +159,7 @@ manpage.1: manpage.sgml
       <command>fc-cat</command>(1)
       <command>fc-cache</command>(1)
       <command>fc-match</command>(1)
+      <command>fc-query</command>(1)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-match/fc-match.sgml b/fc-match/fc-match.sgml
index 136de3c..c2f699d 100644
--- a/fc-match/fc-match.sgml
+++ b/fc-match/fc-match.sgml
@@ -153,6 +153,7 @@ are printed.  The <option>--all</option> option works like
       <command>fc-cat</command>(1)
       <command>fc-cache</command>(1)
       <command>fc-list</command>(1)
+      <command>fc-query</command>(1)
     </para>
 
     <para>The fontconfig user's guide, in HTML format:
diff --git a/fc-query/Makefile.am b/fc-query/Makefile.am
new file mode 100644
index 0000000..d75459a
--- /dev/null
+++ b/fc-query/Makefile.am
@@ -0,0 +1,59 @@
+#
+#  $Id$
+#
+#  Copyright © 2003 Keith Packard
+#
+#  Permission to use, copy, modify, distribute, and sell this software and its
+#  documentation for any purpose is hereby granted without fee, provided that
+#  the above copyright notice appear in all copies and that both that
+#  copyright notice and this permission notice appear in supporting
+#  documentation, and that the name of Keith Packard not be used in
+#  advertising or publicity pertaining to distribution of the software without
+#  specific, written prior permission.  Keith Packard makes no
+#  representations about the suitability of this software for any purpose.  It
+#  is provided "as is" without express or implied warranty.
+#
+#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+#  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+#  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+#  PERFORMANCE OF THIS SOFTWARE.
+
+bin_PROGRAMS=fc-query
+
+DOC2MAN = docbook2man
+
+FC_QUERY_SRC=${top_srcdir}/fc-query
+
+SGML = ${FC_QUERY_SRC}/fc-query.sgml
+
+INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+
+BUILT_MANS=fc-query.1
+
+if ENABLE_DOCS
+man_MANS=${BUILT_MANS}
+endif
+
+EXTRA_DIST=fc-query.sgml $(BUILT_MANS)
+
+fc_query_LDADD = ${top_builddir}/src/libfontconfig.la
+
+if USEDOCBOOK
+
+${man_MANS}: ${SGML}
+	$(RM) $@
+	$(DOC2MAN) ${SGML}
+	$(RM) manpage.refs manpage.links
+
+all-local: $(man_MANS)
+
+clean-local:
+	$(RM) $(man_MANS)
+
+else
+all-local:
+clean-local:
+endif
diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c
new file mode 100644
index 0000000..2a36bf0
--- /dev/null
+++ b/fc-query/fc-query.c
@@ -0,0 +1,166 @@
+/*
+ * fontconfig/fc-query/fc-query.c
+ *
+ * Copyright © 2003 Keith Packard
+ * Copyright © 2008 Red Hat, Inc.
+ * Red Hat Author(s): Behdad Esfahbod
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#else
+#ifdef linux
+#define HAVE_GETOPT_LONG 1
+#endif
+#define HAVE_GETOPT 1
+#endif
+
+#include <fontconfig/fontconfig.h>
+#include <fontconfig/fcfreetype.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef HAVE_GETOPT
+#define HAVE_GETOPT 0
+#endif
+#ifndef HAVE_GETOPT_LONG
+#define HAVE_GETOPT_LONG 0
+#endif
+
+#if HAVE_GETOPT_LONG
+#undef  _GNU_SOURCE
+#define _GNU_SOURCE
+#include <getopt.h>
+static const struct option longopts[] = {
+    {"index", 1, 0, 'i'},
+    {"version", 0, 0, 'V'},
+    {"help", 0, 0, '?'},
+    {NULL,0,0,0},
+};
+#else
+#if HAVE_GETOPT
+extern char *optarg;
+extern int optind, opterr, optopt;
+#endif
+#endif
+
+static void usage (char *program)
+{
+#if HAVE_GETOPT_LONG
+    fprintf (stderr, "usage: %s [-V?] [-i index] [--index index] [--version] [--help] font-file...\n",
+	     program);
+#else
+    fprintf (stderr, "usage: %s [-V?] [-i index] font-file...\n",
+	     program);
+#endif
+    fprintf (stderr, "Query font files and print resulting pattern(s)\n");
+    fprintf (stderr, "\n");
+#if HAVE_GETOPT_LONG
+    fprintf (stderr, "  -i, --index INDEX    display the INDEX face of each font file only\n");
+    fprintf (stderr, "  -V, --version        display font config version and exit\n");
+    fprintf (stderr, "  -?, --help           display this help and exit\n");
+#else
+    fprintf (stderr, "  -i INDEX   (index)   display the INDEX face of each font file only\n");
+    fprintf (stderr, "  -a         (all)     display unpruned sorted list of matches\n");
+    fprintf (stderr, "  -V         (version) display font config version and exit\n");
+    fprintf (stderr, "  -?         (help)    display this help and exit\n");
+#endif
+    exit (1);
+}
+
+int
+main (int argc, char **argv)
+{
+    int		index_set = 0;
+    int		set_index = 0;
+    int		err = 0;
+    int		i;
+    FcBlanks    *blanks;
+#if HAVE_GETOPT_LONG || HAVE_GETOPT
+    int		c;
+
+#if HAVE_GETOPT_LONG
+    while ((c = getopt_long (argc, argv, "i:sVv?", longopts, NULL)) != -1)
+#else
+    while ((c = getopt (argc, argv, "i:asVv?")) != -1)
+#endif
+    {
+	switch (c) {
+	case 'i':
+	    index_set = 1;
+	    set_index = atoi (optarg);
+	    break;
+	case 'V':
+	    fprintf (stderr, "fontconfig version %d.%d.%d\n",
+		     FC_MAJOR, FC_MINOR, FC_REVISION);
+	    exit (0);
+	default:
+	    usage (argv[0]);
+	}
+    }
+    i = optind;
+#else
+    i = 1;
+#endif
+
+    if (i == argc)
+	usage (argv[0]);
+
+    if (!FcInit ())
+    {
+	fprintf (stderr, "Can't init font config library\n");
+	return 1;
+    }
+
+    blanks = FcConfigGetBlanks (NULL);
+
+    for (; i < argc; i++)
+    {
+	int index;
+	int count = 0;
+
+	index = set_index;
+
+	do {
+	    FcPattern *pat;
+
+	    pat = FcFreeTypeQuery ((FcChar8 *) argv[i], index, blanks, &count);
+	    if (pat)
+	    {
+		FcPatternPrint (pat);
+		FcPatternDestroy (pat);
+	    }
+	    else
+	    {
+		fprintf (stderr, "Can't query face %d of font file %s\n",
+			 index, argv[i]);
+		err = 1;
+	    }
+
+	    index++;
+	} while (!index_set && index < count);
+    }
+
+    FcFini ();
+    return err;
+}
diff --git a/fc-query/fc-query.sgml b/fc-query/fc-query.sgml
new file mode 100644
index 0000000..4a1a5e6
--- /dev/null
+++ b/fc-query/fc-query.sgml
@@ -0,0 +1,174 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+     page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
+     the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+     less'.  A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+	docbook-to-man $< > $@
+
+
+	The docbook-to-man binary is found in the docbook-to-man package.
+	Please remember that if you create the nroff version in one of the
+	debian/rules file targets (such as build), you will need to include
+	docbook-to-man in your Build-Depends control field.
+
+  -->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>Behdad</firstname>">
+  <!ENTITY dhsurname   "<surname>Esfahbod</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>Aug 13, 2008</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>behdad at behdad.org</email>">
+  <!ENTITY dhusername  "Behdad Esfahbod">
+  <!ENTITY dhucpackage "<refentrytitle>fc-query</refentrytitle>">
+  <!ENTITY dhpackage   "fc-query">
+
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2008</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>query font files</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+
+      <arg><option>-V?</option></arg>
+      <arg><option>--version</option></arg>
+      <arg><option>--help</option></arg>
+      <sbr>
+      <group>
+        <arg><option>-i</option> <option><replaceable>index</replaceable></option></arg>
+        <arg><option>--index</option> <option><replaceable>index</replaceable></option></arg>
+      </group>
+      <arg choice="req" rep="repeat"><option><replaceable>font-file</replaceable></option></arg>
+
+     </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para><command>&dhpackage;</command> queries
+    <replaceable>font-file</replaceable>(s) using the normal fontconfig
+    rules and prints out font pattern for each face found.
+    If <option>--index</option> is given, only one face of each file is
+    queried, otherwise all faces are queried.</para>
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <para>This program follows the usual &gnu; command line syntax,
+      with long options starting with two dashes (`-').  A summary of
+      options is included below.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-?</option>
+          <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show summary of options.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-V</option>
+          <option>--version</option>
+        </term>
+        <listitem>
+          <para>Show version of the program and exit.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-i</option>
+          <option>--index</option>
+	  <option><replaceable>index</replaceable></option>
+        </term>
+        <listitem>
+          <para>Only query face indexed <replaceable>index</replaceable> of
+	  each file.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option><replaceable>font-file</replaceable></option>
+        </term>
+        <listitem>
+          <para>Query <replaceable>font-file</replaceable> for font faces.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title>RETURN CODES</title>
+    <para><command>fc-query</command> returns error code 0 for successful parsing,
+    or 1 if any errors occured or if at least one font face could not be opened.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>SEE ALSO</title>
+
+    <para>
+      <command>fc-cat</command>(1)
+      <command>fc-cache</command>(1)
+      <command>fc-list</command>(1)
+      <command>fc-match</command>(1)
+    </para>
+
+    <para>The fontconfig user's guide, in HTML format:
+      <filename>/usr/share/doc/fontconfig/fontconfig-user.html</filename>.</para>
+
+ </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>This manual page was updated by &dhusername; &dhemail;.</para>
+
+  </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
commit d5b6085c3e40b4e2605cab7ff6c8a621b961b2d2
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Aug 13 00:42:12 2008 -0400

    Update man pages

diff --git a/fc-cache/fc-cache.sgml b/fc-cache/fc-cache.sgml
index 8fc7435..e693244 100644
--- a/fc-cache/fc-cache.sgml
+++ b/fc-cache/fc-cache.sgml
@@ -20,7 +20,7 @@ manpage.1: manpage.sgml
   <!ENTITY dhfirstname "<firstname>Josselin</firstname>">
   <!ENTITY dhsurname   "<surname>Mouette</surname>">
   <!-- Please adjust the date whenever revising the manpage. -->
-  <!ENTITY dhdate      "<date>Sep 22, 2005</date>">
+  <!ENTITY dhdate      "<date>Aug 13, 2008</date>">
   <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
        allowed: see man(7), man(1). -->
   <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
@@ -69,7 +69,7 @@ manpage.1: manpage.sgml
       <arg><option>--verbose</option></arg>
       <arg><option>--version</option></arg>
       <arg><option>--help</option></arg>
-      <arg><option><replaceable>dirs</replaceable></option></arg>
+      <arg rep="repeat"><option><replaceable>dir</replaceable></option></arg>
       
      </cmdsynopsis>
   </refsynopsisdiv>
@@ -147,10 +147,10 @@ manpage.1: manpage.sgml
         </listitem>
       </varlistentry>
       <varlistentry>
-        <term><option><replaceable>dirs</replaceable></option>
+        <term><option><replaceable>dir</replaceable></option>
         </term>
         <listitem>
-          <para>A list of directories to scan for fonts.</para>
+          <para>Directory to scan for fonts.</para>
         </listitem>
       </varlistentry>
     </variablelist>
@@ -160,7 +160,7 @@ manpage.1: manpage.sgml
     <title>FILES</title>
     <variablelist>
       <varlistentry>
-        <term><filename>fonts.cache-2</filename></term>
+        <term><filename><replaceable>%cachdir%</replaceable>/*-<replaceable>%arch%</replaceable>.cache-2</filename></term>
 	<listitem>
 	  <para>These files are generated by <command>&dhpackage;</command>
             and contain maps from file names to font properties. They are
@@ -174,7 +174,11 @@ manpage.1: manpage.sgml
   <refsect1>
     <title>SEE ALSO</title>
 
-    <para><command>fc-list</command> (1).</para>
+    <para>
+      <command>fc-cat</command>(1)
+      <command>fc-list</command>(1)
+      <command>fc-match</command>(1)
+    </para>
 
     <para>The fontconfig user's guide, in HTML format:
       <filename>/usr/share/doc/fontconfig/fontconfig-user.html</filename>.</para>
diff --git a/fc-cat/fc-cat.sgml b/fc-cat/fc-cat.sgml
index cc06a75..19eb983 100644
--- a/fc-cat/fc-cat.sgml
+++ b/fc-cat/fc-cat.sgml
@@ -20,7 +20,7 @@ manpage.1: manpage.sgml
   <!ENTITY dhfirstname "<firstname>Patrick</firstname>">
   <!ENTITY dhsurname   "<surname>Lam</surname>">
   <!-- Please adjust the date whenever revising the manpage. -->
-  <!ENTITY dhdate      "<date>Sep 22, 2005</date>">
+  <!ENTITY dhdate      "<date>Aug 13, 2008</date>">
   <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
        allowed: see man(7), man(1). -->
   <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
@@ -68,8 +68,11 @@ manpage.1: manpage.sgml
       <arg><option>--verbose</option></arg>
       <arg><option>--version</option></arg>
       <arg><option>--help</option></arg>
-      <arg><option><replaceable>fonts-cache-2-files</replaceable></option></arg>
-      <arg><option><replaceable>dirs</replaceable></option></arg>
+      <sbr>
+      <group rep="repeat">
+          <arg><option><replaceable>fonts-cache-2-files</replaceable></option></arg>
+          <arg><option><replaceable>dirs</replaceable></option></arg>
+      </group>
       
      </cmdsynopsis>
   </refsynopsisdiv>
@@ -127,7 +130,11 @@ manpage.1: manpage.sgml
   <refsect1>
     <title>SEE ALSO</title>
 
-    <para><command>fc-cache</command> (1).</para>
+    <para>
+      <command>fc-cache</command>(1)
+      <command>fc-list</command>(1)
+      <command>fc-match</command>(1)
+    </para>
 
     <para>The fontconfig user's guide, in HTML format:
       <filename>/usr/share/doc/fontconfig/fontconfig-user.html</filename>.</para>
diff --git a/fc-list/fc-list.sgml b/fc-list/fc-list.sgml
index d0ec733..9a9536e 100644
--- a/fc-list/fc-list.sgml
+++ b/fc-list/fc-list.sgml
@@ -20,7 +20,7 @@ manpage.1: manpage.sgml
   <!ENTITY dhfirstname "<firstname>Josselin</firstname>">
   <!ENTITY dhsurname   "<surname>Mouette</surname>">
   <!-- Please adjust the date whenever revising the manpage. -->
-  <!ENTITY dhdate      "<date>Sep 16, 2003</date>">
+  <!ENTITY dhdate      "<date>Aug 13, 2008</date>">
   <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
        allowed: see man(7), man(1). -->
   <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
@@ -67,8 +67,8 @@ manpage.1: manpage.sgml
       <arg><option>--verbose</option></arg>
       <arg><option>--version</option></arg>
       <arg><option>--help</option></arg>
-      <arg><option><replaceable>pattern</replaceable></option></arg>
-      <arg><option><replaceable>element</replaceable></option></arg>
+      <sbr>
+      <arg><option><replaceable>pattern</replaceable></option> <arg rep="repeat"><option><replaceable>element</replaceable></option></arg> </arg>
       
      </cmdsynopsis>
   </refsynopsisdiv>
@@ -155,7 +155,11 @@ manpage.1: manpage.sgml
   <refsect1>
     <title>SEE ALSO</title>
 
-    <para><command>fc-cache</command> (1).</para>
+    <para>
+      <command>fc-cat</command>(1)
+      <command>fc-cache</command>(1)
+      <command>fc-match</command>(1)
+    </para>
 
     <para>The fontconfig user's guide, in HTML format:
       <filename>/usr/share/doc/fontconfig/fontconfig-user.html</filename>.</para>
diff --git a/fc-match/fc-match.sgml b/fc-match/fc-match.sgml
index d68cc22..136de3c 100644
--- a/fc-match/fc-match.sgml
+++ b/fc-match/fc-match.sgml
@@ -20,7 +20,7 @@ manpage.1: manpage.sgml
   <!ENTITY dhfirstname "<firstname>Patrick</firstname>">
   <!ENTITY dhsurname   "<surname>Lam</surname>">
   <!-- Please adjust the date whenever revising the manpage. -->
-  <!ENTITY dhdate      "<date>Apr  6, 2006</date>">
+  <!ENTITY dhdate      "<date>Aug 13, 2008</date>">
   <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
        allowed: see man(7), man(1). -->
   <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
@@ -63,7 +63,8 @@ manpage.1: manpage.sgml
     <cmdsynopsis>
       <command>&dhpackage;</command>
 
-      <arg><option>-svV?</option></arg>
+      <arg><option>-asvV?</option></arg>
+      <arg><option>--all</option></arg>
       <arg><option>--sort</option></arg>
       <arg><option>--verbose</option></arg>
       <arg><option>--version</option></arg>
@@ -75,12 +76,14 @@ manpage.1: manpage.sgml
   <refsect1>
     <title>DESCRIPTION</title>
 
-    <para><command>&dhpackage;</command> matches font-pattern (empty
+    <para><command>&dhpackage;</command> matches
+    <replaceable>font-pattern</replaceable> (empty
 pattern by default) using the normal fontconfig matching rules to find
-the best font available.  If --sort is given, the sorted list of best
-matching fonts is displayed.  With --verbose, the whole font pattern
+the best font available.  If <option>--sort</option> is given, the sorted list of best
+matching fonts is displayed.  With <option>--verbose</option>, the whole font pattern
 for each match is printed, otherwise only the file, family and style
-are printed..</para>
+are printed.  The <option>--all</option> option works like
+<option>--sort</option> except that no pruning is done on the list of fonts.</para>
 
   </refsect1>
   <refsect1>
@@ -116,6 +119,15 @@ are printed..</para>
         </listitem>
       </varlistentry>
       <varlistentry>
+        <term><option>-a</option>
+          <option>--all</option>
+        </term>
+        <listitem>
+          <para>Displays sorted list of best matching fonts, but do not do any
+		pruning on the list.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
         <term><option>-s</option>
           <option>--sort</option>
         </term>
@@ -137,7 +149,11 @@ are printed..</para>
   <refsect1>
     <title>SEE ALSO</title>
 
-    <para><command>fc-list</command> (1).</para>
+    <para>
+      <command>fc-cat</command>(1)
+      <command>fc-cache</command>(1)
+      <command>fc-list</command>(1)
+    </para>
 
     <para>The fontconfig user's guide, in HTML format:
       <filename>/usr/share/doc/fontconfig/fontconfig-user.html</filename>.</para>
commit 88261bafff30ec02b5a2180f1f9b786c8ff44e3d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 23:44:44 2008 -0400

    [fc-match] Fix list of getopt options in --help

diff --git a/fc-match/fc-match.c b/fc-match/fc-match.c
index 8e133c6..05bf774 100644
--- a/fc-match/fc-match.c
+++ b/fc-match/fc-match.c
@@ -66,10 +66,10 @@ extern int optind, opterr, optopt;
 static void usage (char *program)
 {
 #if HAVE_GETOPT_LONG
-    fprintf (stderr, "usage: %s [-svV?] [--sort] [--all] [--verbose] [--version] [--help] [pattern]\n",
+    fprintf (stderr, "usage: %s [-savV?] [--sort] [--all] [--verbose] [--version] [--help] [pattern]\n",
 	     program);
 #else
-    fprintf (stderr, "usage: %s [-svV?] [pattern]\n",
+    fprintf (stderr, "usage: %s [-savV?] [pattern]\n",
 	     program);
 #endif
     fprintf (stderr, "List fonts matching [pattern]\n");
commit 43291847c58002fca99984dcec4f1bbbb0d0f61d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 18:00:35 2008 -0400

    Add ~/.fonts.conf.d to default config (#17100)

diff --git a/conf.d/50-user.conf b/conf.d/50-user.conf
index 3052cdc..3f89012 100644
--- a/conf.d/50-user.conf
+++ b/conf.d/50-user.conf
@@ -2,5 +2,6 @@
 <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 <fontconfig>
 	<!-- Load per-user customization file -->
+	<include ignore_missing="yes">~/.fonts.conf.d</include>
 	<include ignore_missing="yes">~/.fonts.conf</include>
 </fontconfig>
commit 4f468454d80bf4f1d256f084afd69cabecf1243e
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 17:54:45 2008 -0400

    Update Thai default families (#16223)
    
    Patch from Theppitak Karoonboonyanan

diff --git a/conf.d/65-nonlatin.conf b/conf.d/65-nonlatin.conf
index 4b3a946..1d55484 100644
--- a/conf.d/65-nonlatin.conf
+++ b/conf.d/65-nonlatin.conf
@@ -6,8 +6,7 @@
 		<prefer>
 			<family>Artsounk</family> <!-- armenian -->
 			<family>BPG UTF8 M</family> <!-- georgian -->
-			<family>Phaisarn</family> <!-- thai -->
-			<family>Phaisarn98</family> <!-- thai -->
+			<family>Kinnari</family> <!-- thai -->
 			<family>Norasi</family> <!-- thai -->
 			<family>Frank Ruehl</family> <!-- hebrew -->
 			<family>Dror</family>  <!-- hebrew -->
@@ -68,7 +67,10 @@
 			<family>ArmNet Helvetica</family> <!-- armenian -->
 			<family>Artsounk</family> <!-- armenian -->
 			<family>BPG UTF8 M</family> <!-- georgian -->
-			<family>Norasi</family> <!-- thai -->
+			<family>Waree</family> <!-- thai -->
+			<family>Loma</family> <!-- thai -->
+			<family>Garuda</family> <!-- thai -->
+			<family>Umpush</family> <!-- thai -->
 			<family>Saysettha Unicode</family> <!-- lao? -->
 			<family>JG Lao Old Arial</family> <!-- lao -->
 			<family>GF Zemen Unicode</family> <!-- ethiopic -->
@@ -145,7 +147,10 @@
 			<family>Baekmuk Batang</family> <!-- hangul -->
 			<family>Baekmuk Dotum</family>
 			<family>Baekmuk Gulim</family>
-			<family>Courier MonoThai</family> <!-- thai -->
+			<family>TlwgTypo</family> <!-- thai -->
+			<family>TlwgTypist</family> <!-- thai -->
+			<family>TlwgTypewriter</family> <!-- thai -->
+			<family>TlwgMono</family> <!-- thai -->
 			<family>Hasida</family> <!-- hebrew -->
 			<family>Mitra Mono</family> <!-- bengali -->
 			<family>GF Zemen Unicode</family> <!-- ethiopic -->
commit 2e08e0f243633386b6441784926f928359c92453
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 17:52:02 2008 -0400

    [doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272)

diff --git a/doc/fcpattern.fncs b/doc/fcpattern.fncs
index ba04566..4e3a743 100644
--- a/doc/fcpattern.fncs
+++ b/doc/fcpattern.fncs
@@ -245,14 +245,16 @@ within the pattern directly.  Applications must not free this value.
 @FUNC++++++@	FcPatternGetFTFace
 @TYPE1++++++@ 	FcPattern * 			@ARG1++++++@ 	p
 @TYPE2++++++@	const char *			@ARG2++++++@	object
- at TYPE3++++++@	const FT_Face *			@ARG3++++++@	f
+ at TYPE3+++++@ 	int%  				@ARG3+++++@ 	n
+ at TYPE3++++++@	FT_Face *			@ARG3++++++@	f
 
 @PROTOTYPE+++++++@
 @RET+++++++@	FcBool
 @FUNC+++++++@	FcPatternGetLangSet
 @TYPE1+++++++@ 	FcPattern * 			@ARG1+++++++@ 	p
 @TYPE2+++++++@	const char *			@ARG2+++++++@	object
- at TYPE3+++++++@	const FcLangSet **		@ARG3+++++++@	l
+ at TYPE3+++++@ 	int%  				@ARG3+++++@ 	n
+ at TYPE3+++++++@	FcLangSet **			@ARG3+++++++@	l
 
 @PURPOSE@	Return a typed value from a pattern
 @DESC@
commit 317b849215ab16cfcd0dda0e424efc9216a74f28
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 16:34:24 2008 -0400

    Replace RCS Id tags with the file name

diff --git a/config/Makedefs.in b/config/Makedefs.in
index 83ee972..e30ada6 100644
--- a/config/Makedefs.in
+++ b/config/Makedefs.in
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/config/Makedefs.in,v 1.3 2002/08/01 15:57:26 keithp Exp $
+# fontconfig/config/Makedefs.in
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/config/install.sh b/config/install.sh
index 56f8803..ddbcef3 100644
--- a/config/install.sh
+++ b/config/install.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# $RCSId: $
+# fontconfig/config/install.sh
 #
 # install - install a program, script, or datafile
 # This comes from X11R5.
diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c
index cd664fa..c11bb3d 100644
--- a/fc-cache/fc-cache.c
+++ b/fc-cache/fc-cache.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fc-cache/fc-cache.c,v 1.8tsi Exp $
+ * fontconfig/fc-cache/fc-cache.c
  *
  * Copyright © 2002 Keith Packard
  *
diff --git a/fc-cat/fc-cat.c b/fc-cat/fc-cat.c
index a2c238c..86a1c2f 100644
--- a/fc-cat/fc-cat.c
+++ b/fc-cat/fc-cat.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fc-cache/fc-cache.c,v 1.8tsi Exp $
+ * fontconfig/fc-cat/fc-cat.c
  *
  * Copyright © 2002 Keith Packard
  *
diff --git a/fc-lang/aa.orth b/fc-lang/aa.orth
index 6d2467f..4bfa58f 100644
--- a/fc-lang/aa.orth
+++ b/fc-lang/aa.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ab.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/aa.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ab.orth b/fc-lang/ab.orth
index c87c32a..fefb747 100644
--- a/fc-lang/ab.orth
+++ b/fc-lang/ab.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ab.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/ab.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/af.orth b/fc-lang/af.orth
index 9d67120..f154b63 100644
--- a/fc-lang/af.orth
+++ b/fc-lang/af.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/af.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/am.orth b/fc-lang/am.orth
index f0dd365..ddd2096 100644
--- a/fc-lang/am.orth
+++ b/fc-lang/am.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/am.orth,v 1.1 2002/08/08 00:10:50 keithp Exp $
+# fontconfig/fc-lang/am.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ar.orth b/fc-lang/ar.orth
index 38b738c..3aab23f 100644
--- a/fc-lang/ar.orth
+++ b/fc-lang/ar.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ar.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/ar.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ast.orth b/fc-lang/ast.orth
index 24be226..132b6e4 100644
--- a/fc-lang/ast.orth
+++ b/fc-lang/ast.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/wa.orth,v 1.1 2002/07/07 19:30:52 keithp Exp $
+# fontconfig/fc-lang/ast.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ava.orth b/fc-lang/ava.orth
index 519d999..ac2468f 100644
--- a/fc-lang/ava.orth
+++ b/fc-lang/ava.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ava.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ay.orth b/fc-lang/ay.orth
index 4019462..e03a39a 100644
--- a/fc-lang/ay.orth
+++ b/fc-lang/ay.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/kw.orth,v 1.1 2002/08/07 17:34:15 keithp Exp $
+# fontconfig/fc-lang/ay.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/az.orth b/fc-lang/az.orth
index 36a4b60..db2f32e 100644
--- a/fc-lang/az.orth
+++ b/fc-lang/az.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/az.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/az.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/az_ir.orth b/fc-lang/az_ir.orth
index 7dde88e..2a5d9c8 100644
--- a/fc-lang/az_ir.orth
+++ b/fc-lang/az_ir.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/az_ir.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ba.orth b/fc-lang/ba.orth
index 74d922b..6407278 100644
--- a/fc-lang/ba.orth
+++ b/fc-lang/ba.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ba.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/ba.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bam.orth b/fc-lang/bam.orth
index 0aaf770..f52f3c3 100644
--- a/fc-lang/bam.orth
+++ b/fc-lang/bam.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/bam.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/be.orth b/fc-lang/be.orth
index 646f57e..a9f46fb 100644
--- a/fc-lang/be.orth
+++ b/fc-lang/be.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/be.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/be.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bg.orth b/fc-lang/bg.orth
index 45bbc22..d2c6480 100644
--- a/fc-lang/bg.orth
+++ b/fc-lang/bg.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/bg.orth,v 1.3 2002/07/12 21:05:58 keithp Exp $
+# fontconfig/fc-lang/bg.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bh.orth b/fc-lang/bh.orth
index 9134994..647a58a 100644
--- a/fc-lang/bh.orth
+++ b/fc-lang/bh.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/bh.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bho.orth b/fc-lang/bho.orth
index c860426..0972f18 100644
--- a/fc-lang/bho.orth
+++ b/fc-lang/bho.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/bho.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bi.orth b/fc-lang/bi.orth
index 659e80d..61ee35b 100644
--- a/fc-lang/bi.orth
+++ b/fc-lang/bi.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/bi.orth,v 1.1 2002/07/12 19:19:15 keithp Exp $
+# fontconfig/fc-lang/bi.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bin.orth b/fc-lang/bin.orth
index 13f8aba..8863953 100644
--- a/fc-lang/bin.orth
+++ b/fc-lang/bin.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/bin.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bn.orth b/fc-lang/bn.orth
index 11dc962..e606a48 100644
--- a/fc-lang/bn.orth
+++ b/fc-lang/bn.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/bn.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bo.orth b/fc-lang/bo.orth
index 64f670c..ad06895 100644
--- a/fc-lang/bo.orth
+++ b/fc-lang/bo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/bo.orth,v 1.1 2002/07/07 19:18:51 keithp Exp $
+# fontconfig/fc-lang/bo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/br.orth b/fc-lang/br.orth
index 11c971f..4a0df27 100644
--- a/fc-lang/br.orth
+++ b/fc-lang/br.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/br.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/br.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bs.orth b/fc-lang/bs.orth
index bd608cf..ec53bdb 100644
--- a/fc-lang/bs.orth
+++ b/fc-lang/bs.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/bs.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/bua.orth b/fc-lang/bua.orth
index dd9bd7c..4f5d241 100644
--- a/fc-lang/bua.orth
+++ b/fc-lang/bua.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/bua.orth,v 1.1 2002/07/12 07:52:15 keithp Exp $
+# fontconfig/fc-lang/bua.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ca.orth b/fc-lang/ca.orth
index 663a020..9d25e3c 100644
--- a/fc-lang/ca.orth
+++ b/fc-lang/ca.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ca.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/ca.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ce.orth b/fc-lang/ce.orth
index 2518cd3..1dea23e 100644
--- a/fc-lang/ce.orth
+++ b/fc-lang/ce.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ce.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ch.orth b/fc-lang/ch.orth
index 48b7442..fa15ddd 100644
--- a/fc-lang/ch.orth
+++ b/fc-lang/ch.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ch.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/chm.orth b/fc-lang/chm.orth
index 1f3b1eb..19bfc0c 100644
--- a/fc-lang/chm.orth
+++ b/fc-lang/chm.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/chm.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/chr.orth b/fc-lang/chr.orth
index 756b2d6..5ce81be 100644
--- a/fc-lang/chr.orth
+++ b/fc-lang/chr.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/chr.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/co.orth b/fc-lang/co.orth
index f50f6eb..ec4b294 100644
--- a/fc-lang/co.orth
+++ b/fc-lang/co.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/co.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/cs.orth b/fc-lang/cs.orth
index 3df6828..72afd64 100644
--- a/fc-lang/cs.orth
+++ b/fc-lang/cs.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/cs.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/cs.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/cu.orth b/fc-lang/cu.orth
index 7e83f7c..e1d18df 100644
--- a/fc-lang/cu.orth
+++ b/fc-lang/cu.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/wen.orth,v 1.1 2002/07/12 19:19:16 keithp Exp $
+# fontconfig/fc-lang/cu.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/cv.orth b/fc-lang/cv.orth
index 42b7902..88aee6c 100644
--- a/fc-lang/cv.orth
+++ b/fc-lang/cv.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/cv.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/cy.orth b/fc-lang/cy.orth
index 197c424..416ccc7 100644
--- a/fc-lang/cy.orth
+++ b/fc-lang/cy.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/cy.orth,v 1.1 2002/07/12 19:19:15 keithp Exp $
+# fontconfig/fc-lang/cy.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/da.orth b/fc-lang/da.orth
index 83f7509..da473be 100644
--- a/fc-lang/da.orth
+++ b/fc-lang/da.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/da.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/da.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/de.orth b/fc-lang/de.orth
index b9a4dc2..c3c695a 100644
--- a/fc-lang/de.orth
+++ b/fc-lang/de.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/de.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/de.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/dz.orth b/fc-lang/dz.orth
index a904a50..c492330 100644
--- a/fc-lang/dz.orth
+++ b/fc-lang/dz.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/bo.orth,v 1.2 2002/07/12 21:05:58 keithp Exp $
+# fontconfig/fc-lang/dz.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/el.orth b/fc-lang/el.orth
index 0e5a732..6510329 100644
--- a/fc-lang/el.orth
+++ b/fc-lang/el.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/el.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/el.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/en.orth b/fc-lang/en.orth
index 7e504fa..6dd6619 100644
--- a/fc-lang/en.orth
+++ b/fc-lang/en.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/en.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/en.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/eo.orth b/fc-lang/eo.orth
index a7130a9..74577dd 100644
--- a/fc-lang/eo.orth
+++ b/fc-lang/eo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/eo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/es.orth b/fc-lang/es.orth
index 77947f3..7fe447a 100644
--- a/fc-lang/es.orth
+++ b/fc-lang/es.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/es.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/es.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/et.orth b/fc-lang/et.orth
index 7edd6ff..af4ad04 100644
--- a/fc-lang/et.orth
+++ b/fc-lang/et.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/et.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/et.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/eu.orth b/fc-lang/eu.orth
index 67b871f..cf533d9 100644
--- a/fc-lang/eu.orth
+++ b/fc-lang/eu.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/eu.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/eu.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/fa.orth b/fc-lang/fa.orth
index b4284b0..8114e5c 100644
--- a/fc-lang/fa.orth
+++ b/fc-lang/fa.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/fa.orth,v 1.1 2002/07/09 02:28:26 keithp Exp $
+# fontconfig/fc-lang/fa.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c
index 989a823..40f3bfe 100644
--- a/fc-lang/fc-lang.c
+++ b/fc-lang/fc-lang.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fc-lang/fc-lang.c,v 1.3 2002/08/22 07:36:43 keithp Exp $
+ * fontconfig/fc-lang/fc-lang.c
  *
  * Copyright © 2002 Keith Packard
  *
diff --git a/fc-lang/fc-lang.man b/fc-lang/fc-lang.man
index 4dd62f3..24ad02e 100644
--- a/fc-lang/fc-lang.man
+++ b/fc-lang/fc-lang.man
@@ -20,7 +20,7 @@
 .\" PERFORMANCE OF THIS SOFTWARE.
 .\"
 .\"
-.\" $RCSId: xc/programs/fc-lang/fc-lang.man,v 1.3 2001/02/09 03:47:56 tsi Exp $
+.\" fontconfig/fc-lang/fc-lang.man
 .\"
 .TH FC-LANG 1 __vendorversion__
 .SH NAME
diff --git a/fc-lang/fclang.tmpl.h b/fc-lang/fclang.tmpl.h
index 58ea1b1..9c920c8 100644
--- a/fc-lang/fclang.tmpl.h
+++ b/fc-lang/fclang.tmpl.h
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fc-lang/fclang.tmpl.h,v 1.1 2002/07/06 23:21:36 keithp Exp $
+ * fontconfig/fc-lang/fclang.tmpl.h
  *
  * Copyright © 2002 Keith Packard
  *
diff --git a/fc-lang/fi.orth b/fc-lang/fi.orth
index 971bb83..94b8f02 100644
--- a/fc-lang/fi.orth
+++ b/fc-lang/fi.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/fi.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/fi.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/fj.orth b/fc-lang/fj.orth
index 1427f25..2b3889c 100644
--- a/fc-lang/fj.orth
+++ b/fc-lang/fj.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/kw.orth,v 1.1 2002/08/07 17:34:15 keithp Exp $
+# fontconfig/fc-lang/fj.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/fo.orth b/fc-lang/fo.orth
index a667fdd..f999cf3 100644
--- a/fc-lang/fo.orth
+++ b/fc-lang/fo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/fo.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/fo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/fr.orth b/fc-lang/fr.orth
index e3cc052..c31508b 100644
--- a/fc-lang/fr.orth
+++ b/fc-lang/fr.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/fr.orth,v 1.3 2002/07/12 09:12:37 keithp Exp $
+# fontconfig/fc-lang/fr.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ful.orth b/fc-lang/ful.orth
index 4763876..e116596 100644
--- a/fc-lang/ful.orth
+++ b/fc-lang/ful.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ful.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/fur.orth b/fc-lang/fur.orth
index f2dfd5e..90e860e 100644
--- a/fc-lang/fur.orth
+++ b/fc-lang/fur.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/wen.orth,v 1.1 2002/07/12 19:19:16 keithp Exp $
+# fontconfig/fc-lang/fur.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/fy.orth b/fc-lang/fy.orth
index 3bc0532..5e468b2 100644
--- a/fc-lang/fy.orth
+++ b/fc-lang/fy.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/fy.orth,v 1.3 2002/08/07 17:34:15 keithp Exp $
+# fontconfig/fc-lang/fy.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ga.orth b/fc-lang/ga.orth
index 5102840..3c991a4 100644
--- a/fc-lang/ga.orth
+++ b/fc-lang/ga.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ga.orth,v 1.3 2002/07/12 21:05:59 keithp Exp $
+# fontconfig/fc-lang/ga.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/gd.orth b/fc-lang/gd.orth
index e728216..c8dd893 100644
--- a/fc-lang/gd.orth
+++ b/fc-lang/gd.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/gd.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/gd.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/gez.orth b/fc-lang/gez.orth
index eee1708..3b2390c 100644
--- a/fc-lang/gez.orth
+++ b/fc-lang/gez.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/gez.orth,v 1.2 2002/07/13 19:10:03 keithp Exp $
+# fontconfig/fc-lang/gez.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/gl.orth b/fc-lang/gl.orth
index 6cf5df5..b2a824a 100644
--- a/fc-lang/gl.orth
+++ b/fc-lang/gl.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/gl.orth,v 1.3 2002/07/12 09:12:37 keithp Exp $
+# fontconfig/fc-lang/gl.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/gn.orth b/fc-lang/gn.orth
index 5e68ad2..7b42595 100644
--- a/fc-lang/gn.orth
+++ b/fc-lang/gn.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/gn.orth,v 1.1 2002/07/12 19:19:15 keithp Exp $
+# fontconfig/fc-lang/gn.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/gu.orth b/fc-lang/gu.orth
index 400e0d7..9d8ebe2 100644
--- a/fc-lang/gu.orth
+++ b/fc-lang/gu.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/gu.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/gv.orth b/fc-lang/gv.orth
index efcd563..a69704b 100644
--- a/fc-lang/gv.orth
+++ b/fc-lang/gv.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/wen.orth,v 1.1 2002/07/12 19:19:16 keithp Exp $
+# fontconfig/fc-lang/gv.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ha.orth b/fc-lang/ha.orth
index e588234..c8c5a1e 100644
--- a/fc-lang/ha.orth
+++ b/fc-lang/ha.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ha.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/haw.orth b/fc-lang/haw.orth
index 817e648..89a811c 100644
--- a/fc-lang/haw.orth
+++ b/fc-lang/haw.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/haw.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/he.orth b/fc-lang/he.orth
index fa4f3c6..2eb56e5 100644
--- a/fc-lang/he.orth
+++ b/fc-lang/he.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/he.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/hi.orth b/fc-lang/hi.orth
index de97885..59bdc9f 100644
--- a/fc-lang/hi.orth
+++ b/fc-lang/hi.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/hi.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ho.orth b/fc-lang/ho.orth
index 62a111e..7dcb5da 100644
--- a/fc-lang/ho.orth
+++ b/fc-lang/ho.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ho.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/hr.orth b/fc-lang/hr.orth
index 444445b..31f8ff6 100644
--- a/fc-lang/hr.orth
+++ b/fc-lang/hr.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/hr.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/hr.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/hu.orth b/fc-lang/hu.orth
index 2fecc83..56e7db3 100644
--- a/fc-lang/hu.orth
+++ b/fc-lang/hu.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/hu.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/hu.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/hy.orth b/fc-lang/hy.orth
index ee8c747..2138ff8 100644
--- a/fc-lang/hy.orth
+++ b/fc-lang/hy.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/hy.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/hy.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ia.orth b/fc-lang/ia.orth
index ee8d765..dfd6b8f 100644
--- a/fc-lang/ia.orth
+++ b/fc-lang/ia.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ia.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ibo.orth b/fc-lang/ibo.orth
index b1d832d..4b84ac2 100644
--- a/fc-lang/ibo.orth
+++ b/fc-lang/ibo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ibo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/id.orth b/fc-lang/id.orth
index 11b2ee4..f5eeb37 100644
--- a/fc-lang/id.orth
+++ b/fc-lang/id.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/id.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ie.orth b/fc-lang/ie.orth
index d464a55..6641527 100644
--- a/fc-lang/ie.orth
+++ b/fc-lang/ie.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ie.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ik.orth b/fc-lang/ik.orth
index ac2e683..18775ab 100644
--- a/fc-lang/ik.orth
+++ b/fc-lang/ik.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ik.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/io.orth b/fc-lang/io.orth
index d1f52a9..d268d6f 100644
--- a/fc-lang/io.orth
+++ b/fc-lang/io.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/io.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/is.orth b/fc-lang/is.orth
index 871d68a..0d20a37 100644
--- a/fc-lang/is.orth
+++ b/fc-lang/is.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/is.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/is.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/it.orth b/fc-lang/it.orth
index 04e8703..e95c170 100644
--- a/fc-lang/it.orth
+++ b/fc-lang/it.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/it.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
+# fontconfig/fc-lang/it.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/iu.orth b/fc-lang/iu.orth
index 904f2f4..d083b5d 100644
--- a/fc-lang/iu.orth
+++ b/fc-lang/iu.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/iu.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ja.orth b/fc-lang/ja.orth
index 32ea258..c72a3ea 100644
--- a/fc-lang/ja.orth
+++ b/fc-lang/ja.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ja.orth,v 1.3 2002/07/13 20:33:05 keithp Exp $
+# fontconfig/fc-lang/ja.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ka.orth b/fc-lang/ka.orth
index 8a77983..7007f87 100644
--- a/fc-lang/ka.orth
+++ b/fc-lang/ka.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ka.orth,v 1.2 2002/07/06 23:59:16 keithp Exp $
+# fontconfig/fc-lang/ka.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/kaa.orth b/fc-lang/kaa.orth
index 41b717d..f4a507b 100644
--- a/fc-lang/kaa.orth
+++ b/fc-lang/kaa.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/kaa.orth,v 1.1 2002/07/12 07:52:16 keithp Exp $
+# fontconfig/fc-lang/kaa.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ki.orth b/fc-lang/ki.orth
index 955d626..f47c77b 100644
--- a/fc-lang/ki.orth
+++ b/fc-lang/ki.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ki.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/kk.orth b/fc-lang/kk.orth
index 81b83f5..6c36d19 100644
--- a/fc-lang/kk.orth
+++ b/fc-lang/kk.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/kk.orth,v 1.3 2002/07/12 09:12:37 keithp Exp $
+# fontconfig/fc-lang/kk.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/kl.orth b/fc-lang/kl.orth
index 78be8e5..d95f64e 100644
--- a/fc-lang/kl.orth
+++ b/fc-lang/kl.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/kl.orth,v 1.3 2002/07/12 09:12:37 keithp Exp $
+# fontconfig/fc-lang/kl.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/km.orth b/fc-lang/km.orth
index 2794b77..d5dff12 100644
--- a/fc-lang/km.orth
+++ b/fc-lang/km.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/km.orth,v 1.1 2002/07/07 19:18:51 keithp Exp $
+# fontconfig/fc-lang/km.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/kn.orth b/fc-lang/kn.orth
index 8fce54d..8352bea 100644
--- a/fc-lang/kn.orth
+++ b/fc-lang/kn.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/kn.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ko.orth b/fc-lang/ko.orth
index 6ecf181..815ba03 100644
--- a/fc-lang/ko.orth
+++ b/fc-lang/ko.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ko.orth,v 1.3 2002/07/12 21:05:59 keithp Exp $
+# fontconfig/fc-lang/ko.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/kok.orth b/fc-lang/kok.orth
index 0d9cae0..5a6edf7 100644
--- a/fc-lang/kok.orth
+++ b/fc-lang/kok.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/kok.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ks.orth b/fc-lang/ks.orth
index 1c56b74..42bd241 100644
--- a/fc-lang/ks.orth
+++ b/fc-lang/ks.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ks.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ku.orth b/fc-lang/ku.orth
index 8e783c8..ae20870 100644
--- a/fc-lang/ku.orth
+++ b/fc-lang/ku.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ku.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ku_ir.orth b/fc-lang/ku_ir.orth
index 713f73d..13fa146 100644
--- a/fc-lang/ku_ir.orth
+++ b/fc-lang/ku_ir.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ku_ir.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/kum.orth b/fc-lang/kum.orth
index 9ed7f82..55da2da 100644
--- a/fc-lang/kum.orth
+++ b/fc-lang/kum.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ku.orth,v 1.1 2002/07/12 07:52:16 keithp Exp $
+# fontconfig/fc-lang/kum.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/kv.orth b/fc-lang/kv.orth
index 3bcb941..3b5fb28 100644
--- a/fc-lang/kv.orth
+++ b/fc-lang/kv.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/kv.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/kw.orth b/fc-lang/kw.orth
index 38eb6f2..25d11dd 100644
--- a/fc-lang/kw.orth
+++ b/fc-lang/kw.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/wen.orth,v 1.1 2002/07/12 19:19:16 keithp Exp $
+# fontconfig/fc-lang/kw.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ky.orth b/fc-lang/ky.orth
index 3a0a2cf..1f96f52 100644
--- a/fc-lang/ky.orth
+++ b/fc-lang/ky.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ky.orth,v 1.1 2002/07/12 07:52:16 keithp Exp $
+# fontconfig/fc-lang/ky.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/la.orth b/fc-lang/la.orth
index 22bc2d5..1fa30b0 100644
--- a/fc-lang/la.orth
+++ b/fc-lang/la.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/la.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/lb.orth b/fc-lang/lb.orth
index 3177a26..fc84d00 100644
--- a/fc-lang/lb.orth
+++ b/fc-lang/lb.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/lb.orth,v 1.1 2002/07/12 19:19:15 keithp Exp $
+# fontconfig/fc-lang/lb.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/lez.orth b/fc-lang/lez.orth
index b6ba1a7..ade7699 100644
--- a/fc-lang/lez.orth
+++ b/fc-lang/lez.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/lez.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ln.orth b/fc-lang/ln.orth
index f90c30e..58d00fe 100644
--- a/fc-lang/ln.orth
+++ b/fc-lang/ln.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ln.orth,v 1.1 2006/03/08 14:22:16 plam Exp $
+# fontconfig/fc-lang/ln.orth
 #
 # Copyright © 2006 Danis Jacquerye
 #
diff --git a/fc-lang/lo.orth b/fc-lang/lo.orth
index 3ad7237..eb25ef5 100644
--- a/fc-lang/lo.orth
+++ b/fc-lang/lo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/lo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/lt.orth b/fc-lang/lt.orth
index a2e5c14..09d7024 100644
--- a/fc-lang/lt.orth
+++ b/fc-lang/lt.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/lt.orth,v 1.2 2002/07/06 23:59:16 keithp Exp $
+# fontconfig/fc-lang/lt.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/lv.orth b/fc-lang/lv.orth
index 9b89576..f0cfb1c 100644
--- a/fc-lang/lv.orth
+++ b/fc-lang/lv.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/lv.orth,v 1.2 2002/07/06 23:59:17 keithp Exp $
+# fontconfig/fc-lang/lv.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mai.orth b/fc-lang/mai.orth
index 2dd1468..fcfe462 100644
--- a/fc-lang/mai.orth
+++ b/fc-lang/mai.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/mai.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mg.orth b/fc-lang/mg.orth
index 513d242..02a8fc7 100644
--- a/fc-lang/mg.orth
+++ b/fc-lang/mg.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/mg.orth,v 1.1 2002/07/12 19:19:15 keithp Exp $
+# fontconfig/fc-lang/mg.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mh.orth b/fc-lang/mh.orth
index d2aab15..ce909a4 100644
--- a/fc-lang/mh.orth
+++ b/fc-lang/mh.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/mh.orth,v 1.1 2002/07/12 19:19:15 keithp Exp $
+# fontconfig/fc-lang/mh.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mi.orth b/fc-lang/mi.orth
index 9a3c260..2ef46b6 100644
--- a/fc-lang/mi.orth
+++ b/fc-lang/mi.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/mi.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mk.orth b/fc-lang/mk.orth
index 6637a93..8806200 100644
--- a/fc-lang/mk.orth
+++ b/fc-lang/mk.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/mk.orth,v 1.2 2002/07/06 23:59:17 keithp Exp $
+# fontconfig/fc-lang/mk.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ml.orth b/fc-lang/ml.orth
index 4b701a6..13f44f5 100644
--- a/fc-lang/ml.orth
+++ b/fc-lang/ml.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ml.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mn.orth b/fc-lang/mn.orth
index feaedad..01ddf63 100644
--- a/fc-lang/mn.orth
+++ b/fc-lang/mn.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/mn.orth,v 1.1 2002/07/07 19:18:51 keithp Exp $
+# fontconfig/fc-lang/mn.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mo.orth b/fc-lang/mo.orth
index c325502..8e84dd0 100644
--- a/fc-lang/mo.orth
+++ b/fc-lang/mo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/mo.orth,v 1.2 2002/07/06 23:59:17 keithp Exp $
+# fontconfig/fc-lang/mo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mr.orth b/fc-lang/mr.orth
index 86bc40d..552b4c3 100644
--- a/fc-lang/mr.orth
+++ b/fc-lang/mr.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/mr.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/mt.orth b/fc-lang/mt.orth
index b87849d..3dfa720 100644
--- a/fc-lang/mt.orth
+++ b/fc-lang/mt.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/mt.orth,v 1.2 2002/07/06 23:59:17 keithp Exp $
+# fontconfig/fc-lang/mt.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/my.orth b/fc-lang/my.orth
index 86de4e9..907cc61 100644
--- a/fc-lang/my.orth
+++ b/fc-lang/my.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/kw.orth,v 1.1 2002/08/07 17:34:15 keithp Exp $
+# fontconfig/fc-lang/my.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/nb.orth b/fc-lang/nb.orth
index 958a33c..d44c071 100644
--- a/fc-lang/nb.orth
+++ b/fc-lang/nb.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/nb.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/nds.orth b/fc-lang/nds.orth
index 4b9c19a..9de5769 100644
--- a/fc-lang/nds.orth
+++ b/fc-lang/nds.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/de.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/nds.orth
 #
 # Copyright © 2004 Keith Packard
 #
diff --git a/fc-lang/ne.orth b/fc-lang/ne.orth
index cb3f3d5..2a3a332 100644
--- a/fc-lang/ne.orth
+++ b/fc-lang/ne.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ne.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/nl.orth b/fc-lang/nl.orth
index c07dd46..7692227 100644
--- a/fc-lang/nl.orth
+++ b/fc-lang/nl.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/nl.orth,v 1.2 2002/07/06 23:59:17 keithp Exp $
+# fontconfig/fc-lang/nl.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/nn.orth b/fc-lang/nn.orth
index 1ee92b6..f75ad2d 100644
--- a/fc-lang/nn.orth
+++ b/fc-lang/nn.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/nn.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/no.orth b/fc-lang/no.orth
index c01c436..8e1b96d 100644
--- a/fc-lang/no.orth
+++ b/fc-lang/no.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/no.orth,v 1.3 2002/07/12 09:12:37 keithp Exp $
+# fontconfig/fc-lang/no.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/nr.orth b/fc-lang/nr.orth
index 1327533..0532cc1 100644
--- a/fc-lang/nr.orth
+++ b/fc-lang/nr.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/nr.orth
 #
 # Copyright © 2007 Dwayne Bailey and Translate.org.za
 #
diff --git a/fc-lang/nso.orth b/fc-lang/nso.orth
index fcf9e33..046fc8a 100644
--- a/fc-lang/nso.orth
+++ b/fc-lang/nso.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/nso.orth
 #
 # Copyright © 2007 Dwayne Bailey and Translate.org.za
 #
diff --git a/fc-lang/ny.orth b/fc-lang/ny.orth
index 36b10df..56ba8b3 100644
--- a/fc-lang/ny.orth
+++ b/fc-lang/ny.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ny.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/oc.orth b/fc-lang/oc.orth
index 12ff5b1..2fe970d 100644
--- a/fc-lang/oc.orth
+++ b/fc-lang/oc.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/oc.orth,v 1.2 2002/07/06 23:59:17 keithp Exp $
+# fontconfig/fc-lang/oc.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/om.orth b/fc-lang/om.orth
index 62c82b0..fb50767 100644
--- a/fc-lang/om.orth
+++ b/fc-lang/om.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/om.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/or.orth b/fc-lang/or.orth
index 99f9f1d..163ca47 100644
--- a/fc-lang/or.orth
+++ b/fc-lang/or.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/or.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/os.orth b/fc-lang/os.orth
index 4e7f499..ab678c9 100644
--- a/fc-lang/os.orth
+++ b/fc-lang/os.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/os.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/pa.orth b/fc-lang/pa.orth
index bd726ba..2d6f193 100644
--- a/fc-lang/pa.orth
+++ b/fc-lang/pa.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/pa.orth
 #
 # Copyright © 2004 Red Hat, Inc.
 #
diff --git a/fc-lang/pl.orth b/fc-lang/pl.orth
index 02bda12..f4cfe50 100644
--- a/fc-lang/pl.orth
+++ b/fc-lang/pl.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/pl.orth,v 1.2 2002/07/06 23:59:17 keithp Exp $
+# fontconfig/fc-lang/pl.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ps_af.orth b/fc-lang/ps_af.orth
index 2aba766..08db272 100644
--- a/fc-lang/ps_af.orth
+++ b/fc-lang/ps_af.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ps_af.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ps_pk.orth b/fc-lang/ps_pk.orth
index 0aa1aeb..31c0164 100644
--- a/fc-lang/ps_pk.orth
+++ b/fc-lang/ps_pk.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/fa.orth,v 1.1 2002/07/09 02:28:26 keithp Exp $
+# fontconfig/fc-lang/ps_pk.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/pt.orth b/fc-lang/pt.orth
index cca7bf0..f09df16 100644
--- a/fc-lang/pt.orth
+++ b/fc-lang/pt.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/pt.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/pt.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/rm.orth b/fc-lang/rm.orth
index b5110f3..94e9399 100644
--- a/fc-lang/rm.orth
+++ b/fc-lang/rm.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/rm.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/rm.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ro.orth b/fc-lang/ro.orth
index 56261d5..a3b3d17 100644
--- a/fc-lang/ro.orth
+++ b/fc-lang/ro.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ro.orth,v 1.3 2002/07/12 21:06:00 keithp Exp $
+# fontconfig/fc-lang/ro.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ru.orth b/fc-lang/ru.orth
index c4c23be..b6f7a2c 100644
--- a/fc-lang/ru.orth
+++ b/fc-lang/ru.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ru.orth,v 1.3 2002/07/12 09:12:37 keithp Exp $
+# fontconfig/fc-lang/ru.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sa.orth b/fc-lang/sa.orth
index 14072fc..c200ca0 100644
--- a/fc-lang/sa.orth
+++ b/fc-lang/sa.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/sa.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sah.orth b/fc-lang/sah.orth
index 5b50d3d..570cd3f 100644
--- a/fc-lang/sah.orth
+++ b/fc-lang/sah.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/sah.orth,v 1.1 2002/07/12 07:52:16 keithp Exp $
+# fontconfig/fc-lang/sah.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sco.orth b/fc-lang/sco.orth
index da73aec..3dfee5f 100644
--- a/fc-lang/sco.orth
+++ b/fc-lang/sco.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/wen.orth,v 1.1 2002/07/12 19:19:16 keithp Exp $
+# fontconfig/fc-lang/sco.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/se.orth b/fc-lang/se.orth
index dd6dc80..39c02fa 100644
--- a/fc-lang/se.orth
+++ b/fc-lang/se.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/se.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sel.orth b/fc-lang/sel.orth
index 32780e2..d17cb35 100644
--- a/fc-lang/sel.orth
+++ b/fc-lang/sel.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/sel.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sh.orth b/fc-lang/sh.orth
index e2deb92..9dee41c 100644
--- a/fc-lang/sh.orth
+++ b/fc-lang/sh.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/sh.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/shs.orth b/fc-lang/shs.orth
index 70ee95c..ca509b3 100644
--- a/fc-lang/shs.orth
+++ b/fc-lang/shs.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/shs.orth
 #
 # Copyright © 2008 Neskie Manuel
 #
diff --git a/fc-lang/si.orth b/fc-lang/si.orth
index b6b7c86..b638246 100644
--- a/fc-lang/si.orth
+++ b/fc-lang/si.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/si.orth,v 1.1 2002/07/07 19:18:51 keithp Exp $
+# fontconfig/fc-lang/si.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sk.orth b/fc-lang/sk.orth
index d3786ba..6470b9f 100644
--- a/fc-lang/sk.orth
+++ b/fc-lang/sk.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/sk.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/sk.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sl.orth b/fc-lang/sl.orth
index 986bde1..5b559eb 100644
--- a/fc-lang/sl.orth
+++ b/fc-lang/sl.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/sl.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/sl.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sm.orth b/fc-lang/sm.orth
index 3296e08..44ea742 100644
--- a/fc-lang/sm.orth
+++ b/fc-lang/sm.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/sm.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sma.orth b/fc-lang/sma.orth
index 2462899..f092365 100644
--- a/fc-lang/sma.orth
+++ b/fc-lang/sma.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/sma.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/smj.orth b/fc-lang/smj.orth
index 6356d78..b48ed59 100644
--- a/fc-lang/smj.orth
+++ b/fc-lang/smj.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/smj.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/smn.orth b/fc-lang/smn.orth
index 33ec30c..3dc2836 100644
--- a/fc-lang/smn.orth
+++ b/fc-lang/smn.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/smn.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sms.orth b/fc-lang/sms.orth
index 7c089ef..3b260ab 100644
--- a/fc-lang/sms.orth
+++ b/fc-lang/sms.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/sms.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/so.orth b/fc-lang/so.orth
index 814926a..15a8280 100644
--- a/fc-lang/so.orth
+++ b/fc-lang/so.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/so.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sq.orth b/fc-lang/sq.orth
index a277dde..b24afcc 100644
--- a/fc-lang/sq.orth
+++ b/fc-lang/sq.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/sq.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/sq.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sr.orth b/fc-lang/sr.orth
index 1486671..2295c81 100644
--- a/fc-lang/sr.orth
+++ b/fc-lang/sr.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/sr.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/sr.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ss.orth b/fc-lang/ss.orth
index 5223055..98d79e5 100644
--- a/fc-lang/ss.orth
+++ b/fc-lang/ss.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ss.orth
 #
 # Copyright © 2007 Dwayne Bailey and Translate.org.za
 #
diff --git a/fc-lang/st.orth b/fc-lang/st.orth
index f77f6e9..7db6bff 100644
--- a/fc-lang/st.orth
+++ b/fc-lang/st.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/st.orth
 #
 # Copyright © 2007 Dwayne Bailey and Translate.org.za
 #
diff --git a/fc-lang/sv.orth b/fc-lang/sv.orth
index ac888a1..2f7db77 100644
--- a/fc-lang/sv.orth
+++ b/fc-lang/sv.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/sv.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/sv.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/sw.orth b/fc-lang/sw.orth
index 07f155e..9cf5144 100644
--- a/fc-lang/sw.orth
+++ b/fc-lang/sw.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/sw.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/syr.orth b/fc-lang/syr.orth
index 02ecd5d..cd2427c 100644
--- a/fc-lang/syr.orth
+++ b/fc-lang/syr.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ab.orth,v 1.3 2002/07/12 09:12:36 keithp Exp $
+# fontconfig/fc-lang/syr.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ta.orth b/fc-lang/ta.orth
index a640327..eb68f33 100644
--- a/fc-lang/ta.orth
+++ b/fc-lang/ta.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ta.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/te.orth b/fc-lang/te.orth
index 656f0f9..fa0f1fc 100644
--- a/fc-lang/te.orth
+++ b/fc-lang/te.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/te.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tg.orth b/fc-lang/tg.orth
index ea72484..3933244 100644
--- a/fc-lang/tg.orth
+++ b/fc-lang/tg.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/tg.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/th.orth b/fc-lang/th.orth
index 7b0f340..0387549 100644
--- a/fc-lang/th.orth
+++ b/fc-lang/th.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/th.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ti_er.orth b/fc-lang/ti_er.orth
index 5edcc1c..aecd8d0 100644
--- a/fc-lang/ti_er.orth
+++ b/fc-lang/ti_er.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/gez.orth,v 1.2 2002/07/13 19:10:03 keithp Exp $
+# fontconfig/fc-lang/ti_er.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ti_et.orth b/fc-lang/ti_et.orth
index 1302eaf..6fdbd58 100644
--- a/fc-lang/ti_et.orth
+++ b/fc-lang/ti_et.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/ti.orth,v 1.1 2002/08/08 00:10:51 keithp Exp $
+# fontconfig/fc-lang/ti_et.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tig.orth b/fc-lang/tig.orth
index 0e91446..cb4649b 100644
--- a/fc-lang/tig.orth
+++ b/fc-lang/tig.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/gez.orth,v 1.2 2002/07/13 19:10:03 keithp Exp $
+# fontconfig/fc-lang/tig.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tk.orth b/fc-lang/tk.orth
index 658326c..21b8c86 100644
--- a/fc-lang/tk.orth
+++ b/fc-lang/tk.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/tk.orth,v 1.1 2002/07/12 07:52:16 keithp Exp $
+# fontconfig/fc-lang/tk.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tl.orth b/fc-lang/tl.orth
index 4ea737f..430cf07 100644
--- a/fc-lang/tl.orth
+++ b/fc-lang/tl.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/tl.orth,v 1.1 2002/07/07 19:18:51 keithp Exp $
+# fontconfig/fc-lang/tl.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tn.orth b/fc-lang/tn.orth
index a057fc2..92fe9ee 100644
--- a/fc-lang/tn.orth
+++ b/fc-lang/tn.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/tn.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/to.orth b/fc-lang/to.orth
index 4d58046..0be140c 100644
--- a/fc-lang/to.orth
+++ b/fc-lang/to.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/to.orth,v 1.1 2002/07/12 19:19:16 keithp Exp $
+# fontconfig/fc-lang/to.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tr.orth b/fc-lang/tr.orth
index d46dd17..0bedc09 100644
--- a/fc-lang/tr.orth
+++ b/fc-lang/tr.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/tr.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/tr.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ts.orth b/fc-lang/ts.orth
index ec194ff..63e296b 100644
--- a/fc-lang/ts.orth
+++ b/fc-lang/ts.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ts.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tt.orth b/fc-lang/tt.orth
index 8b94738..91b4ca0 100644
--- a/fc-lang/tt.orth
+++ b/fc-lang/tt.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/tt.orth,v 1.1 2002/07/12 07:52:16 keithp Exp $
+# fontconfig/fc-lang/tt.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tw.orth b/fc-lang/tw.orth
index 56b5b06..5c5c07b 100644
--- a/fc-lang/tw.orth
+++ b/fc-lang/tw.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/tw.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/tyv.orth b/fc-lang/tyv.orth
index d21c2c0..9f07334 100644
--- a/fc-lang/tyv.orth
+++ b/fc-lang/tyv.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/tyv.orth,v 1.1 2002/07/12 07:52:16 keithp Exp $
+# fontconfig/fc-lang/tyv.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ug.orth b/fc-lang/ug.orth
index 918b863..6e829b3 100644
--- a/fc-lang/ug.orth
+++ b/fc-lang/ug.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ug.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/uk.orth b/fc-lang/uk.orth
index 2505859..ec21f90 100644
--- a/fc-lang/uk.orth
+++ b/fc-lang/uk.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/uk.orth,v 1.3 2002/07/12 09:12:37 keithp Exp $
+# fontconfig/fc-lang/uk.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ur.orth b/fc-lang/ur.orth
index 4026e2f..9a26494 100644
--- a/fc-lang/ur.orth
+++ b/fc-lang/ur.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ur.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/uz.orth b/fc-lang/uz.orth
index 41593a3..2786946 100644
--- a/fc-lang/uz.orth
+++ b/fc-lang/uz.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/uz.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/ven.orth b/fc-lang/ven.orth
index ad4cda9..30de015 100644
--- a/fc-lang/ven.orth
+++ b/fc-lang/ven.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/ven.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/vi.orth b/fc-lang/vi.orth
index 279263b..0cc746b 100644
--- a/fc-lang/vi.orth
+++ b/fc-lang/vi.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/vi.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/vo.orth b/fc-lang/vo.orth
index 2fa8006..2fb4250 100644
--- a/fc-lang/vo.orth
+++ b/fc-lang/vo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/vo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/vot.orth b/fc-lang/vot.orth
index 0fa3d09..b538e77 100644
--- a/fc-lang/vot.orth
+++ b/fc-lang/vot.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/vot.orth,v 1.1 2002/08/07 17:34:15 keithp Exp $
+# fontconfig/fc-lang/vot.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/wa.orth b/fc-lang/wa.orth
index f3ab44a..91fdc63 100644
--- a/fc-lang/wa.orth
+++ b/fc-lang/wa.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/wa.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/wen.orth b/fc-lang/wen.orth
index d0f25bf..205984f 100644
--- a/fc-lang/wen.orth
+++ b/fc-lang/wen.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/wen.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/wo.orth b/fc-lang/wo.orth
index cc6eb61..674321d 100644
--- a/fc-lang/wo.orth
+++ b/fc-lang/wo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/wo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/xh.orth b/fc-lang/xh.orth
index 746e873..b969587 100644
--- a/fc-lang/xh.orth
+++ b/fc-lang/xh.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/xh.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/yap.orth b/fc-lang/yap.orth
index bdf0eaa..4ce34c9 100644
--- a/fc-lang/yap.orth
+++ b/fc-lang/yap.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/yap.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/yi.orth b/fc-lang/yi.orth
index 113facc..3f764cf 100644
--- a/fc-lang/yi.orth
+++ b/fc-lang/yi.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/yi.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/yo.orth b/fc-lang/yo.orth
index b83ad95..974808e 100644
--- a/fc-lang/yo.orth
+++ b/fc-lang/yo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/yo.orth,v 1.1 2002/07/12 19:19:16 keithp Exp $
+# fontconfig/fc-lang/yo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/zh_cn.orth b/fc-lang/zh_cn.orth
index 282c908..1713151 100644
--- a/fc-lang/zh_cn.orth
+++ b/fc-lang/zh_cn.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/zh_cn.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/zh_cn.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/zh_hk.orth b/fc-lang/zh_hk.orth
index 1bea833..74c908b 100644
--- a/fc-lang/zh_hk.orth
+++ b/fc-lang/zh_hk.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/zh_hk.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/zh_mo.orth b/fc-lang/zh_mo.orth
index 92c5ba2..609a92e 100644
--- a/fc-lang/zh_mo.orth
+++ b/fc-lang/zh_mo.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/zh_mo.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/zh_sg.orth b/fc-lang/zh_sg.orth
index 4418ea9..98885a9 100644
--- a/fc-lang/zh_sg.orth
+++ b/fc-lang/zh_sg.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/zh_sg.orth,v 1.1 2002/07/08 07:31:51 keithp Exp $
+# fontconfig/fc-lang/zh_sg.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/zh_tw.orth b/fc-lang/zh_tw.orth
index 11e4e18..9716a41 100644
--- a/fc-lang/zh_tw.orth
+++ b/fc-lang/zh_tw.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId: xc/lib/fontconfig/fc-lang/zh_tw.orth,v 1.2 2002/07/06 23:59:19 keithp Exp $
+# fontconfig/fc-lang/zh_tw.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-lang/zu.orth b/fc-lang/zu.orth
index 79f1f76..e9588c5 100644
--- a/fc-lang/zu.orth
+++ b/fc-lang/zu.orth
@@ -1,5 +1,5 @@
 #
-# $RCSId:$
+# fontconfig/fc-lang/zu.orth
 #
 # Copyright © 2002 Keith Packard
 #
diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c
index b85dfd7..a410df8 100644
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fc-list/fc-list.c,v 1.5 2002/06/30 23:45:40 keithp Exp $
+ * fontconfig/fc-list/fc-list.c
  *
  * Copyright © 2002 Keith Packard
  *
diff --git a/fc-match/fc-match.c b/fc-match/fc-match.c
index aadd08a..8e133c6 100644
--- a/fc-match/fc-match.c
+++ b/fc-match/fc-match.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fc-list/fc-list.c,v 1.5 2002/06/30 23:45:40 keithp Exp $
+ * fontconfig/fc-match/fc-match.c
  *
  * Copyright © 2003 Keith Packard
  *
diff --git a/fontconfig/fcfreetype.h b/fontconfig/fcfreetype.h
index e9be351..d54ec6f 100644
--- a/fontconfig/fcfreetype.h
+++ b/fontconfig/fcfreetype.h
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fontconfig/fcfreetype.h,v 1.2 2002/02/15 06:01:27 keithp Exp $
+ * fontconfig/fontconfig/fcfreetype.h
  *
  * Copyright © 2001 Keith Packard
  *
diff --git a/fontconfig/fcprivate.h b/fontconfig/fcprivate.h
index 9be4c01..1ef03f4 100644
--- a/fontconfig/fcprivate.h
+++ b/fontconfig/fcprivate.h
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fontconfig/fcprivate.h,v 1.5 2002/08/19 19:32:04 keithp Exp $
+ * fontconfig/fontconfig/fcprivate.h
  *
  * Copyright © 2001 Keith Packard
  *
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index cd650a1..499e831 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.30 2002/09/26 00:17:27 keithp Exp $
+ * fontconfig/fontconfig/fontconfig.h
  *
  * Copyright © 2001 Keith Packard
  *
diff --git a/src/fcatomic.c b/src/fcatomic.c
index 8c04510..180168c 100644
--- a/src/fcatomic.c
+++ b/src/fcatomic.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcatomic.c,v 1.2 2002/03/04 21:15:28 tsi Exp $
+ * fontconfig/src/fcatomic.c
  *
  * Copyright © 2002 Keith Packard
  *
diff --git a/src/fcblanks.c b/src/fcblanks.c
index d52cca7..ce1d655 100644
--- a/src/fcblanks.c
+++ b/src/fcblanks.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId:$
+ * fontconfig/src/fcblanks.c
  *
  * Copyright © 2002 Keith Packard
  *
diff --git a/src/fccfg.c b/src/fccfg.c
index e5b6787..85ad0f5 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fccfg.c,v 1.23 2002/08/31 22:17:32 keithp Exp $
+ * fontconfig/src/fccfg.c
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fccharset.c b/src/fccharset.c
index f4042db..d42d78f 100644
--- a/src/fccharset.c
+++ b/src/fccharset.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fccharset.c,v 1.18 2002/08/22 07:36:44 keithp Exp $
+ * fontconfig/src/fccharset.c
  *
  * Copyright © 2001 Keith Packard
  *
diff --git a/src/fcdbg.c b/src/fcdbg.c
index 68f530e..2a15969 100644
--- a/src/fcdbg.c
+++ b/src/fcdbg.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcdbg.c,v 1.10 2002/08/22 18:53:22 keithp Exp $
+ * fontconfig/src/fcdbg.c
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fcdefault.c b/src/fcdefault.c
index e654dc4..443a4b2 100644
--- a/src/fcdefault.c
+++ b/src/fcdefault.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcdefault.c,v 1.2 2002/07/09 22:08:14 keithp Exp $
+ * fontconfig/src/fcdefault.c
  *
  * Copyright © 2001 Keith Packard
  *
diff --git a/src/fcdir.c b/src/fcdir.c
index 48755de..59ea33d 100644
--- a/src/fcdir.c
+++ b/src/fcdir.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcdir.c,v 1.9 2002/08/31 22:17:32 keithp Exp $
+ * fontconfig/src/fcdir.c
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index a79308c..d6197de 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcfreetype.c,v 1.11 2002/08/31 22:17:32 keithp Exp $
+ * fontconfig/src/fcfreetype.c
  *
  * Copyright © 2001 Keith Packard
  *
diff --git a/src/fcfs.c b/src/fcfs.c
index 7bea736..04fb33e 100644
--- a/src/fcfs.c
+++ b/src/fcfs.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: $
+ * fontconfig/src/fcfs.c
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fcinit.c b/src/fcinit.c
index 0998abc..efe95fa 100644
--- a/src/fcinit.c
+++ b/src/fcinit.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcinit.c,v 1.7 2002/08/22 07:36:44 keithp Exp $
+ * fontconfig/src/fcinit.c
  *
  * Copyright © 2001 Keith Packard
  *
diff --git a/src/fcint.h b/src/fcint.h
index 8912d16..fe59947 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcint.h,v 1.27 2002/08/31 22:17:32 keithp Exp $
+ * fontconfig/src/fcint.h
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fclang.c b/src/fclang.c
index 229a13e..2553336 100644
--- a/src/fclang.c
+++ b/src/fclang.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fclang.c,v 1.7 2002/08/26 23:34:31 keithp Exp $
+ * fontconfig/src/fclang.c
  *
  * Copyright © 2002 Keith Packard
  *
diff --git a/src/fclist.c b/src/fclist.c
index 3de04a0..a0306ca 100644
--- a/src/fclist.c
+++ b/src/fclist.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fclist.c,v 1.11tsi Exp $
+ * fontconfig/src/fclist.c
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fcmatch.c b/src/fcmatch.c
index f104e05..b3ee5c1 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcmatch.c,v 1.20 2002/08/31 22:17:32 keithp Exp $
+ * fontconfig/src/fcmatch.c
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fcmatrix.c b/src/fcmatrix.c
index 7f55146..1d6e2f6 100644
--- a/src/fcmatrix.c
+++ b/src/fcmatrix.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: $
+ * fontconfig/src/fcmatrix.c
  *
  * Copyright © 2000 Tuomas J. Lukka
  *
diff --git a/src/fcname.c b/src/fcname.c
index 7a5371b..51544de 100644
--- a/src/fcname.c
+++ b/src/fcname.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcname.c,v 1.15 2002/09/26 00:17:28 keithp Exp $
+ * fontconfig/src/fcname.c
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fcstr.c b/src/fcstr.c
index 712e23b..1d94692 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcstr.c,v 1.10 2002/08/31 22:17:32 keithp Exp $
+ * fontconfig/src/fcstr.c
  *
  * Copyright © 2000 Keith Packard
  *
diff --git a/src/fcxml.c b/src/fcxml.c
index 3de2e24..efdb297 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/src/fcxml.c,v 1.21 2002/08/22 18:53:22 keithp Exp $
+ * fontconfig/src/fcxml.c
  *
  * Copyright © 2002 Keith Packard
  *
commit aef608efed2feb867128e528cd9d39ee7e10a0ac
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 16:11:29 2008 -0400

    Add orth file for Maithili mai.orth (#15821)

diff --git a/fc-lang/mai.orth b/fc-lang/mai.orth
new file mode 100644
index 0000000..2dd1468
--- /dev/null
+++ b/fc-lang/mai.orth
@@ -0,0 +1,25 @@
+#
+# $RCSId:$
+#
+# Copyright © 2002 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Maithili (Devanagari script) (MAI)
+include hi.orth
commit 1bcf4ae5f2348d7956c435d34f2856ebfaccd6c8
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 15:10:04 2008 -0400

    When canonizing filenames, squash // and remove final / (#bug 16286)
    
    The fact that we now drop final slashes from all filenames without
    checking that the file name represents a directory may surprise some,
    but it doesn't bother me really.

diff --git a/src/fcstr.c b/src/fcstr.c
index f56f823..712e23b 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -902,6 +902,9 @@ FcStrCanonAbsoluteFilename (const FcChar8 *s)
 	    if (slash)
 	    {
 		switch (s - slash) {
+		case 1:
+		    f -= 1;	/* squash // and trim final / from file */
+		    break;
 		case 2:
 		    if (!strncmp ((char *) slash, "/.", 2))
 		    {
commit b21bea3731106ef30224f9255c4232d6e2607803
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 14:32:40 2008 -0400

    [doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985)

diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs
index a3a3a26..6c91403 100644
--- a/doc/fcconfig.fncs
+++ b/doc/fcconfig.fncs
@@ -287,7 +287,7 @@ The FcFontSet returned by FcFontSort is destroyed by caling FcFontSetDestroy.
 Creates a new pattern consisting of elements of <parameter>font</parameter> not appearing
 in <parameter>pat</parameter>, elements of <parameter>pat</parameter> not appearing in <parameter>font</parameter> and the best matching
 value from <parameter>pat</parameter> for elements appearing in both.  The result is passed to
-FcConfigSubstitute with <parameter>kind</parameter> FcMatchFont and then returned.
+FcConfigSubstituteWithPat with <parameter>kind</parameter> FcMatchFont and then returned.
 @@
 
 @RET@           FcFontSet *
commit e04afe83de409b880be9a854b34fb624bca5c3b0
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Aug 12 14:10:03 2008 -0400

    Avoid C99ism in Win32 code (#16651)

diff --git a/src/fccfg.c b/src/fccfg.c
index acb0bb4..e5b6787 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -1671,9 +1671,10 @@ FcConfigGetPath (void)
 #ifdef _WIN32
 	if (fontconfig_path[0] == '\0')
 	{
+		char *p;
 		if(!GetModuleFileName(NULL, fontconfig_path, sizeof(fontconfig_path)))
 			goto bail1;
-		char *p = strrchr (fontconfig_path, '\\');
+		p = strrchr (fontconfig_path, '\\');
 		if (p) *p = '\0';
 		strcat (fontconfig_path, "\\fonts");
 	}
diff --git a/src/fcxml.c b/src/fcxml.c
index 90c079a..3de2e24 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -2060,6 +2060,7 @@ FcEndElement(void *userData, const XML_Char *name)
 #ifdef _WIN32
 	if (strcmp (data, "CUSTOMFONTDIR") == 0)
 	{
+		char *p;
 		FcStrFree (data);
 		data = malloc (1000);
 		if (!data)
@@ -2074,7 +2075,7 @@ FcEndElement(void *userData, const XML_Char *name)
 			FcStrFree (data);
 			break;
 		}
-		char *p = strrchr (data, '\\');
+		p = strrchr (data, '\\');
 		if (p) *p = '\0';
 		strcat (data, "\\fonts");
 	}


More information about the Fontconfig mailing list