* src/window.c (Fset_window_configuration): Deactivate the mark before
unsetting the mark. (set_window_buffer): Ignore window_initialized. (window_initialized): Remove. * src/keyboard.c (Qdeactivate_mark): Not static any more. * src/buffer.c (buffer_local_value): Rename from buffer_local_value_1. Update all callers.
This commit is contained in:
parent
9b233997f4
commit
8917710efd
6 changed files with 34 additions and 24 deletions
|
@ -1,3 +1,13 @@
|
|||
2014-04-24 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* window.c (Fset_window_configuration): Deactivate the mark before
|
||||
unsetting the mark.
|
||||
(set_window_buffer): Ignore window_initialized.
|
||||
(window_initialized): Remove.
|
||||
* keyboard.c (Qdeactivate_mark): Not static any more.
|
||||
* buffer.c (buffer_local_value): Rename from buffer_local_value_1.
|
||||
Update all callers.
|
||||
|
||||
2014-04-23 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0
|
||||
|
|
|
@ -1158,10 +1158,10 @@ DEFUN ("buffer-local-value", Fbuffer_local_value,
|
|||
Sbuffer_local_value, 2, 2, 0,
|
||||
doc: /* Return the value of VARIABLE in BUFFER.
|
||||
If VARIABLE does not have a buffer-local binding in BUFFER, the value
|
||||
is the default binding of the variable. */)
|
||||
is the default binding of the variable. */)
|
||||
(register Lisp_Object variable, register Lisp_Object buffer)
|
||||
{
|
||||
register Lisp_Object result = buffer_local_value_1 (variable, buffer);
|
||||
register Lisp_Object result = buffer_local_value (variable, buffer);
|
||||
|
||||
if (EQ (result, Qunbound))
|
||||
xsignal1 (Qvoid_variable, variable);
|
||||
|
@ -1174,7 +1174,7 @@ is the default binding of the variable. */)
|
|||
locally unbound. */
|
||||
|
||||
Lisp_Object
|
||||
buffer_local_value_1 (Lisp_Object variable, Lisp_Object buffer)
|
||||
buffer_local_value (Lisp_Object variable, Lisp_Object buffer)
|
||||
{
|
||||
register struct buffer *buf;
|
||||
register Lisp_Object result;
|
||||
|
|
|
@ -1079,7 +1079,7 @@ extern ptrdiff_t overlay_strings (ptrdiff_t, struct window *, unsigned char **);
|
|||
extern void validate_region (Lisp_Object *, Lisp_Object *);
|
||||
extern void set_buffer_internal_1 (struct buffer *);
|
||||
extern void set_buffer_temp (struct buffer *);
|
||||
extern Lisp_Object buffer_local_value_1 (Lisp_Object, Lisp_Object);
|
||||
extern Lisp_Object buffer_local_value (Lisp_Object, Lisp_Object);
|
||||
extern void record_buffer (Lisp_Object);
|
||||
extern void fix_overlays_before (struct buffer *, ptrdiff_t, ptrdiff_t);
|
||||
extern void mmap_set_vars (bool);
|
||||
|
|
|
@ -228,14 +228,14 @@ static Lisp_Object Qbackward_char;
|
|||
Lisp_Object Qundefined;
|
||||
static Lisp_Object Qtimer_event_handler;
|
||||
|
||||
/* read_key_sequence stores here the command definition of the
|
||||
/* `read_key_sequence' stores here the command definition of the
|
||||
key sequence that it reads. */
|
||||
static Lisp_Object read_key_sequence_cmd;
|
||||
static Lisp_Object read_key_sequence_remapped;
|
||||
|
||||
static Lisp_Object Qinput_method_function;
|
||||
|
||||
static Lisp_Object Qdeactivate_mark;
|
||||
Lisp_Object Qdeactivate_mark;
|
||||
|
||||
Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
|
||||
|
||||
|
|
28
src/window.c
28
src/window.c
|
@ -119,9 +119,6 @@ static Lisp_Object Qtemp_buffer_show_hook;
|
|||
/* Incremented for each window created. */
|
||||
static int sequence_number;
|
||||
|
||||
/* Nonzero after init_window_once has finished. */
|
||||
static int window_initialized;
|
||||
|
||||
/* Hook to run when window config changes. */
|
||||
static Lisp_Object Qwindow_configuration_change_hook;
|
||||
|
||||
|
@ -3439,14 +3436,10 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer,
|
|||
wset_redisplay (w);
|
||||
w->update_mode_line = true;
|
||||
|
||||
/* We must select BUFFER for running the window-scroll-functions. */
|
||||
/* We can't check ! NILP (Vwindow_scroll_functions) here
|
||||
because that might itself be a local variable. */
|
||||
if (window_initialized)
|
||||
{
|
||||
record_unwind_current_buffer ();
|
||||
Fset_buffer (buffer);
|
||||
}
|
||||
/* We must select BUFFER to run the window-scroll-functions and to look up
|
||||
the buffer-local value of Vwindow_point_insertion_type. */
|
||||
record_unwind_current_buffer ();
|
||||
Fset_buffer (buffer);
|
||||
|
||||
XMARKER (w->pointm)->insertion_type = !NILP (Vwindow_point_insertion_type);
|
||||
|
||||
|
@ -6267,6 +6260,15 @@ the return value is nil. Otherwise the value is t. */)
|
|||
set_marker_restricted (w->start, p->start, w->contents);
|
||||
set_marker_restricted (w->pointm, p->pointm,
|
||||
w->contents);
|
||||
if (MARKERP (p->mark) && !XMARKER (p->mark)->buffer
|
||||
&& !NILP (BVAR (XBUFFER (w->contents), mark_active)))
|
||||
{
|
||||
struct buffer *old = current_buffer;
|
||||
extern Lisp_Object Qdeactivate_mark;
|
||||
set_buffer_internal (XBUFFER (w->contents));
|
||||
call0 (Qdeactivate_mark);
|
||||
set_buffer_internal (old);
|
||||
}
|
||||
Fset_marker (BVAR (XBUFFER (w->contents), mark),
|
||||
p->mark, w->contents);
|
||||
|
||||
|
@ -6619,7 +6621,7 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i)
|
|||
else
|
||||
p->pointm = Fcopy_marker (w->pointm, Qnil);
|
||||
XMARKER (p->pointm)->insertion_type
|
||||
= !NILP (buffer_local_value_1 /* Don't signal error if void. */
|
||||
= !NILP (buffer_local_value /* Don't signal error if void. */
|
||||
(Qwindow_point_insertion_type, w->contents));
|
||||
|
||||
p->start = Fcopy_marker (w->start, Qnil);
|
||||
|
@ -7138,8 +7140,6 @@ init_window_once (void)
|
|||
Vterminal_frame = selected_frame;
|
||||
minibuf_window = f->minibuffer_window;
|
||||
selected_window = f->selected_window;
|
||||
|
||||
window_initialized = 1;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -23422,7 +23422,7 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop,
|
|||
return OK_PIXELS (WINDOW_SCROLL_BAR_AREA_WIDTH (it->w));
|
||||
}
|
||||
|
||||
prop = buffer_local_value_1 (prop, it->w->contents);
|
||||
prop = buffer_local_value (prop, it->w->contents);
|
||||
if (EQ (prop, Qunbound))
|
||||
prop = Qnil;
|
||||
}
|
||||
|
@ -23474,7 +23474,7 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop,
|
|||
return OK_PIXELS (pixels);
|
||||
}
|
||||
|
||||
car = buffer_local_value_1 (car, it->w->contents);
|
||||
car = buffer_local_value (car, it->w->contents);
|
||||
if (EQ (car, Qunbound))
|
||||
car = Qnil;
|
||||
}
|
||||
|
@ -28543,8 +28543,8 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
|
|||
else if (area == ON_MODE_LINE)
|
||||
{
|
||||
Lisp_Object default_help
|
||||
= buffer_local_value_1 (Qmode_line_default_help_echo,
|
||||
w->contents);
|
||||
= buffer_local_value (Qmode_line_default_help_echo,
|
||||
w->contents);
|
||||
|
||||
if (STRINGP (default_help))
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue