mathematical 1.6.17 → 1.6.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1183) hide show
  1. checksums.yaml +4 -4
  2. data/ext/mathematical/lasem/COPYING +502 -0
  3. data/ext/mathematical/lasem/NEWS.md +146 -0
  4. data/ext/mathematical/lasem/README.md +65 -0
  5. data/ext/mathematical/lasem/TODO +50 -0
  6. data/ext/mathematical/lasem/docs/lasem-render-0.6.1 +106 -0
  7. data/ext/mathematical/lasem/docs/meson.build +3 -0
  8. data/ext/mathematical/lasem/docs/reference/lasem/building.md +32 -0
  9. data/ext/mathematical/lasem/docs/reference/lasem/lasem.toml.in +47 -0
  10. data/ext/mathematical/lasem/docs/reference/lasem/meson.build +44 -0
  11. data/ext/mathematical/lasem/docs/reference/lasem/overview.md +24 -0
  12. data/ext/mathematical/lasem/docs/reference/lasem/urlmap.js +5 -0
  13. data/ext/mathematical/lasem/itex2mml/COPYING.itex2MML +3 -0
  14. data/ext/mathematical/lasem/itex2mml/README.itex2MML +16 -0
  15. data/ext/mathematical/lasem/itex2mml/itex2MML.h +63 -0
  16. data/ext/mathematical/lasem/itex2mml/itex2MML.l +1183 -0
  17. data/ext/mathematical/lasem/itex2mml/itex2MML.y +2108 -0
  18. data/ext/mathematical/lasem/itex2mml/meson.build +17 -0
  19. data/ext/mathematical/lasem/lasem.doap +21 -0
  20. data/ext/mathematical/lasem/meson.build +46 -0
  21. data/ext/mathematical/lasem/meson_options.txt +5 -0
  22. data/ext/mathematical/lasem/org.lasem.Viewer.json +41 -0
  23. data/ext/mathematical/lasem/po/LINGUAS +31 -0
  24. data/ext/mathematical/lasem/po/POTFILES.in +195 -0
  25. data/ext/mathematical/lasem/po/POTFILES.skip +1 -0
  26. data/ext/mathematical/lasem/po/bs.po +65 -0
  27. data/ext/mathematical/lasem/po/cs.po +102 -0
  28. data/ext/mathematical/lasem/po/da.po +99 -0
  29. data/ext/mathematical/lasem/po/de.po +104 -0
  30. data/ext/mathematical/lasem/po/el.po +73 -0
  31. data/ext/mathematical/lasem/po/es.po +107 -0
  32. data/ext/mathematical/lasem/po/eu.po +66 -0
  33. data/ext/mathematical/lasem/po/fr.po +65 -0
  34. data/ext/mathematical/lasem/po/fur.po +101 -0
  35. data/ext/mathematical/lasem/po/gl.po +64 -0
  36. data/ext/mathematical/lasem/po/hu.po +105 -0
  37. data/ext/mathematical/lasem/po/id.po +102 -0
  38. data/ext/mathematical/lasem/po/it.po +104 -0
  39. data/ext/mathematical/lasem/po/lt.po +106 -0
  40. data/ext/mathematical/lasem/po/lv.po +109 -0
  41. data/ext/mathematical/lasem/po/meson.build +4 -0
  42. data/ext/mathematical/lasem/po/nb.po +62 -0
  43. data/ext/mathematical/lasem/po/nl.po +102 -0
  44. data/ext/mathematical/lasem/po/oc.po +65 -0
  45. data/ext/mathematical/lasem/po/pl.po +102 -0
  46. data/ext/mathematical/lasem/po/pt.po +77 -0
  47. data/ext/mathematical/lasem/po/pt_BR.po +105 -0
  48. data/ext/mathematical/lasem/po/ru.po +66 -0
  49. data/ext/mathematical/lasem/po/sl.po +117 -0
  50. data/ext/mathematical/lasem/po/sr.po +105 -0
  51. data/ext/mathematical/lasem/po/sr@latin.po +105 -0
  52. data/ext/mathematical/lasem/po/sv.po +105 -0
  53. data/ext/mathematical/lasem/po/tg.po +64 -0
  54. data/ext/mathematical/lasem/po/tr.po +105 -0
  55. data/ext/mathematical/lasem/po/zh_CN.po +100 -0
  56. data/ext/mathematical/lasem/src/lasemrender.c +357 -0
  57. data/ext/mathematical/lasem/src/lsm.c +33 -0
  58. data/ext/mathematical/lasem/src/lsm.h +39 -0
  59. data/ext/mathematical/lasem/src/lsmattributes.c +276 -0
  60. data/ext/mathematical/lasem/src/lsmattributes.h +75 -0
  61. data/ext/mathematical/lasem/src/lsmcairo.c +598 -0
  62. data/ext/mathematical/lasem/src/lsmcairo.h +51 -0
  63. data/ext/mathematical/lasem/src/lsmdebug.c +185 -0
  64. data/ext/mathematical/lasem/src/lsmdebug.h +73 -0
  65. data/ext/mathematical/lasem/src/lsmdom.h +43 -0
  66. data/ext/mathematical/lasem/src/lsmdomcharacterdata.c +131 -0
  67. data/ext/mathematical/lasem/src/lsmdomcharacterdata.h +59 -0
  68. data/ext/mathematical/lasem/src/lsmdomdocument.c +272 -0
  69. data/ext/mathematical/lasem/src/lsmdomdocument.h +75 -0
  70. data/ext/mathematical/lasem/src/lsmdomdocumentfragment.c +81 -0
  71. data/ext/mathematical/lasem/src/lsmdomdocumentfragment.h +55 -0
  72. data/ext/mathematical/lasem/src/lsmdomelement.c +148 -0
  73. data/ext/mathematical/lasem/src/lsmdomelement.h +62 -0
  74. data/ext/mathematical/lasem/src/lsmdomentities.c +2166 -0
  75. data/ext/mathematical/lasem/src/lsmdomentities.h +35 -0
  76. data/ext/mathematical/lasem/src/lsmdomimplementation.c +82 -0
  77. data/ext/mathematical/lasem/src/lsmdomimplementation.h +41 -0
  78. data/ext/mathematical/lasem/src/lsmdomnamednodemap.c +118 -0
  79. data/ext/mathematical/lasem/src/lsmdomnamednodemap.h +64 -0
  80. data/ext/mathematical/lasem/src/lsmdomnode.c +737 -0
  81. data/ext/mathematical/lasem/src/lsmdomnode.h +122 -0
  82. data/ext/mathematical/lasem/src/lsmdomnodelist.c +70 -0
  83. data/ext/mathematical/lasem/src/lsmdomnodelist.h +58 -0
  84. data/ext/mathematical/lasem/src/lsmdomparser.c +523 -0
  85. data/ext/mathematical/lasem/src/lsmdomparser.h +54 -0
  86. data/ext/mathematical/lasem/src/lsmdomtext.c +82 -0
  87. data/ext/mathematical/lasem/src/lsmdomtext.h +55 -0
  88. data/ext/mathematical/lasem/src/lsmdomtypes.h +44 -0
  89. data/ext/mathematical/lasem/src/lsmdomview.c +423 -0
  90. data/ext/mathematical/lasem/src/lsmdomview.h +94 -0
  91. data/ext/mathematical/lasem/src/lsmitex.c +79 -0
  92. data/ext/mathematical/lasem/src/lsmitex.h +36 -0
  93. data/ext/mathematical/lasem/src/lsmmathml.h +66 -0
  94. data/ext/mathematical/lasem/src/lsmmathmlactionelement.c +93 -0
  95. data/ext/mathematical/lasem/src/lsmmathmlactionelement.h +57 -0
  96. data/ext/mathematical/lasem/src/lsmmathmlaligngroupelement.c +102 -0
  97. data/ext/mathematical/lasem/src/lsmmathmlaligngroupelement.h +56 -0
  98. data/ext/mathematical/lasem/src/lsmmathmlalignmarkelement.c +102 -0
  99. data/ext/mathematical/lasem/src/lsmmathmlalignmarkelement.h +56 -0
  100. data/ext/mathematical/lasem/src/lsmmathmlattributes.c +219 -0
  101. data/ext/mathematical/lasem/src/lsmmathmlattributes.h +126 -0
  102. data/ext/mathematical/lasem/src/lsmmathmldocument.c +307 -0
  103. data/ext/mathematical/lasem/src/lsmmathmldocument.h +61 -0
  104. data/ext/mathematical/lasem/src/lsmmathmlelement.c +491 -0
  105. data/ext/mathematical/lasem/src/lsmmathmlelement.h +107 -0
  106. data/ext/mathematical/lasem/src/lsmmathmlencloseelement.c +142 -0
  107. data/ext/mathematical/lasem/src/lsmmathmlencloseelement.h +64 -0
  108. data/ext/mathematical/lasem/src/lsmmathmlenums.c +500 -0
  109. data/ext/mathematical/lasem/src/lsmmathmlenums.h +224 -0
  110. data/ext/mathematical/lasem/src/lsmmathmlerrorelement.c +58 -0
  111. data/ext/mathematical/lasem/src/lsmmathmlerrorelement.h +56 -0
  112. data/ext/mathematical/lasem/src/lsmmathmlfencedelement.c +180 -0
  113. data/ext/mathematical/lasem/src/lsmmathmlfencedelement.h +65 -0
  114. data/ext/mathematical/lasem/src/lsmmathmlfractionelement.c +253 -0
  115. data/ext/mathematical/lasem/src/lsmmathmlfractionelement.h +62 -0
  116. data/ext/mathematical/lasem/src/lsmmathmlglyphtableams.c +661 -0
  117. data/ext/mathematical/lasem/src/lsmmathmlglyphtableams.h +45 -0
  118. data/ext/mathematical/lasem/src/lsmmathmlitexelement.c +189 -0
  119. data/ext/mathematical/lasem/src/lsmmathmlitexelement.h +60 -0
  120. data/ext/mathematical/lasem/src/lsmmathmllayoututils.c +191 -0
  121. data/ext/mathematical/lasem/src/lsmmathmllayoututils.h +58 -0
  122. data/ext/mathematical/lasem/src/lsmmathmlmathelement.c +212 -0
  123. data/ext/mathematical/lasem/src/lsmmathmlmathelement.h +81 -0
  124. data/ext/mathematical/lasem/src/lsmmathmloperatordictionary.c +3342 -0
  125. data/ext/mathematical/lasem/src/lsmmathmloperatordictionary.h +55 -0
  126. data/ext/mathematical/lasem/src/lsmmathmloperatorelement.c +314 -0
  127. data/ext/mathematical/lasem/src/lsmmathmloperatorelement.h +73 -0
  128. data/ext/mathematical/lasem/src/lsmmathmlpaddedelement.c +137 -0
  129. data/ext/mathematical/lasem/src/lsmmathmlpaddedelement.h +61 -0
  130. data/ext/mathematical/lasem/src/lsmmathmlphantomelement.c +71 -0
  131. data/ext/mathematical/lasem/src/lsmmathmlphantomelement.h +56 -0
  132. data/ext/mathematical/lasem/src/lsmmathmlpresentationcontainer.c +43 -0
  133. data/ext/mathematical/lasem/src/lsmmathmlpresentationcontainer.h +54 -0
  134. data/ext/mathematical/lasem/src/lsmmathmlpresentationtoken.c +303 -0
  135. data/ext/mathematical/lasem/src/lsmmathmlpresentationtoken.h +83 -0
  136. data/ext/mathematical/lasem/src/lsmmathmlradicalelement.c +266 -0
  137. data/ext/mathematical/lasem/src/lsmmathmlradicalelement.h +71 -0
  138. data/ext/mathematical/lasem/src/lsmmathmlrowelement.c +58 -0
  139. data/ext/mathematical/lasem/src/lsmmathmlrowelement.h +56 -0
  140. data/ext/mathematical/lasem/src/lsmmathmlscriptelement.c +282 -0
  141. data/ext/mathematical/lasem/src/lsmmathmlscriptelement.h +78 -0
  142. data/ext/mathematical/lasem/src/lsmmathmlsemanticselement.c +84 -0
  143. data/ext/mathematical/lasem/src/lsmmathmlsemanticselement.h +56 -0
  144. data/ext/mathematical/lasem/src/lsmmathmlspaceelement.c +156 -0
  145. data/ext/mathematical/lasem/src/lsmmathmlspaceelement.h +60 -0
  146. data/ext/mathematical/lasem/src/lsmmathmlstringelement.c +123 -0
  147. data/ext/mathematical/lasem/src/lsmmathmlstringelement.h +58 -0
  148. data/ext/mathematical/lasem/src/lsmmathmlstyle.c +130 -0
  149. data/ext/mathematical/lasem/src/lsmmathmlstyle.h +89 -0
  150. data/ext/mathematical/lasem/src/lsmmathmlstyleelement.c +391 -0
  151. data/ext/mathematical/lasem/src/lsmmathmlstyleelement.h +94 -0
  152. data/ext/mathematical/lasem/src/lsmmathmltablecellelement.c +122 -0
  153. data/ext/mathematical/lasem/src/lsmmathmltablecellelement.h +62 -0
  154. data/ext/mathematical/lasem/src/lsmmathmltableelement.c +572 -0
  155. data/ext/mathematical/lasem/src/lsmmathmltableelement.h +78 -0
  156. data/ext/mathematical/lasem/src/lsmmathmltablerowelement.c +120 -0
  157. data/ext/mathematical/lasem/src/lsmmathmltablerowelement.h +64 -0
  158. data/ext/mathematical/lasem/src/lsmmathmltraits.c +867 -0
  159. data/ext/mathematical/lasem/src/lsmmathmltraits.h +129 -0
  160. data/ext/mathematical/lasem/src/lsmmathmltypes.h +67 -0
  161. data/ext/mathematical/lasem/src/lsmmathmlunderoverelement.c +485 -0
  162. data/ext/mathematical/lasem/src/lsmmathmlunderoverelement.h +82 -0
  163. data/ext/mathematical/lasem/src/lsmmathmlutils.c +170 -0
  164. data/ext/mathematical/lasem/src/lsmmathmlutils.h +57 -0
  165. data/ext/mathematical/lasem/src/lsmmathmlview.c +1343 -0
  166. data/ext/mathematical/lasem/src/lsmmathmlview.h +179 -0
  167. data/ext/mathematical/lasem/src/lsmmisc.c +15 -0
  168. data/ext/mathematical/lasem/src/lsmmisc.h +32 -0
  169. data/ext/mathematical/lasem/src/lsmproperties.c +415 -0
  170. data/ext/mathematical/lasem/src/lsmproperties.h +85 -0
  171. data/ext/mathematical/lasem/src/lsmstr.c +231 -0
  172. data/ext/mathematical/lasem/src/lsmstr.h +114 -0
  173. data/ext/mathematical/lasem/src/lsmsvg.h +67 -0
  174. data/ext/mathematical/lasem/src/lsmsvgaelement.c +73 -0
  175. data/ext/mathematical/lasem/src/lsmsvgaelement.h +55 -0
  176. data/ext/mathematical/lasem/src/lsmsvgattributes.h +168 -0
  177. data/ext/mathematical/lasem/src/lsmsvgcircleelement.c +153 -0
  178. data/ext/mathematical/lasem/src/lsmsvgcircleelement.h +59 -0
  179. data/ext/mathematical/lasem/src/lsmsvgclippathelement.c +134 -0
  180. data/ext/mathematical/lasem/src/lsmsvgclippathelement.h +59 -0
  181. data/ext/mathematical/lasem/src/lsmsvgcolors.c +212 -0
  182. data/ext/mathematical/lasem/src/lsmsvgcolors.h +39 -0
  183. data/ext/mathematical/lasem/src/lsmsvgdefselement.c +74 -0
  184. data/ext/mathematical/lasem/src/lsmsvgdefselement.h +55 -0
  185. data/ext/mathematical/lasem/src/lsmsvgdocument.c +306 -0
  186. data/ext/mathematical/lasem/src/lsmsvgdocument.h +64 -0
  187. data/ext/mathematical/lasem/src/lsmsvgelement.c +371 -0
  188. data/ext/mathematical/lasem/src/lsmsvgelement.h +80 -0
  189. data/ext/mathematical/lasem/src/lsmsvgellipseelement.c +158 -0
  190. data/ext/mathematical/lasem/src/lsmsvgellipseelement.h +60 -0
  191. data/ext/mathematical/lasem/src/lsmsvgenums.c +674 -0
  192. data/ext/mathematical/lasem/src/lsmsvgenums.h +416 -0
  193. data/ext/mathematical/lasem/src/lsmsvgfilterblend.c +105 -0
  194. data/ext/mathematical/lasem/src/lsmsvgfilterblend.h +58 -0
  195. data/ext/mathematical/lasem/src/lsmsvgfiltercolormatrix.c +115 -0
  196. data/ext/mathematical/lasem/src/lsmsvgfiltercolormatrix.h +58 -0
  197. data/ext/mathematical/lasem/src/lsmsvgfiltercomposite.c +109 -0
  198. data/ext/mathematical/lasem/src/lsmsvgfiltercomposite.h +58 -0
  199. data/ext/mathematical/lasem/src/lsmsvgfilterconvolvematrix.c +206 -0
  200. data/ext/mathematical/lasem/src/lsmsvgfilterconvolvematrix.h +64 -0
  201. data/ext/mathematical/lasem/src/lsmsvgfilterdisplacementmap.c +124 -0
  202. data/ext/mathematical/lasem/src/lsmsvgfilterdisplacementmap.h +60 -0
  203. data/ext/mathematical/lasem/src/lsmsvgfilterelement.c +266 -0
  204. data/ext/mathematical/lasem/src/lsmsvgfilterelement.h +66 -0
  205. data/ext/mathematical/lasem/src/lsmsvgfilterflood.c +86 -0
  206. data/ext/mathematical/lasem/src/lsmsvgfilterflood.h +55 -0
  207. data/ext/mathematical/lasem/src/lsmsvgfiltergaussianblur.c +114 -0
  208. data/ext/mathematical/lasem/src/lsmsvgfiltergaussianblur.h +57 -0
  209. data/ext/mathematical/lasem/src/lsmsvgfilterimage.c +169 -0
  210. data/ext/mathematical/lasem/src/lsmsvgfilterimage.h +61 -0
  211. data/ext/mathematical/lasem/src/lsmsvgfiltermerge.c +98 -0
  212. data/ext/mathematical/lasem/src/lsmsvgfiltermerge.h +55 -0
  213. data/ext/mathematical/lasem/src/lsmsvgfiltermergenode.c +87 -0
  214. data/ext/mathematical/lasem/src/lsmsvgfiltermergenode.h +57 -0
  215. data/ext/mathematical/lasem/src/lsmsvgfiltermorphology.c +116 -0
  216. data/ext/mathematical/lasem/src/lsmsvgfiltermorphology.h +58 -0
  217. data/ext/mathematical/lasem/src/lsmsvgfilteroffset.c +112 -0
  218. data/ext/mathematical/lasem/src/lsmsvgfilteroffset.h +58 -0
  219. data/ext/mathematical/lasem/src/lsmsvgfilterprimitive.c +168 -0
  220. data/ext/mathematical/lasem/src/lsmsvgfilterprimitive.h +66 -0
  221. data/ext/mathematical/lasem/src/lsmsvgfilterspecularlighting.c +134 -0
  222. data/ext/mathematical/lasem/src/lsmsvgfilterspecularlighting.h +60 -0
  223. data/ext/mathematical/lasem/src/lsmsvgfiltersurface.c +1540 -0
  224. data/ext/mathematical/lasem/src/lsmsvgfiltersurface.h +92 -0
  225. data/ext/mathematical/lasem/src/lsmsvgfiltertile.c +102 -0
  226. data/ext/mathematical/lasem/src/lsmsvgfiltertile.h +57 -0
  227. data/ext/mathematical/lasem/src/lsmsvgfilterturbulence.c +142 -0
  228. data/ext/mathematical/lasem/src/lsmsvgfilterturbulence.h +61 -0
  229. data/ext/mathematical/lasem/src/lsmsvggelement.c +73 -0
  230. data/ext/mathematical/lasem/src/lsmsvggelement.h +55 -0
  231. data/ext/mathematical/lasem/src/lsmsvggradientelement.c +151 -0
  232. data/ext/mathematical/lasem/src/lsmsvggradientelement.h +68 -0
  233. data/ext/mathematical/lasem/src/lsmsvgimageelement.c +261 -0
  234. data/ext/mathematical/lasem/src/lsmsvgimageelement.h +67 -0
  235. data/ext/mathematical/lasem/src/lsmsvglength.c +152 -0
  236. data/ext/mathematical/lasem/src/lsmsvglength.h +65 -0
  237. data/ext/mathematical/lasem/src/lsmsvglineargradientelement.c +271 -0
  238. data/ext/mathematical/lasem/src/lsmsvglineargradientelement.h +60 -0
  239. data/ext/mathematical/lasem/src/lsmsvglineelement.c +153 -0
  240. data/ext/mathematical/lasem/src/lsmsvglineelement.h +60 -0
  241. data/ext/mathematical/lasem/src/lsmsvgmarkerelement.c +266 -0
  242. data/ext/mathematical/lasem/src/lsmsvgmarkerelement.h +74 -0
  243. data/ext/mathematical/lasem/src/lsmsvgmaskelement.c +232 -0
  244. data/ext/mathematical/lasem/src/lsmsvgmaskelement.h +64 -0
  245. data/ext/mathematical/lasem/src/lsmsvgmatrix.c +221 -0
  246. data/ext/mathematical/lasem/src/lsmsvgmatrix.h +60 -0
  247. data/ext/mathematical/lasem/src/lsmsvgpathelement.c +115 -0
  248. data/ext/mathematical/lasem/src/lsmsvgpathelement.h +59 -0
  249. data/ext/mathematical/lasem/src/lsmsvgpatternelement.c +398 -0
  250. data/ext/mathematical/lasem/src/lsmsvgpatternelement.h +69 -0
  251. data/ext/mathematical/lasem/src/lsmsvgpolygonelement.c +106 -0
  252. data/ext/mathematical/lasem/src/lsmsvgpolygonelement.h +57 -0
  253. data/ext/mathematical/lasem/src/lsmsvgpolylineelement.c +106 -0
  254. data/ext/mathematical/lasem/src/lsmsvgpolylineelement.h +57 -0
  255. data/ext/mathematical/lasem/src/lsmsvgradialgradientelement.c +323 -0
  256. data/ext/mathematical/lasem/src/lsmsvgradialgradientelement.h +61 -0
  257. data/ext/mathematical/lasem/src/lsmsvgrectelement.c +184 -0
  258. data/ext/mathematical/lasem/src/lsmsvgrectelement.h +62 -0
  259. data/ext/mathematical/lasem/src/lsmsvgstopelement.c +106 -0
  260. data/ext/mathematical/lasem/src/lsmsvgstopelement.h +57 -0
  261. data/ext/mathematical/lasem/src/lsmsvgstyle.c +546 -0
  262. data/ext/mathematical/lasem/src/lsmsvgstyle.h +217 -0
  263. data/ext/mathematical/lasem/src/lsmsvgsvgelement.c +266 -0
  264. data/ext/mathematical/lasem/src/lsmsvgsvgelement.h +71 -0
  265. data/ext/mathematical/lasem/src/lsmsvgswitchelement.c +103 -0
  266. data/ext/mathematical/lasem/src/lsmsvgswitchelement.h +55 -0
  267. data/ext/mathematical/lasem/src/lsmsvgsymbolelement.c +148 -0
  268. data/ext/mathematical/lasem/src/lsmsvgsymbolelement.h +58 -0
  269. data/ext/mathematical/lasem/src/lsmsvgtextelement.c +203 -0
  270. data/ext/mathematical/lasem/src/lsmsvgtextelement.h +60 -0
  271. data/ext/mathematical/lasem/src/lsmsvgtraits.c +1490 -0
  272. data/ext/mathematical/lasem/src/lsmsvgtraits.h +122 -0
  273. data/ext/mathematical/lasem/src/lsmsvgtransformable.c +106 -0
  274. data/ext/mathematical/lasem/src/lsmsvgtransformable.h +54 -0
  275. data/ext/mathematical/lasem/src/lsmsvgtspanelement.c +174 -0
  276. data/ext/mathematical/lasem/src/lsmsvgtspanelement.h +60 -0
  277. data/ext/mathematical/lasem/src/lsmsvgtypes.h +83 -0
  278. data/ext/mathematical/lasem/src/lsmsvguseelement.c +238 -0
  279. data/ext/mathematical/lasem/src/lsmsvguseelement.h +69 -0
  280. data/ext/mathematical/lasem/src/lsmsvgview.c +2797 -0
  281. data/ext/mathematical/lasem/src/lsmsvgview.h +203 -0
  282. data/ext/mathematical/lasem/src/lsmtraits.c +171 -0
  283. data/ext/mathematical/lasem/src/lsmtraits.h +51 -0
  284. data/ext/mathematical/lasem/src/lsmtypes.h +36 -0
  285. data/ext/mathematical/lasem/src/lsmutils.c +54 -0
  286. data/ext/mathematical/lasem/src/lsmutils.h +56 -0
  287. data/ext/mathematical/lasem/src/meson.build +321 -0
  288. data/ext/mathematical/lasem/subprojects/gi-docgen.wrap +6 -0
  289. data/ext/mathematical/lasem/tests/data/mathml/gtkmathview/README +5 -0
  290. data/ext/mathematical/lasem/tests/data/mathml/tex/fractions/fraction-02.tex +1 -0
  291. data/ext/mathematical/lasem/tests/data/mathml/tex/fractions/fraction-03-inline.tex +1 -0
  292. data/ext/mathematical/lasem/tests/data/mathml/tex/fractions/fraction-03.tex +1 -0
  293. data/ext/mathematical/lasem/tests/data/mathml/tex/fractions/fraction.tex +1 -0
  294. data/ext/mathematical/lasem/tests/data/mathml/tex/integrals/closed.tex +1 -0
  295. data/ext/mathematical/lasem/tests/data/mathml/tex/integrals/multiples.tex +1 -0
  296. data/ext/mathematical/lasem/tests/data/mathml/tex/integrals/standard.tex +1 -0
  297. data/ext/mathematical/lasem/tests/data/mathml/tex/matrices/matrix-01.tex +5 -0
  298. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/array.tex +3 -0
  299. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/cases-cr.tex +7 -0
  300. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/cases-space.tex +7 -0
  301. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/cases.tex +7 -0
  302. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/color.tex +1 -0
  303. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/complex-2.tex +1 -0
  304. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/complex-inline.tex +7 -0
  305. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/complex.tex +7 -0
  306. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/quadratic-inline.tex +1 -0
  307. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/quadratic.tex +1 -0
  308. data/ext/mathematical/lasem/tests/data/mathml/tex/radicals/radical-01.tex +1 -0
  309. data/ext/mathematical/lasem/tests/data/mathml/tex/radicals/radical-02.tex +1 -0
  310. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/accents.tex +1 -0
  311. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/script.tex +1 -0
  312. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/stack.tex +1 -0
  313. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/subscript.tex +1 -0
  314. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/sums-inline.tex +1 -0
  315. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/sums.tex +1 -0
  316. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/superscript-inline.tex +1 -0
  317. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/superscript.tex +1 -0
  318. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/bmpCursor.bmp +0 -0
  319. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/brushedMetal.jpg +0 -0
  320. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/jpeg.jpg +0 -0
  321. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/jpegCursor.jpg +0 -0
  322. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/operaBridge.jpg +0 -0
  323. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/operaSteps.jpg +0 -0
  324. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/operaWalk.jpg +0 -0
  325. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/sm_colors.tif +0 -0
  326. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/sm_colors_pb.tif +0 -0
  327. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/sm_colors_pb_tile.tif +0 -0
  328. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/sm_colors_tile.tif +0 -0
  329. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/tde.jpg +0 -0
  330. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/tiffCursor.tif +0 -0
  331. data/ext/mathematical/lasem/tests/data/svg/svg1.1/images/image1.jpg +0 -0
  332. data/ext/mathematical/lasem/tests/data/svg/svg1.1/images/struct-image-01.jpg +0 -0
  333. data/ext/mathematical/lasem/tests/data/svg/svg1.1/images/struct-image-02.jpg +0 -0
  334. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/CNN.3gp +0 -0
  335. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/SVG-1.1-monolithic-fixed.dtd +1622 -0
  336. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/TraitAccess.common.es +672 -0
  337. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/advice.wav +0 -0
  338. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/beep.wav +0 -0
  339. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/boing_x.wav +0 -0
  340. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/clock.mp4 +0 -0
  341. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud-ps411q4app.jpg +0 -0
  342. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q25s.jpg +0 -0
  343. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q65float.jpg +0 -0
  344. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q75o.jpg +0 -0
  345. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q75p.jpg +0 -0
  346. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q75s.jpg +0 -0
  347. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud444q65o.jpg +0 -0
  348. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloudgsq75s.jpg +0 -0
  349. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloudoddq65o.jpg +0 -0
  350. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloudqllo.jpg +0 -0
  351. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/copyright-documents-19990405.html +89 -0
  352. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/disco.jpg +0 -0
  353. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/dogandball.3gp +0 -0
  354. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/dogandball.jpg +0 -0
  355. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/dogandball.mov +0 -0
  356. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/duckfeeding.3gp +0 -0
  357. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/duckfeeding.mov +0 -0
  358. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/excuse_me.wav +0 -0
  359. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/externalscript.js +1 -0
  360. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton.jpg +0 -0
  361. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton1.jpg +0 -0
  362. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton2.jpg +0 -0
  363. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton3.jpg +0 -0
  364. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton4.jpg +0 -0
  365. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/heroesLanding.3gp +0 -0
  366. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/image1.jpg +0 -0
  367. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/image2_b.jpg +0 -0
  368. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/myimage.jpg +0 -0
  369. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pacman.wav +0 -0
  370. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/plant.jpg +0 -0
  371. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image0.jpg +0 -0
  372. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image1.jpg +0 -0
  373. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image2.jpg +0 -0
  374. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image3.jpg +0 -0
  375. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image4.jpg +0 -0
  376. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image5.jpg +0 -0
  377. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image6.jpg +0 -0
  378. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image7.jpg +0 -0
  379. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image8.jpg +0 -0
  380. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image9.jpg +0 -0
  381. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script1.js +1 -0
  382. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script10.js +1 -0
  383. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script2.js +1 -0
  384. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script3.js +1 -0
  385. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script4.js +1 -0
  386. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script5.js +1 -0
  387. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script6.js +1 -0
  388. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script7.js +1 -0
  389. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script8.js +1 -0
  390. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script9.js +1 -0
  391. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/skier.3gp +0 -0
  392. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/skier.jpg +0 -0
  393. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/struct-image-01.jpg +0 -0
  394. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/struct-image-02.jpg +0 -0
  395. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/svgRef4.css +4 -0
  396. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/welcome.wav +0 -0
  397. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/xmltree.xml +4 -0
  398. data/ext/mathematical/lasem/tests/dom.c +266 -0
  399. data/ext/mathematical/lasem/tests/filter.c +153 -0
  400. data/ext/mathematical/lasem/tests/fuzztest.sh +12 -0
  401. data/ext/mathematical/lasem/tests/lasem.supp +185 -0
  402. data/ext/mathematical/lasem/tests/lsmtest.c +592 -0
  403. data/ext/mathematical/lasem/tests/meson.build +39 -0
  404. data/ext/mathematical/lasem/tests/str.c +44 -0
  405. data/ext/mathematical/lasem/tests/suite.c +140 -0
  406. data/ext/mathematical/lasem/tests/suite.ini +27 -0
  407. data/ext/mathematical/lasem/tools/change-license +3 -0
  408. data/ext/mathematical/lasem/tools/charlist.dtd +73 -0
  409. data/ext/mathematical/lasem/tools/entities-to-c.xsl +1067 -0
  410. data/ext/mathematical/lasem/tools/fuzzxml +243 -0
  411. data/ext/mathematical/lasem/tools/generate-entity-array.c +2136 -0
  412. data/ext/mathematical/lasem/tools/unicode.xml +44303 -0
  413. data/ext/mathematical/lasem/viewer/meson.build +17 -0
  414. data/ext/mathematical/lasem/viewer/viewer.c +248 -0
  415. data/ext/mathematical/mtex2MML/CMakeLists.txt +255 -0
  416. data/ext/mathematical/mtex2MML/CONTRIBUTING.md +22 -0
  417. data/ext/mathematical/mtex2MML/README.md +143 -0
  418. data/ext/mathematical/mtex2MML/SUPPORTED.md +1216 -0
  419. data/ext/mathematical/mtex2MML/appveyor.yml +35 -0
  420. data/ext/mathematical/mtex2MML/cmake/Modules/astyle.cmake +12 -0
  421. data/ext/mathematical/mtex2MML/deps/uthash/package.json +27 -0
  422. data/ext/mathematical/mtex2MML/deps/uthash/utarray.h +239 -0
  423. data/ext/mathematical/mtex2MML/deps/uthash/uthash.h +1074 -0
  424. data/ext/mathematical/mtex2MML/deps/uthash/utlist.h +895 -0
  425. data/ext/mathematical/mtex2MML/deps/uthash/utringbuffer.h +108 -0
  426. data/ext/mathematical/mtex2MML/deps/uthash/utstring.h +398 -0
  427. data/ext/mathematical/mtex2MML/script/bootstrap +39 -0
  428. data/ext/mathematical/mtex2MML/script/cibuild +58 -0
  429. data/ext/mathematical/mtex2MML/script/tag +28 -0
  430. data/ext/mathematical/mtex2MML/src/colors.c +44 -0
  431. data/ext/mathematical/mtex2MML/src/colors.h +23 -0
  432. data/ext/mathematical/mtex2MML/src/em.c +99 -0
  433. data/ext/mathematical/mtex2MML/src/em.h +31 -0
  434. data/ext/mathematical/mtex2MML/src/environment.c +515 -0
  435. data/ext/mathematical/mtex2MML/src/environment.h +85 -0
  436. data/ext/mathematical/mtex2MML/src/lexer.l +1594 -0
  437. data/ext/mathematical/mtex2MML/src/libmtex2MML.pc.in +10 -0
  438. data/ext/mathematical/mtex2MML/src/main.c +187 -0
  439. data/ext/mathematical/mtex2MML/src/mtex2MML.h +89 -0
  440. data/ext/mathematical/mtex2MML/src/parser.y +3817 -0
  441. data/ext/mathematical/mtex2MML/src/string_dup.c +23 -0
  442. data/ext/mathematical/mtex2MML/src/string_dup.h +23 -0
  443. data/ext/mathematical/mtex2MML/src/string_extras.c +47 -0
  444. data/ext/mathematical/mtex2MML/src/string_extras.h +30 -0
  445. data/ext/mathematical/mtex2MML/src/win32-shims/unistd.h +51 -0
  446. data/ext/mathematical/mtex2MML/tests/array.c +127 -0
  447. data/ext/mathematical/mtex2MML/tests/basic.c +96 -0
  448. data/ext/mathematical/mtex2MML/tests/clar/fixtures.h +38 -0
  449. data/ext/mathematical/mtex2MML/tests/clar/fs.h +335 -0
  450. data/ext/mathematical/mtex2MML/tests/clar/print.h +66 -0
  451. data/ext/mathematical/mtex2MML/tests/clar/sandbox.h +141 -0
  452. data/ext/mathematical/mtex2MML/tests/clar.c +644 -0
  453. data/ext/mathematical/mtex2MML/tests/clar.h +163 -0
  454. data/ext/mathematical/mtex2MML/tests/clar_test.h +20 -0
  455. data/ext/mathematical/mtex2MML/tests/cornercases.c +46 -0
  456. data/ext/mathematical/mtex2MML/tests/debug/mtex2MML_debug.cc +21 -0
  457. data/ext/mathematical/mtex2MML/tests/delimiters.c +242 -0
  458. data/ext/mathematical/mtex2MML/tests/deps/file2str/file2str.c +62 -0
  459. data/ext/mathematical/mtex2MML/tests/deps/file2str/file2str.h +12 -0
  460. data/ext/mathematical/mtex2MML/tests/deps/file2str/package.json +9 -0
  461. data/ext/mathematical/mtex2MML/tests/deps/mkdtemp/mkdtemp.c +151 -0
  462. data/ext/mathematical/mtex2MML/tests/deps/mkdtemp/mkdtemp.h +10 -0
  463. data/ext/mathematical/mtex2MML/tests/deps/trim/package.json +7 -0
  464. data/ext/mathematical/mtex2MML/tests/deps/trim/trim.c +27 -0
  465. data/ext/mathematical/mtex2MML/tests/deps/trim/trim.h +7 -0
  466. data/ext/mathematical/mtex2MML/tests/env.c +334 -0
  467. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/amscd-1.html +86 -0
  468. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/amscd-2.html +148 -0
  469. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/amscd-3.html +188 -0
  470. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/arrows-2.html +156 -0
  471. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/min-1.html +45 -0
  472. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/min-2.html +35 -0
  473. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/accents-1.html +16 -0
  474. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/accents-2.html +3 -0
  475. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/accents-3.html +5 -0
  476. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/buildrel-1.html +3 -0
  477. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/issue490.html +0 -0
  478. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/issue877.html +3 -0
  479. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/issue937.html +3 -0
  480. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/overbrace-1.html +3 -0
  481. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/overbracket-1.html +3 -0
  482. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/overset-1.html +3 -0
  483. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/sideset-1.html +5 -0
  484. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/stackrel-1.html +3 -0
  485. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/subarray-1.html +1 -0
  486. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/substack-1.html +3 -0
  487. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/underbrace-1.html +3 -0
  488. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/underbracket-1.html +3 -0
  489. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/underset-1.html +3 -0
  490. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/action/mathtip-1.html +6 -0
  491. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/action/texttip-1.html +6 -0
  492. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/action/toggle-1.html +7 -0
  493. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/Newextarrow-1.html +10 -0
  494. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-1.html +34 -0
  495. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-2.html +30 -0
  496. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-3.html +9 -0
  497. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-4.html +13 -0
  498. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-5.html +7 -0
  499. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathbin-1.html +7 -0
  500. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathinner-1.html +3 -0
  501. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathop-1a.html +3 -0
  502. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathop-1b.html +5 -0
  503. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathop-2.html +5 -0
  504. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathopenclose-1.html +3 -0
  505. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathord-1.html +3 -0
  506. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathpunct-1.html +3 -0
  507. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathrel-1.html +3 -0
  508. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/basic-operators/backslashed-1.html +16 -0
  509. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/basic-operators/basic-operators-1.html +3 -0
  510. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/basic-operators/basic-operators-2.html +25 -0
  511. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/basic-operators/remap-1.html +5 -0
  512. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/color-1.html +3 -0
  513. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/colorbox-1.html +3 -0
  514. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/definecolor-1.html +37 -0
  515. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/definecolor-2.html +79 -0
  516. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/fcolorbox-1.html +7 -0
  517. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/issue446.html +5 -0
  518. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/namedcolors-1.html +70 -0
  519. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/big-1.html +3 -0
  520. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/big-2.html +3 -0
  521. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/big-3.html +3 -0
  522. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/delimiters-1.html +3 -0
  523. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/delimiters-2.html +4 -0
  524. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue775.html +3 -0
  525. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-1a.html +6 -0
  526. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-1b.html +6 -0
  527. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-2.html +6 -0
  528. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-3.html +6 -0
  529. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-4.html +6 -0
  530. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-5.html +6 -0
  531. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/left-right-1.html +3 -0
  532. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/align-1a.html +7 -0
  533. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/align-1b.html +7 -0
  534. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/alignat-1a.html +6 -0
  535. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/alignat-1b.html +6 -0
  536. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/aligned-1.html +9 -0
  537. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/aligned-2.html +14 -0
  538. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/alignedat-1.html +8 -0
  539. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqalign-1.html +8 -0
  540. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqalignno-1.html +8 -0
  541. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqnarray-1a.html +7 -0
  542. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqnarray-1b.html +7 -0
  543. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqnarray-2.html +64 -0
  544. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/equation-1.html +5 -0
  545. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/equation-2.html +5 -0
  546. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/gather-1a.html +7 -0
  547. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/gather-1b.html +7 -0
  548. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/gathered-1.html +7 -0
  549. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/gathered-2.html +12 -0
  550. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-1a.html +5 -0
  551. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-1b.html +5 -0
  552. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-2a.html +5 -0
  553. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-2b.html +5 -0
  554. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-3a.html +5 -0
  555. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-3b.html +5 -0
  556. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/leqalignno-1.html +11 -0
  557. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/multline-1a.html +7 -0
  558. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/multline-1b.html +7 -0
  559. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/split-1.html +9 -0
  560. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/errors/noErrors-1.html +5 -0
  561. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/errors/noUndefined-1.html +3 -0
  562. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/above-1.html +3 -0
  563. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/abovewithdelims-1.html +3 -0
  564. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/atop-1.html +3 -0
  565. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/atopwithdelims-1.html +3 -0
  566. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/binom-1.html +3 -0
  567. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/brace-1.html +3 -0
  568. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/brack-1.html +3 -0
  569. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/cfrac-1.html +3 -0
  570. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/choose-1.html +3 -0
  571. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/dbinom-1.html +3 -0
  572. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/dfrac-1.html +3 -0
  573. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/frac-1a.html +3 -0
  574. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/frac-1b.html +3 -0
  575. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/genfrac-1.html +3 -0
  576. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/issue969.html +3 -0
  577. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/overwithdelims-1.html +3 -0
  578. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/tbinom-1.html +3 -0
  579. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/tfrac-1.html +3 -0
  580. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue1152-1.html +1 -0
  581. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue1152-2.html +4 -0
  582. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue375.html +3 -0
  583. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue856.html +3 -0
  584. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue901-1a.html +5 -0
  585. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue901-1b.html +5 -0
  586. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue901-1c.html +5 -0
  587. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue901-1d.html +5 -0
  588. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/boxes-1.html +5 -0
  589. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/kern-1a.html +3 -0
  590. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/kern-1b.html +3 -0
  591. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/llap-1.html +3 -0
  592. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/lower-1.html +4 -0
  593. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/mathstrut-1.html +3 -0
  594. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/moveleft-1.html +3 -0
  595. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/moveright-1.html +3 -0
  596. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/newline-1.html +3 -0
  597. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/phantom-1.html +4 -0
  598. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/raise-1.html +3 -0
  599. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/rlap-1.html +3 -0
  600. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/shove-1.html +19 -0
  601. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/skip-1a.html +3 -0
  602. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/skip-1b.html +3 -0
  603. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/smash-1.html +3 -0
  604. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/spaces-1.html +18 -0
  605. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/strut-1.html +3 -0
  606. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/vcenter-1.html +3 -0
  607. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/greek-1.html +32 -0
  608. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/greek-2.html +13 -0
  609. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/greek-3.html +6 -0
  610. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/greek-4.html +13 -0
  611. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/hebrew-1.html +6 -0
  612. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/begingroup-1.html +15 -0
  613. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/def-1.html +5 -0
  614. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/let-1.html +14 -0
  615. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-1.html +7 -0
  616. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-2.html +25 -0
  617. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-3.html +50 -0
  618. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-5.html +5 -0
  619. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-6.html +7 -0
  620. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-7.html +7 -0
  621. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/Bbb-1.html +3 -0
  622. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/bf-1.html +3 -0
  623. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/boldsymbol-1.html +9 -0
  624. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/cal-1.html +3 -0
  625. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/frak-1.html +3 -0
  626. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/it-1.html +3 -0
  627. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathbb-1.html +3 -0
  628. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathbf-1a.html +3 -0
  629. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathbf-1b.html +3 -0
  630. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathbf-2.html +3 -0
  631. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathcal-1.html +3 -0
  632. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathfrak-1.html +3 -0
  633. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathit-1.html +3 -0
  634. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathrm-1.html +3 -0
  635. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathscr-1.html +3 -0
  636. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathsf-1.html +3 -0
  637. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathtt-1.html +3 -0
  638. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mit-1.html +3 -0
  639. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/pmb-1.html +3 -0
  640. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/rm-1.html +3 -0
  641. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/scr-1.html +3 -0
  642. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/sf-1.html +3 -0
  643. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/text-1.html +3 -0
  644. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/textbf-1.html +3 -0
  645. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/textit-1.html +3 -0
  646. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/textrm-1.html +3 -0
  647. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/textsf-1.html +3 -0
  648. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/texttt-1.html +3 -0
  649. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/tt-1.html +3 -0
  650. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/array-1a.html +7 -0
  651. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/array-1b.html +7 -0
  652. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/array-2.html +3 -0
  653. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/array-3.html +3 -0
  654. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/bmatrix-1.html +7 -0
  655. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/bmatrix-2.html +7 -0
  656. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/matrix-1.html +7 -0
  657. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/matrix-2.html +7 -0
  658. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/pmatrix-1.html +7 -0
  659. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/pmatrix-2.html +8 -0
  660. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/smallmatrix-1.html +3 -0
  661. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/vmatrix-1.html +7 -0
  662. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/vmatrix-2.html +7 -0
  663. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/advanced-1.html +120 -0
  664. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/advanced-2.html +35 -0
  665. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/advanced-3.html +138 -0
  666. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/amounts-1.html +46 -0
  667. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/arrows-1.html +235 -0
  668. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/arrows-2.html +159 -0
  669. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/basics-1.html +139 -0
  670. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/bonds-1.html +256 -0
  671. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/environments-1.html +81 -0
  672. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/isotopes-1.html +30 -0
  673. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/math-1.html +101 -0
  674. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/special_symbols-1.html +176 -0
  675. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/Rule-1.html +5 -0
  676. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/Tiny-1.html +3 -0
  677. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/class-1.html +3 -0
  678. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/cssId-1.html +3 -0
  679. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/href-1.html +3 -0
  680. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/href-2.html +3 -0
  681. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/require-1.html +3 -0
  682. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/style-1.html +3 -0
  683. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/unicode-1.html +8 -0
  684. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/LaTeX-1.html +4 -0
  685. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/bbox-1.html +6 -0
  686. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/boxed-1.html +3 -0
  687. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/cancel-1.html +6 -0
  688. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/cases-1.html +3 -0
  689. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/displaylines-1.html +7 -0
  690. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/enclose-1.html +8 -0
  691. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/functions-1.html +34 -0
  692. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/limits-1.html +5 -0
  693. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/limits-2.html +8 -0
  694. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/limits-3.html +3 -0
  695. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/mathsize-1.html +11 -0
  696. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/mod-1.html +5 -0
  697. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/not-1.html +5 -0
  698. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/pod-1.html +3 -0
  699. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/primes-1.html +8 -0
  700. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/primes-2.html +4 -0
  701. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/primes-3.html +3 -0
  702. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/style-1.html +7 -0
  703. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/style-2.html +0 -0
  704. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/verb-1.html +3 -0
  705. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/verb-2.html +3 -0
  706. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/eqref-1.html +5 -0
  707. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/label-1.html +7 -0
  708. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/label-2.html +1 -0
  709. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/notag-1.html +5 -0
  710. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/ref-1.html +5 -0
  711. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/ref-2.html +5 -0
  712. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/ref-3.html +5 -0
  713. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/root-1.html +3 -0
  714. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/root-2.html +3 -0
  715. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/root-3.html +3 -0
  716. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/sqrt-1.html +3 -0
  717. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/sqrt-2.html +3 -0
  718. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/binaryops-1.html +32 -0
  719. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/dots-1.html +26 -0
  720. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/largeops-1.html +4 -0
  721. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/largeops-2.html +3 -0
  722. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/relations-1.html +39 -0
  723. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-1.html +25 -0
  724. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-2.html +31 -0
  725. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-3.html +40 -0
  726. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-4.html +39 -0
  727. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-5.html +56 -0
  728. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-6.html +49 -0
  729. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/amscd-1.no_tex +8 -0
  730. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/amscd-2.no_tex +13 -0
  731. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/amscd-3.no_tex +23 -0
  732. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/arrows-1.no_tex +23 -0
  733. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/arrows-2.no_tex +26 -0
  734. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/min-1.no_tex +14 -0
  735. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/min-2.no_tex +14 -0
  736. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/accents-1.txt +16 -0
  737. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/accents-2.txt +3 -0
  738. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/accents-3.txt +5 -0
  739. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/buildrel-1.txt +3 -0
  740. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/issue490.no_tex +3 -0
  741. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/issue877.txt +3 -0
  742. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/issue937.txt +3 -0
  743. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/overbrace-1.txt +3 -0
  744. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/overbracket-1.txt +3 -0
  745. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/overset-1.txt +3 -0
  746. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/sideset-1.txt +6 -0
  747. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/stackrel-1.txt +3 -0
  748. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/subarray-1.txt +1 -0
  749. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/substack-1.txt +3 -0
  750. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/underbrace-1.txt +3 -0
  751. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/underbracket-1.txt +3 -0
  752. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/underset-1.txt +3 -0
  753. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/action/mathtip-1.no_tex +2 -0
  754. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/action/texttip-1.no_tex +2 -0
  755. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/action/toggle-1.no_tex +3 -0
  756. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/Newextarrow-1.xtex +4 -0
  757. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-1.txt +34 -0
  758. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-2.txt +30 -0
  759. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-3.txt +9 -0
  760. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-4.txt +13 -0
  761. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-5.txt +7 -0
  762. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathbin-1.no_tex +3 -0
  763. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathinner-1.txt +3 -0
  764. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathop-1a.txt +3 -0
  765. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathop-1b.txt +5 -0
  766. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathop-2.xtex +3 -0
  767. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathopenclose-1.txt +3 -0
  768. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathord-1.txt +3 -0
  769. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathpunct-1.txt +3 -0
  770. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathrel-1.txt +3 -0
  771. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/basic-operators/backslashed-1.txt +16 -0
  772. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/basic-operators/basic-operators-1.txt +3 -0
  773. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/basic-operators/basic-operators-2.xtex +5 -0
  774. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/basic-operators/remap-1.txt +5 -0
  775. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/color-1.txt +3 -0
  776. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/colorbox-1.txt +3 -0
  777. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/definecolor-1a.xtex +7 -0
  778. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/definecolor-1b.xtex +7 -0
  779. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/definecolor-1c.xtex +7 -0
  780. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/definecolor-2.xtex +13 -0
  781. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/fcolorbox-1.xtex +3 -0
  782. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/issue446.xtex +5 -0
  783. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/namedcolors-1.txt +70 -0
  784. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/big-1.txt +3 -0
  785. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/big-2.txt +3 -0
  786. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/big-3.txt +3 -0
  787. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/delimiters-1.txt +3 -0
  788. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/delimiters-2.txt +4 -0
  789. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue775.txt +3 -0
  790. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-1a.txt +6 -0
  791. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-1b.txt +6 -0
  792. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-2.txt +6 -0
  793. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-3.txt +6 -0
  794. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-4.txt +6 -0
  795. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-5.txt +6 -0
  796. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/left-right-1.txt +3 -0
  797. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/align-1a.txt +7 -0
  798. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/align-1b.txt +7 -0
  799. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/alignat-1a.txt +6 -0
  800. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/alignat-1b.txt +6 -0
  801. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/aligned-1.txt +9 -0
  802. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/aligned-2.txt +14 -0
  803. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/alignedat-1.txt +8 -0
  804. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqalign-1.txt +8 -0
  805. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqalignno-1.txt +8 -0
  806. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqnarray-1a.txt +7 -0
  807. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqnarray-1b.txt +7 -0
  808. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqnarray-1c.no_tex +7 -0
  809. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqnarray-2a.no_tex +8 -0
  810. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/equation-1.txt +5 -0
  811. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/equation-2.txt +5 -0
  812. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/gather-1a.txt +7 -0
  813. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/gather-1b.txt +7 -0
  814. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/gathered-1.txt +7 -0
  815. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/gathered-2.txt +12 -0
  816. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-1a.txt +5 -0
  817. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-1b.txt +5 -0
  818. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-2a.txt +5 -0
  819. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-2b.txt +5 -0
  820. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-3a.txt +5 -0
  821. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-3b.txt +5 -0
  822. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/leqalignno-1.xtex +8 -0
  823. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/multline-1a.txt +7 -0
  824. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/multline-1b.txt +7 -0
  825. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/split-1.txt +9 -0
  826. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/errors/noErrors-1.no_tex +3 -0
  827. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/errors/noUndefined-1.no_tex +2 -0
  828. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/above-1.txt +3 -0
  829. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/abovewithdelims-1.txt +3 -0
  830. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/atop-1.txt +3 -0
  831. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/atopwithdelims-1.txt +3 -0
  832. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/binom-1.txt +3 -0
  833. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/brace-1.txt +3 -0
  834. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/brack-1.txt +3 -0
  835. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/cfrac-1.txt +3 -0
  836. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/choose-1.txt +3 -0
  837. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/dbinom-1.txt +3 -0
  838. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/dfrac-1.txt +3 -0
  839. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/frac-1a.txt +3 -0
  840. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/frac-1b.txt +3 -0
  841. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/genfrac-1.txt +3 -0
  842. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/issue969.txt +3 -0
  843. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/overwithdelims-1.txt +3 -0
  844. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/tbinom-1.txt +3 -0
  845. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/tfrac-1.txt +3 -0
  846. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue1151.no_tex +3 -0
  847. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue1152-1.xtex +1 -0
  848. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue1152-2.txt +4 -0
  849. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue375.txt +3 -0
  850. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue856.txt +3 -0
  851. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue901-1a.txt +5 -0
  852. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue901-1b.txt +5 -0
  853. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue901-1c.txt +5 -0
  854. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue901-1d.txt +5 -0
  855. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue903-1.xtex +6 -0
  856. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue903-2.xtex +16 -0
  857. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/boxes-1.txt +5 -0
  858. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/kern-1a.txt +3 -0
  859. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/kern-1b.txt +3 -0
  860. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/llap-1.txt +3 -0
  861. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/lower-1.txt +4 -0
  862. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/mathstrut-1.txt +3 -0
  863. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/moveleft-1.txt +3 -0
  864. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/moveright-1.txt +3 -0
  865. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/newline-1.txt +3 -0
  866. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/phantom-1.txt +4 -0
  867. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/raise-1.txt +3 -0
  868. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/rlap-1.txt +3 -0
  869. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/shove-1.xtex +7 -0
  870. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/skip-1a.txt +3 -0
  871. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/skip-1b.txt +3 -0
  872. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/smash-1.txt +3 -0
  873. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/spaces-1.txt +18 -0
  874. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/strut-1.txt +3 -0
  875. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/vcenter-1.txt +3 -0
  876. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/greek-1.txt +32 -0
  877. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/greek-2.txt +13 -0
  878. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/greek-3.txt +6 -0
  879. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/greek-4.txt +13 -0
  880. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/hebrew-1.txt +6 -0
  881. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/begingroup-1.no_tex +8 -0
  882. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/def-1.no_tex +4 -0
  883. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/let-1.no_tex +5 -0
  884. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-1a.no_tex +3 -0
  885. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-1b.no_tex +3 -0
  886. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-2.no_tex +3 -0
  887. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-3.no_tex +5 -0
  888. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-5.no_tex +3 -0
  889. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-6.no_tex +5 -0
  890. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-7.no_tex +11 -0
  891. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/Bbb-1.txt +3 -0
  892. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/bf-1.txt +3 -0
  893. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/boldsymbol-1.txt +9 -0
  894. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/cal-1.txt +3 -0
  895. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/frak-1.txt +3 -0
  896. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/it-1.txt +3 -0
  897. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathbb-1.txt +3 -0
  898. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathbf-1a.txt +3 -0
  899. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathbf-1b.txt +3 -0
  900. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathbf-2.txt +3 -0
  901. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathcal-1.txt +3 -0
  902. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathfrak-1.txt +3 -0
  903. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathit-1.txt +3 -0
  904. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathrm-1.txt +3 -0
  905. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathscr-1.txt +3 -0
  906. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathsf-1.txt +3 -0
  907. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathtt-1.txt +3 -0
  908. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mit-1.txt +3 -0
  909. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/pmb-1.txt +3 -0
  910. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/rm-1.txt +3 -0
  911. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/scr-1.txt +3 -0
  912. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/sf-1.txt +3 -0
  913. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/text-1.txt +3 -0
  914. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/textbf-1.txt +3 -0
  915. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/textit-1.txt +3 -0
  916. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/textrm-1.txt +3 -0
  917. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/textsf-1.txt +3 -0
  918. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/texttt-1.txt +3 -0
  919. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/tt-1.txt +3 -0
  920. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/array-1a.txt +7 -0
  921. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/array-1b.txt +7 -0
  922. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/array-2.txt +3 -0
  923. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/array-3.txt +3 -0
  924. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/bmatrix-1.txt +7 -0
  925. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/bmatrix-2.txt +7 -0
  926. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/matrix-1.txt +7 -0
  927. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/matrix-2.txt +7 -0
  928. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/pmatrix-1.txt +7 -0
  929. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/pmatrix-2.txt +8 -0
  930. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/smallmatrix-1.txt +3 -0
  931. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/vmatrix-1.txt +7 -0
  932. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/vmatrix-2.txt +7 -0
  933. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/advanced-1.no_tex +8 -0
  934. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/advanced-2.no_tex +3 -0
  935. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/advanced-3.no_tex +7 -0
  936. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/amounts-1.no_tex +4 -0
  937. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/arrows-1.no_tex +10 -0
  938. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/arrows-2.no_tex +9 -0
  939. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/basics-1.no_tex +13 -0
  940. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/bonds-1.no_tex +11 -0
  941. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/environments-1.no_tex +6 -0
  942. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/isotopes-1.no_tex +3 -0
  943. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/math-1.no_tex +4 -0
  944. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/special_symbols-1.no_tex +7 -0
  945. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/Rule-1.no_tex +3 -0
  946. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/Tiny-1.txt +3 -0
  947. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/class-1.no_tex +3 -0
  948. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/cssId-1.no_tex +3 -0
  949. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/href-1.no_tex +3 -0
  950. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/href-2.no_tex +3 -0
  951. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/require-1.no_tex +5 -0
  952. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/style-1.no_tex +3 -0
  953. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/unicode-1.no_tex +3 -0
  954. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/LaTeX-1.txt +4 -0
  955. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/bbox-1.txt +6 -0
  956. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/boxed-1.txt +3 -0
  957. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/cancel-1.txt +6 -0
  958. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/cases-1.txt +3 -0
  959. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/displaylines-1.xtex +8 -0
  960. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/enclose-1.txt +8 -0
  961. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/functions-1.txt +34 -0
  962. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/limits-1.txt +7 -0
  963. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/limits-2.txt +8 -0
  964. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/limits-3.txt +3 -0
  965. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/mathsize-1.txt +11 -0
  966. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/mod-1.txt +5 -0
  967. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/not-1.txt +5 -0
  968. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/pod-1.txt +3 -0
  969. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/primes-1.txt +8 -0
  970. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/primes-2.txt +4 -0
  971. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/primes-3.txt +3 -0
  972. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/style-1.txt +7 -0
  973. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/style-2.no_tex +10 -0
  974. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/verb-1.txt +3 -0
  975. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/verb-2.txt +3 -0
  976. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/eqref-1.no_tex +7 -0
  977. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/label-1.no_tex +3 -0
  978. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/label-2.no_tex +2 -0
  979. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/notag-1.txt +5 -0
  980. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/ref-1a.no_tex +2 -0
  981. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/ref-1b.no_tex +2 -0
  982. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/ref-2.no_tex +2 -0
  983. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/ref-3.no_tex +2 -0
  984. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/tag-1.no_tex +1 -0
  985. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/tag-2.no_tex +1 -0
  986. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/tag-3.no_tex +3 -0
  987. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/tag-4.no_tex +3 -0
  988. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/root-1.txt +3 -0
  989. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/root-2.txt +3 -0
  990. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/root-3.txt +3 -0
  991. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/sqrt-1.txt +3 -0
  992. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/sqrt-2.txt +3 -0
  993. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/binaryops-1.txt +32 -0
  994. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/dots-1.txt +26 -0
  995. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/largeops-1.txt +4 -0
  996. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/largeops-2.txt +3 -0
  997. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/relations-1.txt +39 -0
  998. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-1.txt +25 -0
  999. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-2.txt +31 -0
  1000. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-3.txt +40 -0
  1001. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-4.txt +39 -0
  1002. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-5.txt +56 -0
  1003. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-6.txt +49 -0
  1004. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/TODO.md +3 -0
  1005. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_nesting.html +32 -0
  1006. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_nesting.txt +32 -0
  1007. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_pos_alignment.html +8 -0
  1008. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_pos_alignment.txt +8 -0
  1009. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_pos_alignment_with_hline.html +12 -0
  1010. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_pos_alignment_with_hline.txt +12 -0
  1011. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_vertical_column.html +5 -0
  1012. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_vertical_column.txt +5 -0
  1013. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_vertical_column_with_align.html +5 -0
  1014. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_vertical_column_with_align.txt +5 -0
  1015. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_hline.html +9 -0
  1016. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_hline.txt +9 -0
  1017. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_hline_and_hdashline.html +10 -0
  1018. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_hline_and_hdashline.txt +10 -0
  1019. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_vertical_and_horizontal_dashes.html +10 -0
  1020. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_vertical_and_horizontal_dashes.txt +10 -0
  1021. data/ext/mathematical/mtex2MML/tests/fixtures/array/augmented_matrix.html +6 -0
  1022. data/ext/mathematical/mtex2MML/tests/fixtures/array/augmented_matrix.txt +6 -0
  1023. data/ext/mathematical/mtex2MML/tests/fixtures/array/basic_array.html +5 -0
  1024. data/ext/mathematical/mtex2MML/tests/fixtures/array/basic_array.txt +5 -0
  1025. data/ext/mathematical/mtex2MML/tests/fixtures/array/strip_excess_whitespace_in_array_attributes.html +7 -0
  1026. data/ext/mathematical/mtex2MML/tests/fixtures/array/strip_excess_whitespace_in_array_attributes.txt +8 -0
  1027. data/ext/mathematical/mtex2MML/tests/fixtures/basic/block.html +1 -0
  1028. data/ext/mathematical/mtex2MML/tests/fixtures/basic/block.txt +1 -0
  1029. data/ext/mathematical/mtex2MML/tests/fixtures/basic/comments.html +6 -0
  1030. data/ext/mathematical/mtex2MML/tests/fixtures/basic/comments.txt +6 -0
  1031. data/ext/mathematical/mtex2MML/tests/fixtures/basic/filter.html +1 -0
  1032. data/ext/mathematical/mtex2MML/tests/fixtures/basic/filter.txt +3 -0
  1033. data/ext/mathematical/mtex2MML/tests/fixtures/basic/inline.html +1 -0
  1034. data/ext/mathematical/mtex2MML/tests/fixtures/basic/inline.txt +1 -0
  1035. data/ext/mathematical/mtex2MML/tests/fixtures/basic/strict_filter.html +3 -0
  1036. data/ext/mathematical/mtex2MML/tests/fixtures/basic/strict_filter.txt +3 -0
  1037. data/ext/mathematical/mtex2MML/tests/fixtures/basic/text_filter.html +3 -0
  1038. data/ext/mathematical/mtex2MML/tests/fixtures/basic/text_filter.txt +3 -0
  1039. data/ext/mathematical/mtex2MML/tests/fixtures/basic/text_rendering.html +23 -0
  1040. data/ext/mathematical/mtex2MML/tests/fixtures/basic/text_rendering.txt +23 -0
  1041. data/ext/mathematical/mtex2MML/tests/fixtures/cornercases/broken_up_inline_env.html +3 -0
  1042. data/ext/mathematical/mtex2MML/tests/fixtures/cornercases/broken_up_inline_env.txt +3 -0
  1043. data/ext/mathematical/mtex2MML/tests/fixtures/cornercases/some_crazy_alignment.html +24 -0
  1044. data/ext/mathematical/mtex2MML/tests/fixtures/cornercases/some_crazy_alignment.txt +24 -0
  1045. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/align.html +1 -0
  1046. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/align.txt +3 -0
  1047. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/alignat-1a.html +1 -0
  1048. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/alignat-1a.txt +4 -0
  1049. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/aligned_ex_spacing.html +1 -0
  1050. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/aligned_ex_spacing.txt +4 -0
  1051. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/basic_array.html +1 -0
  1052. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/basic_array.txt +3 -0
  1053. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/brackets.html +1 -0
  1054. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/dollar_spacings_filter.html +2 -0
  1055. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/dollar_spacings_filter.txt +27 -0
  1056. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/dollar_spacings_text_filter.html +27 -0
  1057. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/dollar_spacings_text_filter.txt +27 -0
  1058. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/double_dollar.html +1 -0
  1059. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/escaping.txt +35 -0
  1060. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/escaping_with_brackets.html +35 -0
  1061. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/escaping_with_dollars.html +35 -0
  1062. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/escaping_with_parens.html +35 -0
  1063. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/mixed.html +1 -0
  1064. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/mixed_env.html +8 -0
  1065. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/mixed_env.txt +11 -0
  1066. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/parens.html +1 -0
  1067. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/single_dollar.html +1 -0
  1068. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/single_equation.html +1 -0
  1069. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/single_equation.txt +3 -0
  1070. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_ex_spacing.html +6 -0
  1071. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_ex_spacing.txt +6 -0
  1072. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_no_ex_spacing.html +6 -0
  1073. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_no_ex_spacing.txt +6 -0
  1074. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_no_lines.html +5 -0
  1075. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_no_lines.txt +5 -0
  1076. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_ex_spacing.html +5 -0
  1077. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_ex_spacing.txt +5 -0
  1078. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_no_ex_spacing.html +5 -0
  1079. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_no_ex_spacing.txt +5 -0
  1080. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_no_lines.html +4 -0
  1081. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_no_lines.txt +4 -0
  1082. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_ex_spacing.html +5 -0
  1083. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_ex_spacing.txt +5 -0
  1084. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_no_ex_spacing.html +5 -0
  1085. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_no_ex_spacing.txt +5 -0
  1086. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_no_lines.html +4 -0
  1087. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_no_lines.txt +4 -0
  1088. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_ex_spacing.html +7 -0
  1089. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_ex_spacing.txt +7 -0
  1090. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_no_ex_spacing.html +7 -0
  1091. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_no_ex_spacing.txt +7 -0
  1092. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_no_lines.html +6 -0
  1093. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_no_lines.txt +6 -0
  1094. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_ex_spacing.html +6 -0
  1095. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_ex_spacing.txt +6 -0
  1096. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_no_ex_spacing.html +6 -0
  1097. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_no_ex_spacing.txt +6 -0
  1098. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_no_lines.html +5 -0
  1099. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_no_lines.txt +5 -0
  1100. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_ex_spacing.html +7 -0
  1101. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_ex_spacing.txt +7 -0
  1102. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_no_ex_spacing.html +7 -0
  1103. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_no_ex_spacing.txt +7 -0
  1104. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_no_lines.html +6 -0
  1105. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_no_lines.txt +6 -0
  1106. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_ex_spacing.html +5 -0
  1107. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_ex_spacing.txt +5 -0
  1108. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_no_ex_spacing.html +5 -0
  1109. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_no_ex_spacing.txt +5 -0
  1110. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_no_lines.html +4 -0
  1111. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_no_lines.txt +4 -0
  1112. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_ex_spacing.html +8 -0
  1113. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_ex_spacing.txt +8 -0
  1114. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_no_ex_spacing.html +7 -0
  1115. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_no_ex_spacing.txt +7 -0
  1116. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_no_lines.html +5 -0
  1117. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_no_lines.txt +5 -0
  1118. data/ext/mathematical/mtex2MML/tests/fixtures/env/spaces_after_rowsep.html +7 -0
  1119. data/ext/mathematical/mtex2MML/tests/fixtures/env/spaces_after_rowsep.txt +7 -0
  1120. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_ex_spacing.html +6 -0
  1121. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_ex_spacing.txt +6 -0
  1122. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_no_ex_spacing.html +6 -0
  1123. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_no_ex_spacing.txt +6 -0
  1124. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_no_lines.html +5 -0
  1125. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_no_lines.txt +5 -0
  1126. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_ex_spacing.html +5 -0
  1127. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_ex_spacing.txt +5 -0
  1128. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_no_ex_spacing.html +5 -0
  1129. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_no_ex_spacing.txt +5 -0
  1130. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_no_lines.html +4 -0
  1131. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_no_lines.txt +4 -0
  1132. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_ex_spacing.html +6 -0
  1133. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_ex_spacing.txt +6 -0
  1134. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_no_ex_spacing.html +6 -0
  1135. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_no_ex_spacing.txt +6 -0
  1136. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_no_lines.html +5 -0
  1137. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_no_lines.txt +5 -0
  1138. data/ext/mathematical/mtex2MML/tests/fixtures/functions/max_limits.html +1 -0
  1139. data/ext/mathematical/mtex2MML/tests/fixtures/functions/max_limits.txt +1 -0
  1140. data/ext/mathematical/mtex2MML/tests/fixtures/functions/min_limits.html +1 -0
  1141. data/ext/mathematical/mtex2MML/tests/fixtures/functions/min_limits.txt +1 -0
  1142. data/ext/mathematical/mtex2MML/tests/fixtures/functions/prod_limits.html +1 -0
  1143. data/ext/mathematical/mtex2MML/tests/fixtures/functions/prod_limits.txt +1 -0
  1144. data/ext/mathematical/mtex2MML/tests/fixtures/maliciousness/excess_parsing.txt +1 -0
  1145. data/ext/mathematical/mtex2MML/tests/fixtures/maliciousness/just_enough_parsing.html +1 -0
  1146. data/ext/mathematical/mtex2MML/tests/fixtures/maliciousness/just_enough_parsing.txt +1 -0
  1147. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/multiple_equations.html +11 -0
  1148. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/multiple_equations.txt +13 -0
  1149. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/multiple_notag_nonumber.html +7 -0
  1150. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/multiple_notag_nonumber.txt +7 -0
  1151. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_equation.html +5 -0
  1152. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_equation.txt +5 -0
  1153. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_nonumber.html +6 -0
  1154. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_nonumber.txt +6 -0
  1155. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_notag.html +6 -0
  1156. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_notag.txt +6 -0
  1157. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/skip_label.html +3 -0
  1158. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/skip_label.txt +3 -0
  1159. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/skip_tag.html +3 -0
  1160. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/skip_tag.txt +3 -0
  1161. data/ext/mathematical/mtex2MML/tests/fixtures/performance/big_file.html +12 -0
  1162. data/ext/mathematical/mtex2MML/tests/fixtures/performance/big_file.txt +1755 -0
  1163. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/gt.html +1 -0
  1164. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/gt.txt +1 -0
  1165. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/lt.html +1 -0
  1166. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/lt.txt +1 -0
  1167. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/textgreater.html +1 -0
  1168. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/textgreater.txt +1 -0
  1169. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/textless.html +1 -0
  1170. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/textless.txt +1 -0
  1171. data/ext/mathematical/mtex2MML/tests/functions.c +55 -0
  1172. data/ext/mathematical/mtex2MML/tests/generate.py +244 -0
  1173. data/ext/mathematical/mtex2MML/tests/helpers.c +29 -0
  1174. data/ext/mathematical/mtex2MML/tests/helpers.h +8 -0
  1175. data/ext/mathematical/mtex2MML/tests/main.c +35 -0
  1176. data/ext/mathematical/mtex2MML/tests/maliciousness.c +107 -0
  1177. data/ext/mathematical/mtex2MML/tests/mathjax.c +2040 -0
  1178. data/ext/mathematical/mtex2MML/tests/mathjax_generate.py +72 -0
  1179. data/ext/mathematical/mtex2MML/tests/numbered_equations.c +92 -0
  1180. data/ext/mathematical/mtex2MML/tests/performance.c +39 -0
  1181. data/ext/mathematical/mtex2MML/tests/symbols.c +69 -0
  1182. data/lib/mathematical/version.rb +1 -1
  1183. metadata +1181 -1
