]> git.eshelyaron.com Git - emacs.git/commitdiff
(find_defun_start): When open_paren_in_column_0_is_defun_start,
authorRichard M. Stallman <rms@gnu.org>
Sat, 17 May 2003 12:50:31 +0000 (12:50 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 17 May 2003 12:50:31 +0000 (12:50 +0000)
return beginning of buffer.

src/ChangeLog
src/syntax.c

index 5a67533e82beb2561b9d021a666b2404271e3184..ae5f2d339a277f9e308e2f7bcadca16bad76faf6 100644 (file)
@@ -1,3 +1,31 @@
+2003-05-17  Richard M. Stallman  <rms@gnu.org>
+
+       * syntax.c (find_defun_start):
+       When open_paren_in_column_0_is_defun_start,
+       return beginning of buffer.
+
+       * lisp.h (map_char_table): Declare added arg.
+
+       * fns.c (map_char_table): New arg TABLE gets the master table.
+       All calls changed.
+       Process default and inheritance, resorting to Faref if necessary.
+
+       * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap)
+       (Faccessible_keymaps): Pass new arg to map_char_table.
+
+       * fontset.c (Ffontset_info): Pass new arg to map_char_table.
+
+       * casetab.c (set_case_table): Pass new arg to map_char_table.
+
+       * data.c (let_shadows_buffer_binding_p): Make target of p volatile.
+
+       * lisp.h (specbinding_func): New typedef.
+       (struct specbinding): Use specbinding_func, to put the `volatile'
+       in the right place.
+
+       * alloc.c (Fgarbage_collect): Cast pointers into specpdl
+       to avoid GCC warning.
+       
 2003-05-16  Ralph Schleicher  <rs@nunatak.allgaeu.org>  (tiny change)
 
        * fileio.c (Fdelete_file): Handle symlinks pointing to
index d25c4394c6efdcfbeef49f1e1a9679a68a8e7de7..706706a53a14013cdbac02fa4f45a3a7c4c513fc 100644 (file)
@@ -337,7 +337,7 @@ dec_bytepos (bytepos)
    It should be the last one before POS, or nearly the last.
 
    When open_paren_in_column_0_is_defun_start is nonzero,
-   the beginning of every line is treated as a defun-start.
+   only the beginning of the buffer is treated as a defun-start.
 
    We record the information about where the scan started
    and what its result was, so that another call in the same area
@@ -353,6 +353,12 @@ find_defun_start (pos, pos_byte)
 {
   int opoint = PT, opoint_byte = PT_BYTE;
 
+  if (!open_paren_in_column_0_is_defun_start)
+    {
+      find_start_value_byte = BEGV_BYTE;
+      return BEGV;
+    }
+
   /* Use previous finding, if it's valid and applies to this inquiry.  */
   if (current_buffer == find_start_buffer
       /* Reuse the defun-start even if POS is a little farther on.
@@ -372,24 +378,21 @@ find_defun_start (pos, pos_byte)
      syntax-tables.  */
   gl_state.current_syntax_table = current_buffer->syntax_table;
   gl_state.use_global = 0;
-  if (open_paren_in_column_0_is_defun_start)
+  while (PT > BEGV)
     {
-      while (PT > BEGV)
+      /* Open-paren at start of line means we may have found our
+        defun-start.  */
+      if (SYNTAX (FETCH_CHAR (PT_BYTE)) == Sopen)
        {
-         /* Open-paren at start of line means we may have found our
-            defun-start.  */
+         SETUP_SYNTAX_TABLE (PT + 1, -1);      /* Try again... */
          if (SYNTAX (FETCH_CHAR (PT_BYTE)) == Sopen)
-           {
-             SETUP_SYNTAX_TABLE (PT + 1, -1);  /* Try again... */
-             if (SYNTAX (FETCH_CHAR (PT_BYTE)) == Sopen)
-               break;
-             /* Now fallback to the default value.  */
-             gl_state.current_syntax_table = current_buffer->syntax_table;
-             gl_state.use_global = 0;
-           }
-         /* Move to beg of previous line.  */
-         scan_newline (PT, PT_BYTE, BEGV, BEGV_BYTE, -2, 1);
+           break;
+         /* Now fallback to the default value.  */
+         gl_state.current_syntax_table = current_buffer->syntax_table;
+         gl_state.use_global = 0;
        }
+      /* Move to beg of previous line.  */
+      scan_newline (PT, PT_BYTE, BEGV, BEGV_BYTE, -2, 1);
     }
 
   /* Record what we found, for the next try.  */