* [PATCH] Small improvement of maintainability of link escaping
@ 2013-10-05 13:04 Michael Brand
2013-10-05 13:31 ` Michael Brand
2013-11-17 12:04 ` Michael Brand
0 siblings, 2 replies; 5+ messages in thread
From: Michael Brand @ 2013-10-05 13:04 UTC (permalink / raw)
To: Org Mode
[-- Attachment #1: Type: text/plain, Size: 232 bytes --]
Hi all
I would like to ask to review and apply the attached patch. It is to
have a timely separatation from a related change that I will suggest
with an ERT in a later patch: Just add "+" to
org-link-escape-chars-browser.
Michael
[-- Attachment #2: 0001-org-table-transpose-table-at-point-Preserve-indentat.patch.txt --]
[-- Type: text/plain, Size: 2090 bytes --]
From 119aad10f2144a1397f2b034bef46dc891dbae5a Mon Sep 17 00:00:00 2001
From: Michael Brand <michael.ch.brand@gmail.com>
Date: Mon, 30 Sep 2013 20:32:29 +0200
Subject: [PATCH] org-table-transpose-table-at-point: Preserve indentation and
point
* lisp/org-table.el (org-table-transpose-table-at-point): Preserve
indentatinon of first row. Restore point to transposed field in
transposed table.
---
lisp/org-table.el | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/lisp/org-table.el b/lisp/org-table.el
index 5bc754c..7be77cc 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -1834,7 +1834,7 @@ blindly applies a recipe that works for simple tables."
(goto-char beg)))))
(defun org-table-transpose-table-at-point ()
- "Transpose orgmode table at point and eliminate hlines.
+ "Transpose Org table at point and eliminate hlines.
So a table like
| 1 | 2 | 4 | 5 |
@@ -1849,9 +1849,11 @@ will be transposed as
| 4 | c | g |
| 5 | d | h |
-Note that horizontal lines disappeared."
+Note that horizontal lines disappear."
(interactive)
(let* ((table (delete 'hline (org-table-to-lisp)))
+ (dline_old (org-table-current-line))
+ (col_old (org-table-current-column))
(contents (mapcar (lambda (p)
(let ((tp table))
(mapcar
@@ -1861,10 +1863,17 @@ Note that horizontal lines disappeared."
(setq tp (cdr tp))))
table)))
(car table))))
- (delete-region (org-table-begin) (org-table-end))
- (insert (mapconcat (lambda(x) (concat "| " (mapconcat 'identity x " | " ) " |\n" ))
- contents ""))
- (org-table-align)))
+ (goto-char (org-table-begin))
+ (re-search-forward "|")
+ (backward-char)
+ (delete-region (point) (org-table-end))
+ (insert (mapconcat
+ (lambda(x)
+ (concat "| " (mapconcat 'identity x " | " ) " |\n" ))
+ contents ""))
+ (org-table-goto-line col_old)
+ (org-table-goto-column dline_old))
+ (org-table-align))
;;;###autoload
(defun org-table-wrap-region (arg)
--
1.7.12.4 (Apple Git-37)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Small improvement of maintainability of link escaping
2013-10-05 13:04 [PATCH] Small improvement of maintainability of link escaping Michael Brand
@ 2013-10-05 13:31 ` Michael Brand
2013-10-16 13:49 ` Michael Brand
2013-11-17 12:04 ` Michael Brand
1 sibling, 1 reply; 5+ messages in thread
From: Michael Brand @ 2013-10-05 13:31 UTC (permalink / raw)
To: Org Mode
[-- Attachment #1: Type: text/plain, Size: 97 bytes --]
Sorry, I attached the wrong patch (the other one that is waiting in
another thread), here again.
[-- Attachment #2: 0001-Small-improvement-of-maintainability-of-link-escapin.patch.txt --]
[-- Type: text/plain, Size: 5047 bytes --]
From 6d5f603058211ade3b5db118cb3a7d04fbf52a6e Mon Sep 17 00:00:00 2001
From: Michael Brand <michael.ch.brand@gmail.com>
Date: Sat, 5 Oct 2013 15:00:25 +0200
Subject: [PATCH] Small improvement of maintainability of link escaping
* lisp/org.el (org-link-escape-chars): Add comment with escape numbers
alphabetically ordered.
(org-link-escape-chars-browser): Add comment with escape numbers.
(org-link-escape): Use better readable char constant instead of number
constant for percent char.
(org-link-escape-browser): New function to substitute duplicate source
code.
(org-open-at-point): Substitute duplicate source code.
* testing/README: Make comment in source code example clearer.
* testing/lisp/test-org.el (test-org/org-link-escape-chars-browser):
Change URL to real use case and use the new function
`org-link-escape-browser'.
---
lisp/org.el | 32 ++++++++++++++------------------
testing/README | 4 ++--
testing/lisp/test-org.el | 8 +++++---
3 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index 5ff9969..9149441 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -9732,11 +9732,13 @@ according to FMT (default from `org-email-link-description-format')."
"]"))
(defconst org-link-escape-chars
- '(?\ ?\[ ?\] ?\; ?\= ?\+)
+ ;;%20 %2B %3B %3D %5B %5D
+ '(?\ ?\+ ?\; ?\= ?\[ ?\])
"List of characters that should be escaped in link.
This is the list that is used for internal purposes.")
(defconst org-link-escape-chars-browser
+ ;;%20 %22
'(?\ ?\")
"List of escapes for characters that are problematic in links.
This is the list that is used before handing over to the browser.")
@@ -9758,7 +9760,7 @@ If optional argument MERGE is set, merge TABLE into
(mapconcat
(lambda (char)
(if (or (member char table)
- (and (or (< char 32) (= char 37) (> char 126))
+ (and (or (< char 32) (= char ?\%) (> char 126))
org-url-hexify-p))
(mapconcat (lambda (sequence-element)
(format "%%%.2X" sequence-element))
@@ -9767,6 +9769,13 @@ If optional argument MERGE is set, merge TABLE into
(char-to-string char))) "")
(char-to-string char))) text ""))
+(defun org-link-escape-browser (text)
+ (if (org-string-match-p
+ (concat "[[:nonascii:]" org-link-escape-chars-browser "]")
+ text)
+ (org-link-escape text org-link-escape-chars-browser)
+ text))
+
(defun org-link-unescape (str)
"Unhex hexified Unicode strings as returned from the JavaScript function
encodeURIComponent. E.g. `%C3%B6' is the german o-Umlaut."
@@ -10467,24 +10476,11 @@ application the system uses for this file type."
(apply cmd (nreverse args1))))
((member type '("http" "https" "ftp" "news"))
- (browse-url
- (concat type ":"
- (if (org-string-match-p
- (concat "[[:nonascii:]"
- org-link-escape-chars-browser "]")
- path)
- (org-link-escape path org-link-escape-chars-browser)
- path))))
+ (browse-url (concat type ":" (org-link-escape-browser path))))
((string= type "doi")
- (browse-url
- (concat org-doi-server-url
- (if (org-string-match-p
- (concat "[[:nonascii:]"
- org-link-escape-chars-browser "]")
- path)
- (org-link-escape path org-link-escape-chars-browser)
- path))))
+ (browse-url (concat org-doi-server-url
+ (org-link-escape-browser path))))
((member type '("message"))
(browse-url (concat type ":" path)))
diff --git a/testing/README b/testing/README
index 9601ea7..e25a109 100644
--- a/testing/README
+++ b/testing/README
@@ -64,9 +64,9 @@ load and run the test suite with the following commands.
Use this as a demo example of a failing test
#+BEGIN_SRC emacs-lisp
(ert-deftest test-org/org-link-escape-ascii-character-demo-of-fail ()
- (should (string= "%5B" ;; expected is right
+ (should (string= "%5B" ;; expecting %5B is right
(org-link-escape "[")))
- (should (string= "%5C" ;; expected is wrong, "%5D" would be right
+ (should (string= "%5C" ;; expecting %5C is wrong, %5D right
(org-link-escape "]"))))
#+END_SRC
or evaluate the ert-deftest form of the test you want to run. Then
diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el
index b6c5558..32fa69e 100644
--- a/testing/lisp/test-org.el
+++ b/testing/lisp/test-org.el
@@ -524,9 +524,11 @@ http://article.gmane.org/gmane.emacs.orgmode/21459/"
"Escape a URL to pass to `browse-url'."
(should
(string=
- "http://some.host.com/search?q=%22Org%20mode%22"
- (org-link-escape "http://some.host.com/search?q=\"Org mode\""
- org-link-escape-chars-browser))))
+ (concat "http://lists.gnu.org/archive/cgi-bin/namazu.cgi?query="
+ "%22Release%208.2%22&idxname=emacs-orgmode")
+ (org-link-escape-browser
+ (concat "http://lists.gnu.org/archive/cgi-bin/namazu.cgi?query="
+ "\"Release 8.2\"&idxname=emacs-orgmode")))))
\f
--
1.7.12.4 (Apple Git-37)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Small improvement of maintainability of link escaping
2013-10-05 13:31 ` Michael Brand
@ 2013-10-16 13:49 ` Michael Brand
2013-10-17 5:02 ` Carsten Dominik
0 siblings, 1 reply; 5+ messages in thread
From: Michael Brand @ 2013-10-16 13:49 UTC (permalink / raw)
To: Org Mode
Hi all
On Sat, Oct 5, 2013 at 3:31 PM, Michael Brand
<michael.ch.brand@gmail.com> wrote:
> Sorry, I attached the wrong patch (the other one that is waiting in
> another thread), here again.
I would like to remind to review and apply the patch attached on
[2013-10-05 Sat] to this thread
(0001-Small-improvement-of-maintainability-of-link-escapin.patch.txt).
Michael
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Small improvement of maintainability of link escaping
2013-10-16 13:49 ` Michael Brand
@ 2013-10-17 5:02 ` Carsten Dominik
0 siblings, 0 replies; 5+ messages in thread
From: Carsten Dominik @ 2013-10-17 5:02 UTC (permalink / raw)
To: Michael Brand; +Cc: Org Mode
[-- Attachment #1: Type: text/plain, Size: 538 bytes --]
Hi Michael,
applied, sorry for the delay, and thanks!
- Carsten
On 16.10.2013, at 15:49, Michael Brand <michael.ch.brand@gmail.com> wrote:
> Hi all
>
> On Sat, Oct 5, 2013 at 3:31 PM, Michael Brand
> <michael.ch.brand@gmail.com> wrote:
>> Sorry, I attached the wrong patch (the other one that is waiting in
>> another thread), here again.
>
> I would like to remind to review and apply the patch attached on
> [2013-10-05 Sat] to this thread
> (0001-Small-improvement-of-maintainability-of-link-escapin.patch.txt).
>
> Michael
>
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Small improvement of maintainability of link escaping
2013-10-05 13:04 [PATCH] Small improvement of maintainability of link escaping Michael Brand
2013-10-05 13:31 ` Michael Brand
@ 2013-11-17 12:04 ` Michael Brand
1 sibling, 0 replies; 5+ messages in thread
From: Michael Brand @ 2013-11-17 12:04 UTC (permalink / raw)
To: Org Mode
On Sat, Oct 5, 2013 at 3:04 PM, Michael Brand
<michael.ch.brand@gmail.com> wrote:
> [...] related change that I will suggest with an ERT in a later
> patch: Just add "+" to org-link-escape-chars-browser.
For the records: This approach is wrong, for the better one see
http://lists.gnu.org/archive/html/emacs-orgmode/2013-11/msg00686.html
Michael
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-11-17 12:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-05 13:04 [PATCH] Small improvement of maintainability of link escaping Michael Brand
2013-10-05 13:31 ` Michael Brand
2013-10-16 13:49 ` Michael Brand
2013-10-17 5:02 ` Carsten Dominik
2013-11-17 12:04 ` Michael Brand
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).