emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r111287: Make read-char-by-name signa


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r111287: Make read-char-by-name signal an error for invalid input.
Date: Fri, 21 Dec 2012 15:51:33 +0800
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 111287
fixes bug: http://debbugs.gnu.org/13177
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Fri 2012-12-21 15:51:33 +0800
message:
  Make read-char-by-name signal an error for invalid input.
  
  * international/mule-cmds.el (read-char-by-name): Signal an error
  if the user does not supply a valid character.
  
  * editfns.c (Finsert_char): Since read-char-by-name now signals an
  error for invalid chars, don't check for a nil return value.
modified:
  lisp/ChangeLog
  lisp/international/mule-cmds.el
  src/ChangeLog
  src/editfns.c
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-12-21 07:35:02 +0000
+++ b/lisp/ChangeLog    2012-12-21 07:51:33 +0000
@@ -5,6 +5,9 @@
 
 2012-12-21  Chong Yidong  <address@hidden>
 
+       * international/mule-cmds.el (read-char-by-name): Signal an error
+       if the user does not supply a valid character (Bug#13177).
+
        * simple.el (transpose-subr-1): Preserve marker positions by
        changing the insertion sequence (Bug#13122).
 

=== modified file 'lisp/international/mule-cmds.el'
--- a/lisp/international/mule-cmds.el   2012-12-15 13:03:17 +0000
+++ b/lisp/international/mule-cmds.el   2012-12-21 07:51:33 +0000
@@ -2953,14 +2953,18 @@
             (let ((completion-ignore-case t))
               (if (eq action 'metadata)
                   '(metadata (category . unicode-name))
-                (complete-with-action action (ucs-names) string pred)))))))
-    (cond
-     ((string-match-p "\\`[0-9a-fA-F]+\\'" input)
-      (string-to-number input 16))
-     ((string-match-p "\\`#" input)
-      (read input))
-     (t
-      (cdr (assoc-string input (ucs-names) t))))))
+                (complete-with-action action (ucs-names) string pred))))))
+        (char
+         (cond
+          ((string-match-p "\\`[0-9a-fA-F]+\\'" input)
+           (string-to-number input 16))
+          ((string-match-p "\\`#" input)
+           (read input))
+          (t
+           (cdr (assoc-string input (ucs-names) t))))))
+    (unless (characterp char)
+      (error "Invalid character"))
+    char))
 
 (define-obsolete-function-alias 'ucs-insert 'insert-char "24.3")
 (define-key ctl-x-map "8\r" 'insert-char)

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-12-20 16:09:05 +0000
+++ b/src/ChangeLog     2012-12-21 07:51:33 +0000
@@ -1,3 +1,8 @@
+2012-12-21  Chong Yidong  <address@hidden>
+
+       * editfns.c (Finsert_char): Since read-char-by-name now signals an
+       error for invalid chars, don't check for a nil return value.
+
 2012-12-20  Dmitry Antipov  <address@hidden>
 
        Avoid calls to CHAR_TO_BYTE if byte position is known.

=== modified file 'src/editfns.c'
--- a/src/editfns.c     2012-12-20 16:09:05 +0000
+++ b/src/editfns.c     2012-12-21 07:51:33 +0000
@@ -2361,10 +2361,9 @@
 }
 
 DEFUN ("insert-char", Finsert_char, Sinsert_char, 1, 3,
-       "(list (or (read-char-by-name \"Insert character (Unicode name or hex): 
\")\
-         (error \"You did not specify a valid character\"))\
-      (prefix-numeric-value current-prefix-arg)\
-      t))",
+       "(list (read-char-by-name \"Insert character (Unicode name or hex): \")\
+              (prefix-numeric-value current-prefix-arg)\
+              t))",
        doc: /* Insert COUNT copies of CHARACTER.
 Interactively, prompt for CHARACTER.  You can specify CHARACTER in one
 of these ways:


reply via email to

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