@@ -0,0 +1,1490 @@
1
+ /* Lasem
2
+ *
3
+ * Copyright © 2009 Emmanuel Pacaud
4
+ *
5
+ * This library is free software; you can redistribute it and/or
6
+ * modify it under the terms of the GNU Lesser General Public
7
+ * License as published by the Free Software Foundation; either
8
+ * version 2 of the License, or (at your option) any later version.
9
+ *
10
+ * This library is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ * Lesser General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General
16
+ * Public License along with this library; if not, write to the
17
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18
+ * Boston, MA 02110-1335, USA.
19
+ *
20
+ * Author:
21
+ * Emmanuel Pacaud <emmanuel@gnome.org>
22
+ */
23
+
24
+ #include <lsmsvgtraits.h>
25
+ #include <lsmstr.h>
26
+ #include <lsmsvgcolors.h>
27
+ #include <math.h>
28
+ #include <string.h>
29
+ #include <stdlib.h>
30
+
31
+ const LsmSvgColor lsm_svg_color_null = {0.0, 0.0, 0.0};
32
+ const LsmSvgDashArray lsm_svg_dash_array_null = {0, NULL};
33
+
34
+ static gboolean
35
+ lsm_svg_blending_mode_trait_from_string (LsmTrait *abstract_trait, char *string)
36
+ {
37
+ LsmSvgBlendingMode *trait = (LsmSvgBlendingMode *) abstract_trait;
38
+
39
+ *trait = lsm_svg_blending_mode_from_string (string);
40
+
41
+ return *trait >= 0;
42
+ }
43
+
44
+ static char *
45
+ lsm_svg_blending_mode_trait_to_string (LsmTrait *abstract_trait)
46
+ {
47
+ LsmSvgBlendingMode *trait = (LsmSvgBlendingMode *) abstract_trait;
48
+
49
+ return g_strdup (lsm_svg_blending_mode_to_string (*trait));
50
+ }
51
+
52
+ const LsmTraitClass lsm_svg_blending_mode_trait_class = {
53
+ .size = sizeof (LsmSvgBlendingMode),
54
+ .from_string = lsm_svg_blending_mode_trait_from_string,
55
+ .to_string = lsm_svg_blending_mode_trait_to_string
56
+ };
57
+
58
+ static gboolean
59
+ lsm_svg_comp_op_trait_from_string (LsmTrait *abstract_trait, char *string)
60
+ {
61
+ LsmSvgCompOp *trait = (LsmSvgCompOp *) abstract_trait;
62
+
63
+ *trait = lsm_svg_comp_op_from_string (string);
64
+
65
+ return *trait >= 0;
66
+ }
67
+
68
+ static char *
69
+ lsm_svg_comp_op_trait_to_string (LsmTrait *abstract_trait)
70
+ {
71
+ LsmSvgCompOp *trait = (LsmSvgCompOp *) abstract_trait;
72
+
73
+ return g_strdup (lsm_svg_comp_op_to_string (*trait));
74
+ }
75
+
76
+ const LsmTraitClass lsm_svg_comp_op_trait_class = {
77
+ .size = sizeof (LsmSvgCompOp),
78
+ .from_string = lsm_svg_comp_op_trait_from_string,
79
+ .to_string = lsm_svg_comp_op_trait_to_string
80
+ };
81
+
82
+ static gboolean
83
+ lsm_svg_enable_background_trait_from_string (LsmTrait *abstract_trait, char *string)
84
+ {
85
+ LsmSvgEnableBackground *trait = (LsmSvgEnableBackground *) abstract_trait;
86
+
87
+ *trait = lsm_svg_enable_background_from_string (string);
88
+
89
+ return *trait >= 0;
90
+ }
91
+
92
+ static char *
93
+ lsm_svg_enable_background_trait_to_string (LsmTrait *abstract_trait)
94
+ {
95
+ LsmSvgEnableBackground *trait = (LsmSvgEnableBackground *) abstract_trait;
96
+
97
+ return g_strdup (lsm_svg_enable_background_to_string (*trait));
98
+ }
99
+
100
+ const LsmTraitClass lsm_svg_enable_background_trait_class = {
101
+ .size = sizeof (LsmSvgEnableBackground),
102
+ .from_string = lsm_svg_enable_background_trait_from_string,
103
+ .to_string = lsm_svg_enable_background_trait_to_string
104
+ };
105
+
106
+ static gboolean
107
+ lsm_svg_vector_trait_from_string (LsmTrait *abstract_trait, char *string)
108
+ {
109
+ LsmSvgVector *vector = (LsmSvgVector *) abstract_trait;
110
+ unsigned int n_values = 1;
111
+ gboolean success = FALSE;
112
+ char *iter = (char *) string;
113
+
114
+ g_free (vector->values);
115
+ vector->n_values = 0;
116
+ vector->values = NULL;
117
+
118
+ while (*iter != '\0') {
119
+ if (*iter == ',' ||
120
+ *iter == ' ') {
121
+ n_values++;
122
+ do {
123
+ iter++;
124
+ } while (*iter == ',' ||
125
+ *iter == ' ');
126
+ } else
127
+ iter++;
128
+ }
129
+
130
+ vector->values = g_new (double, n_values);
131
+ vector->n_values = n_values;
132
+
133
+ iter = (char *)string;
134
+ n_values = lsm_str_parse_double_list (&iter, vector->n_values, vector->values);
135
+ success = n_values == vector->n_values;
136
+
137
+ if (!success) {
138
+ g_free (vector->values);
139
+ vector->values = NULL;
140
+ vector->n_values = 0;
141
+ }
142
+
143
+ return success;
144
+ }
145
+
146
+ static char *
147
+ lsm_svg_vector_trait_to_string (LsmTrait *abstract_trait)
148
+ {
149
+ g_assert_not_reached ();
150
+
151
+ return NULL;
152
+ }
153
+
154
+ static void
155
+ lsm_svg_vector_trait_finalize (LsmTrait *abstract_trait)
156
+ {
157
+ LsmSvgVector *svg_vector = (LsmSvgVector *) abstract_trait;
158
+
159
+ g_free (svg_vector->values);
160
+ svg_vector->n_values = 0;
161
+ svg_vector->values = NULL;
162
+ }
163
+
164
+ const LsmTraitClass lsm_svg_vector_trait_class = {
165
+ .size = sizeof (LsmSvgVector),
166
+ .from_string = lsm_svg_vector_trait_from_string,
167
+ .to_string = lsm_svg_vector_trait_to_string,
168
+ .finalize = lsm_svg_vector_trait_finalize
169
+ };
170
+
171
+ static gboolean
172
+ lsm_svg_length_trait_from_string (LsmTrait *abstract_trait, char *string)
173
+ {
174
+ LsmSvgLength *svg_length = (LsmSvgLength *) abstract_trait;
175
+ char *length_type_str;
176
+
177
+ svg_length->value_unit = g_ascii_strtod (string, &length_type_str);
178
+ svg_length->type = lsm_svg_length_type_from_string (length_type_str);
179
+
180
+ return length_type_str != string && svg_length->type >= 0;
181
+ }
182
+
183
+ static char *
184
+ lsm_svg_length_trait_to_string (LsmTrait *abstract_trait)
185
+ {
186
+ LsmSvgLength *svg_length = (LsmSvgLength *) abstract_trait;
187
+
188
+ return g_strdup_printf ("%g%s",
189
+ svg_length->value_unit,
190
+ lsm_svg_length_type_to_string (svg_length->type));
191
+ }
192
+
193
+ const LsmTraitClass lsm_svg_length_trait_class = {
194
+ .size = sizeof (LsmSvgLength),
195
+ .from_string = lsm_svg_length_trait_from_string,
196
+ .to_string = lsm_svg_length_trait_to_string
197
+ };
198
+
199
+ static gboolean
200
+ lsm_svg_length_list_trait_from_string (LsmTrait *abstract_trait, char *string)
201
+ {
202
+ LsmSvgLengthList *length_list = (LsmSvgLengthList *) abstract_trait;
203
+ unsigned int n_lengths = 1;
204
+ unsigned int i;
205
+ gboolean success = FALSE;
206
+ char *iter = (char *) string;
207
+
208
+ g_free (length_list->lengths);
209
+ length_list->n_lengths = 0;
210
+ length_list->lengths = NULL;
211
+
212
+ while (*iter != '\0') {
213
+ if (*iter == ',' ||
214
+ *iter == ' ') {
215
+ n_lengths++;
216
+ do {
217
+ iter++;
218
+ } while (*iter == ',' ||
219
+ *iter == ' ');
220
+ } else
221
+ iter++;
222
+ }
223
+
224
+ length_list->lengths = g_new (LsmSvgLength, n_lengths);
225
+ length_list->n_lengths = n_lengths;
226
+ iter = (char *)string;
227
+ lsm_str_skip_spaces (&iter);
228
+
229
+ for (i = 0; i < n_lengths; i++) {
230
+ success = lsm_svg_parse_length (&iter, &length_list->lengths[i]);
231
+
232
+ if (!success)
233
+ break;
234
+ lsm_str_skip_comma_and_spaces (&iter);
235
+ }
236
+
237
+ if (!success) {
238
+ g_free (length_list->lengths);
239
+ length_list->lengths = NULL;
240
+ length_list->n_lengths = 0;
241
+ }
242
+
243
+ return TRUE;
244
+ }
245
+
246
+ static char *
247
+ lsm_svg_length_list_trait_to_string (LsmTrait *abstract_trait)
248
+ {
249
+ g_assert_not_reached ();
250
+
251
+ return NULL;
252
+ }
253
+
254
+ static void
255
+ lsm_svg_length_list_trait_finalize (LsmTrait *abstract_trait)
256
+ {
257
+ LsmSvgLengthList *svg_length_list = (LsmSvgLengthList *) abstract_trait;
258
+
259
+ g_free (svg_length_list->lengths);
260
+ svg_length_list->n_lengths = 0;
261
+ svg_length_list->lengths = NULL;
262
+ }
263
+
264
+ const LsmTraitClass lsm_svg_length_list_trait_class = {
265
+ .size = sizeof (LsmSvgLengthList),
266
+ .from_string = lsm_svg_length_list_trait_from_string,
267
+ .to_string = lsm_svg_length_list_trait_to_string,
268
+ .finalize = lsm_svg_length_list_trait_finalize
269
+ };
270
+
271
+ static void
272
+ _init_matrix (LsmSvgMatrix *matrix, LsmSvgTransformType transform, unsigned int n_values, double values[])
273
+ {
274
+ switch (transform) {
275
+ case LSM_SVG_TRANSFORM_TYPE_SCALE:
276
+ if (n_values == 1) {
277
+ lsm_svg_matrix_init_scale (matrix, values[0], values[0]);
278
+ return;
279
+ } else if (n_values == 2) {
280
+ lsm_svg_matrix_init_scale (matrix, values[0], values[1]);
281
+ return;
282
+ }
283
+ break;
284
+ case LSM_SVG_TRANSFORM_TYPE_TRANSLATE:
285
+ if (n_values == 1) {
286
+ lsm_svg_matrix_init_translate (matrix, values[0], values[0]);
287
+ return;
288
+ } else if (n_values == 2) {
289
+ lsm_svg_matrix_init_translate (matrix, values[0], values[1]);
290
+ return;
291
+ }
292
+ break;
293
+ case LSM_SVG_TRANSFORM_TYPE_MATRIX:
294
+ if (n_values == 6) {
295
+ lsm_svg_matrix_init (matrix,
296
+ values[0], values[1],
297
+ values[2], values[3],
298
+ values[4], values[5]);
299
+ return;
300
+ }
301
+ break;
302
+ case LSM_SVG_TRANSFORM_TYPE_ROTATE:
303
+ if (n_values == 1) {
304
+ lsm_svg_matrix_init_rotate (matrix, values[0] * M_PI / 180.0);
305
+ return;
306
+ } else if (n_values == 3) {
307
+ LsmSvgMatrix matrix_b;
308
+
309
+ lsm_svg_matrix_init_translate (matrix, values[1], values[2]);
310
+ lsm_svg_matrix_init_rotate (&matrix_b, values[0] * M_PI / 180.0);
311
+ lsm_svg_matrix_multiply (matrix, &matrix_b, matrix);
312
+ lsm_svg_matrix_init_translate (&matrix_b, -values[1], -values[2]);
313
+ lsm_svg_matrix_multiply (matrix, &matrix_b, matrix);
314
+ return;
315
+ }
316
+ break;
317
+ case LSM_SVG_TRANSFORM_TYPE_SKEW_X:
318
+ if (n_values == 1) {
319
+ lsm_svg_matrix_init_skew_x (matrix, values[0] * M_PI / 180.0);
320
+ return;
321
+ }
322
+ break;
323
+ case LSM_SVG_TRANSFORM_TYPE_SKEW_Y:
324
+ if (n_values == 1) {
325
+ lsm_svg_matrix_init_skew_y (matrix, values[0] * M_PI / 180.0);
326
+ return;
327
+ }
328
+ default:
329
+ break;
330
+ }
331
+
332
+ lsm_svg_matrix_init_identity (matrix);
333
+ }
334
+
335
+ static gboolean
336
+ lsm_svg_matrix_trait_from_string (LsmTrait *abstract_trait, char *string)
337
+ {
338
+ LsmSvgMatrix *matrix = (LsmSvgMatrix *) abstract_trait;
339
+
340
+ lsm_svg_matrix_init_identity (matrix);
341
+
342
+ while (*string != '\0') {
343
+ LsmSvgTransformType transform;
344
+ double values[6];
345
+
346
+ lsm_str_skip_spaces (&string);
347
+
348
+ if (strncmp (string, "translate", 9) == 0) {
349
+ transform = LSM_SVG_TRANSFORM_TYPE_TRANSLATE;
350
+ string += 9;
351
+ } else if (strncmp (string, "scale", 5) == 0) {
352
+ transform = LSM_SVG_TRANSFORM_TYPE_SCALE;
353
+ string += 5;
354
+ } else if (strncmp (string, "rotate", 6) == 0) {
355
+ transform = LSM_SVG_TRANSFORM_TYPE_ROTATE;
356
+ string += 6;
357
+ } else if (strncmp (string, "matrix", 6) == 0) {
358
+ transform = LSM_SVG_TRANSFORM_TYPE_MATRIX;
359
+ string += 6;
360
+ } else if (strncmp (string, "skewX", 5) == 0) {
361
+ transform = LSM_SVG_TRANSFORM_TYPE_SKEW_X;
362
+ string += 5;
363
+ } else if (strncmp (string, "skewY", 5) == 0) {
364
+ transform = LSM_SVG_TRANSFORM_TYPE_SKEW_Y;
365
+ string += 5;
366
+ } else
367
+ return FALSE;
368
+
369
+ lsm_str_skip_spaces (&string);
370
+
371
+ if (*string == '(') {
372
+ unsigned int n_values = 0;
373
+
374
+ string++;
375
+
376
+ while (*string != ')' && *string != '\0' && n_values < 6) {
377
+ lsm_str_skip_comma_and_spaces (&string);
378
+
379
+ if (!lsm_str_parse_double (&string, &values[n_values]))
380
+ break;
381
+
382
+ n_values++;
383
+ }
384
+
385
+ lsm_str_skip_comma_and_spaces (&string);
386
+
387
+ if (*string == ')') {
388
+ LsmSvgMatrix new_matrix;
389
+
390
+ string++;
391
+
392
+ _init_matrix (&new_matrix, transform, n_values, values);
393
+
394
+ lsm_svg_matrix_multiply (matrix, &new_matrix, matrix);
395
+ } else
396
+ return FALSE;
397
+ } else
398
+ return FALSE;
399
+ }
400
+
401
+ return TRUE;
402
+ }
403
+
404
+ static char *
405
+ lsm_svg_matrix_trait_to_string (LsmTrait *abstract_trait)
406
+ {
407
+ LsmSvgMatrix *matrix = (LsmSvgMatrix *) abstract_trait;
408
+
409
+ /* TODO smarter serialization, checking for zeros */
410
+ return g_strdup_printf ("matrix(%g,%g,%g,%g,%g,%g)",
411
+ matrix->a,
412
+ matrix->b,
413
+ matrix->c,
414
+ matrix->d,
415
+ matrix->e,
416
+ matrix->f);
417
+ }
418
+
419
+ const LsmTraitClass lsm_svg_matrix_trait_class = {
420
+ .size = sizeof (LsmSvgMatrix),
421
+ .from_string = lsm_svg_matrix_trait_from_string,
422
+ .to_string = lsm_svg_matrix_trait_to_string
423
+ };
424
+
425
+ static double
426
+ _hue_to_rgb (double m1, double m2, double h)
427
+ {
428
+ if (h < 0)
429
+ h = h + 1.0;
430
+ if (h > 1)
431
+ h = h - 1.0;
432
+ if (h * 6.0 < 1.0)
433
+ return m1 + (m2 - m1 ) * h * 6.0;
434
+ if (h * 2.0 < 1.0)
435
+ return m2;
436
+ if (h * 3.0 < 2.0)
437
+ return m1 + (m2 - m1) * (2.0 / 3.0 - h) * 6.0;
438
+
439
+ return m1;
440
+ }
441
+
442
+ static char *
443
+ _parse_color (char *string,
444
+ LsmSvgColor *svg_color,
445
+ LsmSvgPaintType *paint_type)
446
+ {
447
+ unsigned int color = 0;
448
+
449
+ lsm_str_skip_spaces (&string);
450
+
451
+ if (g_strcmp0 (string, "currentColor") == 0) {
452
+ svg_color->red = -1.0;
453
+ svg_color->green = -1.0;
454
+ svg_color->blue = -1.0;
455
+
456
+ *paint_type = LSM_SVG_PAINT_TYPE_CURRENT_COLOR;
457
+
458
+ string += 12; /* strlen ("current_color") */
459
+
460
+ return string;
461
+ }
462
+
463
+ if (*string == '#') {
464
+ int value, i;
465
+ string++;
466
+
467
+ for (i = 0; i < 6; i++) {
468
+ if (*string >= '0' && *string <= '9')
469
+ value = *string - '0';
470
+ else if (*string >= 'A' && *string <= 'F')
471
+ value = *string - 'A' + 10;
472
+ else if (*string >= 'a' && *string <= 'f')
473
+ value = *string - 'a' + 10;
474
+ else
475
+ break;
476
+
477
+ color = (color << 4) + value;
478
+ string++;
479
+ }
480
+
481
+ if (i == 3) {
482
+ color = ((color & 0xf00) << 8) | ((color & 0x0f0) << 4) | (color & 0x00f);
483
+ color |= color << 4;
484
+ } else if (i != 6)
485
+ color = 0;
486
+
487
+ *paint_type = LSM_SVG_PAINT_TYPE_RGB_COLOR;
488
+ } else if (strncmp (string, "rgb(", 4) == 0) {
489
+ int i;
490
+ double value;
491
+
492
+
493
+ string += 4; /* strlen ("rgb(") */
494
+
495
+ lsm_str_skip_spaces (&string);
496
+
497
+ for (i = 0; i < 3; i++) {
498
+ if (!lsm_str_parse_double (&string, &value))
499
+ break;
500
+
501
+ if (*string == '%') {
502
+ value = value * 255.0 / 100.0;
503
+ string++;
504
+ }
505
+
506
+ if (i < 2)
507
+ lsm_str_skip_comma_and_spaces (&string);
508
+
509
+ color = (color << 8) + (int) (0.5 + CLAMP (value, 0.0, 255.0));
510
+ }
511
+
512
+ lsm_str_skip_spaces (&string);
513
+
514
+ if (*string != ')' || i != 3)
515
+ color = 0;
516
+
517
+ *paint_type = LSM_SVG_PAINT_TYPE_RGB_COLOR;
518
+ } else if (strncmp (string, "hsl(", 4) == 0) {
519
+ double value[3];
520
+ int i;
521
+
522
+ string += 4; /* strlen ("hsl(") */
523
+
524
+ lsm_str_skip_spaces (&string);
525
+
526
+ for (i = 0; i < 3; i++) {
527
+ if (!lsm_str_parse_double (&string, &value[i]))
528
+ break;
529
+
530
+ if (i > 0) {
531
+ if (*string != '%')
532
+ break;
533
+ string++;
534
+ }
535
+
536
+ lsm_str_skip_comma_and_spaces (&string);
537
+ }
538
+
539
+ lsm_str_skip_spaces (&string);
540
+
541
+ if (*string == ')' && i == 3) {
542
+ double m1, m2;
543
+ double h,s,l;
544
+
545
+ h = value[0] / 360.0;
546
+ s = value[1] / 100.0;
547
+ l = value[2] / 100.0;
548
+
549
+ if (l <= 0.5)
550
+ m2 = l*(s + 1.0);
551
+ else
552
+ m2 = l + s - l * s;
553
+ m1 = l * 2.0 - m2;
554
+
555
+ svg_color->red = _hue_to_rgb (m1, m2, h + 1.0/3.0);
556
+ svg_color->green = _hue_to_rgb (m1, m2, h);
557
+ svg_color->blue = _hue_to_rgb (m1, m2, h - 1.0/3.0);
558
+
559
+ *paint_type = LSM_SVG_PAINT_TYPE_RGB_COLOR;
560
+
561
+ return string;
562
+ }
563
+ } else if (g_strcmp0 (string, "none") != 0) {
564
+ color = lsm_svg_color_from_string (string);
565
+
566
+ *paint_type = LSM_SVG_PAINT_TYPE_RGB_COLOR;
567
+ } else {
568
+ *paint_type = LSM_SVG_PAINT_TYPE_NONE;
569
+ }
570
+
571
+ svg_color->red = (double) ((color & 0xff0000) >> 16) / 255.0;
572
+ svg_color->green = (double) ((color & 0x00ff00) >> 8) / 255.0;
573
+ svg_color->blue = (double) (color & 0x0000ff) / 255.0;
574
+
575
+ return string;
576
+ }
577
+
578
+ static gboolean
579
+ lsm_svg_paint_trait_from_string (LsmTrait *abstract_trait, char *string)
580
+ {
581
+ LsmSvgPaint *paint = (LsmSvgPaint *) abstract_trait;
582
+ LsmSvgPaintType paint_type;
583
+
584
+ g_free (paint->url);
585
+
586
+ if (strncmp (string, "url(#", 5) == 0) {
587
+ unsigned int length;
588
+
589
+ length = 5;
590
+ while (string[length] != ')')
591
+ length++;
592
+ length++;
593
+
594
+ paint->url = g_new (char, length);
595
+ if (paint->url != NULL) {
596
+ memcpy (paint->url, string, length - 1);
597
+ paint->url[length - 1] = '\0';
598
+ }
599
+ string += length;
600
+ } else {
601
+ paint->url = NULL;
602
+ }
603
+
604
+ string = _parse_color (string, &paint->color, &paint_type);
605
+
606
+ if (paint->url != NULL)
607
+ switch (paint_type) {
608
+ case LSM_SVG_PAINT_TYPE_RGB_COLOR:
609
+ paint_type = LSM_SVG_PAINT_TYPE_URI_RGB_COLOR;
610
+ break;
611
+ case LSM_SVG_PAINT_TYPE_CURRENT_COLOR:
612
+ paint_type = LSM_SVG_PAINT_TYPE_URI_CURRENT_COLOR;
613
+ break;
614
+ case LSM_SVG_PAINT_TYPE_NONE:
615
+ paint_type = LSM_SVG_PAINT_TYPE_URI;
616
+ break;
617
+ case LSM_SVG_PAINT_TYPE_RGB_COLOR_ICC_COLOR:
618
+ paint_type = LSM_SVG_PAINT_TYPE_URI_RGB_COLOR_ICC_COLOR;
619
+ break;
620
+ default:
621
+ paint_type = LSM_SVG_PAINT_TYPE_URI;
622
+ break;
623
+ }
624
+
625
+ paint->type = paint_type;
626
+
627
+ /* TODO better syntax error check */
628
+
629
+ return TRUE;
630
+ }
631
+
632
+ static char *
633
+ lsm_svg_paint_trait_to_string (LsmTrait *abstract_trait)
634
+ {
635
+ LsmSvgPaint *paint = (LsmSvgPaint *) abstract_trait;
636
+
637
+ if (paint->color.red < 0.0 || paint->color.green < 0.0 || paint->color.blue < 0.0)
638
+ return g_strdup ("currentColor");
639
+
640
+ /* FIXME */
641
+ if (paint->url != NULL)
642
+ return g_strdup (paint->url);
643
+
644
+ return g_strdup_printf ("rgb(%g%%,%g%%,%g%%)",
645
+ 100.0 * paint->color.red,
646
+ 100.0 * paint->color.green,
647
+ 100.0 * paint->color.blue);
648
+ }
649
+
650
+ static void
651
+ lsm_svg_paint_trait_finalize (LsmTrait *abstract_trait)
652
+ {
653
+ LsmSvgPaint *paint = (LsmSvgPaint *) abstract_trait;
654
+
655
+ g_free (paint->url);
656
+ }
657
+
658
+ const LsmTraitClass lsm_svg_paint_trait_class = {
659
+ .size = sizeof (LsmSvgPaint),
660
+ .from_string = lsm_svg_paint_trait_from_string,
661
+ .to_string = lsm_svg_paint_trait_to_string,
662
+ .finalize = lsm_svg_paint_trait_finalize,
663
+ };
664
+
665
+ static gboolean
666
+ lsm_svg_fill_rule_trait_from_string (LsmTrait *abstract_trait, char *string)
667
+ {
668
+ LsmSvgFillRule *trait = (LsmSvgFillRule *) abstract_trait;
669
+
670
+ *trait = lsm_svg_fill_rule_from_string (string);
671
+
672
+ return *trait >= 0;
673
+ }
674
+
675
+ static char *
676
+ lsm_svg_fill_rule_trait_to_string (LsmTrait *abstract_trait)
677
+ {
678
+ LsmSvgFillRule *trait = (LsmSvgFillRule *) abstract_trait;
679
+
680
+ return g_strdup (lsm_svg_fill_rule_to_string (*trait));
681
+ }
682
+
683
+ const LsmTraitClass lsm_svg_fill_rule_trait_class = {
684
+ .size = sizeof (LsmSvgFillRule),
685
+ .from_string = lsm_svg_fill_rule_trait_from_string,
686
+ .to_string = lsm_svg_fill_rule_trait_to_string
687
+ };
688
+
689
+ static gboolean
690
+ lsm_svg_font_style_trait_from_string (LsmTrait *abstract_trait, char *string)
691
+ {
692
+ LsmSvgFontStyle *trait = (LsmSvgFontStyle *) abstract_trait;
693
+
694
+ *trait = lsm_svg_font_style_from_string (string);
695
+
696
+ return *trait >= 0;
697
+ }
698
+
699
+ static char *
700
+ lsm_svg_font_style_trait_to_string (LsmTrait *abstract_trait)
701
+ {
702
+ LsmSvgFontStyle *trait = (LsmSvgFontStyle *) abstract_trait;
703
+
704
+ return g_strdup (lsm_svg_font_style_to_string (*trait));
705
+ }
706
+
707
+ const LsmTraitClass lsm_svg_font_style_trait_class = {
708
+ .size = sizeof (LsmSvgFontStyle),
709
+ .from_string = lsm_svg_font_style_trait_from_string,
710
+ .to_string = lsm_svg_font_style_trait_to_string
711
+ };
712
+
713
+ static gboolean
714
+ lsm_svg_font_stretch_trait_from_string (LsmTrait *abstract_trait, char *string)
715
+ {
716
+ LsmSvgFontStretch *trait = (LsmSvgFontStretch *) abstract_trait;
717
+
718
+ *trait = lsm_svg_font_stretch_from_string (string);
719
+
720
+ return *trait >= 0;
721
+ }
722
+
723
+ static char *
724
+ lsm_svg_font_stretch_trait_to_string (LsmTrait *abstract_trait)
725
+ {
726
+ LsmSvgFontStretch *trait = (LsmSvgFontStretch *) abstract_trait;
727
+
728
+ return g_strdup (lsm_svg_font_stretch_to_string (*trait));
729
+ }
730
+
731
+ const LsmTraitClass lsm_svg_font_stretch_trait_class = {
732
+ .size = sizeof (LsmSvgFontStretch),
733
+ .from_string = lsm_svg_font_stretch_trait_from_string,
734
+ .to_string = lsm_svg_font_stretch_trait_to_string
735
+ };
736
+
737
+ static gboolean
738
+ lsm_svg_font_weight_trait_from_string (LsmTrait *abstract_trait, char *string)
739
+ {
740
+ LsmSvgFontWeight *trait = (LsmSvgFontWeight *) abstract_trait;
741
+
742
+ *trait = lsm_svg_font_weight_from_string (string);
743
+
744
+ if (*trait < 0)
745
+ *trait = strtol (string, NULL, 10);
746
+
747
+ return *trait >= 100 && *trait <= 1000;
748
+ }
749
+
750
+ static char *
751
+ lsm_svg_font_weight_trait_to_string (LsmTrait *abstract_trait)
752
+ {
753
+ LsmSvgFontWeight *trait = (LsmSvgFontWeight *) abstract_trait;
754
+ const char *string;
755
+
756
+ string = lsm_svg_font_weight_to_string (*trait);
757
+
758
+ if (string != NULL)
759
+ return g_strdup (string);
760
+
761
+ return g_strdup_printf ("%d", *trait);
762
+ }
763
+
764
+ const LsmTraitClass lsm_svg_font_weight_trait_class = {
765
+ .size = sizeof (LsmSvgFontWeight),
766
+ .from_string = lsm_svg_font_weight_trait_from_string,
767
+ .to_string = lsm_svg_font_weight_trait_to_string
768
+ };
769
+
770
+ static gboolean
771
+ lsm_svg_line_join_trait_from_string (LsmTrait *abstract_trait, char *string)
772
+ {
773
+ LsmSvgLineJoin *trait = (LsmSvgLineJoin *) abstract_trait;
774
+
775
+ *trait = lsm_svg_line_join_from_string (string);
776
+
777
+ return *trait >= 0;
778
+ }
779
+
780
+ static char *
781
+ lsm_svg_line_join_trait_to_string (LsmTrait *abstract_trait)
782
+ {
783
+ LsmSvgLineJoin *trait = (LsmSvgLineJoin *) abstract_trait;
784
+
785
+ return g_strdup (lsm_svg_line_join_to_string (*trait));
786
+ }
787
+
788
+ const LsmTraitClass lsm_svg_line_join_trait_class = {
789
+ .size = sizeof (LsmSvgLineJoin),
790
+ .from_string = lsm_svg_line_join_trait_from_string,
791
+ .to_string = lsm_svg_line_join_trait_to_string
792
+ };
793
+
794
+ static gboolean
795
+ lsm_svg_line_cap_trait_from_string (LsmTrait *abstract_trait, char *string)
796
+ {
797
+ LsmSvgLineCap *trait = (LsmSvgLineCap *) abstract_trait;
798
+
799
+ *trait = lsm_svg_line_cap_from_string (string);
800
+
801
+ return *trait >= 0;
802
+ }
803
+
804
+ static char *
805
+ lsm_svg_line_cap_trait_to_string (LsmTrait *abstract_trait)
806
+ {
807
+ LsmSvgLineCap *trait = (LsmSvgLineCap *) abstract_trait;
808
+
809
+ return g_strdup (lsm_svg_line_cap_to_string (*trait));
810
+ }
811
+
812
+ const LsmTraitClass lsm_svg_line_cap_trait_class = {
813
+ .size = sizeof (LsmSvgLineCap),
814
+ .from_string = lsm_svg_line_cap_trait_from_string,
815
+ .to_string = lsm_svg_line_cap_trait_to_string
816
+ };
817
+
818
+ LsmSvgDashArray *
819
+ lsm_svg_dash_array_new (unsigned int n_dashes)
820
+ {
821
+ LsmSvgDashArray *array;
822
+
823
+ g_return_val_if_fail (n_dashes > 0, (LsmSvgDashArray *) &lsm_svg_dash_array_null);
824
+
825
+ array = g_new (LsmSvgDashArray, 1);
826
+ array->n_dashes = n_dashes;
827
+ array->dashes = g_new (LsmSvgLength, n_dashes);
828
+
829
+ return array;
830
+ }
831
+
832
+ void
833
+ lsm_svg_dash_array_free (LsmSvgDashArray *array)
834
+ {
835
+ if (array == NULL || array == &lsm_svg_dash_array_null)
836
+ return;
837
+
838
+ g_free (array->dashes);
839
+ g_free (array);
840
+ }
841
+
842
+ LsmSvgDashArray *
843
+ lsm_svg_dash_array_duplicate (const LsmSvgDashArray *origin)
844
+ {
845
+ LsmSvgDashArray *duplicate;
846
+
847
+ if (origin == NULL || origin == &lsm_svg_dash_array_null)
848
+ return (LsmSvgDashArray *) &lsm_svg_dash_array_null;
849
+
850
+ duplicate = lsm_svg_dash_array_new (origin->n_dashes);
851
+
852
+ if (duplicate != &lsm_svg_dash_array_null)
853
+ memcpy (duplicate->dashes, origin->dashes, sizeof (LsmSvgLength) * origin->n_dashes);
854
+
855
+ return duplicate;
856
+ }
857
+
858
+ static gboolean
859
+ lsm_svg_dash_array_trait_from_string (LsmTrait *abstract_trait, char *string)
860
+ {
861
+ LsmSvgDashArray *dash_array = (LsmSvgDashArray *) abstract_trait;
862
+ unsigned int n_dashes = 1;
863
+ double value;
864
+ double sum = 0.0;
865
+ gboolean is_error = FALSE;
866
+
867
+ g_free (dash_array->dashes);
868
+ dash_array->n_dashes = 0;
869
+ dash_array->dashes = NULL;
870
+
871
+ if (strcmp (string, "none") != 0 &&
872
+ strcmp (string, "inherit")) {
873
+ char *iter = (char *) string;
874
+ unsigned int i;
875
+
876
+ while (*iter != '\0') {
877
+ if (*iter == ',' ||
878
+ *iter == ' ') {
879
+ n_dashes++;
880
+ do {
881
+ iter++;
882
+ } while (*iter == ',' ||
883
+ *iter == ' ');
884
+ } else
885
+ iter++;
886
+ }
887
+
888
+ if (n_dashes > 0) {
889
+ LsmSvgLength length;
890
+
891
+ dash_array->n_dashes = n_dashes;
892
+ dash_array->dashes = g_new (LsmSvgLength, n_dashes);
893
+
894
+ iter = (char *)string;
895
+ lsm_str_skip_spaces (&iter);
896
+
897
+ for (i = 0; i < n_dashes; i++) {
898
+ if (lsm_str_parse_double (&iter, &length.value_unit)) {
899
+ length.type = lsm_svg_length_type_from_string (iter);
900
+ dash_array->dashes[i] = length;
901
+ while (*iter != '\0' && *iter != ' ' && *iter != ',')
902
+ iter ++;
903
+ } else {
904
+ dash_array->dashes[i].value_unit = 0.0;
905
+ dash_array->dashes[i].type = LSM_SVG_LENGTH_TYPE_NUMBER;
906
+ }
907
+ lsm_str_skip_comma_and_spaces (&iter);
908
+
909
+ value = dash_array->dashes[i].value_unit;
910
+ if (value < 0.0) {
911
+ is_error = TRUE;
912
+ break;
913
+ }
914
+ sum += value;
915
+ }
916
+ }
917
+
918
+ if (is_error || sum <= 0.0) {
919
+ g_free (dash_array->dashes);
920
+ dash_array->n_dashes = 0;
921
+ dash_array->dashes = NULL;
922
+
923
+ return !is_error;
924
+ }
925
+ }
926
+
927
+ return TRUE;
928
+ }
929
+
930
+ static char *
931
+ lsm_svg_dash_array_trait_to_string (LsmTrait *abstract_trait)
932
+ {
933
+ g_assert_not_reached ();
934
+
935
+ return NULL;
936
+ }
937
+
938
+ static void
939
+ lsm_svg_dash_array_trait_finalize (LsmTrait *abstract_trait)
940
+ {
941
+ LsmSvgDashArray *dash_array = (LsmSvgDashArray *) abstract_trait;
942
+
943
+ g_free (dash_array->dashes);
944
+ dash_array->n_dashes = 0;
945
+ dash_array->dashes = NULL;
946
+ }
947
+
948
+ const LsmTraitClass lsm_svg_dash_array_trait_class = {
949
+ .size = sizeof (LsmSvgDashArray),
950
+ .from_string = lsm_svg_dash_array_trait_from_string,
951
+ .to_string = lsm_svg_dash_array_trait_to_string,
952
+ .finalize = lsm_svg_dash_array_trait_finalize
953
+ };
954
+
955
+ static gboolean
956
+ lsm_svg_display_trait_from_string (LsmTrait *abstract_trait, char *string)
957
+ {
958
+ LsmSvgDisplay *trait = (LsmSvgDisplay *) abstract_trait;
959
+
960
+ *trait = lsm_svg_display_from_string (string);
961
+
962
+ return *trait >= 0;
963
+ }
964
+
965
+ static char *
966
+ lsm_svg_display_trait_to_string (LsmTrait *abstract_trait)
967
+ {
968
+ LsmSvgDisplay *trait = (LsmSvgDisplay *) abstract_trait;
969
+
970
+ return g_strdup (lsm_svg_display_to_string (*trait));
971
+ }
972
+
973
+ const LsmTraitClass lsm_svg_display_trait_class = {
974
+ .size = sizeof (LsmSvgDisplay),
975
+ .from_string = lsm_svg_display_trait_from_string,
976
+ .to_string = lsm_svg_display_trait_to_string
977
+ };
978
+
979
+ static gboolean
980
+ lsm_svg_color_trait_from_string (LsmTrait *abstract_trait, char *string)
981
+ {
982
+ LsmSvgColor *color = (LsmSvgColor *) abstract_trait;
983
+ LsmSvgPaintType paint_type;
984
+
985
+ _parse_color (string, color, &paint_type);
986
+
987
+ /* TODO Better error check */
988
+
989
+ return TRUE;
990
+ }
991
+
992
+ static char *
993
+ lsm_svg_color_trait_to_string (LsmTrait *abstract_trait)
994
+ {
995
+ LsmSvgColor *color = (LsmSvgColor *) abstract_trait;
996
+
997
+ if (color->red < 0.0 || color->green < 0.0 || color->blue < 0.0)
998
+ return g_strdup ("currentColor");
999
+
1000
+ return g_strdup_printf ("rgb(%g%%,%g%%,%g%%)",
1001
+ 100.0 * color->red,
1002
+ 100.0 * color->green,
1003
+ 100.0 * color->blue);
1004
+ }
1005
+
1006
+ const LsmTraitClass lsm_svg_color_trait_class = {
1007
+ .size = sizeof (LsmSvgColor),
1008
+ .from_string = lsm_svg_color_trait_from_string,
1009
+ .to_string = lsm_svg_color_trait_to_string
1010
+ };
1011
+
1012
+ static gboolean
1013
+ lsm_svg_color_filter_type_trait_from_string (LsmTrait *abstract_trait, char *string)
1014
+ {
1015
+ LsmSvgColorFilterType *trait = (LsmSvgColorFilterType *) abstract_trait;
1016
+
1017
+ *trait = lsm_svg_color_filter_type_from_string (string);
1018
+
1019
+ return *trait >= 0;
1020
+ }
1021
+
1022
+ static char *
1023
+ lsm_svg_color_filter_type_trait_to_string (LsmTrait *abstract_trait)
1024
+ {
1025
+ LsmSvgColorFilterType *trait = (LsmSvgColorFilterType *) abstract_trait;
1026
+
1027
+ return g_strdup (lsm_svg_color_filter_type_to_string (*trait));
1028
+ }
1029
+
1030
+ const LsmTraitClass lsm_svg_color_filter_type_trait_class = {
1031
+ .size = sizeof (LsmSvgColorFilterType),
1032
+ .from_string = lsm_svg_color_filter_type_trait_from_string,
1033
+ .to_string = lsm_svg_color_filter_type_trait_to_string
1034
+ };
1035
+
1036
+ static gboolean
1037
+ lsm_svg_marker_units_trait_from_string (LsmTrait *abstract_trait, char *string)
1038
+ {
1039
+ LsmSvgMarkerUnits *trait = (LsmSvgMarkerUnits *) abstract_trait;
1040
+
1041
+ *trait = lsm_svg_marker_units_from_string (string);
1042
+
1043
+ return *trait >= 0;
1044
+ }
1045
+
1046
+ static char *
1047
+ lsm_svg_marker_units_trait_to_string (LsmTrait *abstract_trait)
1048
+ {
1049
+ LsmSvgMarkerUnits *trait = (LsmSvgMarkerUnits *) abstract_trait;
1050
+
1051
+ return g_strdup (lsm_svg_marker_units_to_string (*trait));
1052
+ }
1053
+
1054
+ const LsmTraitClass lsm_svg_marker_units_trait_class = {
1055
+ .size = sizeof (LsmSvgMarkerUnits),
1056
+ .from_string = lsm_svg_marker_units_trait_from_string,
1057
+ .to_string = lsm_svg_marker_units_trait_to_string
1058
+ };
1059
+
1060
+ static gboolean
1061
+ lsm_svg_pattern_units_trait_from_string (LsmTrait *abstract_trait, char *string)
1062
+ {
1063
+ LsmSvgPatternUnits *trait = (LsmSvgPatternUnits *) abstract_trait;
1064
+
1065
+ *trait = lsm_svg_pattern_units_from_string (string);
1066
+
1067
+ return *trait >= 0;
1068
+ }
1069
+
1070
+ static char *
1071
+ lsm_svg_pattern_units_trait_to_string (LsmTrait *abstract_trait)
1072
+ {
1073
+ LsmSvgPatternUnits *trait = (LsmSvgPatternUnits *) abstract_trait;
1074
+
1075
+ return g_strdup (lsm_svg_pattern_units_to_string (*trait));
1076
+ }
1077
+
1078
+ const LsmTraitClass lsm_svg_pattern_units_trait_class = {
1079
+ .size = sizeof (LsmSvgPatternUnits),
1080
+ .from_string = lsm_svg_pattern_units_trait_from_string,
1081
+ .to_string = lsm_svg_pattern_units_trait_to_string
1082
+ };
1083
+
1084
+ static gboolean
1085
+ lsm_svg_preserve_aspect_ratio_trait_from_string (LsmTrait *abstract_trait, char *string)
1086
+ {
1087
+ LsmSvgPreserveAspectRatio *trait = (LsmSvgPreserveAspectRatio *) abstract_trait;
1088
+
1089
+ char **tokens;
1090
+ unsigned int i = 0;
1091
+
1092
+ tokens = g_strsplit (string, " ", -1);
1093
+
1094
+ if (tokens[i] != NULL && strcmp (tokens[i], "defer") == 0) {
1095
+ trait->defer = TRUE;
1096
+ i++;
1097
+ } else
1098
+ trait->defer = FALSE;
1099
+
1100
+ if (tokens[i] != NULL) {
1101
+ trait->align = lsm_svg_align_from_string (tokens[i]);
1102
+ i++;
1103
+ if (tokens[i] != NULL)
1104
+ trait->meet_or_slice = lsm_svg_meet_or_slice_from_string (tokens[i]);
1105
+ else
1106
+ trait->meet_or_slice = LSM_SVG_MEET_OR_SLICE_MEET;
1107
+ } else trait->align = LSM_SVG_ALIGN_X_MID_Y_MID;
1108
+
1109
+ g_strfreev (tokens);
1110
+
1111
+ /* TODO Better error check */
1112
+
1113
+ return TRUE;
1114
+ }
1115
+
1116
+ static char *
1117
+ lsm_svg_preserve_aspect_ratio_trait_to_string (LsmTrait *abstract_trait)
1118
+ {
1119
+ LsmSvgPreserveAspectRatio *trait = (LsmSvgPreserveAspectRatio *) abstract_trait;
1120
+
1121
+ return g_strdup_printf ("%s%s %s", trait->defer ? "defer " : "",
1122
+ lsm_svg_align_to_string (trait->align),
1123
+ lsm_svg_meet_or_slice_to_string (trait->meet_or_slice));
1124
+ }
1125
+
1126
+ const LsmTraitClass lsm_svg_preserve_aspect_ratio_trait_class = {
1127
+ .size = sizeof (LsmSvgPreserveAspectRatio),
1128
+ .from_string = lsm_svg_preserve_aspect_ratio_trait_from_string,
1129
+ .to_string = lsm_svg_preserve_aspect_ratio_trait_to_string
1130
+ };
1131
+
1132
+ static gboolean
1133
+ lsm_svg_spread_method_trait_from_string (LsmTrait *abstract_trait, char *string)
1134
+ {
1135
+ LsmSvgSpreadMethod *trait = (LsmSvgSpreadMethod *) abstract_trait;
1136
+
1137
+ *trait = lsm_svg_spread_method_from_string (string);
1138
+
1139
+ return *trait >= 0;
1140
+ }
1141
+
1142
+ static char *
1143
+ lsm_svg_spread_method_trait_to_string (LsmTrait *abstract_trait)
1144
+ {
1145
+ LsmSvgSpreadMethod *trait = (LsmSvgSpreadMethod *) abstract_trait;
1146
+
1147
+ return g_strdup (lsm_svg_spread_method_to_string (*trait));
1148
+ }
1149
+
1150
+ const LsmTraitClass lsm_svg_spread_method_trait_class = {
1151
+ .size = sizeof (LsmSvgSpreadMethod),
1152
+ .from_string = lsm_svg_spread_method_trait_from_string,
1153
+ .to_string = lsm_svg_spread_method_trait_to_string
1154
+ };
1155
+
1156
+ static gboolean
1157
+ lsm_svg_angle_trait_from_string (LsmTrait *abstract_trait, char *string)
1158
+ {
1159
+ LsmSvgAngle *trait = (LsmSvgAngle *) abstract_trait;
1160
+ char *end_ptr;
1161
+
1162
+ if (g_strcmp0 (string, "auto") == 0) {
1163
+ trait->type = LSM_SVG_ANGLE_TYPE_AUTO;
1164
+ trait->angle = 0.0;
1165
+
1166
+ return TRUE;
1167
+ }
1168
+
1169
+ trait->type = LSM_SVG_ANGLE_TYPE_FIXED;
1170
+ trait->angle = g_ascii_strtod (string, &end_ptr);
1171
+
1172
+ return end_ptr != string;
1173
+ }
1174
+
1175
+ static char *
1176
+ lsm_svg_angle_trait_to_string (LsmTrait *abstract_trait)
1177
+ {
1178
+ LsmSvgAngle *trait = (LsmSvgAngle *) abstract_trait;
1179
+
1180
+ if (trait->type == LSM_SVG_ANGLE_TYPE_AUTO)
1181
+ return g_strdup ("auto");
1182
+
1183
+ return g_strdup_printf ("%g", trait->angle);
1184
+ }
1185
+
1186
+ const LsmTraitClass lsm_svg_angle_trait_class = {
1187
+ .size = sizeof (LsmSvgAngle),
1188
+ .from_string = lsm_svg_angle_trait_from_string,
1189
+ .to_string = lsm_svg_angle_trait_to_string
1190
+ };
1191
+
1192
+ static gboolean
1193
+ lsm_svg_text_anchor_trait_from_string (LsmTrait *abstract_trait, char *string)
1194
+ {
1195
+ LsmSvgTextAnchor *trait = (LsmSvgTextAnchor *) abstract_trait;
1196
+
1197
+ *trait = lsm_svg_text_anchor_from_string (string);
1198
+
1199
+ return *trait >= 0;
1200
+ }
1201
+
1202
+ static char *
1203
+ lsm_svg_text_anchor_trait_to_string (LsmTrait *abstract_trait)
1204
+ {
1205
+ LsmSvgTextAnchor *trait = (LsmSvgTextAnchor *) abstract_trait;
1206
+
1207
+ return g_strdup (lsm_svg_text_anchor_to_string (*trait));
1208
+ }
1209
+
1210
+ const LsmTraitClass lsm_svg_text_anchor_trait_class = {
1211
+ .size = sizeof (LsmSvgTextAnchor),
1212
+ .from_string = lsm_svg_text_anchor_trait_from_string,
1213
+ .to_string = lsm_svg_text_anchor_trait_to_string
1214
+ };
1215
+
1216
+ static gboolean
1217
+ lsm_svg_visibility_trait_from_string (LsmTrait *abstract_trait, char *string)
1218
+ {
1219
+ LsmSvgVisibility *trait = (LsmSvgVisibility *) abstract_trait;
1220
+
1221
+ *trait = lsm_svg_visibility_from_string (string);
1222
+
1223
+ return *trait >= 0;
1224
+ }
1225
+
1226
+ static char *
1227
+ lsm_svg_visibility_trait_to_string (LsmTrait *abstract_trait)
1228
+ {
1229
+ LsmSvgVisibility *trait = (LsmSvgVisibility *) abstract_trait;
1230
+
1231
+ return g_strdup (lsm_svg_visibility_to_string (*trait));
1232
+ }
1233
+
1234
+ const LsmTraitClass lsm_svg_visibility_trait_class = {
1235
+ .size = sizeof (LsmSvgVisibility),
1236
+ .from_string = lsm_svg_visibility_trait_from_string,
1237
+ .to_string = lsm_svg_visibility_trait_to_string
1238
+ };
1239
+
1240
+ static gboolean
1241
+ lsm_svg_one_or_two_double_trait_from_string (LsmTrait *abstract_trait, char *string)
1242
+ {
1243
+ LsmSvgOneOrTwoDouble *trait = (LsmSvgOneOrTwoDouble *) abstract_trait;
1244
+ char *end_ptr;
1245
+
1246
+ trait->a = g_ascii_strtod (string, &end_ptr);
1247
+ if (end_ptr == string) {
1248
+ trait->b = 0.0;
1249
+ return FALSE;
1250
+ }
1251
+
1252
+ string = end_ptr;
1253
+
1254
+ lsm_str_skip_spaces (&string);
1255
+
1256
+ if (string[0] == '\0') {
1257
+ trait->b = trait->a;
1258
+ return TRUE;
1259
+ }
1260
+
1261
+ trait->b = g_ascii_strtod (string, &end_ptr);
1262
+
1263
+ return end_ptr != string;
1264
+ }
1265
+
1266
+ static char *
1267
+ lsm_svg_one_or_two_double_trait_to_string (LsmTrait *abstract_trait)
1268
+ {
1269
+ LsmSvgOneOrTwoDouble *trait = (LsmSvgOneOrTwoDouble *) abstract_trait;
1270
+
1271
+ if (trait->a == trait->b)
1272
+ return g_strdup_printf ("%g", trait->a);
1273
+
1274
+ return g_strdup_printf ("%g %g", trait->a, trait->b);
1275
+ }
1276
+
1277
+ const LsmTraitClass lsm_svg_one_or_two_double_trait_class = {
1278
+ .size = sizeof (double),
1279
+ .from_string = lsm_svg_one_or_two_double_trait_from_string,
1280
+ .to_string = lsm_svg_one_or_two_double_trait_to_string
1281
+ };
1282
+
1283
+ static gboolean
1284
+ lsm_svg_one_or_two_integer_trait_from_string (LsmTrait *abstract_trait, char *string)
1285
+ {
1286
+ LsmSvgOneOrTwoInteger *trait = (LsmSvgOneOrTwoInteger *) abstract_trait;
1287
+ char *end_ptr;
1288
+
1289
+ trait->a = g_ascii_strtoll (string, &end_ptr, 10);
1290
+ if (end_ptr == string) {
1291
+ trait->a = 0;
1292
+ trait->b = 0;
1293
+ return FALSE;
1294
+ }
1295
+
1296
+ string = end_ptr;
1297
+
1298
+ lsm_str_skip_spaces (&string);
1299
+
1300
+ if (string[0] == '\0') {
1301
+ trait->b = trait->a;
1302
+ return TRUE;
1303
+ }
1304
+
1305
+ trait->b = g_ascii_strtoll (string, &end_ptr, 10);
1306
+
1307
+ return TRUE;
1308
+ }
1309
+
1310
+ static char *
1311
+ lsm_svg_one_or_two_integer_trait_to_string (LsmTrait *abstract_trait)
1312
+ {
1313
+ LsmSvgOneOrTwoInteger *trait = (LsmSvgOneOrTwoInteger *) abstract_trait;
1314
+
1315
+ return g_strdup_printf ("%d %d", trait->a, trait->b);
1316
+ }
1317
+
1318
+ const LsmTraitClass lsm_svg_one_or_two_integer_trait_class = {
1319
+ .size = sizeof (double),
1320
+ .from_string = lsm_svg_one_or_two_integer_trait_from_string,
1321
+ .to_string = lsm_svg_one_or_two_integer_trait_to_string
1322
+ };
1323
+
1324
+ static gboolean
1325
+ lsm_svg_overflow_trait_from_string (LsmTrait *abstract_trait, char *string)
1326
+ {
1327
+ LsmSvgOverflow *trait = (LsmSvgOverflow *) abstract_trait;
1328
+
1329
+ *trait = lsm_svg_overflow_from_string (string);
1330
+
1331
+ return *trait >= 0;
1332
+ }
1333
+
1334
+ static char *
1335
+ lsm_svg_overflow_trait_to_string (LsmTrait *abstract_trait)
1336
+ {
1337
+ LsmSvgOverflow *trait = (LsmSvgOverflow *) abstract_trait;
1338
+
1339
+ return g_strdup (lsm_svg_overflow_to_string (*trait));
1340
+ }
1341
+
1342
+ const LsmTraitClass lsm_svg_overflow_trait_class = {
1343
+ .size = sizeof (LsmSvgOverflow),
1344
+ .from_string = lsm_svg_overflow_trait_from_string,
1345
+ .to_string = lsm_svg_overflow_trait_to_string
1346
+ };
1347
+
1348
+ static gboolean
1349
+ lsm_svg_writing_mode_trait_from_string (LsmTrait *abstract_trait, char *string)
1350
+ {
1351
+ LsmSvgWritingMode *trait = (LsmSvgWritingMode *) abstract_trait;
1352
+
1353
+ *trait = lsm_svg_writing_mode_from_string (string);
1354
+
1355
+ return *trait >= 0;
1356
+ }
1357
+
1358
+ static char *
1359
+ lsm_svg_writing_mode_trait_to_string (LsmTrait *abstract_trait)
1360
+ {
1361
+ LsmSvgWritingMode *trait = (LsmSvgWritingMode *) abstract_trait;
1362
+
1363
+ return g_strdup (lsm_svg_writing_mode_to_string (*trait));
1364
+ }
1365
+
1366
+ const LsmTraitClass lsm_svg_writing_mode_trait_class = {
1367
+ .size = sizeof (LsmSvgWritingMode),
1368
+ .from_string = lsm_svg_writing_mode_trait_from_string,
1369
+ .to_string = lsm_svg_writing_mode_trait_to_string
1370
+ };
1371
+
1372
+ static gboolean
1373
+ lsm_svg_morphology_operator_trait_from_string (LsmTrait *abstract_trait, char *string)
1374
+ {
1375
+ LsmSvgMorphologyOperator *trait = (LsmSvgMorphologyOperator *) abstract_trait;
1376
+
1377
+ *trait = lsm_svg_morphology_operator_from_string (string);
1378
+
1379
+ return *trait >= 0;
1380
+ }
1381
+
1382
+ static char *
1383
+ lsm_svg_morphology_operator_trait_to_string (LsmTrait *abstract_trait)
1384
+ {
1385
+ LsmSvgMorphologyOperator *trait = (LsmSvgMorphologyOperator *) abstract_trait;
1386
+
1387
+ return g_strdup (lsm_svg_morphology_operator_to_string (*trait));
1388
+ }
1389
+
1390
+ const LsmTraitClass lsm_svg_morphology_operator_trait_class = {
1391
+ .size = sizeof (LsmSvgMorphologyOperator),
1392
+ .from_string = lsm_svg_morphology_operator_trait_from_string,
1393
+ .to_string = lsm_svg_morphology_operator_trait_to_string
1394
+ };
1395
+
1396
+ static gboolean
1397
+ lsm_svg_edge_mode_trait_from_string (LsmTrait *abstract_trait, char *string)
1398
+ {
1399
+ LsmSvgEdgeMode *trait = (LsmSvgEdgeMode *) abstract_trait;
1400
+
1401
+ *trait = lsm_svg_edge_mode_from_string (string);
1402
+
1403
+ return *trait >= 0;
1404
+ }
1405
+
1406
+ static char *
1407
+ lsm_svg_edge_mode_trait_to_string (LsmTrait *abstract_trait)
1408
+ {
1409
+ LsmSvgEdgeMode *trait = (LsmSvgEdgeMode *) abstract_trait;
1410
+
1411
+ return g_strdup (lsm_svg_edge_mode_to_string (*trait));
1412
+ }
1413
+
1414
+ const LsmTraitClass lsm_svg_edge_mode_trait_class = {
1415
+ .size = sizeof (LsmSvgEdgeMode),
1416
+ .from_string = lsm_svg_edge_mode_trait_from_string,
1417
+ .to_string = lsm_svg_edge_mode_trait_to_string
1418
+ };
1419
+
1420
+ static gboolean
1421
+ lsm_svg_stitch_tiles_trait_from_string (LsmTrait *abstract_trait, char *string)
1422
+ {
1423
+ LsmSvgStitchTiles *trait = (LsmSvgStitchTiles *) abstract_trait;
1424
+
1425
+ *trait = lsm_svg_stitch_tiles_from_string (string);
1426
+
1427
+ return *trait >= 0;
1428
+ }
1429
+
1430
+ static char *
1431
+ lsm_svg_stitch_tiles_trait_to_string (LsmTrait *abstract_trait)
1432
+ {
1433
+ LsmSvgStitchTiles *trait = (LsmSvgStitchTiles *) abstract_trait;
1434
+
1435
+ return g_strdup (lsm_svg_stitch_tiles_to_string (*trait));
1436
+ }
1437
+
1438
+ const LsmTraitClass lsm_svg_stitch_tiles_trait_class = {
1439
+ .size = sizeof (LsmSvgStitchTiles),
1440
+ .from_string = lsm_svg_stitch_tiles_trait_from_string,
1441
+ .to_string = lsm_svg_stitch_tiles_trait_to_string
1442
+ };
1443
+
1444
+ static gboolean
1445
+ lsm_svg_turbulence_type_trait_from_string (LsmTrait *abstract_trait, char *string)
1446
+ {
1447
+ LsmSvgTurbulenceType *trait = (LsmSvgTurbulenceType *) abstract_trait;
1448
+
1449
+ *trait = lsm_svg_turbulence_type_from_string (string);
1450
+
1451
+ return *trait >= 0;
1452
+ }
1453
+
1454
+ static char *
1455
+ lsm_svg_turbulence_type_trait_to_string (LsmTrait *abstract_trait)
1456
+ {
1457
+ LsmSvgTurbulenceType *trait = (LsmSvgTurbulenceType *) abstract_trait;
1458
+
1459
+ return g_strdup (lsm_svg_turbulence_type_to_string (*trait));
1460
+ }
1461
+
1462
+ const LsmTraitClass lsm_svg_turbulence_type_trait_class = {
1463
+ .size = sizeof (LsmSvgTurbulenceType),
1464
+ .from_string = lsm_svg_turbulence_type_trait_from_string,
1465
+ .to_string = lsm_svg_turbulence_type_trait_to_string
1466
+ };
1467
+
1468
+ static gboolean
1469
+ lsm_svg_channel_selector_trait_from_string (LsmTrait *abstract_trait, char *string)
1470
+ {
1471
+ LsmSvgChannelSelector *trait = (LsmSvgChannelSelector *) abstract_trait;
1472
+
1473
+ *trait = lsm_svg_channel_selector_from_string (string);
1474
+
1475
+ return *trait >= 0;
1476
+ }
1477
+
1478
+ static char *
1479
+ lsm_svg_channel_selector_trait_to_string (LsmTrait *abstract_trait)
1480
+ {
1481
+ LsmSvgChannelSelector *trait = (LsmSvgChannelSelector *) abstract_trait;
1482
+
1483
+ return g_strdup (lsm_svg_channel_selector_to_string (*trait));
1484
+ }
1485
+
1486
+ const LsmTraitClass lsm_svg_channel_selector_trait_class = {
1487
+ .size = sizeof (LsmSvgChannelSelector),
1488
+ .from_string = lsm_svg_channel_selector_trait_from_string,
1489
+ .to_string = lsm_svg_channel_selector_trait_to_string
1490
+ };