Merge remote-tracking branch 'savannah/master' into HEAD

This commit is contained in:
Andrea Corallo 2020-04-03 19:06:57 +01:00
commit fcce8dd361
11 changed files with 146 additions and 45 deletions

View file

@ -93,6 +93,11 @@ line numbers that were previously jumped to.
** When 'suggest-key-bindings' is non-nil, the completion list of 'M-x'
shows equivalent key bindings for all commands that have them.
---
** Movement commands in 'gomoku-mode' are fixed.
'gomoku-move-sw' and 'gomoku-move-ne' now work correctly, and
horizontal movements now stop at the edge of the board.
* Changes in Specialized Modes and Packages in Emacs 28.1
@ -236,6 +241,12 @@ case-insensitive matching of messages when the old behaviour is
required, but the recommended solution is to use a correctly matching
regexp instead.
** Texinfo
---
*** New customizable option 'texinfo-texi2dvi-options'.
This is used when invoking 'texi2dvi' from 'texinfo-tex-buffer'.
* New Modes and Packages in Emacs 28.1
@ -306,6 +317,16 @@ optional argument specifying whether to follow symbolic links.
** 'parse-time-string' can now parse ISO 8601 format strings,
such as "2020-01-15T16:12:21-08:00".
---
** 'make-network-process', 'make-serial-process' :coding behavior change.
Previously, passing ":coding nil" to either of these functions would
override any non-nil binding for 'coding-system-for-read' and
'coding-system-for-write'. For consistency with 'make-process' and
'make-pipe-process', passing ":coding nil" is now ignored. No code in
Emacs depended on the previous behavior; if you really want the
process' coding-system to be nil, use 'set-process-coding-system'
after the process has been created, or pass in ":coding '(nil nil)".
* Changes in Emacs 28.1 on Non-Free Operating Systems

View file

