comparison lisp/derived.el @ 1578:e2ddc2a2b794

[xemacs-hg @ 2003-07-18 07:42:47 by stephent] fix derived-mode-merge-syntax-tables <8765m0jnb1.fsf@tleepslib.sk.tsukuba.ac.jp>
author stephent
date Fri, 18 Jul 2003 07:42:48 +0000
parents 7f5ac0d2a71f
children e6d43c299b9c
comparison
equal deleted inserted replaced
1577:8030dd524aac 1578:e2ddc2a2b794
340 (if (fboundp 'map-char-table) 340 (if (fboundp 'map-char-table)
341 ;; we use map-char-table not map-syntax-table so we can explicitly 341 ;; we use map-char-table not map-syntax-table so we can explicitly
342 ;; check for inheritance. 342 ;; check for inheritance.
343 (map-char-table 343 (map-char-table
344 #'(lambda (key value) 344 #'(lambda (key value)
345 (if (eq ?@ (char-syntax-from-code value)) 345 (let ((newval (get-range-char-table key new 'multi)))
346 (map-char-table #'(lambda (key1 value1) 346 (cond ((eq newval 'multi) ; OK, dive into the class hierarchy
347 (put-char-table key1 value1 new)) 347 (map-char-table
348 old 348 #'(lambda (key1 value1)
349 key))) 349 (when (eq ?@ (char-syntax-from-code
350 new) 350 (get-range-char-table key new ?@)))
351 (put-char-table key1 value new))
352 nil)
353 new
354 key))
355 ((eq ?@ (char-syntax-from-code newval)) ;; class at once
356 (put-char-table key value new))))
357 nil)
358 old)
351 ;; pre-20.0 359 ;; pre-20.0
352 (let ((idx 0) 360 (let ((idx 0)
353 (end (min (length new) (length old)))) 361 (end (min (length new) (length old))))
354 (while (< idx end) 362 (while (< idx end)
355 (if (not (aref new idx)) 363 (if (not (aref new idx))