emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 44c1ce3: Merge from origin/emacs-26


From: Glenn Morris
Subject: [Emacs-diffs] master 44c1ce3: Merge from origin/emacs-26
Date: Thu, 20 Sep 2018 10:54:40 -0400 (EDT)

branch: master
commit 44c1ce3a370ed94199751d1429a65f40880b9234
Merge: 229c51a d28d54c
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-26
    
    d28d54c (origin/emacs-26) More accurate docs for 'text-char-description'
    b3baf99 Document synchronous behavior of eshell/make (Bug#32513)
    98544ea Fix bs-show with wide characters (Bug#17822)
    85af51b Improve Custom menu labels for 2 options
    72a2a36 Improve wording of last change in dired-x.texi
    d4fa83b Fix GnuTLS test suite with GnuTLS versions 3.4.x
    b5bee6b Fix build with gnutls versions 3.0 to 3.2 (Bug#32446)
    67eb80e ; * etc/enriched.txt (hanging-indents): Remove extra indent.
    c71cfb7 Fix the Bubbles game on TTY frames
    3bbf21b Add choice to reshow certificate information (Bug#31877)
    6f2c471 * src/alloc.c (Fbool_vector, Flist, Fvector): Doc tweak.
    39eecb3 * src/alloc.c (vector): Fix grammatical error in doc string: ...
---
 doc/lispref/help.texi  | 30 ++++++++---------------
 doc/misc/dired-x.texi  |  4 +++-
 doc/misc/eshell.texi   |  5 ++--
 lisp/bs.el             |  4 ++--
 lisp/dired.el          | 13 ++++++----
 lisp/eshell/em-unix.el |  3 ++-
 lisp/net/nsm.el        | 51 ++++++++++++++++++++++------------------
 lisp/play/bubbles.el   | 64 +++++++++++++++++++++++---------------------------
 lisp/progmodes/xref.el | 20 +++++++++-------
 src/alloc.c            |  8 +++----
 src/gnutls.c           | 49 ++++++++++++++++++++++++++++++++++----
 src/keymap.c           |  3 ++-
 12 files changed, 148 insertions(+), 106 deletions(-)

diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi
index a23bc41..2688a2b 100644
--- a/doc/lispref/help.texi
+++ b/doc/lispref/help.texi
@@ -556,13 +556,15 @@ brackets.
 
 @defun text-char-description character
 This function returns a string describing @var{character} in the
-standard Emacs notation for characters that can appear in text---like
address@hidden, except that the argument must be a
-valid character code that passes a @code{characterp} test
-(@pxref{Character Codes}), control characters are represented with a
-leading caret (which is how control characters in Emacs buffers are
-usually displayed), and the 2**7 bit is treated as the Meta bit,
-whereas @code{single-key-description} uses the 2**27 bit for Meta.
+standard Emacs notation for characters that can appear in
+text---similar to @code{single-key-description}, except that the
+argument must be a valid character code that passes a
address@hidden test (@pxref{Character Codes}).  The function
+produces descriptions of control characters with a leading caret
+(which is how Emacs usually displays control characters in buffers).
+Characters with modifier bits will cause this function to signal an
+error (@acronym{ASCII} characters with the Control modifier are an
+exception, they are represented as control characters).
 
 @smallexample
 @group
@@ -571,19 +573,7 @@ whereas @code{single-key-description} uses the 2**27 bit 
for Meta.
 @end group
 @group
 (text-char-description ?\M-m)
-     @result{} "\xed"
address@hidden group
address@hidden
-(text-char-description ?\C-\M-m)
-     @result{} "\x8d"
address@hidden group
address@hidden
-(text-char-description (+ 128 ?m))
-     @result{} "M-m"
address@hidden group
address@hidden
-(text-char-description (+ 128 ?\C-m))
-     @result{} "M-^M"
+     @error{} Wrong type argument: characterp, 134217837
 @end group
 @end smallexample
 @end defun
diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi
index 1ff2b73..36a9cb0 100644
--- a/doc/misc/dired-x.texi
+++ b/doc/misc/dired-x.texi
@@ -521,7 +521,9 @@ where each @var{command} can either be a string or a Lisp 
expression
 that evaluates to a string.  If several commands are given, all of
 them will temporarily be pushed onto the history.
 
-A @samp{*} in the shell command is replaced by the file name.
+A @samp{*} in the shell command stands for the file name that matched
address@hidden  When Emacs invokes the @var{command}, it replaces each
+instance of @samp{*} with the matched file name.
 
 You can set this variable in your @file{~/.emacs}.  For example,
 to add rules for @samp{.foo} and @samp{.bar} file extensions, write
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 817e50d..79aac9b 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -346,8 +346,9 @@ Alias to Emacs's @code{locate} function, which simply runs 
the external
 
 @item make
 @cmindex make
-Run @command{make} through @code{compile}.
address@hidden, , , emacs, The GNU Emacs Manual}.
+Run @command{make} through @code{compile} when run asynchronously
+(e.g., @samp{make &}).  @xref{Compilation, , , emacs, The GNU Emacs
+Manual}.  Otherwise call the external @command{make} command.
 
 @item occur
 @cmindex occur
diff --git a/lisp/bs.el b/lisp/bs.el
index 0d65da1..32431ba 100644
--- a/lisp/bs.el
+++ b/lisp/bs.el
@@ -1159,7 +1159,7 @@ and move point to current buffer."
   (bs-mode)
   (let* ((inhibit-read-only t)
         (map-fun (lambda (entry)
-                   (length (buffer-name entry))))
+                   (string-width (buffer-name entry))))
         (max-length-of-names (apply 'max
                                     (cons 0 (mapcar map-fun list))))
         (name-entry-length (min bs-maximal-buffer-name-column
@@ -1371,7 +1371,7 @@ normally *buffer-selection*."
                                                          apply-args)
                                           (nth 3 column)                ; align
                                           (- min to-much)))
-              (len (length new-string)))
+              (len (string-width new-string)))
          (setq string (concat string new-string))
          (when (> len min)
            (setq to-much (- len min))))))
