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
|
||||
(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))
|
||||
|
|
|
@ -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))))
|
||||
|
|
Loading…
Reference in New Issue