view etc/images/bookmark_add.xpm @ 106395:f2b36fb84bf7

Enhance `c-parse-state' to run efficiently in "brace desserts". * progmodes/cc-mode.el (c-basic-common-init): Call c-state-cache-init. (c-neutralize-syntax-in-and-mark-CPP): Renamed from c-extend-and-neutralize-syntax-in-CPP. Mark each CPP construct by placing `category' properties value 'c-cpp-delimiter at its boundaries. * progmodes/cc-langs.el (c-before-font-lock-function): c-extend-and-neutralize-syntax-in-CPP has been renamed c-neutralize-syntax-in-and-mark-CPP. * progmodes/cc-fonts.el (c-cpp-matchers): Mark template brackets with `category' properties now, not `syntax-table' ones. * progmodes/cc-engine.el (c-syntactic-end-of-macro): A new enhanced (but slower) version of c-end-of-macro that won't land inside a literal or on another awkward character. (c-state-cache-too-far, c-state-cache-start) (c-state-nonlit-pos-interval, c-state-nonlit-pos-cache) (c-state-nonlit-pos-cache-limit, c-state-point-min) (c-state-point-min-lit-type, c-state-point-min-lit-start) (c-state-min-scan-pos, c-state-brace-pair-desert) (c-state-old-cpp-beg, c-state-old-cpp-end): New constants and buffer local variables. (c-state-literal-at, c-state-lit-beg) (c-state-cache-non-literal-place, c-state-get-min-scan-pos) (c-state-mark-point-min-literal, c-state-cache-top-lparen) (c-state-cache-top-paren, c-state-cache-after-top-paren) (c-get-cache-scan-pos, c-get-fallback-scan-pos) (c-state-balance-parens-backwards, c-parse-state-get-strategy) (c-renarrow-state-cache) (c-append-lower-brace-pair-to-state-cache) (c-state-push-any-brace-pair, c-append-to-state-cache) (c-remove-stale-state-cache) (c-remove-stale-state-cache-backwards, c-state-cache-init) (c-invalidate-state-cache-1, c-parse-state-1) (c-invalidate-state-cache): New defuns/defmacros/defsubsts. (c-parse-state): Enhanced and refactored. (c-debug-parse-state): Amended to deal with all the new variables. * progmodes/cc-defs.el (c-<-as-paren-syntax, c-mark-<-as-paren) (c->-as-paren-syntax, c-mark->-as-paren, c-unmark-<->-as-paren): modify to use category text properties rather than syntax-table ones. (c-suppress-<->-as-parens, c-restore-<->-as-parens): new defsubsts to switch off/on the syntactic paren property of C++ template delimiters using the category property. (c-with-<->-as-parens-suppressed): Macro to invoke code with template delims suppressed. (c-cpp-delimiter, c-set-cpp-delimiters, c-clear-cpp-delimiters): New constant/macros which apply category properties to the start and end of preprocessor constructs. (c-comment-out-cpps, c-uncomment-out-cpps): defsubsts which "comment out" the syntactic value of characters in preprocessor constructs. (c-with-cpps-commented-out) (c-with-all-but-one-cpps-commented-out): Macros to invoke code with characters in all or all but one preprocessor constructs "commented out".
author Alan Mackenzie <acm@muc.de>
date Thu, 03 Dec 2009 16:02:10 +0000
parents 9b032196b290
children
line wrap: on
line source

