Ver código fonte

Inline function to properly decode utf8 characters in Emacs 22

* org-macs.el (org-char-to-string): Inline function to properly decode
utf8 characters in Emacs 22.  Moved and renamed from org-protocol.el.

* org-protocol.el (org-protocol-unhex-compound): Use renamed inline
function.
David Maus 14 anos atrás
pai
commit
465940d6c2
2 arquivos alterados com 9 adições e 13 exclusões
  1. 8 1
      lisp/org-macs.el
  2. 1 12
      lisp/org-protocol.el

+ 8 - 1
lisp/org-macs.el

@@ -35,7 +35,14 @@
 
 (eval-and-compile
   (unless (fboundp 'declare-function)
-    (defmacro declare-function (fn file &optional arglist fileonly))))
+    (defmacro declare-function (fn file &optional arglist fileonly)))
+  (if (>= emacs-major-version 23)
+      (defsubst org-char-to-string(c)
+	"Defsubst to decode UTF-8 character values in emacs 23 and beyond."
+	(char-to-string c))
+    (defsubst org-char-to-string (c)
+      "Defsubst to decode UTF-8 character values in emacs 22."
+      (string (decode-char 'ucs c)))))
 
 (declare-function org-add-props "org-compat" (string plist &rest props))
 (declare-function org-string-match-p "org-compat" (&rest args))

+ 1 - 12
lisp/org-protocol.el

@@ -292,17 +292,6 @@ part."
 	  (mapcar 'org-protocol-unhex-string split-parts))
       split-parts)))
 
-;; This inline function is needed in org-protocol-unhex-compound to do
-;; the right thing to decode UTF-8 char integer values.
-(eval-when-compile
-  (if (>= emacs-major-version 23)
-      (defsubst org-protocol-char-to-string(c)
-	"Defsubst to decode UTF-8 character values in emacs 23 and beyond."
-	(char-to-string c))
-    (defsubst org-protocol-char-to-string (c)
-      "Defsubst to decode UTF-8 character values in emacs 22."
-      (string (decode-char 'ucs c)))))
-
 (defun org-protocol-unhex-string(str)
   "Unhex hexified unicode strings as returned from the JavaScript function
 encodeURIComponent. E.g. `%C3%B6' is the german Umlaut `ö'."
@@ -357,7 +346,7 @@ Note: this function also decodes single byte encodings like
 	(if (> eat 0) (setq eat (- eat 1)))
 	(cond
 	 ((= 0 eat)                         ;multi byte
-	  (setq ret (concat ret (org-protocol-char-to-string sum)))
+	  (setq ret (concat ret (org-char-to-string sum)))
 	  (setq sum 0))
 	 ((not bytes)                       ; single byte(s)
 	  (setq ret (org-protocol-unhex-single-byte-sequence hex))))