From 0902a04edd7a2e0ca5d73fd996e46f26d5228501 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 23 Aug 2011 20:48:07 +0900 Subject: [PATCH] Fix default values of character properties. --- admin/ChangeLog | 14 ++++ admin/unidata/unidata-gen.el | 103 +++++++++++++++++------- lisp/ChangeLog | 18 +++++ lisp/international/charprop.el | 26 ++++-- lisp/international/uni-bidi.el | Bin 8719 -> 7981 bytes lisp/international/uni-category.el | Bin 11396 -> 12759 bytes lisp/international/uni-combining.el | Bin 8369 -> 6251 bytes lisp/international/uni-comment.el | Bin 2386 -> 2407 bytes lisp/international/uni-decimal.el | Bin 1869 -> 2710 bytes lisp/international/uni-decomposition.el | Bin 28459 -> 28497 bytes lisp/international/uni-digit.el | Bin 2187 -> 3028 bytes lisp/international/uni-lowercase.el | Bin 5347 -> 6421 bytes lisp/international/uni-mirrored.el | Bin 10452 -> 9342 bytes lisp/international/uni-name.el | Bin 158765 -> 158786 bytes lisp/international/uni-numeric.el | Bin 3688 -> 4522 bytes lisp/international/uni-old-name.el | Bin 19692 -> 19713 bytes lisp/international/uni-titlecase.el | Bin 5434 -> 6462 bytes lisp/international/uni-uppercase.el | Bin 5430 -> 6458 bytes src/ChangeLog | 5 ++ src/chartab.c | 2 - 20 files changed, 129 insertions(+), 39 deletions(-) diff --git a/admin/ChangeLog b/admin/ChangeLog index bc38edfc8d4..f8eb071d96d 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,17 @@ +2011-08-23 Kenichi Handa + + * unidata/unidata-gen.el (unidata-prop-alist): Provide default + values for name, general-category, canonical-combining-class, + mirrored, and bidi-class. Describe the meaning of value nil for + decimal-digit-value, digit-value, numeric-value, uppercase, + lowercase, titlecase, and mirroring. + (unidata-gen-table): Handle the case that default-value is a + list. Set default values of characters not listed in a table. + (unidata-get-name): Return an empty string if a value in a + char-table is nil. + (unidata-get-decomposition): Return a list of character itself if + a value in a char-table is nil. + 2011-08-15 Eli Zaretskii * unidata/bidimirror.awk: File removed. diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el index ab1dcd134ac..03399eae213 100644 --- a/admin/unidata/unidata-gen.el +++ b/admin/unidata/unidata-gen.el @@ -146,7 +146,7 @@ (setq unidata-list (cdr table)))) ;; Alist of this form: -;; (PROP INDEX GENERATOR FILENAME DOCSTRING DESCRIBER VAL-LIST) +;; (PROP INDEX GENERATOR FILENAME DOCSTRING DESCRIBER DEFAULT VAL-LIST) ;; PROP: character property ;; INDEX: index to each element of unidata-list for PROP. ;; It may be a function that generates an alist of character codes @@ -155,14 +155,20 @@ ;; FILENAME: filename to store the char-table ;; DOCSTRING: docstring for the property ;; DESCRIBER: function to call to get a description string of property value -;; DEFAULT: the default value of the property +;; DEFAULT: the default value of the property. It may have the form +;; (VAL0 (FROM1 TO1 VAL1) ...) which indicates that the default +;; value is VAL0 except for characters in the ranges specified by +;; FROMn and TOn (incusive). The default value of characters +;; between FROMn and TOn is VALn. ;; VAL-LIST: list of specially ordered property values (defconst unidata-prop-alist '((name 1 unidata-gen-table-name "uni-name.el" "Unicode character name. -Property value is a string.") +Property value is a string." + nil + "") (general-category 2 unidata-gen-table-symbol "uni-category.el" "Unicode general category. @@ -170,7 +176,7 @@ Property value is one of the following symbols: Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po, Sm, Sc, Sk, So, Zs, Zl, Zp, Cc, Cf, Cs, Co, Cn" unidata-describe-general-category - nil + Cn ;; The order of elements must be in sync with unicode_category_t ;; in src/character.h. (Lu Ll Lt Lm Lo Mn Mc Me Nd Nl No Pc Pd Ps Pe Pi Pf Po @@ -179,7 +185,8 @@ Property value is one of the following symbols: 3 unidata-gen-table-integer "uni-combining.el" "Unicode canonical combining class. Property value is an integer." - unidata-describe-canonical-combining-class) + unidata-describe-canonical-combining-class + 0) (bidi-class 4 unidata-gen-table-symbol "uni-bidi.el" "Unicode bidi class. @@ -187,7 +194,8 @@ Property value is one of the following symbols: L, LRE, LRO, R, AL, RLE, RLO, PDF, EN, ES, ET, AN, CS, NSM, BN, B, S, WS, ON" unidata-describe-bidi-class - L + (L (#x0600 #x06FF AL) (#x0590 #x05FF R) (#x07C0 #x08FF R) + (#xFB1D #xFB4F R) (#x10800 #x10FFF R) (#x1E800 #x1EFFF R)) ;; The order of elements must be in sync with bidi_type_t in ;; src/dispextern.h. (L R EN AN BN B AL LRE LRO RLE RLO PDF ES ET CS NSM S WS ON)) @@ -202,19 +210,24 @@ one of these symbols representing compatibility formatting tag: (decimal-digit-value 6 unidata-gen-table-integer "uni-decimal.el" "Unicode numeric value (decimal digit). -Property value is an integer.") +Property value is an integer 0..9, or nil. +The value nil stands for NaN \"Numeric_Value\".") (digit-value 7 unidata-gen-table-integer "uni-digit.el" "Unicode numeric value (digit). -Property value is an integer.") +Property value is an integer 0..9, or nil. +The value nil stands for NaN \"Numeric_Value\".") (numeric-value 8 unidata-gen-table-numeric "uni-numeric.el" "Unicode numeric value (numeric). -Property value is an integer or a floating point.") +Property value is an integer, a floating point, or nil. +The value nil stands for NaN \"Numeric_Value\".") (mirrored 9 unidata-gen-table-symbol "uni-mirrored.el" "Unicode bidi mirrored flag. -Property value is a symbol `Y' or `N'. See also the property `mirroring'.") +Property value is a symbol `Y' or `N'. See also the property `mirroring'." + nil + N) (old-name 10 unidata-gen-table-name "uni-old-name.el" "Unicode old names as published in Unicode 1.0. @@ -226,23 +239,30 @@ Property value is a string.") (uppercase 12 unidata-gen-table-character "uni-uppercase.el" "Unicode simple uppercase mapping. -Property value is a character." +Property value is a character or nil. +The value nil means that the actual property value of a character +is the character itself." string) (lowercase 13 unidata-gen-table-character "uni-lowercase.el" "Unicode simple lowercase mapping. -Property value is a character." +Property value is a character or nil. +The value nil means that the actual property value of a character +is the character itself." string) (titlecase 14 unidata-gen-table-character "uni-titlecase.el" "Unicode simple titlecase mapping. -Property value is a character." +Property value is a character or nil. +The value nil means that the actual property value of a character +is the character itself." string) (mirroring unidata-gen-mirroring-list unidata-gen-table-character "uni-mirrored.el" "Unicode bidi-mirroring characters. -Property value is a character that has the corresponding mirroring image, -or nil for non-mirrored character."))) +Property value is a character that has the corresponding mirroring image or nil. +The value nil means that the actual property value of a character +is the character itself."))) ;; Functions to access the above data. (defsubst unidata-prop-index (prop) (nth 1 (assq prop unidata-prop-alist))) @@ -393,9 +413,18 @@ or nil for non-mirrored character."))) (while tail (setcar tail (cons (car tail) val-code)) (setq tail (cdr tail) val-code (1+ val-code))) - (setq default-value (unidata-encode-val val-list default-value)) - (set-char-table-range table t default-value) - (set-char-table-range table nil default-value) + (if (consp default-value) + (setq default-value (copy-sequence default-value)) + (setq default-value (list default-value))) + (setcar default-value + (unidata-encode-val val-list (car default-value))) + (set-char-table-range table t (car default-value)) + (set-char-table-range table nil (car default-value)) + (dolist (elm (cdr default-value)) + (setcar (nthcdr 2 elm) + (unidata-encode-val val-list (nth 2 elm))) + (set-char-table-range table (cons (car elm) (nth 1 elm)) (nth 2 elm))) + (setq tail unidata-list) (while tail (setq elt (car tail) tail (cdr tail)) @@ -419,17 +448,27 @@ or nil for non-mirrored character."))) (setq prev-range-data (cons (cons from to) val-code))))) (let* ((start (lsh (lsh range -7) 7)) (limit (+ start 127)) - str count new-val) - (fillarray vec 0) - ;; See the comment above. - (when (and prev-range-data - (>= (cdr (car prev-range-data)) start)) - (let ((from (car (car prev-range-data))) - (to (cdr (car prev-range-data))) - (vcode (cdr prev-range-data))) + str count new-val from to vcode) + (fillarray vec (car default-value)) + (dolist (elm (cdr default-value)) + (setq from (car elm) to (nth 1 elm)) + (when (and (<= from limit) + (or (>= from start) (>= to start))) + (setq from (max from start) + to (min to limit) + vcode (nth 2 elm)) (while (<= from to) (aset vec (- from start) vcode) (setq from (1+ from))))) + ;; See the comment above. + (when (and prev-range-data + (>= (cdr (car prev-range-data)) start)) + (setq from (car (car prev-range-data)) + to (cdr (car prev-range-data)) + vcode (cdr prev-range-data)) + (while (<= from to) + (aset vec (- from start) vcode) + (setq from (1+ from)))) (setq prev-range-data nil) (if val-code (aset vec (- range start) val-code)) @@ -669,7 +708,7 @@ or nil for non-mirrored character."))) (aset table c name) (if (= c char) (setq val name)))) - val))) + (or val "")))) ((and (integerp val) (> val 0)) (let* ((symbol-table (aref (char-table-extra-slot table 4) 1)) @@ -695,7 +734,9 @@ or nil for non-mirrored character."))) ((eq sym 'CJK\ COMPATIBILITY\ IDEOGRAPH) (format "%s-%04X" sym char)) ((eq sym 'VARIATION\ SELECTOR) - (format "%s-%d" sym (+ (- char #xe0100) 17)))))))) + (format "%s-%d" sym (+ (- char #xe0100) 17)))))) + + (t ""))) ;; Store VAL as the name of CHAR in TABLE. @@ -707,6 +748,9 @@ or nil for non-mirrored character."))) (defun unidata-get-decomposition (char val table) (cond + ((not val) + (list char)) + ((consp val) val) @@ -747,7 +791,8 @@ or nil for non-mirrored character."))) (aset vec idx (nconc word-list tail-list))) (dotimes (i 128) (aset table (+ first-char i) (aref vec i))) - (aref vec (- char first-char))))) + (setq val (aref vec (- char first-char))) + (or val (list char))))) ;; Hangul syllable ((and (eq val 0) (>= char #xAC00) (<= char #xD7A3)) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 38c536af62c..37fc5eb1a28 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,21 @@ +2011-08-23 Kenichi Handa + + * international/charprop.el: + * international/uni-bidi.el: + * international/uni-category.el: + * international/uni-combining.el: + * international/uni-comment.el: + * international/uni-decimal.el: + * international/uni-decomposition.el: + * international/uni-digit.el: + * international/uni-lowercase.el: + * international/uni-mirrored.el: + * international/uni-name.el: + * international/uni-numeric.el: + * international/uni-old-name.el: + * international/uni-titlecase.el: + * international/uni-uppercase.el: Regenerate. + 2011-08-18 Chong Yidong * international/characters.el: Add L and R categories. diff --git a/lisp/international/charprop.el b/lisp/international/charprop.el index 919666010b1..2424e87ae44 100644 --- a/lisp/international/charprop.el +++ b/lisp/international/charprop.el @@ -29,15 +29,18 @@ one of these symbols representing compatibility formatting tag: ;; FILE: uni-decimal.el (define-char-code-property 'decimal-digit-value "uni-decimal.el" "Unicode numeric value (decimal digit). -Property value is an integer.") +Property value is an integer 0..9, or nil. +The value nil stands for NaN \"Numeric_Value\".") ;; FILE: uni-digit.el (define-char-code-property 'digit-value "uni-digit.el" "Unicode numeric value (digit). -Property value is an integer.") +Property value is an integer 0..9, or nil. +The value nil stands for NaN \"Numeric_Value\".") ;; FILE: uni-numeric.el (define-char-code-property 'numeric-value "uni-numeric.el" "Unicode numeric value (numeric). -Property value is an integer or a floating point.") +Property value is an integer, a floating point, or nil. +The value nil stands for NaN \"Numeric_Value\".") ;; FILE: uni-mirrored.el (define-char-code-property 'mirrored "uni-mirrored.el" "Unicode bidi mirrored flag. @@ -53,20 +56,27 @@ Property value is a string.") ;; FILE: uni-uppercase.el (define-char-code-property 'uppercase "uni-uppercase.el" "Unicode simple uppercase mapping. -Property value is a character.") +Property value is a character or nil. +The value nil means that the actual property value of a character +is the character itself.") ;; FILE: uni-lowercase.el (define-char-code-property 'lowercase "uni-lowercase.el" "Unicode simple lowercase mapping. -Property value is a character.") +Property value is a character or nil. +The value nil means that the actual property value of a character +is the character itself.") ;; FILE: uni-titlecase.el (define-char-code-property 'titlecase "uni-titlecase.el" "Unicode simple titlecase mapping. -Property value is a character.") +Property value is a character or nil. +The value nil means that the actual property value of a character +is the character itself.") ;; FILE: uni-mirrored.el (define-char-code-property 'mirroring "uni-mirrored.el" "Unicode bidi-mirroring characters. -Property value is a character that has the corresponding mirroring image, -or nil for non-mirrored character.") +Property value is a character that has the corresponding mirroring image or nil. +The value nil means that the actual property value of a character +is the character itself.") ;; Local Variables: ;; coding: utf-8 ;; no-byte-compile: t diff --git a/lisp/international/uni-bidi.el b/lisp/international/uni-bidi.el index e7682c6d8ffca6a2c50a63bff9ecac7beea60f8f..9fa7b53b50873adcf2df6fb4b87cd0ce4770c52d 100644 GIT binary patch delta 2735 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 diff --git a/lisp/international/uni-category.el b/lisp/international/uni-category.el index a4455decc5292b66a0f9ccb773dbb4227d7335a0..94b7c18b6e2f99a8be1aac32cd9f2eba9f187679 100644 GIT binary patch literal 12759 zcmcDvR&dTQs4U7%&nQvQaMn~Xw6rwTH8L=;R0z$>OwLb9)lu-wOV;DEwpIwq$ShV! z%gjktC{HX_NKeg6ElMm&O;JcI%Fk6O$w-CiP)JEENdzk_R!A%X>C7l8DX`MlFE20G zD}|VgVa=7~-f8wj?+;RUs#{xIjNMuOzi7FR>&uKQA#yKgiY5 z#n)9KEx!nCQ!?DmiFqjs1*t{3nZ?DK`FRR?`6Zdjsd`)*DXD3hd8xX|8Hq)@AaCdv z6y+DB7L`;gs6$+yqnn&qlA4}hRH>jG7j0~yke8XGfT>)!Brz!`Re?)6E-uv6Jlt?5FlVOM4AcY1|~)@ zhmnc#P%{$~+c(A&vuC0dg{kW@2PIv=L+=)1fJ>OowK(9GWD0sDbD1PtS$W{_cwhc+-B0$YQu4xJ5F$t1>hsFi~Q zU5-dTsxlnzLsf*#gSY@$1UFmmP$%P|WpZ*XLWkPqm=4Vc>18_9At%Hucc_i+&{|$L zAvOq-JJi8?Xtvy;R@Ot!LPBzfxmXi~bJG4+q!Pr1SiHYq{Gdt^{ZEWmptn7!H*$#EE zA8KJ^X9qb9!B8q-R+!*y4cu2=F1)GLNc%uWG9Mops;|t zu~m+Zja`nNolOp8L_aGl$Y{<(U2-CFhx#CfVD&1i94pimHg+~pv_pL=cc_C6!>3}b z+=traAcZ0*bmTxm2@0!bIgr~AHM6qHfqe;PK_ozAkKCaac6Lx$A8KYl)C~4M*qv?c zkcj6#)GT(WO+*YD=O6{(Xkk4BGI_cj>!B{NI}bIpf+G1)iySD_K<+)%&c+4`*F$Xx zFCXgQKGZG-_B1HsK=F%i5GZQd*blXW6979q8z}hM*+Fq2hcJhgRqjwP7GqY*$w3lW z3)rEc$b=@04!CA;KsAf89%@4}U=lcC&5&a~)F}r}Z|!p6m~R0Yaj01ilrTEv4ozZb zhvh^$)!CIlwnH7@WGp0iXbIS8aF~OF0A!-vp*B!VupVlMBo?qW zpg3*;o6;u7#s*S$s8xCjq^|!_n|H^ zHW1|F=i_H*hlJ%4P|`ir#}3lMcBoYdlv-Qa4t2}19a|w3;21-q_g=wXw6YfntCalsQ4pZv*oVwXhv(1_d)KD?2D_ zG=oYMNb$tV3f91WsEv)4o%2u^DD=d{Km{JCyjd;8A_pqjO%+T*799p}_pVu!jw z0e^TZwEW~{J-lB@0ptLP6V`&tPH=@L&U$DTA3rD=9PSo6)Xa6LSq@r)9_j^I0!r40 zx>*lRVgr@Fa)&xWOg6bgJ*;5)W;sww?SZ&zi?lR5+o5)LP)=nBmC=WqS%eNXi?Bk9 zCAmXw++cTsR0|zy;}rr2sW_;}0=f3kViwjzTcEj__0URC;nvD}xD8t9upXKVN}Qk! z+rq{M%C(R@45~kx!I}^y{+t^Yz!*p54Fo3Y5}LAb}>*T)hTwU6BU_{>HsB2kY^9If?d?idZ-!VZI(lALP8+-$Q_;liZ8Z9 zy`TtTJ=DU+dZ>jRT6i!WTElW^8`Gg_EKHC}2i)da%64eE+@Yy#5W8^K=pl zhdQx~Q&SXVJJX>K#zP%UpdyJ8M8NnMqM#NZ2*VWg$$^`MOouv{LHd!&Ryj~>u!UKa zNfg{rhH*ih7C8t{4lLEd2x@pX%gHevYKDk2i;Bv@3oQ#nOCtp(Ch!_H#waEx%m^xA+Ze^b@K6g#x`m1LPz#fo7!wmCqcEtkd#FWBSWJvbjQh|8 zE=ak@b*PzhL#FS zOk#&Rgb%fd9hw5t($2>(c6g$&7^t)bNzE2MG*j%*3gJU-VuvQlfwX}{m&<`fyX6i| z<%ZbLeQ1u@;Xdv|)07m9K*1_@XuGi3p-y43L)(NQZ40r(>xIP*O@PYFi5*@Js(lcc z8`3V~J~Tz_&>G=Gt$h5#hg#%><%AE-KqwN18en7ua=j80IH(cQ2$t}n{UDC;p#^;W z!otXY-5`8us+gECsLj(1F5{O$TbhiA*2^&+S}zCbXTh5C;2sXBd(+Os$OwvHYGx8# zW-*B!Y6HoEYmRoILoM8pGKuNXGC5FnxJ~X*CyS8Wp+0b#%6e!zxKaT%4{&2PNJI$< z2?&A`b+dq=5Qy&N6%yhFv4jK!K_LdhLWf#egoNY{gWH&5hi1u%9i9n}dPvkBo+fu_ zme?Us0}!5@42_H|EI`>w=uop53o94M7zh>W@^@Uk=p9IkcP`)b0T{43PNy<-m#1$Ou}SL+W%QNLYKv(9GDv zgjCH?^`N%JHn~GxVuu@GtqIdusGKQue8||$!i-$=Vcy^Z4LKPrm>5_Xlk88pb6|$i ziZ(U?b@B!!84HVSP~#TV5oJ9zm4)^2DtM&90|^wPprT&v&~|V(TmfxDfC3F9*8^(6 zu^yTLYG1I*9hw5l*u-O2P^}>Z>bbEAfh!nXT0x!u!);ukZYF4e08;3R9-7W_s8duF zRTHSLKoud4#{#OSK?Niuco++&nFV5x93zw5p+1-(Ba__W2~4ceem`iapc&MVVq-lt z9n=P67dzAhbFMe9qI&k^uZ$?lUPA*$7WV& z*BlhChvtB~P(rMSrn4RD1~vG)g&=KRP;mh2U4mPd(8ePBp%$S-y>cwzmLIq)11=#z z&E-SjehSE8;HU&S71U)0H?QSDqa%kVfQA~xK)o2K_2AANs9VDd=`pdff*Rd3SXn_u zD5T5NpaA7;BL!1qBNGdF zA_OHiObkkXkaBT4XyD?|MzEVn%x|#@MwZZm$;{Bi!~n!KvLu-Vxenx>b)b&LJ`e#e zt62}vk~_2v6irN^#(obIxMc-OCtbpj{!uHaiw7QoU_G=8q>%N{CecF^S9hx9?sGW~r2%L=CL5Yf&mxl*dKf!1r zAy8AVg$LAaZU)6VFGL2^2;>z$)GQ|?0_y*^fCgDuA*~kH!+YiAq(L^zfqH8~pyr^E zun;de(FzHHhus(t&EgZ{7v&LUIy8$<-h1K2L(-^9CUQx@NVb;jgXKSI47P);*=S(sJ9-7O| zEd+K6$m(t2E@L}r^iPf(G{`zx?ocZ?sHlaQeYjKZ&~~tDh`W`TjDm{^3wsFa`HSSy|-{(=uiij19o{ z!>qM1w=hwFw&+1EQczwLJG5L*PVCSg&^TVR7-*cRP5Mv=8>IGT1C=&xhuXys&0_;K zy*EIM5V6BeASpRe=?qR9VuwK;5^hj`u@4+5N=%H0W-%R_1t#0&m<~;1JTwDjA0s13 zRF08RP7Z`X_)v=+c+j9lj!6zwB`_W825XxJQqOd#g^^K?5j4QZc&I~;@es(cSx_Oy zL#=X*a)+8>qKBq{v@jlO1KEMFA3WLwYQZ3cW-)^Ll^|DkF&&yCC&zebrZ5v2w?UZT zIRK_ZQ-zrhK}A3cpiFRHWjfS}F3AKc$u@xl021NEk;su`WM*j&8d?|81*1}eCxiXEB=8^<`b zUrtO;?9e{2!H0Lqfm?J?P5a~yO%gjaLk<$#a))<|L6VZ3*r5q>AXkWi^g>vm8V{sb z4CJF0IYZ@_xc(PAyan7FB`!FTvo*Y)G&D9eFvs36f@TkMBLlo0Cusl5 z(A?O}(u_be3{*%ACQN$3AqOHQY)Au^Kv=-)0Yh^$L$o>wT_-#i%q@)!=okwGLlE7e zbmoJ?86GwkhUS!|P=dZ4RRFD9i4F*GArDavEpRN2Oet)G%#%C32wa3i%*8>*B3X?? z3Ah7cs9Mpu%3caXm(zHd7hG{f`(72 zf}VnsPijd?YLSjYXhA`0QF3B&Dp)E9S;{BB97(DKSt=y6BqtTFD;HVHH$NpaEi<(U zY+gRHjDJZ6MA$bEBl!9PC1vINXH+V0Q$R z<|UVuf){J+C^+Zm<)tQ< z?S~2nmlhS}rzb)J&Kc}rs7ydnW?5oMszN9v;GMyV5h~}GU!vexT%4JnmztuasTr$a z6sr&o%0WJ*3O+dsJ|zl1xe7k{3ch&?zR3!{sS1863Vt~Xe)$Rk$qE4}3IW9m0jUZB znF;}E3IX{F!MO^-$qK>Q3c>jbQN;>TISNq)3eL$2&S?tH#R|^(3eI`4u?kAiJqggw z2RRC`CH#6^0kGx$Wr;bZsS26J3i)}d3i)Z^?E-1}IXU^|nR)37#o$OSw&GGy@F~?% z@X66p@F~$z@X6It@X6Ov@Xgav@J-fH@J-cG@JrEA@XG<^I~|39WF3Wo6di?tVjYEm zR2_wYOdW-QG#!P2d>t+Yh2UHrh2Ufzh2U%*h2VT0g{Wd3g{T}Ig{T4@1?OZP1?My! z1?OT=#ONqE=P7A|wnX^kCnx48ge4Ybg7y~_TYC(JR_$CIu)EtG>yp&>vjMSo3E&x7!d`18O delta 4933 zcmcbf+!DEggK;t^qdc1ulhmOF;*;a0G$o~!6qMuQq74-cz_gKqfdWF7NlIz+dFDNg z@(c_tOoy6SSRN z6FSt)GP#~zOpt*==ukfc>!F!!hng7}gp?E}uVUA$XJ9?l4${oP#?H>bdZ>eeft3|x z;xv#111rO!W>%0J*jU*QHM4&J#5RZ`2G&DRBUwQvK?w?IMgD-dZ>+s?NEmh=b?!-BL>z(OBfEdupR1S z2l<%oP^%Cq-LSka&w1h$IPzRgXp*99FF`+}PVuxCUgeH4(r`0ona@lGj79|B! z1ycnjCf38C#MuJMJ?#u&%R$TqAS1z^2IU^sLkq!41)94+j%Hv5XUi23brYe|hnpEd zu`DJ8iq0tzxd~#2x5+{MlolXq98{(?GaPCWV*ptVDijXQ1BF8?#EdoI z2%pG$sGXgiq5e=C=b>#td7#P?< zNhTTG`2&%9EV!iI6&F9XL7SZG$X_0`vNh1AP0#ZTF!82rr4owhRHsHmW&LO z+XU5^8H5=ouNRCI0mpNf61Xm9JhYyH>Ck$H$qGV!o(zZDg$}iFL&A*d&@yn&+Qx9G zlSPQ(P#-wDSr1JICu2|s$Bid{7c!KFxMLQB*x{K<3Pwf>N=#yhr!gFwC3dK1vX8JE zsLI<9QUfxQfsIX6l!b+rm-X;0A(lhUkRlIM1Fr;Ut$v8Yeg-iy?n5nNpd1gXpv6E1 zMi1+u2_R{)L-QH94|RzhTF!l_U+fS#!z1zcgB@XH1TG~^6-+1p6497!CF04*u(?Hq zow43Pfi5sM7TS_AF|afPwPsikO=V#{ylS$Ym^eE)X0|g-juBI2W;iruvZIjRf6Z@eFYz&7wg+OIFxCJzc6_kS^K@ZM9b3i4%5bL4oY=^o*8LwN2 z_0ZhOZ^fnR8CbwMtp$=&KqbTY(i^YlDj~2BAYOtcNDBupVj?JJiey z&UfHig$s_lB1Ky`g9sD0NZ z3@NZ%LG=lw;dE#hNFnQ?O`?Y;FdUl5dT1@Y{yDUdkDuYt1lB_vAW9~HjNis^Xa(z` z9!S%I?a&0FL+yP0LZDg@RJBg#l2S1Qg%d9yKL`pPY8K`dKGe)0BqAgP_Dw6O`2jZX z@LmQ6aOPr|953Zu56T}XVFj*w4>gO32#bn|h%kr=A8HX3V>r|$eW+PXObMF)3>C~w zO^wZ{$>56pP(R4&;3AIo@NSUpLPBETM70*2R6Ds2)o%r7 zNO0p-3|xt{iXG}^4pB(S28cJgRz@}+9Dq|e zA$2{t>RStHzk%y*HX$Kta4rR@CJ#@Rl~u3>S+B&zb$Btup<5Sr5;dpa|NDVOtW|JOhZaAcG)A8yXszT7v2lP^%auOg4^H znEX#poD-D#K(!^qWJP(+dNA*B6WgI?F_4QuRTike<32PA!eu-(i|NoTFxk$)bZ8Re zp&1}8jEo>r21Z5(1`q<_LoE#821E-369cF?VLH?e);0~Kp6O5vBO?PNs3ppHsDpv= z5Xi7ujEsU{F~&o!42%qinnA*opUT@XF)&P4R&WQm5;uX|f!EKV5QB!5k(s5r8K~Yp z1ZwVy9R?S1Vuz+M9O@ARWo@xTeGCjBme?V11yS%B^E1`rcfC6PSr*1$DG8gzyVmKMeaCI$*dmI_9e lo8PL-Ffkb@Z06N6VM;boFo?zBShy)z!hjUH%~y4pSOG;`@m&A_ diff --git a/lisp/international/uni-combining.el b/lisp/international/uni-combining.el index 227b9d0af79bdce4a97728e4838bed5d69fcd978..1437ff9acbd88a1036df3dc0de61b0f21a503785 100644 GIT binary patch delta 1308 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 aF3rmXNkQi3^-^;bQu9)Z6*5wbQn>&O?br7J diff --git a/lisp/international/uni-comment.el b/lisp/international/uni-comment.el index c9743064bd4751703bdd5e1a27e84305743e0f5f..21ccfe3ffe796615789e624a8dff14f3d24e2dd0 100644 GIT binary patch delta 358 zcmca4^jv5|6cbB~k%7VHXr_5gYB5FzX0?nl#>NJEyfH=w<{U9brUo%a2FB7%95KcQ zW?^9VWKmY-dP7?fJI2`5fHB6{(1<(6*w8peDaP2?$V1MGGsf81I4Z`-&`>bO*w`e- z$ix&R1Y(%Q7#o|y1V9WkIcqr^IolXxV~~_NpB2a=4?bHDkYi$u4GqEW0SOzLc<|YH z@L7Wt)Q3W>H#P=K#~2wH#Tc6yGlJ9^8+q_q2YaaKfJ7yk_$*_LO$?yUH3vBtWRr;@ zpCzXK16X(PO&#c8<~TpV~h-pK*|_F>WmFN_^g9HRCGY1qD*|2F~%k^=bC|>3$n??kk67+8A*i^ n*h4H#5Qkt$8-t`xMPbsDo!LYuC$LSQ{EN+jQE9UUyFL>DMZ!n7 diff --git a/lisp/international/uni-decimal.el b/lisp/international/uni-decimal.el index 2c424ffb5ded901d92b381119a6f1ad3386c9617..096257add209bbb8d16621e3f7451b12fb2865d7 100644 GIT binary patch delta 731 zcmX@hH%)Yd79$&%a$H=r@#K%J$@PW`MheCXCJLqsW(wvC77CUMh6W0GnK^XA_4Kj` zhdpkj`7~Am6mo_N24LDq!9Za&C}AO}2V)RNPYz&}n0%N?WOEy1GOMkEfu5eFjzWGB zDBbCCg=C~ElqKerrh>Q%#U+V(Da8tD`9%tTiGB((N`9resYRK|@nIk(F-ntPvZVk3 D4`%Ys delta 63 zcmbOxdX{g47NeRH6T_hmj7-cdtZeKYoLou@%5ibgh6)B?+DO4b0jyy184jh%=UGKI NPhv@CoovLF0szaS56l1n diff --git a/lisp/international/uni-decomposition.el b/lisp/international/uni-decomposition.el index b0bf07bbe857c03aa47b689fbf30596df437d15c..b9660cdab0aa2724492461cbf7414e9e80e5d24f 100644 GIT binary patch delta 355 zcmZ2|kMZI?#tr%zhA~D4ChQEH&M`&?<{VZrMh3=w3>;vNHHc%&$Pr^~VCDfL!axGD zlY=vAn9PkPU(65{GBRY~lLMKM#lR;IlC7BhBg0(OkAY7?PMJ?O#@Ns#6eJvDWMVMc zCDW40&~$QrraY&a5rcM&k%5ulf`N8AYOSjU!OFMp1$>#zrO}g{Cn^CZ;hlF~&w_ coRj;rJcK~5W8~B1({KT?K*n!=oaMm+0O({-k8yYe2$;B8Mm?Sgs$%BLnC$nani@G!LDaa}F$;KEPnuLOc zV~mUqCkJL)G8vdn?#YzrG&N?>jxjPYa-X~ ofoT;ZXN<9tQ6z$G906ueo}87!Q^Lrn$*180vY>J^XSN3m0G5hCb^rhX diff --git a/lisp/international/uni-digit.el b/lisp/international/uni-digit.el index fc52fd8c28cdaceb2ffc58a845b9606b588ac12d..efb78b0e43dd04993b15f2adfb604bf732ca2249 100644 GIT binary patch delta 740 zcmeAcydu6qiII&~V5!x+TTu?k8|42L!`voIWLWtx1DO>A>1;}$ks z1p_@jOC5#$B2WU<;|j@0RVYi$DNO}&6^cs|^HPcx((;QG{1W{XVwC(!b5n~lljFlc MN@A2IYjPw30Dc7XVE_OC delta 66 zcmca2-YvL6iP2DriQ&)&MkZz!RyKAHPA(+{<+!+LLj?mcZKPnJfUaP3Jj*q<$wk~r E0L9-8r2qf` diff --git a/lisp/international/uni-lowercase.el b/lisp/international/uni-lowercase.el index 41890018204a9776df7cb6551c78bf4f88f98004..7afd9503cb3e84cab181fbb14bcb908460f46049 100644 GIT binary patch delta 403 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 K6*5wbQn>&iL34)y diff --git a/lisp/international/uni-name.el b/lisp/international/uni-name.el index 7fac18b278d1c25b3c88f1581417355d3ad52fd0..8b6816310672556fb0205b845f2f71fc6edbcd7e 100644 GIT binary patch delta 365 zcmZ2`gY(c0&W0_FMRQnUj0_C67tdjw$D|fxWMEdy7-MW~pvN0yWMIw_V`OR&V`N|~ z&BPI7Y+x1!W>43h&!}8)Xba-R7@Ha}#uytKamN@N8pkNb7#kaT$XRj57#kZ$#TXeH z3dR^4o5UEIn1X~r46_(xV^f#_h+!sYEoUQV8)Iw?k}~JB0@>ujXX^oSO^mUjA=p76 zVM7xSJ{u1{YmkEJ=jSuB*BcvyC1Z>XjAD#Uj2S_yjEy|_tb;vNbU>n#OnjCx#wG?( z$C`s23$n+=kk67+8A*i^SOo_Y#2FaU#vo}^Ntm<=pCxCEv5AmrRE)8SSxk(w7AUwt a0XIE<0pn~YC8g;<7ce?*w_V8i;S>NAWmhr) delta 345 zcmX?fgLCZ-&W0_FMROQywwKLeoW~@i#~Wj0V9pU^WNHv&WMC@B#1Ug`U={{uPq&)S zs9bMg8)IZ(9Aj)^!Wd(0Xv7_3Y-k*#6k}{`=pkpt8Dng06cuA+XebzCY-}83WMT>u z0x`^DjEzlT0w9K&oVA>doNbJ;v1yF4u^FEg$R-ayTaOqc1G5-o15?HrV`FoWu%U?u zpN$8fHAq2yD8zarbFg%bk%19N86!xYv7rZ_b+Ctu4oFm#iO({|*aYTWGmvvZHklam zS#l~PsW1Y2h=mE_5DaN!khG~NOj^){&yq97*u*p{#@NIxCPrCnddULD+0%s*-|?4tv~4^J%OCDD(^!48XLJf`P(la3Y7GJ~D?eJ9cv@<7^%;9fd@Nw4D6JlFYnx zg@XLdyb>LS{31{a)Z+@tNL46H%qdL;aTSV767y1u71HvH6#NqX6k?S8N^?_-GLz%O NKuThiCbRIR003*)_JjZc delta 87 zcmZ3b{6c1f3ZtPC6T_hmj7-cdtZeKYoLou@%5ibgh6)B?+DO4b0bRl7M3&h+A`1CM Z3W*A7Ir)htnR)371^JnIC6nC*Qvg336z%{3 diff --git a/lisp/international/uni-old-name.el b/lisp/international/uni-old-name.el index 4e704e5cdd0676d3c291521d3062d34fa444e1ce..de2d67b9450eb80f6203f5f09bf8e632fc63db95 100644 GIT binary patch delta 360 zcmaDeld*9Y;|3c;mKY-ggUz;v^O)3Pj10_b8Dor%4fJ?pj10^V`Jl}7$ZYN!5Cv> zlNcitQ;-mdVHRU-Yzh+qG0fzw>?pkTwQMn@Yl@B~AD&Ib)1XOrv6qP0V6ql(j(N1q!*znx?av Ql$0hPHg(+0ZuV3R08f)rP5=M^ delta 338 zcmZpi#rS3>;|3c;#+uCzhVz(Y^mt>849q!Vj7$w;j0{Z0m^fmL4a~y8?8z)9%Jl}e zF-8W)F~%k)j4{TBM%*#RhQ={UF~-J*9&%QkF~-J5Q87k_hJrE1#>O#5CZ-@E5W_6S z*w_Rn0AiTQSM7134FDlZhdpC8siy z3L~(GSePIV!H_lvNt=qoqyf=f Db5~5F diff --git a/lisp/international/uni-titlecase.el b/lisp/international/uni-titlecase.el index b8098c818763cc523766c49600b26ea951afdc67..517edb20445e18a87ab8186e98a7e932295f9b41 100644 GIT binary patch delta 337 zcmdm`wa;jS5+etfa$H=rv4X+mk3s>H7qEv;o*?|d*UVJG%uK<|T*1sj!OT*@+(5zH zP{G_t!Q5EE+(g0LRKeU#!Q5QI+(NnyN9Qjw~w!%e?VYRa7buactm8Bl7ezvT(qHr0hl&Y SFi^m+e6t{Hs_^6+5@`VUI2!-} diff --git a/lisp/international/uni-uppercase.el b/lisp/international/uni-uppercase.el index 899276eb7253f308cbd481036771465c1d1aad64..fcb22d72470964a719b6039f6fdcf74931eec737 100644 GIT binary patch delta 341 zcmdm{waaLO5+etfa$H=rv4X+mhe9!v7qACTo*;a~*UVJG%uK<|T*1sj!OT*@+(5zH zP{G_t!Q5EE+(g0LRKeU#!Q5QI+(NnyN9Qjw~w!%e?VYRa7buactm8Bl7ezvT(qHr0hl&Y SFi^m+e6t{HqVVJ^5@`VREE@0t diff --git a/src/ChangeLog b/src/ChangeLog index 85a55b2b7c9..5b4e0023ac6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-08-22 Kenichi Handa + + * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a + extra slot even if the purpose is char-code-property-table. + 2011-08-19 Eli Zaretskii * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of diff --git a/src/chartab.c b/src/chartab.c index 0cabaac4cf5..1d4ac04312a 100644 --- a/src/chartab.c +++ b/src/chartab.c @@ -589,8 +589,6 @@ DEFUN ("set-char-table-extra-slot", Fset_char_table_extra_slot, (Lisp_Object char_table, Lisp_Object n, Lisp_Object value) { CHECK_CHAR_TABLE (char_table); - if (EQ (XCHAR_TABLE (char_table)->purpose, Qchar_code_property_table)) - error ("Can't change extra-slot of char-code-property-table"); CHECK_NUMBER (n); if (XINT (n) < 0 || XINT (n) >= CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (char_table)))