ソースを参照

org.el (org-sort-remove-invisible): Truly returns the visible part of the string

* org.el (org-sort-remove-invisible): Use defsust.  Do not
only check against invisible links, truly returns the visible
part of the string.

Thanks to François Pinard for suggesting this.
Bastien Guerry 12 年 前
コミット
30d6dc8baa
1 ファイル変更7 行追加8 行削除
  1. 7 8
      lisp/org.el

+ 7 - 8
lisp/org.el

@@ -8319,14 +8319,13 @@ Optional argument WITH-CASE means sort case-sensitively."
    (t
     (org-call-with-arg 'org-sort-entries with-case))))
 
-(defun org-sort-remove-invisible (s)
-  "Remove invisible links from string S."
-  (remove-text-properties 0 (length s) org-rm-props s)
-  (while (string-match org-bracket-link-regexp s)
-    (setq s (replace-match (if (match-end 2)
-			       (match-string 3 s)
-			     (match-string 1 s)) t t s)))
-  s)
+(defsubst org-sort-remove-invisible (s)
+  "Return the visible string from string S."
+  (let (result)
+    (dotimes (c (length s))
+      (let ((st (substring s c (1+ c))))
+	(unless (get-text-property 0 'invisible st) (push st result))))
+    (mapconcat 'identity (reverse result) "")))
 
 (defvar org-priority-regexp) ; defined later in the file