Hi All, I tend to use a right arrow (→, U2192) from time to time in plain lists to separate normal item from conclusions / next actions etc.:
- Topic - Fact 1 - Fact 2 → Conclusion I would appreciate it if org-mode could support this type of bullet point. The attached patch implements what I had in mind. I'm not sure if the adaptation in /org-cycle-list-bullet/ is useful for others --- I don't use the arrow for many items in a list, but only single ones --- But I included it in the patch for completeness. (Also, there may be better ways to encode unicode chars in regexp than using the utf-8 encoding, that the patch uses.) Cheers, Martin
--- /home/mp26/src/org-mode/lisp/org-list.el 2009-03-13 23:42:05.000000000 +0100 +++ org-list.el 2009-03-13 19:57:51.000000000 +0100 @@ -118,7 +118,7 @@ :type 'integer) (defvar org-list-beginning-re - "^\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) +\\(.*\\)$") + "^\\([ \t]*\\)\\([-+*â]\\|[0-9]+[.)]\\) +\\(.*\\)$") (defcustom org-list-radio-list-templates '((latex-mode "% BEGIN RECEIVE ORGLST %n @@ -158,9 +158,9 @@ (goto-char (point-at-bol)) (looking-at (cond - ((eq llt t) "\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") - ((= llt ?.) "\\([ \t]*\\([-+]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") - ((= llt ?\)) "\\([ \t]*\\([-+]\\|\\([0-9]+))\\)\\|[ \t]+\\*\\)\\( \\|$\\)") + ((eq llt t) "\\([ \t]*\\([-+â]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") + ((= llt ?.) "\\([ \t]*\\([-+â]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") + ((= llt ?\)) "\\([ \t]*\\([-+â]\\|\\([0-9]+))\\)\\|[ \t]+\\*\\)\\( \\|$\\)") (t (error "Invalid value of `org-plain-list-ordered-item-terminator'"))))))) (defun org-at-item-bullet-p () @@ -205,7 +205,7 @@ (looking-at "[ \t]*$"))))) (timerp (and descp (save-match-data - (string-match "^[-+*][ \t]+[0-9]+:[0-9]+:[0-9]+$" + (string-match "^[-+*â][ \t]+[0-9]+:[0-9]+:[0-9]+$" descp)))) (eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*") (match-end 0))) @@ -337,7 +337,7 @@ (condition-case nil (org-back-to-heading t) (error (throw 'exit nil))) (unless (org-entry-get nil "ORDERED") (throw 'exit nil)) - (if (re-search-forward "^[ \t]*[-+*0-9.)] \\[[- ]\\]" end t) + (if (re-search-forward "^[ \t]*[-+*â0-9.)] \\[[- ]\\]" end t) (org-current-line) nil)))))) @@ -360,7 +360,7 @@ (end (move-marker (make-marker) (progn (outline-next-heading) (point)))) (re "\\(\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)\\)") - (re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)") + (re-box "^[ \t]*\\([-+â*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)") (re-find (concat re "\\|" re-box)) beg-cookie end-cookie is-percent c-on c-off lim eline curr-ind next-ind continue-from startsearch @@ -674,7 +674,7 @@ "Cycle through the different itemize/enumerate bullets. This cycle the entire list level through the sequence: - `-' -> `+' -> `*' -> `1.' -> `1)' + `-' -> `+' -> `â' -> `*' -> `1.' -> `1)' If WHICH is a string, use that as the new bullet. If WHICH is an integer, 0 means `-', 1 means `+' etc." @@ -688,11 +688,12 @@ new old) (setq new (cond ((and (numberp which) - (nth (1- which) '("-" "+" "*" "1." "1)")))) + (nth (1- which) '("-" "+" "â" "*" "1." "1)")))) ((string-match "-" current) (if prevp "1)" "+")) ((string-match "\\+" current) - (if prevp "-" (if (looking-at "\\S-") "1." "*"))) - ((string-match "\\*" current) (if prevp "+" "1.")) + (if prevp "-" (if (looking-at "\\S-") "1." "â"))) + ((string-match "â" current) (if prevp "+" "*")) + ((string-match "\\*" current) (if prevp "â" "1.")) ((string-match "\\." current) (if prevp (if (looking-at "\\S-") "+" "*") "1)")) ((string-match ")" current) (if prevp "1." "-")) @@ -929,7 +930,7 @@ ((and (condition-case nil (progn (org-previous-item) t) (error nil)) (or (forward-char 1) t) - (re-search-forward "^\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)" bolpos t)) + (re-search-forward "^\\([ \t]*\\([-+â]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)" bolpos t)) (setq ind-down (org-get-indentation))) ((and (goto-char pos) (org-at-item-p)) @@ -956,8 +957,8 @@ (setq itemsep "[0-9]+\\(?:\\.\\|)\\)" ltype 'ordered)) ((string-match "^.*::" (match-string 0)) - (setq itemsep "[-+]" ltype 'descriptive)) - (t (setq itemsep "[-+]" ltype 'unordered)))) + (setq itemsep "[-+â]" ltype 'descriptive)) + (t (setq itemsep "[-+â]" ltype 'unordered)))) (let* ((indent1 (match-string 1)) (nextitem (save-excursion (save-match-data
_______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode