changeset 780:578cb2932d72

[xemacs-hg @ 2002-03-18 10:07:30 by ben] config.inc.samp, xemacs.mak: Deal with never-ending perl quoting problems. README: Include a long, long description of the suggested directory layout for developing XEmacs. This should probably go as part of a larger document, a "Getting Started with Developing XEmacs". #### Does such a document exist? etc\unicode\mule-ucs\*: New directory, containing translation files for the remaining charsets that are not in unicode\unicode-consortium but are in mule-ucs. etc\unicode\other\*: New directory, containing translation files made up on an ad-hoc basis. etc\unicode\README: Update. * Some ChangeLog entries from stuff that got applied long ago never got checked in, due to the nasty SCCS "oops, i forgot again ..." bug. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. dumped-lisp.el: Load the remaining languages -- lao, indian, devanagari, tibetan. Load new file mule-msw-init-late. unicode.el: Load the new tables for Ethiopic, Vietnamese, and other languages extracted from mule-ucs. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. dumped-lisp.el: Load the remaining languages -- lao, indian, devanagari, tibetan. Load new file mule-msw-init-late. unicode.el: Load the new tables for Ethiopic, Vietnamese, and other languages extracted from mule-ucs. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. fns.c, lread.c: Add variable require-prints-loading-message to cause loading messages to get printed when a file is loading during a `require', which normally doesn't happen. This can be set using env var XEMACSDEBUG to debug problems with non-interactive compilation. Modify load-internal so it prints "Requiring: ..." instead of "Loading: ..." when appropriate.
author ben
date Mon, 18 Mar 2002 10:07:39 +0000
parents a29c4eef8f00
children eba92770173a
files lisp/ChangeLog lisp/dumped-lisp.el lisp/mule/lao.el lisp/mule/mule-msw-init-late.el lisp/mule/mule-msw-init.el lisp/mule/thai-xtis-chars.el lisp/mule/thai-xtis.el lisp/unicode.el nt/ChangeLog nt/config.inc.samp nt/xemacs.mak src/ChangeLog src/fns.c src/lread.c
diffstat 14 files changed, 276 insertions(+), 163 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Mar 18 09:40:41 2002 +0000
+++ b/lisp/ChangeLog	Mon Mar 18 10:07:39 2002 +0000
@@ -1,3 +1,35 @@
+2002-03-18  Ben Wing  <ben@xemacs.org>
+
+	* mule\lao.el (?):
+	* mule\lao.el (lao):
+	Convert stuff to XEmacs-style.
+	
+	* mule\thai-xtis.el:
+	* mule\thai-xtis.el (thai-xtis):
+	* mule\thai-xtis.el (?x): New.
+	Move thai-xtis-chars.el stuff to here, since we can now handle
+	encountering characters of a charset before the charset is defined.
+
+	* mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el.
+
+	* mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el,
+	which references charsets and thus needs to be delayed until after
+	all charsets have been created.
+
+	* mule\mule-msw-init-late.el: New file, some stuff from
+	mule-msw-init.el.
+
+2002-03-18  Ben Wing  <ben@xemacs.org>
+
+	* dumped-lisp.el (preloaded-file-list):
+	Load the remaining languages -- lao, indian, devanagari, tibetan.
+	Load new file mule-msw-init-late.
+	
+	* unicode.el (load-unicode-tables):
+	* unicode.el (init-unicode-at-startup):
+	Load the new tables for Ethiopic, Vietnamese, and other languages
+	extracted from mule-ucs.
+
 2002-03-16  Ben Wing  <ben@xemacs.org>
 
 	* mule\arabic.el:
--- a/lisp/dumped-lisp.el	Mon Mar 18 09:40:41 2002 +0000
+++ b/lisp/dumped-lisp.el	Mon Mar 18 10:07:39 2002 +0000
@@ -148,23 +148,30 @@
 ;;     (pureload "canna")
 ;;   )
 
-;; Now load files to set up all the different languages/environments
-;; that Mule knows about.
+;; Now load files to set up all the different languages/environments that
+;; Mule knows about.  Formerly we had to worry about files shadowed by
+;; those of the same name in leim/quail.el, but no longer, since we now
+;; compile with -no-packages.
 
 	(when-feature mule "arabic")
 	(when-feature mule "chinese")
