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.
This commit is contained in:
David Maus 2010-11-21 11:20:40 +01:00
parent 27915744a2
commit 465940d6c2
2 changed files with 9 additions and 13 deletions

View File

@ -35,7 +35,14 @@
(eval-and-compile (eval-and-compile
(unless (fboundp 'declare-function) (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-add-props "org-compat" (string plist &rest props))
(declare-function org-string-match-p "org-compat" (&rest args)) (declare-function org-string-match-p "org-compat" (&rest args))

View File

@ -292,17 +292,6 @@ part."
(mapcar 'org-protocol-unhex-string split-parts)) (mapcar 'org-protocol-unhex-string split-parts))
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) (defun org-protocol-unhex-string(str)
"Unhex hexified unicode strings as returned from the JavaScript function "Unhex hexified unicode strings as returned from the JavaScript function
encodeURIComponent. E.g. `%C3%B6' is the german Umlaut `ö'." 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))) (if (> eat 0) (setq eat (- eat 1)))
(cond (cond
((= 0 eat) ;multi byte ((= 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)) (setq sum 0))
((not bytes) ; single byte(s) ((not bytes) ; single byte(s)
(setq ret (org-protocol-unhex-single-byte-sequence hex)))) (setq ret (org-protocol-unhex-single-byte-sequence hex))))