From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Maus Subject: [PATCH 06/16] Inline function to properly decode utf8 characters in Emacs 22 Date: Sun, 13 Feb 2011 13:01:08 +0100 Message-ID: <1297598478-9925-7-git-send-email-dmaus@ictsoc.de> References: <87d3mwvqwq.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from [140.186.70.92] (port=44001 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PoaeM-0003nj-7b for emacs-orgmode@gnu.org; Sun, 13 Feb 2011 07:01:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PoaeL-00071x-3X for emacs-orgmode@gnu.org; Sun, 13 Feb 2011 07:01:58 -0500 Received: from mail.app1.xlhost.de ([213.202.242.114]:48913 helo=mysql1.xlhost.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PoaeK-00071b-Qn for emacs-orgmode@gnu.org; Sun, 13 Feb 2011 07:01:56 -0500 In-Reply-To: <87d3mwvqwq.fsf@gnu.org> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org, bastien.guerry@wikimedia.fr Cc: David Maus * 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. --- lisp/org-macs.el | 9 ++++++++- lisp/org-protocol.el | 13 +------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/lisp/org-macs.el b/lisp/org-macs.el index 5a56123..4451a54 100644 --- a/lisp/org-macs.el +++ b/lisp/org-macs.el @@ -35,7 +35,14 @@ =20 (eval-and-compile (unless (fboundp 'declare-function) - (defmacro declare-function (fn file &optional arglist fileonly)))) + (defmacro declare-function (fn file &optional arglist fileonly))) + (if (>=3D 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))))) =20 (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 33878a8..eb77f02 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))) =20 -;; 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 (>=3D 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 functi= on encodeURIComponent. E.g. `%C3%B6' is the german Umlaut `=C3=B6'." @@ -357,7 +346,7 @@ Note: this function also decodes single byte encoding= s like (if (> eat 0) (setq eat (- eat 1))) (cond ((=3D 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)))) --=20 1.7.2.3