-	(when-feature mule "mule/cyrillic") ; overloaded in leim/quail
+	(when-feature mule "cyrillic")
 	(when-feature mule "english")
 	(when-feature mule "ethiopic")
 	(when-feature mule "european")
-	(when-feature mule "mule/greek") ; overloaded in leim/quail
+	(when-feature mule "greek")
 	(when-feature mule "hebrew")
+	(when-feature mule "indian")
+	(when-feature mule "devanagari") ; must be loaded after indian.el
 	(when-feature mule "japanese")
 	(when-feature mule "korean")
+	(when-feature mule "lao")
 	(when-feature mule "latin")
 	(when-feature mule "misc-lang")
-	(when-feature mule "thai-xtis-chars")
-	(when-feature mule "mule/thai-xtis") ; overloaded in leim/quail
+	;; #### merge thai and thai-xtis!!!
+	;(when-feature mule "thai")
+	(when-feature mule "thai-xtis")
+	(when-feature mule "tibetan")
 	(when-feature mule "vietnamese")
 
 	;; Specialized language support
@@ -177,10 +184,14 @@
 ;; SKK is now a package
 ;	(when-feature mule "skk-leim")
 
-
 ;; Enable Mule capability for Gnus, mail, etc...
 ;; Moved to sunpro-load.el - the default only for Sun.
 ;;(pureload "mime-setup")
+
+	;; needs access to the charsets created by the above
+	;; language-specific files.
+	(when-feature (and mule mswindows) "mule-msw-init-late")
+
 ;;; mule-load.el ends here
 
 ;; preload InfoDock stuff.  should almost certainly not be here if
--- a/lisp/mule/lao.el	Mon Mar 18 09:40:41 2002 +0000
+++ b/lisp/mule/lao.el	Mon Mar 18 10:07:39 2002 +0000
@@ -68,11 +68,11 @@
 	 (features lao-util)
 	 (documentation . t)))
 
