Mercurial > hg > xemacs-beta
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)) |