changeset 4317:15d36164ebd7

Eliminate lost docstring warnings on 21.5. 2007-12-09 Aidan Kehoe <kehoea@parhasard.net> * unicode.el (load-unicode-mapping-tables): Call #'set-default-unicode-precedence wrapped with #'declare-fboundp, to avoid warnings on non-Mule builds. * unicode.el (ccl-encode-to-ucs-2): * unicode.el (unicode-error-sequence-regexp-range): * unicode.el (frob-unicode-errors-region): * unicode.el (unicode-error-translate-region): Unconditionally provide these functions and variables at top level in the code, to make them available to make-docfile. For the INITVALUE args to #'defvar, conditionalise on (featurep 'mule); ditto for the code that tests the lookup tables and provides the WGL4 characters as jit-ucs-charset-0 characters. Unintern the function and variable symbols if (featurep 'mule) is not true, so their function definitions and so on get garbage collected at dump time in non-Mule builds. * obsolete.el (add-menu-item): * obsolete.el (add-menu): * obsolete.el (add-menu): * obsolete.el (package-get-download-menu): Provide these functions at top level, in order to make them available to make-docfile.c, which has trouble interpreting byte code. Unintern their symbols if the menubar feature is not available, which means they will be garbage collected on non-menubar builds.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 09 Dec 2007 14:55:03 +0100
parents 2e528ccfe690
children 4d0f773d5e21
files lisp/ChangeLog lisp/obsolete.el lisp/unicode.el
diffstat 3 files changed, 272 insertions(+), 220 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Dec 09 14:04:13 2007 +0100
+++ b/lisp/ChangeLog	Sun Dec 09 14:55:03 2007 +0100
@@ -1,3 +1,33 @@
+2007-12-09  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* unicode.el (load-unicode-mapping-tables):
+	Call #'set-default-unicode-precedence wrapped with
+	#'declare-fboundp, to avoid warnings on non-Mule builds. 
+
+	* unicode.el (ccl-encode-to-ucs-2):
+	* unicode.el (unicode-error-sequence-regexp-range):	
+	* unicode.el (frob-unicode-errors-region):
+	* unicode.el (unicode-error-translate-region):
+	Unconditionally provide these functions and variables at top
+	level in the code, to make them available to make-docfile. For the
+	INITVALUE args to #'defvar, conditionalise on (featurep 'mule);
+	ditto for the code that tests the lookup tables and provides the
+	WGL4 characters as jit-ucs-charset-0 characters.
+
+	Unintern the function and variable symbols if (featurep 'mule) is
+	not true, so their function definitions and so on get garbage
+	collected at dump time in non-Mule builds. 
+
+	* obsolete.el (add-menu-item): 
+	* obsolete.el (add-menu): 
+	* obsolete.el (add-menu): 
+	* obsolete.el (package-get-download-menu):
+	Provide these functions at top level, in order to make them
+	available to make-docfile.c, which has trouble interpreting byte
+	code. Unintern their symbols if the menubar feature is not
+	available, which means they will be garbage collected on
+	non-menubar builds.
+
 2007-12-09  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* mule/latin.el: 
--- a/lisp/obsolete.el	Sun Dec 09 14:04:13 2007 +0100
+++ b/lisp/obsolete.el	Sun Dec 09 14:55:03 2007 +0100
@@ -222,23 +222,28 @@
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;; menu stuff
 
-(when (featurep 'menubar)
-  (defun add-menu-item (menu-path item-name function enabled-p &optional before)
-    "Obsolete.  See the function `add-menu-button'."
-    (or item-name (error "must specify an item name"))
-    (add-menu-button menu-path (vector item-name function enabled-p) before))
-  (make-obsolete 'add-menu-item 'add-menu-button)
+(defun add-menu-item (menu-path item-name function enabled-p &optional before)
+  "Obsolete.  See the function `add-menu-button'."
+  (or item-name (error "must specify an item name"))
+  (declare-fboundp (add-menu-button menu-path (vector item-name function enabled-p) before)))
+(make-obsolete 'add-menu-item 'add-menu-button)
 
-  (defun add-menu (menu-path menu-name menu-items &optional before)
-    "See the function `add-submenu'."
-    (or menu-name (error "must specify a menu name"))
-    (or menu-items (error "must specify some menu items"))
-    (add-submenu menu-path (cons menu-name menu-items) before))
-  ;; Can't make this obsolete.  easymenu depends on it.
-  (make-compatible 'add-menu 'add-submenu)
+(defun add-menu (menu-path menu-name menu-items &optional before)
+  "See the function `add-submenu'."
+  (or menu-name (error "must specify a menu name"))
+  (or menu-items (error "must specify some menu items"))
+  (declare-fboundp (add-submenu menu-path (cons menu-name menu-items) before)))
+;; Can't make this obsolete.  easymenu depends on it.
+(make-compatible 'add-menu 'add-submenu)
 
-  (define-obsolete-function-alias 'package-get-download-menu 
-    'package-ui-download-menu))
+(define-obsolete-function-alias 'package-get-download-menu 
+  'package-ui-download-menu)
+
+(unless (featurep 'menubar)
+  ;; Don't provide the last three functions unless the menubar feature is
+  ;; available. This approach (with #'unintern) avoids warnings about lost
+  ;; docstrings since make-docfile doesn't parse bytecode.
+  (mapcar #'unintern '(add-menu-item add-menu package-get-download-menu)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;; minibuffer
 
--- a/lisp/unicode.el	Sun Dec 09 14:04:13 2007 +0100
+++ b/lisp/unicode.el	Sun Dec 09 14:55:03 2007 +0100
@@ -149,20 +149,21 @@
     ;; *not* mapping various European characters to East Asian characters;
     ;; otherwise the default-unicode-precedence-list is numerically ordered
     ;; by charset ID.
-    (set-default-unicode-precedence-list
-     '(ascii control-1 latin-iso8859-1 latin-iso8859-2 latin-iso8859-15
-       greek-iso8859-7 hebrew-iso8859-8 ipa cyrillic-iso8859-5
-       latin-iso8859-16 latin-iso8859-3 latin-iso8859-4 latin-iso8859-9
-       vietnamese-viscii-lower vietnamese-viscii-upper arabic-iso8859-6
-       jit-ucs-charset-0 japanese-jisx0208 japanese-jisx0208-1978
-       japanese-jisx0212 japanese-jisx0213-1 japanese-jisx0213-2
-       chinese-gb2312 chinese-sisheng chinese-big5-1 chinese-big5-2
-       indian-is13194 korean-ksc5601 chinese-cns11643-1 chinese-cns11643-2
-       chinese-isoir165 arabic-1-column arabic-2-column arabic-digit
-       composite ethiopic indian-1-column indian-2-column jit-ucs-charset-0
-       katakana-jisx0201 lao thai-tis620 thai-xtis tibetan tibetan-1-column
-       latin-jisx0201 chinese-cns11643-3 chinese-cns11643-4
-       chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7))))
+    (declare-fboundp
+     (set-default-unicode-precedence-list
+      '(ascii control-1 latin-iso8859-1 latin-iso8859-2 latin-iso8859-15
+	greek-iso8859-7 hebrew-iso8859-8 ipa cyrillic-iso8859-5
+	latin-iso8859-16 latin-iso8859-3 latin-iso8859-4 latin-iso8859-9
+	vietnamese-viscii-lower vietnamese-viscii-upper arabic-iso8859-6
+	jit-ucs-charset-0 japanese-jisx0208 japanese-jisx0208-1978
+	japanese-jisx0212 japanese-jisx0213-1 japanese-jisx0213-2
+	chinese-gb2312 chinese-sisheng chinese-big5-1 chinese-big5-2
+	indian-is13194 korean-ksc5601 chinese-cns11643-1 chinese-cns11643-2
+	chinese-isoir165 arabic-1-column arabic-2-column arabic-digit
+	composite ethiopic indian-1-column indian-2-column jit-ucs-charset-0
+	katakana-jisx0201 lao thai-tis620 thai-xtis tibetan tibetan-1-column
+	latin-jisx0201 chinese-cns11643-3 chinese-cns11643-4
+	chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7)))))
 
 (make-coding-system
  'utf-16 'unicode
@@ -327,172 +328,174 @@
 	  "Sorry, encode-char doesn't yet support anything but the UCS.  ")
   (char-to-unicode char))
 
+(defconst ccl-encode-to-ucs-2
+  (eval-when-compile
+    (let ((pre-existing 
+           ;; This is the compiled CCL program from the assert
+           ;; below. Since this file is dumped and ccl.el isn't (and
+           ;; even when it was, it was dumped much later than this
+           ;; one), we can't compile the program at dump time. We can
+           ;; check at byte compile time that the program is as
+           ;; expected, though.
+           [1 16 131127 7 98872 65823 1307 5 -65536 65313 64833 1028
+              147513 8 82009 255 22]))
+      (when (featurep 'mule)
+        ;; Check that the pre-existing constant reflects the intended
+        ;; CCL program.
+        (assert
+         (equal pre-existing
+                (ccl-compile
+                 `(1 
+                   ( ;; mule-to-unicode's first argument is the
+                    ;; charset ID, the second its first byte
+                    ;; left shifted by 7 bits masked with its
+                    ;; second byte.
+                    (r1 = (r1 << 7)) 
+                    (r1 = (r1 | r2)) 
+                    (mule-to-unicode r0 r1) 
+                    (if (r0 & ,(lognot #xFFFF))
+                        ;; Redisplay looks in r1 and r2 for the first
+                        ;; and second bytes of the X11 font,
+                        ;; respectively. For non-BMP characters we
+                        ;; display U+FFFD.
+                        ((r1 = #xFF)
+                         (r2 = #xFD))
+                      ((r1 = (r0 >> 8)) 
+                       (r2 = (r0 & #xFF))))))))
+         nil 
+         "The pre-compiled CCL program appears broken. "))
+      pre-existing))
+  "CCL program to transform Mule characters to UCS-2.")
+
 (when (featurep 'mule)
-  (let ((prog
-         (eval-when-compile
-           (let ((pre-existing 
-                  ;; This is the compiled CCL program from the assert
-                  ;; below. Since this file is dumped and ccl.el isn't (and
-                  ;; even when it was, it was dumped much later than this
-                  ;; one), we can't compile the program at dump time. We can
-                  ;; check at byte compile time that the program is as
-                  ;; expected, though.
-                  [1 16 131127 7 98872 65823 1307 5 -65536 65313 64833 1028
-                     147513 8 82009 255 22]))
-             (when (featurep 'mule)
-               ;; Check that the pre-existing constant reflects the intended
-               ;; CCL program.
-               (assert
-                (equal pre-existing
-                       (ccl-compile
-                        `(1 
-                          (;; mule-to-unicode's first argument is the
-                           ;; charset ID, the second its first byte
-                           ;; left shifted by 7 bits masked with its
-                           ;; second byte.
-                           (r1 = (r1 << 7)) 
-                           (r1 = (r1 | r2)) 
-                           (mule-to-unicode r0 r1) 
-                           (if (r0 & ,(lognot #xFFFF))
-                               ;; Redisplay looks in r1 and r2 for the first
-                               ;; and second bytes of the X11 font,
-                               ;; respectively. For non-BMP characters we
-                               ;; display U+FFFD.
-                               ((r1 = #xFF)
-                                (r2 = #xFD))
-                             ((r1 = (r0 >> 8)) 
-                              (r2 = (r0 & #xFF))))))))
-                       nil 
-                       "The pre-compiled CCL program appears broken. "))
-             pre-existing))))
-    (defconst ccl-encode-to-ucs-2 prog
-      "CCL program to transform Mule characters to UCS-2.")
-    (put 'ccl-encode-to-ucs-2 'ccl-program-idx
-         (register-ccl-program 'ccl-encode-to-ucs-2 prog)))
+  (put 'ccl-encode-to-ucs-2 'ccl-program-idx
+       (declare-fboundp
+	(register-ccl-program 'ccl-encode-to-ucs-2 ccl-encode-to-ucs-2))))
 
-  ;; Now, create jit-ucs-charset-0 entries for those characters in Windows
-  ;; Glyph List 4 that would otherwise end up in East Asian character sets.
-  ;; 
-  ;; WGL4 is a character repertoire from Microsoft that gives a guideline
-  ;; for font implementors as to what characters are sufficient for
-  ;; pan-European support.  The intention of this code is to avoid the
-  ;; situation where these characters end up mapping to East Asian XEmacs
-  ;; characters, which generally clash strongly with European characters
-  ;; both in font choice and character width; jit-ucs-charset-0 is a
-  ;; single-width character set which comes before the East Asian character
-  ;; sets in the default-unicode-precedence-list above.
-  (loop for (ucs ascii-or-latin-1)
-    in '((#x2013 ?-) ;; U+2013 EN DASH
-         (#x2014 ?-) ;; U+2014 EM DASH
-         (#x2105 ?%) ;; U+2105 CARE OF
-         (#x203e ?-) ;; U+203E OVERLINE
-         (#x221f ?|) ;; U+221F RIGHT ANGLE
-         (#x2584 ?|) ;; U+2584 LOWER HALF BLOCK
-         (#x2588 ?|) ;; U+2588 FULL BLOCK
-         (#x258c ?|) ;; U+258C LEFT HALF BLOCK
-         (#x2550 ?|) ;; U+2550 BOX DRAWINGS DOUBLE HORIZONTAL
-         (#x255e ?|) ;; U+255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-         (#x256a ?|) ;; U+256A BOX DRAWINGS VERTICAL SINGLE & HORIZONTAL DOUBLE
-         (#x2561 ?|) ;; U+2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-         (#x2215 ?/) ;; U+2215 DIVISION SLASH
-         (#x02c9 ?`) ;; U+02C9 MODIFIER LETTER MACRON
-         (#x2211 ?s) ;; U+2211 N-ARY SUMMATION
-         (#x220f ?s) ;; U+220F N-ARY PRODUCT
-         (#x2248 ?=) ;; U+2248 ALMOST EQUAL TO
-         (#x2264 ?=) ;; U+2264 LESS-THAN OR EQUAL TO
-         (#x2265 ?=) ;; U+2265 GREATER-THAN OR EQUAL TO
-         (#x201c ?') ;; U+201C LEFT DOUBLE QUOTATION MARK
-         (#x2026 ?.) ;; U+2026 HORIZONTAL ELLIPSIS
-         (#x2212 ?-) ;; U+2212 MINUS SIGN
-         (#x2260 ?=) ;; U+2260 NOT EQUAL TO
-         (#x221e ?=) ;; U+221E INFINITY
-         (#x2642 ?=) ;; U+2642 MALE SIGN
-         (#x2640 ?=) ;; U+2640 FEMALE SIGN
-         (#x2032 ?=) ;; U+2032 PRIME
-         (#x2033 ?=) ;; U+2033 DOUBLE PRIME
-         (#x25cb ?=) ;; U+25CB WHITE CIRCLE
-         (#x25cf ?=) ;; U+25CF BLACK CIRCLE
-         (#x25a1 ?=) ;; U+25A1 WHITE SQUARE
-         (#x25a0 ?=) ;; U+25A0 BLACK SQUARE
-         (#x25b2 ?=) ;; U+25B2 BLACK UP-POINTING TRIANGLE
-         (#x25bc ?=) ;; U+25BC BLACK DOWN-POINTING TRIANGLE
-         (#x2192 ?=) ;; U+2192 RIGHTWARDS ARROW
-         (#x2190 ?=) ;; U+2190 LEFTWARDS ARROW
-         (#x2191 ?=) ;; U+2191 UPWARDS ARROW
-         (#x2193 ?=) ;; U+2193 DOWNWARDS ARROW
-         (#x2229 ?=) ;; U+2229 INTERSECTION
-         (#x2202 ?=) ;; U+2202 PARTIAL DIFFERENTIAL
-         (#x2261 ?=) ;; U+2261 IDENTICAL TO
-         (#x221a ?=) ;; U+221A SQUARE ROOT
-         (#x222b ?=) ;; U+222B INTEGRAL
-         (#x2030 ?=) ;; U+2030 PER MILLE SIGN
-         (#x266a ?=) ;; U+266A EIGHTH NOTE
-         (#x2020 ?*) ;; U+2020 DAGGER
-         (#x2021 ?*) ;; U+2021 DOUBLE DAGGER
-         (#x2500 ?|) ;; U+2500 BOX DRAWINGS LIGHT HORIZONTAL
-         (#x2502 ?|) ;; U+2502 BOX DRAWINGS LIGHT VERTICAL
-         (#x250c ?|) ;; U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT
-         (#x2510 ?|) ;; U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT
-         (#x2518 ?|) ;; U+2518 BOX DRAWINGS LIGHT UP AND LEFT
-         (#x2514 ?|) ;; U+2514 BOX DRAWINGS LIGHT UP AND RIGHT
-         (#x251c ?|) ;; U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-         (#x252c ?|) ;; U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-         (#x2524 ?|) ;; U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
-         (#x2534 ?|) ;; U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
-         (#x253c ?|) ;; U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-         (#x02da ?^) ;; U+02DA RING ABOVE
-         (#x2122 ?\xa9) ;; U+2122 TRADE MARK SIGN, ?,A)(B
+;; Now, create jit-ucs-charset-0 entries for those characters in Windows
+;; Glyph List 4 that would otherwise end up in East Asian character sets.
+;; 
+;; WGL4 is a character repertoire from Microsoft that gives a guideline
+;; for font implementors as to what characters are sufficient for
+;; pan-European support.  The intention of this code is to avoid the
+;; situation where these characters end up mapping to East Asian XEmacs
+;; characters, which generally clash strongly with European characters
+;; both in font choice and character width; jit-ucs-charset-0 is a
+;; single-width character set which comes before the East Asian character
+;; sets in the default-unicode-precedence-list above.
+(loop for (ucs ascii-or-latin-1)
+  in '((#x2013 ?-) ;; U+2013 EN DASH
+       (#x2014 ?-) ;; U+2014 EM DASH
+       (#x2105 ?%) ;; U+2105 CARE OF
+       (#x203e ?-) ;; U+203E OVERLINE
+       (#x221f ?|) ;; U+221F RIGHT ANGLE
+       (#x2584 ?|) ;; U+2584 LOWER HALF BLOCK
+       (#x2588 ?|) ;; U+2588 FULL BLOCK
+       (#x258c ?|) ;; U+258C LEFT HALF BLOCK
+       (#x2550 ?|) ;; U+2550 BOX DRAWINGS DOUBLE HORIZONTAL
+       (#x255e ?|) ;; U+255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+       (#x256a ?|) ;; U+256A BOX DRAWINGS VERTICAL SINGLE & HORIZONTAL DOUBLE
+       (#x2561 ?|) ;; U+2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+       (#x2215 ?/) ;; U+2215 DIVISION SLASH
+       (#x02c9 ?`) ;; U+02C9 MODIFIER LETTER MACRON
+       (#x2211 ?s) ;; U+2211 N-ARY SUMMATION
+       (#x220f ?s) ;; U+220F N-ARY PRODUCT
+       (#x2248 ?=) ;; U+2248 ALMOST EQUAL TO
+       (#x2264 ?=) ;; U+2264 LESS-THAN OR EQUAL TO
+       (#x2265 ?=) ;; U+2265 GREATER-THAN OR EQUAL TO
+       (#x201c ?') ;; U+201C LEFT DOUBLE QUOTATION MARK
+       (#x2026 ?.) ;; U+2026 HORIZONTAL ELLIPSIS
+       (#x2212 ?-) ;; U+2212 MINUS SIGN
+       (#x2260 ?=) ;; U+2260 NOT EQUAL TO
+       (#x221e ?=) ;; U+221E INFINITY
+       (#x2642 ?=) ;; U+2642 MALE SIGN
+       (#x2640 ?=) ;; U+2640 FEMALE SIGN
+       (#x2032 ?=) ;; U+2032 PRIME
+       (#x2033 ?=) ;; U+2033 DOUBLE PRIME
+       (#x25cb ?=) ;; U+25CB WHITE CIRCLE
+       (#x25cf ?=) ;; U+25CF BLACK CIRCLE
+       (#x25a1 ?=) ;; U+25A1 WHITE SQUARE
+       (#x25a0 ?=) ;; U+25A0 BLACK SQUARE
+       (#x25b2 ?=) ;; U+25B2 BLACK UP-POINTING TRIANGLE
+       (#x25bc ?=) ;; U+25BC BLACK DOWN-POINTING TRIANGLE
+       (#x2192 ?=) ;; U+2192 RIGHTWARDS ARROW
+       (#x2190 ?=) ;; U+2190 LEFTWARDS ARROW
+       (#x2191 ?=) ;; U+2191 UPWARDS ARROW
+       (#x2193 ?=) ;; U+2193 DOWNWARDS ARROW
+       (#x2229 ?=) ;; U+2229 INTERSECTION
+       (#x2202 ?=) ;; U+2202 PARTIAL DIFFERENTIAL
+       (#x2261 ?=) ;; U+2261 IDENTICAL TO
+       (#x221a ?=) ;; U+221A SQUARE ROOT
+       (#x222b ?=) ;; U+222B INTEGRAL
+       (#x2030 ?=) ;; U+2030 PER MILLE SIGN
+       (#x266a ?=) ;; U+266A EIGHTH NOTE
+       (#x2020 ?*) ;; U+2020 DAGGER
+       (#x2021 ?*) ;; U+2021 DOUBLE DAGGER
+       (#x2500 ?|) ;; U+2500 BOX DRAWINGS LIGHT HORIZONTAL
+       (#x2502 ?|) ;; U+2502 BOX DRAWINGS LIGHT VERTICAL
+       (#x250c ?|) ;; U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT
+       (#x2510 ?|) ;; U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT
+       (#x2518 ?|) ;; U+2518 BOX DRAWINGS LIGHT UP AND LEFT
+       (#x2514 ?|) ;; U+2514 BOX DRAWINGS LIGHT UP AND RIGHT
+       (#x251c ?|) ;; U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+       (#x252c ?|) ;; U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+       (#x2524 ?|) ;; U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
+       (#x2534 ?|) ;; U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
+       (#x253c ?|) ;; U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+       (#x02da ?^) ;; U+02DA RING ABOVE
+       (#x2122 ?\xa9) ;; U+2122 TRADE MARK SIGN, ?,A)(B
 
-         (#x0132 ?\xe6) ;; U+0132 LATIN CAPITAL LIGATURE IJ, ?,Af(B
-         (#x013f ?\xe6) ;; U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT, ?,Af(B
+       (#x0132 ?\xe6) ;; U+0132 LATIN CAPITAL LIGATURE IJ, ?,Af(B
+       (#x013f ?\xe6) ;; U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT, ?,Af(B
 
-         (#x0133 ?\xe6) ;; U+0133 LATIN SMALL LIGATURE IJ, ?,Af(B
-         (#x0140 ?\xe6) ;; U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT, ?,Af(B
-         (#x0149 ?\xe6) ;; U+0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPH,?,Af(B
+       (#x0133 ?\xe6) ;; U+0133 LATIN SMALL LIGATURE IJ, ?,Af(B
+       (#x0140 ?\xe6) ;; U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT, ?,Af(B
+       (#x0149 ?\xe6) ;; U+0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPH,?,Af(B
 
-         (#x2194 ?|) ;; U+2194 LEFT RIGHT ARROW
-         (#x2660 ?*) ;; U+2660 BLACK SPADE SUIT
-         (#x2665 ?*) ;; U+2665 BLACK HEART SUIT
-         (#x2663 ?*) ;; U+2663 BLACK CLUB SUIT
-         (#x2592 ?|) ;; U+2592 MEDIUM SHADE
-         (#x2195 ?|) ;; U+2195 UP DOWN ARROW
+       (#x2194 ?|) ;; U+2194 LEFT RIGHT ARROW
+       (#x2660 ?*) ;; U+2660 BLACK SPADE SUIT
+       (#x2665 ?*) ;; U+2665 BLACK HEART SUIT
+       (#x2663 ?*) ;; U+2663 BLACK CLUB SUIT
+       (#x2592 ?|) ;; U+2592 MEDIUM SHADE
+       (#x2195 ?|) ;; U+2195 UP DOWN ARROW
 
-         (#x2113 ?\xb9) ;; U+2113 SCRIPT SMALL L, ?,A9(B
-         (#x215b ?\xbe) ;; U+215B VULGAR FRACTION ONE EIGHTH, ?,A>(B
-         (#x215c ?\xbe) ;; U+215C VULGAR FRACTION THREE EIGHTHS, ?,A>(B
-         (#x215d ?\xbe) ;; U+215D VULGAR FRACTION FIVE EIGHTHS, ?,A>(B
-         (#x215e ?\xbe) ;; U+215E VULGAR FRACTION SEVEN EIGHTHS, ?,A>(B
-         (#x207f ?\xbe) ;; U+207F SUPERSCRIPT LATIN SMALL LETTER N, ?,A>(B
+       (#x2113 ?\xb9) ;; U+2113 SCRIPT SMALL L, ?,A9(B
+       (#x215b ?\xbe) ;; U+215B VULGAR FRACTION ONE EIGHTH, ?,A>(B
+       (#x215c ?\xbe) ;; U+215C VULGAR FRACTION THREE EIGHTHS, ?,A>(B
+       (#x215d ?\xbe) ;; U+215D VULGAR FRACTION FIVE EIGHTHS, ?,A>(B
+       (#x215e ?\xbe) ;; U+215E VULGAR FRACTION SEVEN EIGHTHS, ?,A>(B
+       (#x207f ?\xbe) ;; U+207F SUPERSCRIPT LATIN SMALL LETTER N, ?,A>(B
   
-         ;; These are not in WGL 4, but are IPA characters that should not
-         ;; be double width. They are the only IPA characters that both
-         ;; occur in packages/mule-packages/leim/ipa.el and end up in East
-         ;; Asian character sets when that file is loaded in an XEmacs
-         ;; without packages.
-         (#x2197 ?|) ;; U+2197 NORTH EAST ARROW
-         (#x2199 ?|) ;; U+2199 SOUTH WEST ARROW
-         (#x2191 ?|) ;; U+2191 UPWARDS ARROW
-         (#x207f ?\xb9));; U+207F SUPERSCRIPT LATIN SMALL LETTER N, ?,A9(B
-    with decoded = nil
-    with syntax-table = (standard-syntax-table)
-    ;; This creates jit-ucs-charset-0 entries because:
-    ;;
-    ;;    1. If the tables are dumped, it is run at dump time before they are
-    ;;    dumped, and as such before the relevant conversions are available
-    ;;    (they are made available in mule/general-late.el). 
-    ;;
-    ;;    2. If the tables are not dumped, it is run at dump time, long before
-    ;;    any of the other mappings are available.
-    ;;
-    do
-    (setq decoded (decode-char 'ucs ucs))
-    (assert (eq (char-charset decoded)
-                'jit-ucs-charset-0) nil 
-                "Unexpected Unicode decoding behavior.  ")
-    (modify-syntax-entry decoded
-                         (string 
-                          (char-syntax ascii-or-latin-1))
-                         syntax-table))
+       ;; These are not in WGL 4, but are IPA characters that should not
+       ;; be double width. They are the only IPA characters that both
+       ;; occur in packages/mule-packages/leim/ipa.el and end up in East
+       ;; Asian character sets when that file is loaded in an XEmacs
+       ;; without packages.
+       (#x2197 ?|) ;; U+2197 NORTH EAST ARROW
+       (#x2199 ?|) ;; U+2199 SOUTH WEST ARROW
+       (#x2191 ?|) ;; U+2191 UPWARDS ARROW
+       (#x207f ?\xb9)) ;; U+207F SUPERSCRIPT LATIN SMALL LETTER N, ?,A9(B
+  with decoded = nil
+  with syntax-table = (standard-syntax-table)
+  initially (unless (featurep 'mule) (return))
+  ;; This creates jit-ucs-charset-0 entries because:
+  ;;
+  ;;    1. If the tables are dumped, it is run at dump time before they are
+  ;;    dumped, and as such before the relevant conversions are available
+  ;;    (they are made available in mule/general-late.el). 
+  ;;
+  ;;    2. If the tables are not dumped, it is run at dump time, long before
+  ;;    any of the other mappings are available.
+  ;;
+  do
+  (setq decoded (decode-char 'ucs ucs))
+  (assert (eq (declare-fboundp (char-charset decoded))
+              'jit-ucs-charset-0) nil 
+              "Unexpected Unicode decoding behavior.  ")
+  (modify-syntax-entry decoded
+                       (string 
+                        (char-syntax ascii-or-latin-1))
+                       syntax-table))
 
 ;; *Sigh*, declarations needs to be at the start of the line to be picked up
 ;; by make-docfile. Not so much an issue with ccl-encode-to-ucs-2, which we
@@ -505,6 +508,7 @@
   (loop 
     with char-table = (make-char-table 'char)
     for i from ?\x00 to ?\xFF
+    initially (unless (featurep 'mule) (return))
     do
     (put-char-table (aref
                      ;; #xd800 is the first leading surrogate;
@@ -523,10 +527,11 @@
 correspond to the octets on disk, you can use this variable.  ")
 
 (defvar unicode-error-sequence-regexp-range
-  (format "%c%c-%c"
-          (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 0)
-          (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 3)
-          (aref (decode-coding-string "\xd8\x00\x00\xFF" 'utf-16-be) 3))
+  (and (featurep 'mule)
+       (format "%c%c-%c"
+               (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 0)
+               (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 3)
+               (aref (decode-coding-string "\xd8\x00\x00\xFF" 'utf-16-be) 3)))
   "Regular expression range to match Unicode error sequences in XEmacs.
 
 Invalid Unicode sequences on input are represented as XEmacs
@@ -536,32 +541,33 @@
 `skip-chars-forward') to search for such characters; see also
 `unicode-error-translate-region'.  ")
 
-  ;; Check that the lookup table is correct, and that all the actual error
-  ;; sequences are caught by the regexp.
-  (with-temp-buffer
-    (loop
-      for i from ?\x00 to ?\xFF
-      with to-check = (make-string 20 ?\x20) 
-      do 
-      (delete-region (point-min) (point-max))
-      (insert to-check)
-      (goto-char 10)
-      (insert (decode-coding-string (format "\xd8\x00\x00%c" i)
-				    'utf-16-be))
-      (backward-char)
-      (assert (= i (get-char-table (char-after (point)) 
-				   unicode-error-default-translation-table))
-	      (format "Char ?\\x%x not the expected error sequence!"
-		      i))
+;; Check that the lookup table is correct, and that all the actual error
+;; sequences are caught by the regexp.
+(with-temp-buffer
+  (loop
+    for i from ?\x00 to ?\xFF
+    with to-check = (make-string 20 ?\x20) 
+    initially (unless (featurep 'mule) (return))
+    do 
+    (delete-region (point-min) (point-max))
+    (insert to-check)
+    (goto-char 10)
+    (insert (decode-coding-string (format "\xd8\x00\x00%c" i)
+                                  'utf-16-be))
+    (backward-char)
+    (assert (= i (get-char-table (char-after (point)) 
+                                 unicode-error-default-translation-table))
+            (format "Char ?\\x%x not the expected error sequence!"
+                    i))
 
-      (goto-char (point-min))
-      ;; Comment out until the issue in
-      ;; 18179.49815.622843.336527@parhasard.net is fixed.
-      (assert t ;(re-search-forward (concat "[" 
-		;			 unicode-error-sequence-regexp-range
-		;			 "]"))
-	      nil
-	      (format "Could not find char ?\\x%x in buffer" i))))
+    (goto-char (point-min))
+    ;; Comment out until the issue in
+    ;; 18179.49815.622843.336527@parhasard.net is fixed.
+    (assert t ; (re-search-forward (concat "[" 
+              ;                        unicode-error-sequence-regexp-range
+              ;                        "]"))
+            nil
+            (format "Could not find char ?\\x%x in buffer" i))))
 
 (defun frob-unicode-errors-region (frob-function begin end &optional buffer)
   "Call FROB-FUNCTION on the Unicode error sequences between BEGIN and END.
@@ -590,8 +596,8 @@
 	  (if end
 	      (funcall frob-function begin end))))))
 
-  (defun unicode-error-translate-region (begin end &optional buffer table)
-    "Translate the Unicode error sequences in BUFFER between BEGIN and END.
+(defun unicode-error-translate-region (begin end &optional buffer table)
+  "Translate the Unicode error sequences in BUFFER between BEGIN and END.
 
 The error sequences are transformed, by default, into the ASCII,
 control-1 and latin-iso8859-1 characters with the numeric values
@@ -603,7 +609,18 @@
     (frob-unicode-errors-region
      (lambda (start finish)
        (translate-region start finish table))
-     begin end buffer)))
+     begin end buffer))
+
+(unless (featurep 'mule)
+  ;; We do this in such a roundabout way--instead of having the above defun
+  ;; and defvar calls inside a (when (featurep 'mule) ...) form--to have
+  ;; make-docfile.c pick up symbol and function documentation correctly. An
+  ;; alternative approach would be to fix make-docfile.c to be able to read
+  ;; Lisp.
+  (mapcar #'unintern
+          '(ccl-encode-to-ucs-2 unicode-error-default-translation-table
+            unicode-error-sequence-regexp-range
+            frob-unicode-errors-region unicode-error-translate-region)))
 
 ;; #### UTF-7 is not yet implemented, and it's tricky to do.  There's
 ;; an implementation in appendix A.1 of the Unicode Standard, Version