-(aset use-default-ascent ?(1;(B t)
-(aset use-default-ascent ?(1=(B t)
-(aset use-default-ascent ?(1?(B t)
-(aset use-default-ascent ?(1B(B t)
-(aset ignore-relative-composition ?(1\(B t)
+(put-char-table ?(1;(B t use-default-ascent)
+(put-char-table ?(1=(B t use-default-ascent)
+(put-char-table ?(1?(B t use-default-ascent)
+(put-char-table ?(1B(B t use-default-ascent)
+(put-char-table ?(1\(B t ignore-relative-composition)
 
 ;; Register a function to compose Lao characters.
 (put-char-table 'lao
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-msw-init-late.el	Mon Mar 18 10:07:39 2002 +0000
@@ -0,0 +1,58 @@
+;;; mule-msw-init-late.el --- initialization code for MS Windows under MULE
+;;; Copyright (C) 2001, 2002 Ben Wing.
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;; mapping between XEmacs charsets and code pages.  something like this
+;; will might around once all the Unicode code is written, so we know how
+;; to choose the right font.  (perhaps "code pages" will become "Unicode
+;; subranges"; they're more or less equivalent under Windows from a font
+;; perspective.) But ...  in reality, we can just query the charset for its
+;; Unicode ranges, and the "charset ID" is not a good indicator of what a
+;; particular font supports; e.g. there's no charset ID at all for Indian
+;; fonts, but Windows clearly supports them. (The docs say that Indian
+;; support is "all Unicode"; i.e. charset ID's are on their way out.  I
+;; guess we're supposed to query the font for what ranges it supports, and
+;; what its preferred range is.)
+
+(let ((l '((ascii . 1252)
+	   (latin-iso8859-2 . 1250)
+	   (cyrillic-iso8859-5 . 1251)
+	   (latin-iso8859-1 . 1252)
+	   (greek-iso8859-7 . 1253) 
+	   (latin-iso8859-9 . 1254)
+	   (hebrew-iso8859-8 . 1255)
+	   ;; (arabic-iso8859-6 . 1256)
+	   (latin-iso8859-4 . 1257)
+	   (vietnamese-viscii-lower . 1258)
+	   (vietnamese-viscii-upper . 1258)
+	   ;; (thai-tis620 . 874)
+	   (latin-jisx0201 . 932)
+	   (katakana-jisx0201 . 932)
+	   ;; (japanese-jisx0208-1978 . 932)
+	   (japanese-jisx0208 . 932)
+	   (japanese-jisx0212 . 932)
+	   (chinese-gb2312 . 936)
+	   (korean-ksc5601 . 949)
+	   (chinese-big5-1 . 950)
+	   (chinese-big5-2 . 950))))
+  (while l
+    (let ((charset (car (car l)))
+	  (code-page (cdr (car l))))
+    (mswindows-set-charset-code-page charset code-page)
+    (setq l (cdr l)))))
--- a/lisp/mule/mule-msw-init.el	Mon Mar 18 09:40:41 2002 +0000
+++ b/lisp/mule/mule-msw-init.el	Mon Mar 18 10:07:39 2002 +0000
@@ -18,38 +18,6 @@
 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 ;; Boston, MA 02111-1307, USA.
 
-;; mapping between XEmacs charsets and code pages.  something like
-;; this will remain around even after Unicode conversion, so we know
-;; how to choose the right font.  (perhaps "code pages" will become
-;; "Unicode subranges"; they're more or less equivalent under Windows
-;; from a font perspective.)
-(let ((l '((ascii . 1252)
-	   (latin-iso8859-2 . 1250)
-	   (cyrillic-iso8859-5 . 1251)
-	   (latin-iso8859-1 . 1252)
-	   (greek-iso8859-7 . 1253) 
-	   (latin-iso8859-9 . 1254)
-	   (hebrew-iso8859-8 . 1255)
-	   ;; (arabic-iso8859-6 . 1256)
-	   (latin-iso8859-4 . 1257)
-	   ;; (vietnamese-viscii-lower . 1258)
-	   ;; (vietnamese-viscii-upper . 1258)
-	   ;; (thai-tis620 . 874)
-	   (latin-jisx0201 . 932)
-	   (katakana-jisx0201 . 932)
-	   ;; (japanese-jisx0208-1978 . 932)
-	   (japanese-jisx0208 . 932)
-	   (japanese-jisx0212 . 932)
-	   (chinese-gb2312 . 936)
-	   (korean-ksc5601 . 949)
-	   (chinese-big5-1 . 950)
-	   (chinese-big5-2 . 950))))
-  (while l
-    (let ((charset (car (car l)))
-	  (code-page (cdr (car l))))
-    (mswindows-set-charset-code-page charset code-page)
-    (setq l (cdr l)))))
-
 (make-coding-system
  'mswindows-multibyte 'mswindows-multibyte
  "MS Windows Multibyte (current code page)"
--- a/lisp/mule/thai-xtis-chars.el	Mon Mar 18 09:40:41 2002 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-;;; thai-xtis-chars.el --- definition of the Thai XTIS charset. -*- coding: iso-2022-7bit; -*-
-
-;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-
-;; Author: MORIOKA Tomohiko <tomo@etl.go.jp>
-
-;; Keywords: mule, multilingual, Thai, XTIS
-
-;; This file is part of XEmacs.
-
-;; XEmacs is free software; you can redistribute it and/or modify it
-;; under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; XEmacs is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING.  If not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; Commentary:
-
-;; For Thai, the pre-composed character set proposed by
-;; Virach Sornlertlamvanich <virach@links.nectec.or.th> is supported.
-
-;;; Code:
-
-(make-charset 'thai-xtis "Precomposed Thai (XTIS by Virach)."
-	      '(registry "xtis-0"
-			 dimension 2
-			 columns 1
-			 chars 94
-			 final ??
-			 graphic 0))
-
-(define-category ?x "Precomposed Thai character.")
-(modify-category-entry 'thai-xtis ?x)
-
-;; thai-xtis-chars.el ends here.
--- a/lisp/mule/thai-xtis.el	Mon Mar 18 09:40:41 2002 +0000
+++ b/lisp/mule/thai-xtis.el	Mon Mar 18 10:07:39 2002 +0000
@@ -34,6 +34,17 @@
 
 ;;; Code:
 
+(make-charset 'thai-xtis "Precomposed Thai (XTIS by Virach)."
+	      '(registry "xtis-0"
+			 dimension 2
+			 columns 1
+			 chars 94
+			 final ??
+			 graphic 0))
+
+(define-category ?x "Precomposed Thai character.")
+(modify-category-entry 'thai-xtis ?x)
+
 (when (featurep 'xemacs)
   (let ((deflist	'(;; chars	syntax
 			  ("$(?!0(B-$(?NxP0R0S0`0(B-$(?e0(B"	"w")
--- a/lisp/unicode.el	Mon Mar 18 09:40:41 2002 +0000
+++ b/lisp/unicode.el	Mon Mar 18 10:07:39 2002 +0000
@@ -80,60 +80,87 @@
 ;; 700Mhz even with a totally optimization-disabled XEmacs.
 (defun load-unicode-tables ()
   "Initialize the Unicode translation tables for all standard charsets."
-  (let ((undir (expand-file-name "unicode/unicode-consortium" data-directory))
-	(parse-args
-	 '(("8859-1.TXT" latin-iso8859-1 #xA0 #xFF #x-80)
-	   ;; "8859-10.TXT"
-	   ;; "8859-13.TXT"
-	   ;; "8859-14.TXT"
-	   ;; "8859-15.TXT"
-	   ("8859-2.TXT" latin-iso8859-2 #xA0 #xFF #x-80)
-	   ("8859-3.TXT" latin-iso8859-3 #xA0 #xFF #x-80)
-	   ("8859-4.TXT" latin-iso8859-4 #xA0 #xFF #x-80)
-	   ("8859-5.TXT" cyrillic-iso8859-5 #xA0 #xFF #x-80)
-	   ("8859-6.TXT" arabic-iso8859-6 #xA0 #xFF #x-80)
-	   ("8859-7.TXT" greek-iso8859-7 #xA0 #xFF #x-80)
-	   ("8859-8.TXT" hebrew-iso8859-8 #xA0 #xFF #x-80)
-	   ("8859-9.TXT" latin-iso8859-9 #xA0 #xFF #x-80)
-	   ;; charset for Big5 does not matter; specifying `big5' will
-	   ;; automatically make the right thing happen
-	   ("BIG5.TXT" chinese-big5-1 nil nil nil big5)
-	   ("CNS11643.TXT" chinese-cns11643-1 #x10000 #x1FFFF #x-10000)
-	   ("CNS11643.TXT" chinese-cns11643-2 #x20000 #x2FFFF #x-20000)
-	   ;; "CP1250.TXT" 
-	   ;; "CP1251.TXT" 
-	   ;; "CP1252.TXT" 
-	   ;; "CP1253.TXT" 
-	   ;; "CP1254.TXT" 
-	   ;; "CP1255.TXT" 
-	   ;; "CP1256.TXT" 
-	   ;; "CP1257.TXT" 
-	   ;; "CP1258.TXT" 
-	   ;; "CP874.TXT" 
-	   ;; "CP932.TXT" 
-	   ;; "CP936.TXT" 
-	   ;; "CP949.TXT" 
-	   ;; "CP950.TXT" 
-	   ;; "GB12345.TXT" 
-	   ("GB2312.TXT" chinese-gb2312)
-	   ;; "HANGUL.TXT" 
-           ("JIS0201.TXT" latin-jisx0201 #x21 #x80)
-	   ("JIS0201.TXT" katakana-jisx0201 #xA0 #xFF #x-80)
-	   ("JIS0208.TXT" japanese-jisx0208 nil nil nil ignore-first-column)
-	   ("JIS0212.TXT" japanese-jisx0212)
-	   ;; "JOHAB.TXT" 
-	   ;; "KOI8-R.TXT" 
-	   ;; "KSC5601.TXT" 
-	   ;; note that KSC5601.TXT as currently distributed is NOT what
-	   ;; it claims to be!  see comments in KSX1001.TXT.
-	   ("KSX1001.TXT" korean-ksc5601)
-	   ;; "OLD5601.TXT" 
-	   ;; "SHIFTJIS.TXT"
+  (let ((parse-args
+	 '(("unicode/unicode-consortium"
+	    ("8859-1.TXT" latin-iso8859-1 #xA0 #xFF #x-80)
+	    ;; "8859-10.TXT"
+	    ;; "8859-13.TXT"
+	    ;; "8859-14.TXT"
+	    ("8859-14.TXT" latin-iso8859-14 #xA0 #xFF #x-80)
+	    ("8859-15.TXT" latin-iso8859-15 #xA0 #xFF #x-80)
+	    ("8859-2.TXT" latin-iso8859-2 #xA0 #xFF #x-80)
+	    ("8859-3.TXT" latin-iso8859-3 #xA0 #xFF #x-80)
+	    ("8859-4.TXT" latin-iso8859-4 #xA0 #xFF #x-80)
+	    ("8859-5.TXT" cyrillic-iso8859-5 #xA0 #xFF #x-80)
+	    ("8859-6.TXT" arabic-iso8859-6 #xA0 #xFF #x-80)
+	    ("8859-7.TXT" greek-iso8859-7 #xA0 #xFF #x-80)
+	    ("8859-8.TXT" hebrew-iso8859-8 #xA0 #xFF #x-80)
+	    ("8859-9.TXT" latin-iso8859-9 #xA0 #xFF #x-80)
+	    ;; charset for Big5 does not matter; specifying `big5' will
+	    ;; automatically make the right thing happen
+	    ("BIG5.TXT" chinese-big5-1 nil nil nil big5)
+	    ("CNS11643.TXT" chinese-cns11643-1 #x10000 #x1FFFF #x-10000)
+	    ("CNS11643.TXT" chinese-cns11643-2 #x20000 #x2FFFF #x-20000)
+	    ;; "CP1250.TXT" 
+	    ;; "CP1251.TXT" 
+	    ;; "CP1252.TXT" 
+	    ;; "CP1253.TXT" 
+	    ;; "CP1254.TXT" 
+	    ;; "CP1255.TXT" 
+	    ;; "CP1256.TXT" 
+	    ;; "CP1257.TXT" 
+	    ;; "CP1258.TXT" 
+	    ;; "CP874.TXT" 
+	    ;; "CP932.TXT" 
+	    ;; "CP936.TXT" 
+	    ;; "CP949.TXT" 
+	    ;; "CP950.TXT" 
+	    ;; "GB12345.TXT" 
+	    ("GB2312.TXT" chinese-gb2312)
+	    ;; "HANGUL.TXT" 
+	    ("JIS0201.TXT" latin-jisx0201 #x21 #x80)
+	    ("JIS0201.TXT" katakana-jisx0201 #xA0 #xFF #x-80)
+	    ("JIS0208.TXT" japanese-jisx0208 nil nil nil ignore-first-column)
+	    ("JIS0212.TXT" japanese-jisx0212)
+	    ;; "JOHAB.TXT" 
+	    ;; "KOI8-R.TXT" 
+	    ;; "KSC5601.TXT" 
+	    ;; note that KSC5601.TXT as currently distributed is NOT what
+	    ;; it claims to be!  see comments in KSX1001.TXT.
+	    ("KSX1001.TXT" korean-ksc5601)
+	    ;; "OLD5601.TXT" 
+	    ;; "SHIFTJIS.TXT"
+	    )
+	   ("unicode/mule-ucs"
+	    ;; use these instead of the above ones once we support surrogates
+	    ;;("chinese-cns11643-1.txt" chinese-cns11643-1)
+	    ;;("chinese-cns11643-2.txt" chinese-cns11643-2)
+	    ;;("chinese-cns11643-3.txt" chinese-cns11643-3)
+	    ;;("chinese-cns11643-4.txt" chinese-cns11643-4)
+	    ;;("chinese-cns11643-5.txt" chinese-cns11643-5)
+	    ;;("chinese-cns11643-6.txt" chinese-cns11643-6)
+	    ;;("chinese-cns11643-7.txt" chinese-cns11643-7)
+	    ("chinese-sisheng.txt" chinese-sisheng)
+	    ("ethiopic.txt" ethiopic)
+	    ("indian-is13194.txt" indian-is13194)
+	    ("ipa.txt" ipa)
+	    ("thai-tis620.txt" thai-tis620)
+	    ("tibetan.txt" tibetan)
+	    ("vietnamese-viscii-lower.txt" vietnamese-viscii-lower)
+	    ("vietnamese-viscii-upper.txt" vietnamese-viscii-upper)
+	    )
+	   ("unicode/other"
+	    ("lao.txt" lao)
+	    )
 	   )))
-    (mapcar #'(lambda (args)
-		(apply 'parse-unicode-translation-table
-		       (expand-file-name (car args) undir)
-		       (cdr args)))
+    (mapcar #'(lambda (tables)
+		(let ((undir
+		       (expand-file-name (car tables) data-directory)))
+		  (mapcar #'(lambda (args)
+			      (apply 'parse-unicode-translation-table
+				     (expand-file-name (car args) undir)
+				     (cdr args)))
+			  (cdr tables))))
 	    parse-args)))
 
 (defun init-unicode-at-startup ()
--- a/nt/ChangeLog	Mon Mar 18 09:40:41 2002 +0000
+++ b/nt/ChangeLog	Mon Mar 18 10:07:39 2002 +0000
@@ -1,3 +1,11 @@
+2002-03-18  Ben Wing  <ben@xemacs.org>
+
+	* config.inc.samp (DEPEND):
+	* config.inc.samp (PERL_NEEDS_MORE_QUOTING):
+	* xemacs.mak (DEPEND):
+	* xemacs.mak (PERL_NEEDS_MORE_QUOTING):
+	Deal with never-ending perl quoting problems.
+
 2002-03-16  Ben Wing  <ben@xemacs.org>
 
 	* .cvsignore:
--- a/nt/config.inc.samp	Mon Mar 18 09:40:41 2002 +0000
+++ b/nt/config.inc.samp	Mon Mar 18 10:07:39 2002 +0000
@@ -75,6 +75,11 @@
 # Set this to get nmake to use dependency info (requires Perl to be installed)
 DEPEND=0
 
+# Sometimes perl needs more backslash quoting when it's being run to
+# compute dependency info, sometimes less.  Allah only knows why.  If you
+# get syntax errors in depend.tmp, try changing this.
+PERL_NEEDS_MORE_QUOTING=1
+
 ############################################################################
 
 # Some technical options.
--- a/nt/xemacs.mak	Mon Mar 18 09:40:41 2002 +0000
+++ b/nt/xemacs.mak	Mon Mar 18 10:07:39 2002 +0000
@@ -325,6 +325,9 @@
 !if !defined(DEPEND)
 DEPEND=0
 !endif
+!if !defined(PERL_NEEDS_MORE_QUOTING)
+PERL_NEEDS_MORE_QUOTING=1
+!endif
 !if $(DEPEND) && exist("$(SRC)\depend")
 ! if [if not exist $(OUTDIR)\nul mkdir "$(OUTDIR)"]
 ! endif
@@ -333,7 +336,11 @@
 # much backslash quoting.  This does not happen, of course, with a non-
 # Cygwin Perl, so in that circumstance, you'd be screwed and would have
 # to fix this Makefile to not have a special Cygwin case.
-! if defined(_)
+# ! if defined(_)
+# #### 3-17-02 Double yuck!  Suddenly, perl is wanting more quoting always.
+# #### I have no idea what changed.  So I'm just making a variable for
+# #### this. --ben
+! if $(PERL_NEEDS_MORE_QUOTING)
 !  if [perl -p -e "s/^\\x23if defined(.+)/!if defined$$1/; s/^\\x23e/!e/;" \
 	-e "s/([\\s=^])([\\w\\d\\.\\-^]+\\.[ch^])/$$1$(SRC:\=\\\\)\\\\$$2/g;" \
 	-e "s/^(.+)\\.o:(.+)/$(OUTDIR:\=\\\\)\\\\$$1.obj:$$2 $(NT:\=\\\\)\\\\config.inc/;" \
--- a/src/ChangeLog	Mon Mar 18 09:40:41 2002 +0000
+++ b/src/ChangeLog	Mon Mar 18 10:07:39 2002 +0000
@@ -1,3 +1,18 @@
+2002-03-18  Ben Wing  <ben@xemacs.org>
+
+	* fns.c:
+	* fns.c (Frequire):
+	* fns.c (vars_of_fns):
+	* lread.c:
+	* lread.c (Fload_internal):
+	* lread.c (PRINT_LOADING_MESSAGE_1):
+	Add variable require-prints-loading-message to cause loading
+	messages to get printed when a file is loading during a `require',
+	which normally doesn't happen.  This can be set using env var
+	XEMACSDEBUG to debug problems with non-interactive compilation.
+	Modify load-internal so it prints "Requiring: ..." instead of
+	"Loading: ..." when appropriate.
+
 2002-03-16  Ben Wing  <ben@xemacs.org>
 
 	* cm.c (cmgoto):
--- a/src/fns.c	Mon Mar 18 09:40:41 2002 +0000
+++ b/src/fns.c	Mon Mar 18 10:07:39 2002 +0000
@@ -63,6 +63,8 @@
 static int internal_old_equal (Lisp_Object, Lisp_Object, int);
 Lisp_Object safe_copy_tree (Lisp_Object arg, Lisp_Object vecp, int depth);
 
+int require_prints_loading_message;
+
 static Lisp_Object
 mark_bit_vector (Lisp_Object obj)
 {
@@ -3441,7 +3443,7 @@
       Vautoload_queue = Qt;
 
       call4 (Qload, NILP (filename) ? Fsymbol_name (feature) : filename,
-	     Qnil, Qt, Qnil);
+	     Qnil, require_prints_loading_message ? Qrequire : Qt, Qnil);
 
       tem = Fmemq (feature, Vfeatures);
       if (NILP (tem))
@@ -3975,8 +3977,13 @@
 */ );
   {
     char c = SEPCHAR;
-    Vpath_separator = make_string ((Intbyte *)&c, 1);
+    Vpath_separator = make_string ((Intbyte *) &c, 1);
   }
+
+  DEFVAR_BOOL ("require-prints-loading-message",
+	       &require_prints_loading_message /*
+If non-nil, every time a file is loaded by `require' a message is printed.
+*/ );
 }
 
 void
--- a/src/lread.c	Mon Mar 18 09:40:41 2002 +0000
+++ b/src/lread.c	Mon Mar 18 10:07:39 2002 +0000
@@ -1,7 +1,7 @@
 /* Lisp parsing and input streams.
    Copyright (C) 1985-1989, 1992-1995 Free Software Foundation, Inc.
    Copyright (C) 1995 Tinker Systems.
-   Copyright (C) 1996, 2001 Ben Wing.
+   Copyright (C) 1996, 2001, 2002 Ben Wing.
 
 This file is part of XEmacs.
 
@@ -543,7 +543,8 @@
   Lisp_Object found   = Qnil;
   struct gcpro gcpro1, gcpro2, gcpro3;
   int reading_elc = 0;
-  int message_p = NILP (nomessage);
+  int from_require = EQ (nomessage, Qrequire);
+  int message_p = NILP (nomessage) || from_require;
 /*#ifdef DEBUG_XEMACS*/
   static Lisp_Object last_file_loaded;
 /*#endif*/
@@ -647,24 +648,32 @@
 	reading_elc = 1;
     }
 
-#define PRINT_LOADING_MESSAGE(done) do {				\
-  if (load_ignore_elc_files)						\
-    {									\
-      if (message_p)							\
-	message ("Loading %s..." done, XSTRING_DATA (newer));		\
-    }									\
-  else if (!NILP (newer))						\
-    message ("Loading %s..." done " (file %s is newer)",		\
-	     XSTRING_DATA (file),					\
-	     XSTRING_DATA (newer));					\
-  else if (source_only)							\
-    message ("Loading %s..." done " (file %s.elc does not exist)",	\
-	     XSTRING_DATA (file),					\
-	     XSTRING_DATA (Ffile_name_nondirectory (file)));		\
-  else if (message_p)							\
-    message ("Loading %s..." done, XSTRING_DATA (file));		\
+#define PRINT_LOADING_MESSAGE_1(loading, done) do {		\
+  if (load_ignore_elc_files)					\
+    {								\
+      if (message_p)						\
+	message (loading done, XSTRING_DATA (newer));		\
+    }								\
+  else if (!NILP (newer))					\
+    message (loading done " (file %s is newer)",		\
+	     XSTRING_DATA (file),				\
+	     XSTRING_DATA (newer));				\
+  else if (source_only)						\
+    message (loading done " (file %s.elc does not exist)",	\
+	     XSTRING_DATA (file),				\
+	     XSTRING_DATA (Ffile_name_nondirectory (file)));	\
+  else if (message_p)						\
+    message (loading done, XSTRING_DATA (file));		\
   } while (0)
 
+#define PRINT_LOADING_MESSAGE(done)			\
+do {							\
+  if (from_require)					\
+    PRINT_LOADING_MESSAGE_1 ("Requiring %s...", done);	\
+  else							\
+    PRINT_LOADING_MESSAGE_1 ("Loading %s...", done);	\
+} while (0)
+
   PRINT_LOADING_MESSAGE ("");
 
   {