diff options
| author | Glenn Morris | 2020-11-07 09:57:56 -0800 |
|---|---|---|
| committer | Glenn Morris | 2020-11-07 09:57:56 -0800 |
| commit | 33e8116fc2c24b14d30c08a09cc034bea6f9d584 (patch) | |
| tree | 1be8512dcde3fbf6679f931295eabbe4bb6e1b0d | |
| parent | 1de00441a5cd983ae4d76eecd80286928e791e96 (diff) | |
| parent | f5d7fb3a2dee3f9ae49151e3d01483aad7fb734b (diff) | |
| download | emacs-33e8116fc2c24b14d30c08a09cc034bea6f9d584.tar.gz emacs-33e8116fc2c24b14d30c08a09cc034bea6f9d584.zip | |
Merge from origin/emacs-27
f5d7fb3a2d (origin/emacs-27) Fix 'uudecode-decode-region-internal' in...
d4242177da Fix 'send-string-to-terminal' writing very long strings
9da0f4026c * lisp/subr.el (read-char-from-minibuffer): Doc fix. (Bug...
9899f74e4e Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/e...
a6fcba783e Fix documentation of 'windmove-swap-states-default-keybind...
f4acd7a924 Split windows evenly when 'min-margins' parameter was set ...
| -rw-r--r-- | doc/emacs/windows.texi | 4 | ||||
| -rw-r--r-- | lisp/mail/uudecode.el | 36 | ||||
| -rw-r--r-- | lisp/subr.el | 12 | ||||
| -rw-r--r-- | lisp/window.el | 8 | ||||
| -rw-r--r-- | src/dispnew.c | 4 |
5 files changed, 37 insertions, 27 deletions
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index bc1dcd7f419..07f826933db 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi | |||
| @@ -589,7 +589,7 @@ buffer. @xref{Follow Mode}. | |||
| 589 | @findex windmove-default-keybindings | 589 | @findex windmove-default-keybindings |
| 590 | @findex windmove-display-default-keybindings | 590 | @findex windmove-display-default-keybindings |
| 591 | @findex windmove-delete-default-keybindings | 591 | @findex windmove-delete-default-keybindings |
| 592 | @findex windmove-swap-states-in-direction | 592 | @findex windmove-swap-states-default-keybindings |
| 593 | The Windmove package defines commands for moving directionally | 593 | The Windmove package defines commands for moving directionally |
| 594 | between neighboring windows in a frame. @kbd{M-x windmove-right} | 594 | between neighboring windows in a frame. @kbd{M-x windmove-right} |
| 595 | selects the window immediately to the right of the currently selected | 595 | selects the window immediately to the right of the currently selected |
| @@ -603,7 +603,7 @@ keybindings for commands that specify in what direction to display the | |||
| 603 | window for the buffer that the next command is going to display. | 603 | window for the buffer that the next command is going to display. |
| 604 | Also there is @w{@kbd{M-x windmove-delete-default-keybindings}} to | 604 | Also there is @w{@kbd{M-x windmove-delete-default-keybindings}} to |
| 605 | define keybindings for commands that delete windows directionally, and | 605 | define keybindings for commands that delete windows directionally, and |
| 606 | @w{@kbd{M-x windmove-swap-states-in-direction}} that define | 606 | @w{@kbd{M-x windmove-swap-states-default-keybindings}} that defines |
| 607 | keybindings for commands that swap the window contents of the selected | 607 | keybindings for commands that swap the window contents of the selected |
| 608 | window with the window in the specified direction. | 608 | window with the window in the specified direction. |
| 609 | 609 | ||
diff --git a/lisp/mail/uudecode.el b/lisp/mail/uudecode.el index bcbd571b539..0dce9b7b726 100644 --- a/lisp/mail/uudecode.el +++ b/lisp/mail/uudecode.el | |||
| @@ -149,12 +149,10 @@ If FILE-NAME is non-nil, save the result to FILE-NAME." | |||
| 149 | (setq counter (1+ counter) | 149 | (setq counter (1+ counter) |
| 150 | inputpos (1+ inputpos)) | 150 | inputpos (1+ inputpos)) |
| 151 | (cond ((= counter 4) | 151 | (cond ((= counter 4) |
| 152 | (setq result (cons | 152 | (setq result (cons (logand bits 255) |
| 153 | (concat | 153 | (cons (logand (ash bits -8) 255) |
| 154 | (char-to-string (ash bits -16)) | 154 | (cons (ash bits -16) |
| 155 | (char-to-string (logand (ash bits -8) 255)) | 155 | result)))) |
| 156 | (char-to-string (logand bits 255))) | ||
| 157 | result)) | ||
| 158 | (setq bits 0 counter 0)) | 156 | (setq bits 0 counter 0)) |
| 159 | (t (setq bits (ash bits 6))))))) | 157 | (t (setq bits (ash bits 6))))))) |
| 160 | (cond | 158 | (cond |
| @@ -166,26 +164,26 @@ If FILE-NAME is non-nil, save the result to FILE-NAME." | |||
| 166 | ;;(error "uucode ends unexpectedly") | 164 | ;;(error "uucode ends unexpectedly") |
| 167 | (setq done t)) | 165 | (setq done t)) |
| 168 | ((= counter 3) | 166 | ((= counter 3) |
| 169 | (setq result (cons | 167 | (setq result (cons (logand (ash bits -8) 255) |
| 170 | (concat | 168 | (cons (logand (ash bits -16) 255) |
| 171 | (char-to-string (logand (ash bits -16) 255)) | 169 | result)))) |
| 172 | (char-to-string (logand (ash bits -8) 255))) | ||
| 173 | result))) | ||
| 174 | ((= counter 2) | 170 | ((= counter 2) |
| 175 | (setq result (cons | 171 | (setq result (cons (logand (ash bits -10) 255) |
| 176 | (char-to-string (logand (ash bits -10) 255)) | 172 | result)))) |
| 177 | result)))) | ||
| 178 | (skip-chars-forward non-data-chars end)) | 173 | (skip-chars-forward non-data-chars end)) |
| 179 | (if file-name | 174 | (if file-name |
| 180 | (with-temp-file file-name | 175 | (with-temp-file file-name |
| 181 | (set-buffer-multibyte nil) | 176 | (set-buffer-multibyte nil) |
| 182 | (insert (apply #'concat (nreverse result)))) | 177 | (apply #'insert (nreverse result))) |
| 183 | (or (markerp end) (setq end (set-marker (make-marker) end))) | 178 | (or (markerp end) (setq end (set-marker (make-marker) end))) |
| 184 | (goto-char start) | 179 | (goto-char start) |
| 185 | (if enable-multibyte-characters | 180 | (apply #'insert |
| 186 | (dolist (x (nreverse result)) | 181 | (nreverse |
| 187 | (insert (decode-coding-string x 'binary))) | 182 | (if enable-multibyte-characters |
| 188 | (insert (apply #'concat (nreverse result)))) | 183 | (mapcar (lambda (ch) |
| 184 | (or (decode-char 'eight-bit ch) ch)) | ||
| 185 | result) | ||
| 186 | result))) | ||
| 189 | (delete-region (point) end)))))) | 187 | (delete-region (point) end)))))) |
| 190 | 188 | ||
| 191 | ;;;###autoload | 189 | ;;;###autoload |
diff --git a/lisp/subr.el b/lisp/subr.el index 286851dfc83..924526d77ec 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -2767,12 +2767,14 @@ Also discard all previous input in the minibuffer." | |||
| 2767 | (defvar empty-history) | 2767 | (defvar empty-history) |
| 2768 | 2768 | ||
| 2769 | (defun read-char-from-minibuffer (prompt &optional chars history) | 2769 | (defun read-char-from-minibuffer (prompt &optional chars history) |
| 2770 | "Read a character from the minibuffer, prompting for PROMPT. | 2770 | "Read a character from the minibuffer, prompting for it with PROMPT. |
| 2771 | Like `read-char', but uses the minibuffer to read and return a character. | 2771 | Like `read-char', but uses the minibuffer to read and return a character. |
| 2772 | When CHARS is non-nil, any input that is not one of CHARS is ignored. | 2772 | Optional argument CHARS, if non-nil, should be a list of characters; |
| 2773 | When HISTORY is a symbol, then allows navigating in a history. | 2773 | the function will ignore any input that is not one of CHARS. |
| 2774 | The navigation commands are `M-p' and `M-n', with `RET' to select | 2774 | Optional argument HISTORY, if non-nil, should be a symbol that |
| 2775 | a character from history." | 2775 | specifies the history list variable to use for navigating in input |
| 2776 | history using `M-p' and `M-n', with `RET' to select a character from | ||
| 2777 | history." | ||
| 2776 | (let* ((empty-history '()) | 2778 | (let* ((empty-history '()) |
| 2777 | (map (if (consp chars) | 2779 | (map (if (consp chars) |
| 2778 | (or (gethash chars read-char-from-minibuffer-map-hash) | 2780 | (or (gethash chars read-char-from-minibuffer-map-hash) |
diff --git a/lisp/window.el b/lisp/window.el index 865f6fdd5cc..d564ec55468 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -5488,7 +5488,13 @@ frame. The selected window is not changed by this function." | |||
| 5488 | (set-window-parameter (window-parent new) 'window-atom t)) | 5488 | (set-window-parameter (window-parent new) 'window-atom t)) |
| 5489 | (set-window-parameter new 'window-atom t))) | 5489 | (set-window-parameter new 'window-atom t))) |
| 5490 | 5490 | ||
| 5491 | ;; Sanitize sizes unless SIZE was specified. | 5491 | ;; Make the new window inherit the `min-margins' parameter of |
| 5492 | ;; WINDOW (Bug#44483). | ||
| 5493 | (let ((min-margins (window-parameter window 'min-margins))) | ||
| 5494 | (when min-margins | ||
| 5495 | (set-window-parameter new 'min-margins min-margins))) | ||
| 5496 | |||
| 5497 | ;; Sanitize sizes unless SIZE was specified. | ||
| 5492 | (unless size | 5498 | (unless size |
| 5493 | (window--sanitize-window-sizes horizontal)) | 5499 | (window--sanitize-window-sizes horizontal)) |
| 5494 | 5500 | ||
diff --git a/src/dispnew.c b/src/dispnew.c index 3f2ae3e6ad1..48a36f2006c 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -5904,8 +5904,12 @@ when TERMINAL is nil. */) | |||
| 5904 | } | 5904 | } |
| 5905 | out = tty->output; | 5905 | out = tty->output; |
| 5906 | } | 5906 | } |
| 5907 | /* STRING might be very long, in which case fwrite could be | ||
| 5908 | interrupted by SIGIO. So we temporarily block SIGIO. */ | ||
| 5909 | unrequest_sigio (); | ||
| 5907 | fwrite (SDATA (string), 1, SBYTES (string), out); | 5910 | fwrite (SDATA (string), 1, SBYTES (string), out); |
| 5908 | fflush (out); | 5911 | fflush (out); |
| 5912 | request_sigio (); | ||
| 5909 | unblock_input (); | 5913 | unblock_input (); |
| 5910 | return Qnil; | 5914 | return Qnil; |
| 5911 | } | 5915 | } |