changeset 3970:949ac151a10d

[xemacs-hg @ 2007-05-20 20:09:20 by aidan] Test that all listed langenv input methods exist; comment out those we can't support while using 21.4 to compile our packages.
author aidan
date Sun, 20 May 2007 20:09:40 +0000
parents a7c03016302e
children de8a6fef7fcc
files lisp/ChangeLog lisp/mule/devanagari.el lisp/mule/ethiopic.el lisp/mule/hebrew.el lisp/mule/lao.el lisp/mule/mule-category.el lisp/mule/tibetan.el lisp/mule/vietnamese.el tests/ChangeLog tests/automated/mule-tests.el
diffstat 10 files changed, 76 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun May 20 16:04:10 2007 +0000
+++ b/lisp/ChangeLog	Sun May 20 20:09:40 2007 +0000
@@ -1,3 +1,25 @@
+2007-05-20  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mule/devanagari.el ("Devanagari"):
+	* mule/ethiopic.el ("Ethiopic"):
+	* mule/hebrew.el ("Hebrew"):
+	* mule/lao.el ("Lao"):
+	* mule/tibetan.el ("Tibetan"):
+	* mule/vietnamese.el ("Vietnamese"):
+	The Hebrew input method we don't provide, for less than stellar
+	reasons; we should reconsider when and if we get bidi support.
+	The other input methods require changes to mule-category.el that
+	21.4 doesn't have, and as such supporting them in the packages is
+	mostly impossible. I've commented out the references to them in
+	the corresponding language environment. 
+
+	* mule/mule-category.el (define-category):
+	Add an optional argument to define-category, taken from GNU; it's
+	still only a partial implementation, though. This whole file is
+	chaos. 
+	* mule/mule-category.el (make-category-table): New.
+	Trivial implementation, for GNU compatibility. 	
+
 2007-05-20  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* gutter-items.el (progress-feedback-with-label): Clarify docstring.
--- a/lisp/mule/devanagari.el	Sun May 20 16:04:10 2007 +0000
+++ b/lisp/mule/devanagari.el	Sun May 20 20:09:40 2007 +0000
@@ -62,7 +62,8 @@
  "Devanagari" '((charset indian-is13194 indian-2-column indian-1-column)
 		(coding-system in-is13194-devanagari)
 		(coding-priority in-is13194-devanagari)
-		(input-method . "devanagari-itrans")
+                ;; Not available in packages. 
+		; (input-method . "devanagari-itrans")
 		(features devan-util)
 		(documentation . "\
 Such languages using Devanagari script as Hindi and Marathi
--- a/lisp/mule/ethiopic.el	Sun May 20 16:04:10 2007 +0000
+++ b/lisp/mule/ethiopic.el	Sun May 20 20:09:40 2007 +0000
@@ -78,7 +78,7 @@
 	      (charset ethiopic)
 	      (coding-system iso-2022-7bit)
 	      (coding-priority iso-2022-7bit)
-	      (input-method . "ethiopic")
+	      ;; (input-method . "ethiopic")
 	      (features ethio-util)
 	      (sample-text . "$(3$Q#U!.(B")
 	      (documentation . t)))
--- a/lisp/mule/hebrew.el	Sun May 20 16:04:10 2007 +0000
+++ b/lisp/mule/hebrew.el	Sun May 20 20:09:40 2007 +0000
@@ -73,7 +73,8 @@
  "Hebrew" '((charset hebrew-iso8859-8)
 	    (coding-system iso-8859-8)
 	    (coding-priority iso-8859-8)
-	    (input-method . "hebrew")
+            ;; Not available in packages. 
+	    ;; (input-method . "hebrew")
 	    (sample-text . "Hebrew	[2],Hylem[0](B")
 	    (documentation . "Right-to-left writing is not yet supported.")
 	    ))
--- a/lisp/mule/lao.el	Sun May 20 16:04:10 2007 +0000
+++ b/lisp/mule/lao.el	Sun May 20 20:09:40 2007 +0000
@@ -62,7 +62,7 @@
  "Lao" '((charset lao)
 	 (coding-system lao)
 	 (coding-priority lao)
-	 (input-method . "lao")
+	 ;; (input-method . "lao")
 	 (nonascii-translation . lao)
 	 (unibyte-display . lao)
 	 (features lao-util)
--- a/lisp/mule/mule-category.el	Sun May 20 16:04:10 2007 +0000
+++ b/lisp/mule/mule-category.el	Sun May 20 20:09:40 2007 +0000
@@ -37,13 +37,18 @@
 
 (defvar defined-category-hashtable (make-hash-table :size 50))
 
