emacs-diffs
[Top][All Lists]
Advanced

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

master 5c890bf: Merge from origin/emacs-27


From: Glenn Morris
Subject: master 5c890bf: Merge from origin/emacs-27
Date: Sat, 9 May 2020 13:03:32 -0400 (EDT)

branch: master
commit 5c890bfc191d0cf18dccbbf50ebdcde946a0d7fb
Merge: 196bc13 be0d1ca
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-27
    
    be0d1cac83 (origin/emacs-27) Small fix for type of 'display-fill-colu...
    c5e5839776 Fix customization of 'display-fill-column-indicator-charac...
    d5c184aa3e Refer to fill column indicator Info node in some places.
    e13300ae50 Merge branch 'emacs-27' of git.sv.gnu.org:/srv/git/emacs i...
    0bae57033f Fix GTK's Tool Bar menu radio buttons
    4c98aa7ea5 Minor clarifications in NEWS
    a1cbd05f38 Improve documentation of 'with-suppressed-warnings'.
    4a895c1b26 Fix a typo in a comment
    2caf3e997e Improve documentation of Hi Lock mode
    7081c1d66f Fix typos in the Emacs user manual
    0385771e2f Fix references to Speedbar in VHDL mode
    a76cafea0d Fix handling of FROM = t and TO = t by 'window-text-pixel-...
    
    # Conflicts:
    #   etc/NEWS
    #   src/xdisp.c
---
 doc/emacs/calendar.texi               |  4 +--
 doc/emacs/custom.texi                 |  2 +-
 doc/emacs/dired.texi                  |  6 ++++
 etc/NEWS.27                           | 16 ++++++---
 lisp/cus-start.el                     | 11 ++++--
 lisp/display-fill-column-indicator.el |  8 +++--
 lisp/emacs-lisp/byte-run.el           | 11 +++---
 lisp/hi-lock.el                       | 20 ++++++++---
 lisp/menu-bar.el                      |  4 +--
 lisp/progmodes/vhdl-mode.el           |  2 +-
 src/xdisp.c                           | 66 +++++++++++++++++++++++++----------
 11 files changed, 106 insertions(+), 44 deletions(-)

diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi
index 0911185..8dc1a0b 100644
--- a/doc/emacs/calendar.texi
+++ b/doc/emacs/calendar.texi
@@ -532,8 +532,8 @@ holidays centered around a different month, use @kbd{C-u M-x
 holidays}, which prompts for the month and year.
 
   The holidays known to Emacs include United States holidays and the
-major Bahá'í, Chinese, Christian, Islamic, and Jewish holidays; also the
-solstices and equinoxes.
+major Bah@'{a}@t{'}@'{i}, Chinese, Christian, Islamic, and Jewish
+holidays; also the solstices and equinoxes.
 
 @findex list-holidays
    The command @kbd{M-x holiday-list} displays the list of holidays for
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 406f0c9..d034a78 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1882,7 +1882,7 @@ also unset keys, when passed @code{nil} as the binding.
 
   Since a mode's keymaps are not constructed until it has been loaded,
 you must delay running code which modifies them, e.g., by putting it
-on a @dfn{mode hook} (@pxref{(Hooks)}).  For example, Texinfo mode
+on a @dfn{mode hook} (@pxref{Hooks}).  For example, Texinfo mode
 runs the hook @code{texinfo-mode-hook}.  Here's how you can use the
 hook to add local bindings for @kbd{C-c n} and @kbd{C-c p}, and remove
 the one for @kbd{C-c C-x x} in Texinfo mode:
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index d514414..4ff1dc1 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -723,7 +723,13 @@ with renamed files so that they refer to the new names.
 @vindex dired-vc-rename-file
 If the value of the variable @code{dired-vc-rename-file} is non-@code{nil},
 files are renamed using the commands of the underlying VCS, via
+@ifnottex
 @code{vc-rename-file} (@pxref{VC Delete/Rename}).
+@end ifnottex
+@iftex
+@code{vc-rename-file} (@pxref{VC Delete/Rename,, Deleting and Renaming
+Version-Controlled Files, emacs-xtra, Specialized Emacs Features}).
+@end iftex
 
 @findex dired-do-hardlink
 @kindex H @r{(Dired)}
diff --git a/etc/NEWS.27 b/etc/NEWS.27
index 42133b8..bb275b7 100644
--- a/etc/NEWS.27
+++ b/etc/NEWS.27
@@ -881,21 +881,27 @@ list the contents of such directories when completing 
file names.
 ** Minibuffer
 
 +++
