commit 39dca94701de81d02c75316e32d67e3677bd685d (HEAD, refs/remotes/origin/master) Author: Juri Linkov Date: Wed Sep 9 00:51:32 2015 +0300 * lisp/info.el (Info-fontify-node): Don't stop at the non-title underline. (Bug#21433) diff --git a/lisp/info.el b/lisp/info.el index a5a2c55..95f0bcb 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -4720,28 +4720,28 @@ first line or header line, and for breadcrumb links.") ;; Fontify titles (goto-char (point-min)) (when (and font-lock-mode not-fontified-p) - (while (and (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$" - nil t) - ;; Only consider it as an underlined title if the ASCII - ;; underline has the same size as the text. A typical - ;; counter example is when a continuation "..." is alone - ;; on a line. - (= (string-width (match-string 1)) - (string-width (match-string 2)))) - (let* ((c (preceding-char)) - (face - (cond ((= c ?*) 'info-title-1) - ((= c ?=) 'info-title-2) - ((= c ?-) 'info-title-3) - (t 'info-title-4)))) - (put-text-property (match-beginning 1) (match-end 1) - 'font-lock-face face)) - ;; This is a serious problem for trying to handle multiple - ;; frame types at once. We want this text to be invisible - ;; on frames that can display the font above. - (when (memq (framep (selected-frame)) '(x pc w32 ns)) - (add-text-properties (1- (match-beginning 2)) (match-end 2) - '(invisible t front-sticky nil rear-nonsticky t))))) + (while (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$" + nil t) + ;; Only consider it as an underlined title if the ASCII + ;; underline has the same size as the text. A typical + ;; counter example is when a continuation "..." is alone + ;; on a line. + (when (= (string-width (match-string 1)) + (string-width (match-string 2))) + (let* ((c (preceding-char)) + (face + (cond ((= c ?*) 'info-title-1) + ((= c ?=) 'info-title-2) + ((= c ?-) 'info-title-3) + (t 'info-title-4)))) + (put-text-property (match-beginning 1) (match-end 1) + 'font-lock-face face)) + ;; This is a serious problem for trying to handle multiple + ;; frame types at once. We want this text to be invisible + ;; on frames that can display the font above. + (when (memq (framep (selected-frame)) '(x pc w32 ns)) + (add-text-properties (1- (match-beginning 2)) (match-end 2) + '(invisible t front-sticky nil rear-nonsticky t)))))) ;; Fontify cross references (goto-char (point-min)) commit f201dfd377cc35c79bcee7ca8da07c41fb33591f Author: Stefan Monnier Date: Tue Sep 8 16:45:14 2015 -0400 * lisp/calendar/time-date.el (with-decoded-time-value): Fix debug spec diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el index bb7e97e..f30bea8 100644 --- a/lisp/calendar/time-date.el +++ b/lisp/calendar/time-date.el @@ -52,7 +52,8 @@ Type 0 is the cons cell (HIGH . LOW), type 1 is the list (HIGH LOW), type 2 is the list (HIGH LOW MICRO), and type 3 is the list (HIGH LOW MICRO PICO)." (declare (indent 1) - (debug ((&rest (symbolp symbolp symbolp &or [symbolp form] form)) + (debug ((&rest (symbolp symbolp symbolp + &or [symbolp symbolp form] [symbolp form] form)) body))) (if varlist (let* ((elt (pop varlist)) commit c825fd7cf94979a7f7c6777c985fd84024535905 Author: Tassilo Horn Date: Tue Sep 8 20:55:29 2015 +0200 Fix double-reporting of rename events with inotify * lisp/filenotify.el (file-notify-callback): Fix double-reporting of rename events with inotify (bug#21435). diff --git a/lisp/filenotify.el b/lisp/filenotify.el index 5822cf0..4af9e90 100644 --- a/lisp/filenotify.el +++ b/lisp/filenotify.el @@ -177,9 +177,9 @@ EVENT is the cadr of the event in `file-notify-handle-event' (car file-notify--pending-event))) ;; If the source is handled by another watch, we ;; must fire the rename event there as well. - (when (not (eq (file-notify--descriptor desc) - (file-notify--descriptor - (caar file-notify--pending-event)))) + (when (not (equal (file-notify--descriptor desc) + (file-notify--descriptor + (caar file-notify--pending-event)))) (setq pending-event `((,(caar file-notify--pending-event) renamed ,file ,file1) commit d6d545bf7636b7b7678ea85e58a41b6bf0b860ec Author: Vasilij Schneidermann Date: Tue Sep 8 13:55:50 2015 -0400 * lisp/play/tetris.el (tetris-move-down): New command (bug#21360) (tetris-mode-map): Use it. Copyright-paperwork-exempt: yes diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el index 586d1d5..0f3b758 100644 --- a/lisp/play/tetris.el +++ b/lisp/play/tetris.el @@ -265,7 +265,7 @@ each one of its four blocks.") (define-key map [left] 'tetris-move-left) (define-key map [right] 'tetris-move-right) (define-key map [up] 'tetris-rotate-prev) - (define-key map [down] 'tetris-rotate-next) + (define-key map [down] 'tetris-move-down) map)) (defvar tetris-null-map @@ -524,6 +524,16 @@ Drops the shape one square, testing for collision." (setq tetris-pos-x (1- tetris-pos-x))) (tetris-draw-shape))) +(defun tetris-move-down () + "Move the shape one square to the bottom." + (interactive) + (unless tetris-paused + (tetris-erase-shape) + (setq tetris-pos-y (1+ tetris-pos-y)) + (if (tetris-test-shape) + (setq tetris-pos-y (1- tetris-pos-y))) + (tetris-draw-shape))) + (defun tetris-rotate-prev () "Rotate the shape clockwise." (interactive) commit 48857075c96c00bdbf8536e25234d33ed1b6e3b9 Author: Paul Eggert Date: Tue Sep 8 07:34:54 2015 -0700 ; Fix comment to match recent code change diff --git a/src/xdisp.c b/src/xdisp.c index 6b165af..1a5be59 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -11120,8 +11120,7 @@ clear_garbaged_frames (void) /* Redisplay the echo area of the selected frame. If UPDATE_FRAME_P, update - selected_frame. Value is the affected frame if the mini-windows height has - been changed. */ + selected_frame. */ static void echo_area_display (bool update_frame_p) commit bc26305473ed59fe75b6efc3ba1c967f54c4c292 Author: Stefan Monnier Date: Tue Sep 8 10:25:59 2015 -0400 Remove a few simple cases of global redisplay * src/dispnew.c (redraw_frame): Don't redisplay all frames. * src/xdisp.c (echo_area_display): Set the frame's `redisplay' bit rather than returning a "resized_p" boolean. (redisplay_internal): Adjust call accordingly. * src/xfaces.c (free_realized_faces): Don't redisplay all frames. (free_all_realized_faces): Set windows_or_buffers_changed so as to ease tracking of this undesirable situation. diff --git a/src/dispnew.c b/src/dispnew.c index 18afe50..645d410 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -3004,7 +3004,7 @@ redraw_frame (struct frame *f) clear_frame (f); clear_current_matrices (f); update_end (f); - windows_or_buffers_changed = 13; + fset_redisplay (f); /* Mark all windows as inaccurate, so that every window will have its redisplay done. */ mark_window_display_accurate (FRAME_ROOT_WINDOW (f), 0); diff --git a/src/xdisp.c b/src/xdisp.c index 82931b8..6b165af 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -768,7 +768,7 @@ static void push_it (struct it *, struct text_pos *); static void iterate_out_of_display_property (struct it *); static void pop_it (struct it *); static void redisplay_internal (void); -static bool echo_area_display (bool); +static void echo_area_display (bool); static void redisplay_windows (Lisp_Object); static void redisplay_window (Lisp_Object, bool); static Lisp_Object redisplay_window_error (Lisp_Object); @@ -11119,11 +11119,11 @@ clear_garbaged_frames (void) } -/* Redisplay the echo area of the selected frame. If UPDATE_FRAME_P, - update selected_frame. Value is true if the mini-windows height - has been changed. */ +/* Redisplay the echo area of the selected frame. If UPDATE_FRAME_P, update + selected_frame. Value is the affected frame if the mini-windows height has + been changed. */ -static bool +static void echo_area_display (bool update_frame_p) { Lisp_Object mini_window; @@ -11138,14 +11138,14 @@ echo_area_display (bool update_frame_p) /* Don't display if frame is invisible or not yet initialized. */ if (!FRAME_VISIBLE_P (f) || !f->glyphs_initialized_p) - return false; + return; #ifdef HAVE_WINDOW_SYSTEM /* When Emacs starts, selected_frame may be the initial terminal frame. If we let this through, a message would be displayed on the terminal. */ if (FRAME_INITIAL_P (XFRAME (selected_frame))) - return false; + return; #endif /* HAVE_WINDOW_SYSTEM */ /* Redraw garbaged frames. */ @@ -11183,7 +11183,7 @@ echo_area_display (bool update_frame_p) pending input. */ ptrdiff_t count = SPECPDL_INDEX (); specbind (Qredisplay_dont_pause, Qt); - windows_or_buffers_changed = 44; + fset_redisplay (f); redisplay_internal (); unbind_to (count, Qnil); } @@ -11219,7 +11219,16 @@ echo_area_display (bool update_frame_p) if (EQ (mini_window, selected_window)) CHARPOS (this_line_start_pos) = 0; - return window_height_changed_p; + if (window_height_changed_p) + { + fset_redisplay (f); + + /* If window configuration was changed, frames may have been + marked garbaged. Clear them or we will experience + surprises wrt scrolling. + FIXME: How/why/when? */ + clear_garbaged_frames (); + } } /* True if W's buffer was changed but not saved. */ @@ -13445,7 +13454,7 @@ redisplay_internal (void) echo-area doesn't show through. */ && !MINI_WINDOW_P (XWINDOW (selected_window)))) { - bool window_height_changed_p = echo_area_display (false); + echo_area_display (false); if (message_cleared_p) update_miniwindow_p = true; @@ -13458,16 +13467,6 @@ redisplay_internal (void) the echo area. */ if (!display_last_displayed_message_p) message_cleared_p = false; - - if (window_height_changed_p) - { - windows_or_buffers_changed = 50; - - /* If window configuration was changed, frames may have been - marked garbaged. Clear them or we will experience - surprises wrt scrolling. */ - clear_garbaged_frames (); - } } else if (EQ (selected_window, minibuf_window) && (current_buffer->clip_changed || window_outdated (w)) diff --git a/src/xfaces.c b/src/xfaces.c index 0303249..a4f1aa8 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -4186,7 +4186,7 @@ free_realized_faces (struct face_cache *c) if (WINDOWP (f->root_window)) { clear_current_matrices (f); - windows_or_buffers_changed = 58; + fset_redisplay (f); } unblock_input (); @@ -4206,6 +4206,7 @@ free_all_realized_faces (Lisp_Object frame) Lisp_Object rest; FOR_EACH_FRAME (rest, frame) free_realized_faces (FRAME_FACE_CACHE (XFRAME (frame))); + windows_or_buffers_changed = 58; } else free_realized_faces (FRAME_FACE_CACHE (XFRAME (frame))); commit 645c8597e7f9fbc90ffe227d2be8ce383b0777ae Author: Stefan Monnier Date: Tue Sep 8 09:06:49 2015 -0400 * src/process.c (status_notify): Avoid global redisplay (bug#11822) * src/process.c (status_notify): Only set the update_mode_line on the relevant buffers rather than setting it globally. diff --git a/src/process.c b/src/process.c index f4613be..26f26c3 100644 --- a/src/process.c +++ b/src/process.c @@ -6694,10 +6694,12 @@ status_notify (struct Lisp_Process *deleting_process, p->update_tick = p->tick; /* Now output the message suitably. */ exec_sentinel (proc, msg); + if (BUFFERP (p->buffer)) + /* In case it uses %s in mode-line-format. */ + bset_update_mode_line (XBUFFER (p->buffer)); } } /* end for */ - update_mode_lines = 24; /* In case buffers use %s in mode-line-format. */ return got_some_output; } diff --git a/src/process.h b/src/process.h index e889055..24bad45 100644 --- a/src/process.h +++ b/src/process.h @@ -43,25 +43,25 @@ struct Lisp_Process /* Name of subprocess terminal. */ Lisp_Object tty_name; - /* Name of this process */ + /* Name of this process. */ Lisp_Object name; /* List of command arguments that this process was run with. - Is set to t for a stopped network process; nil otherwise. */ + Is set to t for a stopped network process; nil otherwise. */ Lisp_Object command; /* (funcall FILTER PROC STRING) (if FILTER is non-nil) - to dispose of a bunch of chars from the process all at once */ + to dispose of a bunch of chars from the process all at once. */ Lisp_Object filter; - /* (funcall SENTINEL PROCESS) when process state changes */ + /* (funcall SENTINEL PROCESS) when process state changes. */ Lisp_Object sentinel; /* (funcall LOG SERVER CLIENT MESSAGE) when a server process accepts a connection from a client. */ Lisp_Object log; - /* Buffer that output is going to */ + /* Buffer that output is going to. */ Lisp_Object buffer; /* t if this is a real child process. For a network or serial @@ -73,10 +73,10 @@ struct Lisp_Process /* Plist for programs to keep per-process state information, parameters, etc. */ Lisp_Object plist; - /* Symbol indicating the type of process: real, network, serial */ + /* Symbol indicating the type of process: real, network, serial. */ Lisp_Object type; - /* Marker set to end of last buffer-inserted output from this process */ + /* Marker set to end of last buffer-inserted output from this process. */ Lisp_Object mark; /* Symbol indicating status of process. @@ -98,7 +98,7 @@ struct Lisp_Process /* Working buffer for encoding. */ Lisp_Object encoding_buf; - /* Queue for storing waiting writes */ + /* Queue for storing waiting writes. */ Lisp_Object write_queue; #ifdef HAVE_GNUTLS @@ -116,9 +116,9 @@ struct Lisp_Process A value 0 is used for pseudo-processes such as network or serial connections. */ pid_t pid; - /* Descriptor by which we read from this process */ + /* Descriptor by which we read from this process. */ int infd; - /* Descriptor by which we write to this process */ + /* Descriptor by which we write to this process. */ int outfd; /* Descriptors that were created for this process and that need closing. Unused entries are negative. */ commit 10e7f7de910ca816799062f33b830f7598801f0e Author: Glenn Morris Date: Tue Sep 8 06:19:13 2015 -0400 ; Auto-commit of loaddefs files. diff --git a/lisp/dired.el b/lisp/dired.el index 757190b..b78b632 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -4399,7 +4399,7 @@ instead. ;;;*** -;;;### (autoloads nil "dired-x" "dired-x.el" "06a24044ec0f92e6f187101321d1e926") +;;;### (autoloads nil "dired-x" "dired-x.el" "63be23901985afd2a9aadc64f2aacf37") ;;; Generated autoloads from dired-x.el (autoload 'dired-jump "dired-x" "\ diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index bf28f89..790e8bc 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -984,7 +984,7 @@ Optional argument GROUP is the sub-group of slots to display. ;;;*** -;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "694d44fcd869546592d35f3321f62667") +;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "d00419c898056fadf2f8e491f864aa1e") ;;; Generated autoloads from eieio-opt.el (autoload 'eieio-browse "eieio-opt" "\ diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index f95f4fa..7dc9184 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el @@ -2932,7 +2932,7 @@ When LEVEL is non-nil, increase section numbers on that level. ;;;*** -;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "35c0c8fcf8eebfc4366bf0f78aed7f2f") +;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "86c0a243e49d55bb33a32ddac613e189") ;;; Generated autoloads from reftex-ref.el (autoload 'reftex-label-location "reftex-ref" "\ @@ -3046,7 +3046,7 @@ During a selection process, these are the local bindings. ;;;*** -;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "e3514ef292edfce6722c75225456ffa1") +;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "db9b727d89e2a6ff01986e7c6aff1058") ;;; Generated autoloads from reftex-toc.el (autoload 'reftex-toc "reftex-toc" "\