diff options
| author | Stefan Monnier | 2013-05-14 20:52:07 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2013-05-14 20:52:07 -0400 |
| commit | 5ac2eb344ff68720495d655bccd4c19ac92b04d9 (patch) | |
| tree | 4e4030e53385f47ac8b324e95bd092d81c131282 | |
| parent | 180ed218429ec9c0ce8e3ee186a47c9565459eff (diff) | |
| download | emacs-5ac2eb344ff68720495d655bccd4c19ac92b04d9.tar.gz emacs-5ac2eb344ff68720495d655bccd4c19ac92b04d9.zip | |
* lisp/progmodes/f90.el (f90-blocks-re): Include the terminating \> in the
surrounding group.
* src/regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
Fixes: debbugs:14402
| -rw-r--r-- | lisp/ChangeLog | 19 | ||||
| -rw-r--r-- | lisp/progmodes/f90.el | 12 | ||||
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/regex.c | 9 |
4 files changed, 30 insertions, 18 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5b2c28d97a1..a93b2868933 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * progmodes/f90.el (f90-blocks-re): Include the terminating \> in the | ||
| 4 | surrounding group (bug#14402). | ||
| 5 | |||
| 1 | 2013-05-14 Juri Linkov <juri@jurta.org> | 6 | 2013-05-14 Juri Linkov <juri@jurta.org> |
| 2 | 7 | ||
| 3 | * subr.el (find-tag-default-as-regexp): Return nil if `tag' is nil. | 8 | * subr.el (find-tag-default-as-regexp): Return nil if `tag' is nil. |
| @@ -10,8 +15,8 @@ | |||
| 10 | 15 | ||
| 11 | 2013-05-14 Jean-Philippe Gravel <jpgravel@gmail.com> | 16 | 2013-05-14 Jean-Philippe Gravel <jpgravel@gmail.com> |
| 12 | 17 | ||
| 13 | * progmodes/gdb-mi.el (gdb-running, gdb-starting): Remove | 18 | * progmodes/gdb-mi.el (gdb-running, gdb-starting): |
| 14 | signals for which replies are never received. | 19 | Remove signals for which replies are never received. |
| 15 | 20 | ||
| 16 | 2013-05-14 Jean-Philippe Gravel <jpgravel@gmail.com> | 21 | 2013-05-14 Jean-Philippe Gravel <jpgravel@gmail.com> |
| 17 | 22 | ||
| @@ -120,8 +125,8 @@ | |||
| 120 | 125 | ||
| 121 | * progmodes/octave.el (octave-indent-comment): Improve. | 126 | * progmodes/octave.el (octave-indent-comment): Improve. |
| 122 | (octave-eldoc-message-style, octave-eldoc-cache): New variables. | 127 | (octave-eldoc-message-style, octave-eldoc-cache): New variables. |
| 123 | (octave-eldoc-function-signatures, octave-eldoc-function): New | 128 | (octave-eldoc-function-signatures, octave-eldoc-function): |
| 124 | functions. | 129 | New functions. |
| 125 | (octave-mode, inferior-octave-mode): Add eldoc support. | 130 | (octave-mode, inferior-octave-mode): Add eldoc support. |
| 126 | 131 | ||
| 127 | 2013-05-11 Richard Stallman <rms@gnu.org> | 132 | 2013-05-11 Richard Stallman <rms@gnu.org> |
| @@ -166,8 +171,8 @@ | |||
| 166 | 171 | ||
| 167 | 2013-05-10 Leo Liu <sdl.web@gmail.com> | 172 | 2013-05-10 Leo Liu <sdl.web@gmail.com> |
| 168 | 173 | ||
| 169 | * progmodes/octave.el (inferior-octave-completion-table): No | 174 | * progmodes/octave.el (inferior-octave-completion-table): |
| 170 | longer a function and all uses changed. Use cache to speed up | 175 | No longer a function and all uses changed. Use cache to speed up |
| 171 | completion due to bug#11906. | 176 | completion due to bug#11906. |
| 172 | (octave-beginning-of-defun): Re-write to be more general. | 177 | (octave-beginning-of-defun): Re-write to be more general. |
| 173 | 178 | ||
| @@ -357,7 +362,7 @@ | |||
| 357 | * progmodes/octave.el (octave-syntax-propertize-function): Change | 362 | * progmodes/octave.el (octave-syntax-propertize-function): Change |
| 358 | \'s syntax to escape when inside double-quoted strings. (Bug#14332) | 363 | \'s syntax to escape when inside double-quoted strings. (Bug#14332) |
| 359 | (octave-font-lock-keywords): Use octave-operator-regexp. | 364 | (octave-font-lock-keywords): Use octave-operator-regexp. |
| 360 | (octave-completion-at-point): Renamed from | 365 | (octave-completion-at-point): Rename from |
| 361 | octave-completion-at-point-function. | 366 | octave-completion-at-point-function. |
| 362 | (inferior-octave-directory-tracker): Robustify. | 367 | (inferior-octave-directory-tracker): Robustify. |
| 363 | (octave-text-functions): Remove and fix its uses. No such things | 368 | (octave-text-functions): Remove and fix its uses. No such things |
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el index a8f53d397d6..d7d0c109452 100644 --- a/lisp/progmodes/f90.el +++ b/lisp/progmodes/f90.el | |||
| @@ -249,8 +249,8 @@ | |||
| 249 | "Qualification of END statements according to the matching block start. | 249 | "Qualification of END statements according to the matching block start. |
| 250 | For example, change the END that closes an IF block to END IF. | 250 | For example, change the END that closes an IF block to END IF. |
| 251 | If the block has a label, add it as well (unless `f90-smart-end-names' | 251 | If the block has a label, add it as well (unless `f90-smart-end-names' |
| 252 | says not to). Allowed values are 'blink, 'no-blink, and nil. If nil, | 252 | says not to). Allowed values are `blink', `no-blink', and nil. If nil, |
| 253 | nothing is done. The other two settings have the same effect, but 'blink | 253 | nothing is done. The other two settings have the same effect, but `blink' |
| 254 | additionally blinks the cursor to the start of the block." | 254 | additionally blinks the cursor to the start of the block." |
| 255 | :type '(choice (const blink) (const no-blink) (const nil)) | 255 | :type '(choice (const blink) (const no-blink) (const nil)) |
| 256 | :safe (lambda (value) (memq value '(blink no-blink nil))) | 256 | :safe (lambda (value) (memq value '(blink no-blink nil))) |
| @@ -842,14 +842,14 @@ Can be overridden by the value of `font-lock-maximum-decoration'.") | |||
| 842 | 842 | ||
| 843 | ;; Regexps for finding program structures. | 843 | ;; Regexps for finding program structures. |
| 844 | (defconst f90-blocks-re | 844 | (defconst f90-blocks-re |
| 845 | (concat "\\(block[ \t]*data\\|" | 845 | (concat "\\(\\(?:block[ \t]*data\\|" |
| 846 | (regexp-opt '("do" "if" "interface" "function" "module" "program" | 846 | (regexp-opt '("do" "if" "interface" "function" "module" "program" |
| 847 | "select" "subroutine" "type" "where" "forall" | 847 | "select" "subroutine" "type" "where" "forall" |
| 848 | ;; F2003. | 848 | ;; F2003. |
| 849 | "enum" "associate" | 849 | "enum" "associate" |
| 850 | ;; F2008. | 850 | ;; F2008. |
| 851 | "submodule" "block" "critical")) | 851 | "submodule" "block" "critical")) |
| 852 | "\\)\\_>") | 852 | "\\)\\_>\\)") |
| 853 | "Regexp potentially indicating a \"block\" of F90 code.") | 853 | "Regexp potentially indicating a \"block\" of F90 code.") |
| 854 | 854 | ||
| 855 | (defconst f90-program-block-re | 855 | (defconst f90-program-block-re |
| @@ -1138,8 +1138,8 @@ Variables controlling indentation style and extra features: | |||
| 1138 | Automatic insertion of \& at beginning of continuation lines (default t). | 1138 | Automatic insertion of \& at beginning of continuation lines (default t). |
| 1139 | `f90-smart-end' | 1139 | `f90-smart-end' |
| 1140 | From an END statement, check and fill the end using matching block start. | 1140 | From an END statement, check and fill the end using matching block start. |
| 1141 | Allowed values are 'blink, 'no-blink, and nil, which determine | 1141 | Allowed values are `blink', `no-blink', and nil, which determine |
| 1142 | whether to blink the matching beginning (default 'blink). | 1142 | whether to blink the matching beginning (default `blink'). |
| 1143 | `f90-auto-keyword-case' | 1143 | `f90-auto-keyword-case' |
| 1144 | Automatic change of case of keywords (default nil). | 1144 | Automatic change of case of keywords (default nil). |
| 1145 | The possibilities are `downcase-word', `upcase-word', `capitalize-word'. | 1145 | The possibilities are `downcase-word', `upcase-word', `capitalize-word'. |
diff --git a/src/ChangeLog b/src/ChangeLog index d7778e3a524..0b4ccb0708a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,8 +1,12 @@ | |||
| 1 | 2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart. | ||
| 4 | |||
| 1 | 2013-05-14 Eli Zaretskii <eliz@gnu.org> | 5 | 2013-05-14 Eli Zaretskii <eliz@gnu.org> |
| 2 | 6 | ||
| 3 | * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT | 7 | * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT |
| 4 | unless we know that the window w is a leaf window. Another | 8 | unless we know that the window w is a leaf window. |
| 5 | attempt at solving bug#14062. | 9 | Another attempt at solving bug#14062. |
| 6 | 10 | ||
| 7 | 2013-05-14 Jan Djärv <jan.h.d@swipnet.se> | 11 | 2013-05-14 Jan Djärv <jan.h.d@swipnet.se> |
| 8 | 12 | ||
diff --git a/src/regex.c b/src/regex.c index 83d80b5aaa9..04429386f84 100644 --- a/src/regex.c +++ b/src/regex.c | |||
| @@ -2622,7 +2622,7 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct | |||
| 2622 | goto normal_char; | 2622 | goto normal_char; |
| 2623 | handle_plus: | 2623 | handle_plus: |
| 2624 | case '*': | 2624 | case '*': |
| 2625 | /* If there is no previous pattern... */ | 2625 | /* If there is no previous pattern... */ |
| 2626 | if (!laststart) | 2626 | if (!laststart) |
| 2627 | { | 2627 | { |
| 2628 | if (syntax & RE_CONTEXT_INVALID_OPS) | 2628 | if (syntax & RE_CONTEXT_INVALID_OPS) |
| @@ -2730,7 +2730,7 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct | |||
| 2730 | } | 2730 | } |
| 2731 | } | 2731 | } |
| 2732 | else /* not greedy */ | 2732 | else /* not greedy */ |
| 2733 | { /* I wish the greedy and non-greedy cases could be merged. */ | 2733 | { /* I wish the greedy and non-greedy cases could be merged. */ |
| 2734 | 2734 | ||
| 2735 | GET_BUFFER_SPACE (7); /* We might use less. */ | 2735 | GET_BUFFER_SPACE (7); /* We might use less. */ |
| 2736 | if (many_times_ok) | 2736 | if (many_times_ok) |
| @@ -3034,7 +3034,7 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct | |||
| 3034 | 3034 | ||
| 3035 | /* Allocate space for COUNT + RANGE_TABLE. Needs two | 3035 | /* Allocate space for COUNT + RANGE_TABLE. Needs two |
| 3036 | bytes for flags, two for COUNT, and three bytes for | 3036 | bytes for flags, two for COUNT, and three bytes for |
| 3037 | each character. */ | 3037 | each character. */ |
| 3038 | GET_BUFFER_SPACE (4 + used * 3); | 3038 | GET_BUFFER_SPACE (4 + used * 3); |
| 3039 | 3039 | ||
| 3040 | /* Indicate the existence of range table. */ | 3040 | /* Indicate the existence of range table. */ |
| @@ -3461,6 +3461,7 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct | |||
| 3461 | /* There is no way to specify the before_dot and after_dot | 3461 | /* There is no way to specify the before_dot and after_dot |
| 3462 | operators. rms says this is ok. --karl */ | 3462 | operators. rms says this is ok. --karl */ |
| 3463 | case '=': | 3463 | case '=': |
| 3464 | laststart = b; | ||
| 3464 | BUF_PUSH (at_dot); | 3465 | BUF_PUSH (at_dot); |
| 3465 | break; | 3466 | break; |
| 3466 | 3467 | ||
| @@ -3509,12 +3510,14 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct | |||
| 3509 | case '<': | 3510 | case '<': |
| 3510 | if (syntax & RE_NO_GNU_OPS) | 3511 | if (syntax & RE_NO_GNU_OPS) |
| 3511 | goto normal_char; | 3512 | goto normal_char; |
| 3513 | laststart = b; | ||
| 3512 | BUF_PUSH (wordbeg); | 3514 | BUF_PUSH (wordbeg); |
| 3513 | break; | 3515 | break; |
| 3514 | 3516 | ||
| 3515 | case '>': | 3517 | case '>': |
| 3516 | if (syntax & RE_NO_GNU_OPS) | 3518 | if (syntax & RE_NO_GNU_OPS) |
| 3517 | goto normal_char; | 3519 | goto normal_char; |
| 3520 | laststart = b; | ||
| 3518 | BUF_PUSH (wordend); | 3521 | BUF_PUSH (wordend); |
| 3519 | break; | 3522 | break; |
| 3520 | 3523 | ||