diff --git a/lisp/org-macs.el b/lisp/org-macs.el index 97a8fdc06..9c161e325 100644 --- a/lisp/org-macs.el +++ b/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)) diff --git a/lisp/org-protocol.el b/lisp/org-protocol.el index fae48c4dc..6c96cdb81 100644 --- a/lisp/org-protocol.el +++ b/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))))