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:
parent
27915744a2
commit
465940d6c2
|
@ -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))
|
||||||
|
|
|
@ -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))))
|
||||||
|
|
Loading…
Reference in New Issue