From: Miroslaw P. <Mir...@fu...> - 2003-04-17 08:15:17
|
On Wed, 16 Apr 2003, Ian Castle wrote: > It looks like it isn't in a specific backend.. can you verify this by using > the plain old "fot" backend - i.e. no "-t" option at all. It looks like bug in xml/sgml backend because without -t option works fine. > If so, it would be good to narrow it down to a specfic bit of DSSSL. it's not only specific DSSSL, but also DTD specific. When I took only elements that are in my document + entities and replaced PUBLIC identifier with dummy DTD (all elements have mixed content any in any) and run jade then everything was fine. The specific DSSSL code is: (define wrap-math-char (lambda (c) (case (math-type c) ((#\O) (make element gi: "mo" (literal opr-debug (string c)))) ((#\N) (make element gi: "mn" (literal num-debug (string c)))) ((#\I) (make element gi: "mi" (literal sym-debug (string c)))) (else (make element gi: "mi" (literal (string c)))) ) )) When I comment out the line with #\I everything is fine. The whole DSSSL is at the end of the post. The purpose of this function is to wrap all characters in string with elements depending on what class they belong to (this is conversion to MathML). The code: (define wrap-math-char (lambda (c) (case (math-type c) ((#\O) (make element gi: "mo" (literal opr-debug (string c)))) ((#\N) (make element gi: "mn" (literal num-debug (string c)))) ; ((#\I) (make element gi: "mi" (literal sym-debug (string c)))) (else (make element gi: "mi" (literal (string c)))) ) )) does not cause SIGABORT. > Are you using the RPM supplied by Red Hat, or is it your own? Yes, exactly: Name : openjade Relocations: /usr Version : 1.3.1 Vendor: Red Hat, Inc. Release : 4 Build Date: Thu 21 Feb 2002 12:59:13 PM GMT+1 Install date: Tue 17 Dec 2002 09:42:31 AM GMT+1 Build Host: daffy.perf.redhat.com Group : Applications/Text Source RPM: openjade-1.3.1-4.src.rpm [.....] I renamed /etc/sgml/catalog (I do not want to use it). I have SP_ENCODING=utf-8 And at the end of cataog file I have: OVERRIDE YES SGMLDECL /usr/share/doc/openjade-1.3.1/pubtext/HTML4.dcl OVERRIDE NO CATALOG "/usr/share/sgml/openjade-1.3.1/catalog" I need it to have UTF8 encoding in documents (I map ISO entities and my entities to unicode). > A tarball of the files would be useful to see if it reproducible on another > system. On windows everything is fine (???). DTD is quite big (>1000 entities, many files). DSSSL code http://www.fuw.edu.pl/~mpry/DSSSL/mml.dsl document: http://www.fuw.edu.pl/~mpry/DSSSL/bug_org.sgm FOT produced by openjade http://www.fuw.edu.pl/~mpry/DSSSL/bug_org.fot dummy DTD (unfortunately with such a DTD everything is OK) http://www.fuw.edu.pl/~mpry/DSSSL/dummy.dtd I suspect that there can be something wrong with entities. Program aborts just after entity, eg.: [....] ></mrow ></mfrac ><msubsup ><mo stretchy="false" >∫</mo ><mi >-1</mi ><mi >+∞Aborted There is one important thing I have to add. In SGML documents entities are SDATA, but when I make visualisation transformation (like this conversion to XML) I put in catalog file entry pointing catalog, where public identifiers of all entities files point to files where those entities are simple text entities like: <!ENTITY Abreve "Ă"> <!ENTITY Amacr "Ā"> <!ENTITY Aogon "Ą"> <!ENTITY Cacute "Ć"> <!ENTITY Ccaron "Č"> <!ENTITY Ccirc "Ĉ"> <!ENTITY Cdot "Ċ"> [....] and sometimes markup (interpreted by properly by backend). That's why I have -w no-valid option. And one more question: Does CR/LF in DTD document and DSSSL files has any meaning? I have them mixed (some files prepared in DOS, some in Unix). Regards, Mirek |