emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: David Maus <dmaus@ictsoc.de>
To: emacs-orgmode@gnu.org, bastien.guerry@wikimedia.fr
Cc: David Maus <dmaus@ictsoc.de>
Subject: [PATCH 05/16] New optional argument: Merge user table with default table
Date: Sun, 13 Feb 2011 13:01:07 +0100	[thread overview]
Message-ID: <1297598478-9925-6-git-send-email-dmaus@ictsoc.de> (raw)
In-Reply-To: <87d3mwvqwq.fsf@gnu.org>

* org.el (org-link-escape): New optional argument.  Merge user table
with default table.
---
 lisp/org.el |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index cafb673..a29d429 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8554,14 +8554,22 @@ This is the list that is used for internal purposes.")
   "List of escapes for characters that are problematic in links.
 This is the list that is used before handing over to the browser.")
 
-(defun org-link-escape (text &optional table)
+(defun org-link-escape (text &optional table merge)
   "Return percent escaped representation of TEXT.
 TEXT is a string with the text to escape.
 Optional argument TABLE is a list with characters that should be
-escaped.  When nil, `org-link-escape-chars' is used."
+escaped.  When nil, `org-link-escape-chars' is used.
+If optional argument MERGE is set, merge TABLE into
+`org-link-escape-chars'."
   (if (and org-url-encoding-use-url-hexify (not table))
       (url-hexify-string text)
-    (setq table (or table org-link-escape-chars))
+    (cond
+     ((and table merge)
+      (mapc (lambda (defchr)
+	      (unless (member defchr table)
+		(setq table (cons defchr table)))) org-link-escape-chars))
+     ((null table)
+      (setq table org-link-escape-chars)))
     (mapconcat
      (lambda (char)
        (if (or (member char table)
-- 
1.7.2.3

  parent reply	other threads:[~2011-02-13 12:01 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-02 19:37 Improve percent escaping links in Org mode (pull request / OK to push) David Maus
2011-02-12 22:17 ` Bastien
2011-02-13 12:01   ` David Maus
2011-02-13 13:41     ` Bastien
2011-02-14  6:38       ` David Maus
2011-02-14 10:09         ` Bastien
2011-02-13 12:01   ` [PATCH 01/16] Decode single byte sequence if decoding unicode failed David Maus
2011-02-13 12:01   ` [PATCH 02/16] New unicode aware percent encoding algorithm David Maus
2011-02-13 12:01   ` [PATCH 03/16] New format of percent escape table David Maus
2011-02-13 12:01   ` [PATCH 04/16] Fixup doc string David Maus
2011-02-13 12:01   ` David Maus [this message]
2011-02-13 12:01   ` [PATCH 06/16] Inline function to properly decode utf8 characters in Emacs 22 David Maus
2011-02-13 12:01   ` [PATCH 07/16] Unescape functions moved and renamed from org-protocol.el David Maus
2011-02-13 12:01   ` [PATCH 08/16] Declare obsolete & alias to respective org-link-unescape-* functions David Maus
2011-02-13 12:01   ` [PATCH 09/16] Remove obsolete argument in call to org-link-unescape David Maus
2011-02-13 12:01   ` [PATCH 10/16] Use new percent escape character table format David Maus
2011-02-13 12:01   ` [PATCH 11/16] Add percent sign to list of escape chars David Maus
2011-02-13 12:01   ` [PATCH 12/16] Rename lambda argument David Maus
2011-02-13 12:01   ` [PATCH 13/16] Refactor unescaping functions David Maus
2011-02-13 12:01   ` [PATCH 14/16] Always percent escape the percent sign David Maus
2011-02-13 12:01   ` [PATCH 15/16] Use `org-link-unescape' instead of obsolete unhex string function David Maus
2011-02-13 12:01   ` [PATCH 16/16] Throw error if encoding character in utf8 fails David Maus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1297598478-9925-6-git-send-email-dmaus@ictsoc.de \
    --to=dmaus@ictsoc.de \
    --cc=bastien.guerry@wikimedia.fr \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).