* lisp/progmodes/f90.el (f90-blocks-re): Include the terminating \> in the
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 15 May 2013 00:52:07 +0000 (20:52 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 15 May 2013 00:52:07 +0000 (20:52 -0400)
surrounding group.
* src/regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.

Fixes: debbugs:14402

lisp/ChangeLog
lisp/progmodes/f90.el
src/ChangeLog
src/regex.c

index 5b2c28d..a93b286 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * progmodes/f90.el (f90-blocks-re): Include the terminating \> in the
+       surrounding group (bug#14402).
+
 2013-05-14  Juri Linkov  <juri@jurta.org>
 
        * subr.el (find-tag-default-as-regexp): Return nil if `tag' is nil.
@@ -10,8 +15,8 @@
 
 2013-05-14  Jean-Philippe Gravel  <jpgravel@gmail.com>
 
-       * progmodes/gdb-mi.el (gdb-running, gdb-starting): Remove
-       signals for which replies are never received.
+       * progmodes/gdb-mi.el (gdb-running, gdb-starting):
+       Remove signals for which replies are never received.
 
 2013-05-14  Jean-Philippe Gravel  <jpgravel@gmail.com>
 
 
        * progmodes/octave.el (octave-indent-comment): Improve.
        (octave-eldoc-message-style, octave-eldoc-cache): New variables.
-       (octave-eldoc-function-signatures, octave-eldoc-function): New
-       functions.
+       (octave-eldoc-function-signatures, octave-eldoc-function):
+       New functions.
        (octave-mode, inferior-octave-mode): Add eldoc support.
 
 2013-05-11  Richard Stallman  <rms@gnu.org>
 
 2013-05-10  Leo Liu  <sdl.web@gmail.com>
 
-       * progmodes/octave.el (inferior-octave-completion-table): No
-       longer a function and all uses changed.  Use cache to speed up
+       * progmodes/octave.el (inferior-octave-completion-table):
+       No longer a function and all uses changed.  Use cache to speed up
        completion due to bug#11906.
        (octave-beginning-of-defun): Re-write to be more general.
 
        * progmodes/octave.el (octave-syntax-propertize-function): Change
        \'s syntax to escape when inside double-quoted strings.  (Bug#14332)
        (octave-font-lock-keywords): Use octave-operator-regexp.
-       (octave-completion-at-point): Renamed from
+       (octave-completion-at-point): Rename from
        octave-completion-at-point-function.
        (inferior-octave-directory-tracker): Robustify.
        (octave-text-functions): Remove and fix its uses.  No such things
index a8f53d3..d7d0c10 100644 (file)
   "Qualification of END statements according to the matching block start.
 For example, change the END that closes an IF block to END IF.
 If the block has a label, add it as well (unless `f90-smart-end-names'
-says not to).  Allowed values are 'blink, 'no-blink, and nil.  If nil,
-nothing is done.  The other two settings have the same effect, but 'blink
+says not to).  Allowed values are `blink', `no-blink', and nil.  If nil,
+nothing is done.  The other two settings have the same effect, but `blink'
 additionally blinks the cursor to the start of the block."
   :type  '(choice (const blink) (const no-blink) (const nil))
   :safe  (lambda (value) (memq value '(blink no-blink nil)))
@@ -842,14 +842,14 @@ Can be overridden by the value of `font-lock-maximum-decoration'.")
 \f
 ;; Regexps for finding program structures.
 (defconst f90-blocks-re
-  (concat "\\(block[ \t]*data\\|"
+  (concat "\\(\\(?:block[ \t]*data\\|"
           (regexp-opt '("do" "if" "interface" "function" "module" "program"
                         "select" "subroutine" "type" "where" "forall"
                         ;; F2003.
                         "enum" "associate"
                         ;; F2008.
                         "submodule" "block" "critical"))
-          "\\)\\_>")
+          "\\)\\_>\\)")
   "Regexp potentially indicating a \"block\" of F90 code.")
 
 (defconst f90-program-block-re
@@ -1138,8 +1138,8 @@ Variables controlling indentation style and extra features:
   Automatic insertion of \& at beginning of continuation lines (default t).
 `f90-smart-end'
   From an END statement, check and fill the end using matching block start.
-  Allowed values are 'blink, 'no-blink, and nil, which determine
-  whether to blink the matching beginning (default 'blink).
+  Allowed values are `blink', `no-blink', and nil, which determine
+  whether to blink the matching beginning (default `blink').
 `f90-auto-keyword-case'
   Automatic change of case of keywords (default nil).
   The possibilities are `downcase-word', `upcase-word', `capitalize-word'.
index d7778e3..0b4ccb0 100644 (file)
@@ -1,8 +1,12 @@
+2013-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
+
 2013-05-14  Eli Zaretskii  <eliz@gnu.org>
 
        * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
-       unless we know that the window w is a leaf window.  Another
-       attempt at solving bug#14062.
+       unless we know that the window w is a leaf window.
+       Another attempt at solving bug#14062.
 
 2013-05-14  Jan Djärv  <jan.h.d@swipnet.se>
 
index 83d80b5..0442938 100644 (file)
@@ -2622,7 +2622,7 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct
            goto normal_char;
        handle_plus:
        case '*':
-         /* If there is no previous pattern... */
+         /* If there is no previous pattern...  */
          if (!laststart)
            {
              if (syntax & RE_CONTEXT_INVALID_OPS)
@@ -2730,7 +2730,7 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct
                  }
              }
            else                /* not greedy */
-             { /* I wish the greedy and non-greedy cases could be merged. */
+             { /* I wish the greedy and non-greedy cases could be merged.  */
 
                GET_BUFFER_SPACE (7); /* We might use less.  */
                if (many_times_ok)
@@ -3034,7 +3034,7 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct
 
                /* Allocate space for COUNT + RANGE_TABLE.  Needs two
                   bytes for flags, two for COUNT, and three bytes for
-                  each character. */
+                  each character.  */
                GET_BUFFER_SPACE (4 + used * 3);
 
                /* Indicate the existence of range table.  */
@@ -3461,6 +3461,7 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct
            /* There is no way to specify the before_dot and after_dot
               operators.  rms says this is ok.  --karl  */
            case '=':
+             laststart = b;
              BUF_PUSH (at_dot);
              break;
 
@@ -3509,12 +3510,14 @@ regex_compile (const re_char *pattern, size_t size, reg_syntax_t syntax, struct
            case '<':
              if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
+             laststart = b;
              BUF_PUSH (wordbeg);
              break;
 
            case '>':
              if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
+             laststart = b;
              BUF_PUSH (wordend);
              break;