diff --git a/lisp/dired.el b/lisp/dired.el
index 26a7449..0ed1a4f 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -88,9 +88,11 @@ If nil, `dired-listing-switches' is used."
 
 (defcustom dired-use-ls-dired 'unspecified
   "Non-nil means Dired should pass the \"--dired\" option to \"ls\".
-The special value of `unspecified' means to check explicitly, and
-save the result in this variable.  This is performed the first
-time `dired-insert-directory' is called.
+If nil, don't pass \"--dired\" to \"ls\".
+The special value of `unspecified' means to check whether \"ls\"
+supports the \"--dired\" option, and save the result in this
+variable.  This is performed the first time `dired-insert-directory'
+is invoked.
 
 Note that if you set this option to nil, either through choice or
 because your \"ls\" program does not support \"--dired\", Dired
@@ -104,9 +106,10 @@ This is used by default on MS Windows, which does not have 
an \"ls\" program.
 Note that `ls-lisp' does not support as many options as GNU ls, though.
 For more details, see Info node `(emacs)ls in Lisp'."
   :group 'dired
-  :type '(choice (const :tag "Check for --dired support" unspecified)
+  :type '(choice (const :tag
+                        "Use --dired only if 'ls' supports it" unspecified)
                  (const :tag "Do not use --dired" nil)
-                 (other :tag "Use --dired" t)))
+                 (other :tag "Always use --dired" t)))
 
 (defcustom dired-chmod-program "chmod"
   "Name of chmod command (usually `chmod')."
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index c912c15..9a99c53 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -656,7 +656,8 @@ Concatenate FILE(s), or standard input, to standard 
output.")
 ;; special front-end functions for compilation-mode buffers
 
 (defun eshell/make (&rest args)
-  "Use `compile' to do background makes."
+  "Use `compile' to do background makes.
+Fallback to standard make when called synchronously."
   (if (and eshell-current-subjob-p
           (eshell-interactive-output-p))
       (let ((compilation-process-setup-function
diff --git a/lisp/net/nsm.el b/lisp/net/nsm.el
index 9eb914e..e857e64 100644
--- a/lisp/net/nsm.el
+++ b/lisp/net/nsm.el
@@ -365,29 +365,34 @@ HOST PORT STATUS OPTIONAL-PARAMETER.")
        t))))
 
 (defun nsm-query-user (message args cert)
-  (let ((buffer (get-buffer-create "*Network Security Manager*")))
-    (save-window-excursion
-      ;; First format the certificate and warnings.
-      (with-help-window buffer
-        (with-current-buffer buffer
-          (erase-buffer)
-          (when (> (length cert) 0)
-            (insert cert "\n"))
-          (let ((start (point)))
-            (insert (apply #'format-message message args))
-            (goto-char start)
-            ;; Fill the first line of the message, which usually
-            ;; contains lots of explanatory text.
-            (fill-region (point) (line-end-position)))))
-      ;; Then ask the user what to do about it.
-      (unwind-protect
-          (cadr
-           (read-multiple-choice
-            "Continue connecting?"
-            '((?a "always" "Accept this certificate this session and for all 
future sessions.")
-              (?s "session only" "Accept this certificate this session only.")
-              (?n "no" "Refuse to use this certificate, and close the 
connection."))))
-        (kill-buffer buffer)))))
+  (catch 'return
+    (while t
+      (let ((buffer (get-buffer-create "*Network Security Manager*")))
+        (save-window-excursion
+          ;; First format the certificate and warnings.
+          (with-help-window buffer
+            (with-current-buffer buffer
+              (erase-buffer)
+              (when (> (length cert) 0)
+                (insert cert "\n"))
+              (let ((start (point)))
+                (insert (apply #'format-message message args))
+                (goto-char start)
+                ;; Fill the first line of the message, which usually
+                ;; contains lots of explanatory text.
+                (fill-region (point) (line-end-position)))))
+          ;; Then ask the user what to do about it.
+          (pcase (unwind-protect
+                     (cadr
+                      (read-multiple-choice
+                       "Continue connecting?"
+                       '((?a "always" "Accept this certificate this session 
and for all future sessions.")
+                         (?s "session only" "Accept this certificate this 
session only.")
+                         (?n "no" "Refuse to use this certificate, and close 
the connection.")
+                         (?r "reshow" "Reshow certificate information."))))
+                   (kill-buffer buffer))
+            ("reshow")
+            (val (throw 'return val))))))))
 
 (defun nsm-save-host (host port status what permanency)
   (let* ((id (nsm-id host port))
diff --git a/lisp/play/bubbles.el b/lisp/play/bubbles.el
index e30838d..ee2135b 100644
--- a/lisp/play/bubbles.el
+++ b/lisp/play/bubbles.el
@@ -250,10 +250,10 @@ Available modes are `shift-default' and `shift-always'."
   "Indicate whether images have been created successfully.")
 
 (defvar bubbles--col-offset 0
-  "Horizontal offset for centering the bubbles grid.")
+  "Horizontal offset for centering the bubbles grid, in pixels.")
 
 (defvar bubbles--row-offset 0
-  "Vertical offset for centering the bubbles grid.")
+  "Vertical offset for centering the bubbles grid, in pixels.")
 
 (defvar bubbles--save-data nil
   "List containing bubbles save data (SCORE BUFFERCONTENTS).")
@@ -960,33 +960,26 @@ columns on its right towards the left.
 (defun bubbles--compute-offsets ()
   "Update horizontal and vertical offsets for centering the bubbles grid.
 Set `bubbles--col-offset' and `bubbles--row-offset'."
-  (cond ((and (display-images-p)
-              bubbles--images-ok
-              (not (eq bubbles-graphics-theme 'ascii))
-              (fboundp 'window-inside-pixel-edges))
-         ;; compute offset in units of pixels
-         (let ((bubbles--image-size
-                (car (image-size (car bubbles--images) t))))
-           (setq bubbles--col-offset
-                 (list
-                  (max 0 (/ (- (nth 2 (window-inside-pixel-edges))
-                               (nth 0 (window-inside-pixel-edges))
-                               (* ( + bubbles--image-size 2) ;; margin
-                                  (bubbles--grid-width))) 2))))
-           (setq bubbles--row-offset
-                 (list
-                  (max 0 (/ (- (nth 3 (window-inside-pixel-edges))
-                               (nth 1 (window-inside-pixel-edges))
-                               (* (+ bubbles--image-size 1) ;; margin
-                                  (bubbles--grid-height))) 2))))))
-        (t
-         ;; compute offset in units of chars
-         (setq bubbles--col-offset
-               (max 0 (/ (- (window-width)
-                            (bubbles--grid-width)) 2)))
-         (setq bubbles--row-offset
-               (max 0 (/ (- (window-height)
-                            (bubbles--grid-height) 2) 2))))))
+  (let* ((use-images-p (and (display-images-p)
+                            bubbles--images-ok
+                            (not (eq bubbles-graphics-theme 'ascii))))
+         (bubbles--image-size
+          (if use-images-p (car (image-size (car bubbles--images) t)) 1))
+         ;; In GUI mode, leave thin margins around the images.
+         (image-hor-size
+          (if use-images-p (+ bubbles--image-size 2) bubbles--image-size))
+         (image-vert-size
+          (if use-images-p (1+ bubbles--image-size) bubbles--image-size)))
+    (setq bubbles--col-offset
+          (max 0 (/ (- (nth 2 (window-body-pixel-edges))
+                       (nth 0 (window-body-pixel-edges))
+                       (* image-hor-size (bubbles--grid-width)))
+                    2)))
+    (setq bubbles--row-offset
+          (max 0 (/ (- (nth 3 (window-body-pixel-edges))
+                       (nth 1 (window-body-pixel-edges))
+                       (* image-vert-size (bubbles--grid-height)))
+                    2)))))
 
 (defun bubbles--remove-overlays ()
   "Remove all overlays."
@@ -1007,7 +1000,8 @@ Set `bubbles--col-offset' and `bubbles--row-offset'."
     (insert " ")
     (put-text-property (point-min) (point)
                        'display
-                       (cons 'space (list :height bubbles--row-offset)))
+                       (cons 'space (list :height
+                                          (list bubbles--row-offset))))
     (insert "\n")
     (let ((max-char (length (bubbles--colors))))
       (dotimes (i (bubbles--grid-height))
@@ -1015,7 +1009,8 @@ Set `bubbles--col-offset' and `bubbles--row-offset'."
           (insert " ")
           (put-text-property p (point)
                              'display
-                             (cons 'space (list :width bubbles--col-offset))))
+                             (cons 'space (list :width
+                                                (list bubbles--col-offset)))))
         (dotimes (j (bubbles--grid-width))
           (let* ((index (random max-char))
                  (char (nth index bubbles-chars)))
@@ -1025,7 +1020,8 @@ Set `bubbles--col-offset' and `bubbles--row-offset'."
       (insert "\n ")
       (put-text-property (1- (point)) (point)
                          'display
-                         (cons 'space (list :width bubbles--col-offset))))
+                         (cons 'space (list :width
+                                            (list bubbles--col-offset)))))
     (put-text-property (point-min) (point-max) 'pointer 'arrow))
   (bubbles-mode)
   (bubbles--reset-score)
@@ -1177,7 +1173,7 @@ Use optional parameter POS instead of point if given."
       (insert " ")
       (put-text-property (1- (point)) (point)
                          'display
-                         (cons 'space (list :width bubbles--col-offset)))
+                         (cons 'space (list :width (list 
bubbles--col-offset))))
       (insert (format "Score:    %4d" bubbles--score))
       (put-text-property pos (point) 'status t))))
 
@@ -1197,7 +1193,7 @@ Use optional parameter POS instead of point if given."
     (insert "\n ")
     (put-text-property (1- (point)) (point)
                        'display
-                       (cons 'space (list :width bubbles--col-offset)))
+                       (cons 'space (list :width (list bubbles--col-offset))))
     (insert "Game Over!"))
   ;; save score
   (gamegrid-add-score (format "bubbles-%s-%d-%d-%d-scores"
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index c85fe67..c7ae40e 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -323,21 +323,23 @@ backward."
 (defcustom xref-prompt-for-identifier '(not xref-find-definitions
                                             xref-find-definitions-other-window
                                             xref-find-definitions-other-frame)
-  "When t, always prompt for the identifier name.
+  "If non-nil, prompt for the identifier to find.
+
+When t, always prompt for the identifier name.
 
 When nil, prompt only when there's no value at point we can use,
 or when the command has been called with the prefix argument.
 
-Otherwise, it's a list of xref commands which will prompt
-anyway (the value at point, if any, will be used as the default).
-
+Otherwise, it's a list of xref commands which will always prompt,
+with the identifier at point, if any, used as the default.
 If the list starts with `not', the meaning of the rest of the
-elements is negated."
-  :type '(choice (const :tag "always" t)
-                 (const :tag "auto" nil)
-                 (set :menu-tag "command specific" :tag "commands"
+elements is negated: these commands will NOT prompt."
+  :type '(choice (const :tag "Always prompt for identifier" t)
+                 (const :tag "Prompt if no identifier at point" nil)
+                 (set :menu-tag "Prompt according to command"
+                      :tag "Prompt according to command"
                      :value (not)
-                     (const :tag "Except" not)
+                     (const :tag "Except for commands listed below" not)
                      (repeat :inline t (symbol :tag "command")))))
 
 (defcustom xref-after-jump-hook '(recenter
diff --git a/src/alloc.c b/src/alloc.c
index 6bced4e..3b15079 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -2425,7 +2425,7 @@ LENGTH must be a number.  INIT matters only in whether it 
is t or nil.  */)
 
 DEFUN ("bool-vector", Fbool_vector, Sbool_vector, 0, MANY, 0,
        doc: /* Return a new bool-vector with specified arguments as elements.
-Any number of arguments, even zero arguments, are allowed.
+Allows any number of arguments, including zero.
 usage: (bool-vector &rest OBJECTS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
 {
@@ -2872,7 +2872,7 @@ listn (enum constype type, ptrdiff_t count, Lisp_Object 
arg, ...)
 
 DEFUN ("list", Flist, Slist, 0, MANY, 0,
        doc: /* Return a newly created list with specified arguments as 
elements.
-Any number of arguments, even zero arguments, are allowed.
+Allows any number of arguments, including zero.
 usage: (list &rest OBJECTS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
 {
@@ -3497,7 +3497,7 @@ See also the function `vector'.  */)
 
 DEFUN ("vector", Fvector, Svector, 0, MANY, 0,
        doc: /* Return a newly created vector with specified arguments as 
elements.
-Any number of arguments, even zero arguments, are allowed.
+Allows any number of arguments, including zero.
 usage: (vector &rest OBJECTS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
 {
@@ -3729,7 +3729,7 @@ build_marker (struct buffer *buf, ptrdiff_t charpos, 
ptrdiff_t bytepos)
    elements.  If all the arguments are characters that can fit
    in a string of events, make a string; otherwise, make a vector.
 
-   Any number of arguments, even zero arguments, are allowed.  */
+   Allows any number of arguments, including zero.  */
 
 Lisp_Object
 make_event_array (ptrdiff_t nargs, Lisp_Object *args)
diff --git a/src/gnutls.c b/src/gnutls.c
index a48d998..d36b637 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -38,6 +38,23 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
    So, require 3.5.1.  */
 #if GNUTLS_VERSION_NUMBER >= 0x030501
 # define HAVE_GNUTLS_AEAD
+#elif GNUTLS_VERSION_NUMBER < 0x030202
+/* gnutls_cipher_get_tag_size was introduced in 3.2.2, but it's only
+   relevant for AEAD ciphers.  */
+# define gnutls_cipher_get_tag_size(cipher) 0
+#endif
+
+#if GNUTLS_VERSION_NUMBER < 0x030200
+/* gnutls_cipher_get_iv_size was introduced in 3.2.0.  For the ciphers
+   available in previous versions, block size is equivalent.  */
+#define gnutls_cipher_get_iv_size(cipher) gnutls_cipher_get_block_size (cipher)
+#endif
+
+#if GNUTLS_VERSION_NUMBER < 0x030202
+/* gnutls_digest_list and gnutls_digest_get_name were added in 3.2.2.
+   For previous versions, the mac algorithms are equivalent.  */
+# define gnutls_digest_list() ((const gnutls_digest_algorithm_t *) 
gnutls_mac_list ())
+# define gnutls_digest_get_name(id) gnutls_mac_get_name 
((gnutls_mac_algorithm_t) id)
 #endif
 
 /* gnutls_mac_get_nonce_size was added in GnuTLS 3.2.0, but was
@@ -206,13 +223,21 @@ DEF_DLL_FN (const gnutls_mac_algorithm_t *, 
gnutls_mac_list, (void));
 DEF_DLL_FN (size_t, gnutls_mac_get_nonce_size, (gnutls_mac_algorithm_t));
 #   endif
 DEF_DLL_FN (size_t, gnutls_mac_get_key_size, (gnutls_mac_algorithm_t));
+#   ifndef gnutls_digest_list
 DEF_DLL_FN (const gnutls_digest_algorithm_t *, gnutls_digest_list, (void));
+#   endif
+#   ifndef gnutls_digest_get_name
 DEF_DLL_FN (const char *, gnutls_digest_get_name, (gnutls_digest_algorithm_t));
+#   endif
 DEF_DLL_FN (gnutls_cipher_algorithm_t *, gnutls_cipher_list, (void));
+#   ifndef gnutls_cipher_get_iv_size
 DEF_DLL_FN (int, gnutls_cipher_get_iv_size, (gnutls_cipher_algorithm_t));
+#   endif
 DEF_DLL_FN (size_t, gnutls_cipher_get_key_size, (gnutls_cipher_algorithm_t));
 DEF_DLL_FN (int, gnutls_cipher_get_block_size, (gnutls_cipher_algorithm_t));
+#   ifndef gnutls_cipher_get_tag_size
 DEF_DLL_FN (int, gnutls_cipher_get_tag_size, (gnutls_cipher_algorithm_t));
+#   endif
 DEF_DLL_FN (int, gnutls_cipher_init,
            (gnutls_cipher_hd_t *, gnutls_cipher_algorithm_t,
             const gnutls_datum_t *, const gnutls_datum_t *));
@@ -340,13 +365,21 @@ init_gnutls_functions (void)
   LOAD_DLL_FN (library, gnutls_mac_get_nonce_size);
 #   endif
   LOAD_DLL_FN (library, gnutls_mac_get_key_size);
+#   ifndef gnutls_digest_list
   LOAD_DLL_FN (library, gnutls_digest_list);
+#   endif
+#   ifndef gnutls_digest_get_name
   LOAD_DLL_FN (library, gnutls_digest_get_name);
+#   endif
   LOAD_DLL_FN (library, gnutls_cipher_list);
+#   ifndef gnutls_cipher_get_iv_size
   LOAD_DLL_FN (library, gnutls_cipher_get_iv_size);
+#   endif
   LOAD_DLL_FN (library, gnutls_cipher_get_key_size);
   LOAD_DLL_FN (library, gnutls_cipher_get_block_size);
+#   ifndef gnutls_cipher_get_tag_size
   LOAD_DLL_FN (library, gnutls_cipher_get_tag_size);
+#   endif
   LOAD_DLL_FN (library, gnutls_cipher_init);
   LOAD_DLL_FN (library, gnutls_cipher_set_iv);
   LOAD_DLL_FN (library, gnutls_cipher_encrypt2);
@@ -456,13 +489,21 @@ init_gnutls_functions (void)
 #    define gnutls_mac_get_nonce_size fn_gnutls_mac_get_nonce_size
 #   endif
 #  define gnutls_mac_get_key_size fn_gnutls_mac_get_key_size
-#  define gnutls_digest_list fn_gnutls_digest_list
-#  define gnutls_digest_get_name fn_gnutls_digest_get_name
+#  ifndef gnutls_digest_list
+#   define gnutls_digest_list fn_gnutls_digest_list
+#  endif
+#  ifndef gnutls_digest_get_name
+#   define gnutls_digest_get_name fn_gnutls_digest_get_name
+#  endif
 #  define gnutls_cipher_list fn_gnutls_cipher_list
-#  define gnutls_cipher_get_iv_size fn_gnutls_cipher_get_iv_size
+#  ifndef gnutls_cipher_get_iv_size
+#   define gnutls_cipher_get_iv_size fn_gnutls_cipher_get_iv_size
+#  endif
 #  define gnutls_cipher_get_key_size fn_gnutls_cipher_get_key_size
 #  define gnutls_cipher_get_block_size fn_gnutls_cipher_get_block_size
-#  define gnutls_cipher_get_tag_size fn_gnutls_cipher_get_tag_size
+#  ifndef gnutls_cipher_get_tag_size
+#   define gnutls_cipher_get_tag_size fn_gnutls_cipher_get_tag_size
+#  endif
 #  define gnutls_cipher_init fn_gnutls_cipher_init
 #  define gnutls_cipher_set_iv fn_gnutls_cipher_set_iv
 #  define gnutls_cipher_encrypt2 fn_gnutls_cipher_encrypt2
diff --git a/src/keymap.c b/src/keymap.c
index e405ed8..22e24b2 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -2297,7 +2297,8 @@ push_text_char_description (register unsigned int c, 
register char *p)
 DEFUN ("text-char-description", Ftext_char_description, 
Stext_char_description, 1, 1, 0,
        doc: /* Return the description of CHARACTER in standard Emacs notation.
 CHARACTER must be a valid character code that passes the `characterp' test.
-Control characters turn into "^char", the 2**7 bit is treated as Meta, etc.
+Control characters turn into "^char", and characters with Meta and other
+modifiers signal an error, as they are not valid characterr codes.
 This differs from `single-key-description' which accepts character events,
 and thus doesn't enforce the `characterp' condition, turns control
 characters into "C-char", and uses the 2**27 bit for Meta.



reply via email to

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