emacs-diffs
[Top][All Lists]
Advanced

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

master 4939bea 3/3: Merge from origin/emacs-27


From: Glenn Morris
Subject: master 4939bea 3/3: Merge from origin/emacs-27
Date: Thu, 28 May 2020 10:55:33 -0400 (EDT)

branch: master
commit 4939beacb33ea91cd35e18fa7d43a4392d47f6f4
Merge: a134691 bd7b681
Author: Glenn Morris <rgm@gnu.org>
Commit: Glenn Morris <rgm@gnu.org>

    Merge from origin/emacs-27
    
    bd7b681dc4 (origin/emacs-27) Tiny texinfo markup fixes
    d0dd0e0612 ; Fix more @var/@code mixups in Elisp manual
    313dc0439e ; Fix another format-spec typo in the Elisp manual
    9d7fd78421 Make next-error behavior a bit more flexible
    0691d25295 * etc/NEWS.25: Belatedly announce upcase-dwim and downcase...
    df91c94ca8 Fix access to single-byte characters in buffer text
---
 doc/lispref/edebug.texi  |  2 +-
 doc/lispref/files.texi   |  1 +
 doc/lispref/loading.texi |  2 +-
 doc/lispref/os.texi      |  2 +-
 doc/lispref/text.texi    | 20 ++++++++++----------
 etc/NEWS.25              |  2 ++
 lisp/simple.el           | 38 ++++++++++++++++++++++++--------------
 src/cmds.c               |  4 ++--
 src/xdisp.c              |  6 +++---
 9 files changed, 45 insertions(+), 32 deletions(-)

diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index 5970e7c..d879f3d 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -663,7 +663,7 @@ definition in the future.
 Toggle whether Edebug saves and restores the outside window
 configuration (@code{edebug-toggle-save-windows}).
 
-With a prefix argument, @code{W} only toggles saving and restoring of
+With a prefix argument, @kbd{W} only toggles saving and restoring of
 the selected window.  To specify a window that is not displaying the
 source code buffer, you must use @kbd{C-x X W} from the global keymap.
 @end table
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 686dbdb..574c7e5 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -3366,6 +3366,7 @@ each have handlers.
 file---such as the ones that implement completion of host names for
 remote file names---should have a non-@code{nil} @code{safe-magic}
 property.  For instance, Emacs normally protects directory names
+@c FIXME I don't think this means the PATH environment variable?
 it finds in @code{PATH} from becoming magic, if they look like magic
 file names, by prefixing them with @samp{/:}.  But if the handler that
 would be used for them has a non-@code{nil} @code{safe-magic}
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index 2894282..6833af9 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -338,7 +338,7 @@ If the environment variable @env{EMACSLOADPATH} is set, it 
modifies
 the above initialization procedure.  Emacs initializes
 @code{load-path} based on the value of the environment variable.
 
-The syntax of @env{EMACSLOADPATH} is the same as used for @code{PATH};
+The syntax of @env{EMACSLOADPATH} is the same as used for @env{PATH};
 directories are separated by @samp{:} (or @samp{;}, on some
 operating systems).
 @ignore
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 8f2c743..67e4467 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -1194,7 +1194,7 @@ This function returns the full name of the logged-in 
user---or the value
 of the environment variable @env{NAME}, if that is set.
 
 If the Emacs process's user-id does not correspond to any known user (and
-provided @code{NAME} is not set), the result is @code{"unknown"}.
+provided @env{NAME} is not set), the result is @code{"unknown"}.
 
 If @var{uid} is non-@code{nil}, then it should be a number (a user-id)
 or a string (a login name).  Then @code{user-full-name} returns the full
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 70fb714..7c4bed0 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -4511,33 +4511,33 @@ would destroy these properties.  However, the latter 
combination is
 typically faster (@xref{Deletion}, and @ref{Insertion}).
 
 For its working, @code{replace-buffer-contents} needs to compare the
-contents of the original buffer with that of @code{source} which is a
+contents of the original buffer with that of @var{source} which is a
 costly operation if the buffers are huge and there is a high number of
 differences between them.  In order to keep
 @code{replace-buffer-contents}'s runtime in bounds, it has two
 optional arguments.
 
