Mercurial > hg > xemacs-beta
diff lisp/derived.el @ 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 | 308d34e9f07d |
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,