aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJoakim Verona2013-02-18 00:04:31 +0100
committerJoakim Verona2013-02-18 00:04:31 +0100
commit37bce6bfacc0508a0c5016be3bfca92a81a59fe0 (patch)
treec0967967d0810670d1154c8a5b3a4a3521179660 /lisp
parentbcd8c34aabe11e72a0ce35f654515e2bb9c2964b (diff)
parenta51e9ff76cc887e0e6df95ff2895d80e0c00e9b9 (diff)
downloademacs-37bce6bfacc0508a0c5016be3bfca92a81a59fe0.tar.gz
emacs-37bce6bfacc0508a0c5016be3bfca92a81a59fe0.zip
auto upstream
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog29
-rw-r--r--lisp/emacs-lisp/lisp-mode.el12
-rw-r--r--lisp/font-lock.el30
-rw-r--r--lisp/gnus/ChangeLog15
-rw-r--r--lisp/gnus/mml2015.el76
-rw-r--r--lisp/gnus/shr.el8
-rw-r--r--lisp/image-dired.el2
-rw-r--r--lisp/image-mode.el10
-rw-r--r--lisp/menu-bar.el2
-rw-r--r--lisp/net/network-stream.el5
-rw-r--r--lisp/net/rcirc.el3
11 files changed, 139 insertions, 53 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 66c18a25803..3d5308875de 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,28 @@
12013-02-17 Didier Verna <didier@didierverna.net>
2
3 * net/network-stream.el (network-stream-open-starttls):
4 Check that response to the starttls-command is non-nil. (Bug#13706)
5
62013-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
7
8 * font-lock.el (lisp-font-lock-keywords-1, lisp-font-lock-keywords-2):
9 Don't assume all identifier chars have syntax word.
10 * emacs-lisp/lisp-mode.el (lisp-mode-variables):
11 Remove bar-not-symbol. Adjust callers.
12 (lisp-mode-variables): Don't set a font-lock-syntax-table.
13
142013-02-17 Leo Liu <sdl.web@gmail.com>
15
16 * net/rcirc.el (rcirc-keepalive): Fix invalid timer error.
17
182013-02-17 Glenn Morris <rgm@gnu.org>
19
20 * menu-bar.el (menu-bar-tools-menu): Fix case of EDE entry.
21
22 * image-mode.el (image-mode-map): Add image-dired menu entry.
23
24 * image-dired.el (tumme): Make this alias obsolete.
25
12013-02-16 Glenn Morris <rgm@gnu.org> 262013-02-16 Glenn Morris <rgm@gnu.org>
2 27
3 * image.el (image-animated-types): Remove. 28 * image.el (image-animated-types): Remove.
@@ -20,8 +45,8 @@
20 45
21 * net/tramp-compat.el (top): Require 'trampver. 46 * net/tramp-compat.el (top): Require 'trampver.
22 47
23 * net/tramp-sh.el (tramp-remote-process-environment): Set 48 * net/tramp-sh.el (tramp-remote-process-environment):
24 tramp-autoload cookie. 49 Set tramp-autoload cookie.
25 50
262013-02-16 Kevin Ryde <user42@zip.com.au> 512013-02-16 Kevin Ryde <user42@zip.com.au>
27 52
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index cd60d80b056..4ebaa0a49d5 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -187,14 +187,12 @@ It has `lisp-mode-abbrev-table' as its parent."
187 font-lock-string-face)))) 187 font-lock-string-face))))
188 font-lock-comment-face)) 188 font-lock-comment-face))
189 189
190(defun lisp-mode-variables (&optional lisp-syntax keywords-case-insensitive 190(defun lisp-mode-variables (&optional lisp-syntax keywords-case-insensitive)
191 bar-not-symbol)
192 "Common initialization routine for lisp modes. 191 "Common initialization routine for lisp modes.
193The LISP-SYNTAX argument is used by code in inf-lisp.el and is 192The LISP-SYNTAX argument is used by code in inf-lisp.el and is
194\(uselessly) passed from pp.el, chistory.el, gnus-kill.el and 193\(uselessly) passed from pp.el, chistory.el, gnus-kill.el and
195score-mode.el. KEYWORDS-CASE-INSENSITIVE non-nil means that for 194score-mode.el. KEYWORDS-CASE-INSENSITIVE non-nil means that for
196font-lock keywords will not be case sensitive. BAR-NOT-SYMBOL 195font-lock keywords will not be case sensitive."
197non-nil means that | is not a symbol character."
198 (when lisp-syntax 196 (when lisp-syntax
199 (set-syntax-table lisp-mode-syntax-table)) 197 (set-syntax-table lisp-mode-syntax-table))
200 (setq-local paragraph-ignore-fill-prefix t) 198 (setq-local paragraph-ignore-fill-prefix t)
@@ -228,9 +226,7 @@ non-nil means that | is not a symbol character."
228 (setq font-lock-defaults 226 (setq font-lock-defaults
229 `((lisp-font-lock-keywords 227 `((lisp-font-lock-keywords
230 lisp-font-lock-keywords-1 lisp-font-lock-keywords-2) 228 lisp-font-lock-keywords-1 lisp-font-lock-keywords-2)
231 nil ,keywords-case-insensitive 229 nil ,keywords-case-insensitive nil nil
232 ((,(concat "+-*/.<>=!?$%_&~^:@" (if bar-not-symbol "" "|")) . "w"))
233 nil
234 (font-lock-mark-block-function . mark-defun) 230 (font-lock-mark-block-function . mark-defun)
235 (font-lock-syntactic-face-function 231 (font-lock-syntactic-face-function
236 . lisp-font-lock-syntactic-face-function)))) 232 . lisp-font-lock-syntactic-face-function))))
@@ -553,7 +549,7 @@ or to switch back to an existing one.
553 549
554Entry to this mode calls the value of `lisp-mode-hook' 550Entry to this mode calls the value of `lisp-mode-hook'
555if that value is non-nil." 551if that value is non-nil."
556 (lisp-mode-variables nil t t) 552 (lisp-mode-variables nil t)
557 (setq-local find-tag-default-function 'lisp-find-tag-default) 553 (setq-local find-tag-default-function 'lisp-find-tag-default)
558 (setq-local comment-start-skip 554 (setq-local comment-start-skip
559 "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *") 555 "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 6e3476ac9a5..e5ce4db171b 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -2259,10 +2259,10 @@ in which C preprocessor directives are used. e.g. `asm-mode' and
2259 "\\(const\\(ant\\)?\\|custom\\|varalias\\|face\\|parameter\\|var\\(?:-local\\)?\\)\\|" 2259 "\\(const\\(ant\\)?\\|custom\\|varalias\\|face\\|parameter\\|var\\(?:-local\\)?\\)\\|"
2260 ;; Structure declarations. 2260 ;; Structure declarations.
2261 "\\(class\\|group\\|theme\\|package\\|struct\\|type\\)" 2261 "\\(class\\|group\\|theme\\|package\\|struct\\|type\\)"
2262 "\\)\\)\\>" 2262 "\\)\\)\\_>"
2263 ;; Any whitespace and defined object. 2263 ;; Any whitespace and defined object.
2264 "[ \t'\(]*" 2264 "[ \t'\(]*"
2265 "\\(setf[ \t]+\\sw+\\|\\sw+\\)?") 2265 "\\(setf[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?")
2266 (1 font-lock-keyword-face) 2266 (1 font-lock-keyword-face)
2267 (9 (cond ((match-beginning 3) font-lock-function-name-face) 2267 (9 (cond ((match-beginning 3) font-lock-function-name-face)
2268 ((match-beginning 6) font-lock-variable-name-face) 2268 ((match-beginning 6) font-lock-variable-name-face)
@@ -2299,7 +2299,7 @@ in which C preprocessor directives are used. e.g. `asm-mode' and
2299 "with-silent-modifications" "with-syntax-table" 2299 "with-silent-modifications" "with-syntax-table"
2300 "with-temp-buffer" "with-temp-file" "with-temp-message" 2300 "with-temp-buffer" "with-temp-file" "with-temp-message"
2301 "with-timeout" "with-timeout-handler" "with-wrapper-hook") t) 2301 "with-timeout" "with-timeout-handler" "with-wrapper-hook") t)
2302 "\\>") 2302 "\\_>")
2303 . 1) 2303 . 1)
2304 ;; Control structures. Common Lisp forms. 2304 ;; Control structures. Common Lisp forms.
2305 (,(concat 2305 (,(concat
@@ -2320,23 +2320,25 @@ in which C preprocessor directives are used. e.g. `asm-mode' and
2320 "with-open-stream" "with-output-to-string" 2320 "with-open-stream" "with-output-to-string"
2321 "with-package-iterator" "with-simple-restart" 2321 "with-package-iterator" "with-simple-restart"
2322 "with-slots" "with-standard-io-syntax") t) 2322 "with-slots" "with-standard-io-syntax") t)
2323 "\\>") 2323 "\\_>")
2324 . 1) 2324 . 1)
2325 ;; Exit/Feature symbols as constants. 2325 ;; Exit/Feature symbols as constants.
2326 (,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>" 2326 (,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>"
2327 "[ \t']*\\(\\sw+\\)?") 2327 "[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?")
2328 (1 font-lock-keyword-face) 2328 (1 font-lock-keyword-face)
2329 (2 font-lock-constant-face nil t)) 2329 (2 font-lock-constant-face nil t))
2330 ;; Erroneous structures. 2330 ;; Erroneous structures.
2331 ("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>" 1 font-lock-warning-face) 2331 ("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>" 1 font-lock-warning-face)
2332 ;; Words inside \\[] tend to be for `substitute-command-keys'. 2332 ;; Words inside \\[] tend to be for `substitute-command-keys'.
2333 ("\\\\\\\\\\[\\(\\sw+\\)\\]" 1 font-lock-constant-face prepend) 2333 ("\\\\\\\\\\[\\(\\(?:\\sw\\|\\s_\\)+\\)\\]"
2334 (1 font-lock-constant-face prepend))
2334 ;; Words inside `' tend to be symbol names. 2335 ;; Words inside `' tend to be symbol names.
2335 ("`\\(\\sw\\sw+\\)'" 1 font-lock-constant-face prepend) 2336 ("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'"
2337 (1 font-lock-constant-face prepend))
2336 ;; Constant values. 2338 ;; Constant values.
2337 ("\\<:\\sw+\\>" 0 font-lock-builtin-face) 2339 ("\\<:\\(?:\\sw\\|\\s_\\)+\\>" 0 font-lock-builtin-face)
2338 ;; ELisp and CLisp `&' keywords as types. 2340 ;; ELisp and CLisp `&' keywords as types.
2339 ("\\<\\&\\sw+\\>" . font-lock-type-face) 2341 ("\\<\\&\\(?:\\sw\\|\\s_\\)+\\>" . font-lock-type-face)
2340 ;; ELisp regexp grouping constructs 2342 ;; ELisp regexp grouping constructs
2341 ((lambda (bound) 2343 ((lambda (bound)
2342 (catch 'found 2344 (catch 'found
@@ -2353,11 +2355,11 @@ in which C preprocessor directives are used. e.g. `asm-mode' and
2353 (throw 'found t))))))) 2355 (throw 'found t)))))))
2354 (1 'font-lock-regexp-grouping-backslash prepend) 2356 (1 'font-lock-regexp-grouping-backslash prepend)
2355 (3 'font-lock-regexp-grouping-construct prepend)) 2357 (3 'font-lock-regexp-grouping-construct prepend))
2356;;; This is too general -- rms. 2358 ;; This is too general -- rms.
2357;;; A user complained that he has functions whose names start with `do' 2359 ;; A user complained that he has functions whose names start with `do'
2358;;; and that they get the wrong color. 2360 ;; and that they get the wrong color.
2359;;; ;; CL `with-' and `do-' constructs 2361 ;; ;; CL `with-' and `do-' constructs
2360;;; ("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face) 2362 ;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
2361 ))) 2363 )))
2362 "Gaudy level highlighting for Lisp modes.") 2364 "Gaudy level highlighting for Lisp modes.")
2363 2365
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 5030da87672..8de9e89a23d 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,18 @@
12013-02-17 Daiki Ueno <ueno@gnu.org>
2
3 * mml2015.el (epg-key-user-id-list, epg-user-id-string)
4 (epg-user-id-validity): Autoload.
5 (mml2015-epg-check-user-id): New function.
6 (mml2015-epg-check-sub-key): New function split from
7 mml2015-epg-find-usable-key.
8 (mml2015-epg-find-usable-key): Accept context, name, usage, and
9 optional name-is-key-id, to handle the case when user-id is unusable.
10 Reported by Ɓukasz Stelmach <stlman@poczta.fm>.
11
122013-02-17 Glenn Morris <rgm@gnu.org>
13
14 * shr.el (shr-put-image): Use image-multi-frame-p if available.
15
12013-02-16 Glenn Morris <rgm@gnu.org> 162013-02-16 Glenn Morris <rgm@gnu.org>
2 17
3 * shr.el (shr-put-image): Only animate images that specify a delay. 18 * shr.el (shr-put-image): Only animate images that specify a delay.
diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el
index 275a4867e85..b20c02aa26f 100644
--- a/lisp/gnus/mml2015.el
+++ b/lisp/gnus/mml2015.el
@@ -757,6 +757,9 @@ If set, it overrides the setting of `mml2015-sign-with-sender'."
757(autoload 'epg-sub-key-fingerprint "epg") 757(autoload 'epg-sub-key-fingerprint "epg")
758(autoload 'epg-signature-key-id "epg") 758(autoload 'epg-signature-key-id "epg")
759(autoload 'epg-signature-to-string "epg") 759(autoload 'epg-signature-to-string "epg")
760(autoload 'epg-key-user-id-list "epg")
761(autoload 'epg-user-id-string "epg")
762(autoload 'epg-user-id-validity "epg")
760(autoload 'epg-configuration "epg-config") 763(autoload 'epg-configuration "epg-config")
761(autoload 'epg-expand-group "epg-config") 764(autoload 'epg-expand-group "epg-config")
762(autoload 'epa-select-keys "epa") 765(autoload 'epa-select-keys "epa")
@@ -786,21 +789,53 @@ If set, it overrides the setting of `mml2015-sign-with-sender'."
786 (cons password-cache-key-id mml2015-epg-secret-key-id-list)) 789 (cons password-cache-key-id mml2015-epg-secret-key-id-list))
787 (copy-sequence passphrase))))) 790 (copy-sequence passphrase)))))
788 791
789(defun mml2015-epg-find-usable-key (keys usage) 792(defun mml2015-epg-check-user-id (key recipient)
790 (catch 'found 793 (let ((pointer (epg-key-user-id-list key))
794 result)
795 (while pointer
796 (if (and (equal (car (mail-header-parse-address
797 (epg-user-id-string (car pointer))))
798 (car (mail-header-parse-address
799 recipient)))
800 (not (memq (epg-user-id-validity (car pointer))
801 '(revoked expired))))
802 (setq result t
803 pointer nil)
804 (setq pointer (cdr pointer))))
805 result))
806
807(defun mml2015-epg-check-sub-key (key usage)
808 (let ((pointer (epg-key-sub-key-list key))
809 result)
810 ;; The primary key will be marked as disabled, when the entire
811 ;; key is disabled (see 12 Field, Format of colon listings, in
812 ;; gnupg/doc/DETAILS)
813 (unless (memq 'disabled (epg-sub-key-capability (car pointer)))
814 (while pointer
815 (if (and (memq usage (epg-sub-key-capability (car pointer)))
816 (not (memq (epg-sub-key-validity (car pointer))
817 '(revoked expired))))
818 (setq result t
819 pointer nil)
820 (setq pointer (cdr pointer)))))
821 result))
822
823(defun mml2015-epg-find-usable-key (context name usage
824 &optional name-is-key-id)
825 (let ((keys (epg-list-keys context name))
826 key)
791 (while keys 827 (while keys
792 (let ((pointer (epg-key-sub-key-list (car keys)))) 828 (if (and (or name-is-key-id
793 ;; The primary key will be marked as disabled, when the entire 829 ;; Non email user-id can be supplied through
794 ;; key is disabled (see 12 Field, Format of colon listings, in 830 ;; mml2015-signers if mml2015-encrypt-to-self is set.
795 ;; gnupg/doc/DETAILS) 831 ;; Treat it as valid, as it is user's intention.
796 (unless (memq 'disabled (epg-sub-key-capability (car pointer))) 832 (not (string-match "\\`<" name))
797 (while pointer 833 (mml2015-epg-check-user-id (car keys) name))
798 (if (and (memq usage (epg-sub-key-capability (car pointer))) 834 (mml2015-epg-check-sub-key (car keys) usage))
799 (not (memq (epg-sub-key-validity (car pointer)) 835 (setq key (car keys)
800 '(revoked expired)))) 836 keys nil)
801 (throw 'found (car keys))) 837 (setq keys (cdr keys))))
802 (setq pointer (cdr pointer))))) 838 key))
803 (setq keys (cdr keys)))))
804 839
805;; XXX: since gpg --list-secret-keys does not return validity of each 840;; XXX: since gpg --list-secret-keys does not return validity of each
806;; key, `mml2015-epg-find-usable-key' defined above is not enough for 841;; key, `mml2015-epg-find-usable-key' defined above is not enough for
@@ -811,10 +846,12 @@ If set, it overrides the setting of `mml2015-sign-with-sender'."
811 secret-key) 846 secret-key)
812 (while (and (not secret-key) secret-keys) 847 (while (and (not secret-key) secret-keys)
813 (if (mml2015-epg-find-usable-key 848 (if (mml2015-epg-find-usable-key
814 (epg-list-keys context (epg-sub-key-fingerprint 849 context
815 (car (epg-key-sub-key-list 850 (epg-sub-key-fingerprint
816 (car secret-keys))))) 851 (car (epg-key-sub-key-list
817 usage) 852 (car secret-keys))))
853 usage
854 t)
818 (setq secret-key (car secret-keys) 855 (setq secret-key (car secret-keys)
819 secret-keys nil) 856 secret-keys nil)
820 (setq secret-keys (cdr secret-keys)))) 857 (setq secret-keys (cdr secret-keys))))
@@ -1115,8 +1152,7 @@ If no one is selected, symmetric encryption will be performed. "
1115 (mapcar 1152 (mapcar
1116 (lambda (recipient) 1153 (lambda (recipient)
1117 (setq recipient-key (mml2015-epg-find-usable-key 1154 (setq recipient-key (mml2015-epg-find-usable-key
1118 (epg-list-keys context recipient) 1155 context recipient 'encrypt))
1119 'encrypt))
1120 (unless (or recipient-key 1156 (unless (or recipient-key
1121 (y-or-n-p 1157 (y-or-n-p
1122 (format "No public key for %s; skip it? " 1158 (format "No public key for %s; skip it? "
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el
index 1294ca7cd69..886f4da53dc 100644
--- a/lisp/gnus/shr.el
+++ b/lisp/gnus/shr.el
@@ -615,8 +615,12 @@ size, and full-buffer size."
615 (overlay-put overlay 'face 'default))) 615 (overlay-put overlay 'face 'default)))
616 (insert-image image (or alt "*"))) 616 (insert-image image (or alt "*")))
617 (put-text-property start (point) 'image-size size) 617 (put-text-property start (point) 'image-size size)
618 ;; Only animate multi-frame things that specify a delay. FIXME? 618 (when (if (fboundp 'image-multi-frame-p)
619 (when (cdr (image-animated-p image)) 619 ;; Only animate multi-frame things that specify a
620 ;; delay; eg animated gifs as opposed to
621 ;; multi-page tiffs. FIXME?
622 (cdr (image-multi-frame-p image))
623 (image-animated-p image))
620 (image-animate image nil 60))) 624 (image-animate image nil 60)))
621 image) 625 image)
622 (insert alt))) 626 (insert alt)))
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 354e16b0bfb..bbb41d49a1d 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -883,7 +883,7 @@ displayed."
883(defalias 'image-dired 'image-dired-show-all-from-dir) 883(defalias 'image-dired 'image-dired-show-all-from-dir)
884 884
885;;;###autoload 885;;;###autoload
886(defalias 'tumme 'image-dired-show-all-from-dir) 886(define-obsolete-function-alias 'tumme 'image-dired "24.4")
887 887
888(defun image-dired-sane-db-file () 888(defun image-dired-sane-db-file ()
889 "Check if `image-dired-db-file' exists. 889 "Check if `image-dired-db-file' exists.
diff --git a/lisp/image-mode.el b/lisp/image-mode.el
index 52367811341..7787a26cc08 100644
--- a/lisp/image-mode.el
+++ b/lisp/image-mode.el
@@ -376,9 +376,15 @@ call."
376 :visible (eq image-type 'imagemagick) 376 :visible (eq image-type 'imagemagick)
377 :help "Rotate the image"] 377 :help "Rotate the image"]
378 "--" 378 "--"
379 ["Next Image" image-next-file :active t 379 ["Show Thumbnails"
380 (lambda ()
381 (interactive)
382 (image-dired default-directory))
383 :active default-directory
384 :help "Show thumbnails for all images in this directory"]
385 ["Next Image" image-next-file :active buffer-file-name
380 :help "Move to next image in this directory"] 386 :help "Move to next image in this directory"]
381 ["Previous Image" image-previous-file :active t 387 ["Previous Image" image-previous-file :active buffer-file-name
382 :help "Move to previous image in this directory"] 388 :help "Move to previous image in this directory"]
383 "--" 389 "--"
384 ["Animate Image" image-toggle-animation :style toggle 390 ["Animate Image" image-toggle-animation :style toggle
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 60f2bc2999f..be459fe38d5 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1518,7 +1518,7 @@ mail status in mode line"))
1518 :button (:toggle . (bound-and-true-p semantic-mode)))) 1518 :button (:toggle . (bound-and-true-p semantic-mode))))
1519 1519
1520 (bindings--define-key menu [ede] 1520 (bindings--define-key menu [ede]
1521 '(menu-item "Project support (EDE)" 1521 '(menu-item "Project Support (EDE)"
1522 global-ede-mode 1522 global-ede-mode
1523 :help "Toggle the Emacs Development Environment (Global EDE mode)" 1523 :help "Toggle the Emacs Development Environment (Global EDE mode)"
1524 :button (:toggle . (bound-and-true-p global-ede-mode)))) 1524 :button (:toggle . (bound-and-true-p global-ede-mode))))
diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el
index 8cf9ec67e53..fd21997ba28 100644
--- a/lisp/net/network-stream.el
+++ b/lisp/net/network-stream.el
@@ -262,8 +262,9 @@ STARTTLS upgrades even if Emacs doesn't have built-in TLS functionality.
262 ;; EHLO for SMTP. 262 ;; EHLO for SMTP.
263 (when (plist-get parameters :always-query-capabilities) 263 (when (plist-get parameters :always-query-capabilities)
264 (network-stream-command stream capability-command eo-capa))) 264 (network-stream-command stream capability-command eo-capa)))
265 (when (string-match success-string 265 (when (let ((response
266 (network-stream-command stream starttls-command eoc)) 266 (network-stream-command stream starttls-command eoc)))
267 (and response (string-match success-string response)))
267 ;; The server said it was OK to begin STARTTLS negotiations. 268 ;; The server said it was OK to begin STARTTLS negotiations.
268 (if builtin-starttls 269 (if builtin-starttls
269 (let ((cert (network-stream-certificate host service parameters))) 270 (let ((cert (network-stream-certificate host service parameters)))
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 086043c2b4a..7c70ded3eaa 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -625,7 +625,8 @@ last ping."
625 (rcirc-float-time)))))) 625 (rcirc-float-time))))))
626 (rcirc-process-list)) 626 (rcirc-process-list))
627 ;; no processes, clean up timer 627 ;; no processes, clean up timer
628 (cancel-timer rcirc-keepalive-timer) 628 (when (timerp rcirc-keepalive-timer)
629 (cancel-timer rcirc-keepalive-timer))
629 (setq rcirc-keepalive-timer nil))) 630 (setq rcirc-keepalive-timer nil)))
630 631
631(defun rcirc-handler-ctcp-KEEPALIVE (process target sender message) 632(defun rcirc-handler-ctcp-KEEPALIVE (process target sender message)