-*** A new user option, 'minibuffer-beginning-of-buffer-movement', has
-been introduced to allow controlling how the 'M-<' command works in
+*** New user option 'minibuffer-beginning-of-buffer-movement'.
+This option allows control of how the 'M-<' command works in
 the minibuffer.  If non-nil, point will move to the end of the prompt
-(if point is after the end of the prompt).
+(if point is after the end of the prompt).  The default is nil, which
+preserves the original behavior of 'M-<' moving to the beginning of
+the prompt.
 
 +++
 *** When the minibuffer is active, echo-area messages are displayed at
 the end of the minibuffer instead of hiding the minibuffer by the echo
 area display.  The new user option 'minibuffer-message-clear-timeout'
 controls how messages displayed in this situation are removed from the
-minibuffer.
+minibuffer.  To revert to previous behavior, where echo-area messages
+temporarily overwrote the minibuffer contents until the user typed
+something, set 'set-message-function' and 'clear-message-function' to
+nil.
 
 ---
 *** Minibuffer now uses 'minibuffer-message' to display error messages
-at the end of the active minibuffer.
+at the end of the active minibuffer.  To disable this, remove
+'minibuffer-error-initialize' from 'minibuffer-setup-hook'.
 
 +++
 *** 'y-or-n-p' now uses the minibuffer to read 'y' or 'n' answer.
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index dff4d9a..6632687 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -771,9 +771,16 @@ since it could result in memory overflow and make Emacs 
crash."
               :safe (lambda (value) (or (booleanp value) (integerp value))))
              (display-fill-column-indicator-character
               display-fill-column-indicator
-              character
+              (choice
+               (character :tag "Use U+2502 to indicate fill column"
+                      :value ?│)
+               (character :tag "Use | to indicate fill column"
+                      :value ?|)
+               (const :tag "If possible, use U+2502 to indicate fill column, 
otherwise use |"
+                      :value nil)
+               character)
               "27.1"
-              :safe characterp)
+              :safe (lambda (value) (or (characterp value) (null value))))
             ;; xfaces.c
             (scalable-fonts-allowed display boolean "22.1")
             ;; xfns.c
