laag-fontconfig 2.13.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (455) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +28 -0
  4. data/README.org +34 -0
  5. data/ext/laag/fontconfig/extconf.rb +13 -0
  6. data/laag-fontconfig.gemspec +20 -0
  7. data/lib/laag/fontconfig.rb +29 -0
  8. data/vendor/anongit.freedesktop.org/git/fontconfig/AUTHORS +3 -0
  9. data/vendor/anongit.freedesktop.org/git/fontconfig/COPYING +28 -0
  10. data/vendor/anongit.freedesktop.org/git/fontconfig/INSTALL +42 -0
  11. data/vendor/anongit.freedesktop.org/git/fontconfig/Makefile.am +158 -0
  12. data/vendor/anongit.freedesktop.org/git/fontconfig/NEWS +0 -0
  13. data/vendor/anongit.freedesktop.org/git/fontconfig/README +2016 -0
  14. data/vendor/anongit.freedesktop.org/git/fontconfig/Tools.mk +64 -0
  15. data/vendor/anongit.freedesktop.org/git/fontconfig/autogen.sh +126 -0
  16. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-autohint.conf +19 -0
  17. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-hinting-full.conf +19 -0
  18. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-hinting-medium.conf +19 -0
  19. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-hinting-none.conf +19 -0
  20. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-hinting-slight.conf +19 -0
  21. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-no-sub-pixel.conf +19 -0
  22. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-scale-bitmap-fonts.conf +87 -0
  23. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-sub-pixel-bgr.conf +19 -0
  24. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-sub-pixel-rgb.conf +19 -0
  25. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-sub-pixel-vbgr.conf +19 -0
  26. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-sub-pixel-vrgb.conf +19 -0
  27. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/10-unhinted.conf +19 -0
  28. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/11-lcdfilter-default.conf +21 -0
  29. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/11-lcdfilter-legacy.conf +21 -0
  30. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/11-lcdfilter-light.conf +21 -0
  31. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/20-unhint-small-vera.conf +53 -0
  32. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/25-unhint-nonlatin.conf +132 -0
  33. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/30-metric-aliases.conf +634 -0
  34. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/40-nonlatin.conf +236 -0
  35. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/45-generic.conf +136 -0
  36. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/45-latin.conf +278 -0
  37. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/49-sansserif.conf +26 -0
  38. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/50-user.conf +20 -0
  39. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/51-local.conf +11 -0
  40. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/60-generic.conf +67 -0
  41. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/60-latin.conf +79 -0
  42. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/65-fonts-persian.conf +423 -0
  43. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/65-khmer.conf +20 -0
  44. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/65-nonlatin.conf +200 -0
  45. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/69-unifont.conf +32 -0
  46. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/70-no-bitmaps.conf +17 -0
  47. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/70-yes-bitmaps.conf +17 -0
  48. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/80-delicious.conf +23 -0
  49. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/90-synthetic.conf +68 -0
  50. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/Makefile.am +110 -0
  51. data/vendor/anongit.freedesktop.org/git/fontconfig/conf.d/README.in +23 -0
  52. data/vendor/anongit.freedesktop.org/git/fontconfig/config-fixups.h +40 -0
  53. data/vendor/anongit.freedesktop.org/git/fontconfig/configure.ac +793 -0
  54. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/Makefile.am +224 -0
  55. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/check-missing-doc +24 -0
  56. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/confdir.sgml.in +26 -0
  57. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/edit-sgml.c +546 -0
  58. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcatomic.fncs +95 -0
  59. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcblanks.fncs +60 -0
  60. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fccache.fncs +104 -0
  61. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fccharset.fncs +242 -0
  62. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcconfig.fncs +447 -0
  63. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcconstant.fncs +58 -0
  64. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcdircache.fncs +99 -0
  65. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcfile.fncs +88 -0
  66. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcfontset.fncs +140 -0
  67. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcformat.fncs +309 -0
  68. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcfreetype.fncs +135 -0
  69. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcinit.fncs +92 -0
  70. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fclangset.fncs +201 -0
  71. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcmatrix.fncs +125 -0
  72. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcobjectset.fncs +73 -0
  73. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcobjecttype.fncs +48 -0
  74. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcpattern.fncs +433 -0
  75. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcrange.fncs +75 -0
  76. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcstring.fncs +244 -0
  77. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcstrset.fncs +124 -0
  78. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcvalue.fncs +61 -0
  79. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fcweight.fncs +69 -0
  80. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fontconfig-devel.sgml +613 -0
  81. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/fontconfig-user.sgml +812 -0
  82. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/func.sgml +91 -0
  83. data/vendor/anongit.freedesktop.org/git/fontconfig/doc/version.sgml.in +24 -0
  84. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-cache/Makefile.am +69 -0
  85. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-cache/fc-cache.c +423 -0
  86. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-cache/fc-cache.sgml +249 -0
  87. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-case/CaseFolding.txt +1495 -0
  88. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-case/Makefile.am +36 -0
  89. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-case/fc-case.c +363 -0
  90. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-case/fccase.tmpl.h +25 -0
  91. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-cat/Makefile.am +60 -0
  92. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-cat/fc-cat.c +400 -0
  93. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-cat/fc-cat.sgml +169 -0
  94. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-conflist/Makefile.am +60 -0
  95. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-conflist/fc-conflist.c +142 -0
  96. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-conflist/fc-conflist.sgml +135 -0
  97. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/Makefile.am +288 -0
  98. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/README +28 -0
  99. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/aa.orth +40 -0
  100. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ab.orth +45 -0
  101. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/af.orth +46 -0
  102. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ak.orth +30 -0
  103. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/am.orth +36 -0
  104. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/an.orth +45 -0
  105. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ar.orth +39 -0
  106. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/as.orth +45 -0
  107. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ast.orth +47 -0
  108. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/av.orth +97 -0
  109. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ay.orth +37 -0
  110. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/az_az.orth +53 -0
  111. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/az_ir.orth +32 -0
  112. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ba.orth +56 -0
  113. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/be.orth +40 -0
  114. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ber_dz.orth +27 -0
  115. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ber_ma.orth +46 -0
  116. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bg.orth +43 -0
  117. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bh.orth +25 -0
  118. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bho.orth +25 -0
  119. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bi.orth +39 -0
  120. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bin.orth +55 -0
  121. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bm.orth +37 -0
  122. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bn.orth +44 -0
  123. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bo.orth +39 -0
  124. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/br.orth +47 -0
  125. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/brx.orth +46 -0
  126. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bs.orth +39 -0
  127. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/bua.orth +102 -0
  128. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/byn.orth +27 -0
  129. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ca.orth +58 -0
  130. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ce.orth +97 -0
  131. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ch.orth +35 -0
  132. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/chm.orth +109 -0
  133. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/chr.orth +25 -0
  134. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/co.orth +25 -0
  135. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/crh.orth +46 -0
  136. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/cs.orth +67 -0
  137. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/csb.orth +46 -0
  138. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/cu.orth +42 -0
  139. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/cv.orth +109 -0
  140. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/cy.orth +63 -0
  141. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/da.orth +89 -0
  142. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/de.orth +49 -0
  143. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/doi.orth +40 -0
  144. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/dv.orth +34 -0
  145. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/dz.orth +28 -0
  146. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ee.orth +77 -0
  147. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/el.orth +32 -0
  148. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/en.orth +40 -0
  149. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/eo.orth +32 -0
  150. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/es.orth +50 -0
  151. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/et.orth +47 -0
  152. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/eu.orth +45 -0
  153. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fa.orth +73 -0
  154. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fat.orth +30 -0
  155. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fc-lang.c +595 -0
  156. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fc-lang.man +39 -0
  157. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fclang.tmpl.h +25 -0
  158. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ff.orth +38 -0
  159. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fi.orth +51 -0
  160. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fil.orth +45 -0
  161. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fj.orth +34 -0
  162. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fo.orth +59 -0
  163. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fr.orth +58 -0
  164. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fur.orth +39 -0
  165. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/fy.orth +61 -0
  166. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ga.orth +84 -0
  167. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/gd.orth +51 -0
  168. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/gez.orth +60 -0
  169. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/gl.orth +50 -0
  170. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/gn.orth +48 -0
  171. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/gu.orth +41 -0
  172. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/gv.orth +31 -0
  173. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ha.orth +36 -0
  174. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/haw.orth +35 -0
  175. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/he.orth +25 -0
  176. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/hi.orth +35 -0
  177. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/hne.orth +28 -0
  178. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ho.orth +33 -0
  179. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/hr.orth +49 -0
  180. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/hsb.orth +42 -0
  181. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ht.orth +35 -0
  182. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/hu.orth +49 -0
  183. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/hy.orth +26 -0
  184. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/hz.orth +35 -0
  185. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ia.orth +29 -0
  186. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/id.orth +31 -0
  187. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ie.orth +29 -0
  188. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ig.orth +35 -0
  189. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ii.orth +34 -0
  190. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ik.orth +100 -0
  191. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/io.orth +29 -0
  192. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/is.orth +64 -0
  193. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/iso-3166.txt +242 -0
  194. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/iso639-1 +139 -0
  195. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/iso639-2 +473 -0
  196. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/it.orth +51 -0
  197. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/iu.orth +77 -0
  198. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ja.orth +2345 -0
  199. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/jv.orth +36 -0
  200. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ka.orth +34 -0
  201. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kaa.orth +110 -0
  202. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kab.orth +42 -0
  203. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ki.orth +33 -0
  204. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kj.orth +34 -0
  205. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kk.orth +45 -0
  206. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kl.orth +63 -0
  207. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/km.orth +39 -0
  208. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kn.orth +40 -0
  209. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ko.orth +2537 -0
  210. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kok.orth +25 -0
  211. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kr.orth +43 -0
  212. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ks.orth +32 -0
  213. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ku_am.orth +91 -0
  214. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ku_iq.orth +27 -0
  215. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ku_ir.orth +49 -0
  216. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ku_tr.orth +42 -0
  217. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kum.orth +96 -0
  218. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kv.orth +101 -0
  219. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kw.orth +35 -0
  220. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/kwm.orth +29 -0
  221. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ky.orth +102 -0
  222. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/la.orth +31 -0
  223. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/lah.orth +35 -0
  224. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/lb.orth +62 -0
  225. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/lez.orth +97 -0
  226. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/lg.orth +33 -0
  227. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/li.orth +43 -0
  228. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ln.orth +43 -0
  229. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/lo.orth +45 -0
  230. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/lt.orth +43 -0
  231. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/lv.orth +44 -0
  232. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mai.orth +25 -0
  233. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mg.orth +35 -0
  234. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mh.orth +45 -0
  235. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mi.orth +35 -0
  236. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mk.orth +40 -0
  237. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ml.orth +38 -0
  238. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mn_cn.orth +37 -0
  239. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mn_mn.orth +35 -0
  240. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mni.orth +35 -0
  241. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mo.orth +37 -0
  242. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mr.orth +25 -0
  243. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ms.orth +32 -0
  244. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/mt.orth +67 -0
  245. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/my.orth +37 -0
  246. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/na.orth +40 -0
  247. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/nb.orth +25 -0
  248. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/nds.orth +40 -0
  249. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ne.orth +43 -0
  250. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ng.orth +29 -0
  251. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/nl.orth +63 -0
  252. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/nn.orth +43 -0
  253. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/no.orth +68 -0
  254. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/nqo.orth +30 -0
  255. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/nr.orth +29 -0
  256. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/nso.orth +34 -0
  257. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/nv.orth +48 -0
  258. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ny.orth +30 -0
  259. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/oc.orth +53 -0
  260. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/om.orth +29 -0
  261. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/or.orth +42 -0
  262. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/os.orth +96 -0
  263. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ota.orth +41 -0
  264. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/pa.orth +53 -0
  265. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/pa_pk.orth +29 -0
  266. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/pap_an.orth +46 -0
  267. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/pap_aw.orth +31 -0
  268. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/pes.orth +26 -0
  269. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/pl.orth +41 -0
  270. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/prs.orth +29 -0
  271. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ps_af.orth +52 -0
  272. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ps_pk.orth +52 -0
  273. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/pt.orth +64 -0
  274. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/qu.orth +36 -0
  275. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/quz.orth +36 -0
  276. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/rm.orth +45 -0
  277. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/rn.orth +32 -0
  278. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ro.orth +38 -0
  279. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ru.orth +38 -0
  280. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/rw.orth +31 -0
  281. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sa.orth +25 -0
  282. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sah.orth +108 -0
  283. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sat.orth +44 -0
  284. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sc.orth +42 -0
  285. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sco.orth +32 -0
  286. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sd.orth +58 -0
  287. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/se.orth +37 -0
  288. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sel.orth +96 -0
  289. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sg.orth +47 -0
  290. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sh.orth +33 -0
  291. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/shs.orth +48 -0
  292. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/si.orth +75 -0
  293. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sid.orth +27 -0
  294. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sk.orth +63 -0
  295. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sl.orth +88 -0
  296. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sm.orth +30 -0
  297. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sma.orth +37 -0
  298. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/smj.orth +37 -0
  299. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/smn.orth +40 -0
  300. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sms.orth +48 -0
  301. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sn.orth +35 -0
  302. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/so.orth +29 -0
  303. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sq.orth +35 -0
  304. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sr.orth +35 -0
  305. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ss.orth +29 -0
  306. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/st.orth +29 -0
  307. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/su.orth +33 -0
  308. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sv.orth +100 -0
  309. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/sw.orth +29 -0
  310. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/syr.orth +29 -0
  311. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ta.orth +46 -0
  312. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/te.orth +39 -0
  313. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tg.orth +108 -0
  314. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/th.orth +30 -0
  315. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ti_er.orth +56 -0
  316. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ti_et.orth +33 -0
  317. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tig.orth +52 -0
  318. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tk.orth +44 -0
  319. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tl.orth +27 -0
  320. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tn.orth +35 -0
  321. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/to.orth +30 -0
  322. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tr.orth +49 -0
  323. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ts.orth +29 -0
  324. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tt.orth +108 -0
  325. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tw.orth +50 -0
  326. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ty.orth +41 -0
  327. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/tyv.orth +102 -0
  328. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ug.orth +50 -0
  329. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/uk.orth +43 -0
  330. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/und_zmth.orth +144 -0
  331. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/und_zsye.orth +151 -0
  332. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ur.orth +68 -0
  333. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/uz.orth +36 -0
  334. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/ve.orth +34 -0
  335. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/vi.orth +58 -0
  336. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/vo.orth +36 -0
  337. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/vot.orth +40 -0
  338. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/wa.orth +47 -0
  339. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/wal.orth +27 -0
  340. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/wen.orth +42 -0
  341. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/wo.orth +42 -0
  342. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/xh.orth +29 -0
  343. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/yap.orth +35 -0
  344. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/yi.orth +25 -0
  345. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/yo.orth +86 -0
  346. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/za.orth +39 -0
  347. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/zh_cn.orth +6792 -0
  348. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/zh_hk.orth +1119 -0
  349. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/zh_mo.orth +32 -0
  350. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/zh_sg.orth +27 -0
  351. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/zh_tw.orth +13105 -0
  352. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-lang/zu.orth +29 -0
  353. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-list/Makefile.am +60 -0
  354. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-list/fc-list.c +220 -0
  355. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-list/fc-list.sgml +227 -0
  356. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-match/Makefile.am +60 -0
  357. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-match/fc-match.c +268 -0
  358. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-match/fc-match.sgml +217 -0
  359. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-pattern/Makefile.am +60 -0
  360. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-pattern/fc-pattern.c +203 -0
  361. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-pattern/fc-pattern.sgml +204 -0
  362. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-query/Makefile.am +60 -0
  363. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-query/fc-query.c +194 -0
  364. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-query/fc-query.sgml +204 -0
  365. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-scan/Makefile.am +60 -0
  366. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-scan/fc-scan.c +197 -0
  367. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-scan/fc-scan.sgml +177 -0
  368. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-validate/Makefile.am +60 -0
  369. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-validate/fc-validate.c +250 -0
  370. data/vendor/anongit.freedesktop.org/git/fontconfig/fc-validate/fc-validate.sgml +182 -0
  371. data/vendor/anongit.freedesktop.org/git/fontconfig/fontconfig-zip.in +29 -0
  372. data/vendor/anongit.freedesktop.org/git/fontconfig/fontconfig.pc.in +18 -0
  373. data/vendor/anongit.freedesktop.org/git/fontconfig/fontconfig.spec.in +138 -0
  374. data/vendor/anongit.freedesktop.org/git/fontconfig/fontconfig/Makefile.am +10 -0
  375. data/vendor/anongit.freedesktop.org/git/fontconfig/fontconfig/fcfreetype.h +59 -0
  376. data/vendor/anongit.freedesktop.org/git/fontconfig/fontconfig/fcprivate.h +134 -0
  377. data/vendor/anongit.freedesktop.org/git/fontconfig/fontconfig/fontconfig.h +1107 -0
  378. data/vendor/anongit.freedesktop.org/git/fontconfig/fonts.conf.in +94 -0
  379. data/vendor/anongit.freedesktop.org/git/fontconfig/fonts.dtd +233 -0
  380. data/vendor/anongit.freedesktop.org/git/fontconfig/git.mk +254 -0
  381. data/vendor/anongit.freedesktop.org/git/fontconfig/its/Makefile.am +11 -0
  382. data/vendor/anongit.freedesktop.org/git/fontconfig/its/fontconfig.its +4 -0
  383. data/vendor/anongit.freedesktop.org/git/fontconfig/its/fontconfig.loc +6 -0
  384. data/vendor/anongit.freedesktop.org/git/fontconfig/local.conf +42 -0
  385. data/vendor/anongit.freedesktop.org/git/fontconfig/m4/.gitkeep +0 -0
  386. data/vendor/anongit.freedesktop.org/git/fontconfig/m4/ac_check_symbol.m4 +48 -0
  387. data/vendor/anongit.freedesktop.org/git/fontconfig/m4/ax_cc_for_build.m4 +77 -0
  388. data/vendor/anongit.freedesktop.org/git/fontconfig/m4/ax_create_stdint_h.m4 +695 -0
  389. data/vendor/anongit.freedesktop.org/git/fontconfig/m4/ax_pthread.m4 +337 -0
  390. data/vendor/anongit.freedesktop.org/git/fontconfig/m4/pkg.m4 +214 -0
  391. data/vendor/anongit.freedesktop.org/git/fontconfig/new-version.sh +139 -0
  392. data/vendor/anongit.freedesktop.org/git/fontconfig/po-conf/ChangeLog +12 -0
  393. data/vendor/anongit.freedesktop.org/git/fontconfig/po-conf/LINGUAS +2 -0
  394. data/vendor/anongit.freedesktop.org/git/fontconfig/po-conf/Makevars +80 -0
  395. data/vendor/anongit.freedesktop.org/git/fontconfig/po-conf/POTFILES.in +34 -0
  396. data/vendor/anongit.freedesktop.org/git/fontconfig/po-conf/zh_CN.po +140 -0
  397. data/vendor/anongit.freedesktop.org/git/fontconfig/po/ChangeLog +12 -0
  398. data/vendor/anongit.freedesktop.org/git/fontconfig/po/LINGUAS +2 -0
  399. data/vendor/anongit.freedesktop.org/git/fontconfig/po/Makevars +78 -0
  400. data/vendor/anongit.freedesktop.org/git/fontconfig/po/POTFILES.in +11 -0
  401. data/vendor/anongit.freedesktop.org/git/fontconfig/po/zh_CN.po +608 -0
  402. data/vendor/anongit.freedesktop.org/git/fontconfig/src/Makefile.am +222 -0
  403. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcarch.c +59 -0
  404. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcarch.h +76 -0
  405. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcatomic.c +229 -0
  406. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcatomic.h +145 -0
  407. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fccache.c +1880 -0
  408. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fccfg.c +2668 -0
  409. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fccharset.c +1400 -0
  410. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fccompat.c +280 -0
  411. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcdbg.c +587 -0
  412. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcdefault.c +343 -0
  413. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcdeprecate.h +36 -0
  414. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcdir.c +435 -0
  415. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcformat.c +1220 -0
  416. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcfreetype.c +2626 -0
  417. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcfs.c +149 -0
  418. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcftint.h +54 -0
  419. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fchash.c +216 -0
  420. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcinit.c +258 -0
  421. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcint.h +1344 -0
  422. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fclang.c +1110 -0
  423. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fclist.c +645 -0
  424. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcmatch.c +1240 -0
  425. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcmatrix.c +116 -0
  426. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcmutex.h +127 -0
  427. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcname.c +634 -0
  428. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcobjs.c +168 -0
  429. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcobjs.h +75 -0
  430. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcobjshash.gperf.h +49 -0
  431. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcpat.c +1420 -0
  432. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcptrlist.c +198 -0
  433. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcrange.c +160 -0
  434. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcserialize.c +155 -0
  435. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcstat.c +442 -0
  436. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcstr.c +1371 -0
  437. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcweight.c +103 -0
  438. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcwindows.h +49 -0
  439. data/vendor/anongit.freedesktop.org/git/fontconfig/src/fcxml.c +3508 -0
  440. data/vendor/anongit.freedesktop.org/git/fontconfig/src/ftglue.c +261 -0
  441. data/vendor/anongit.freedesktop.org/git/fontconfig/src/ftglue.h +111 -0
  442. data/vendor/anongit.freedesktop.org/git/fontconfig/src/makealias +38 -0
  443. data/vendor/anongit.freedesktop.org/git/fontconfig/test/4x6.pcf +0 -0
  444. data/vendor/anongit.freedesktop.org/git/fontconfig/test/8x16.pcf +0 -0
  445. data/vendor/anongit.freedesktop.org/git/fontconfig/test/Makefile.am +64 -0
  446. data/vendor/anongit.freedesktop.org/git/fontconfig/test/fonts.conf.in +4 -0
  447. data/vendor/anongit.freedesktop.org/git/fontconfig/test/out.expected-long-family-names +8 -0
  448. data/vendor/anongit.freedesktop.org/git/fontconfig/test/out.expected-no-long-family-names +8 -0
  449. data/vendor/anongit.freedesktop.org/git/fontconfig/test/run-test.sh +205 -0
  450. data/vendor/anongit.freedesktop.org/git/fontconfig/test/test-bz131804.c +135 -0
  451. data/vendor/anongit.freedesktop.org/git/fontconfig/test/test-bz89617.c +40 -0
  452. data/vendor/anongit.freedesktop.org/git/fontconfig/test/test-bz96676.c +32 -0
  453. data/vendor/anongit.freedesktop.org/git/fontconfig/test/test-migration.c +230 -0
  454. data/vendor/anongit.freedesktop.org/git/fontconfig/test/test-pthread.c +101 -0
  455. metadata +518 -0