@ -355,6 +355,8 @@ is output until the first non-zero unit is encountered."
(defun date-days-in-month (year month)
"The number of days in MONTH in YEAR."
(unless (and (numberp month) (<= 1 month 12))
(error "Month %s is invalid" month))
(if (= month 2)
(if (date-leap-year-p year)
29

View file

@ -287,6 +287,7 @@ Interactively, prompt for LIBRARY using the one at or near point."
(switch-to-buffer (find-file-noselect (find-library-name library)))
(run-hooks 'find-function-after-hook)))
;;;###autoload
(defun read-library-name ()
"Read and return a library name, defaulting to the one near point.

View file

@ -1103,12 +1103,7 @@ well as `load-file-rep-suffixes').
See Info node `(emacs)Lisp Libraries' for more details.
See `load-file' for a different interface to `load'."
(interactive
(let (completion-ignored-extensions)
(list (completing-read "Load library: "
(apply-partially 'locate-file-completion-table
load-path
(get-load-suffixes))))))
(interactive (list (read-library-name)))
(load library))
(defun file-remote-p (file &optional identification connected)

View file

@ -315,8 +315,8 @@ If TCP-P, the first two bytes of the package with be the length field."
(defun dns-set-servers ()
"Set `dns-servers' to a list of DNS servers or nil if none are found.
Parses \"/etc/resolv.conf\" or calls \"nslookup\"."
(setq dns-servers nil)
(or (when (file-exists-p "/etc/resolv.conf")
(setq dns-servers nil)
(with-temp-buffer
(insert-file-contents "/etc/resolv.conf")
(goto-char (point-min))
@ -327,9 +327,9 @@ Parses \"/etc/resolv.conf\" or calls \"nslookup\"."
(with-temp-buffer
(call-process "nslookup" nil t nil "localhost")
(goto-char (point-min))
(re-search-forward
"^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t)
(setq dns-servers (list (match-string 1))))))
(when (re-search-forward
"^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\|[[:xdigit:]:]*\\)" nil t)
(setq dns-servers (list (match-string 1)))))))
(when (fboundp 'network-interface-list)
(setq dns-servers-valid-for-interfaces (network-interface-list))))
@ -357,7 +357,9 @@ Parses \"/etc/resolv.conf\" or calls \"nslookup\"."
`(let ((server ,server)
(coding-system-for-read 'binary)
(coding-system-for-write 'binary))
(if (fboundp 'make-network-process)
(if (and
(fboundp 'make-network-process)
(featurep 'make-network-process '(:type datagram)))
(make-network-process
:name "dns"
:coding 'binary
@ -365,9 +367,9 @@ Parses \"/etc/resolv.conf\" or calls \"nslookup\"."
:host server
:service "domain"
:type 'datagram)
;; Older versions of Emacs doesn't have
;; `make-network-process', so we fall back on opening a TCP
;; connection to the DNS server.
;; Older versions of Emacs do not have `make-network-process',
;; and on MS-Windows datagram sockets are not supported, so we
;; fall back on opening a TCP connection to the DNS server.
(open-network-stream "dns" (current-buffer) server "domain"))))
(defvar dns-cache (make-vector 4096 0))
@ -400,7 +402,9 @@ If REVERSEP, look up an IP address."
type 'PTR))
(if (not dns-servers)
(message "No DNS server configuration found")
(progn
(message "No DNS server configuration found")
nil)
(with-temp-buffer
(set-buffer-multibyte nil)
(let ((process (condition-case ()

View file

@ -110,8 +110,8 @@ One useful value to include is `turn-on-font-lock' to highlight the pieces."
(define-key map "u" 'gomoku-move-ne) ; u
(define-key map "b" 'gomoku-move-sw) ; b
(define-key map "n" 'gomoku-move-se) ; n
(define-key map "h" 'backward-char) ; h
(define-key map "l" 'forward-char) ; l
(define-key map "h" 'gomoku-move-left) ; h
(define-key map "l" 'gomoku-move-right) ; l
(define-key map "j" 'gomoku-move-down) ; j
(define-key map "k" 'gomoku-move-up) ; k
@ -119,11 +119,13 @@ One useful value to include is `turn-on-font-lock' to highlight the pieces."
(define-key map [kp-9] 'gomoku-move-ne)
(define-key map [kp-1] 'gomoku-move-sw)
(define-key map [kp-3] 'gomoku-move-se)
(define-key map [kp-4] 'backward-char)
(define-key map [kp-6] 'forward-char)
(define-key map [kp-4] 'gomoku-move-left)
(define-key map [kp-6] 'gomoku-move-right)
(define-key map [kp-2] 'gomoku-move-down)
(define-key map [kp-8] 'gomoku-move-up)
(define-key map "\C-b" 'gomoku-move-left) ; C-b
(define-key map "\C-f" 'gomoku-move-right) ; C-f
(define-key map "\C-n" 'gomoku-move-down) ; C-n
(define-key map "\C-p" 'gomoku-move-up) ; C-p
@ -146,6 +148,10 @@ One useful value to include is `turn-on-font-lock' to highlight the pieces."
(define-key map [mouse-2] 'gomoku-mouse-play)
(define-key map [drag-mouse-2] 'gomoku-mouse-play)
(define-key map [remap backward-char] 'gomoku-move-left)
(define-key map [remap left-char] 'gomoku-move-left)
(define-key map [remap forward-char] 'gomoku-move-right)
(define-key map [remap right-char] 'gomoku-move-right)
(define-key map [remap previous-line] 'gomoku-move-up)
(define-key map [remap next-line] 'gomoku-move-down)
(define-key map [remap move-beginning-of-line] 'gomoku-beginning-of-line)
@ -954,6 +960,11 @@ If the game is finished, this command requests for another game."
;; 2 instead of 1 because WINDOW-HEIGHT includes the mode line !
gomoku-square-height)))
(defun gomoku-point-x ()
"Return the board column where point is."
(1+ (/ (- (current-column) gomoku-x-offset)
gomoku-square-width)))
(defun gomoku-point-y ()
"Return the board row where point is."
(1+ (/ (- (count-lines (point-min) (point))
@ -1143,13 +1154,28 @@ If the game is finished, this command requests for another game."
(skip-chars-forward gomoku--intangible-chars)
(when (eobp)
(skip-chars-backward gomoku--intangible-chars)
(forward-char -1)))
(gomoku-move-left)))
(skip-chars-backward gomoku--intangible-chars)
(if (bobp)
(skip-chars-forward gomoku--intangible-chars)
(forward-char -1))))
(gomoku-move-left))))
(setq gomoku--last-pos (point)))
;; forward-char and backward-char don't always move the right number
;; of characters. Also, these functions check if you're on the edge of
;; the screen.
(defun gomoku-move-right ()
"Move point right one column on the Gomoku board."
(interactive)
(when (< (gomoku-point-x) gomoku-board-width)
(forward-char gomoku-square-width)))
(defun gomoku-move-left ()
"Move point left one column on the Gomoku board."
(interactive)
(when (> (gomoku-point-x) 1)
(backward-char gomoku-square-width)))
;; previous-line and next-line don't work right with intangible newlines
(defun gomoku-move-down ()
"Move point down one row on the Gomoku board."
@ -1171,25 +1197,25 @@ If the game is finished, this command requests for another game."
"Move point North East on the Gomoku board."
(interactive)
(gomoku-move-up)
(forward-char))
(gomoku-move-right))
(defun gomoku-move-se ()
"Move point South East on the Gomoku board."
(interactive)
(gomoku-move-down)
(forward-char))
(gomoku-move-right))
(defun gomoku-move-nw ()
"Move point North West on the Gomoku board."
(interactive)
(gomoku-move-up)
(backward-char))
(gomoku-move-left))
(defun gomoku-move-sw ()
"Move point South West on the Gomoku board."
(interactive)
(gomoku-move-down)
(backward-char))
(gomoku-move-left))
(defun gomoku-beginning-of-line ()
"Move point to first square on the Gomoku board row."

View file

@ -2301,12 +2301,7 @@ is used instead of `load-path'.
When called from a program, the file name is normally returned as a
string. When run interactively, the argument INTERACTIVE-CALL is t,
and the file name is displayed in the echo area."
(interactive (list (completing-read "Locate library: "
(apply-partially
'locate-file-completion-table
load-path (get-load-suffixes)))
nil nil
t))
(interactive (list (read-library-name) nil nil t))
(let ((file (locate-file library
(or path load-path)
(append (unless nosuffix (get-load-suffixes))

View file

@ -958,6 +958,12 @@ to jump to the corresponding spot in the Texinfo source file."
:type 'string
:group 'texinfo)
(defcustom texinfo-texi2dvi-options ""
"Command line options for `texinfo-texi2dvi-command'."
:type 'string
:group 'texinfo
:version "28.1")
(defcustom texinfo-tex-command "tex"
"Command used by `texinfo-tex-region' to run TeX on a region."
:type 'string
@ -1002,9 +1008,10 @@ The value of `texinfo-tex-trailer' is appended to the temporary file after the r
(interactive)
(require 'tex-mode)
(let ((tex-command texinfo-texi2dvi-command)
;; Disable tex-start-options-string. texi2dvi would not
;; understand anything specified here.
(tex-start-options-string ""))
(tex-start-options texinfo-texi2dvi-options)
;; Disable tex-start-commands. texi2dvi would not understand
;; anything specified here.
(tex-start-commands ""))
(tex-buffer)))
(defun texinfo-texindex ()

View file

@ -3188,14 +3188,12 @@ usage: (make-serial-process &rest ARGS) */)
BUF_ZV_BYTE (XBUFFER (buffer)));
}
tem = Fplist_member (contact, QCcoding);
if (!NILP (tem) && (!CONSP (tem) || !CONSP (XCDR (tem))))
tem = Qnil;
tem = Fplist_get (contact, QCcoding);
val = Qnil;
if (!NILP (tem))
{
val = XCAR (XCDR (tem));
val = tem;
if (CONSP (val))
val = XCAR (val);
}
@ -3209,7 +3207,7 @@ usage: (make-serial-process &rest ARGS) */)
val = Qnil;
if (!NILP (tem))
{
val = XCAR (XCDR (tem));
val = tem;
if (CONSP (val))
val = XCDR (val);
}
@ -3244,16 +3242,14 @@ set_network_socket_coding_system (Lisp_Object proc, Lisp_Object host,
Lisp_Object coding_systems = Qt;
Lisp_Object val;
tem = Fplist_member (contact, QCcoding);
if (!NILP (tem) && (!CONSP (tem) || !CONSP (XCDR (tem))))
tem = Qnil; /* No error message (too late!). */
tem = Fplist_get (contact, QCcoding);
/* Setup coding systems for communicating with the network stream. */
/* Qt denotes we have not yet called Ffind_operation_coding_system. */
if (!NILP (tem))
{
val = XCAR (XCDR (tem));
val = tem;
if (CONSP (val))
val = XCAR (val);
}
@ -3287,7 +3283,7 @@ set_network_socket_coding_system (Lisp_Object proc, Lisp_Object host,
if (!NILP (tem))
{
val = XCAR (XCDR (tem));
val = tem;
if (CONSP (val))
val = XCDR (val);
}

View file

@ -31,7 +31,9 @@
(ert-deftest test-days-in-month ()
(should (= (date-days-in-month 2004 2) 29))
(should (= (date-days-in-month 2004 3) 31))
(should-not (= (date-days-in-month 1900 3) 28)))
(should-not (= (date-days-in-month 1900 3) 28))
(should-error (date-days-in-month 2020 15))
(should-error (date-days-in-month 2020 'foo)))
(ert-deftest test-ordinal ()
(should (equal (date-ordinal-to-time 2008 271)

View file

@ -724,4 +724,56 @@
44777
(vector :nowait t))))
(ert-deftest check-network-process-coding-system-bind ()
"Check that binding coding-system-for-{read,write} works."
(let* ((coding-system-for-read 'binary)
(coding-system-for-write 'utf-8-unix)
(server
(make-network-process
:name "server"
:server t
:noquery t
:family 'ipv4
:service t
:host 'local))
(coding (process-coding-system server)))
(should (eq (car coding) 'binary))
(should (eq (cdr coding) 'utf-8-unix))
(delete-process server)))
(ert-deftest check-network-process-coding-system-no-override ()
"Check that coding-system-for-{read,write} is not overridden by :coding nil."
(let* ((coding-system-for-read 'binary)
(coding-system-for-write 'utf-8-unix)
(server
(make-network-process
:name "server"
:server t
:noquery t
:family 'ipv4
:service t
:coding nil
:host 'local))
(coding (process-coding-system server)))
(should (eq (car coding) 'binary))
(should (eq (cdr coding) 'utf-8-unix))
(delete-process server)))
(ert-deftest check-network-process-coding-system-override ()
"Check that :coding non-nil overrides coding-system-for-{read,write}."
(let* ((coding-system-for-read 'binary)
(coding-system-for-write 'utf-8-unix)
(server
(make-network-process
:name "server"
:server t
:noquery t
:family 'ipv4
:service t
:coding 'georgian-academy
:host 'local))
(coding (process-coding-system server)))
(should (eq (car coding) 'georgian-academy))
(should (eq (cdr coding) 'georgian-academy))
(delete-process server)))
;;; network-stream-tests.el ends here