diff --git a/lisp/display-fill-column-indicator.el 
b/lisp/display-fill-column-indicator.el
index 25259aa..3f947bd 100644
--- a/lisp/display-fill-column-indicator.el
+++ b/lisp/display-fill-column-indicator.el
@@ -31,7 +31,7 @@
 
 ;; NOTE: Customization variables for
 ;; `display-fill-column-indicator-column' and
-;; `display-fill-column-indicator-char' itself are defined in
+;; `display-fill-column-indicator-character' itself are defined in
 ;; cus-start.el.
 
 ;;; Code:
@@ -39,7 +39,8 @@
 (defgroup display-fill-column-indicator nil
   "Display a fill column indicator in the buffer."
   :group 'convenience
-  :group 'display)
+  :group 'display
+  :link '(info-link "(emacs)Displaying Boundaries"))
 
 
 ;;;###autoload
@@ -49,7 +50,8 @@ This uses `display-fill-column-indicator' internally.
 
 To change the position of the column displayed by default
 customize `display-fill-column-indicator-column'.  You can change the
-character for the indicator setting `display-fill-column-indicator-character'."
+character for the indicator setting `display-fill-column-indicator-character'.
+See Info node `Displaying Boundaries' for details."
   :lighter nil
   (if display-fill-column-indicator-mode
       (progn
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
index fa769ad..88e21b7 100644
--- a/lisp/emacs-lisp/byte-run.el
+++ b/lisp/emacs-lisp/byte-run.el
@@ -536,11 +536,12 @@ wrong number of parameters, say
   (zot 1 2))
 
 The warnings that can be suppressed are a subset of the warnings
-in `byte-compile-warning-types'; see this variable for a fuller
-explanation of the warning types.  The types that can be
-suppressed with this macro are `free-vars', `callargs',
-`redefine', `obsolete', `interactive-only', `lexical', `mapcar',
-`constants' and `suspicious'.
+in `byte-compile-warning-types'; see the variable
+`byte-compile-warnings' for a fuller explanation of the warning
+types.  The types that can be suppressed with this macro are
+`free-vars', `callargs', `redefine', `obsolete',
+`interactive-only', `lexical', `mapcar', `constants' and
+`suspicious'.
 
 For the `mapcar' case, only the `mapcar' function can be used in
 the symbol list.  For `suspicious', only `set-buffer' can be used."
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
index 08d8217..a183103 100644
--- a/lisp/hi-lock.el
+++ b/lisp/hi-lock.el
@@ -322,7 +322,10 @@ or add (global-hi-lock-mode 1) to your init file.
 In buffers where Font Lock mode is enabled, patterns are
 highlighted using font lock.  In buffers where Font Lock mode is
 disabled, patterns are applied using overlays; in this case, the
-highlighting will not be updated as you type.
+highlighting will not be updated as you type.  The Font Lock mode
+is considered \"enabled\" in a buffer if its `major-mode'
+causes `font-lock-specified-p' to return non-nil, which means
+the major mode specifies support for Font Lock.
 
 When Hi Lock mode is enabled, a \"Regexp Highlighting\" submenu
 is added to the \"Edit\" menu.  The commands in the submenu,
@@ -480,7 +483,10 @@ and `search-upper-case' is non-nil, the matching is 
case-sensitive.
 
 Use Font lock mode, if enabled, to highlight REGEXP.  Otherwise,
 use overlays for highlighting.  If overlays are used, the
-highlighting will not update as you type."
+highlighting will not update as you type.  The Font Lock mode
+is considered \"enabled\" in a buffer if its `major-mode'
+causes `font-lock-specified-p' to return non-nil, which means
+the major mode specifies support for Font Lock."
   (interactive
    (list
     (hi-lock-regexp-okay
@@ -510,7 +516,10 @@ Also set `search-spaces-regexp' to the value of 
`search-whitespace-regexp'.
 
 Use Font lock mode, if enabled, to highlight REGEXP.  Otherwise,
 use overlays for highlighting.  If overlays are used, the
-highlighting will not update as you type."
+highlighting will not update as you type.  The Font Lock mode
+is considered \"enabled\" in a buffer if its `major-mode'
+causes `font-lock-specified-p' to return non-nil, which means
+the major mode specifies support for Font Lock."
   (interactive
    (list
     (hi-lock-regexp-okay
@@ -538,7 +547,10 @@ If REGEXP contains upper case characters (excluding those 
preceded by `\\')
 and `search-upper-case' is non-nil, the matching is case-sensitive.
 
 This uses Font lock mode if it is enabled; otherwise it uses overlays,
-in which case the highlighting will not update as you type."
+in which case the highlighting will not update as you type.  The Font
+Lock mode is considered \"enabled\" in a buffer if its `major-mode'
+causes `font-lock-specified-p' to return non-nil, which means
+the major mode specifies support for Font Lock."
   (interactive)
   (let* ((regexp (hi-lock-regexp-okay
                  (find-tag-default-as-symbol-regexp)))
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 731da19..9bc667a 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1085,10 +1085,10 @@ The selected font will be the default on both the 
existing and future frames."
                     :visible (display-graphic-p)
                     :button
                     (:radio . (and tool-bar-mode
-                                   (frame-parameter
+                                   (eq (frame-parameter
                                         (menu-bar-frame-for-menubar)
                                         'tool-bar-position)
-                                       'left))))
+                                       'left)))))
 
       (bindings--define-key menu [showhide-tool-bar-right]
         '(menu-item "On the Right"
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 22c6158..9cd84cf 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -14730,7 +14730,7 @@ if required."
     (speedbar-add-mode-functions-list
      '("vhdl directory"
        (speedbar-item-info . vhdl-speedbar-item-info)
-       (speedbar-line-directory . speedbar-files-line-path)))
+       (speedbar-line-directory . speedbar-files-line-directory)))
     (speedbar-add-mode-functions-list
      '("vhdl project"
        (speedbar-item-info . vhdl-speedbar-item-info)
diff --git a/src/xdisp.c b/src/xdisp.c
index 140d134..3ff4365 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -10486,7 +10486,7 @@ include the height of both, if present, in the return 
value.  */)
   struct buffer *b;
   struct it it;
   struct buffer *old_b = NULL;
-  ptrdiff_t start, end, pos;
+  ptrdiff_t start, end, bpos;
   struct text_pos startp;
   void *itdata = NULL;
   int c, max_x = 0, max_y = 0, x = 0, y = 0;
@@ -10501,29 +10501,55 @@ include the height of both, if present, in the return 
value.  */)
     }
 
   if (NILP (from))
-    start = BEGV;
+    {
+      start = BEGV;
+      bpos = BEGV_BYTE;
+    }
   else if (EQ (from, Qt))
     {
-      start = pos = BEGV;
-      while ((pos++ < ZV) && (c = FETCH_CHAR (pos))
-            && (c == ' ' || c == '\t' || c == '\n' || c == '\r'))
-       start = pos;
-      while ((pos-- > BEGV) && (c = FETCH_CHAR (pos)) && (c == ' ' || c == 
'\t'))
-       start = pos;
+      start = BEGV;
+      bpos = BEGV_BYTE;
+      while (bpos < ZV_BYTE)
+       {
+         FETCH_CHAR_ADVANCE (c, start, bpos);
+         if (!(c == ' ' || c == '\t' || c == '\n' || c == '\r'))
+           break;
+       }
+      while (bpos > BEGV_BYTE)
+       {
+         DEC_BOTH (start, bpos);
+         c = FETCH_CHAR (bpos);
+         if (!(c == ' ' || c == '\t'))
+           break;
+       }
     }
   else
-    start = clip_to_bounds (BEGV, fix_position (from), ZV);
+    {
+      start = clip_to_bounds (BEGV, fix_position (from), ZV);
+      bpos = CHAR_TO_BYTE (start);
+    }
+
+  SET_TEXT_POS (startp, start, bpos);
 
   if (NILP (to))
     end = ZV;
   else if (EQ (to, Qt))
     {
-      end = pos = ZV;
-      while ((pos-- > BEGV) && (c = FETCH_CHAR (pos))
-            && (c == ' ' || c == '\t' || c == '\n' || c == '\r'))
-       end = pos;
-      while ((pos++ < ZV) && (c = FETCH_CHAR (pos)) && (c == ' ' || c == '\t'))
-       end = pos;
+      end = ZV;
+      bpos = ZV_BYTE;
+      while (bpos > BEGV_BYTE)
+       {
+         DEC_BOTH (end, bpos);
+         c = FETCH_CHAR (bpos);
+         if (!(c == ' ' || c == '\t' || c == '\n' || c == '\r'))
+           break;
+       }
+      while (bpos < ZV_BYTE)
+       {
+         FETCH_CHAR_ADVANCE (c, end, bpos);
+         if (!(c == ' ' || c == '\t'))
+           break;
+       }
     }
   else
     end = clip_to_bounds (start, fix_position (to), ZV);
@@ -10537,7 +10563,6 @@ include the height of both, if present, in the return 
value.  */)
     max_y = XFIXNUM (y_limit);
 
   itdata = bidi_shelve_cache ();
-  SET_TEXT_POS (startp, start, CHAR_TO_BYTE (start));
   start_display (&it, w, startp);
   /* It makes no sense to measure dimensions of region of text that
      crosses the point where bidi reordering changes scan direction.
@@ -34965,7 +34990,8 @@ It has no effect when set to 0, or when line numbers 
are not absolute.  */);
   Fmake_variable_buffer_local (Qdisplay_line_numbers_offset);
 
   DEFVAR_BOOL ("display-fill-column-indicator", Vdisplay_fill_column_indicator,
-    doc: /* Non-nil means display the fill column indicator.  */);
+    doc: /* Non-nil means display the fill column indicator.
+See Info node `Displaying Boundaries' for details.  */);
   Vdisplay_fill_column_indicator = false;
   DEFSYM (Qdisplay_fill_column_indicator, "display-fill-column-indicator");
   Fmake_variable_buffer_local (Qdisplay_fill_column_indicator);
@@ -34974,7 +35000,8 @@ It has no effect when set to 0, or when line numbers 
are not absolute.  */);
     doc: /* Column for indicator when `display-fill-column-indicator' is 
non-nil.
 The default value is t which means that the indicator
 will use the `fill-column' variable.  If it is set to an integer the
-indicator will be drawn in that column.  */);
+indicator will be drawn in that column.
+See Info node `Displaying Boundaries' for details.  */);
   Vdisplay_fill_column_indicator_column = Qt;
   DEFSYM (Qdisplay_fill_column_indicator_column, 
"display-fill-column-indicator-column");
   Fmake_variable_buffer_local (Qdisplay_fill_column_indicator_column);
@@ -34982,7 +35009,8 @@ indicator will be drawn in that column.  */);
   DEFVAR_LISP ("display-fill-column-indicator-character", 
Vdisplay_fill_column_indicator_character,
     doc: /* Character to draw the indicator when 
`display-fill-column-indicator' is non-nil.
 The default is U+2502 but a good alternative is (ascii 124)
-if the font in fill-column-indicator face does not support Unicode characters. 
 */);
+if the font in fill-column-indicator face does not support Unicode characters.
+See Info node `Displaying Boundaries' for details.  */);
   Vdisplay_fill_column_indicator_character = Qnil;
   DEFSYM (Qdisplay_fill_column_indicator_character, 
"display-fill-column-indicator-character");
   Fmake_variable_buffer_local (Qdisplay_fill_column_indicator_character);



reply via email to

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