emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117018: * src/window.c (Fset_window_configuration):


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r117018: * src/window.c (Fset_window_configuration): Deactivate the mark before
Date: Thu, 24 Apr 2014 03:59:40 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117018
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2014-04-23 23:59:19 -0400
message:
  * 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.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/buffer.c                   buffer.c-20091113204419-o5vbwnq5f7feedwu-264
  src/buffer.h                   buffer.h-20091113204419-o5vbwnq5f7feedwu-196
  src/keyboard.c                 keyboard.c-20091113204419-o5vbwnq5f7feedwu-449
  src/window.c                   window.c-20091113204419-o5vbwnq5f7feedwu-231
  src/xdisp.c                    xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-04-23 18:23:28 +0000
+++ b/src/ChangeLog     2014-04-24 03:59:19 +0000
@@ -1,3 +1,13 @@
+2014-04-24  Stefan Monnier  <address@hidden>
+
+       * 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  <address@hidden>
 
        * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0

=== modified file 'src/buffer.c'
--- a/src/buffer.c      2014-04-16 19:43:46 +0000
+++ b/src/buffer.c      2014-04-24 03:59:19 +0000
@@ -1158,10 +1158,10 @@
        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 @@
    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;

=== modified file 'src/buffer.h'
--- a/src/buffer.h      2014-04-04 16:59:50 +0000
+++ b/src/buffer.h      2014-04-24 03:59:19 +0000
@@ -1079,7 +1079,7 @@
 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);

=== modified file 'src/keyboard.c'
--- a/src/keyboard.c    2014-04-22 21:32:51 +0000
+++ b/src/keyboard.c    2014-04-24 03:59:19 +0000
@@ -228,14 +228,14 @@
 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;
 

=== modified file 'src/window.c'
--- a/src/window.c      2014-04-16 14:00:39 +0000
+++ b/src/window.c      2014-04-24 03:59:19 +0000
@@ -119,9 +119,6 @@
 /* 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 @@
   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 @@
              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 @@
          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 @@
   Vterminal_frame = selected_frame;
   minibuf_window = f->minibuffer_window;
   selected_window = f->selected_window;
-
-  window_initialized = 1;
 }
 
 void

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2014-04-18 23:36:51 +0000
+++ b/src/xdisp.c       2014-04-24 03:59:19 +0000
@@ -23422,7 +23422,7 @@
            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 @@
              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 @@
          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))
                {


reply via email to

[Prev in Thread] Current Thread [Next in Thread]