-(defun define-category (designator doc-string)
+(defun define-category (designator doc-string &optional table)
   "Make a new category whose designator is DESIGNATOR.
 DESIGNATOR should be a visible letter of ' ' thru '~'.
-STRING is a doc string for the category.
-Letters of 'a' thru 'z' are already used or kept for the system."
+DOC-STRING is a doc string for the category.
+Letters of 'a' thru 'z' are already used or kept for the system.
+The category should be defined only in category table TABLE, which defaults
+to the current buffer's category table, but this is not implemented.  "
+  ;; #### Implement the limiting of the definition. 
   (check-argument-type 'category-designator-p designator)
   (check-argument-type 'stringp doc-string)
+  (setq table (or table (category-table)))
+  (check-argument-type 'category-table-p table)
   (puthash designator doc-string defined-category-hashtable))
 
 (defun undefine-category (designator)
@@ -142,6 +147,10 @@
 	 (progn ,@body)
        (set-category-table current-category-table))))
 
+(defun make-category-table ()
+  "Construct a new and empty category table and return it."
+  (make-char-table 'category))
+
 (defun describe-category ()
   "Describe the category specifications in the category table.
 The descriptions are inserted in a buffer, which is then displayed."
--- a/lisp/mule/tibetan.el	Sun May 20 16:04:10 2007 +0000
+++ b/lisp/mule/tibetan.el	Sun May 20 20:09:40 2007 +0000
@@ -136,7 +136,8 @@
  "Tibetan" '((charset tibetan tibetan-1-column)
 	     (coding-system tibetan-iso-8bit)
 	     (coding-priority iso-2022-7bit tibetan-iso-8bit)
-	     (input-method . "tibetan-wylie")
+             ;; Not available in packages. 
+	     ;; (input-method . "tibetan-wylie")
 	     (features tibet-util)
 	     (documentation . t)
 	     (sample-text 
--- a/lisp/mule/vietnamese.el	Sun May 20 16:04:10 2007 +0000
+++ b/lisp/mule/vietnamese.el	Sun May 20 20:09:40 2007 +0000
@@ -331,7 +331,8 @@
 		(coding-system viscii vscii viqr)
 		(coding-priority viscii)
 		(locale "vietnamese" "vi")
-		(input-method . "vietnamese-viqr")
+                ;; Not available in packages. 
+		;; (input-method . "vietnamese-viqr")
 		(features viet-util)
 		(sample-text . "Vietnamese (Ti,1*(Bng Vi,1.(Bt)	Ch,1`(Bo b,1U(Bn")
 		(documentation . "\
--- a/tests/ChangeLog	Sun May 20 16:04:10 2007 +0000
+++ b/tests/ChangeLog	Sun May 20 20:09:40 2007 +0000
@@ -1,3 +1,11 @@
+2007-05-20  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* automated/mule-tests.el:
+	Make the file name coding system tests work on OS X. 
+	Check various slots of the language environment structure to make
+	sure they're well formed--we've been shipping without a Turkish or
+	Latin-10 input method for years, for example, which is an error. 
+
 2007-04-30  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* automated/mule-tests.el (featurep):
--- a/tests/automated/mule-tests.el	Sun May 20 16:04:10 2007 +0000
+++ b/tests/automated/mule-tests.el	Sun May 20 20:09:40 2007 +0000
@@ -327,23 +327,26 @@
   ;;---------------------------------------------------------------
   ;; Test file-system character conversion (and, en passant, file ops)
   ;;---------------------------------------------------------------
-  (let* ((scaron (make-char 'latin-iso8859-2 57))
-	 (latin2-string (make-string 4 scaron))
+  (let* ((dstroke (make-char 'latin-iso8859-2 80))
+	 (latin2-string (make-string 4 dstroke))
 	 (prefix (concat (file-name-as-directory
 			  (file-truename (temp-directory)))
 			 latin2-string))
-	 (name1 (make-temp-name prefix))
-	 (name2 (make-temp-name prefix))
 	 (file-name-coding-system
 	  ;; 'iso-8859-X doesn't work on darwin (as of "Panther" 10.3), it
 	  ;; seems to know that file-name-coding-system is definitely utf-8
 	  (if (string-match "darwin" system-configuration)
 	      'utf-8
 	    'iso-8859-2))
-	 )
+         ;; make-temp-name does stat(), which on OS X requires that you
+         ;; normalise, where open() will normalise for you. Previously we
+         ;; used scaron as the Latin-2 character, and make-temp-name errored
+         ;; on OS X. LATIN CAPITAL LETTER D WITH STROKE does decompose.
+         (name1 (make-temp-name prefix))
+         (name2 (make-temp-name prefix)))
+    ;; This is how you suppress output from `message', called by `write-region'
     (Assert (not (equal name1 name2)))
     (Assert (not (file-exists-p name1)))
-    ;; This is how you suppress output from `message', called by `write-region'
     (Silence-Message
      (write-region (point-min) (point-max) name1))
     (Assert (file-exists-p name1))
@@ -352,8 +355,7 @@
       (Assert (file-exists-p name2))
       (Assert (equal (file-truename name2) name1))
       (Assert (equal (file-truename name1) name1)))
-
-      (ignore-file-errors (delete-file name1) (delete-file name2)))
+    (ignore-file-errors (delete-file name1) (delete-file name2)))
 
   ;; Add many more file operation tests here...
 
@@ -476,6 +478,20 @@
                katakana-jisx0201 korean-ksc5601 latin-iso8859-1
                latin-iso8859-2 thai-xtis vietnamese-viscii-lower))))
 
+  ;; Language environments. 
+  (dolist (language (mapcar 'car language-info-alist))
+    (set-language-environment language)
+    (Assert (equal language current-language-environment))
+    (set-input-method (get-language-info language 'input-method))
+    (Assert (equal (get-language-info language 'input-method) 
+                   current-input-method))
+    (dolist (charset (get-language-info language 'charset))
+      (Assert (charsetp (find-charset charset))))
+    (dolist (coding-system (get-language-info language 'coding-system))
+      (Assert (coding-system-p (find-coding-system coding-system))))
+    (dolist (coding-system (get-language-info language 'coding-system))
+      (Assert (coding-system-p (find-coding-system coding-system)))))
+
   (with-temp-buffer
     (flet
         ((Assert-elc-is-escape-quoted ()