At Sun, 13 Mar 2011 14:37:05 +0100, Michael Brand wrote: > > Hi David > > The current version of dmaus/org-check-percent-escapes from Worg > http://orgmode.org/worg/org-hacks.html#check-old-link-escapes > loops forever in the outer while when used on a one line Org buffer > containing just [[http://www.orgmode.org]] except I hack something > like (goto-char end) behind the inner while. What am I doing wrong? > Did anybody else have this issue?
Sorry, my fault. Forgot to move point forward after matching a link.
I pushed this fixed version to Worg:
#+begin_src emacs-lisp
(defun dmaus/org-check-percent-escapes ()
"*Check buffer for possibly problematic old link escapes."
(interactive)
(when (eq major-mode 'org-mode)
(let ((old-escapes '("%20" "%5B" "%5D" "%E0" "%E2" "%E7" "%E8" "%E9"
"%EA" "%EE" "%F4" "%F9" "%FB" "%3B" "%3D" "%2B")))
(unless (boundp 'warning-suppress-types)
(setq warning-suppress-types nil))
(widen)
(show-all)
(goto-char (point-min))
(while (re-search-forward org-any-link-re nil t)
(let ((end (match-end 0)))
(goto-char (match-beginning 0))
(while (re-search-forward "%[0-9a-zA-Z]\\{2\\}" end t)
(let ((escape (match-string-no-properties 0)))
(unless (member (upcase escape) old-escapes)
(warn "Found unknown percent escape sequence %s at buffer %s,
position %d"
escape
(buffer-name)
(- (point) 3)))))
(goto-char end))))))
#+end_src
Best,
-- David
--
OpenPGP... 0x99ADB83B5A4478E6
Jabber.... [email protected]
Email..... [email protected]
pgpyn7kPYCNds.pgp
Description: PGP signature
