Mercurial > emacs
comparison lisp/ChangeLog @ 67401:1d3e6c9cba36
*** empty log message ***
author | Alan Mackenzie <acm@muc.de> |
---|---|
date | Thu, 08 Dec 2005 21:58:00 +0000 |
parents | 4d2362509f27 |
children | 7fe69474f4c4 |
comparison
equal
deleted
inserted
replaced
67400:722a21c764a9 | 67401:1d3e6c9cba36 |
---|---|
1 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
2 | |
3 CC Mode update to 5.31. | |
4 | |
5 * progmodes/cc-subword.el: Add a dummy `c-subword-mode' for | |
6 Emacsen which lack `define-minor-mode'. (Currently Emacs <21. We | |
7 might do this function properly in the future). | |
8 | |
9 * progmodes/cc-cmds.el, cc-defs.el, cc-styles.el, cc-vars.el: New | |
10 macros c-sentence-end and c-default-value-sentence end, to cope | |
11 with Emacs 22's new function `sentence-end'. | |
12 | |
13 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
14 | |
15 * progmodes/cc-cmds.el (c-show-syntactic-information): Solved the | |
16 compat issue using `c-put-overlay' and `c-delete-overlay'. | |
17 | |
18 * progmodes/cc-defs.el (c-put-overlay, c-delete-overlay): New | |
19 compat macros to handle overlays/extents. | |
20 | |
21 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
22 | |
23 * progmodes/cc-fix.el: Add definitions of the macros push and pop | |
24 (for GNU Emacs 20.4) | |
25 | |
26 * progmodes/cc-defs.el: | |
27 (i) Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4) | |
28 | |
29 * progmodes/cc-cmds.el (c-show-syntactic-information): change the | |
30 highlighting mechanism so it will work in XEmacs too. | |
31 | |
32 * progmodes/cc-defs.el: Insert c-int-to-char. | |
33 | |
34 * progmodes/cc-langs.el (c-nonsymbol-token-char-list): Insert a | |
35 call to the new macro c-int-to-char. This solves XEmacs's | |
36 regarding characters as different from integers. | |
37 | |
38 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
39 | |
40 * progmodes/cc-fonts.el (c-make-syntactic-matcher): New internal | |
41 helper. | |
42 | |
43 (c-cpp-matchers, c-basic-matchers-before): Use the `eval' | |
44 construct to make the indirect face lookup work in XEmacs. | |
45 | |
46 (c-cpp-matchers): Append the negation char face to the existing | |
47 fontification, so that the cpp face doesn't disappear. Use | |
48 `c-make-syntactic-matcher' to avoid negation chars in comments and | |
49 strings. | |
50 | |
51 * progmodes/cc-fonts.el (c-negation-char-face-name): New variable | |
52 to map to `font-lock-negation-char-face' in emacsen where it | |
53 exists. | |
54 | |
55 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
56 | |
57 * progmodes/cc-mode.el: Bind c-subword-mode to C-c C-w. | |
58 | |
59 * progmodes/cc-subword.el, cc-cmds.el, cc-mode.el: Rename | |
60 "c-subword-move-mode" as "c-subword-mode". | |
61 | |
62 * progmodes/cc-mode.el: Added tty suitable bindings for C-c | |
63 <delete> and C-c C-<delete>. (To the c-hungry- delete functions). | |
64 | |
65 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
66 | |
67 * progmodes/cc-mode.el: Added autoload directive for | |
68 `c-subword-move-mode' for use in older emacsen. | |
69 | |
70 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
71 | |
72 * progmodes/cc-mode.el: | |
73 (i) Insert a binding for C-c C-backspace into | |
74 c-bind-special-erase-keys which works in TTYs. | |
75 (ii) Make sure that when file styles are used, any explicitly | |
76 given style variables take priority over those in the style. Do | |
77 this by calling `hack-local-variables' a second time. | |
78 | |
79 * progmodes/cc-vars.el: Add language specific customization | |
80 widgets for AWK to c-doc-comment-style, c-require-final-newline | |
81 and c-default-style. Add a defcustom for awk-mode-hook. Give | |
82 c-syntactic-element and c-syntactic-context doc-strings by | |
83 directly setting their `variable-documentation' propery. This | |
84 allows Emacs 22.1 to read these with C-h v. | |
85 | |
86 * progmodes/cc-awk.el: Apply a tidy-up patch (from Stefan | |
87 Monnier). | |
88 | |
89 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
90 | |
91 * progmodes/cc-fonts.el, cc-vars.el | |
92 (gtkdoc-font-lock-doc-comments, gtkdoc-font-lock-doc-protection, | |
93 gtkdoc-font-lock-keywords): GtkDoc patterns contributed by | |
94 Masatake YAMATO. | |
95 | |
96 (c-doc-comment-style): Made GtkDoc default in C mode. | |
97 | |
98 * progmodes/cc-mode.el: Fixed key bindings for C-c C-<backspace> | |
99 and C-c C-<delete>. | |
100 | |
101 (c-bind-special-erase-keys): New function for use on | |
102 `normal-erase-is-backspace-hook' to bind C-c C-<delete> correctly. | |
103 | |
104 * progmodes/cc-cmds.el (c-hungry-delete): New function to fix | |
105 <delete> key behavior in XEmacs according to `delete-forward-p'. | |
106 C.f. `c-electric-delete'. | |
107 | |
108 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
109 | |
110 * progmodes/cc-mode.el: Give c-hungry-backspace and | |
111 c-hungry-delete-forward permanent key bindings. | |
112 | |
113 * progmodes/cc-cmds.el (c-electric-semi&comma): Bind | |
114 c-syntactic-context for calls to "criteria functions", for | |
115 consistency with other calls to user functions. | |
116 | |
117 * progmodes/cc-cmds.el (c-indent-command): expunge use of | |
118 `current-prefix-arg', since this might be the prefix arg to a | |
119 command which calls c-indent-command as a function. Change the | |
120 interactive spec from "p" to "P". | |
121 | |
122 * progmodes/cc-styles.el: Amend the doc-string of c-set-style, in | |
123 reponse to a report from Joseph Kiniry <kiniry@acm.org> that it | |
124 was difficult to understand. | |
125 | |
126 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
127 | |
128 * progmodes/cc-engine.el (c-on-identifier): Fixed bug when at the | |
129 first char of an identifier. | |
130 | |
131 * progmodes/cc-engine.el (c-on-identifier): Handle the "operator | |
132 +" syntax in C++. | |
133 | |
134 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
135 | |
136 * progmodes/cc-cmds.el (c-mask-paragraph): correct, so that | |
137 auto-fill doesn't split a c-comment's last word from a hanging | |
138 "*/" when a space is typed between them after fill-column. | |
139 | |
140 * progmodes/cc-defs.el: New macro c-delete-and-extract-region. | |
141 | |
142 * progmodes/cc-styles.el (c-set-style, | |
143 c-setup-paragraph-variables): Abort the command if we're not in a | |
144 CC Mode buffer. | |
145 | |
146 * progmodes/cc-align.el (c-lineup-C-comments): Correct indentation | |
147 with blank comment-prefix, and a blank line as the comment's | |
148 second line. | |
149 | |
150 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
151 | |
152 * progmodes/cc-fonts.el (c-cpp-matchers, c-basic-matchers-before): | |
153 Incorporated the patterns added in the Emacs development branch | |
154 for the new Emacs 22 face `font-lock-negation-char-face'. | |
155 | |
156 * progmodes/cc-fonts.el (c-invalid-face-name): Use "red1" instead | |
157 of "red" since it stands out better in xterms and DOS terminals. | |
158 | |
159 * progmodes/cc-engine.el (c-literal-faces): Added | |
160 `font-lock-comment-delimiter-face' which is new in Emacs 22. | |
161 | |
162 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
163 | |
164 * progmodes/cc-cmds.el: Make C-c C-a (`c-toggle-auto-newline') | |
165 forcibly enable c-electric-flag. | |
166 | |
167 * progmodes/cc-vars.el, cc-cmds.el: New clean-up | |
168 `comment-close-slash' on c-electric-slash: if enabled, typing `/' | |
169 just after the comment-prefix of a C-style comment will close that | |
170 comment. | |
171 | |
172 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
173 | |
174 * progmodes/cc-fonts.el (c-basic-matchers-before, | |
175 c-complex-decl-matchers): Fixed the "not-arrow-prefix" regexp used | |
176 in Pike. | |
177 | |
178 * progmodes/cc-langs.el (c-other-op-syntax-tokens): Only C++ has | |
179 digraphs. | |
180 | |
181 * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el | |
182 (c-cpp-message-directives, c-cpp-include-directives, | |
183 c-opt-cpp-macro-define, c-opt-cpp-macro-define-start, | |
184 c-cpp-expr-directives): Introduced new language constants to | |
185 control cpp syntax in a cleaner way. | |
186 | |
187 (c-cpp-expr-functions): Renamed from c-cpp-defined-fns. | |
188 | |
189 (c-cpp-matchers, c-forward-to-cpp-define-body): Use them. | |
190 | |
191 * progmodes/cc-langs.el, cc-fonts.el (c-string-escaped-newlines, | |
192 c-multiline-string-start-char): New language constants and | |
193 variables to specify how newlines in string literals work. | |
194 | |
195 (c-font-lock-invalid-string): Use them. | |
196 | |
197 * progmodes/cc-cmds.el (c-try-one-liner): Robustness fix if an | |
198 unbalanced close brace is entered. Optimization by avoiding going | |
199 back over arbitrarily large blocks. Removed hints that this | |
200 function only would be relevant/useful in AWK. | |
201 | |
202 (c-electric-brace): Indent syntactically after the cleanups since | |
203 lineup functions might do it differently then. | |
204 | |
205 * progmodes/cc-engine.el, cc-langs.el | |
206 (c-opt-op-identifier-prefix): New language constant and variable. | |
207 | |
208 (c-just-after-func-arglist-p, c-after-special-operator-id, | |
209 c-search-decl-header-end, c-inside-bracelist-p): Use it. | |
210 | |
211 * progmodes/cc-align.el, cc-engine.el | |
212 (c-after-special-operator-id): New helper to handle C++ operator | |
213 identifiers. | |
214 | |
215 (c-lineup-topmost-intro-cont, c-just-after-func-arglist-p, | |
216 c-guess-basic-syntax): Handle C++ operator identifiers in | |
217 declarations. | |
218 | |
219 * progmodes/cc-langs.el (c-assignment-operators): Added the | |
220 trigraph version of ^= too. | |
221 | |
222 * progmodes/cc-langs.el (c-assignment-operators): Added the | |
223 trigraph version of |= in C++. | |
224 | |
225 * progmodes/cc-fonts.el (c-font-lock-declarators): Handle | |
226 `c-decl-hangon-kwds' after the identifier name. | |
227 | |
228 * progmodes/cc-engine.el (c-guess-basic-syntax): When deciding | |
229 whether an arglist is "nonempty", ignore a comment after the open | |
230 paren if it isn't followed by a non-comment token on the same | |
231 line. | |
232 | |
233 * progmodes/cc-engine.el (c-guess-basic-syntax): Case 4: Enable | |
234 heuristics below the point to cope with classes inside special | |
235 brace lists in Pike. | |
236 | |
237 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
238 | |
239 * progmodes/cc-cmds.el: Amend c-point-syntax to handle macros. | |
240 | |
241 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
242 | |
243 * progmodes/cc-guess.el (cc-guess-install): New function to | |
244 install an already guessed style in another buffer. | |
245 | |
246 * progmodes/cc-defs.el (c-tentative-buffer-changes): No longer | |
247 sets `inhibit-read-only' - `c-save-buffer-state' should be used | |
248 anyway if the change always is undone. | |
249 | |
250 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
251 | |
252 Implement togglable electricity: | |
253 | |
254 * progmodes/cc-defs.el: Enhance c-save-buffer-state's doc-string, | |
255 saying when it should be used. | |
256 | |
257 * progmodes/cc-engine.el: Add the new buffer-local variable, | |
258 c-electric-flag. | |
259 | |
260 * progmodes/cc-langs.el: Change the name of c-toggle-auto-state to | |
261 c-toggle-auto-newline. | |
262 | |
263 * progmodes/cc-mode.el: Rename c-toggle-auto-state to | |
264 c-toggle-auto-newline. Remove the binding for | |
265 c-toggle-auto-hungry-state. Add the binding C-c C-l for the new | |
266 c-toggle-electric-state. | |
267 | |
268 * progmodes/cc-vars.el: Make c-syntactic-indentation buffer local. | |
269 | |
270 * progmodes/cc-cmds.el: Add `c-bytecomp-defun's for | |
271 c-\(forward\|backward\)-subword. | |
272 (c-update-modeline): Add the new modeline flag `l' for | |
273 `c-electric-flag'. Make the auto-newline flag `a' dependent on | |
274 `l'. | |
275 (c-toggle-auto-state): Rename it to `c-toggle-auto-newline'. Make | |
276 the old name an alias of the new name. | |
277 (c-toggle-electric-state): New function. | |
278 c-electric-\(pound\|brace\|slash\|star\|semi&comma\|colon\|lt-gt\|paren\|continued-statement\): | |
279 Adapt these functions to do electric things only when | |
280 c-electric-flag is non-nil. | |
281 (c-point-syntax, c-brace-newlines, c-try-oneliner): Extract these | |
282 new functions from c-electric-brace. | |
283 (c-point-syntax): Add a check for "virtual semicolons" in AWK | |
284 mode, so that the tentative extra newline doesn't change the | |
285 syntax of the following brace. | |
286 (c-electric-brace): restructure by extracting the above functions. | |
287 Tidy up the coding somewhat. | |
288 (c-electric-semi&comma, c-electric-colon, c-electric-paren): | |
289 restructure a bit. | |
290 | |
291 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
292 | |
293 * progmodes/cc-cmds.el (c-show-syntactic-information): Show the | |
294 anchor position(s) using faces. Thanks to Masatake YAMATO for the | |
295 idea. | |
296 | |
297 * progmodes/cc-mode.el, cc-cmds.el, cc-defs.el, cc-engine.el | |
298 (c-submode-indicators): Changed name from `c-auto-hungry-string' | |
299 since it's now used to track another submode. | |
300 | |
301 (c-update-modeline): Converted to function and extended to check | |
302 `c-subword-move-mode'. | |
303 | |
304 (c-forward-into-nomenclature, c-backward-into-nomenclature): | |
305 Converted to compat aliases for `c-forward-subword' and | |
306 `c-backward-subword'. | |
307 | |
308 * progmodes/cc-subword.el: New functions and minor mode to handle | |
309 SillyCapsedStyleIndentifiers, contributed by Masatake YAMATO: | |
310 | |
311 (c-forward-subword, c-backward-subword, c-mark-subword, | |
312 c-kill-subword, c-backward-kill-subword, c-transpose-subwords, | |
313 c-capitalize-subword, c-downcase-subword, c-upcase-subword): | |
314 Functions corresponding to the standard word handling functions. | |
315 | |
316 (c-subword-move-mode): Minor mode that replaces all the standard | |
317 word handling functions with their subword equivalences. | |
318 | |
319 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
320 | |
321 * progmodes/cc-vars.el (c-cleanup-list): Insert a customization | |
322 entry for one-liner-defun. | |
323 | |
324 * progmodes/cc-defs.el: Give c-tentative-buffer-changes its own | |
325 name in its def-edebug-spec. | |
326 | |
327 * progmodes/cc-cmds.el (c-electric-brace): Make the | |
328 one-liner-defun clean-up work with empty-defun-braces. o-l-d now | |
329 compacts space before a comment, if this will make things fit on | |
330 one line. | |
331 | |
332 Introduce an "awk" style, mainly for auto-newline and clean-ups. | |
333 | |
334 * progmodes/cc-align.el: new function c-snug-1line-defun-close | |
335 | |
336 * progmodes/cc-cmds.el: In c-electric-brace, add code for new | |
337 clean-up one-liner-defun. | |
338 | |
339 * progmodes/cc-styles.el: Add the new "awk" style. | |
340 | |
341 * progmodes/cc-vars.el: Add description of one-liner-defun to | |
342 c-cleanup-list's doc-string. New user options, | |
343 c-max-one-liner-length. In c-default-style, set the default style | |
344 for AWK to "awk". | |
345 | |
346 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
347 | |
348 * progmodes/cc-engine.el (c-forward-label): Fixed fontification of | |
349 macros inside labels. | |
350 | |
351 * progmodes/cc-engine.el (c-looking-at-bos): Obsoleted in favor of | |
352 `c-at-statement-start-p' and `c-at-expression-start-p'. | |
353 | |
354 * progmodes/cc-defs.el (c-tnt-chng-record-state): Don't signal an | |
355 error if the mark isn't set. | |
356 | |
357 * progmodes/cc-engine.el (c-guess-continued-construct, | |
358 c-guess-basic-syntax): Use `c-forward-decl-or-cast-1' to more | |
359 accurately detect functions inside functions. | |
360 | |
361 * progmodes/cc-engine.el (c-at-expression-start-p): New function | |
362 like `c-at-statement-start-p' that additionally recognizes commas | |
363 and expression parentheses as delimiters. | |
364 | |
365 * progmodes/cc-engine.el (c-looking-at-inexpr-block): Added flag | |
366 to avoid heuristics that doesn't work for unclosed blocks. | |
367 | |
368 (c-at-statement-start-p): New function. | |
369 | |
370 * progmodes/cc-engine.el, cc-fonts.el: Fixes in handling of | |
371 Objective-C directives, e.g. directives spanning lines should work | |
372 reasonably well now. | |
373 | |
374 (c-put-c-type-property, c-clear-c-type-property): New helpers. | |
375 | |
376 (c-forward-objc-directive): New function to move over any ObjC | |
377 directive. | |
378 | |
379 (c-just-after-func-arglist-p, c-guess-basic-syntax, | |
380 c-basic-matchers-before): Use it. | |
381 | |
382 (c-font-lock-objc-iip-decl): Removed. | |
383 | |
384 * progmodes/cc-engine.el (c-guess-basic-syntax): Some improvement | |
385 in the template arglist recognition. | |
386 | |
387 * progmodes/cc-styles.el (c-style-alist): Fixed several | |
388 inconsistencies in the Whitesmith style. | |
389 | |
390 * progmodes/cc-align.el (c-lineup-after-whitesmith-blocks): New | |
391 lineup function to get lines after Whitesmith style blocks | |
392 correctly indented. | |
393 | |
394 (c-lineup-whitesmith-in-block): Backed out the compensation for | |
395 opening parens since it's done using `add' lists in the style | |
396 definition instead. Don't use the anchor position since it varies | |
397 too much between the syntactic symbols. :P | |
398 | |
399 * progmodes/cc-vars.el (c-valid-offset): Updated. | |
400 | |
401 * progmodes/cc-engine.el (c-evaluate-offset): Extended to handle | |
402 lists where the offsets are combined according to several | |
403 different methods: `first', `min', `max', and `add'. Report | |
404 offset evaluation errors with `c-benign-error' so that some kind | |
405 of reindentation still is done. | |
406 | |
407 * progmodes/cc-engine.el (c-guess-basic-syntax): Anchor | |
408 `arglist-intro' the same way as `arglist-cont-nonempty' and | |
409 `arglist-close'. | |
410 | |
411 * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed similar | |
412 situations for `arglist-cont-nonempty' and `arglist-close'. | |
413 | |
414 * progmodes/cc-langs.el (c-opt-identifier-concat-key-depth): New | |
415 constant. | |
416 | |
417 * progmodes/cc-defs.el: Use `cc-bytecomp-fboundp' and | |
418 cc-bytecomp-boundp' in a number of places. | |
419 | |
420 * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed a | |
421 macro related issue. | |
422 | |
423 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
424 | |
425 * progmodes/cc-awk.el: Change the terminology of regexps: A char | |
426 list is now | |
427 [asdf], a char class [:alpha:]. Include code for char classes. | |
428 Set c-awk-NL-prop on lines ending in open strings. (Bug fix.) | |
429 Add character classes (e.g. "[:alpha:]") into AWK Mode's regexps. | |
430 | |
431 Remove (nearly all of) the cruft associated with AWK Mode's former | |
432 concept of "virtual semicolons": | |
433 | |
434 Adapt c-beginning-of-statement, c-end-of-statement (together with | |
435 subfunctions) to use the new notion of "virtual semicolon" in | |
436 place of the old awkward special handling for AWK. There remains | |
437 much cruft in cc-awk.el, cc-cmds.el and cc-engine.el to clear out. | |
438 * progmodes/cc-cmds.el: | |
439 (c-ascertain-adjacent-literal): In the backwards direction, now | |
440 recognises AWK regexp delimiters as string delimiters. | |
441 (c-after-statement-terminator-p): Adapt for virtual semicolons; | |
442 check more rigorously for "end of macro". | |
443 (c-back-over-illiterals, c-forward-over-illiterals): Adapt for | |
444 virtual semicolons; | |
445 (c-beginning-of-statement): Adapt for virtual semicolons; Separate | |
446 out the code for forward movement into ... | |
447 (c-end-of-statement): Now contains the code for forward movement, | |
448 adapted for virtual semicolons. | |
449 | |
450 * progmodes/cc-engine.el: | |
451 (c-ws*-string-limit-regexp): new regexp. | |
452 (c-forward-single-comment, c-backward-single-comment): Comment out | |
453 the (now redundant) "special" AWK stuff. | |
454 | |
455 * progmodes/cc-styles.el, cc-vars.el: Change the settings of | |
456 c-string-par-start, c-string-par-separate to be more like Text | |
457 Mode than Fundamental Mode. | |
458 | |
459 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
460 | |
461 * progmodes/cc-fonts.el (c-font-lock-declarations): Always narrow | |
462 to the fontified region so that fontification doesn't occur | |
463 outside it | |
464 (could happen e.g. when fontifying a line with an unfinished | |
465 declaration). | |
466 | |
467 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
468 | |
469 * progmodes/cc-awk.el: Regexps for analysing AWK code have been | |
470 moved to near the start of the file. ^L now separate sections of | |
471 the file. New defconsts: c-awk-non-eol-esc-pair-re, | |
472 c-awk-blank-or-comment-line-re, | |
473 c-awk-one-line-possibly-open-string-re, | |
474 c-awk-regexp-one-line-possibly-open-char-class-re, | |
475 c-awk-one-line-possibly-open-regexp-re, | |
476 c-awk-one-line-non-syn-ws*-re. New functions: c-awk-at-vsemi-p, | |
477 c-awk-vsemi-status-unknown-p. | |
478 | |
479 Amend the concept of "virtual semicolons" (in the indentation | |
480 engine) for languages like AWK, such that they are now | |
481 conceptually attached to end of the last token of a statement, not | |
482 the end of the line. (In AWK Mode, however, the pertinent text | |
483 property is still physically set on the EOL.) Remove the specific | |
484 tests for awk-mode, thus facilitating the introduction of other | |
485 language modes where EOLs can end statements. (Note: The | |
486 funtionality in cc-cmds.el, specifically | |
487 c-beginning/end-of-statement has yet to be amended.) | |
488 | |
489 * progmodes/cc-defs.el: New macros c-at-vsemi-p, | |
490 c-vsemi-status-unknown-p. | |
491 | |
492 * progmodes/cc-langs.el: Added `#' into AWK Mode's value of | |
493 c-stmt-delim-chars. New c-lang-defvars: c-at-vsemi-p-fn, | |
494 c-vsemi-status-unknown-p-fn (in a new page). | |
495 | |
496 * progmodes/cc-engine.el: In c-beginning-of-statement-1, | |
497 c-crosses-statement-barrier-p, c-guess-basic-syntax, replace | |
498 numerous awkward forms like | |
499 (if (c-major-mode-is 'awk-mode) (c-awk-prev-line-incomplete-p)) | |
500 with | |
501 (c-at-vsemi-p). Fix a few typos. In c-guess-basic-syntax, new | |
502 variable before-ws-ip, the place just after char-before-ip | |
503 appears. | |
504 | |
505 * progmodes/cc-mode.el: Fix what's almost a semantic ambiguity in | |
506 a comment. | |
507 | |
508 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
509 | |
510 * progmodes/cc-cmds.el (c-electric-brace): Cleaned up using | |
511 `c-tentative-buffer-changes'. | |
512 | |
513 * progmodes/cc-defs.el (c-region-is-active-p): Simplified and | |
514 converted to macro to choose between Emacs and XEmacs at compile | |
515 time. | |
516 | |
517 (c-set-region-active): New set counterpart to | |
518 `c-region-is-active-p'. | |
519 | |
520 (c-tentative-buffer-changes): New macro to handle temporary buffer | |
521 changes in a convenient way. | |
522 | |
523 (c-tnt-chng-record-state, c-tnt-chng-cleanup): Internal helpers | |
524 for `c-tentative-buffer-changes'. | |
525 | |
526 * progmodes/cc-engine.el (c-looking-at-inexpr-block): Tightened up | |
527 the checks for paren sexps between the point and the keyword, to | |
528 avoid some false alarms. | |
529 | |
530 * progmodes/cc-engine.el, cc-langs.el (c-looking-at-inexpr-block): | |
531 Fixed a situation where an error could be thrown for unbalanced | |
532 parens. Changed to make use of c-keyword-member' to avoid some | |
533 repeated regexp matches. | |
534 | |
535 (c-opt-lambda-key, c-opt-inexpr-block-key, | |
536 c-opt-inexpr-class-key): These language variable are no longer | |
537 necessary. | |
538 | |
539 (c-block-stmt-kwds): New language constant used by | |
540 c-looking-at-inexpr-block'. | |
541 | |
542 (c-guess-basic-syntax): Removed an optional check that looked at | |
543 the existence of the now removed language variables. | |
544 | |
545 * progmodes/cc-engine.el (c-fdoc-shift-type-backward, | |
546 c-forward-decl-or-cast-1): Fixed invalid recognition of C++ style | |
547 object instantiation expressions as declarations in some contexts. | |
548 This bug only affected languages where the declarator can't be | |
549 enclosed in parentheses. | |
550 | |
551 * progmodes/cc-styles.el (c-style-alist): Fixed the GNU style to | |
552 insert newlines before and after substatement braces. | |
553 | |
554 * progmodes/cc-engine.el: Improved the heuristics for recognizing | |
555 function declaration headers and the handling of C++ style member | |
556 init lists. | |
557 | |
558 (c-just-after-func-arglist-p): Rewritten to use | |
559 `c-forward-decl-or-cast-1'. Now behaves a bit differently too. | |
560 | |
561 (c-beginning-of-member-init-list): Removed since it isn't used | |
562 anymore. | |
563 | |
564 (c-guess-basic-syntax): Case 5B adapted for the new | |
565 `c-just-after-func-arglist-p'. Cases 5B.1 and 5B.3 merged. Cases | |
566 5D.1 and 5D.2 removed since they aren't trigged anymore (case 5B.1 | |
567 covers all cases now). | |
568 | |
569 * progmodes/cc-defs.el (c-point): Added 'bosws and 'eosws. | |
570 | |
571 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
572 | |
573 * progmodes/cc-cmds.el, cc-styles.el, cc-vars.el: New variables | |
574 c-string-par-start/separate c-sentence-end-with-esc-eol, | |
575 initialised in c-setup-paragraph-variables, used in string | |
576 scanning subroutines of c-beginning-of-statement. | |
577 | |
578 * progmodes/cc-cmds.el (c-electric-brace): don't delete a comment | |
579 which precedes the newly inserted `{'. | |
580 | |
581 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
582 | |
583 * progmodes/cc-engine.el, cc-langs.el: Rewrote the recognition | |
584 function for declaration level blocks. It should now cope with | |
585 templates better and also be a lot more comprehensible. | |
586 | |
587 (c-looking-at-decl-block): The new function. | |
588 | |
589 (c-search-uplist-for-classkey): The old one. It's now a wrapper | |
590 for compatibility. | |
591 | |
592 (c-add-class-syntax, c-guess-continued-construct, | |
593 c-guess-basic-syntax): Adapted for `c-looking-at-decl-block'. | |
594 | |
595 (c-decl-block-key): Changed to tell apart ambiguous and | |
596 unambiguous keywords. Pike specials are now handled directly in | |
597 the code instead. | |
598 | |
599 (c-block-prefix-disallowed-chars, c-block-prefix-charset): New | |
600 language constants and variables to make the backward skip in | |
601 `c-looking-at-decl-block' as tight as possible. | |
602 | |
603 (c-nonsymbol-token-char-list): New language constant. | |
604 | |
605 * progmodes/cc-engine.el (c-backward-<>-arglist): New function to | |
606 find balanced template arglists backwards. | |
607 | |
608 * progmodes/cc-defs.el (c-make-bare-char-alt): New helper for | |
609 making char classes for `c-syntactic-skip-backward'. | |
610 | |
611 * progmodes/cc-engine.el (c-guess-basic-syntax): Simplified case | |
612 16D - can't be a class-close at that point. | |
613 | |
614 * progmodes/cc-engine.el (c-guess-basic-syntax, | |
615 c-add-class-syntax): Don't narrow out the enclosing declaration | |
616 level. This makes everything a lot easier, and it was actually | |
617 only four small places that needed it to work. Some places that | |
618 previously did `widen' are removed now, which has the effect that | |
619 `c-guess-basic-syntax' never will look at things outside the | |
620 current narrowment now. The anchor position for `topmost-intro' | |
621 is affected by this, but it was so bogus it was basically useless | |
622 before, and now it's equally bogus but in a slightly different | |
623 way. | |
624 | |
625 (c-narrow-out-enclosing-class): Gone. | |
626 | |
627 (c-most-enclosing-brace, c-least-enclosing-brace): Don't filter to | |
628 the narrowed region. | |
629 | |
630 (c-least-enclosing-brace): Removed silly optional argument. | |
631 | |
632 * progmodes/cc-engine.el (c-beginning-of-decl-1): Fixed bug where | |
633 the point could be left directly after an open paren when finding | |
634 the beginning of the first decl in the block. | |
635 | |
636 * progmodes/cc-engine.el, cc-fonts.el (c-forward-keyword-clause): | |
637 Specify which submatch to use. | |
638 | |
639 * progmodes/cc-langs.el (c-symbol-start): Include '@' in ObjC. | |
640 | |
641 (c-decl-start-re): No no longer any need for special treatment of | |
642 ObjC due to the above. | |
643 | |
644 (c-other-block-decl-kwds): Handle "extern" in ObjC too since it | |
645 presumably follows C in that regard. | |
646 | |
647 * progmodes/cc-langs.el (c-identifier-ops, c-after-id-concat-ops): | |
648 New language constants to specify operator tokens inside | |
649 identifiers in a more high level way. | |
650 | |
651 (c-opt-identifier-prefix-key): New internal language constant. | |
652 | |
653 (c-opt-identifier-concat-key, c-opt-after-id-concat-key, | |
654 c-identifier-start, c-identifier-key): Now completely calculated | |
655 from other constants. | |
656 | |
657 (c-identifier-last-sym-match): Decommissioned since it's no longer | |
658 used. | |
659 | |
660 (c-operators): Use `c-identifier-ops'. Documented | |
661 `postfix-if-paren'. | |
662 | |
663 * progmodes/cc-engine.el (c-forward-name): Removed the | |
664 optimization when c-identifier-key is equal to c-symbol-key since | |
665 it doesn't work in byte compiled files. Don't record empty | |
666 regions as identifiers. | |
667 | |
668 * progmodes/cc-langs.el (c-filter-ops): New helper function to | |
669 simplify access to `c-operators' and its likes. | |
670 | |
671 (c-operator-list, c-all-op-syntax-tokens, | |
672 c-nonsymbol-token-regexp, c-<>-multichar-token-regexp, | |
673 c-<-op-cont-regexp, c->-op-cont-regexp, c-expr-kwds, | |
674 c-primary-expr-regexp, c-cast-parens): Use it. | |
675 | |
676 * progmodes/cc-defs.el (c-lang-const): Fixes to allow use without | |
677 an explicit language in functions. | |
678 | |
679 * progmodes/cc-defs.el (c-make-keywords-re): Added an appendable | |
680 variant of adornment. | |
681 | |
682 * progmodes/cc-langs.el (c-any-class-key): Removed unused language | |
683 variable. | |
684 | |
685 (c-type-decl-prefix-key): Removed some now unnecessary cruft from | |
686 the Pike value. | |
687 | |
688 * progmodes/cc-engine.el (c-on-identifier, | |
689 c-simple-skip-symbol-backward): Small fix for handling "-" | |
690 correctly in `skip-chars-backward'. Affected the operator lfun | |
691 syntax in Pike. | |
692 | |
693 * progmodes/cc-langs.el (c-make-init-lang-vars-fun): Disabled the | |
694 diagnostic message about precompiled language vars not being used. | |
695 | |
696 * progmodes/cc-langs.el (c-paren-nontype-kwds): The GCC keyword | |
697 "__attribute__" is followed by a parenthesis. | |
698 | |
699 (c-type-start-kwds, c-prefix-spec-kwds, c-prefix-spec-kwds-re, | |
700 c-specifier-key, c-not-decl-init-keywords): Some cleanup using new | |
701 language constants `c-type-start-kwds' and `c-prefix-spec-kwds'. | |
702 | |
703 * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el: Internal | |
704 cleanups to properly detect the declared identifiers in various | |
705 declarations. | |
706 | |
707 (c-decl-start-kwds): New language constant to recognize | |
708 declarations that can start anywhere. Used for class declarations | |
709 in Pike. | |
710 | |
711 (c-specifier-key, c-not-decl-init-keywords, | |
712 c-decl-prefix-or-start-re, c-find-decl-prefix-search, | |
713 c-find-decl-spots): Implement `c-decl-start-kwds'. | |
714 | |
715 (c-other-decl-kwds, c-postfix-decl-spec-kwds, c-decl-hangon-kwds, | |
716 c-decl-hangon-key, c-forward-decl-or-cast-1): Separated the | |
717 handling of the compiler specific extension keywords into a new | |
718 language constant `c-decl-hangon-kwds' that defines keyword | |
719 clauses to be ignored in declarations. | |
720 | |
721 (c-forward-id-comma-list, c-forward-keyword-clause): Don't skip | |
722 past unrecognized tokens when handling `c-colon-type-list-kwds'. | |
723 Necessary to stop at the declared identifier in e.g. IDL valuetype | |
724 declarations. | |
725 | |
726 (c-typedef-decl-kwds, c-typeless-decl-kwds, c-type-list-kwds, | |
727 c-prefix-spec-kwds-re, c-postfix-spec-kwds, | |
728 c-after-suffixed-type-decl-key, c-opt-postfix-decl-spec-key, | |
729 c-forward-decl-or-cast-1): Recognize the declared identifier in | |
730 class and enum declarations as such and not as part of the type. | |
731 | |
732 (c-forward-decl-or-cast-1, c-forward-label): Relaxed the | |
733 interpretation of PRECEDING-TOKEN-END when there's no preceding | |
734 token. | |
735 | |
736 (c-forward-decl-or-cast-1): Don't disregard sure signs of | |
737 declarations when there's some syntax error later on. | |
738 | |
739 (c-complex-decl-matchers): Did away with a reference to | |
740 `c-specifier-key'. | |
741 | |
742 * progmodes/cc-engine.el (c-maybe-labelp): Provide no default | |
743 value - this variable is always dynamically bound. | |
744 | |
745 * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el, cc-menus.el, | |
746 cc-mode.el, cc-styles.el, cc-vars.el, cc-align.el, cc-awk.el, | |
747 cc-cmds.el, cc-defs.el: Changed the policy for marking up | |
748 functions that might do hidden buffer changes: All such internal | |
749 functions are now marked instead of those that don't. | |
750 | |
751 (c-beginning-of-macro, c-end-of-macro, c-(forward|backward)-comments, | |
752 c-(forward|backward)-single-comment, c-parse-state, c-on-identifier, | |
753 c-(fast-|slow-|)in-literal, c-literal-limits, c-collect-line-comments, | |
754 c-literal-type): Allow these functions to make hidden buffer changes, | |
755 so that they are free to use text property caching later on. | |
756 | |
757 (c-electric-backspace, c-electric-delete-forward, c-electric-pound, | |
758 c-electric-brace, c-electric-slash, c-electric-star, | |
759 c-electric-semi&comma, c-electric-colon, c-electric-lt-gt, | |
760 c-electric-paren, c-electric-continued-statement, c-indent-command, | |
761 c-indent-region, c-mask-paragraph, c-indent-new-comment-line, | |
762 c-context-line-break): Added `c-save-buffer-state' calls to comply | |
763 with the changed semantics of the functions above. | |
764 | |
765 * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed a bug | |
766 when macros occur in obscure places. Optimized the sexp movement | |
767 a bit. | |
768 | |
769 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
770 | |
771 Enhancements for c-beginning-of-statement to work in AWK Mode: | |
772 | |
773 * progmodes/cc-awk.el: Supersede c-awk-NL-prop value `;' | |
774 (completed statement) with `}' (statement completed by closing | |
775 brace or semicolon) and `$' (statement completed by EOL). | |
776 | |
777 (c-awk-virtual-semicolon-ends-prev-line-p, | |
778 c-awk-virtual-semicolon-ends-line-p, | |
779 c-awk-skip-semantic-ws-forward, c-awk-skip-semantic-ws-backward, | |
780 c-awk-at-statement-end-p): new functions | |
781 | |
782 * progmodes/cc-cmds.el: Simplify the structure of functions | |
783 c-forward-over-illiterals, c-back-over-illiterals. Enhance these | |
784 two functions and c-beginning-of-statement to handle AWK Mode. | |
785 | |
786 * progmodes/cc-engine.el: Enhance c-forward-single-comment, | |
787 c-backward-single-comment for AWK mode. Attempt to clarify their | |
788 doc-strings. | |
789 | |
790 * progmodes/cc-mode.el: Put M-a and M-e into awk-mode-map. | |
791 | |
792 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
793 | |
794 * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el: Cleaned up the | |
795 label handling. Labels are now recognized in a uniform and more | |
796 robust way, regardless of context. Text properties are put on all | |
797 labels to recognize the following declarations better. Multiword | |
798 labels are handled both in indentation and fontification for the | |
799 benefit of language extensions like Qt. For consistency, keywords | |
800 in labels are now fontified with the label face instead. That | |
801 also applies to "case" and "default". | |
802 | |
803 (c-beginning-of-statement-1): Fixed some bugs in the label | |
804 handling. Disregard `c-nonlabel-token-key' in labels that begin | |
805 with `c-label-kwds'. | |
806 | |
807 (c-find-decl-spots): Support that the callback adds more | |
808 `c-decl-end' spots to find. | |
809 | |
810 (c-forward-decl-or-cast-1): Don't treat a list of plain | |
811 identifiers followed by a colon as a declaration. | |
812 | |
813 (c-forward-label): New function to recognize labels. | |
814 | |
815 (c-guess-basic-syntax): Replaced uses of `c-label-key' with | |
816 `c-forward-label'. Moved the label recognition cases (14 and 15) | |
817 earlier since they aren't so context sensitive now. Handle labels | |
818 on the top level gracefully. Moved access label recognition to | |
819 the generic label case (CASE 15) - removed CASE 5E. | |
820 | |
821 (c-font-lock-declarations): Added recognition of labels in the | |
822 same round since we need to handle labels in parallell with other | |
823 declarations to recognize both accurately. It should also improve | |
824 speed. | |
825 | |
826 (c-simple-decl-matchers, c-basic-matchers-after): Moved | |
827 `c-font-lock-labels' so that it only is used on decoration level 2 | |
828 since `c-font-lock-declarations' handles it otherwise. | |
829 | |
830 (c-complex-decl-matchers): Removed the simplistic recognition of | |
831 access labels. | |
832 | |
833 (c-decl-prefix-re): Removed the kludges that was necessary to cope | |
834 with labels earlier. | |
835 | |
836 (c-decl-start-re): New language variable to make | |
837 `c-font-lock-declarations' stop for the special protection labels | |
838 in Objective-C that start with '@'. | |
839 | |
840 (c-label-key): Removed since it's no longer used. | |
841 | |
842 (c-recognize-colon-labels, c-label-prefix-re): New language | |
843 constants to support recognition of generic colon-terminated | |
844 labels. | |
845 | |
846 (c-type-decl-end-used): `c-decl-end' is now used whenever there | |
847 are colon terminated labels. | |
848 | |
849 * progmodes/cc-align.el (c-lineup-arglist): Fixed bug when the | |
850 first argument starts with a special brace list. | |
851 | |
852 * progmodes/cc-engine.el, cc-fonts.el (c-forward-decl-or-cast-1, | |
853 c-font-lock-declarations): Broke out the declaration and cast | |
854 recognition from `c-font-lock-declarations' to a new function, so | |
855 that it can be used in the indentation engine. | |
856 | |
857 * progmodes/cc-engine.el (c-find-decl-spots): Fixed bug in backing | |
858 up to the start of the literal. Fixed bug with the point on the | |
859 wrong side of the search limit that could happen when the start | |
860 position is inside a literal. | |
861 | |
862 * progmodes/cc-engine.el (c-parse-state, | |
863 c-invalidate-state-cache): Modified the use of `c-state-cache-end' | |
864 so that it's kept a little bit back to increase the hit rate. | |
865 | |
866 (c-parse-state): Changed the macro handling and fixed some | |
867 glitches. Macro context is checked more often than necessary now, | |
868 but otoh less garbage conses are generated. | |
869 | |
870 * progmodes/cc-engine.el (c-parse-state, | |
871 c-invalidate-state-cache): Cache the last position where | |
872 `c-state-cache' applies. This can speed up refontification quite | |
873 a bit in blocks where there are many non-brace parens before the | |
874 point. | |
875 | |
876 (c-state-cache-end): New variable for this. | |
877 | |
878 (c-guess-basic-syntax, c-debug-parse-state): Adapted for the new | |
879 cache variable. | |
880 | |
881 * progmodes/cc-engine.el (c-find-decl-spots): Take more care to | |
882 get close initial continue positions when the start position is | |
883 inside a literal or macro. Do not call the callback for spots | |
884 before the start position (which can happen e.g. for `c-decl-end' | |
885 spots inside comments). Optimize better in special cases when the | |
886 region is a single line inside a literal or macro (typically when | |
887 the current line is refontified). | |
888 | |
889 * progmodes/cc-engine.el (c-guess-basic-syntax): Simplified calls | |
890 to `c-add-stmt-syntax' - there's no need to explicitly whack off | |
891 entries from the paren state. | |
892 | |
893 * progmodes/cc-engine.el (c-add-stmt-syntax): Narrowed down the | |
894 special case for "else if" clauses. | |
895 | |
896 * progmodes/cc-engine.el (c-looking-at-inexpr-block, | |
897 c-add-stmt-syntax): Use `c-recognize-paren-inexpr-blocks'. | |
898 | |
899 * progmodes/cc-langs.el (c-recognize-paren-inexpr-blocks): New | |
900 language variable to recognize the gcc extension with statement | |
901 blocks inside expressions. | |
902 | |
903 * progmodes/cc-engine.el (c-add-stmt-syntax): Restructured to make | |
904 it somewhat more comprehensible. The argument AT-BLOCK-START is | |
905 no longer used and hence removed. | |
906 | |
907 (c-guess-continued-construct, c-guess-basic-syntax): Updated calls | |
908 to `c-add-stmt-syntax'. | |
909 | |
910 * progmodes/cc-engine.el (c-backward-to-decl-anchor): Use | |
911 `c-beginning-of-statement-1' instead of duplicating parts of it. | |
912 This fixes bogus label recognition. | |
913 | |
914 * progmodes/cc-engine.el (c-add-type, c-check-type, | |
915 c-forward-name, c-forward-type): Improved storage of template | |
916 types in `c-found-types' so that they can be recognized better. | |
917 | |
918 (c-syntactic-content): Added option to skip past nested parens. | |
919 | |
920 * progmodes/cc-engine.el (c-forward-name): Set | |
921 `c-last-identifier-range' all the time. It's less work that way. | |
922 Handle that there might not be an identifier to store in | |
923 `c-last-identifier-range'. | |
924 | |
925 (c-forward-type): Handle that `c-last-identifier-range' might be | |
926 nil from `c-forward-name'. | |
927 | |
928 * progmodes/cc-defs.el: (c-safe-scan-lists, | |
929 c-(go-)?(up|down)-list-(forward|backward)): Added limit arguments. | |
930 | |
931 * progmodes/cc-defs.el (c-save-buffer-state): Use `unwind-protect' | |
932 to work even if the form fails. | |
933 | |
934 * progmodes/cc-engine.el (c-parse-state): Speedup when moving far | |
935 down in a large file in one go. | |
936 | |
937 (c-get-fallback-start-pos): New helper function for | |
938 `c-parse-state'. | |
939 | |
940 * progmodes/cc-align.el (c-lineup-assignments): New lineup | |
941 function which is like `c-lineup-math' but returns nil instead of | |
942 `c-basic-offset' when it doesn't match. | |
943 | |
944 (c-lineup-math): Changed to use `c-lineup-assignments'. | |
945 | |
946 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
947 | |
948 * progmodes/cc-cmds.el: Fix some bugs in subfunctions of | |
949 c-beginning-of-statement. New subfunctions | |
950 c-in-comment-line-prefix-p, c-narrow-to-comment-innards. | |
951 | |
952 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
953 | |
954 * progmodes/cc-fonts.el, cc-langs.el: Use `c-simple-ws' instead of | |
955 hardcoded char classes whereever possible. Changed a couple of | |
956 places to use skip by syntax instead of skip by char class. | |
957 | |
958 * progmodes/cc-langs.el (c-unterminated-block-comment-regexp): | |
959 Fixed a bug in the regexp that caused extreme backtracking. | |
960 | |
961 * progmodes/cc-langs.el (c-block-comment-starter, | |
962 c-block-comment-ender): New language constants to specify in a | |
963 single place how block comments look. | |
964 | |
965 (c-comment-start-regexp, c-block-comment-start-regexp, | |
966 comment-start, comment-end, comment-start-skip, | |
967 c-syntactic-ws-start, c-syntactic-ws-end, c-nonwhite-syntactic-ws, | |
968 c-syntactic-ws, c-nonempty-syntactic-ws, | |
969 c-single-line-syntactic-ws, c-syntactic-eol): Now built from | |
970 `c-line-comment-starter', `c-block-comment-starter' and | |
971 `c-block-comment-ender'. | |
972 | |
973 (c-block-comment-regexp, c-unterminated-block-comment-regexp): New | |
974 language constants to break up things a bit. | |
975 | |
976 (c-simple-ws): New language constant for simple whitespace. | |
977 | |
978 * progmodes/cc-defs.el (c-concat-separated): New convenience | |
979 function. | |
980 | |
981 * progmodes/cc-defs.el (c-make-keywords-re): Added kludge for bug | |
982 in `regexp-opt' in Emacs 20 and XEmacs when strings contain | |
983 newlines. Allow and ignore nil elements in the list. | |
984 | |
985 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
986 | |
987 * progmodes/cc-cmds.el: Comment out a (n almost certainly | |
988 superfluous) check, (eq here (point-max)) in | |
989 c-beginning-of-statement. | |
990 | |
991 * progmodes/cc-cmds.el: Tidy up the comments in | |
992 c-beginning-of-statement and subfunctions. | |
993 | |
994 * progmodes/cc-awk.el: Replace calls to put-text-property to the | |
995 more flexible c-put-char-property and c-clear-char-properties. | |
996 Add the author's email address. | |
997 | |
998 * progmodes/cc-langs.el: New variable, | |
999 c-block-comment-start-regexp. | |
1000 | |
1001 * progmodes/cc-cmds.el: Fix bug with M-e, when point is inside the | |
1002 closing "*/" of a block comment. | |
1003 | |
1004 * progmodes/cc-cmds.el: Tidy c-beginning-of-sentence (and | |
1005 subfunctions) so that it works at BOB and EOB. | |
1006 | |
1007 * progmodes/cc-cmds.el, cc-vars.el: More updating of | |
1008 c-beginning-of-statement, including new variable | |
1009 c-block-comment-start-regexp. | |
1010 | |
1011 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
1012 | |
1013 * progmodes/cc-langs.el (c-known-type-key): Optimize simple | |
1014 symbols from `*-font-lock-extra-types' so that there's no need to | |
1015 use `regexp-opt' on those lists. | |
1016 | |
1017 * progmodes/cc-langs.el (c-type-decl-suffix-key): Fix when | |
1018 `c-type-modifier-kwds' is empty. | |
1019 | |
1020 * progmodes/cc-fonts.el (c-font-lock-invalid-string): Fix when | |
1021 there are several strings on the same line. | |
1022 | |
1023 * progmodes/cc-engine.el (c-literal-limits): Removed the | |
1024 compatibility function for older emacsen. `c-literal-limits-fast' | |
1025 has now taken the place of this function. | |
1026 | |
1027 * progmodes/cc-vars.el (c-emacs-features): Removed compatibility | |
1028 with older emacsen: We now require 'pps-extended-state. | |
1029 | |
1030 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
1031 | |
1032 * progmodes/cc-cmds.el: New function c-beginning-of-sentence, | |
1033 which obviates the need to hack sentence-end. This now handles | |
1034 escaped newlines in strings correctly. Correct minor bugs in | |
1035 c-move-over-sentence and in c-beginning-of-statement. | |
1036 | |
1037 * progmodes/cc-cmds.el (c-beginning-of-statement (and | |
1038 subfunctions)): Adapt c-\(back\|forward\)-over-illiterals such | |
1039 that movement over macros and code are rigorously separated from | |
1040 eachother. Correct a few incidental bugs. | |
1041 | |
1042 * progmodes/cc-cmds.el: Restructure c-beginning-of-statement: | |
1043 Improve its doc-string. Improve the handling of certain specific | |
1044 cases. | |
1045 | |
1046 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
1047 | |
1048 * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el | |
1049 (c-guess-basic-syntax): Changed the way class-level labels are | |
1050 recognized; they can now contain essentially any symbols. | |
1051 | |
1052 (c-opt-extra-label-key): New language variable to cope with the | |
1053 special protection label syntax in Objective-C. | |
1054 | |
1055 (c-opt-access-key): Removed; this is now handled better by | |
1056 `c-nonlabel-token-key' and `c-opt-extra-label-key'. | |
1057 | |
1058 (c-complex-decl-matchers): Update to handle that | |
1059 `c-opt-access-key' no longer exists. | |
1060 | |
1061 * progmodes/cc-engine.el (c-guess-basic-syntax): Make use of the | |
1062 improved label recognition in `c-beginning-of-statement-1'. | |
1063 | |
1064 * progmodes/cc-engine.el (c-beginning-of-member-init-list): | |
1065 Recognize bitfields better. | |
1066 | |
1067 * progmodes/cc-engine.el (c-beginning-of-inheritance-list): | |
1068 Removed some cruft and fixed a bug that could cause it to go to a | |
1069 position further down. | |
1070 | |
1071 * progmodes/cc-langs.el, cc-engine.el | |
1072 (c-beginning-of-statement-1): Improved detection of labels in | |
1073 declaration contexts. | |
1074 | |
1075 (c-beginning-of-decl-1): Use it. | |
1076 | |
1077 (c-nonlabel-token-key): New language constant and variable needed | |
1078 by `c-beginning-of-statement-1'. | |
1079 | |
1080 * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug that | |
1081 manifested itself due to the correction in `c-forward-sexp'. | |
1082 | |
1083 * progmodes/cc-defs.el (c-forward-sexp, c-backward-sexp): Made | |
1084 these behave as documented when used at the buffer limits. | |
1085 | |
1086 * progmodes/cc-mode.el, cc-engine.el, cc-langs.el | |
1087 (c-type-decl-end-used): Made this a language variable. | |
1088 | |
1089 * progmodes/cc-mode.el (c-after-change): Widen the buffer to work | |
1090 correctly when `combine-after-change-calls' is used together with | |
1091 temporary narrowings. | |
1092 | |
1093 * progmodes/cc-engine.el (c-beginning-of-statement-1): Report | |
1094 labels correctly when the start point is immediately after the | |
1095 colon. | |
1096 | |
1097 * progmodes/cc-defs.el (c-parse-sexp-lookup-properties): Removed | |
1098 since it isn't used anymore. | |
1099 | |
1100 * progmodes/cc-cmds.el (c-electric-lt-gt): Detect and mark angle | |
1101 bracket arglists such as template parens in C++. | |
1102 | |
1103 * progmodes/cc-engine.el (c-syntactic-skip-backward): Fixed a bug | |
1104 in the last check-in. Some optimization. | |
1105 | |
1106 * progmodes/cc-engine.el (c-syntactic-skip-backward): Fixed bug | |
1107 where it could stop at the same level in a preceding sexp when | |
1108 PAREN-LEVEL is set. | |
1109 | |
1110 * progmodes/cc-mode.el (c-basic-common-init): Turn on syntax-table | |
1111 text property lookup only when it's needed. | |
1112 | |
1113 * progmodes/cc-langs.el, cc-engine.el, cc-fonts.el, cc-mode.el: | |
1114 Changed the policy for paren marked angle brackets to be more | |
1115 persistent; once marked they remain marked even when they're found | |
1116 to be unbalanced in the searched region. This should keep the | |
1117 paren syntax around even when individual lines are refontified in | |
1118 multiline template arglists. | |
1119 | |
1120 (c-parse-and-markup-<>-arglists): New dynamically bound variable | |
1121 to control markup so that incorrect angle bracket arglists aren't | |
1122 marked in contexts where the correct value for | |
1123 `c-disallow-comma-in-<>-arglists' isn't known. | |
1124 | |
1125 (c-forward-<>-arglist, c-forward-<>-arglist-recur): The reparse | |
1126 argument has become `c-parse-and-markup-<>-arglists'. | |
1127 | |
1128 (c-remove-<>-arglist-properties): Removed - no longer used. | |
1129 | |
1130 (c-after-change-check-<>-operators): New function used on | |
1131 `after-change-functions' to avoid that "<" and ">" characters that | |
1132 are part of longer operators have paren syntax. | |
1133 | |
1134 (c-<>-multichar-token-regexp): New language variable used by | |
1135 `c-after-change-check-<>-operators'. | |
1136 | |
1137 (c-after-change): Call `c-after-change-check-<>-operators'. | |
1138 | |
1139 (c-font-lock-<>-arglists): Use the context properties set by | |
1140 `c-font-lock-declarations' to set | |
1141 `c-disallow-comma-in-<>-arglists' correctly to avoid doing invalid | |
1142 markup. | |
1143 | |
1144 (c-font-lock-declarations): Removed code that undoes the invalid | |
1145 markup done by `c-font-lock-<>-arglists'. | |
1146 | |
1147 (c-complex-decl-matchers): `c-font-lock-<>-arglists' now runs | |
1148 after `c-font-lock-declarations'. | |
1149 | |
1150 * progmodes/cc-engine.el (c-syntactic-skip-backward): Added | |
1151 paren-level feature. | |
1152 | |
1153 (c-guess-basic-syntax): Improved the anchor position for | |
1154 `template-args-cont' in nested template arglists. There's still | |
1155 much to be desired in this area, though. | |
1156 | |
1157 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | |
1158 | |
1159 * progmodes/cc-cmds.el, cc-engine.el, cc-langs.el, cc-vars.el: | |
1160 Make the "Text Filling and Line Breaking" commands work for AWK | |
1161 buffers. | |
1162 | |
1163 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | |
1164 | |
1165 * progmodes/cc-defs.el, cc-engine.el (c-mode-is-new-awk-p): | |
1166 Removed; | |
1167 (c-major-mode-is 'awk-mode) can be used instead now. | |
1168 | |
1169 * progmodes/cc-mode.el: Always set up AWK mode since emacsen where | |
1170 it doesn't work no longer are supported. | |
1171 | |
1172 * progmodes/cc-mode.el, cc-styles.el, cc-vars.el, cc-defs.el, | |
1173 cc-engine.el, cc-fonts.el, cc-langs.el, cc-cmds.el: CC Mode now | |
1174 requires support for the syntax-table' text property, which rules | |
1175 out Emacs 19 and XEmacs < 21.4. Removed various compatibility | |
1176 cruft associated with those versions. | |
1177 | |
1178 * progmodes/cc-defs.el, cc-fix.el: CC Mode now requires support | |
1179 for the `syntax-table' text property, which rules out Emacs 19 and | |
1180 XEmacs < 21.4. Removed various compatibility cruft associated | |
1181 with those versions. | |
1182 | |
1183 * progmodes/cc-vars.el (c-emacs-features): CC Mode now requires | |
1184 support for the `syntax-table' text property. | |
1185 | |
1186 * progmodes/cc-fonts.el (c-nonbreakable-space-face): Remove the | |
1187 variable and use an extra quoted face name instead. All the | |
1188 emacsen flavors handle that correctly. | |
1189 | |
1190 * progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare, | |
1191 c-font-lock-declarators, c-font-lock-declarations, | |
1192 c-complex-decl-matchers, c-basic-matchers-after): Use a text | |
1193 property to mark the items in in declarator lists to handle | |
1194 refontification inside multiline declarations better. | |
1195 | |
1196 * progmodes/cc-fonts.el (c-font-lock-declarations): Recognize a | |
1197 construct like "a * b = c;" as a declaration. | |
1198 | |
1199 | |
1200 Local Variables: | |
1201 add-log-mailing-address: "bug-cc-mode@gnu.org" | |
1202 End: | |
1 2005-12-08 Kim F. Storm <storm@cua.dk> | 1203 2005-12-08 Kim F. Storm <storm@cua.dk> |
2 | 1204 |
3 * emulation/cua-rect.el (cua--extract-rectangle): Don't use \s | 1205 * emulation/cua-rect.el (cua--extract-rectangle): Don't use \s |
4 in strings. | 1206 in strings. |
5 | 1207 |