-@code{max-secs} defines a hard boundary in terms of seconds.  If given
+@var{max-secs} defines a hard boundary in terms of seconds.  If given
 and exceeded, it will fall back to @code{delete-region} and
 @code{insert-buffer-substring}.
 
-@code{max-costs} defines the quality of the difference computation.
-If the actual costs exceed this limit, heuristics are used to provide
-a faster but suboptimal solution.  The default value is 1000000.
+@var{max-costs} defines the quality of the difference computation.  If
+the actual costs exceed this limit, heuristics are used to provide a
+faster but suboptimal solution.  The default value is 1000000.
 
 @code{replace-buffer-contents} returns t if a non-destructive
-replacement could be performed.  Otherwise, i.e., if @code{max-secs}
+replacement could be performed.  Otherwise, i.e., if @var{max-secs}
 was exceeded, it returns nil.
 @end deffn
 
 @defun replace-region-contents beg end replace-fn &optional max-secs max-costs
-This function replaces the region between @code{beg} and @code{end}
-using the given @code{replace-fn}.  The function @code{replace-fn} is
+This function replaces the region between @var{beg} and @var{end}
+using the given @var{replace-fn}.  The function @var{replace-fn} is
 run in the current buffer narrowed to the specified region and it
 should return either a string or a buffer replacing the region.
 
 The replacement is performed using @code{replace-buffer-contents} (see
-above) which also describes the @code{max-secs} and @code{max-costs}
+above) which also describes the @var{max-secs} and @var{max-costs}
 arguments and the return value.
 
 Note: If the replacement is a string, it will be placed in a temporary
@@ -4678,7 +4678,7 @@ expanded when the header line is computed.  To do this, 
the
 above.  @var{specification} is an alist that has elements where the
 @code{car} is a character and the @code{cdr} is the substitution.
 
-If @code{ONLY-PRESENT} is @code{nil}, errors will be signaled if a
+If @var{only-present} is @code{nil}, errors will be signaled if a
 format character has been used that's not present in
 @var{specification}.  If it's non-@code{nil}, that format
 specification is left verbatim in the result.
diff --git a/etc/NEWS.25 b/etc/NEWS.25
index bb09afc..8c04d94 100644
--- a/etc/NEWS.25
+++ b/etc/NEWS.25
@@ -284,6 +284,8 @@ affected by the command.
 
 ** New command 'comment-line' bound to 'C-x C-;'.
 
+** New commands 'upcase-dwim' and 'downcase-dwim'.
+
 ** New and improved facilities for inserting Unicode characters
 
 *** Unicode names entered via 'C-x 8 RET' now use substring completion
diff --git a/lisp/simple.el b/lisp/simple.el
index 111afa6..a4b8171 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -199,7 +199,7 @@ rejected, and the function returns nil."
           (and extra-test-inclusive
                (funcall extra-test-inclusive))))))
 