/* XPM */
static char * bookmark_add_xpm[] = {
"24 24 181 2",
"  	c None",
". 	c #8F5902",
"+ 	c #946104",
"@ 	c #CA9216",
"# 	c #888A85",
"$ 	c #AA823F",
"% 	c #E9B96E",
"& 	c #E3B162",
"* 	c #E4B65D",
"= 	c #EAC263",
"- 	c #AC850E",
"; 	c #B4B460",
"> 	c #BDBD58",
", 	c #C2C253",
"' 	c #C7C75A",
") 	c #E2E038",
"! 	c #D3D3D3",
"~ 	c #F6F6F6",
"{ 	c #DEA956",
"] 	c #DFAD53",
"^ 	c #E1B44F",
"/ 	c #ECCB58",
"( 	c #BFA115",
"_ 	c #F6F57D",
": 	c #F6F468",
"< 	c #EDD400",
"[ 	c #EBE950",
"} 	c #D3D245",
"| 	c #E4E22D",
"1 	c #F3F3F3",
"2 	c #D59C3E",
"3 	c #D8A53C",
"4 	c #DEB439",
"5 	c #CFBA1B",
"6 	c #F3F154",
"7 	c #FEFEF7",
"8 	c #FFFFFF",
"9 	c #EEEC36",
"0 	c #DDDB3D",
"a 	c #E8E62D",
"b 	c #D7A03D",
"c 	c #DBAC3B",
"d 	c #E1BE36",
"e 	c #FBFBCA",
"f 	c #FEFEEF",
"g 	c #F5F32A",
"h 	c #D7A23D",
"i 	c #DDB339",
"j 	c #F8F1AC",
"k 	c #FDFDF9",
"l 	c #FAF9D7",
"m 	c #F2F2F2",
"n 	c #E0B151",
"o 	c #E8C54F",
"p 	c #EAD13E",
"q 	c #FEFEFB",
"r 	c #F5F329",
"s 	c #F1F0F0",
"t 	c #EABF66",
"u 	c #B18C0F",
"v 	c #EFD948",
"w 	c #F7F676",
"x 	c #FEFEFE",
"y 	c #FBFBD4",
"z 	c #EFEFEF",
"A 	c #976605",
"B 	c #EFEEAD",
"C 	c #C6AC17",
"D 	c #F2E439",
"E 	c #FDFCEC",
"F 	c #F2F02A",
"G 	c #EFEEED",
"H 	c #ECEBDE",
"I 	c #EDEDB5",
"J 	c #EFEE8B",
"K 	c #D5C31D",
"L 	c #FEFEFA",
"M 	c #E9E731",
"N 	c #EEEEEC",
"O 	c #ECECEA",
"P 	c #EBEBE5",
"Q 	c #ECEBC3",
"R 	c #EDEC9B",
"S 	c #F0EE75",
"T 	c #FEFEF6",
"U 	c #FDFCEA",
"V 	c #ECECEB",
"W 	c #EBEBEA",
"X 	c #EAEAE9",
"Y 	c #E9E9E8",
"Z 	c #E9E9DC",
"` 	c #EBEBB0",
" .	c #EEEC8D",
"..	c #EFEE6F",
"+.	c #F4F22D",
"@.	c #F5F328",
"#.	c #F5F36B",
"$.	c #CCCC4B",
"%.	c #EAE9E8",
"&.	c #E9E9E7",
"*.	c #E8E8E6",
"=.	c #E8E7E5",
"-.	c #E7E6E4",
";.	c #E7E6CD",
">.	c #EAE9A7",
",.	c #ECEB8B",
"'.	c #EDEC73",
").	c #EFED60",
"!.	c #F0EE55",
"~.	c #F0EE50",
"{.	c #EFEE54",
"].	c #EEEC5F",
"^.	c #F3F27A",
"/.	c #BBBB5A",
"(.	c #E9E8E7",
"_.	c #E7E7E5",
":.	c #E6E6E3",
"<.	c #E5E5E2",
"[.	c #E5E4E1",
"}.	c #E4E4D3",
"|.	c #E8E6AD",
"1.	c #E9E896",
"2.	c #EAE986",
"3.	c #EBE97B",
"4.	c #EBEA78",
"5.	c #EAE97A",
"6.	c #E9E783",
"7.	c #F3F2A4",
"8.	c #969779",
"9.	c #E6E6E4",
"0.	c #E4E4E2",
"a.	c #E4E3E0",
"b.	c #E3E2DF",
"c.	c #E2E1DB",
"d.	c #E2E1CA",
"e.	c #E4E3B9",
"f.	c #E6E4A7",
"g.	c #E5E4A4",
"h.	c #E3E1B1",
"i.	c #E0DFBF",
"j.	c #F2F2EB",
"k.	c #E6E7E4",
"l.	c #E5E5E3",
"m.	c #E5E4E2",
"n.	c #E4E3E1",
"o.	c #E3E2E0",
"p.	c #E3E1DF",
"q.	c #E1E1DD",
"r.	c #E1E0DD",
"s.	c #E0DFDC",
"t.	c #DFDEDA",
"u.	c #DFDDD9",
"v.	c #DDDDD8",
"w.	c #DCDCD8",
"x.	c #DBDAD7",
"y.	c #E6E5E2",
"z.	c #E2E2DF",
"A.	c #E0E0DC",
"B.	c #DFDFDC",
"C.	c #DEDEDA",
"D.	c #DEDDDA",
"E.	c #DDDCD8",
"F.	c #DCDBD7",
"G.	c #DAD9D6",
"H.	c #E7E7E6",
"I.	c #E4E4E1",
"J.	c #E2E2DE",
"K.	c #DFDEDB",
"L.	c #DEDDD9",
"M.	c #DEDDD8",
"N.	c #DBDAD5",
"O.	c #DAD9D5",
"P.	c #D9D8D4",
"Q.	c #E1E1DE",
"R.	c #DCDCD7",
"S.	c #DBDBD7",
"T.	c #DADAD5",
"U.	c #D9D9D5",
"V.	c #D8D8D2",
"W.	c #7B7C78",
"X.	c #787975",
"                                                ",
"        . . . . . . + @                         ",
"      # $ . % & & * = - ; > , ' , )             ",
"    # ! ~ . % { ] ^ / ( _ : < < [ } |           ",
"    # ~ 1 . % 2 3 4 < 5 6 < 7 8 < 9 0 a         ",
"    # 8 1 . % b c d < < < e 8 8 f < < < g       ",
"    # 8 1 . % h i < j k 8 8 8 8 8 8 8 l <       ",
"    # 8 m . % n o p < q 8 8 8 8 8 8 8 < r g     ",
"    # 8 s . % t u v < w x 8 8 8 8 8 y < r g     ",
"    # 8 z . % A B C D < E 8 8 8 8 8 < F r g     ",
"    # 8 G . . H I J K < L 8 8 8 8 8 < M r       ",
"    # 8 N . O P Q R S < 8 T < < U 8 < 0 g       ",
"    # 8 V W X Y Z `  ...< < +.@.< < #.$.        ",
"    # m %.&.*.=.-.;.>.,.'.).!.~.{.].^./.        ",
"    # m (.*._.:.<.[.}.|.1.2.3.4.5.6.7.8.        ",
"    # m =.-.9.<.0.a.b.c.d.e.f.g.h.i.j.#         ",
"    # m k.l.m.n.o.p.q.r.s.t.u.v.w.x.m #         ",
"    # m y.[.a.o.z.q.A.B.C.D.E.F.x.G.H.#         ",
"    # H.I.a.b.J.r.s.K.L.M.E.F.N.O.P.H.#         ",
"    # H.o.J.Q.r.A.t.D.E.R.S.T.U.P.V.H.#         ",
"    # H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.#         ",
"    W.# # # # # # # # # # # # # # # # X.        ",
"                                                ",
"                                                "};