changeset 3163:04a435415e1d

[xemacs-hg @ 2005-12-23 11:42:32 by stephent] undo spurious commit
author stephent
date Fri, 23 Dec 2005 11:42:35 +0000
parents 6e11554a16aa
children c9423e7289d2
files lisp/derived.el lisp/mule/mule-charset.el
diffstat 2 files changed, 16 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/derived.el	Fri Dec 23 11:40:39 2005 +0000
+++ b/lisp/derived.el	Fri Dec 23 11:42:35 2005 +0000
@@ -419,13 +419,22 @@
   ;; (set-char-table-parent new old) here.
   ;; We use map-char-table, not map-syntax-table, so we can explicitly
   ;; check for inheritance.
-  (map-char-table #'(lambda (range value)
-		      (when (eq ?@ (char-syntax-from-code value))
-			(map-char-table #'(lambda (rng val)
-					    (put-char-table rng val new))
-					old
-					range)))
-		  new))
+  (map-char-table
+   #'(lambda (key value)
+       (let ((newval (get-range-char-table key new 'multi)))
+	 (cond ((eq newval 'multi)	; OK, dive into the class hierarchy
+		(map-char-table
+		 #'(lambda (key1 value1)
+		     (when (eq ?@ (char-syntax-from-code
+				   (get-range-char-table key new ?@)))
+		       (put-char-table key1 value new))
+		     nil)
+		 new
+		 key))
+	       ((eq ?@ (char-syntax-from-code newval)) ;; class at once
+		(put-char-table key value new))))
+       nil)
+   old))
 
 ;; Merge an old abbrev table into a new one.
 ;; This function requires internal knowledge of how abbrev tables work,
--- a/lisp/mule/mule-charset.el	Fri Dec 23 11:40:39 2005 +0000
+++ b/lisp/mule/mule-charset.el	Fri Dec 23 11:42:35 2005 +0000
@@ -62,67 +62,6 @@
 	  (forward-char))))
     list))
 
-(defun fixed-charsets-in-region (start end &optional buffer)
-  "Return a list of the charsets in the region between START and END.
-BUFFER defaults to the current buffer if omitted."
-  (let (list)
-    (save-excursion
-      (if buffer
-	  (set-buffer buffer))
-      (save-restriction
-	(narrow-to-region start end)
-	(goto-char (point-min))
-	(let ((prev-charset nil))
-	  (while (not (eobp))
-	    (let* ((charset (char-charset (char-after (point)))))
-	      (if (not (eq prev-charset charset))
-		  (progn
-		    (setq prev-charset charset)
-		    (or (memq charset list)
-			(setq list (cons charset list))))))
-	    (forward-char)))))
-    list))
-
-(defun list-charsets-in-region (start end &optional buffer)
-  "Return a list of the charsets in the region between START and END.
-BUFFER defaults to the current buffer if omitted."
-  (let (list)
-    (save-excursion
-      (if buffer
-	  (set-buffer buffer))
-      (save-restriction
-	(narrow-to-region start end)
-	(goto-char (point-min))
-	;; this could be optimized by maintaining prev-charset and checking
-	;; for equality, but memq is not that slow for a short list.
-	(while (not (eobp))
-	  (let* ((charset (char-charset (char-after (point)))))
-	    (or (memq charset list)
-		(setq list (cons charset list))))
-	  (forward-char))))
-    list))
-
-(defun hash-charsets-in-region (start end &optional buffer)
-  "Return a list of the charsets in the region between START and END.
-BUFFER defaults to the current buffer if omitted."
-  (let ((ht (make-hash-table :size 10)))
-    (save-excursion
-      (if buffer
-	  (set-buffer buffer))
-      (save-restriction
-	(narrow-to-region start end)
-	(goto-char (point-min))
-	(while (not (eobp))
-	  (puthash (char-charset (char-after (point))) t ht)
-	  (forward-char))))
-    (hash-table-key-list ht)))
-
-(defun c-charsets-in-region (start end &optional buffer)
-  "Return a list of the charsets in the region between START and END.
-BUFFER defaults to the current buffer if omitted."
-  (setq buffer (or buffer (current-buffer)))
-  (charsets-in-region-internal buffer start end))
-
 (defun charsets-in-string (string)
   "Return a list of the charsets in STRING."
   (let (list)
@@ -134,15 +73,7 @@
 	  string)
     list))
 
-(defun c-charsets-in-string (string)
-  "Return a list of the charsets in STRING."
-  (charsets-in-string-internal string nil nil))
-
-(or (fboundp 'charsets-in-string)
-    (defalias 'charsets-in-string 'c-charsets-in-string))
 (defalias 'find-charset-string 'charsets-in-string)
-(or (fboundp 'charsets-in-region)
-    (defalias 'charsets-in-region 'c-charsets-in-region))
 (defalias 'find-charset-region 'charsets-in-region)