-(defcustom next-error-find-buffer-function #'ignore
+(defcustom next-error-find-buffer-function 
#'next-error-no-navigation-try-current
   "Function called to find a `next-error' capable buffer.
 This functions takes the same three arguments as the function
 `next-error-find-buffer', and should return the buffer to be
@@ -211,6 +211,8 @@ all other buffers."
   :type '(choice (const :tag "No default" ignore)
                  (const :tag "Single next-error capable buffer on selected 
frame"
                         next-error-buffer-on-selected-frame)
+                 (const :tag "Current buffer if next-error capable and outside 
navigation"
+                        next-error-no-navigation-try-current)
                  (function :tag "Other function"))
   :group 'next-error
   :version "27.1")
@@ -240,6 +242,22 @@ from which next-error navigated, and a target buffer 
TO-BUFFER."
     (if (eq (length window-buffers) 1)
         (car window-buffers))))
 
+(defun next-error-no-navigation-try-current (&optional
+                                             avoid-current
+                                             extra-test-inclusive
+                                             extra-test-exclusive)
+  "Try the current buffer when outside navigation.
+But return nil if we navigated to the current buffer by the means
+of `next-error' command.  Othewise, return it if it's next-error
+capable."
+  ;; Check that next-error-buffer has no buffer-local value
+  ;; (i.e. we never navigated to the current buffer from another),
+  ;; and the current buffer is a `next-error' capable buffer.
+  (if (and (not (local-variable-p 'next-error-buffer))
+           (next-error-buffer-p (current-buffer) avoid-current
+                                extra-test-inclusive extra-test-exclusive))
+      (current-buffer)))
+
 (defun next-error-find-buffer (&optional avoid-current
                                         extra-test-inclusive
                                         extra-test-exclusive)
@@ -260,24 +278,16 @@ that buffer is rejected."
    (funcall next-error-find-buffer-function avoid-current
                                             extra-test-inclusive
                                             extra-test-exclusive)
-   ;; 2. If next-error-buffer has no buffer-local value
-   ;; (i.e. never navigated to the current buffer from another),
-   ;; and the current buffer is a `next-error' capable buffer,
-   ;; use it unconditionally, so next-error will always use it.
-   (if (and (not (local-variable-p 'next-error-buffer))
-            (next-error-buffer-p (current-buffer) avoid-current
-                                extra-test-inclusive extra-test-exclusive))
-       (current-buffer))
-   ;; 3. If next-error-last-buffer is an acceptable buffer, use that.
+   ;; 2. If next-error-last-buffer is an acceptable buffer, use that.
    (if (and next-error-last-buffer
             (next-error-buffer-p next-error-last-buffer avoid-current
                                  extra-test-inclusive extra-test-exclusive))
        next-error-last-buffer)
-   ;; 4. If the current buffer is acceptable, choose it.
+   ;; 3. If the current buffer is acceptable, choose it.
    (if (next-error-buffer-p (current-buffer) avoid-current
                            extra-test-inclusive extra-test-exclusive)
        (current-buffer))
-   ;; 5. Look for any acceptable buffer.
+   ;; 4. Look for any acceptable buffer.
    (let ((buffers (buffer-list)))
      (while (and buffers
                  (not (next-error-buffer-p
@@ -285,7 +295,7 @@ that buffer is rejected."
                       extra-test-inclusive extra-test-exclusive)))
        (setq buffers (cdr buffers)))
      (car buffers))
-   ;; 6. Use the current buffer as a last resort if it qualifies,
+   ;; 5. Use the current buffer as a last resort if it qualifies,
    ;; even despite AVOID-CURRENT.
    (and avoid-current
        (next-error-buffer-p (current-buffer) nil
@@ -293,7 +303,7 @@ that buffer is rejected."
        (progn
          (message "This is the only buffer with error message locations")
          (current-buffer)))
-   ;; 7. Give up.
+   ;; 6. Give up.
    (error "No buffers contain error message locations")))
 
 (defun next-error (&optional arg reset)
diff --git a/src/cmds.c b/src/cmds.c
index 9f96f21..9052661 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -194,7 +194,7 @@ to t.  */)
       SET_PT (newpos);
 
       if (PT > newpos
-         && FETCH_CHAR (PT - 1) == '\n')
+         && FETCH_BYTE (PT_BYTE - 1) == '\n')
        {
          /* If we skipped over a newline that follows
             an invisible intangible run,
@@ -205,7 +205,7 @@ to t.  */)
          break;
        }
       else if (PT > newpos && PT < ZV
-              && FETCH_CHAR (PT) != '\n')
+              && FETCH_BYTE (PT_BYTE) != '\n')
        /* If we skipped something intangible
           and now we're not really at eol,
           keep going.  */
diff --git a/src/xdisp.c b/src/xdisp.c
index cf15f57..f5a8f2e 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -8290,8 +8290,8 @@ get_visually_first_element (struct it *it)
     }
   else if (it->bidi_it.charpos == bob
           || (!string_p
-              && (FETCH_CHAR (it->bidi_it.bytepos - 1) == '\n'
-                  || FETCH_CHAR (it->bidi_it.bytepos) == '\n')))
+              && (FETCH_BYTE (it->bidi_it.bytepos - 1) == '\n'
+                  || FETCH_BYTE (it->bidi_it.bytepos) == '\n')))
     {
       /* If we are at the beginning of a line/string, we can produce
         the next element right away.  */
@@ -24182,7 +24182,7 @@ the `bidi-class' property of a character.  */)
          itb.charpos = BEGV;
          itb.bytepos = BEGV_BYTE;
        }
-      else if (FETCH_CHAR (from_bpos - 1) == '\n')
+      else if (FETCH_BYTE (from_bpos - 1) == '\n')
        {
          itb.charpos = from_pos;
          itb.bytepos = from_bpos;



reply via email to

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