Mercurial > emacs
changeset 70953:971aad463b69
(org-next-item, org-previous-item): Emit more compact
error message.
(org-tags-view): Refresh category table in each file.
(org-table-justify-field-maybe): Removed superfluous arguments
to
`format'.
(org-export-as-html): Insert "<p>" before postamble.
(org-paste-subtree, org-kill-is-subtree-p): Check for empty
kill
ring.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Fri, 26 May 2006 05:37:59 +0000 |
parents | a887dafc4dd1 |
children | 973afe644ddf |
files | lisp/textmodes/org.el |
diffstat | 1 files changed, 47 insertions(+), 85 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/textmodes/org.el Fri May 26 05:37:27 2006 +0000 +++ b/lisp/textmodes/org.el Fri May 26 05:37:59 2006 +0000 @@ -5,7 +5,7 @@ ;; Author: Carsten Dominik <dominik at science dot uva dot nl> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ -;; Version: 4.33 +;; Version: 4.34 ;; ;; This file is part of GNU Emacs. ;; @@ -30,16 +30,21 @@ ;; Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing ;; project planning with a fast and effective plain-text system. ;; -;; Org-mode develops organizational tasks around a NOTES file that contains -;; information about projects as plain text. Org-mode is implemented on top -;; of outline-mode - ideal to keep the content of large files well structured. -;; It supports ToDo items, deadlines and time stamps, which can be extracted -;; to create a daily/weekly agenda that also integrates the diary of the Emacs -;; calendar. Tables are easily created with a built-in table editor. Plain -;; text URL-like links connect to websites, emails (VM, RMAIL, WANDERLUST), -;; Usenet messages (Gnus), BBDB entries, and any files related to the -;; projects. For printing and sharing of notes, an Org-mode file (or a part -;; of it) can be exported as a structured ASCII file, or as HTML. +;; Org-mode develops organizational tasks around NOTES files that contain +;; information about projects as plain text. Org-mode is implemented on +;; top of outline-mode, which makes it possible to keep the content of +;; large files well structured. Visibility cycling and structure editing +;; help to work with the tree. Tables are easily created with a built-in +;; table editor. Org-mode supports ToDo items, deadlines, time stamps, +;; and scheduling. It dynamically compiles entries into an agenda that +;; utilizes and smoothly integrates much of the Emacs calendar and diary. +;; Plain text URL-like links connect to websites, emails, Usenet +;; messages, BBDB entries, and any files related to the projects. For +;; printing and sharing of notes, an Org-mode file can be exported as a +;; structured ASCII file, as HTML, or (todo and agenda items only) as an +;; iCalendar file. It can also serve as a publishing tool for a set of +;; linked webpages. +;; ;; ;; Installation ;; ------------ @@ -64,8 +69,11 @@ ;; ;; (require 'org-install) ;; -;; This setup will put all files with extension ".org" into Org-mode. As -;; an alternative, make the first line of a file look like this: +;; +;; Activation +;; ---------- +;; The setup above will put all files with extension ".org" into Org-mode. +;; As an alternative, make the first line of a file look like this: ;; ;; MY PROJECTS -*- mode: org; -*- ;; @@ -80,8 +88,11 @@ ;; excellent reference card made by Philip Rooke. This card can be found ;; in the etc/ directory of Emacs 22. ;; -;; Changes since version 4.10: -;; --------------------------- +;; Recent changes +;; -------------- +;; Version 4.34 +;; - Bug fixes. +;; ;; Version 4.33 ;; - New commands to move through plain lists: S-up and S-down. ;; - Bug fixes and documentation update. @@ -133,46 +144,6 @@ ;; - New option `org-agenda-todo-list-sublevels' to turn off listing TODO ;; entries that are sublevels of another TODO entry. ;; -;; Version 4.26 -;; - Bug fixes. -;; -;; Version 4.25 -;; - Revision of the font-lock faces section, with better tty support. -;; - TODO keywords in Agenda buffer are fontified. -;; - Export converts links between .org files to links between .html files. -;; - Better support for bold/italic/underline emphasis. -;; -;; Version 4.24 -;; - Bug fixes. -;; -;; Version 4.23 -;; - Bug fixes. -;; -;; Version 4.22 -;; - Bug fixes. -;; - In agenda buffer, mouse-1 no longer follows link. -;; See `org-agenda-mouse-1-follows-link' and `org-mouse-1-follows-link'. -;; -;; Version 4.20 -;; - Links use now the [[link][description]] format by default. -;; When inserting links, the user is prompted for a description. -;; - If a link has a description, only the description is displayed -;; the link part is hidden. Use C-c C-l to edit the link part. -;; - TAGS are now bold, but in the same color as the headline. -;; - The width of a table column can be limited by using a field "<N>". -;; - New structure for the customization tree. -;; - Bug fixes. -;; -;; Version 4.13 -;; - The list of agenda files can be maintainted in an external file. -;; - Bug fixes. -;; -;; Version 4.12 -;; - Templates for remember buffer. Note that the remember setup changes. -;; To set up templates, see `org-remember-templates'. -;; - The time in new time stamps can be rounded, see new option -;; `org-time-stamp-rounding-minutes'. -;; - Bug fixes (there are *always* more bugs). ;; ;;; Code: @@ -183,13 +154,9 @@ (require 'time-date) (require 'easymenu) -(defvar calc-embedded-close-formula) ; defined by the calc package -(defvar calc-embedded-open-formula) ; defined by the calc package -(defvar font-lock-unfontify-region-function) ; defined by font-lock.el - ;;; Customization variables -(defvar org-version "4.33" +(defvar org-version "4.34" "The version number of the file org.el.") (defun org-version () (interactive) @@ -2548,17 +2515,20 @@ (concat "\\<\\(" org-scheduled-string "\\|" org-deadline-string "\\|" org-closed-string "\\)" - " *[[<]\\([^]>]+\\)[]>]") ;; FIXME: is this correct? + " *[[<]\\([^]>]+\\)[]>]") org-maybe-keyword-time-regexp (concat "\\(\\<\\(" org-scheduled-string "\\|" org-deadline-string "\\|" org-closed-string "\\)\\)?" - " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^]\r\n>]*?[]>]\\)")) ;; FIXME: is this correct? + " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^]\r\n>]*?[]>]\\)")) (org-set-font-lock-defaults))) ;; Tell the compiler about dynamically scoped variables, ;; and variables from other packages +(defvar calc-embedded-close-formula) ; defined by the calc package +(defvar calc-embedded-open-formula) ; defined by the calc package +(defvar font-lock-unfontify-region-function) ; defined by font-lock.el (defvar zmacs-regions) ; XEmacs regions (defvar original-date) ; dynamically scoped in calendar (defvar org-old-auto-fill-inhibit-regexp) ; local variable used by `orgtbl-mode' @@ -3734,7 +3704,7 @@ (error (substitute-command-keys "The kill is not a (set of) tree(s) - please use \\[yank] to yank anyway"))) - (let* ((txt (or tree (current-kill 0))) + (let* ((txt (or tree (and kill-ring (current-kill 0)))) (^re (concat "^\\(" outline-regexp "\\)")) (re (concat "\\(" outline-regexp "\\)")) (^re_ (concat "\\(" outline-regexp "\\)[ \t]*")) @@ -3797,7 +3767,8 @@ (goto-char (point-min)) (message "Pasted at level %d, with shift by %d levels" new-level shift1))) - (if (and (eq org-subtree-clip (current-kill 0)) + (if (and kill-ring + (eq org-subtree-clip (current-kill 0)) org-subtree-clip-folded) ;; The tree was folded before it was killed/copied (hide-subtree)))) @@ -3809,8 +3780,9 @@ So this will actually accept several entries of equal levels as well, which is OK for `org-paste-subtree'. If optional TXT is given, check this string instead of the current kill." - (let* ((kill (or txt (current-kill 0) "")) - (start-level (and (string-match (concat "\\`" outline-regexp) kill) + (let* ((kill (or txt (and kill-ring (current-kill 0)) "")) + (start-level (and kill + (string-match (concat "\\`" outline-regexp) kill) (- (match-end 0) (match-beginning 0)))) (re (concat "^" outline-regexp)) (start 1)) @@ -3920,7 +3892,7 @@ (setq ind1 (org-get-indentation)) (unless (and (org-at-item-p) (= ind ind1)) (goto-char pos) - (error "This is already the last item in the list")))) + (error "On last item")))) (defun org-previous-item () "Move to the beginning of the previous item in the current plain list. @@ -3941,7 +3913,7 @@ (condition-case nil (org-beginning-of-item) (error (goto-char pos) - (error "This is already the first item in the list"))))) + (error "On first item"))))) (defun org-move-item-down () "Move the plain list item at point down, i.e. swap with following item. @@ -6434,7 +6406,7 @@ 'org-marker marker 'org-hd-marker marker 'priority priority 'category category) (push txt ee) - (if org-agenda-todo-list-sublevels ; FIXME???? Change needed? + (if org-agenda-todo-list-sublevels (goto-char (match-end 1)) (org-end-of-subtree 'invisible)))) (nreverse ee))) @@ -6793,13 +6765,6 @@ (if s1 (setq s1 (org-get-time-of-day s1 'string))) (if s2 (setq s2 (org-get-time-of-day s2 'string)))) -; (when (and (or (eq org-agenda-remove-tags-when-in-prefix t) -; (and org-agenda-remove-tags-when-in-prefix -; org-prefix-has-tag)) -; (string-match ":[a-zA-Z_@0-9:]+:[ \t]*$" txt)) -; (setq txt (replace-match "" t t txt))) - - ;; FIXME!!! (when (string-match "\\([ \t]+\\)\\(:[a-zA-Z_@0-9:]+:\\)[ \t]*$" txt) ;; Tags are in the string (if (or (eq org-agenda-remove-tags-when-in-prefix t) @@ -7596,6 +7561,7 @@ (with-current-buffer buffer (unless (eq major-mode 'org-mode) (error "Agenda file %s is not in `org-mode'" file)) + (setq org-category-table (org-get-category-table)) (save-excursion (save-restriction (if org-respect-restriction @@ -8116,7 +8082,7 @@ (org-search-not-link re4 nil t) (org-search-not-link re5 nil t) ) - (goto-char (match-beginning 1)) ;; Fixme: does every re have group 1? + (goto-char (match-beginning 1)) (goto-char pos) (error "No match"))))) (t @@ -9662,7 +9628,7 @@ n (format f s)) (if new (if (<= (length new) l) ;; FIXME: length -> str-width? - (setq n (format f new t t)) ;; FIXME: t t? + (setq n (format f new)) (setq n (concat new "|") org-table-may-need-update t))) (or (equal n o) (let (org-table-may-need-update) @@ -11021,9 +10987,6 @@ (org-table-get-vertical-vector (match-string 0 form) nil n0)) t t form))) -;; (setq ev (calc-eval (cons form modes) -;; FIXME (if org-table-formula-numbers-only 'num))) - (if lispp (setq ev (eval (eval (read form))) ev (if (numberp ev) (number-to-string ev) ev)) @@ -12761,7 +12724,8 @@ ;; replace "&" by "&", "<" and ">" by "<" and ">" ;; handle @<..> HTML tags (replace "@>..<" by "<..>") - ;; Also handle sub_superscripts and checkboxes FIXME + ;; Also handle sub_superscripts and checkboxes + ;; FIXME: is there no better place for checkboxes (setq line (org-html-expand line)) ;; Format the links @@ -12940,6 +12904,7 @@ head-count) (when (plist-get opt-plist :auto-postamble) + (insert "<p>") (if author (insert (concat (nth 1 lang-words) ": " author "\n"))) (if email (insert (concat "<a href=\"mailto:" email "\"><" email "></a>\n"))) @@ -13208,7 +13173,6 @@ "\\(" (org-create-multibrace-regexp "(" ")" org-match-sexp-depth) "\\)" "\\|" "\\(\\(?:\\*\\|[-+]?[^-+*!@#$%^_ \t\r\n,:\"?<>~;./{}=()]+\\)\\)\\)") -;;;;;;;;;;;;;;;;;;;;;;;;;^ FIXME "The regular expression matching a sub- or superscript.") (defun org-export-html-convert-sub-super (string) @@ -13258,7 +13222,6 @@ (if org-export-with-section-numbers (setq title (concat (org-section-number level) " " title))) (setq level (+ level 1)) - ;; FIXME: here we need to handle the tags, somehow. (when (string-match "\\(:[a-zA-Z0-9_@:]+:\\)[ \t]*$" title) (setq title (replace-match (if org-export-with-tags @@ -14684,6 +14647,5 @@ (run-hooks 'org-load-hook) - ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd ;;; org.el ends here