>>>> "sb" == SL Baur <steve(a)xemacs.org>
writes:
Hello Steven, Andy, All,
sb> Andy Piper <andyp(a)parallax.co.uk> writes:
> Er, I know you did the psgml goop in the core dist but did you do
it
> in the packages as well (which is what Adrian is trying to check
> out)?
sb> Ur, um. No. Oops. Sorry, my mistake.
> I don't see how you can have since we never resolved the
issue of
> what code actually references the badly named files.
this took some digging. Here's the story:
Entities referenced by DTD are looked up in files by first
transliterating to a file name:
cd /export/home/tmp/packages-21.0/lisp/psgml/
egrep -ni transliter *.el /dev/null
Compilation started at Sat Jul 4 13:59:44 1998
psgml-parse.el:1968: (nconc subst (list (cons ?p (sgml-transliterate-file pubid)))
psgml-parse.el:2096: (cons ?o (sgml-transliterate-file (sgml-matched-string pubid 2)))
psgml-parse.el:2098: (cons ?d (sgml-transliterate-file (sgml-matched-string pubid 5)))
psgml-parse.el:2100: (cons ?t (sgml-transliterate-file (sgml-matched-string pubid 5)))
psgml-parse.el:2103: (list (cons ?v (sgml-transliterate-file
psgml-parse.el:2121:(defun sgml-transliterate-file (string)
psgml-parse.el:2124: (or (cdr-safe (assq c sgml-public-transliterations))
psgml.el:408:and description will be transliterated according to the variable
psgml.el:409:sgml-public-transliterations. If the file exists it will be the file
psgml.el:459:(defvar sgml-public-transliterations '((? . ?_) (?/ . ?%))
psgml.el:460: "*Transliteration for characters that should be avoided in file
names.
grep finished (12 matches found) at Sat Jul 4 13:59:45
Apparently, sgml-public-transliterations does not handle ?:, since
it's perfectly legal on UNIX (but not so on WindowsNT, UNC![1]).
http://www.sil.org/sgml/sotr9401-a2.html states:
.... In the interest of interoperability, this resolution does dictate
that any storage object identifier that consists solely of
alphanumeric characters, hyphen, period, and underscore must be
treated as a file name (these are the characters in the POSIX portable
file name character set.)
Aforementioned URL also admits that
.... This has lead to the propagation of both the dash and the colon
in ISO owner identifiers. In the interests of interoperability, this
SGML Open resolution requires that all products accept either form as
a valid ISO owner identifier. Note, however, that this should not be
construed to mean that a public identifier using one form should
necessarily cause a catalog lookup match to succeed with a public
identifier using the other form; while this resolution requires SGML
systems to accept either form as valid, in practice, two entries
(differing only by the single ":" or "-" character) may be needed in
the catalog if both forms should refer to the same storage object
identifier.
I suggest that we just expand
(defvar sgml-public-transliterations '((? . ?_) (?/ . ?%))
"*Transliteration for characters that should be avoided in file names.
This is a list of dotted pairs (FROM . TO); where FROM is the the
character to be translated to TO. This is used when parts of a public
identifier are used to construct a file name.")
into
(defvar sgml-public-transliterations '((? . ?_) (?/ . ?%) (?: . ?-))
"*Transliteration for characters that should be avoided in file names.
This is a list of dotted pairs (FROM . TO); where FROM is the the
character to be translated to TO. This is used when parts of a public
identifier are used to construct a file name.")
and rename
drwxr-xr-x 3 aichner stdsoft 512 Jan 26 05:37 ISO_8879:1986
to
drwxr-xr-x 3 aichner stdsoft 512 Jan 26 05:37 ISO_8879-1986
under etc/psgml to make it legal for WindowsNT.
Also, since etc/sgml has changed name to etc/psgml, the following
occurences have to be reviewed:
cd /export/home/tmp/packages-21.0/lisp/psgml/
egrep -ni '"sgml"' *.el /dev/null
Compilation started at Sat Jul 4 14:14:31 1998
psgml-charent.el:40: (concat (locate-data-directory "sgml")
"iso88591.map")
psgml-html.el:248: ;; (add-submenu nil sgml-html-menu "SGML")
psgml-html.el:251: (delete-menu-item '("SGML"))))
psgml-parse.el:1976: (t "sgml"))))))
psgml-parse.el:3509: '(("sgml" . sgml-do-sgml-declaration)
psgml-parse.el:3536: (member tok '("sgml" "doctype")))
psgml.el:367: (locate-data-directory "sgml"))
psgml.el:1004: '("SGML"
psgml.el:1160: (setq mode-name "SGML")
grep finished (10 matches found) at Sat Jul 4 14:14:33
I am sure we have to change
(locate-data-directory "sgml")
to
(locate-data-directory "psgml")
but maybe someone knowledgeable on the subject can make suggestions for
the other grep-matches above.
I'm willing to submit a patch if there's enough feedback to resolve
the issues.
Thanks,
Adrian
PS[2]: Has anybody got PSGML menus to actually insert text under
XEmacs on Windows NT? I get all the context-sensitive HTML tag menus
but they don't insert anything nor do they trigger any error. I
suspect they use some mechanism completely un-inmplemented in XEmacs
on Windows NT.
sb> A Lisp stack backtrace will suffice.
Footnotes:
[1] Didn't that stand for Unix Non-Compliance?
[2] Is there such a thing as a PS[2] in E-mail composition?
--
Adrian Aichner
Applications Engineer
Teradyne GmbH
Semiconductor Test Group Telephone +49/89/41861(0)-208
Dingolfinger Strasse 2 Fax +49/89/41861-217
D-81673 MUENCHEN E-mail aichner(a)ecf.teradyne.com