Commit 1fd1cc2f authored by Richard M. Stallman's avatar Richard M. Stallman

(find_defun_start): When open_paren_in_column_0_is_defun_start,

return beginning of buffer.
parent 07c9ebd6
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
......
......@@ -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. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment