* org-feed.el (org-feed-unescape): New function. Unescape
protected entities.
(org-feed-parse-atom-entry): Use function for atom:content
type text and html.
* lisp/org.el (org-time-string-to-absolute): Ignore cyclic repeater
when displaying items on todays agenda date.
Ignore the cyclic repeater when displaying items on today's agenda
date. If you have a weekly task and miss the date the agenda view
will show more than a week late now instead of resetting on the
cyclic repeating date. This makes it much more obvious when you
missed a repeating task after the repeater.
* lisp/org-agenda.el (org-agenda-get-progress): Avoid reusing previous
value of EXTRA.
Sebastien Vauban writes:
> Finally reporting the following bug. Has been there for as long as I can
> remember, but never did report it when seeing it. And kept forgetting.
>
> So, now...
>
> --8<---------------cut here---------------start------------->8---
> * 2010
>
> ** 2010-06 June
>
> *** Admin
>
> **** Organization
> :LOGBOOK:
> CLOCK: [2010-06-30 Wed 13:30]--[2010-06-30 Wed 17:50] => 4:20
> - DUPLICATED TeXt.
> :END:
>
> **** Emails and News
> :LOGBOOK:
> CLOCK: [2010-06-28 Mon 09:10]--[2010-06-28 Mon 10:40] => 1:30
> CLOCK: [2010-06-30 Wed 10:30]--[2010-06-30 Wed 12:30] => 2:00
> :END:
>
> *** ABC
> :LOGBOOK:
> CLOCK: [2010-06-30 Wed 09:30]--[2010-06-30 Wed 10:30] => 1:00
> - Transfer of files to ABC.
> :END:
> --8<---------------cut here---------------end--------------->8---
>
> generates the following timeline:
>
> --8<---------------cut here---------------start------------->8---
> Timeline of file /home/sva/Projects/ecm.org
>
> 2010-06-28 Mon _________________________________
> Clocked: (1:30) Emails and News
>
> 2010-06-29 Tue _________________________________
>
> 2010-06-30 Wed _________________________________
> Clocked: (1:00) ABC - Transfer of files to ABC.
> Clocked: (2:00) Emails and News - DUPLICATED TeXt.
> Clocked: (4:20) Organization - DUPLICATED TeXt.
> --8<---------------cut here---------------end--------------->8---
>
> As you can see, the fact that I never put a descriptive text for "reading
> emails" is wrongly reported: previous text is used in the timeline, instead.
* lisp/org-html.el (org-export-html-preprocess): Call org-format-latex,
possibly with a protect-only argument.
* lisp/org.el (org-format-latex): New argument PROTECT-ONLY.
with the switch #+OPTIONS: LaTeX:verbatim ,
LaTeX code will be exported verbatim to HTML, so that jsmath can grab
and convert it.
Proposed by Christian Moe.
* lisp/org-exp.el (org-export-handle-table-metalines): this function
removes table specific meta-lines, now that we aren't wiping
everything that looks remotely like a comment at the end of the
export process we have to be sure to catch all of the specific lines
in org-exp.el
* lisp/org-exp.el: (org-export-select-backend-specific-text) Properly
get rid of #+Backend and #+ATTR_Backend specifics to backends not
matching the one we're exporting to.
This patch changes the functionality of orgtbl-to-orgtbl so that it will
remove newline characters from the text of table cells and replace them
with "\n". This protects the final table from such newlines.
This patch will probably only have any noticeable effect for tables
imported form external files, or from the results of code blocks.
Best -- Eric
>From 34aacc9aa037e8f17c8d32ed61a25f0a350713a0 Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Fri, 18 Jun 2010 12:38:26 -0700
Subject: [PATCH] org-table: will now strip newlines from the text of table cells
* lisp/org-table.el (orgtbl-to-generic): added the :remove-newlines
option which will strip newline characters from the text of table
cells and replace then with "\n"
(orgtbl-to-orgtbl): now using the new :remove-newlines option to
orgtbl-to-generic
Patch by Carsten
* lisp/org-exp.el (org-export-mark-blockquote-verse-center): fixed
small bug, now grabbing match data before overwritten by looking-at
this fixes a problem with remainders of #+end_quote lines appearing
in exported output
* lisp/org-latex.el (org-export-latex-fixed-width): now checking
org-example rather than org-protected on verbatim export, because by
default all ": " prefixed lines are marked protected
thanks to Christopher Allan Webber for catching this
* lisp/babel/langs/ob-python.el (org-babel-python-table-or-string):
now more careful not to replace "None"s which are not isolated
portions of lists
Thanks to Christopher Witte for raising these issues
* lisp/babel/langs/ob-haskell.el (org-babel-expand-body:haskell):
replaced missing () wrapping, and now using correct variable
expansion
(org-babel-execute:haskell): now using
org-babel-haskell-initiate-session to start sessions
(org-babel-haskell-initiate-session): only starting sessions if none
exists, also added a .25 second wait on brand new sessions to allow
the Haskell interpreter to fire up
(org-babel-load-session:haskell): now optionally accepts processed
params to avoid over-execution of variable resolution
(org-babel-prep-session:haskell): now optionally accepts processed
params to avoid over-execution of variable resolution, also placing
the variable definitions directly in the session instead of loading
them from a separate file
* lisp/org-entities.el (org-entities): Restructure the list.
(org-entities-help): Turn the help output into a buffer
in Org-mode, so that it becomes easier to find a symbol
in the structure.
(org-entities-create-table): Deal with new structure.
Thanks to Daniel Mahler for finding this problem and proposing the fix
* lisp/babel/ob.el (unless): ensure `declare-function' is available in
all Emacsen
* lisp/org-macs.el (org-not-nil): Return the value if not interpreted
as nil.
* lisp/org.el (org-entry-get):
(org-entry-get-with-inheritance): Interpret the value "nil"
as nil for properties.
Bernt Hansen writes:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>
> > On Jun 25, 2010, at 3:23 PM, Robert Goldman wrote:
> >
> > > Question: what is the proper way to get a NIL into a property? Are
> > > we
> > > to use () instead of "nil"? Or are property values always interpreted
> > > as strings?
> > >
> > > Apologies in advance if this is a stupid question!
> >
> > Not a stupid question at all.
> >
> > There is no way, currently. Property values are string - the only
> > way to make
> > org-entry-get return nil is to not have the property defined at all.
>
> I've wanted a similar thing in the past for the LOGGING property where
> the parent task has special logging set via the LOGGING property but I
> want to undo that for some of the child tasks so they use the default
> logging setup.
>
> Having a way to undefine a property would be good in general I think.
-Bernt
* lisp/org-macs.el (org-not-nil): New function.
* lisp/org.el (org-block-todo-from-children-or-siblings-or-parent):
Use `org-not-nil' to interpret a property value of nil.
Robert Goldman writes:
> I have found what I believe to be a bug in handling ordered subtasks.
> Here is the behavior:
>
> I have a top level set of tasks that is ordered.
>
> One of the outline items below the top level set is a grab bag of tasks
> that will be performed in parallel. So this task is NOT ordered
> (ORDERED: nil).
>
> The problem is that the blocking behavior from ordered tasks seems to be
> inherited from the top level task list into the second level of the
> outline, even though the ORDERED property at the second level is
> explicitly overridden.
>
> I am attaching an org file that displays this issue. To see the
> problem, put your cursor on the "Bar" task and attempt to change its
> status to DONE.
The problem was here that the value of the property is the string
"nil", which is of course not nil.
This patches introduces a special case to interpret "nil" as nil.
* lisp/babel/langs/ob-emacs-lisp.el
(org-babel-expand-body:emacs-lisp): removed extra call to
`org-babel-process-params' which was causing referenced code blocks
to be run multiple times
(org-babel-execute:emacs-lisp): now passing processed-params through
to `org-babel-expand-body:emacs-lisp' which keeps references from
being evaluated multiple times
* lisp/org-agenda.el (org-agenda-get-timestamps): No errors
while getting TODO state.
(org-agenda-highlight-todo): No error when no keyword has
been matched.
Eric Arneson writes:
> I've discovered a bug in `org-agenda-get-timestamps' wherein an active
> timestamp before the first headline causes it to fail. I realize that
> this is probably an error in my use of active timestamps, but there was
> no really handy error message and this bugged me for weeks.
>
> I'm not familiar enough with org-mode to know what the correct behavior
> should be here (it'd be nice to get an error message saying "Don't use
> active timestamps that way!"), but here's an example .org file that will
> trigger the bug:
>
> --8<---------------cut here---------------start------------->8---
> #+BEGIN: clocktable :maxlevel 3 :scope today
> Clock summary at [2010-06-20 Sun 13:09]
>
> | L | Headline | Time |
> |---+---------------------------------------+--------|
> | | *Total time* | *0:13* |
> |---+---------------------------------------+--------|
> | 1 | Track down funky bug <2010-06-20 Sun> | 0:13 |
> #+END:
>
> * Track down funky bug <2010-06-20 Sun>
> :LOGBOOK:
> CLOCK: [2010-06-20 Sun 12:43]
> CLOCK: [2010-06-20 Sun 12:30]--[2010-06-20 Sun 12:43] => 0:13
> :END:
> --8<---------------cut here---------------end--------------->8---
>
> I hope this can help somebody else track down the right place to fix
> this bug.
* lisp/babel/ob-exp.el (org-babel-exp-results): now checking to see if
return value of `org-babel-ref-literal' is equal to the null
indicator flag -- meaning it's now possible to accept a value of
null
* lisp/babel/ob-ref.el (org-babel-ref-parse): now checking to see if
return value of `org-babel-ref-literal' is equal to the null
indicator flag -- meaning it's now possible to accept a value of
null
(org-babel-ref-literal): now returning a null indicator flag when
the value is *not* a literal value, meaning it is possible to pass
in a literal value of null
Carsten Dominik <carsten.dominik@gmail.com> writes:
> 3 Why a new name?
> ~~~~~~~~~~~~~~~~~~
>
> I have - at least for now - chosen a new name for the new setup:
> ` org-capture'. There are two reasons for this:
In the manual it is "Capture - Refile - Archive". I remember searching
for "Remember" and never found it :)
> 5 Setup
> ~~~~~~~~
>
> To use the new setup, do the following:
>
> 1. Run
>
> M-x org-capture-import-remember-templates RET
Worked perfectly here :)
I tested all my important templates and they work.
Abandoning org-remember seems painless.
> '(("t" "templates adding table lines")
> ("ta" "add to table a" table-line (file+headline "~/notes.org" "Table A))
> ("tb" "add to table b" table-line (file+headline "~/notes.org" "Table B))
> ("tc" "add to table c" table-line (file+headline "~/notes.org" "Table C)))
>
> When starting capture, you can then first press "t" and then see
> the individual options.
This is great. Number of templates is constantly growing and the new
features will increase the speed of this process.
> 7 Request for comments
> ~~~~~~~~~~~~~~~~~~~~~~~
>
> None of what I describe is set in stone yet - let me know if you have
> comments, change requests or other ideas.
>
> My feeling right now is that this should become the default capture
> system, and that we will keep the current org-remember in the
> distribution for quite some time, for compatibility.
Good track I guess.
Here's the tested and working patch for org-protocol.el.
To use `org-remember' and/or `org-capture' alike, copy your org-remember
link and change
javascript:location.href='org-protocol://remember://'+...
to
javascript:location.href='org-protocol://capture://'+...
The template char used is the same for both --- which is OK for me, but
could be changed.
* lisp/org.el (org-timestamp-change): New optional argument UPDOWN.
Use this to identify calls from org-timestamp-up/down, so that we can
skip by rounding minutes in this case.
(org-timestamp-up):
(org-timestamp-down):
(org-timestamp-up-day):
(org-timestamp-down-day): Call org-timestamp-change with the
updown argument.
This function used to look only if there was a prefix argument in the
current interactive call. Now we have an explicit marker indicating
that the function is called from the updown commands.
Bernt Hansen writes:
> I was talking to Jeff Stern about tags todo matching offlist and we
> think the documentation for tags-todo matching can probably be improved.
>
> The description of C-c a M at
> http://orgmode.org/manual/Matching-tags-and-properties.html
> states
>
> C-c a M
>
> Like C-c a m, but only select headlines that are also TODO items and
> force checking subitems (see variable
> org-tags-match-list-sublevels). To exclude scheduled/deadline items,
> see the variable org-agenda-tags-todo-honor-ignore-options. Matching
> specific TODO keywords together with a tags match is also possible,
> see Tag searches.
>
> When I read this I think TODO items is any todo keyword but this isn't
> the case. It is only non-done TODO state keywords. This makes
> tags-todo matching not work for finding tasks to archive (normally
> DONE | CANCELLED keywords in my setup)
>
> Should we explicitly state that 'headlines that are also TODO items'
> does not match DONE state keywords? Or alternatively should TODO items
> and DONE items be separate (and explicitly defined) in the documentation
> -- like org-todo-keywords and org-done-keywords?
>
> I still think 'TODO keyword' matches any todo keyword defined in
> org-todo-keywords and maybe I need to be re-educated :)
Bernt is right, and this patch tries to clarify the issue.
* lisp/org-agenda.el (org-agenda-action): Make `c' key call org-capture.
* lisp/org-capture.el: New file.
* lisp/org-compat.el (org-get-x-clipboard): Function moved here from
remember.el.
* lisp/org-mks.el: New file
* lisp/org.el (org-set-regexps-and-options): Allow statistic cookies as
part of complex headlines.
(org-find-olp): New argument THIS-BUFFER. When set, assume that the
OLP does not contain a file name.
* lisp/org.el (org-mode): Set `comment-start' instead of changing the
syntax of the `#' character.
Leo writes:
> Setting a comment starter without a corresponding comment ender is
> problematic and the # creeps in mysteriously under auto-fill. For
> example, in my current running emacs, this happens almost certainly in
> all org files that has # in their header. The only (temporary) solution
> seems to reboot emacs (which is painful and disruptive).
>
> If you try eval (forward-comment 1) at the beginning of an org file that
> has some "#+..." it will move to the end of file (the whole file is
> regarded as one single comment). So when auto-fill a long text, it will
> find the common prefix to be #.
>
> In addition, I don't think org mode has clear comment syntax or ideas on
> what to do with it.
>
> I can't see any gain from (modify-syntax-entry ?# "<") so I am proposing
> removing it entirely and get rid of this mysterious and annoying bug
> once and for all.
>
> The attached patch may (though I think it is quite safe) cause some bugs
> but those will be fixable unlike the one mentioned above.
>
> Best wishes,
>
> Leo
* lisp/org-exp.el (org-export-format-source-code-or-example): Mark examples
by a property. o
* lisp/org-html.el (org-export-html-close-lists-maybe): Check if raw
HTML stuff was actually made from an example
Daniel Mahler writes:
> 2. I would like to embed source blocks in numbered lists, without
> breaking the numbering ie:
>
> 1) get ready
> #+BEGIN_SRC sh
> get_ready
> #+END_SRC
> 2) go
> #+BEGIN_SRC sh
> go
> #+END_SRC
>
> currently the src blocks cause the numbering to reset, so all
> items in a sequence like this are numbered 1
This patch fixes this issue - but I cannot say anymore why the code in
org-export-html-close-lists-maybe does in fact work. The code looks
wrong, but it seems to work. What looks wrong is that i does not
check for the true indentation in the case when the line is not
protected. It must be that this case is covered by some other code
further down in the exporter.
* lisp/babel/ob.el (org-babel-src-block-regexp):
ensure no whitespace in language names
(org-babel-inline-src-block-regexp):
ensure no whitespace in language names
- Removed the org-babel-tangle-langs variable.
- Added the org-babel-tangle-lang-exts alist for associating
languages with file extensions
- Comments now only added when the :comments header argument is set
to yes
* lisp/babel/ob-tangle.el (org-babel-tangle-w-comments):
this is now a defcustom
(org-babel-tangle-lang-exts): alist associating languages with file
extension, this is also a defcustom
(org-babel-spec-to-string): no longer using the complex tangle-lang
variables
* lisp/babel/ob.el (org-babel-interpreters): define this before it is
first used
* lisp/babel/ob.el (org-babel-call-process-region-original): define
this before it is first used
* lisp/babel/ob.el (org-babel-execute-src-block):
call-process-region-original is no longer free
(org-babel-org-babel-call-process-region-original):
call-process-region-original is no longer free and is now renamed
org-babel-call-process-region-original
(org-babel-tramp-handle-call-process-region):
call-process-region-original is no longer free
* lisp/babel/ob.el (org-babel-execute-src-block): now passing
additional optional argument to `org-babel-inert-results'
(org-babel-insert-result): now accepting additional language
variable
* lisp/babel/ob-comint.el (org-babel-comint-with-output):
Fixed egregious oversight in which we were assuming that the
`full-body' variable would be in scope at the time of macro
execution. Thanks to the compiler for finding this bug.
* lisp/babel/langs/ob-R.el (org-babel-R-evaluate): now using the fixed
`org-babel-comint-with-output' macro
* lisp/babel/langs/ob-haskell.el (org-babel-execute:haskell): now
using the fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-ocaml.el (org-babel-execute:ocaml): now using
the fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-octave.el (org-babel-octave-evaluate-session):
now using the fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-python.el (org-babel-python-evaluate): now using
the fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-ruby.el (org-babel-ruby-evaluate): now using the
fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-sh.el (org-babel-sh-evaluate): now using the
fixed `org-babel-comint-with-output' macro
we are keeping two things in the contrib directory
1) the library-of-babel.org file, this is with the goal of lowering
the barrier of entry for contribution of functions to the library
of babel
2) we are also keeping a langs directory in the contrib directory
because some language files do not have FSF copyright assignment
-- current org-babel-oz.el is the only such file
* lisp/org-latex.el: items are no longer skipped when their first line
ends on a protected element.
* lisp/org-list.el: protected environments looking like lists are not
exported anymore.
Thanks to Nicolas Goaziou <n.goaziou@gmail.com> for this patch.
* lisp/org-exp.el: comment regexp now matches documentation. No more
protection check when deleting comments before export.
Thanks to Nicolas Goaziou <n.goaziou@gmail.com> for this patch.
* lisp/org-exp.el (org-export-preprocess-string):
now using `org-export-handle-include-files-recurse' to resolve
included files
(org-export-handle-include-files): now returns a list of the
included files
(org-export-handle-include-files-recurse): recursively calls
`org-export-handle-include-files' while checking to see if the
process has entered an infinite loop.
Thanks to Eric Schulte for this patch.
(org-agenda-get-scheduled):
* lisp/org.el (org-time-string-to-seconds):
For deadline and scheduled agenda display ignore the cyclic repeater
when calculating how many days late the task is. If you have a weekly
task and miss the date the agenda view will show more than a week late
now instead of resetting on the cyclic repeating date. This makes it
much more obvious when you missed a repeating task after the repeater.
Thanks to Bernt Hansen for this patch.
* org.el (org-raise-scripts): Do not fontify sub/superscripts of text
with face `org-special-keyword'. Makes property keys as :LAST_REPEAT:
display correctly.
This patch adds a modification hook to remove inline-image overlays if
the underlying text is modified. This prevents blind editing of text
behind images.
* lisp/org-exp-blocks.el (org-export-blocks-postblock-hook): adding
documentation to and turning into a defcustom
(org-export-blocks-preprocess): actually running the
`org-export-blocks-postblock-hook' hook after preprocessing
Environments coming from latex backend specific instructions (#+LaTeX)
are already protected and won't be treated as normal environments.
* lisp/org-latex.el (org-export-latex-preprocess): Environments coming
from latex backend specific instructions (#+LaTeX) are already
protected and won't be treated as normal environments.
use a property named "task_id" instead as we do not search for task
ids across files. For resources use a property named "resource_id" or
only as a fall back the ID property.
Also issue a warning if a dependency cannot be resolved.
- Attributes are now insetred generically based on an item (resource
or task) a list of attrbutes
- project end is now solely calculated and no longer inserted in the
node
* lisp/org.el (org-raise-scripts): Do not act in links.
Matt Lundin writes:
> Git commit 70d24c5d03 causes underscores
> in hyperlinks to display parts of link and description as subscripts.
> E.g., this link...
>
> [[http://www.samplepage.com/an_underscore][Some description words]]
>
> ...displays the word "Some" in the description as a subscript. With M-x
> visible-mode, the substring "underscore][Some" is displayed as a
> subscript.
* lisp/org-exp.el (org-export-remove-special-table-lines): Only fix table
lines that are not protected text.
Giovanni Moretti writes:
> I'm working up a presentation on orgmode for a local club and needed
> to prefix it with a brief emacs overview, and so included this:
>
> #+BEGIN_EXAMPLE
> ctrl-P (previous line)
> |
> |
> Ctrl-A <<< Ctrl-B <---- o ----> Ctrl-F >>> Ctrl-E
> Col 1 back char ! fwd char EOL
> !
> ctrl-N (next line)
> #+END_EXAMPLE
>
> : ctrl-P (previous line)
> : |
> : |
> : Ctrl-A <<< Ctrl-B <---- o ----> Ctrl-F >>> Ctrl-E
> : Col 1 back char | fwd char EOL
> : |
> : ctrl-N (next line)
>
> I'm using Orgmode v6.36c and when exporting to HTML (and LaTex
> Beamer), the two lines containing the single vertical bar immediately
> below the "ctrl-P" line in the #+EXAMPLE block vanish, whereas using
> the alternate colon at the beginning of the line notation, the
> rendering is as expected.
>
> Interestingly, enabling the +n option (#+BEGIN_EXAMPLE +n) causes the
> missing lines (lines 2 & 3) to reappear.
* lisp/org.el (org-edit-special): Make sure source code editing goes
before table formula editing.
* lisp/org-table.el (org-table-fedit-map): "C-c '" will now also exit
the formula editor.
Carsten Dominik <dominik@uva.nl> writes:
> Hi Dan,
>
> after a long time, I tried to edit a fixed width region today.
> So I entered
>
> : a
> : b
> : c
>
> and pressed "C-c '" in there. The edit buffer came up in
> read-only mode, which should not be so.
>
> Also, when I do "C-c '" in an empty line, it used to be the case
> that I get an empty artist buffer which I can then edit. Also this
> buffer comes up as read-only.
>
> I suspect that this has to do with the changes you made for read-only
> view buffers. Before I dive into this issue myself, maybe it will be
> much
> easier if you do this?
Hi Carsten,
You're right that it dates from then. Here's the fix I suggest. I've
tested that this results in writable fixed-width edit buffers, writable
src edit buffers, and non-writable babel preview buffers.
Dan
--8<---------------cut here---------------start------------->8---
commit ed4eb9d150
Author: Dan Davison <davison@stats.ox.ac.uk>
Date: Sat Jun 5 12:35:19 2010 +0100
* lisp/org-src.el: Prevent fixed-width region edit buffers
being created as read-only.
Modified lisp/org-src.el
* contrib/lisp/org-special-blocks.el (org-special-blocks-make-special-cookies):
Emacs 22 doesn't have string-match-p
* lisp/org-freemind.el (org-freemind-write-mm-buffer):
(org-freemind-get-node-style):
Emacs 22 doesn't have string-match-p
* lisp/org-html.el (org-html-make-link):
Use new org-string-match-p for compatibility
* lisp/org.el (org-read-date-analyze): Fix regular expression for
matching american dates
Daniel E. Doherty writes:
> In playing around with the date prompt (C-.), I ran across the following
> puzzling behavior from rather simple inputs.
>
> I entered the following on June 1, 2010. Here is a date entered as
> "3/15": <2011-03-15 Tue>. It interpreted it as the upcoming March 15 as
> expected.
>
> But here is a date entered as "5/21": <2021-06-05 Sat>. Note how it
> interpreted the "21" as the year 2021, not at all what I expected from
> the documentation or the analogous "3/15" example.
>
> Maybe there is some underlying logic here that I'm not getting. Perhaps
> it has to do with how 2-digit years are interpreted?
>
> What's going on here? I am using org-version 6.36trans on emacs 23.1.
What was going on here is that the regular expression for matching
american-style dates was wrong. It was looking for month numbers in
the second field and day numbers in the first field - wrong, of
course.
* lisp/org-macs.el (org-rm-props): Add org-emphasis to the properties
that must be removed.
* lisp/org.el (org-do-emphasis-faces): Add org-emphasis property to
items that have emphasis done wit font-lock.
(org-fontify-entities): Do not do anything in commented lines.
(org-unfontify-region): Decompose the region as well, because we do
composition during font-lock.
(org-raise-scripts): Do nothing inside an emphasis string.
Reported by Eric Fraga in http://article.gmane.org/gmane.emacs.orgmode/25940
* lisp/org-compat.el (org-string-match-p):
(org-looking-at-p): New functions.
* lisp/org-table.el (org-table-align): Handle raised text with
invisible characters.
* lisp/org.el (org-script-display): Add raise properties for tables.
(org-raise-scripts): Handle raising differently inside tables.
Pretty display of subscripts and superscripts no longer messes up
table alignment. This is achieved by two things:
1. Inside tables, the raised characters are not made smaller, they
remains at the same size. Instead they are raise/lowered more, by
a full half character height to still be clearly readable as
subscript or superscript.
2. The invisible characters are taken into account when computing the
field width.
* lisp/org.el (org-ctrl-k-protect-subtree): New option.
(org-kill-line): Protect hidden subtrees if the user wants it.
* doc/org.texi (Headlines): Mention the special behavior of C-k
in headlines.
Scott Otterson writes:
> For what must be the dozenth time, I've just accidentally deleted a
> large tree by typing C-k while in a headline.
>
> This is really easy to do because emacs users have "C-k deletes to the
> end of the line" worn deeply into their neural pathways -- it's so
> automatic for me that the keystroke is close to subconscious. A
> mistaken C-k is especially hard to detect because org-mode displays
> the result exactly like what your subconscious expects, that is, a
> collapsed headline is deleted to the end -- and the tree underneath is
> wiped out with no noticeable warning.
>
> Feature request: add an option preventing tree deletion with C-k
> without user confirmation. Actually, I'd like an option to prevent it
> period.
>
> If this option is already in there, then you're encouraged to tell me
> to RTFM. But then also please tell me where it is, because I can't
> find it.
Carsten replies
> This is now possible due to the variable
> `org-ctrl-k-protect-subtree'. But I predict that you are going to set
> it to nil again soon :D
* doc/org.texi (Subscripts and superscripts): Document that `C-c C-x \'
will also format sub and superscripts.
* doc/orgcard.tex: Document that `C-c C-x \'
will also format sub and superscripts.
* lisp/org.el (org-use-sub-superscripts):
(org-pretty-entities-include-sub-superscripts): Move here from
org-exp.el.
(org-set-regexps-and-options): Parse subscript option and set
`org-use-sub-superscripts' as a local variable.
(org-match-sexp-depth):
(org-create-multibrace-regexp):
(org-match-substring-regexp):
(org-match-substring-with-braces-regexp): Moved here from org-exp.el
(org-set-font-lock-defaults): Call `org-raise-scripts'.
(org-remove-font-lock-display-properties): New function.
(org-unfontify-region): Call
`org-remove-font-lock-display-properties'.
(org-script-display): New constant.
(org-raise-scripts): New function.
When turning on entity display with `C-c C-x \', sub- and superscripts
will also be displayed in a smaller font, and raised/lowered.
* lisp/org-latex.el (org-export-latex-fontify): Avoid fontifying
several stars in a row.
* lisp/org.el (org-emphasis-alist): Mention
`org-export-docbook-emphasis-alist' in the docstring.
Called with a numeric prefix argument, `org-timer-set-timer' uses
this numeric value as the duration of the timer.
Called with a `C-u' prefix argument, use `org-timer-default-timer'
without prompting the user for a duration.
With two `C-u' prefix arguments, use `org-timer-default-timer'
without prompting the user for a duration and automatically
replace any running timer."
* lisp/org.el (org-store-link): Don't call org-store-link
interactively when called through remember from the agenda
Samuel Wales writes:
> For months, I found ID properties where they didn't belong.
> Finally I found that they are added when I do M-x
> org-remember in an agenda buffer, to the headline under
> point. Feels like a bug. [...]
The new function `org-agenda-file-p' checks if a given file is an org
agenda file. Such a function is very useful in hooks, for example if
you want to export agenda files automatically when saving:
(defun th-org-mode-init ()
;; Update appointments and export to iCalendar when saving.
(when (org-agenda-file-p)
(add-hook 'after-save-hook 'th-org-agenda-to-appt t t)
(add-hook 'after-save-hook 'org-export-icalendar-this-file t t)))
(add-hook 'org-agenda-mode-hook 'th-org-agenda-mode-init)
I'd appreciate if this one could be applied. I'll fix XEmacs to accept
#B<binary> in the future, but I'd appreciate this one anyway. Doesn't
really add complexity ...
Org-refile-cache fails when org-refile-use-outline-path is set to file.
Specifically, org-refile-cache-check-set throws a markerp error when it
encounters file targets, since they have nil instead a marker object.
This patch applies the test only to targets with markers (i.e.,
headings).
The function org-get-refile-targets was building org-refile-cache even
if org-refile-use-cache was set to nil. This caused every refile
attempt to call org-refile-cache-clear and to produce the message
"Refile cache has been cleared."
* lisp/org-publish.el (org-publish-write-cache-file):
Write a serialized version of the cache hash.
(org-publish-initialize-cache): Reset the cache hash before creating a
new one.Serialize publishing project cache with `puthash' expressions.
* doc/org.texi (Plain lists): Document
`org-list-demote-modify-bullet'.
* lisp/org-list.el (org-list-demote-modify-bullet): Improve docstring
by showing an example.
This change was triggered by a request by Livin Stephen Sharma.
* org-clock.el (org-dblock-write:clocktable): Return total time.
(org-clocktable-steps): Skip step when time is zero and the
:stepskip0 property is set.
Rainer Stengele writes:
> Creating clocktables for each day of a month is an excellent feature
> in org! Problem for me is that many resulting tables have a total
> time of 0:00. The problem is not really the zero time I spent but the
> appearance of the tables with zero total time.
>
> Is there a possibility to skip getting such tables? Rational: I do
> not need to show my boss or customer days where I spent 0:00 time on
> the project.
Now you can set :stepskip0 to achieve this.
This variable defaults to nil. When non-nil, this is the default
value when the user is prompted for a timer.
This patch also improves org-timer-set-timer so that the user can
replace the current timer by a new one.
Hello, Org mode hackers,
This patch defines a variable `org-agenda-persistent-filters'.
When it is set, filters persist from one agenda view to the next.
I've found this convenient when using tags for contexts like @home,
@net, etc., some of which commonly remain applicable for a while.
Thanks,
Thomas
From 052ef9205845c78cb24d6fea8f89484bbe12a528 Mon Sep 17 00:00:00 2001
From: Thomas Morgan <tlm@ziiuu.com>
Date: Fri, 23 Apr 2010 11:48:03 +0200
Subject: [PATCH] New option `org-agenda-persistent-filters'.
When set, keep filters from one agenda view to the next.
Tom writes:
> if I have a heading like this:
>
>
> ** TODO test task
> stuff
> SCHEDULED: <2010-05-15 Sat 07:35 +1d>
>
>
> Then an empty line is inserted below the heading (before "stuff") if
> org-indent-mode is on and logging is set like this:
>
>
> (setq org-log-repeat nil)
> (setq org-log-done 'time)
>
>
>
> I tested it with a clean config using only the settings above.
This patch fixes the problem first reported by Tassilo Horn in
[mid:87y6fhxc47.fsf@thinkpad.tsdh.de]. Problem was that
`org-refile-cache-get' returned an invalid refile target table after
the refile cache was cleared.
Tassilo Horn writes:
> Hi all,
>
> I've just discovered the iCalendar export and use that to have a
> visually appealing read-only agenda in KOrganizer. Basically, the
> export seems perfect except for one thing.
>
> When I have an org entry like
>
> * Test :some:tags:here:
>
> the corresponding VEVENT will have the whole org heading including the
> spaces and the tag string as SUMMARY (unless the entry has a SUMMARY
> property). Having the tags there might be ok (although by default they
> are also set as CATEGORY), but the spaces between the heading title and
> the tags should be compacted.
Patch by Bernt Hansen:
> When org-clock-report-include-clocking-task is set we always add the
> current clocking task to the clock report. This is incorrect if you
> are looking at an agenda clock report for a time range that does not
> include the current clocking task (e.g. yesterday or last week).
>
> Now we only include the current clocking task if the clock report
> date range includes the current clocking task start time.
i/q/C-g Ignore this question; the same as keeping all the idle time.
k/K Keep X minutes of the idle time (default is all). If this
amount is less than the default, you will be clocked out
that many minutes after the time that idling began, and then
clocked back in at the present time.
g/G Indicate that you \"got back\" X minutes ago. This is quite
different from 'k': it clocks you out from the beginning of
the idle period and clock you back in X minutes ago.
s/S Subtract the idle time from the current clock. This is the
same as keeping 0 minutes.
C Cancel the open timer altogether. It will be as though you
never clocked in.
j/J Jump to the current clock, to make manual adjustments.
For all these options, using uppercase makes your final state
to be CLOCKED OUT.
Carsten Dominik <carsten.dominik@gmail.com> writes:
> Hi Sebastian,
>
> sorry for being slow. Could you do me a favor and send me the cache patch one
> more time - if possible updated to the current master.
>
> I am just not sure I have the right patch in my hands.
Hi Carsten,
no problem. The patch is attached.
Here is a list of my ChangeLog entries, redated to today:
2010-05-13 Sebastian Rose <sebastian_rose@gmx.de>
* org-publish.el (org-publish-cache): Use one big hashmap for
each project defined in `org-publish-project-alist'. The
hashmap will hold pairs of our timestamp-filenames and
timestamps, as well as pairs of source-paths and associated
plists for arbitrary values. Currently only the files title is
stored there.
The caching feature writes the information gathered during
publishing to disk and re-loads it from there the next time we
publish the same project. All those informations will hence
survive a restart of emacs.
One cache file per publishing project is used. The contents of
that file is the elisp that fills the new variable
`org-publish-cache'. The cache file is named according to the
project with `.cache' added and lives in
`org-timestamp-directory'.
* org-publish.el (initialize-files-alist): This function and
the variable `org-publish-files-alist' are not used anymore in
favour of the reloadable cache and the functions for handling
it. Removed therefor.
* org-publish.el (org-publish-validate-link) was not used
anywhere. Removed.
* org-publish.el (org-publish-get-base-files): Added the
variable `sitemap-requested' to avoid sorting where possible.
See also end of `org-publish-get-base-files-1'.
* org-publish.el (org-publish-get-files): This function is
not called anymore. Removed.
* org-publish.el (org-publish-get-project-from-filename) does
not depend on a list of files anymore. Instead of laoding all
files of all, we walk `org-publish-project-alist' until we
find a project, where the properties :base-directory, :recursive,
:base-extension, :include and :exclude match.
* org-publish.el (org-publish-file) takes an additional
parameter to avoid superfloues loading and writing of the
cache file when used to publish a part of a project.
Patch by Christian Moe, who writes:
> It looks like support for formatting custom link types in LaTeX export
> is broken?
>
> I was trying to implement a custom link type with its own formatting
> function for HTML and LaTeX export, following the steps in
> org-bbdb.el.
>
> I've found that org-bbdb-export does not italicize bbdb links in
> LaTeX, nor does my own org-cite-export turn my custom =cite:= links
> into LaTeX =\cite{}= citations. Everything works fine in HTML export,
> but in LaTeX all custom link types get formatted as =\texttt{descr}=.
>
> I see that org-export-as-html and org-export-as-docbook look up
> org-link-protocols to get the function for formatting the link, but it
> seems that org-export-as-latex doesn't.
>
>
Karl Eichwalder writes:
> Consider the following two files:
>
> * 2009
> #+TBLNAME: 2009
> :PROPERTIES:
> :ID: ea32e5b5-31ba-468e-8e31-3e0d09696bb0
> :END:
> |-----+-------|
> | mm | km |
> |-----+-------|
> | all | 946.8 |
> |-----+-------|
>
> * 2010
> #+TBLNAME: 2010
> :PROPERTIES:
> :ID: e0df84c4-8abc-458f-a1ee-eb53eb71b4f0
> :END:
> |-----+-------+-------+-------|
> | mm | km | B km | G km |
> |-----+-------+-------+-------|
> | all | 249.4 | 429.2 | 678.6 |
> |-----+-------+-------+-------|
>
> * all
> :PROPERTIES:
> :ID: 44751a7f-73a4-4c07-b3c2-e3edb9042acd
> :END:
> #+TBLNAME: all
> |------+--------|
> | yyyy | km |
> |------+--------|
> | 2009 | |
> | 2010 | 678.6 |
> |------+--------|
> | all | 1625.4 |
> |------+--------|
> #+TBLFM: @2$2=remote(ea32e5b5-31ba-468e-8e31-3e0d09696bb0,$LR2);%.1f::@3$2=remote(2010,$LR4);%.1f::$LR2=vsum(@2$2..@-1);%.1f
>
> Then, in the 2010 file, eval the formula of the "all" table by pressing
> C-c C-c.
> ==>
>
> It takes the km value from the 2009 file, but also puts the cursor
> (point) into the 2009 file in front of the ID:
>
> * 2009
> #+TBLNAME: 2009
> :PROPERTIES:
> :ID: -!-ea32e5b5-31ba-468e-8e31-3e0d09696bb0
> :END:
> |-----+-------|
> | mm | km |
> |-----+-------|
> | all | 946.8 |
> |-----+-------|
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=- cut here -=-=-=-=-=-=-=-=-=-=-=-=-=-
>
> I'd prefer if the point would stay in the 2010 file.
Baoqui Cui writes:
> "robut@iinet.net.au" <robut@iinet.net.au> writes:
>
> I very much like the idea of native inline image display in Org-mode but can't
> seem to make it work.
>
> Given a 6.36 snapshot or 6.36 release and these org file contents
>
> * Test image
> Test image
> [[Screenshot.png]]
>
>
> I hoped org would display that image after C-c C-x C-v. Rather Org-mode returns
> "No images to display inline".
>
> I've tried different ways of linking that image, different image formats,
> relative vs complete paths, and my regular .emacs vs a near empty one and
> always the same result. If I toggle iimage-mode the image displays fine per se
> but does not affect how Org-mode works.
>
> Seems clear I am missing something simple. What?
>
> I like the idea of inline image display too, but hit the similar
> problems. After reading the code in org.el, I found that the inline
> image file link has to start with either "file:" or "./".
>
> For example, the following two links are OK:
>
> [[file:~/images/myImage.png]]
> [[./figures/org-mode-unicorn.svg]]
>
> but the following two are not:
>
> [[Screenshot.png]]
> [[~/images/myImage.png]]
>
> Here is a small patch that seems to work well for me, but I'd like
> Carsten to check whether it may break anything
Patch by David Maus:
> 1. Store and open link to Wanderlust folders.
>
> 2. Store link to Wanderlust message while visiting the message
> buffer.
>
> Up to now it was only possible to store a link to a message when
> point was in the message summary.
Patch by David Maus, who writes:
> Org enters an infinite loop when `org-replace-escapes' is called with
> a table containing a replace string that contains the escape sequence
> it should be replaced with.
>
> Example:
> ,----
> | (org-replace-escapes "%m" '(("%m" . "87zl0qq1f3.wl%maus.david@gmail.com")))
> `----
>
> I stumpled upon when I tried to store a link to a internet message
> whose message id contained the sequence "%m" (perfectly valid for a
> message id) while using "%m" as message description.
>
> Attached patch fixes this by
>
> 1. detecting such 'self reference' and replacing the offending
> sequence in the replace string by a string with a text property
> that contains the original sequence
>
> 2. replacing occurences of substrings with this text property by the
> original sequence.
Patch by Stephen Peters.
Stephen writes:
> When creating a table, I was noticing that the
> <colgroup><col>... provides useful alignment information based on
> whether or not the column has numbers in it. I think, however, that
> there is a mistake in this routine. Take, for example, the following
> table:
>
> | Id | Task | Developer | Estimate | Spent | Remaining | Comp.% | Updated |
> |-----+--------------+-----------+----------+-------+-----------+--------+-----------------|
> | 1 | Task One | SLP | 1 | 0 | 1 | 0 | SLP, 2010-04-27 |
> | 2 | Task Two | SLP | 1 | 0 | 1 | 0 | SLP, 2010-04-27 |
> | 3 | Task Three | SLP | 2 | 0 | 2 | 0 | SLP, 2010-04-27 |
> | 4 | Task Four | SLP | 2 | 0 | 2 | 0 | SLP, 2010-04-27 |
> | 5 | Task Five | SLP | .25 | 0 | 0.25 | 0 | SLP, 2010-04-27 |
> | 5.1 | Another Task | XML team | 0 | 1 | 0 | 0 | SLP, 2010-04-27 |
> | 6 | Task Six | SLP | .25 | 0 | 0.25 | 0 | SLP, 2010-04-27 |
> | 6.1 | More Tasks | DB team | 3 | 0 | 3 | 0 | SLP, 2010-04-27 |
> | 7 | Task Seven | SLP | 3 | 0 | 3 | 0 | SLP, 2010-04-27 |
>
> When the colgroup list is created for this table, it reads:
>
> <colgroup><col align="right" /><col align="left" /><col align="left" /><col align="right" /><col align="right" /><col align="left" /><col align="left" /><col align="left" />
> </colgroup>
>
> Note that the first columns are correct, but the last few are not. It
> should read right, left, left, right, right, right, right, left.
>
> I believe that this is due to the (< i nline) comparison within
> org-format-org-table-html, which is nonsensical because it's trying to
> compare a column number with a number of rows. I've attached a patch
> for the problem.