org-habit.el: New file, which implements code to build a "habit
consistency graph".
org-agenda.el (org-agenda-get-deadlines)
(org-agenda-get-scheduled): Display consistency graphs when outputting
habits into the agenda. The graphs are always relative to the current
time.
(org-format-agenda-item): Added new parameter `habitp', which indicates
whether we are formatting a habit or not. Do not display "extra"
leading information if habitp is true.
(org-repeat-re): Improved regexp to include .+ and ++ leaders for repeat
strings.
(org-get-repeat): Now takes a string parameter `tagline', so the caller
can obtain the SCHEDULED repeat, or the DEADLINE repeat.
(org-clock-resolve-clock): New function that resolves a clock to a
specific time, closing or resuming as need be, and possibly even
starting a new clock.
(org-clock-resolve): New function used by `org-resolve-clocks' that sets
up for the call to `org-clock-resolve-clock'. It determines the time to
resolve to based on a single-character selection from the user to either
keep time, subtract away time or cancel the clock.
(org-resolve-clocks): New user command which resolves dangling clocks --
that is, open but not active -- anywhere in the file list returned by
`org-files-list'.
(org-clock-in): Automatically resolve dangling clocks whenever a user
clocks in.
(org-clock-cancel): If the user cancels the solely clock in a LOGBOOK,
remove the empty drawer.
(org-files-list): New utility function for returning a list of all open
org-mode buffers, plus all files used to build the agenda buffer. Note
that not all the files will necessarily be visited by a buffer at time
of call.
(org-entry-beginning-position): Like the function
`line-beginning-position', this inline function returns the beginning
position of the current heading/entry.
(org-entry-end-position): Like the function `line-end-position', this
inline function returns the end position of the current heading/entry.
PT writes:
> Currently, I'm using Google Calendar and it's quick add syntax is very
> convenient:
>
> http://www.google.com/support/calendar/bin/answer.py?hl=en&answer=36604#text
>
>
> Of course, Org has similar capabilites, but I found one thing which
> google calendar does better: if it's 4pm and I add an event for 8am
> then GCal schedules it for 8am tomorrow.
>
> Org, on the the other hand, schedules it for 8am today even if that
> time is already passed.
>
> I never add past events and I think it's quite atypical. Shouldn't be
> an option similar to org-read-date-prefer-future for times too, so
> that timestamps also prefer the future when no date given?
This is now possible, but it is not the default. You need to set
(setq org-read-date-prefer-future 'time)
priority
So far the headline had to match the one specified in the template
exactly, except for tags. Now a TODO keyword and a priority can be
added, and the headline will still be found.
Reported by Samuel Wales and Bernt Hansen.
Peter Westlake writes:
> Could I request this as a small feature enhancement, please?
> Commands like org-refile have an agenda equivalent so that
> the same keys work in the agenda, and it would be very nice
> to be able to store a link to an item that way as well.
When odd levels are being used, change the interpretation of a
numerical arg to S-TAB.
Michael Brand writes:
> I like the org-indent-mode with the soft-indentation but even more I
> like the hard-indentation with `#+STARTUP: odd hidestars' instead for
> which I have a question.
>
> This is the content of the example file oddeven:
> -*- mode: org -*-
> #+STARTUP: oddeven hidestars content
> * 1 Org Mode
> ** 1.1 Introduction
> *** 1.1.1 Installation
>
> This is the content of the example file odd:
> -*- mode: org -*-
> #+STARTUP: odd hidestars content
> * 1 Org Mode
> *** 1.1 Introduction
> ***** 1.1.1 Installation
>
> The different _Emacs-faces_ (colors) for the heading levels are the same
> when comparing the two files. This Emacs-internal adaptation I
> appreciate a lot.
>
> C-u 2 S-Tab shows _two_ levels with the file oddeven but only _one_ with
> the file odd. Is this how it is intended to work for the file odd?
org.el (org-offer-links-in-entry): Don't use "Select link" as a prompt
in the temporary window.
org-agenda.el (org-agenda-bulk-mark): Use a slightly soberer prefix for
marked entries in the agenda view.
Matt Lundin writes:
> When I call org-remember or org-store-link above the first headline in
> an org buffer, I receive the following error message:
>
> Before first headline at position 1 in buffer index.org
>
> It seems that either org-remember or org-store-link (or both) calls
> org-back-to-heading in order to grab the relevant heading for
> annotation. As a result, if I try to store a link above the first
> heading, emacs spits out the error message above because there is no
> heading to return to.
>
> Is this the intended behavior? Sometimes I prefer to create a link to
> the file as a whole rather than to a particular headline. E.g., I might
> want to create a todo to organize notes.org, which is not an agenda
> file. In this instance, it does not matter whether org-remember creates
> a link to a particular headline. In fact, I would prefer a link to the
> file as a whole and thus expect to be able to store a link while on the
> first empty line of the file or on #+TITLE.
Tassilo Horn writes:
> When I want to set a tag using `C-c C-q TAB' I get a iswitchb completion
> prompt, cause org-completion-use-iswitchb is t. I also use iswitchb's
> virtual files feature (iswitchb-use-virtual-buffers set to t), which
> includes files that aren't opened in a buffer, but are in the recentf
> list. This is a cool thing when switching buffers (I barely use C-x C-f
> anymore and switch to the virtual buffer instead), but totally useless
> and annoying for tab completion in org.
>
> So when completing anything (files/tags/...) in org with iswitchb,
> switchb-use-virtual-buffers should be let-bound to nil before.
PT writes:
> I tried this new setting with 6.30 and it works well, thanks for
> this.
>
> The only strange case is when a header line doesn't have any
> content, only empty lines.
>
> So if there are 2 empty lines between headers
>
> * header1
>
>
> * header2
>
>
> Then the first empty line after header1 is folded regardless of
> the -1 setting. If I understand the feature correctly no folding
> should occur in this case either.
The category can contain a bracket link. This commit makes sure that
the prefix in the agenda looks OK if there is a link, and that the
link is accessible with `C-c C-o 0'.
Karl Stump writes:
> Table Editing Cycle With Multiple Windows On One Buffer Does Not
> Return to Start State
>
> When I have two windows open on two buffers, one to a table in a
> file that I'm editing, the other to some other file of interest,
> the editing cycle of C-` ... C-c C-c works great, meaning that
> when the cycle is finished, the windows are restored to the start
> state.
>
> But when I have two windows open on the same buffer, one window
> on the table, and the other window somewhere else, the editing
> cycle does not restore to the beginning state.
Bernt Hansen writes:
> I ran into this a few weeks ago and it's been bugging me.
>
> I reorganized a project which had a deadline on the main task and moved
> it down to multiple subtasks in the project.
>
> ,----
> | * TODO Project task
> | DEADLINE: <2009-08-28 Fri>
> | ** TODO Step 1
> | ** TODO Step 2
> | ...
> | ** TODO Step n
> `----
>
> I decided the DEADLINE really doesn't belong at the top -- since the
> deadline was for step 2 (and a few other tasks)... so I moved it the
> hard way. Instead of cutting it out and pasting it back in the right
> tree I just used C-c C-d and entered the same date on step 2 (because I
> was moving the date a bit from the original date).
>
> ,----
> | * TODO Project task
> | DEADLINE: <2009-08-28 Fri>
> | ** TODO Step 1
> | ** TODO Step 2
> | DEADLINE: <2009-08-28 Fri>
> | ...
> | ** TODO Step n
> `----
>
> Now to remove the deadline from the Project task I just did C-u C-c C-d
> on the Project task but this removed all the deadlines in the subtree
> and my deadline in Step 2 (and others) is now gone.
>
> AFAICT SCHEDULED: works the same way. This doesn't feel natural to me
> but I know it is documented this way.
>
> Does the way it works now really make sense or would just removing the
> deadline from the task you are working on be better.
>
> C-c C-d sets a deadline just for this task, so it felt natural to me
> that C-u C-c C-d would remove the deadline just for this task -- but
> that's what I get for not reading the manual (or forgetting since I read
> it ;)
Bernt Hansen writes:
> I think I have something that is reproducible.
>
> ,----[ /tmp/x.org ]
> |
> | * Refile Targets
> | ** TODO One
> | ** TODO Two
> | ** TODO Three
> | ** TODO Four
> | ** TODO Five
> | ** TODO Six
> | *** TODO Six.one
> | *** TODO Six.two
> | **** TODO Clock me
> | ** TODO Seven
> | ** TODO Eight
> | ** TODO Nine
> | ** TODO Ten
> | * Refile Tasks
> | ** TODO Refile Me
> `----
>
> ,----[ /tmp/minimal.emacs ]
> | (add-to-list 'load-path (expand-file-name "~/git/org-mode/lisp"))
> | (add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode))
> | (require 'org-install)
> |
> | (global-set-key "\C-cl" 'org-store-link)
> | (global-set-key "\C-ca" 'org-agenda)
> | (global-set-key "\C-cb" 'org-iswitchb)
> |
> | (setq org-log-done (quote time))
> | (setq org-log-into-drawer t)
> | (setq org-agenda-files '("/tmp/x.org"))
> | (setq user-init-file "/tmp/custom.el")
> |
> | (setq org-refile-allow-creating-parent-nodes nil)
> | (setq org-refile-targets (quote ((nil :maxlevel . 2) (org-agenda-files :maxlevel . 2))))
> | (setq org-refile-use-outline-path nil)
> | (setq org-todo-keywords (quote ((sequence "TODO(t!)" "STARTED(s!)" "|" "DONE(d!/!)") (sequence "WAITING(w@/!)" "SOMEDAY(S!)" "OPEN(O@)" "|" "CANCELLED(c@/!)") (sequence "QUOTE(q!)" "QUOTED(Q!)" "|" "APPROVED(A@)" "EXPIRED(E@)" "REJECTED(R@)"))))
> `----
>
> Steps to reproduce:
>
> 1. Save the files /tmp/x.org and /tmp/minimal.emacs
> 2. emacs -q -l /tmp/minimal.emacs /tmp/x.org
> 3. Go to CONTENTS view with S-TAB twice
> 4. Put point on **** TODO Clock Me
> 5. Clock in the task with C-c C-x C-i
>
> This adds a logbook drawer with the clock
>
> 6. Fold to OVERVIEW view with S-TAB
>
> So it looks like this
>
> ,----[ x.org folder ]
> |
> | * Refile Targets...
> | * Refile Tasks...
> `----
>
> 7. M-x org-clock-goto
>
> This reveals the buffer like so:
>
> ,----
> |
> | * Refile Targets...
> | **** TODO Clock me
> | :LOGBOOK:...
> | ...
> | * Refile Tasks...
> `----
>
> I think this is the critical step.
>
> 8. Put point on Refile Tasks
> 9. Show task to refile with TAB
> 10. Put point on ** TODO Refile Me
> 11. Refile to Ten with C-c C-w Ten RET
> 12. Put point on Refile Me
> 13. Reveal with C-c C-r
>
> Shows that we are under TODO Ten. So far so good
>
> ,----
> |
> | * Refile Targets...
> | **** TODO Clock me
> | :LOGBOOK:...
> | ...
> | ** TODO Ten
> | *** TODO Refile Me
> | * Refile Tasks
> `----
>
> 14. Now repeat steps 10-13 but refile to 'Two' instead of 'Ten'
>
> This goes to the wrong place. This files under Nine for me
>
> ,----
> |
> | * Refile Targets...
> | **** TODO Clock me
> | :LOGBOOK:...
> | ...
> | ** TODO Nine
> | *** TODO Refile Me
> | ** TODO Ten
> | * Refile Tasks
> `----
>
> 15. Repeat steps 10-13 with refiling to 'Two' each time
>
> This moves Refile Me up one task at a time until it gets to Two
> ie. it refiles to Eight, then Seven, then Six, then Five, then
> Four then Three, then Two.
>
> If you show contents view with S-TAB and then refile it goes to the
> right place immediately. So this definitely has something to do with
> the folded view of the org file.
>
Longmin Wang writes:
> Hi,
>
> I am using org-mode integrated in emacs 23.1.1. When I export
> the org file to html file, the enumerations will be interrupted
> by some displayed math formulae. For example, the codes
>
> 1. The first.
>
> 2. A displayed formula: \[ \int_0^{+\infty} \frac{c}{1+x^2}dx=1. \]
>
> 3. The third.
>
> will generate
>
> 1. The first.
> 2. A displayed formula:
> <the formula>
> 1. The third.
>
> Is it a bug? Or I made some mistakes in the source file.
`org-cycle-separator-lines' can now get a negative value, to indicate
that, if the number of empty lines before a visible entry is greater
than the specified number, then *all* empty lines should be shown.
Nick Dokos writes:
> I define a LaTeX macro at the top of my document, like so:
>
> ,----
> | ...
> | #+LATEX_HEADER: \newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
> | #+LATEX_HEADER: #1\ignorespaces
> | #+LATEX_HEADER: }
> | ...
> `----
>
> and export - I get the following inserted:
>
> ,----
> | ...
> | \begin{document}
> |
> |
> |
> |
> |
> | \$\^{}{1}\$ FOOTNOTE DEFINITION NOT FOUND: 1
> | ...
> `----
>
> Obviously, the macro argument spec is mistaken for a footnote.
Adds the output of 'git describe' to the org-version string if we are running
from a git repository. This identifies exactly what commit is checked out in
the org-mode git repository when reporting the org-mode version number.
org-version returns something like:
Org-mode version 6.29trans (release_6.29c.42.g5996)
which shows 6.29trans (somewhere after the last release tag) which
is 42 commits after release_6.29c at git commit 5996.
The git describe information is not included if org mode is not
running from a git repository.
An entry `#+TODO:' without content make `M-x org-mode' fail.
While it may cause problems to have no TODO keywords defined, this
should not make entering the mode fail.
It is possible that the regular expressions for LaTeX snippets match
at nested locations. For example, Nick Dokos submitted this:
,----
| #+LaTeX_HEADER: \usepackage{amsmath}
|
| * foo
|
| \[
| \begin{matrix}
| 1&d\\
| d&d\\
| \end{matrix}
| \]
|
`----
where the snippet regexps match at \[ ... \] and also at
\\begin{matrix}.
This would lead to two nested overlays being placed. With this
commit, only the outer one will remain.
Leo writes:
> Hi there,
>
> ,----[ (info "(org)Structure editing") ]
> | `C-<RET>'
> | Just like `M-<RET>', except when adding a new heading below the
> | current heading, the new heading is placed after the body instead
> | of before it. This command works from anywhere in the entry.
> `----
>
> Inside a substree and with the point at the beginning of a line, C-RET
> turns the current line into a heading. In the following example, ><
> indicates where the point is.
>
> ----------------
> * Sample
> < This is not a heading
> ----------------
>
> After C-RET, it changes to
> ----------------
> * Sample
> * This is not a heading
> ----------------
>
> I can reproduce this with org 6.29c as included in Emacs. Can someone
> else reproduce this bug?