------------------------------------------------------------ revno: 117018 committer: Stefan Monnier 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. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-04-23 18:23:28 +0000 +++ src/ChangeLog 2014-04-24 03:59:19 +0000 @@ -1,3 +1,13 @@ +2014-04-24 Stefan Monnier + + * 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 * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0 === modified file 'src/buffer.c' --- src/buffer.c 2014-04-16 19:43:46 +0000 +++ 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' --- src/buffer.h 2014-04-04 16:59:50 +0000 +++ 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' --- src/keyboard.c 2014-04-22 21:32:51 +0000 +++ 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' --- src/window.c 2014-04-16 14:00:39 +0000 +++ 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' --- src/xdisp.c 2014-04-18 23:36:51 +0000 +++ 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)) { ------------------------------------------------------------ revno: 117017 committer: Daniel Colascione branch nick: trunk timestamp: Wed 2014-04-23 19:37:02 -0700 message: Add coproc to list of bash builtins. * lisp/progmodes/sh-script.el (sh-builtins): Add coproc to list of bash builtins. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-04-23 01:40:35 +0000 +++ lisp/ChangeLog 2014-04-24 02:37:02 +0000 @@ -1,3 +1,7 @@ +2014-04-24 Daniel Colascione + + * progmodes/sh-script.el (sh-builtins): Add coproc to list of bash builtins. + 2014-04-23 Stefan Monnier * emacs-lisp/cl-macs.el (cl--loop-let): Fix last merge. === modified file 'lisp/progmodes/sh-script.el' --- lisp/progmodes/sh-script.el 2014-04-19 17:14:27 +0000 +++ lisp/progmodes/sh-script.el 2014-04-24 02:37:02 +0000 @@ -677,7 +677,7 @@ "jobs" "kill" "let" "local" "popd" "printf" "pushd" "shopt" "source" "suspend" "typeset" "unalias" ;; bash4 - "mapfile" "readarray") + "mapfile" "readarray" "coproc") ;; The next entry is only used for defining the others (bourne sh-append shell ------------------------------------------------------------ revno: 117016 committer: Paul Eggert branch nick: trunk timestamp: Wed 2014-04-23 11:23:28 -0700 message: * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0 and to clang 3.4, which have fixed the bug. This should let us run a bit faster on these platforms when address sanitization is in effect. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-04-22 21:32:51 +0000 +++ src/ChangeLog 2014-04-23 18:23:28 +0000 @@ -1,3 +1,10 @@ +2014-04-23 Paul Eggert + + * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0 + and to clang 3.4, which have fixed the bug. This should let us + run a bit faster on these platforms when address sanitization is + in effect. + 2014-04-22 Paul Eggert Port to GCC 4.9.0 with --enable-gcc-warnings. === modified file 'src/conf_post.h' --- src/conf_post.h 2014-04-22 21:32:51 +0000 +++ src/conf_post.h 2014-04-23 18:23:28 +0000 @@ -226,14 +226,14 @@ /* Work around GCC bug 59600: when a function is inlined, the inlined code may have its addresses sanitized even if the function has the - no_sanitize_address attribute. This bug is present in GCC 4.8.2 - and clang 3.3, the latest releases as of December 2013, and the - only platforms known to support address sanitization. When the bug - is fixed the #if can be updated accordingly. */ -#if ADDRESS_SANITIZER + no_sanitize_address attribute. This bug is fixed in GCC 4.9.0 and + clang 3.4. */ +#if (! ADDRESS_SANITIZER \ + || ((4 < __GNUC__ + (9 <= __GNUC_MINOR__)) \ + || 3 < __clang_major__ + (4 <= __clang_minor__))) +# define ADDRESS_SANITIZER_WORKAROUND /* No workaround needed. */ +#else # define ADDRESS_SANITIZER_WORKAROUND NO_INLINE -#else -# define ADDRESS_SANITIZER_WORKAROUND #endif /* Attribute of functions whose code should not have addresses ------------------------------------------------------------ revno: 117015 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2014-04-22 21:40:35 -0400 message: * lisp/emacs-lisp/cl-macs.el (cl--loop-let): Fix last merge. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-04-22 21:46:19 +0000 +++ lisp/ChangeLog 2014-04-23 01:40:35 +0000 @@ -1,3 +1,7 @@ +2014-04-23 Stefan Monnier + + * emacs-lisp/cl-macs.el (cl--loop-let): Fix last merge. + 2014-04-22 Michael Heerdegen * dired.el (dired-insert-set-properties): Do not consider === modified file 'lisp/emacs-lisp/cl-macs.el' --- lisp/emacs-lisp/cl-macs.el 2014-04-22 21:32:51 +0000 +++ lisp/emacs-lisp/cl-macs.el 2014-04-23 01:40:35 +0000 @@ -1548,7 +1548,8 @@ (if (and (cl--unused-var-p temp) (null expr)) nil ;; Don't bother declaring/setting `temp' since it won't ;; be used when `expr' is nil, anyway. - (when (or (null temp) (cl--unused-var-p temp)) + (when (or (null temp) + (and (eq body 'setq) (cl--unused-var-p temp))) ;; Prefer a fresh uninterned symbol over "_to", to avoid ;; warnings that we set an unused variable. (setq temp (make-symbol "--cl-var--"))