@@ -0,0 +1,1110 @@
1
+ /*
2
+ * fontconfig/src/fclang.c
3
+ *
4
+ * Copyright © 2002 Keith Packard
5
+ *
6
+ * Permission to use, copy, modify, distribute, and sell this software and its
7
+ * documentation for any purpose is hereby granted without fee, provided that
8
+ * the above copyright notice appear in all copies and that both that
9
+ * copyright notice and this permission notice appear in supporting
10
+ * documentation, and that the name of the author(s) not be used in
11
+ * advertising or publicity pertaining to distribution of the software without
12
+ * specific, written prior permission. The authors make no
13
+ * representations about the suitability of this software for any purpose. It
14
+ * is provided "as is" without express or implied warranty.
15
+ *
16
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22
+ * PERFORMANCE OF THIS SOFTWARE.
23
+ */
24
+
25
+ #include "fcint.h"
26
+ #include "fcftint.h"
27
+
28
+ /* Objects MT-safe for readonly access. */
29
+
30
+ typedef struct {
31
+ const FcChar8 lang[16];
32
+ const FcCharSet charset;
33
+ } FcLangCharSet;
34
+
35
+ typedef struct {
36
+ int begin;
37
+ int end;
38
+ } FcLangCharSetRange;
39
+
40
+ #include "../fc-lang/fclang.h"
41
+
42
+ struct _FcLangSet {
43
+ FcStrSet *extra;
44
+ FcChar32 map_size;
45
+ FcChar32 map[NUM_LANG_SET_MAP];
46
+ };
47
+
48
+ static int FcLangSetIndex (const FcChar8 *lang);
49
+
50
+
51
+ static void
52
+ FcLangSetBitSet (FcLangSet *ls,
53
+ unsigned int id)
54
+ {
55
+ unsigned int bucket;
56
+
57
+ id = fcLangCharSetIndices[id];
58
+ bucket = id >> 5;
59
+ if (bucket >= ls->map_size)
60
+ return; /* shouldn't happen really */
61
+
62
+ ls->map[bucket] |= ((FcChar32) 1 << (id & 0x1f));
63
+ }
64
+
65
+ static FcBool
66
+ FcLangSetBitGet (const FcLangSet *ls,
67
+ unsigned int id)
68
+ {
69
+ unsigned int bucket;
70
+
71
+ id = fcLangCharSetIndices[id];
72
+ bucket = id >> 5;
73
+ if (bucket >= ls->map_size)
74
+ return FcFalse;
75
+
76
+ return ((ls->map[bucket] >> (id & 0x1f)) & 1) ? FcTrue : FcFalse;
77
+ }
78
+
79
+ static void
80
+ FcLangSetBitReset (FcLangSet *ls,
81
+ unsigned int id)
82
+ {
83
+ unsigned int bucket;
84
+
85
+ id = fcLangCharSetIndices[id];
86
+ bucket = id >> 5;
87
+ if (bucket >= ls->map_size)
88
+ return; /* shouldn't happen really */
89
+
90
+ ls->map[bucket] &= ~((FcChar32) 1 << (id & 0x1f));
91
+ }
92
+
93
+ FcLangSet *
94
+ FcFreeTypeLangSet (const FcCharSet *charset,
95
+ const FcChar8 *exclusiveLang)
96
+ {
97
+ int i, j;
98
+ FcChar32 missing;
99
+ const FcCharSet *exclusiveCharset = 0;
100
+ FcLangSet *ls;
101
+
102
+ if (exclusiveLang)
103
+ exclusiveCharset = FcLangGetCharSet (exclusiveLang);
104
+ ls = FcLangSetCreate ();
105
+ if (!ls)
106
+ return 0;
107
+ if (FcDebug() & FC_DBG_LANGSET)
108
+ {
109
+ printf ("font charset");
110
+ FcCharSetPrint (charset);
111
+ printf ("\n");
112
+ }
113
+ for (i = 0; i < NUM_LANG_CHAR_SET; i++)
114
+ {
115
+ if (FcDebug() & FC_DBG_LANGSET)
116
+ {
117
+ printf ("%s charset", fcLangCharSets[i].lang);
118
+ FcCharSetPrint (&fcLangCharSets[i].charset);
119
+ printf ("\n");
120
+ }
121
+
122
+ /*
123
+ * Check for Han charsets to make fonts
124
+ * which advertise support for a single language
125
+ * not support other Han languages
126
+ */
127
+ if (exclusiveCharset &&
128
+ FcFreeTypeIsExclusiveLang (fcLangCharSets[i].lang))
129
+ {
130
+ if (fcLangCharSets[i].charset.num != exclusiveCharset->num)
131
+ continue;
132
+
133
+ for (j = 0; j < fcLangCharSets[i].charset.num; j++)
134
+ if (FcCharSetLeaf(&fcLangCharSets[i].charset, j) !=
135
+ FcCharSetLeaf(exclusiveCharset, j))
136
+ continue;
137
+ }
138
+ missing = FcCharSetSubtractCount (&fcLangCharSets[i].charset, charset);
139
+ if (FcDebug() & FC_DBG_SCANV)
140
+ {
141
+ if (missing && missing < 10)
142
+ {
143
+ FcCharSet *missed = FcCharSetSubtract (&fcLangCharSets[i].charset,
144
+ charset);
145
+ FcChar32 ucs4;
146
+ FcChar32 map[FC_CHARSET_MAP_SIZE];
147
+ FcChar32 next;
148
+
149
+ printf ("\n%s(%u) ", fcLangCharSets[i].lang, missing);
150
+ printf ("{");
151
+ for (ucs4 = FcCharSetFirstPage (missed, map, &next);
152
+ ucs4 != FC_CHARSET_DONE;
153
+ ucs4 = FcCharSetNextPage (missed, map, &next))
154
+ {
155
+ int i, j;
156
+ for (i = 0; i < FC_CHARSET_MAP_SIZE; i++)
157
+ if (map[i])
158
+ {
159
+ for (j = 0; j < 32; j++)
160
+ if (map[i] & (1 << j))
161
+ printf (" %04x", ucs4 + i * 32 + j);
162
+ }
163
+ }
164
+ printf (" }\n\t");
165
+ FcCharSetDestroy (missed);
166
+ }
167
+ else
168
+ printf ("%s(%u) ", fcLangCharSets[i].lang, missing);
169
+ }
170
+ if (!missing)
171
+ FcLangSetBitSet (ls, i);
172
+ }
173
+
174
+ if (FcDebug() & FC_DBG_SCANV)
175
+ printf ("\n");
176
+
177
+
178
+ return ls;
179
+ }
180
+
181
+ FcChar8 *
182
+ FcLangNormalize (const FcChar8 *lang)
183
+ {
184
+ FcChar8 *result = NULL, *s, *orig;
185
+ char *territory, *encoding, *modifier;
186
+ size_t llen, tlen = 0, mlen = 0;
187
+
188
+ if (!lang || !*lang)
189
+ return NULL;
190
+
191
+ /* might be called without initialization */
192
+ FcInitDebug ();
193
+
194
+ if (FcStrCmpIgnoreCase (lang, (const FcChar8 *)"C") == 0 ||
195
+ FcStrCmpIgnoreCase (lang, (const FcChar8 *)"C.UTF-8") == 0 ||
196
+ FcStrCmpIgnoreCase (lang, (const FcChar8 *)"C.utf8") == 0 ||
197
+ FcStrCmpIgnoreCase (lang, (const FcChar8 *)"POSIX") == 0)
198
+ {
199
+ result = FcStrCopy ((const FcChar8 *)"en");
200
+ goto bail;
201
+ }
202
+
203
+ s = FcStrCopy (lang);
204
+ if (!s)
205
+ goto bail;
206
+
207
+ /* from the comments in glibc:
208
+ *
209
+ * LOCALE can consist of up to four recognized parts for the XPG syntax:
210
+ *
211
+ * language[_territory[.codeset]][@modifier]
212
+ *
213
+ * Beside the first all of them are allowed to be missing. If the
214
+ * full specified locale is not found, the less specific one are
215
+ * looked for. The various part will be stripped off according to
216
+ * the following order:
217
+ * (1) codeset
218
+ * (2) normalized codeset
219
+ * (3) territory
220
+ * (4) modifier
221
+ *
222
+ * So since we don't take care of the codeset part here, what patterns
223
+ * we need to deal with is:
224
+ *
225
+ * 1. language_territory@modifier
226
+ * 2. language@modifier
227
+ * 3. language
228
+ *
229
+ * then. and maybe no need to try language_territory here.
230
+ */
231
+ modifier = strchr ((const char *) s, '@');
232
+ if (modifier)
233
+ {
234
+ *modifier = 0;
235
+ modifier++;
236
+ mlen = strlen (modifier);
237
+ }
238
+ encoding = strchr ((const char *) s, '.');
239
+ if (encoding)
240
+ {
241
+ *encoding = 0;
242
+ encoding++;
243
+ if (modifier)
244
+ {
245
+ memmove (encoding, modifier, mlen + 1);
246
+ modifier = encoding;
247
+ }
248
+ }
249
+ territory = strchr ((const char *) s, '_');
250
+ if (!territory)
251
+ territory = strchr ((const char *) s, '-');
252
+ if (territory)
253
+ {
254
+ *territory = 0;
255
+ territory++;
256
+ tlen = strlen (territory);
257
+ }
258
+ llen = strlen ((const char *) s);
259
+ if (llen < 2 || llen > 3)
260
+ {
261
+ fprintf (stderr, "Fontconfig warning: ignoring %s: not a valid language tag\n",
262
+ lang);
263
+ goto bail0;
264
+ }
265
+ if (territory && (tlen < 2 || tlen > 3) &&
266
+ !(territory[0] == 'z' && tlen < 5))
267
+ {
268
+ fprintf (stderr, "Fontconfig warning: ignoring %s: not a valid region tag\n",
269
+ lang);
270
+ goto bail0;
271
+ }
272
+ if (territory)
273
+ territory[-1] = '-';
274
+ if (modifier)
275
+ modifier[-1] = '@';
276
+ orig = FcStrDowncase (s);
277
+ if (!orig)
278
+ goto bail0;
279
+ if (territory)
280
+ {
281
+ if (FcDebug () & FC_DBG_LANGSET)
282
+ printf("Checking the existence of %s.orth\n", s);
283
+ if (FcLangSetIndex (s) < 0)
284
+ {
285
+ memmove (territory - 1, territory + tlen, (mlen > 0 ? mlen + 1 : 0) + 1);
286
+ if (modifier)
287
+ modifier = territory;
288
+ }
289
+ else
290
+ {
291
+ result = s;
292
+ /* we'll miss the opportunity to reduce the correct size
293
+ * of the allocated memory for the string after that.
294
+ */
295
+ s = NULL;
296
+ goto bail1;
297
+ }
298
+ }
299
+ if (modifier)
300
+ {
301
+ if (FcDebug () & FC_DBG_LANGSET)
302
+ printf("Checking the existence of %s.orth\n", s);
303
+ if (FcLangSetIndex (s) < 0)
304
+ modifier[-1] = 0;
305
+ else
306
+ {
307
+ result = s;
308
+ /* we'll miss the opportunity to reduce the correct size
309
+ * of the allocated memory for the string after that.
310
+ */
311
+ s = NULL;
312
+ goto bail1;
313
+ }
314
+ }
315
+ if (FcDebug () & FC_DBG_LANGSET)
316
+ printf("Checking the existence of %s.orth\n", s);
317
+ if (FcLangSetIndex (s) < 0)
318
+ {
319
+ /* there seems no languages matched in orth.
320
+ * add the language as is for fallback.
321
+ */
322
+ result = orig;
323
+ orig = NULL;
324
+ }
325
+ else
326
+ {
327
+ result = s;
328
+ /* we'll miss the opportunity to reduce the correct size
329
+ * of the allocated memory for the string after that.
330
+ */
331
+ s = NULL;
332
+ }
333
+ bail1:
334
+ if (orig)
335
+ FcStrFree (orig);
336
+ bail0:
337
+ if (s)
338
+ free (s);
339
+ bail:
340
+ if (FcDebug () & FC_DBG_LANGSET)
341
+ {
342
+ if (result)
343
+ printf ("normalized: %s -> %s\n", lang, result);
344
+ else
345
+ printf ("Unable to normalize %s\n", lang);
346
+ }
347
+
348
+ return result;
349
+ }
350
+
351
+ #define FcLangEnd(c) ((c) == '-' || (c) == '\0')
352
+
353
+ FcLangResult
354
+ FcLangCompare (const FcChar8 *s1, const FcChar8 *s2)
355
+ {
356
+ FcChar8 c1, c2;
357
+ FcLangResult result = FcLangDifferentLang;
358
+ const FcChar8 *s1_orig = s1;
359
+ FcBool is_und;
360
+
361
+ is_und = FcToLower (s1[0]) == 'u' &&
362
+ FcToLower (s1[1]) == 'n' &&
363
+ FcToLower (s1[2]) == 'd' &&
364
+ FcLangEnd (s1[3]);
365
+
366
+ for (;;)
367
+ {
368
+ c1 = *s1++;
369
+ c2 = *s2++;
370
+
371
+ c1 = FcToLower (c1);
372
+ c2 = FcToLower (c2);
373
+ if (c1 != c2)
374
+ {
375
+ if (!is_und && FcLangEnd (c1) && FcLangEnd (c2))
376
+ result = FcLangDifferentTerritory;
377
+ return result;
378
+ }
379
+ else if (!c1)
380
+ {
381
+ return is_und ? result : FcLangEqual;
382
+ }
383
+ else if (c1 == '-')
384
+ {
385
+ if (!is_und)
386
+ result = FcLangDifferentTerritory;
387
+ }
388
+
389
+ /* If we parsed past "und-", then do not consider it undefined anymore,
390
+ * as there's *something* specified. */
391
+ if (is_und && s1 - s1_orig == 4)
392
+ is_und = FcFalse;
393
+ }
394
+ }
395
+
396
+ /*
397
+ * Return FcTrue when super contains sub.
398
+ *
399
+ * super contains sub if super and sub have the same
400
+ * language and either the same country or one
401
+ * is missing the country
402
+ */
403
+
404
+ static FcBool
405
+ FcLangContains (const FcChar8 *super, const FcChar8 *sub)
406
+ {
407
+ FcChar8 c1, c2;
408
+
409
+ for (;;)
410
+ {
411
+ c1 = *super++;
412
+ c2 = *sub++;
413
+
414
+ c1 = FcToLower (c1);
415
+ c2 = FcToLower (c2);
416
+ if (c1 != c2)
417
+ {
418
+ /* see if super has a country while sub is mising one */
419
+ if (c1 == '-' && c2 == '\0')
420
+ return FcTrue;
421
+ /* see if sub has a country while super is mising one */
422
+ if (c1 == '\0' && c2 == '-')
423
+ return FcTrue;
424
+ return FcFalse;
425
+ }
426
+ else if (!c1)
427
+ return FcTrue;
428
+ }
429
+ }
430
+
431
+ const FcCharSet *
432
+ FcLangGetCharSet (const FcChar8 *lang)
433
+ {
434
+ int i;
435
+ int country = -1;
436
+
437
+ for (i = 0; i < NUM_LANG_CHAR_SET; i++)
438
+ {
439
+ switch (FcLangCompare (lang, fcLangCharSets[i].lang)) {
440
+ case FcLangEqual:
441
+ return &fcLangCharSets[i].charset;
442
+ case FcLangDifferentTerritory:
443
+ if (country == -1)
444
+ country = i;
445
+ case FcLangDifferentLang:
446
+ default:
447
+ break;
448
+ }
449
+ }
450
+ if (country == -1)
451
+ return 0;
452
+ return &fcLangCharSets[country].charset;
453
+ }
454
+
455
+ FcStrSet *
456
+ FcGetLangs (void)
457
+ {
458
+ FcStrSet *langs;
459
+ int i;
460
+
461
+ langs = FcStrSetCreate();
462
+ if (!langs)
463
+ return 0;
464
+
465
+ for (i = 0; i < NUM_LANG_CHAR_SET; i++)
466
+ FcStrSetAdd (langs, fcLangCharSets[i].lang);
467
+
468
+ return langs;
469
+ }
470
+
471
+ FcLangSet *
472
+ FcLangSetCreate (void)
473
+ {
474
+ FcLangSet *ls;
475
+
476
+ ls = malloc (sizeof (FcLangSet));
477
+ if (!ls)
478
+ return 0;
479
+ memset (ls->map, '\0', sizeof (ls->map));
480
+ ls->map_size = NUM_LANG_SET_MAP;
481
+ ls->extra = 0;
482
+ return ls;
483
+ }
484
+
485
+ void
486
+ FcLangSetDestroy (FcLangSet *ls)
487
+ {
488
+ if (!ls)
489
+ return;
490
+
491
+ if (ls->extra)
492
+ FcStrSetDestroy (ls->extra);
493
+ free (ls);
494
+ }
495
+
496
+ FcLangSet *
497
+ FcLangSetCopy (const FcLangSet *ls)
498
+ {
499
+ FcLangSet *new;
500
+
501
+ if (!ls)
502
+ return NULL;
503
+
504
+ new = FcLangSetCreate ();
505
+ if (!new)
506
+ goto bail0;
507
+ memset (new->map, '\0', sizeof (new->map));
508
+ memcpy (new->map, ls->map, FC_MIN (sizeof (new->map), ls->map_size * sizeof (ls->map[0])));
509
+ if (ls->extra)
510
+ {
511
+ FcStrList *list;
512
+ FcChar8 *extra;
513
+
514
+ new->extra = FcStrSetCreate ();
515
+ if (!new->extra)
516
+ goto bail1;
517
+
518
+ list = FcStrListCreate (ls->extra);
519
+ if (!list)
520
+ goto bail1;
521
+
522
+ while ((extra = FcStrListNext (list)))
523
+ if (!FcStrSetAdd (new->extra, extra))
524
+ {
525
+ FcStrListDone (list);
526
+ goto bail1;
527
+ }
528
+ FcStrListDone (list);
529
+ }
530
+ return new;
531
+ bail1:
532
+ FcLangSetDestroy (new);
533
+ bail0:
534
+ return 0;
535
+ }
536
+
537
+ /* When the language isn't found, the return value r is such that:
538
+ * 1) r < 0
539
+ * 2) -r -1 is the index of the first language in fcLangCharSets that comes
540
+ * after the 'lang' argument in lexicographic order.
541
+ *
542
+ * The -1 is necessary to avoid problems with language id 0 (otherwise, we
543
+ * wouldn't be able to distinguish between “language found, id is 0” and
544
+ * “language not found, sorts right before the language with id 0”).
545
+ */
546
+ static int
547
+ FcLangSetIndex (const FcChar8 *lang)
548
+ {
549
+ int low, high, mid = 0;
550
+ int cmp = 0;
551
+ FcChar8 firstChar = FcToLower(lang[0]);
552
+ FcChar8 secondChar = firstChar ? FcToLower(lang[1]) : '\0';
553
+
554
+ if (firstChar < 'a')
555
+ {
556
+ low = 0;
557
+ high = fcLangCharSetRanges[0].begin;
558
+ }
559
+ else if(firstChar > 'z')
560
+ {
561
+ low = fcLangCharSetRanges[25].begin;
562
+ high = NUM_LANG_CHAR_SET - 1;
563
+ }
564
+ else
565
+ {
566
+ low = fcLangCharSetRanges[firstChar - 'a'].begin;
567
+ high = fcLangCharSetRanges[firstChar - 'a'].end;
568
+ /* no matches */
569
+ if (low > high)
570
+ return -(low+1); /* one past next entry after where it would be */
571
+ }
572
+
573
+ while (low <= high)
574
+ {
575
+ mid = (high + low) >> 1;
576
+ if(fcLangCharSets[mid].lang[0] != firstChar)
577
+ cmp = FcStrCmpIgnoreCase(fcLangCharSets[mid].lang, lang);
578
+ else
579
+ { /* fast path for resolving 2-letter languages (by far the most common) after
580
+ * finding the first char (probably already true because of the hash table) */
581
+ cmp = fcLangCharSets[mid].lang[1] - secondChar;
582
+ if (cmp == 0 &&
583
+ (fcLangCharSets[mid].lang[2] != '\0' ||
584
+ lang[2] != '\0'))
585
+ {
586
+ cmp = FcStrCmpIgnoreCase(fcLangCharSets[mid].lang+2,
587
+ lang+2);
588
+ }
589
+ }
590
+ if (cmp == 0)
591
+ return mid;
592
+ if (cmp < 0)
593
+ low = mid + 1;
594
+ else
595
+ high = mid - 1;
596
+ }
597
+ if (cmp < 0)
598
+ mid++;
599
+ return -(mid + 1);
600
+ }
601
+
602
+ FcBool
603
+ FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang)
604
+ {
605
+ int id;
606
+
607
+ id = FcLangSetIndex (lang);
608
+ if (id >= 0)
609
+ {
610
+ FcLangSetBitSet (ls, id);
611
+ return FcTrue;
612
+ }
613
+ if (!ls->extra)
614
+ {
615
+ ls->extra = FcStrSetCreate ();
616
+ if (!ls->extra)
617
+ return FcFalse;
618
+ }
619
+ return FcStrSetAdd (ls->extra, lang);
620
+ }
621
+
622
+ FcBool
623
+ FcLangSetDel (FcLangSet *ls, const FcChar8 *lang)
624
+ {
625
+ int id;
626
+
627
+ id = FcLangSetIndex (lang);
628
+ if (id >= 0)
629
+ {
630
+ FcLangSetBitReset (ls, id);
631
+ }
632
+ else if (ls->extra)
633
+ {
634
+ FcStrSetDel (ls->extra, lang);
635
+ }
636
+ return FcTrue;
637
+ }
638
+
639
+ FcLangResult
640
+ FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang)
641
+ {
642
+ int id;
643
+ FcLangResult best, r;
644
+ int i;
645
+
646
+ id = FcLangSetIndex (lang);
647
+ if (id < 0)
648
+ id = -id - 1;
649
+ else if (FcLangSetBitGet (ls, id))
650
+ return FcLangEqual;
651
+ best = FcLangDifferentLang;
652
+ for (i = id - 1; i >= 0; i--)
653
+ {
654
+ r = FcLangCompare (lang, fcLangCharSets[i].lang);
655
+ if (r == FcLangDifferentLang)
656
+ break;
657
+ if (FcLangSetBitGet (ls, i) && r < best)
658
+ best = r;
659
+ }
660
+ for (i = id; i < NUM_LANG_CHAR_SET; i++)
661
+ {
662
+ r = FcLangCompare (lang, fcLangCharSets[i].lang);
663
+ if (r == FcLangDifferentLang)
664
+ break;
665
+ if (FcLangSetBitGet (ls, i) && r < best)
666
+ best = r;
667
+ }
668
+ if (ls->extra)
669
+ {
670
+ FcStrList *list = FcStrListCreate (ls->extra);
671
+ FcChar8 *extra;
672
+
673
+ if (list)
674
+ {
675
+ while (best > FcLangEqual && (extra = FcStrListNext (list)))
676
+ {
677
+ r = FcLangCompare (lang, extra);
678
+ if (r < best)
679
+ best = r;
680
+ }
681
+ FcStrListDone (list);
682
+ }
683
+ }
684
+ return best;
685
+ }
686
+
687
+ static FcLangResult
688
+ FcLangSetCompareStrSet (const FcLangSet *ls, FcStrSet *set)
689
+ {
690
+ FcStrList *list = FcStrListCreate (set);
691
+ FcLangResult r, best = FcLangDifferentLang;
692
+ FcChar8 *extra;
693
+
694
+ if (list)
695
+ {
696
+ while (best > FcLangEqual && (extra = FcStrListNext (list)))
697
+ {
698
+ r = FcLangSetHasLang (ls, extra);
699
+ if (r < best)
700
+ best = r;
701
+ }
702
+ FcStrListDone (list);
703
+ }
704
+ return best;
705
+ }
706
+
707
+ FcLangResult
708
+ FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb)
709
+ {
710
+ int i, j, count;
711
+ FcLangResult best, r;
712
+ FcChar32 aInCountrySet, bInCountrySet;
713
+
714
+ count = FC_MIN (lsa->map_size, lsb->map_size);
715
+ count = FC_MIN (NUM_LANG_SET_MAP, count);
716
+ for (i = 0; i < count; i++)
717
+ if (lsa->map[i] & lsb->map[i])
718
+ return FcLangEqual;
719
+ best = FcLangDifferentLang;
720
+ for (j = 0; j < NUM_COUNTRY_SET; j++)
721
+ {
722
+ aInCountrySet = 0;
723
+ bInCountrySet = 0;
724
+
725
+ for (i = 0; i < count; i++)
726
+ {
727
+ aInCountrySet |= lsa->map[i] & fcLangCountrySets[j][i];
728
+ bInCountrySet |= lsb->map[i] & fcLangCountrySets[j][i];
729
+
730
+ if (aInCountrySet && bInCountrySet)
731
+ {
732
+ best = FcLangDifferentTerritory;
733
+ break;
734
+ }
735
+ }
736
+ }
737
+ if (lsa->extra)
738
+ {
739
+ r = FcLangSetCompareStrSet (lsb, lsa->extra);
740
+ if (r < best)
741
+ best = r;
742
+ }
743
+ if (best > FcLangEqual && lsb->extra)
744
+ {
745
+ r = FcLangSetCompareStrSet (lsa, lsb->extra);
746
+ if (r < best)
747
+ best = r;
748
+ }
749
+ return best;
750
+ }
751
+
752
+ /*
753
+ * Used in computing values -- mustn't allocate any storage
754
+ */
755
+ FcLangSet *
756
+ FcLangSetPromote (const FcChar8 *lang, FcValuePromotionBuffer *vbuf)
757
+ {
758
+ int id;
759
+ typedef struct {
760
+ FcLangSet ls;
761
+ FcStrSet strs;
762
+ FcChar8 *str;
763
+ } FcLangSetPromotionBuffer;
764
+ FcLangSetPromotionBuffer *buf = (FcLangSetPromotionBuffer *) vbuf;
765
+
766
+ FC_ASSERT_STATIC (sizeof (FcLangSetPromotionBuffer) <= sizeof (FcValuePromotionBuffer));
767
+
768
+ memset (buf->ls.map, '\0', sizeof (buf->ls.map));
769
+ buf->ls.map_size = NUM_LANG_SET_MAP;
770
+ buf->ls.extra = 0;
771
+ if (lang)
772
+ {
773
+ id = FcLangSetIndex (lang);
774
+ if (id >= 0)
775
+ {
776
+ FcLangSetBitSet (&buf->ls, id);
777
+ }
778
+ else
779
+ {
780
+ buf->ls.extra = &buf->strs;
781
+ buf->strs.num = 1;
782
+ buf->strs.size = 1;
783
+ buf->strs.strs = &buf->str;
784
+ FcRefInit (&buf->strs.ref, 1);
785
+ buf->str = (FcChar8 *) lang;
786
+ }
787
+ }
788
+ return &buf->ls;
789
+ }
790
+
791
+ FcChar32
792
+ FcLangSetHash (const FcLangSet *ls)
793
+ {
794
+ FcChar32 h = 0;
795
+ int i, count;
796
+
797
+ count = FC_MIN (ls->map_size, NUM_LANG_SET_MAP);
798
+ for (i = 0; i < count; i++)
799
+ h ^= ls->map[i];
800
+ if (ls->extra)
801
+ h ^= ls->extra->num;
802
+ return h;
803
+ }
804
+
805
+ FcLangSet *
806
+ FcNameParseLangSet (const FcChar8 *string)
807
+ {
808
+ FcChar8 lang[32], c = 0;
809
+ int i;
810
+ FcLangSet *ls;
811
+
812
+ ls = FcLangSetCreate ();
813
+ if (!ls)
814
+ goto bail0;
815
+
816
+ for(;;)
817
+ {
818
+ for(i = 0; i < 31;i++)
819
+ {
820
+ c = *string++;
821
+ if(c == '\0' || c == '|')
822
+ break; /* end of this code */
823
+ lang[i] = c;
824
+ }
825
+ lang[i] = '\0';
826
+ if (!FcLangSetAdd (ls, lang))
827
+ goto bail1;
828
+ if(c == '\0')
829
+ break;
830
+ }
831
+ return ls;
832
+ bail1:
833
+ FcLangSetDestroy (ls);
834
+ bail0:
835
+ return 0;
836
+ }
837
+
838
+ FcBool
839
+ FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls)
840
+ {
841
+ int i, bit, count;
842
+ FcChar32 bits;
843
+ FcBool first = FcTrue;
844
+
845
+ count = FC_MIN (ls->map_size, NUM_LANG_SET_MAP);
846
+ for (i = 0; i < count; i++)
847
+ {
848
+ if ((bits = ls->map[i]))
849
+ {
850
+ for (bit = 0; bit <= 31; bit++)
851
+ if (bits & (1 << bit))
852
+ {
853
+ int id = (i << 5) | bit;
854
+ if (!first)
855
+ if (!FcStrBufChar (buf, '|'))
856
+ return FcFalse;
857
+ if (!FcStrBufString (buf, fcLangCharSets[fcLangCharSetIndicesInv[id]].lang))
858
+ return FcFalse;
859
+ first = FcFalse;
860
+ }
861
+ }
862
+ }
863
+ if (ls->extra)
864
+ {
865
+ FcStrList *list = FcStrListCreate (ls->extra);
866
+ FcChar8 *extra;
867
+
868
+ if (!list)
869
+ return FcFalse;
870
+ while ((extra = FcStrListNext (list)))
871
+ {
872
+ if (!first)
873
+ if (!FcStrBufChar (buf, '|'))
874
+ {
875
+ FcStrListDone (list);
876
+ return FcFalse;
877
+ }
878
+ if (!FcStrBufString (buf, extra))
879
+ {
880
+ FcStrListDone (list);
881
+ return FcFalse;
882
+ }
883
+ first = FcFalse;
884
+ }
885
+ FcStrListDone (list);
886
+ }
887
+ return FcTrue;
888
+ }
889
+
890
+ FcBool
891
+ FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb)
892
+ {
893
+ int i, count;
894
+
895
+ count = FC_MIN (lsa->map_size, lsb->map_size);
896
+ count = FC_MIN (NUM_LANG_SET_MAP, count);
897
+ for (i = 0; i < count; i++)
898
+ {
899
+ if (lsa->map[i] != lsb->map[i])
900
+ return FcFalse;
901
+ }
902
+ if (!lsa->extra && !lsb->extra)
903
+ return FcTrue;
904
+ if (lsa->extra && lsb->extra)
905
+ return FcStrSetEqual (lsa->extra, lsb->extra);
906
+ return FcFalse;
907
+ }
908
+
909
+ static FcBool
910
+ FcLangSetContainsLang (const FcLangSet *ls, const FcChar8 *lang)
911
+ {
912
+ int id;
913
+ int i;
914
+
915
+ id = FcLangSetIndex (lang);
916
+ if (id < 0)
917
+ id = -id - 1;
918
+ else if (FcLangSetBitGet (ls, id))
919
+ return FcTrue;
920
+ /*
921
+ * search up and down among equal languages for a match
922
+ */
923
+ for (i = id - 1; i >= 0; i--)
924
+ {
925
+ if (FcLangCompare (fcLangCharSets[i].lang, lang) == FcLangDifferentLang)
926
+ break;
927
+ if (FcLangSetBitGet (ls, i) &&
928
+ FcLangContains (fcLangCharSets[i].lang, lang))
929
+ return FcTrue;
930
+ }
931
+ for (i = id; i < NUM_LANG_CHAR_SET; i++)
932
+ {
933
+ if (FcLangCompare (fcLangCharSets[i].lang, lang) == FcLangDifferentLang)
934
+ break;
935
+ if (FcLangSetBitGet (ls, i) &&
936
+ FcLangContains (fcLangCharSets[i].lang, lang))
937
+ return FcTrue;
938
+ }
939
+ if (ls->extra)
940
+ {
941
+ FcStrList *list = FcStrListCreate (ls->extra);
942
+ FcChar8 *extra;
943
+
944
+ if (list)
945
+ {
946
+ while ((extra = FcStrListNext (list)))
947
+ {
948
+ if (FcLangContains (extra, lang))
949
+ break;
950
+ }
951
+ FcStrListDone (list);
952
+ if (extra)
953
+ return FcTrue;
954
+ }
955
+ }
956
+ return FcFalse;
957
+ }
958
+
959
+ /*
960
+ * return FcTrue if lsa contains every language in lsb
961
+ */
962
+ FcBool
963
+ FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb)
964
+ {
965
+ int i, j, count;
966
+ FcChar32 missing;
967
+
968
+ if (FcDebug() & FC_DBG_MATCHV)
969
+ {
970
+ printf ("FcLangSet "); FcLangSetPrint (lsa);
971
+ printf (" contains "); FcLangSetPrint (lsb);
972
+ printf ("\n");
973
+ }
974
+ /*
975
+ * check bitmaps for missing language support
976
+ */
977
+ count = FC_MIN (lsa->map_size, lsb->map_size);
978
+ count = FC_MIN (NUM_LANG_SET_MAP, count);
979
+ for (i = 0; i < count; i++)
980
+ {
981
+ missing = lsb->map[i] & ~lsa->map[i];
982
+ if (missing)
983
+ {
984
+ for (j = 0; j < 32; j++)
985
+ if (missing & (1 << j))
986
+ {
987
+ if (!FcLangSetContainsLang (lsa,
988
+ fcLangCharSets[fcLangCharSetIndicesInv[i*32 + j]].lang))
989
+ {
990
+ if (FcDebug() & FC_DBG_MATCHV)
991
+ printf ("\tMissing bitmap %s\n", fcLangCharSets[fcLangCharSetIndicesInv[i*32+j]].lang);
992
+ return FcFalse;
993
+ }
994
+ }
995
+ }
996
+ }
997
+ if (lsb->extra)
998
+ {
999
+ FcStrList *list = FcStrListCreate (lsb->extra);
1000
+ FcChar8 *extra;
1001
+
1002
+ if (list)
1003
+ {
1004
+ while ((extra = FcStrListNext (list)))
1005
+ {
1006
+ if (!FcLangSetContainsLang (lsa, extra))
1007
+ {
1008
+ if (FcDebug() & FC_DBG_MATCHV)
1009
+ printf ("\tMissing string %s\n", extra);
1010
+ break;
1011
+ }
1012
+ }
1013
+ FcStrListDone (list);
1014
+ if (extra)
1015
+ return FcFalse;
1016
+ }
1017
+ }
1018
+ return FcTrue;
1019
+ }
1020
+
1021
+ FcBool
1022
+ FcLangSetSerializeAlloc (FcSerialize *serialize, const FcLangSet *l)
1023
+ {
1024
+ if (!FcSerializeAlloc (serialize, l, sizeof (FcLangSet)))
1025
+ return FcFalse;
1026
+ return FcTrue;
1027
+ }
1028
+
1029
+ FcLangSet *
1030
+ FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l)
1031
+ {
1032
+ FcLangSet *l_serialize = FcSerializePtr (serialize, l);
1033
+
1034
+ if (!l_serialize)
1035
+ return NULL;
1036
+ memset (l_serialize->map, '\0', sizeof (l_serialize->map));
1037
+ memcpy (l_serialize->map, l->map, FC_MIN (sizeof (l_serialize->map), l->map_size * sizeof (l->map[0])));
1038
+ l_serialize->map_size = NUM_LANG_SET_MAP;
1039
+ l_serialize->extra = NULL; /* We don't serialize ls->extra */
1040
+ return l_serialize;
1041
+ }
1042
+
1043
+ FcStrSet *
1044
+ FcLangSetGetLangs (const FcLangSet *ls)
1045
+ {
1046
+ FcStrSet *langs;
1047
+ int i;
1048
+
1049
+ langs = FcStrSetCreate();
1050
+ if (!langs)
1051
+ return 0;
1052
+
1053
+ for (i = 0; i < NUM_LANG_CHAR_SET; i++)
1054
+ if (FcLangSetBitGet (ls, i))
1055
+ FcStrSetAdd (langs, fcLangCharSets[i].lang);
1056
+
1057
+ if (ls->extra)
1058
+ {
1059
+ FcStrList *list = FcStrListCreate (ls->extra);
1060
+ FcChar8 *extra;
1061
+
1062
+ if (list)
1063
+ {
1064
+ while ((extra = FcStrListNext (list)))
1065
+ FcStrSetAdd (langs, extra);
1066
+
1067
+ FcStrListDone (list);
1068
+ }
1069
+ }
1070
+
1071
+ return langs;
1072
+ }
1073
+
1074
+ static FcLangSet *
1075
+ FcLangSetOperate(const FcLangSet *a,
1076
+ const FcLangSet *b,
1077
+ FcBool (*func) (FcLangSet *ls,
1078
+ const FcChar8 *s))
1079
+ {
1080
+ FcLangSet *langset = FcLangSetCopy (a);
1081
+ FcStrSet *set = FcLangSetGetLangs (b);
1082
+ FcStrList *sl = FcStrListCreate (set);
1083
+ FcChar8 *str;
1084
+
1085
+ FcStrSetDestroy (set);
1086
+ while ((str = FcStrListNext (sl)))
1087
+ {
1088
+ func (langset, str);
1089
+ }
1090
+ FcStrListDone (sl);
1091
+
1092
+ return langset;
1093
+ }
1094
+
1095
+ FcLangSet *
1096
+ FcLangSetUnion (const FcLangSet *a, const FcLangSet *b)
1097
+ {
1098
+ return FcLangSetOperate(a, b, FcLangSetAdd);
1099
+ }
1100
+
1101
+ FcLangSet *
1102
+ FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b)
1103
+ {
1104
+ return FcLangSetOperate(a, b, FcLangSetDel);
1105
+ }
1106
+
1107
+ #define __fclang__
1108
+ #include "fcaliastail.h"
1109
+ #include "fcftaliastail.h"
1110
+ #undef __fclang__