Browse Source

Fix the master branch.

I started from the 78ec8e commit then cherry-picked and squashed
commits that have been done in master since then, except the bad
commits that overwrote the tree (in master) with the tree in maint.

This commit also bumps the version number to 7.8.06.

The only "fix" that was made between 78ec8e and the previous commit
is e0072f which has been reported to break stuff.
Bastien Guerry 13 years ago
parent
commit
ecd0562c5f
100 changed files with 2605 additions and 1314 deletions
  1. 367 209
      EXPERIMENTAL/org-e-latex.el
  2. 3 1
      Makefile
  3. 1 1
      README_DIST
  4. 1 1
      contrib/babel/langs/ob-fomus.el
  5. 1 1
      contrib/babel/langs/ob-oz.el
  6. 2 2
      contrib/doc/fr-orgcard.tex
  7. 4 4
      contrib/lisp/htmlize.el
  8. 2 2
      contrib/lisp/org-bookmark.el
  9. 0 3
      contrib/lisp/org-checklist.el
  10. 38 38
      contrib/lisp/org-choose.el
  11. 2 2
      contrib/lisp/org-collector.el
  12. 0 1
      contrib/lisp/org-drill.el
  13. 383 264
      contrib/lisp/org-element.el
  14. 2 2
      contrib/lisp/org-eval-light.el
  15. 3 4
      contrib/lisp/org-eval.el
  16. 13 13
      contrib/lisp/org-expiry.el
  17. 30 30
      contrib/lisp/org-export-generic.el
  18. 466 332
      contrib/lisp/org-export.el
  19. 4 4
      contrib/lisp/org-interactive-query.el
  20. 9 9
      contrib/lisp/org-invoice.el
  21. 3 3
      contrib/lisp/org-mac-iCal.el
  22. 5 5
      contrib/lisp/org-mac-link-grabber.el
  23. 3 3
      contrib/lisp/org-mairix.el
  24. 2 2
      contrib/lisp/org-mime.el
  25. 1 1
      contrib/lisp/org-mtags.el
  26. 5 5
      contrib/lisp/org-notmuch.el
  27. 0 2
      contrib/lisp/org-panel.el
  28. 4 4
      contrib/lisp/org-registry.el
  29. 4 4
      contrib/lisp/org-screen.el
  30. 6 6
      contrib/lisp/org-static-mathjax.el
  31. 4 3
      contrib/lisp/org-sudoku.el
  32. 4 4
      contrib/lisp/org-toc.el
  33. 3 3
      contrib/lisp/org-wikinodes.el
  34. 3 3
      contrib/lisp/org2rem.el
  35. 0 1
      contrib/lisp/test-org-export-preproc.el
  36. BIN
      contrib/odt/BasicODConverter/BasicODConverter-0.8.0.oxt
  37. 213 0
      contrib/odt/BasicODConverter/Filters.bas
  38. 201 0
      contrib/odt/BasicODConverter/Main.bas
  39. 1 1
      contrib/scripts/StartOzServer.oz
  40. 1 1
      contrib/scripts/org2hpda
  41. 177 118
      doc/org.texi
  42. 2 2
      doc/orgcard.tex
  43. 22 15
      doc/orgguide.texi
  44. 1 1
      doc/pdflayout.sty
  45. 2 2
      doc/texinfo.tex
  46. 2 2
      lisp/ob-awk.el
  47. 16 3
      lisp/ob-ditaa.el
  48. 91 39
      lisp/ob-exp.el
  49. 1 1
      lisp/ob-gnuplot.el
  50. 1 1
      lisp/ob-haskell.el
  51. 1 0
      lisp/ob-js.el
  52. 62 34
      lisp/ob-lilypond.el
  53. 1 0
      lisp/ob-lisp.el
  54. 3 2
      lisp/ob-lob.el
  55. 1 1
      lisp/ob-ocaml.el
  56. 5 4
      lisp/ob-picolisp.el
  57. 1 0
      lisp/ob-plantuml.el
  58. 1 1
      lisp/ob-ref.el
  59. 2 2
      lisp/ob-ruby.el
  60. 1 0
      lisp/ob-scheme.el
  61. 32 14
      lisp/ob-sh.el
  62. 5 1
      lisp/ob-sql.el
  63. 9 6
      lisp/ob-tangle.el
  64. 84 26
      lisp/ob.el
  65. 37 12
      lisp/org-agenda.el
  66. 2 0
      lisp/org-archive.el
  67. 1 1
      lisp/org-ascii.el
  68. 1 0
      lisp/org-attach.el
  69. 1 0
      lisp/org-bbdb.el
  70. 10 0
      lisp/org-beamer.el
  71. 9 0
      lisp/org-bibtex.el
  72. 13 1
      lisp/org-capture.el
  73. 13 5
      lisp/org-clock.el
  74. 4 3
      lisp/org-crypt.el
  75. 3 0
      lisp/org-ctags.el
  76. 2 0
      lisp/org-docbook.el
  77. 2 0
      lisp/org-entities.el
  78. 1 1
      lisp/org-eshell.el
  79. 5 2
      lisp/org-exp-blocks.el
  80. 7 1
      lisp/org-exp.el
  81. 3 0
      lisp/org-faces.el
  82. 1 1
      lisp/org-feed.el
  83. 1 0
      lisp/org-footnote.el
  84. 1 0
      lisp/org-freemind.el
  85. 2 1
      lisp/org-gnus.el
  86. 2 0
      lisp/org-habit.el
  87. 9 0
      lisp/org-html.el
  88. 4 0
      lisp/org-icalendar.el
  89. 1 5
      lisp/org-id.el
  90. 5 2
      lisp/org-indent.el
  91. 17 4
      lisp/org-inlinetask.el
  92. 1 1
      lisp/org-irc.el
  93. 18 3
      lisp/org-latex.el
  94. 58 8
      lisp/org-list.el
  95. 1 1
      lisp/org-mks.el
  96. 11 5
      lisp/org-mobile.el
  97. 32 2
      lisp/org-pcomplete.el
  98. 8 3
      lisp/org-publish.el
  99. 1 2
      lisp/org-remember.el
  100. 1 1
      lisp/org-special-blocks.el

File diff suppressed because it is too large
+ 367 - 209
EXPERIMENTAL/org-e-latex.el


+ 3 - 1
Makefile

@@ -170,7 +170,9 @@ LISPF      = 	org.el			\
 		ob-shen.el		\
 		ob-fortran.el		\
 		ob-picolisp.el		\
-		ob-maxima.el
+		ob-maxima.el		\
+		ob-io.el		\
+		ob-scala.el
 
 LISPFILES0  = $(LISPF:%=lisp/%)
 LISPFILES   = $(LISPFILES0) lisp/org-install.el

+ 1 - 1
README_DIST

@@ -1,7 +1,7 @@
 The is a distribution of Org, a plain text notes and project planning
 tool for Emacs.
 
-The version of this release is: 7.8.05
+The version of this release is: 7.8.06
 
 The homepage of Org is at http://orgmode.org
 

+ 1 - 1
contrib/babel/langs/ob-fomus.el

@@ -1,6 +1,6 @@
 ;;; ob-fomus.el --- org-babel functions for fomus evaluation
 
-;; Copyright (C) 2011, 2012 Torsten Anders
+;; Copyright (C) 2011-2012 Torsten Anders
 
 ;; Author: Torsten Anders
 ;; Keywords: literate programming, reproducible research

+ 1 - 1
contrib/babel/langs/ob-oz.el

@@ -1,6 +1,6 @@
 ;;; ob-oz.el --- org-babel functions for Oz evaluation
 
-;; Copyright (C) 2009, 2012 Torsten Anders and Eric Schulte 
+;; Copyright (C) 2009-2012 Torsten Anders and Eric Schulte 
 
 ;; Author: Torsten Anders and Eric Schulte 
 ;; Keywords: literate programming, reproducible research

+ 2 - 2
contrib/doc/fr-orgcard.tex

@@ -1,7 +1,7 @@
 % Reference Card for Org Mode
 \def\orgversionnumber{7.5}
-\def\versionyear{2012}          % latest update
-\def\year{2012}                 % latest copyright year
+\def\versionyear{2011}          % latest update
+\def\year{2011}                 % latest copyright year
 
 %**start of header
 \newcount\columnsperpage

+ 4 - 4
contrib/lisp/htmlize.el

@@ -633,7 +633,7 @@ without modifying their meaning."
   (goto-char (point-min))
   (while (search-forward "Local Variables:" nil t)
     (replace-match "Local Variables:" nil t)))
-  
+
 
 ;;; Color handling.
 
@@ -796,7 +796,7 @@ If no rgb.txt file is found, return nil."
 	  (t
 	   ;; We're getting the RGB components from Emacs.
 	   (let ((rgb
-		  ;; Here I cannot conditionalize on (fboundp ...) 
+		  ;; Here I cannot conditionalize on (fboundp ...)
 		  ;; because ps-print under some versions of GNU Emacs
 		  ;; defines its own dummy version of
 		  ;; `color-instance-rgb-components'.
@@ -1211,7 +1211,7 @@ property and by buffer overlays that specify `face'."
 ;; used methods are `doctype', `insert-head', `body-tag', and
 ;; `insert-text'.  Not all output types define all methods.
 ;;
-;; Methods are called either with (htmlize-method METHOD ARGS...) 
+;; Methods are called either with (htmlize-method METHOD ARGS...)
 ;; special form, or by accessing the function with
 ;; (htmlize-method-function 'METHOD) and calling (funcall FUNCTION).
 ;; The latter form is useful in tight loops because `htmlize-method'
@@ -1389,7 +1389,7 @@ it's called with the same value of KEY.  All other times, the cached
     (format "<body text=\"%s\" bgcolor=\"%s\">"
 	    (htmlize-fstruct-foreground fstruct)
 	    (htmlize-fstruct-background fstruct))))
-       
+
 (defun htmlize-font-insert-text (text fstruct-list buffer)
   ;; In `font' mode, we use the traditional HTML means of altering
   ;; presentation: <font> tag for colors, <b> for bold, <u> for

+ 2 - 2
contrib/lisp/org-bookmark.el

@@ -67,7 +67,7 @@ Otherwise prompt the user for the right bookmark to use."
     (if (not file)
 	(when (eq major-mode 'bookmark-bmenu-mode)
 	  (setq bookmark (bookmark-bmenu-bookmark)))
-      (when (and (setq bmks 
+      (when (and (setq bmks
 		       (mapcar (lambda (name)
 				 (if (equal file
 					    (abbreviate-file-name
@@ -75,7 +75,7 @@ Otherwise prompt the user for the right bookmark to use."
 				     name))
 			       (bookmark-all-names)))
 		 (setq bmks (delete nil bmks)))
-	(setq bookmark 
+	(setq bookmark
 	      (if (or (eq 1 (length bmks)) org-bookmark-use-first-bookmark)
 		  (car bmks)
 		(completing-read "Bookmark: " bmks nil t nil nil (car bmks))))))

+ 0 - 3
contrib/lisp/org-checklist.el

@@ -138,6 +138,3 @@ of checkbox items"
 (provide 'org-checklist)
 
 ;;; org-checklist.el ends here
-
-
-

+ 38 - 38
contrib/lisp/org-choose.el

@@ -46,13 +46,13 @@
 ;;     * Use C-S-right to change the keyword set.  Use this to change to
 ;;       the "choose" keyword set that you just defined.
 
-;;     * Use S-right to advance the TODO mark to the next setting.  
+;;     * Use S-right to advance the TODO mark to the next setting.
 
 ;;       For "choose", that means you like this alternative more than
 ;;       before.  Other alternatives will be automatically demoted to
 ;;       keep your settings consistent.
 
-;;     * Use S-left to demote TODO to the previous setting.  
+;;     * Use S-left to demote TODO to the previous setting.
 
 ;;       For "choose", that means you don't like this alternative as much
 ;;       as before.  Other alternatives will be automatically promoted,
@@ -83,7 +83,7 @@ Indexes are 0-based or `nil'.
    static-default
    all-keywords)
 
-(defvar org-choose-mark-data 
+(defvar org-choose-mark-data
    ()
    "Alist of information for choose marks.
 
@@ -101,7 +101,7 @@ Each entry is an `org-choose-mark-data.'" )
       (not
 	 (string-match "(.*)" i))
       (list i i)
-      (let* 
+      (let*
 	 (
 	    (end-text (match-beginning 0))
 	    (vanilla-text (substring i 0 end-text))
@@ -116,7 +116,7 @@ Each entry is an `org-choose-mark-data.'" )
 		  ;;When string starts with "," `split-string' doesn't
 		  ;;make a first arg, so in that case make one
 		  ;;manually.
-		  (if 
+		  (if
 		     (string-match "^," args)
 		     (cons nil arglist-x)
 		     arglist-x)))
@@ -157,11 +157,11 @@ Each entry is an `org-choose-mark-data.'" )
 			;;item.
 			(top-upper-range
 			   (or top-upper-range (1- num-items)))
-			(lower-range-length 
+			(lower-range-length
 			   (1+ (- static-default bot-lower-range)))
-			(upper-range-length 
+			(upper-range-length
 			   (- top-upper-range static-default))
-			(range-length 
+			(range-length
 			   (min upper-range-length lower-range-length)))
 
 
@@ -194,7 +194,7 @@ Each entry is an `org-choose-mark-data.'" )
 ;;;_  . org-choose-filter-tail
 (defun org-choose-filter-tail (raw)
    "Return a translation of RAW to vanilla and set appropriate
-buffer-local variables. 
+buffer-local variables.
 
 RAW is a list of strings representing the input text of a choose
 interpretation."
@@ -219,7 +219,7 @@ interpretation."
 	    (push vanilla-mark vanilla-list)))
 
       (org-choose-setup-vars bot-lower-range top-upper-range
-	 static-default index (reverse all-mark-texts)) 
+	 static-default index (reverse all-mark-texts))
       (nreverse vanilla-list)))
 
 ;;;_  . org-choose-setup-filter
@@ -234,35 +234,35 @@ interpretation."
 ;;;_  . org-choose-conform-after-promotion
 (defun org-choose-conform-after-promotion (entry-pos keywords highest-ok-ix)
   "Conform the current item after another item was promoted"
-   
+
    (unless
       ;;Skip the entry that triggered this by skipping any entry with
       ;;the same starting position.  plist uses the start of the
       ;;header line as the position, but map no longer does, so we
       ;;have to go back to the heading.
-      (= 
+      (=
 	 (save-excursion
 	    (org-back-to-heading)
-	    (point)) 
+	    (point))
 	 entry-pos)
       (let
 	 ((ix
 	     (org-choose-get-entry-index keywords)))
 	 ;;If the index of the entry exceeds the highest allowable
 	 ;;index, change it to that.
-	 (when (and ix 
+	 (when (and ix
 		  (> ix highest-ok-ix))
-	    (org-todo 
+	    (org-todo
 	       (nth highest-ok-ix keywords))))))
 ;;;_  . org-choose-conform-after-demotion
 (defun org-choose-conform-after-demotion (entry-pos keywords
 					       raise-to-ix
-					       old-highest-ok-ix) 
+					       old-highest-ok-ix)
   "Conform the current item after another item was demoted."
 
    (unless
       ;;Skip the entry that triggered this.
-      (= 
+      (=
 	 (save-excursion
 	    (org-back-to-heading)
 	    (point))
@@ -273,11 +273,11 @@ interpretation."
 	 ;;If the index of the entry was at or above the old allowable
 	 ;;position, change it to the new mirror position if there is
 	 ;;one.
-	 (when (and 
-		  ix 
+	 (when (and
+		  ix
 		  raise-to-ix
 		  (>= ix old-highest-ok-ix))
-	    (org-todo 
+	    (org-todo
 	       (nth raise-to-ix keywords))))))
 
 ;;;_ , org-choose-keep-sensible (the org-trigger-hook function)
@@ -287,7 +287,7 @@ setting was changed."
    (let*
       (  (from (plist-get change-plist :from))
 	 (to (plist-get change-plist :to))
-	 (entry-pos 
+	 (entry-pos
 	    (set-marker
 	       (make-marker)
 	       (plist-get change-plist :position)))
@@ -303,11 +303,11 @@ setting was changed."
 		  (org-choose-mark-data.-all-keywords data))
 	       (old-index
 		  (org-choose-get-index-in-keywords
-		     from 
+		     from
 		     keywords))
 	       (new-index
 		  (org-choose-get-index-in-keywords
-		     to 
+		     to
 		     keywords))
 	       (highest-ok-ix
 		  (org-choose-highest-other-ok
@@ -324,7 +324,7 @@ setting was changed."
 			 (> new-index old-index))
 			(list
 			   #'org-choose-conform-after-promotion
-			   entry-pos keywords 
+			   entry-pos keywords
 			   highest-ok-ix))
 		     (t	;;Otherwise the entry was demoted.
 			(let
@@ -338,14 +338,14 @@ setting was changed."
 				 (org-choose-highest-other-ok
 				    old-index
 				    data)))
-			   
+
 			   (list
-			      #'org-choose-conform-after-demotion 
-			      entry-pos 
+			      #'org-choose-conform-after-demotion
+			      entry-pos
 			      keywords
 			      raise-to-ix
 			      old-highest-ok-ix))))))
-	    
+
 	    (if funcdata
 	       ;;The funny-looking names are to make variable capture
 	       ;;unlikely.  (Poor-man's lexical bindings).
@@ -356,8 +356,8 @@ setting was changed."
 			;;We may call `org-todo', so let various hooks
 			;;`nil' so we don't cause loops.
 			org-after-todo-state-change-hook
-			org-trigger-hook 
-			org-blocker-hook 
+			org-trigger-hook
+			org-blocker-hook
 			org-todo-get-default-hook
 			;;Also let this alist `nil' so we don't log
 			;;secondary transitions.
@@ -366,7 +366,7 @@ setting was changed."
 		     (funcall map-over-entries
 			#'(lambda ()
 			     (apply func-d473 args-46k))))))))
-      
+
       ;;Remove the marker
       (set-marker entry-pos nil)))
 
@@ -393,7 +393,7 @@ setting was changed."
 
 (defun org-choose-get-fn-map-group ()
    "Return a function to map over the group"
-   
+
    #'(lambda (fn)
        (require 'org-agenda) ;; `org-map-entries' seems to need it.
 	(save-excursion
@@ -402,7 +402,7 @@ setting was changed."
 	  (let
  	      ((level (org-reduced-level (org-outline-level))))
 	    (save-restriction
-	      (org-map-entries 
+	      (org-map-entries
 	       fn
 	       (format "LEVEL=%d" level)
 	       'tree))))))
@@ -418,10 +418,10 @@ If there is none, return 0"
 	 ;;Func maps over applicable entries.
 	 (map-over-entries
 	    (org-choose-get-fn-map-group))
-	 
+
 	 (indexes-list
 	    (remove nil
-	       (funcall map-over-entries 
+	       (funcall map-over-entries
 		  #'(lambda ()
 		       (org-choose-get-entry-index keywords))))))
       (if
@@ -438,7 +438,7 @@ given that another mark has index IX.
 DATA must be a `org-choose-mark-data.'."
 
    (let
-      (		
+      (
 	 (bot-lower-range
 	    (org-choose-mark-data.-bot-lower-range data))
 	 (top-upper-range
@@ -455,7 +455,7 @@ DATA must be a `org-choose-mark-data.'."
 
 ;;;_  . org-choose-get-default-mark-index
 
-(defun org-choose-get-default-mark-index (data) 
+(defun org-choose-get-default-mark-index (data)
   "Return the index of the default mark in a choose interpretation.
 
 DATA must be a `org-choose-mark-data.'."
@@ -475,7 +475,7 @@ DATA must be a `org-choose-mark-data.'."
 ;;;_  . org-choose-get-mark-N
 (defun org-choose-get-mark-N (n data)
    "Get the text of the nth mark in a choose interpretation."
-   
+
    (let*
       ((l (org-choose-mark-data.-all-keywords data)))
       (nth n l)))

+ 2 - 2
contrib/lisp/org-collector.el

@@ -87,7 +87,7 @@
 ;; | run (50)  |                          0.116446 |
 ;; | run (100) |                          0.118863 |
 ;; #+END:
-;; 
+;;
 
 ;;; Code:
 (require 'org)
@@ -134,7 +134,7 @@ preceeding the dblock, then update the contents of the dblock."
 	  (org-narrow-to-subtree)
 	  (setq stringformat (if noquote "%s" "%S"))
 	  (setq table (org-propview-to-table
-		       (org-propview-collect cols stringformat conds match scope inherit 
+		       (org-propview-collect cols stringformat conds match scope inherit
 					     (if colnames colnames cols)) stringformat))
 	  (widen))
 	(setq pos (point))

+ 0 - 1
contrib/lisp/org-drill.el

@@ -2915,4 +2915,3 @@ returns its return value."
 
 
 (provide 'org-drill)
-

File diff suppressed because it is too large
+ 383 - 264
contrib/lisp/org-element.el


+ 2 - 2
contrib/lisp/org-eval-light.el

@@ -67,7 +67,7 @@ large example block")
 (defcustom org-eval-light-interpreters '("lisp" "emacs-lisp" "ruby" "shell")
   "Interpreters allows for evaluation tags.
 This is a list of program names (as strings) that can evaluate code and
-insert the output into an Org-mode buffer.  Valid choices are 
+insert the output into an Org-mode buffer.  Valid choices are
 
 lisp    Interpret Emacs Lisp code and display the result
 shell   Pass command to the shell and display the result
@@ -189,7 +189,7 @@ commented by `org-eval-light-make-region-example'."
   (with-temp-buffer
     (insert code)
     (shell-command-on-region (point-min) (point-max) cmd nil 'replace)
-    (buffer-string)))  
+    (buffer-string)))
 
 (defadvice org-ctrl-c-ctrl-c (around org-cc-eval-source activate)
   (if (org-eval-light-inside-snippet)

+ 3 - 4
contrib/lisp/org-eval.el

@@ -105,7 +105,7 @@
 (defcustom org-eval-interpreters '("lisp")
   "Interpreters allows for evaluation tags.
 This is a list of program names (as strings) that can evaluate code and
-insert the output into an Org-mode buffer.  Valid choices are 
+insert the output into an Org-mode buffer.  Valid choices are
 
 lisp    Interpret Emacs Lisp code and display the result
 shell   Pass command to the shell and display the result
@@ -120,7 +120,7 @@ ruby    The ruby interpreter"
 	      (const "python")
 	      (const "ruby")
 	      (const "shell")))
-  
+
 (defun org-eval-handle-snippets (limit &optional replace)
   "Evaluate code snippets and display the results as display property.
 When REPLACE is non-nil, replace the code region with the result (used
@@ -212,9 +212,8 @@ This should go into the `org-export-preprocess-hook'."
   (with-temp-buffer
     (insert code)
     (shell-command-on-region (point-min) (point-max) cmd nil 'replace)
-    (buffer-string)))  
+    (buffer-string)))
 
 (provide 'org-eval)
 
 ;;; org-eval.el ends here
-

+ 13 - 13
contrib/lisp/org-expiry.el

@@ -25,7 +25,7 @@
 ;;; Commentary:
 ;;
 ;; This gives you a chance to get rid of old entries in your Org files
-;; by expiring them.  
+;; by expiring them.
 ;;
 ;; By default, entries that have no EXPIRY property are considered to be
 ;; new (i.e. 0 day old) and only entries older than one year go to the
@@ -33,7 +33,7 @@
 ;; your tasks will be deleted with the default settings.
 ;;
 ;; When does an entry expires?
-;; 
+;;
 ;; Consider this entry:
 ;;
 ;; * Stop watching TV
@@ -41,8 +41,8 @@
 ;;   :CREATED:  <2008-01-07 lun 08:01>
 ;;   :EXPIRY:   <2008-01-09 08:01>
 ;;   :END:
-;; 
-;; This entry will expire on the 9th, january 2008. 
+;;
+;; This entry will expire on the 9th, january 2008.
 
 ;; * Stop watching TV
 ;;   :PROPERTIES:
@@ -56,19 +56,19 @@
 ;; What happen when an entry is expired?  Nothing until you explicitely
 ;; M-x org-expiry-process-entries When doing this, org-expiry will check
 ;; for expired entries and request permission to process them.
-;; 
+;;
 ;; Processing an expired entries means calling the function associated
 ;; with `org-expiry-handler-function'; the default is to add the tag
-;; :ARCHIVE:, but you can also add a EXPIRED keyword or even archive 
-;; the subtree.  
+;; :ARCHIVE:, but you can also add a EXPIRED keyword or even archive
+;; the subtree.
 ;;
 ;; Is this useful?  Well, when you're in a brainstorming session, it
 ;; might be useful to know about the creation date of an entry, and be
 ;; able to archive those entries that are more than xxx days/weeks old.
-;; 
+;;
 ;; When you're in such a session, you can insinuate org-expiry like
-;; this: M-x org-expiry-insinuate 
-;; 
+;; this: M-x org-expiry-insinuate
+;;
 ;; Then, each time you're pressing M-RET to insert an item, the CREATION
 ;; property will be automatically added.  Same when you're scheduling or
 ;; deadlining items.  You can deinsinuate: M-x org-expiry-deinsinuate
@@ -218,7 +218,7 @@ and restart `org-mode' if necessary."
 Return nil if the entry is not expired.  Otherwise return the
 amount of time between today and the expiry date.
 
-If there is no creation date, use `org-expiry-created-date'.  
+If there is no creation date, use `org-expiry-created-date'.
 If there is no expiry date, use `org-expiry-expiry-date'."
   (let* ((ex-prop org-expiry-expiry-property-name)
 	 (cr-prop org-expiry-created-property-name)
@@ -292,7 +292,7 @@ update the date."
 	 d-time d-hour timestr)
     (when (or (null d) arg)
       ;; update if no date or non-nil prefix argument
-      ;; FIXME Use `org-time-string-to-time' 
+      ;; FIXME Use `org-time-string-to-time'
       (setq d-time (if d (org-time-string-to-time d)
 		     (current-time)))
       (setq d-hour (format-time-string "%H:%M" d-time))
@@ -326,7 +326,7 @@ and insert today's date."
     ;; maybe transform to inactive timestamp
     (if org-expiry-inactive-timestamps
 	(setq timestr (concat "[" (substring timestr 1 -1) "]")))
-     
+
     (save-excursion
       (org-entry-put
        (point) org-expiry-expiry-property-name timestr))))

+ 30 - 30
contrib/lisp/org-export-generic.el

@@ -35,7 +35,7 @@
 ;; org-set-generic-type function:
 ;;
 ;;    (org-set-generic-type
-;;     "really-basic-text" 
+;;     "really-basic-text"
 ;;     '(:file-suffix  ".txt"
 ;;       :key-binding  ?R
 ;;
@@ -155,10 +155,10 @@ in this way, it will be wrapped."
 
      :toc-section-numbers       t
      :toc-section-number-format "\#(%s) "
-     :toc-format                "--%s--"    
+     :toc-format                "--%s--"
      :toc-format-with-todo      "!!%s!!\n"
-     :toc-indent-char           ?\ 
-     :toc-indent-depth          4         
+     :toc-indent-char           ?\
+     :toc-indent-depth          4
 
      :toc-tags-export           t
      :toc-tags-prefix           "   <tags>"
@@ -217,7 +217,7 @@ in this way, it will be wrapped."
      :body-list-checkbox-half-end  "</checkbox (half)>"
 
 
-     
+
 
 					; other body lines
      :body-line-format             "%s"
@@ -257,10 +257,10 @@ in this way, it will be wrapped."
      :toc-export                t
      :toc-section-numbers       t
      :toc-section-number-format "%s "
-     :toc-format                "%s\n"    
+     :toc-format                "%s\n"
      :toc-format-with-todo      "%s (*)\n"
-     :toc-indent-char           ?\ 
-     :toc-indent-depth          4         
+     :toc-indent-char           ?\
+     :toc-indent-depth          4
 
      :body-header-section-numbers 3
      :body-section-prefix         "\n"
@@ -310,7 +310,7 @@ in this way, it will be wrapped."
 
      :body-section-header-prefix    ("= " "== " "=== "
 				     "==== " "===== " "====== ")
-     :body-section-header-suffix    (" =\n\n" " ==\n\n" " ===\n\n" 
+     :body-section-header-suffix    (" =\n\n" " ==\n\n" " ===\n\n"
 				     " ====\n\n" " =====\n\n" " ======\n\n")
 
      :body-line-export-preformated  t          ;; yes/no/maybe???
@@ -390,7 +390,7 @@ in this way, it will be wrapped."
      :body-list-format 	       "<t>%s</t>\n"
 
      )
-    ("trac-wiki" 
+    ("trac-wiki"
      :file-suffix     ".txt"
      :key-binding     ?T
 
@@ -409,7 +409,7 @@ in this way, it will be wrapped."
 
      :body-section-header-prefix    (" == " " === " " ==== "
 				     " ===== " )
-     :body-section-header-suffix    (" ==\n\n" " ===\n\n" " ====\n\n" 
+     :body-section-header-suffix    (" ==\n\n" " ===\n\n" " ====\n\n"
 				     " =====\n\n" " ======\n\n" " =======\n\n")
 
      :body-line-export-preformated  t ;; yes/no/maybe???
@@ -426,7 +426,7 @@ in this way, it will be wrapped."
      ;; this is ignored! [2010/02/02:rpg]
      :body-bullet-list-prefix       ("* " "** " "*** " "**** " "***** ")
      )
-    ("tikiwiki" 
+    ("tikiwiki"
      :file-suffix     ".txt"
      :key-binding     ?U
 
@@ -445,7 +445,7 @@ in this way, it will be wrapped."
 
      :body-section-header-prefix    ("! " "!! " "!!! " "!!!! "
 				     "!!!!! " "!!!!!! " "!!!!!!! ")
-     :body-section-header-suffix    (" \n" " \n" " \n" 
+     :body-section-header-suffix    (" \n" " \n" " \n"
 				     " \n" " \n" " \n")
 
 
@@ -498,12 +498,12 @@ the body of an org-set-generic-type definition."
      ))
 
 (def-org-export-generic-keyword :body-newline-paragraph
-    :documentation "Bound either to NIL or to a pattern to be 
+    :documentation "Bound either to NIL or to a pattern to be
 inserted in the output for every blank line in the input.
   The intention is to handle formats where text is flowed, and
 newlines are interpreted as significant \(e.g., as indicating
 preformatted text\).  A common non-nil value for this keyword
-is \"\\n\".  Should typically be combined with a value for 
+is \"\\n\".  Should typically be combined with a value for
 :body-line-format that does NOT end with a newline."
     :type string)
 
@@ -515,8 +515,8 @@ is \"\\n\".  Should typically be combined with a value for
 (def-org-export-generic-keyword :code-format)
 (def-org-export-generic-keyword :verbatim-format)
 
-    
-  
+
+
 
 (defun org-export-generic-remember-section (type suffix &optional prefix)
   (setq org-export-generic-section-type type)
@@ -569,7 +569,7 @@ underlined headlines.  The default is 3."
 			      (org-export-add-subtree-options opt-plist rbeg)
 			    opt-plist)))
 
-	 helpstart 
+	 helpstart
 	 (bogus (mapc (lambda (x)
 			(setq helpstart
 			      (concat helpstart "\["
@@ -611,7 +611,7 @@ underlined headlines.  The default is 3."
 	    (unless (setq ass (cadr (assq r2 cmds)))
 	      (error "No command associated with key %c" r1))
 
-	    (cdr (assoc 
+	    (cdr (assoc
 		  (if (equal ass "default") org-generic-export-type ass)
 		  org-generic-alist))))
 
@@ -732,11 +732,11 @@ underlined headlines.  The default is 3."
          (format-code (plist-get export-plist :code-format))
          (format-verbatim (plist-get export-plist :verbatim-format))
 
-         
+
 
 	 thetoc toctags have-headings first-heading-pos
 	 table-open table-buffer link-buffer link desc desc0 rpl wrap)
-    
+
     (let ((inhibit-read-only t))
       (org-unmodified
        (remove-text-properties (point-min) (point-max)
@@ -841,7 +841,7 @@ underlined headlines.  The default is 3."
 				(org-re "[ \t]+:\\([[:alnum:]_@:]+\\):[ \t]*$")
 				txt)
 			       (progn
-				 (setq 
+				 (setq
 				  toctags
 				  (org-export-generic-header
 				   (match-string 1 txt)
@@ -852,7 +852,7 @@ underlined headlines.  The default is 3."
 				  txt)
 				 (setq txt (replace-match "" t t txt)))
 			     (setq toctags tocnotagsstr)))
-			   
+
 			 (if (string-match quote-re0 txt)
 			     (setq txt (replace-match "" t t txt)))
 
@@ -871,7 +871,7 @@ underlined headlines.  The default is 3."
 				   "")
 
 				 (format
-				  (if todo tocformtodo tocformat) 
+				  (if todo tocformtodo tocformat)
 				  txt)
 
 				 toctags)
@@ -908,7 +908,7 @@ underlined headlines.  The default is 3."
 				      (substring link 8)
 				      org-export-code-refs)))
 			t t line))
-	  (setq rpl (concat "[" 
+	  (setq rpl (concat "["
 			    (or (match-string 3 line) (match-string 1 line))
 			    "]"))
 	  (when (and desc0 (not (equal desc0 link)))
@@ -1043,7 +1043,7 @@ underlined headlines.  The default is 3."
 	;;
 	(org-export-generic-check-section "body" bodytextpre bodytextsuf)
 
-        (setq line 
+        (setq line
               (org-export-generic-fontify line))
 
 	;; XXX: properties?  list?
@@ -1208,7 +1208,7 @@ REVERSE means to reverse the list if the plist match is a list
 	(setq result (concat result line))
 	(setq len 0)))
     (concat result indstr line)))
-			   
+
 (defun org-export-generic-push-links (link-buffer)
   "Push out links in the buffer."
   (when link-buffer
@@ -1258,13 +1258,13 @@ REVERSE means to reverse the list if the plist match is a list
 	))
      ;; same level
      ((= level old-level)
-      (insert 
+      (insert
        (org-export-generic-format export-plist :body-section-suffix 0 level))
       )
      )
     (insert
      (org-export-generic-format export-plist :body-section-prefix 0 level))
-    
+
     (if (and org-export-with-section-numbers
 	     secnums
 	     (or (not (numberp secnums))
@@ -1365,7 +1365,7 @@ REVERSE means to reverse the list if the plist match is a list
 Each element of the list is a list of three elements.
 The first element is the character used as a marker for fontification.
 The second element is a variable name, set in org-export-generic.  That
-variable will be dereferenced to obtain a formatting string to wrap 
+variable will be dereferenced to obtain a formatting string to wrap
 fontified text with.
 The third element decides whether to protect converted text from other
 conversions.")

File diff suppressed because it is too large
+ 466 - 332
contrib/lisp/org-export.el


+ 4 - 4
contrib/lisp/org-interactive-query.el

@@ -6,7 +6,7 @@
 ;; Version: 1.0
 ;; Keywords: org, wp
 ;;
-;; This file is not part of GNU Emacs. 
+;; This file is not part of GNU Emacs.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@
 ;; /   add a keyword as a positive selection criterion
 ;; \   add a keyword as a newgative selection criterion
 ;; =   clear a keyword from the selection string
-;; ;   
+;; ;
 
 (require 'org)
 
@@ -39,7 +39,7 @@
 (org-defkey org-agenda-mode-map "/" 'org-agenda-query-and-cmd)
 (org-defkey org-agenda-mode-map ";" 'org-agenda-query-or-cmd)
 (org-defkey org-agenda-mode-map "\\" 'org-agenda-query-not-cmd)
- 
+
 ;;; Agenda interactive query manipulation
 
 (defcustom org-agenda-query-selection-single-key t
@@ -283,7 +283,7 @@ keyword string."
 (defun org-agenda-query-generic-cmd (op)
   "Activate query manipulation with OP as initial operator."
   (let ((q (org-agenda-query-selection org-agenda-query-string op
-                                       org-tag-alist 
+                                       org-tag-alist
                                        (org-agenda-query-global-todo-keys))))
     (when q
       (setq org-agenda-query-string q)

+ 9 - 9
contrib/lisp/org-invoice.el

@@ -181,7 +181,7 @@ looks like tree2, where the level is 2."
         (when (or (not min) (< level min)) (setq min level))
         (when (> level max) (setq max level))))
     (cons (or min 0) max)))
-  
+
 (defun org-invoice-collapse-list (ls)
   "Reorganize the given list by dates."
   (let ((min-max (org-invoice-level-min-max ls)) new)
@@ -214,7 +214,7 @@ looks like tree2, where the level is 2."
                     (+ price (cdr (assoc 'price (car bucket)))))
             (nconc bucket (list info))))))
     (nreverse new)))
-  
+
 (defun org-invoice-info-to-table (info)
   "Create a single org table row from the given info alist."
   (let ((title (cdr (assoc 'title info)))
@@ -223,19 +223,19 @@ looks like tree2, where the level is 2."
         (price (cdr (assoc 'price info)))
         (with-price (plist-get org-invoice-table-params :price)))
     (unless total
-      (setq 
+      (setq
        org-invoice-total-time (+ org-invoice-total-time work)
        org-invoice-total-price (+ org-invoice-total-price price)))
     (setq total (and total (org-minutes-to-hh:mm-string total)))
     (setq work  (and work  (org-minutes-to-hh:mm-string work)))
-    (insert-before-markers 
+    (insert-before-markers
      (concat "|" title
              (cond
               (total (concat "|" total))
               (work  (concat "|" work)))
              (and with-price price (concat "|" (format "%.2f" price)))
              "|" "\n"))))
-  
+
 (defun org-invoice-list-to-table (ls)
   "Convert a list of heading info to an org table"
   (let ((with-price (plist-get org-invoice-table-params :price))
@@ -243,7 +243,7 @@ looks like tree2, where the level is 2."
         (with-header (plist-get org-invoice-table-params :headers))
         (org-invoice-total-time 0)
         (org-invoice-total-price 0))
-    (insert-before-markers 
+    (insert-before-markers
      (concat "| Task / Date | Time" (and with-price "| Price") "|\n"))
     (dolist (info ls)
       (insert-before-markers "|-\n")
@@ -268,9 +268,9 @@ heading that begins the invoice data, usually using the
       (org-clock-sum)
       (run-hook-with-args 'org-invoice-start-hook)
       (cons org-invoice-current-invoice
-            (org-invoice-collapse-list 
+            (org-invoice-collapse-list
              (org-map-entries 'org-invoice-heading-info t 'tree 'archive))))))
-  
+
 (defun org-dblock-write:invoice (params)
   "Function called by OrgMode to write the invoice dblock.  To
 create an invoice dblock you can use the `org-invoice-report'
@@ -397,5 +397,5 @@ I place mine under a third-level heading like so:
     (if report (goto-char report)
       (org-create-dblock (list :name "invoice")))
     (org-update-dblock)))
-  
+
 (provide 'org-invoice)

+ 3 - 3
contrib/lisp/org-mac-iCal.el

@@ -101,7 +101,7 @@ the the Emacs diary"
     (shell-command "sw_vers" (current-buffer))
     (when (re-search-backward "10\\.[567]" nil t)
       (omi-concat-leopard-ics all-calendars)))
-  
+
   ;; move all caldav ics files to the same place as local ics files
   (mapc
    (lambda (x)
@@ -111,7 +111,7 @@ the the Emacs diary"
                      (concat "~/Library/Calendars/" y)))
       (directory-files x nil ".*ics$")))
    caldav-folders)
-  
+
   ;; check calendar has contents and import
   (setq import-calendars (directory-files "~/Library/Calendars" 1 ".*ics$"))
   (mapc
@@ -181,7 +181,7 @@ date range so that Emacs calendar view doesn't grind to a halt"
                   (* (/ org-mac-iCal-range 2) 30))
 	  (delete-region startEntry endEntry)))
           (goto-char (point-max))))
-    (while 
+    (while
 	(re-search-forward "^END:VEVENT$" nil t)
       (delete-blank-lines))
     (goto-line 1)

+ 5 - 5
contrib/lisp/org-mac-link-grabber.el

@@ -2,7 +2,7 @@
 ;;; application and insert them as links into org-mode documents
 ;;
 ;; Copyright (c) 2010-2012 Free Software Foundation, Inc.
-;; 
+;;
 ;; Author: Anthony Lander <anthony.lander@gmail.com>
 ;; Version: 1.0.1
 ;; Keywords: org, mac, hyperlink
@@ -52,7 +52,7 @@
 ;; add (require 'org-mac-link-grabber) to your .emacs, and optionally
 ;; bind a key to activate the link grabber menu, like this:
 ;;
-;; (add-hook 'org-mode-hook (lambda () 
+;; (add-hook 'org-mode-hook (lambda ()
 ;;   (define-key org-mode-map (kbd "C-c g") 'omlg-grab-link)))
 ;;
 ;;
@@ -161,7 +161,7 @@ applications and inserting them in org documents"
 			  (when (and active (eq input key))
 				(call-interactively grab-function))))
 		  descriptors)))
-  
+
 (defalias 'omgl-grab-link 'omlg-grab-link
   "Renamed, and this alias will be obsolete next revision.")
 
@@ -344,7 +344,7 @@ applications and inserting them in org documents"
 					 "	return theUrl & \"::split::\" & theName & \"\n\"\n"
 					 "end tell\n"))))
 	(car (split-string result "[\r\n]+" t))))
-	
+
 (defun org-mac-safari-get-frontmost-url ()
   (interactive)
   (message "Applescript: Getting Safari url...")
@@ -361,7 +361,7 @@ applications and inserting them in org documents"
 (defun org-mac-safari-insert-frontmost-url ()
   (interactive)
   (insert (org-mac-safari-get-frontmost-url)))
-		
+
 
 ;;
 ;;

+ 3 - 3
contrib/lisp/org-mairix.el

@@ -207,7 +207,7 @@ applications in order to mimic `org-store-link'.  Used by
   :group 'org-mairix)
 
 (defcustom org-mairix-mutt-display-command
-  "xterm -title 'mairix search: %search%' -e 'unset COLUMNS; mutt -f 
+  "xterm -title 'mairix search: %search%' -e 'unset COLUMNS; mutt -f
 ~/mail/mairix -e \"push <display-message>\"' &"
   "Command to execute to display mairix search results via mutt within
 an xterm.
@@ -244,7 +244,7 @@ along with general mairix configuration."
   :group 'org-mairix-gnus
   :type 'string)
 
-(defcustom org-mairix-gnus-select-display-group-function 
+(defcustom org-mairix-gnus-select-display-group-function
 'org-mairix-gnus-select-display-group-function-gg
   "Hook to call to select the group that contains the matching articles.
 We should not need this, it is owed to a problem of gnus that people were
@@ -285,7 +285,7 @@ to do that -- so you're likely to see zombies floating around.
 
 If you can improve this, please do!"
   (if (not (equal (substring search 0 2) "m:" ))
-      (error "org-mairix-gnus-display-results: display of search other than 
+      (error "org-mairix-gnus-display-results: display of search other than
 message-id not implemented yet"))
   (setq message-id (substring search 2 nil))
   (require 'gnus)

+ 2 - 2
contrib/lisp/org-mime.el

@@ -43,13 +43,13 @@
 ;;
 ;; you might want to bind this to a key with something like the
 ;; following message-mode binding
-;; 
+;;
 ;;   (add-hook 'message-mode-hook
 ;;             (lambda ()
 ;;               (local-set-key "\C-c\M-o" 'org-mime-htmlize)))
 ;;
 ;; and the following org-mode binding
-;; 
+;;
 ;;   (add-hook 'org-mode-hook
 ;;             (lambda ()
 ;;               (local-set-key "\C-c\M-o" 'org-mime-org-buffer-htmlize)))

+ 1 - 1
contrib/lisp/org-mtags.el

@@ -1,4 +1,5 @@
 ;;; org-mtags.el --- Muse-like tags in Org-mode
+
 ;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
@@ -254,4 +255,3 @@ with string values.  In addition, it reutnrs the following properties:
 (provide 'org-mtags)
 
 ;;; org-mtags.el ends here
-

+ 5 - 5
contrib/lisp/org-notmuch.el

@@ -32,7 +32,7 @@
 
 ;; Links have one the following form
 ;; notmuch:<search terms>
-;; notmuch-search:<search terms>. 
+;; notmuch-search:<search terms>.
 
 ;; The first form open the queries in notmuch-show mode, whereas the
 ;; second link open it in notmuch-search mode. Note that queries are
@@ -61,13 +61,13 @@
       (setq link (org-make-link "notmuch:"  "id:" message-id))
       (org-add-link-props :link link :description desc)
       link)))
-  
+
 (defun org-notmuch-open (path)
   "Follow a notmuch message link specified by PATH."
   (org-notmuch-follow-link path))
 
 (defun org-notmuch-follow-link (search)
-  "Follow a notmuch link to SEARCH. 
+  "Follow a notmuch link to SEARCH.
 
 Can link to more than one message, if so all matching messages are shown."
   (require 'notmuch)
@@ -82,10 +82,10 @@ Can link to more than one message, if so all matching messages are shown."
 (defun org-notmuch-search-store-link ()
   "Store a link to a notmuch search or message."
   (when (eq major-mode 'notmuch-search-mode)
-    (let ((link (org-make-link "notmuch-search:" 
+    (let ((link (org-make-link "notmuch-search:"
 			       (org-link-escape notmuch-search-query-string)))
 	  (desc (concat "Notmuch search: " notmuch-search-query-string)))
-      (org-store-link-props :type "notmuch-search" 
+      (org-store-link-props :type "notmuch-search"
 			    :link link
 			    :description desc)
       link)))

+ 0 - 2
contrib/lisp/org-panel.el

@@ -639,5 +639,3 @@ button changes the binding of the arrow keys."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;;; org-panel.el ends here
-
-

+ 4 - 4
contrib/lisp/org-registry.el

@@ -145,15 +145,15 @@ buffer."
 
 (defun org-registry-assoc-all (link &optional registry)
   "Return all associated entries of LINK in the registry."
-  (org-registry-find-all 
+  (org-registry-find-all
    (lambda (entry) (string= link (car entry)))
    registry))
 
 (defun org-registry-find-all (test &optional registry)
   "Return all entries satisfying `test' in the registry."
-  (delq nil 
-        (mapcar 
-         (lambda (x) (and (funcall test x) x)) 
+  (delq nil
+        (mapcar
+         (lambda (x) (and (funcall test x) x))
          (or registry org-registry-alist))))
 
 ;;;###autoload

+ 4 - 4
contrib/lisp/org-screen.el

@@ -40,7 +40,7 @@
 ;; associated with that task, go to the end of your item and type:
 ;;
 ;; M-x org-screen
-;; 
+;;
 ;; This will prompt you for a name of a screen session.  Type in a
 ;; name and it will insert a link into your org file at your current
 ;; location.
@@ -79,10 +79,10 @@ is copied from ansi-term method."
 
   ;; Pick the name of the new buffer.
   (let ((term-ansi-buffer-name
-        (generate-new-buffer-name 
+        (generate-new-buffer-name
          (org-screen-buffer-name name))))
     (setq term-ansi-buffer-name
-          (term-ansi-make-term 
+          (term-ansi-make-term
           term-ansi-buffer-name org-screen-program-name nil arg name))
     (set-buffer term-ansi-buffer-name)
     (term-mode)
@@ -104,5 +104,5 @@ is copied from ansi-term method."
 		 '("screen" . "elisp:(org-screen-goto \"%s\")"))
   (setq org-link-abbrev-alist
 	'(("screen" . "elisp:(org-screen-goto \"%s\")"))))
- 
+
 (provide 'org-screen)

+ 6 - 6
contrib/lisp/org-static-mathjax.el

@@ -86,7 +86,7 @@ org-static-mathjax-options:      The string given with #+STATICMATHJAX: in the f
 						 (set 'org-static-mathjax-mathjax-path
 							  (car (read-from-string
 									(substring mathjax-options (match-end 0))))))))
-			   (add-hook 'after-save-hook 
+			   (add-hook 'after-save-hook
 						 'org-static-mathjax-process
 						 nil t)))))
 
@@ -117,20 +117,20 @@ org-static-mathjax-options:      The string given with #+STATICMATHJAX: in the f
 			 (set symbol (eval (car (read-from-string
 									 (substring options (match-end 0))))))))
 	   '(embed-fonts output-file-name))
-	  
+
 	  ; debug
 	  (when org-static-mathjax-debug
 		(message "output file name, embed-fonts")
 		(print output-file-name)
 		(print embed-fonts))
-	  
+
 	  ; open (temporary) input file, copy contents there, replace MathJax path with local installation
 	  (with-temp-buffer
 		(insert html-code)
 		(goto-char 1)
 		(replace-regexp mathjax-oldpath mathjax-newpath)
 		(write-file input-file-name))
-	  
+
 	  ; prepare argument list for call-process
 	  (let ((call-process-args (list org-static-mathjax-xulrunner-path
 									 nil nil nil
@@ -146,10 +146,10 @@ org-static-mathjax-options:      The string given with #+STATICMATHJAX: in the f
 		(if (not embed-fonts)
 			(progn
 			  (add-to-list 'call-process-args "--final-mathjax-url" t)
-			  (add-to-list 'call-process-args 
+			  (add-to-list 'call-process-args
 						   (file-name-directory org-static-mathjax-mathjax-path)
 						   t)))
-		
+
 		; debug
 		(when org-static-mathjax-debug
 		  (print call-process-args))

+ 4 - 3
contrib/lisp/org-sudoku.el

@@ -1,5 +1,6 @@
 ;;; org-sudoku.el --- Greate and solve SUDOKU games in Org tables
-;; Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+
+;; Copyright (C) 2012 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp, games
@@ -126,7 +127,7 @@ This works by solving the whole game, then inserting only the single field."
     (setq game (org-sudoku-solve-game game))
     (if game
 	(progn
-	  (org-table-put i j (number-to-string 
+	  (org-table-put i j (number-to-string
 			      (nth 1 (assoc (cons i j) game)))
 			 'align)
 	  (org-table-goto-line i)
@@ -139,7 +140,7 @@ This works by solving the whole game, then inserting only the single field."
   "Interpret table at point as sudoku game and read it.
 A game structure is returned."
   (let (b e g i j game)
-    
+
     (org-table-goto-line 1)
     (org-table-goto-column 1)
     (setq b (point))

+ 4 - 4
contrib/lisp/org-toc.el

@@ -278,7 +278,7 @@ specified, then make `org-toc-recenter' use this value."
 ;;; Navigation functions:
 (defun org-toc-goto (&optional jump cycle)
   "From Org TOC buffer, follow the targeted subtree in the Org window.
-If JUMP is non-nil, go to the base buffer.  
+If JUMP is non-nil, go to the base buffer.
 If JUMP is 'delete, go to the base buffer and delete other windows.
 If CYCLE is non-nil, cycle the targeted subtree in the Org window."
   (interactive)
@@ -459,15 +459,15 @@ status."
 (defun org-toc-help ()
   "Display a quick help message in the echo-area for `org-toc-mode'."
   (interactive)
-  (let ((st-start 0) 
+  (let ((st-start 0)
 	(help-message
 	 "\[space\]   show heading                     \[1-4\] hide headlines below this level
 \[TAB\]     jump to heading                  \[f\]   toggle follow mode (currently %s)
 \[return\]  jump and delete others windows   \[i\]   toggle info mode (currently %s)
 \[S-TAB\]   cycle subtree (in Org)           \[S\]   toggle show subtree mode (currently %s)
-\[C-S-TAB\] global cycle (in Org)            \[r\]   toggle recenter mode (currently %s)   
+\[C-S-TAB\] global cycle (in Org)            \[r\]   toggle recenter mode (currently %s)
 \[:\]       cycle subtree (in TOC)           \[c\]   toggle column view (currently %s)
-\[n/p\]     next/previous heading            \[s\]   save TOC configuration 
+\[n/p\]     next/previous heading            \[s\]   save TOC configuration
 \[q\]       quit the TOC                     \[g\]   restore last TOC configuration"))
     (while (string-match "\\[[^]]+\\]" help-message st-start)
       (add-text-properties (match-beginning 0)

+ 3 - 3
contrib/lisp/org-wikinodes.el

@@ -174,7 +174,7 @@ setting of `org-wikinodes-create-targets'."
 	(message "New Wiki target `%s' created in current buffer"
 		 target))))))
 
-;;; The target cache 
+;;; The target cache
 
 (defvar org-wikinodes-directory-targets-cache nil)
 
@@ -206,7 +206,7 @@ setting of `org-wikinodes-create-targets'."
 	(while (re-search-forward re nil t)
 	  (push (org-match-string-no-properties 4) targets))))
     (nreverse targets)))
-		    
+
 (defun org-wikinodes-get-links-for-directory (dir)
   "Return an alist that connects wiki links to files in directory DIR."
   (let ((files (directory-files dir nil "\\`[^.#].*\\.org\\'"))
@@ -328,7 +328,7 @@ with working links."
 	(setcdr m (cons '(org-wikinodes-activate-links) (cdr m)))
       (message
        "Failed to add wikinodes to `org-font-lock-extra-keywords'."))))
-  
+
 (add-hook 'org-font-lock-set-keywords-hook
 	  'org-wikinodes-add-to-font-lock-keywords)
 

+ 3 - 3
contrib/lisp/org2rem.el

@@ -402,7 +402,7 @@ REM %s %s MSG EVENT:%s%s %s%s%%
 	      (insert sexp "\n"))))
 	;; (princ (org-diary-to-rem-string sexp-buffer))
 	(kill-buffer sexp-buffer))
-      
+
       (when org-remind-include-todo
 	(setq prefix "TODO-")
 	(goto-char (point-min))
@@ -450,7 +450,7 @@ REM %s %s MSG EVENT:%s%s %s%s%%
                                 (if dos diff-days 0)
                               (if dos 0 diff-days))
                           1000)))
-              
+
               (if (and (numberp org-rem-aw) (> org-rem-aw 0))
                   (setq remind-aw (+ (or remind-aw 0) org-rem-aw)))
 
@@ -470,7 +470,7 @@ REM %s %s MSG EVENT:%s%s %s%s%%
               (and due (setq due (org-rem-ts-to-remind-date-type due)))
               (and start (setq start (org-rem-ts-to-remind-date-type start)))
               (and remind-ew (setq remind-ew (org-rem-ts-to-remind-date-type remind-ew)))
-               
+
 	      (if (string-match org-bracket-link-regexp hd)
 		  (setq hd (replace-match (if (match-end 3) (match-string 3 hd)
 					    (match-string 1 hd))

+ 0 - 1
contrib/lisp/test-org-export-preproc.el

@@ -36,4 +36,3 @@
       (org-pop-to-buffer-same-window "*preproc-temp*")
       (point-max)
       (insert string))))
-

BIN
contrib/odt/BasicODConverter/BasicODConverter-0.8.0.oxt


+ 213 - 0
contrib/odt/BasicODConverter/Filters.bas

@@ -0,0 +1,213 @@
+REM  *****  BASIC  *****
+
+Dim DocTypes
+
+Private DocTypeToFiltersMap As New Collection
+Private WriterExportFilters As New Collection
+Private WriterWebExportFilters As New Collection
+Private CalcExportFilters As New Collection
+Private ImpressExportFilters As New Collection
+Private DrawExportFilters As New Collection
+
+
+Private ExportFiltersInited As Boolean
+
+Sub InitExportFilters
+	If ExportFiltersInited Then
+		Exit Sub
+	End If
+
+ 	DocTypes = Array(_
+			 "com.sun.star.text.TextDocument", _
+			 "com.sun.star.sheet.SpreadsheetDocument", _
+			 "com.sun.star.presentation.PresentationDocument", _
+			 "com.sun.star.drawing.DrawingDocument",_
+			 "com.sun.star.text.WebDocument"_
+			 )
+	With WriterExportFilters
+		.Add Key := "bib"       , Item :=Array("bib"   , "BibTeX"                                                       , "BibTeX_Writer                                 ")
+		.Add Key := "doc"       , Item :=Array("doc"   , "Microsoft Word 97/2000/XP"                                    , "MS Word 97                                    ")
+		.Add Key := "doc6"      , Item :=Array("doc"   , "Microsoft Word 6.0"                                           , "MS WinWord 6.0                                ")
+		.Add Key := "doc95"     , Item :=Array("doc"   , "Microsoft Word 95"                                            , "MS Word 95                                    ")
+		.Add Key := "docbook"   , Item :=Array("xml"   , "DocBook"                                                      , "DocBook File                                  ")
+		.Add Key := "html"      , Item :=Array("html"  , "HTML Document (OpenOffice.org Writer)"                        , "HTML (StarWriter)                             ")
+		.Add Key := "latex"     , Item :=Array("ltx"   , "LaTeX 2e"                                                     , "LaTeX_Writer                                  ")
+		.Add Key := "mediawiki" , Item :=Array("txt"   , "MediaWiki"                                                    , "MediaWiki                                     ")
+		.Add Key := "odt"       , Item :=Array("odt"   , "ODF Text Document"                                            , "writer8                                       ")
+		.Add Key := "ooxml"     , Item :=Array("xml"   , "Microsoft Office Open XML"                                    , "MS Word 2003 XML                              ")
+		.Add Key := "ott"       , Item :=Array("ott"   , "Open Document Text"                                           , "writer8_template                              ")
+		.Add Key := "pdf"       , Item :=Array("pdf"   , "Portable Document Format"                                     , "writer_pdf_Export                             ")
+		.Add Key := "rtf"       , Item :=Array("rtf"   , "Rich Text Format"                                             , "Rich Text Format                              ")
+		.Add Key := "sdw"       , Item :=Array("sdw"   , "StarWriter 5.0"                                               , "StarWriter 5.0                                ")
+		.Add Key := "sdw3"      , Item :=Array("sdw"   , "StarWriter 3.0"                                               , "StarWriter 3.0                                ")
+		.Add Key := "sdw4"      , Item :=Array("sdw"   , "StarWriter 4.0"                                               , "StarWriter 4.0                                ")
+		.Add Key := "stw"       , Item :=Array("stw"   , "Open Office.org 1.0 Text Document Template"                   , "writer_StarOffice_XML_Writer_Template         ")
+		.Add Key := "sxw"       , Item :=Array("sxw"   , "Open Office.org 1.0 Text Document"                            , "StarOffice XML (Writer)                       ")
+		.Add Key := "text"      , Item :=Array("txt"   , "Text Encoded"                                                 , "Text (encoded)                                ")
+		.Add Key := "txt"       , Item :=Array("txt"   , "Text"                                                         , "Text                                          ")
+		.Add Key := "uot"       , Item :=Array("uot"   , "Unified Office Format text"                                   , "UOF text                                      ")
+		.Add Key := "vor"       , Item :=Array("vor"   , "StarWriter 5.0 Template"                                      , "StarWriter 5.0 Vorlage/Template               ")
+		.Add Key := "vor3"      , Item :=Array("vor"   , "StarWriter 3.0 Template"                                      , "StarWriter 3.0 Vorlage/Template               ")
+		.Add Key := "vor4"      , Item :=Array("vor"   , "StarWriter 4.0 Template"                                      , "StarWriter 4.0 Vorlage/Template               ")
+		.Add Key := "xhtml"     , Item :=Array("html"  , "XHTML Document"                                               , "XHTML Writer File                             ")
+	End With
+
+	With DrawExportFilters
+		.Add Key := "bmp"       , Item :=Array("bmp"   , "Windows Bitmap"                                               , "draw_bmp_Export                               ")
+		.Add Key := "emf"       , Item :=Array("emf"   , "Enhanced Metafile"                                            , "draw_emf_Export                               ")
+		.Add Key := "eps"       , Item :=Array("eps"   , "Encapsulated PostScript"                                      , "draw_eps_Export                               ")
+		.Add Key := "gif"       , Item :=Array("gif"   , "Graphics Interchange Format"                                  , "draw_gif_Export                               ")
+		.Add Key := "html"      , Item :=Array("html"  , "HTML Document (OpenOffice.org Draw)"                          , "draw_html_Export                              ")
+		.Add Key := "jpg"       , Item :=Array("jpg"   , "Joint Photographic Experts Group"                             , "draw_jpg_Export                               ")
+		.Add Key := "met"       , Item :=Array("met"   , "OS/2 Metafile"                                                , "draw_met_Export                               ")
+		.Add Key := "odd"       , Item :=Array("odd"   , "OpenDocument Drawing"                                         , "draw8                                         ")
+		.Add Key := "otg"       , Item :=Array("otg"   , "OpenDocument Drawing Template"                                , "draw8_template                                ")
+		.Add Key := "pbm"       , Item :=Array("pbm"   , "Portable Bitmap"                                              , "draw_pbm_Export                               ")
+		.Add Key := "pct"       , Item :=Array("pct"   , "Mac Pict"                                                     , "draw_pct_Export                               ")
+		.Add Key := "pdf"       , Item :=Array("pdf"   , "Portable Document Format"                                     , "draw_pdf_Export                               ")
+		.Add Key := "pgm"       , Item :=Array("pgm"   , "Portable Graymap"                                             , "draw_pgm_Export                               ")
+		.Add Key := "png"       , Item :=Array("png"   , "Portable Network Graphic"                                     , "draw_png_Export                               ")
+		.Add Key := "ppm"       , Item :=Array("ppm"   , "Portable Pixelmap"                                            , "draw_ppm_Export                               ")
+		.Add Key := "ras"       , Item :=Array("ras"   , "Sun Raster Image"                                             , "draw_ras_Export                               ")
+		.Add Key := "std"       , Item :=Array("std"   , "OpenOffice.org 1.0 Drawing Template"                          , "draw_StarOffice_XML_Draw_Template             ")
+		.Add Key := "svg"       , Item :=Array("svg"   , "Scalable Vector Graphics"                                     , "draw_svg_Export                               ")
+		.Add Key := "svm"       , Item :=Array("svm"   , "StarView Metafile"                                            , "draw_svm_Export                               ")
+		.Add Key := "swf"       , Item :=Array("swf"   , "Macromedia Flash (SWF)"                                       , "draw_flash_Export                             ")
+		.Add Key := "sxd"       , Item :=Array("sxd"   , "OpenOffice.org 1.0 Drawing"                                   , "StarOffice XML (Draw)                         ")
+		.Add Key := "sxd3"      , Item :=Array("sxd"   , "StarDraw 3.0"                                                 , "StarDraw 3.0                                  ")
+		.Add Key := "sxd5"      , Item :=Array("sxd"   , "StarDraw 5.0"                                                 , "StarDraw 5.0                                  ")
+		.Add Key := "tiff"      , Item :=Array("tiff"  , "Tagged Image File Format"                                     , "draw_tif_Export                               ")
+		.Add Key := "vor"       , Item :=Array("vor"   , "StarDraw 5.0 Template"                                        , "StarDraw 5.0 Vorlage                          ")
+		.Add Key := "vor3"      , Item :=Array("vor"   , "StarDraw 3.0 Template"                                        , "StarDraw 3.0 Vorlage                          ")
+		.Add Key := "wmf"       , Item :=Array("wmf"   , "Windows Metafile"                                             , "draw_wmf_Export                               ")
+		.Add Key := "xhtml"     , Item :=Array("xhtml" , "XHTML"                                                        , "XHTML Draw File                               ")
+		.Add Key := "xpm"       , Item :=Array("xpm"   , "X PixMap"                                                     , "draw_xpm_Export                               ")
+
+
+	End With
+
+	With ImpressExportFilters
+		.Add Key := "bmp"       , Item :=Array("bmp"   , "Windows Bitmap"                                               , "impress_bmp_Export                            ")
+		.Add Key := "emf"       , Item :=Array("emf"   , "Enhanced Metafile"                                            , "impress_emf_Export                            ")
+		.Add Key := "eps"       , Item :=Array("eps"   , "Encapsulated PostScript"                                      , "impress_eps_Export                            ")
+		.Add Key := "gif"       , Item :=Array("gif"   , "Graphics Interchange Format"                                  , "impress_gif_Export                            ")
+		.Add Key := "html"      , Item :=Array("html"  , "HTML Document (OpenOffice.org Impress)"                       , "impress_html_Export                           ")
+		.Add Key := "jpg"       , Item :=Array("jpg"   , "Joint Photographic Experts Group"                             , "impress_jpg_Export                            ")
+		.Add Key := "met"       , Item :=Array("met"   , "OS/2 Metafile"                                                , "impress_met_Export                            ")
+		.Add Key := "odg"       , Item :=Array("odg"   , "ODF Drawing (Impress)"                                        , "impress8_draw                                 ")
+		.Add Key := "odp"       , Item :=Array("odp"   , "ODF Presentation"                                             , "impress8                                      ")
+		.Add Key := "otp"       , Item :=Array("otp"   , "ODF Presentation Template"                                    , "impress8_template                             ")
+		.Add Key := "pbm"       , Item :=Array("pbm"   , "Portable Bitmap"                                              , "impress_pbm_Export                            ")
+		.Add Key := "pct"       , Item :=Array("pct"   , "Mac Pict"                                                     , "impress_pct_Export                            ")
+		.Add Key := "pdf"       , Item :=Array("pdf"   , "Portable Document Format"                                     , "impress_pdf_Export                            ")
+		.Add Key := "pgm"       , Item :=Array("pgm"   , "Portable Graymap"                                             , "impress_pgm_Export                            ")
+		.Add Key := "png"       , Item :=Array("png"   , "Portable Network Graphic"                                     , "impress_png_Export                            ")
+		.Add Key := "pot"       , Item :=Array("pot"   , "Microsoft PowerPoint 97/2000/XP Template"                     , "MS PowerPoint 97 Vorlage                      ")
+		.Add Key := "ppm"       , Item :=Array("ppm"   , "Portable Pixelmap"                                            , "impress_ppm_Export                            ")
+		.Add Key := "ppt"       , Item :=Array("ppt"   , "Microsoft PowerPoint 97/2000/XP"                              , "MS PowerPoint 97                              ")
+		.Add Key := "pwp"       , Item :=Array("pwp"   , "PlaceWare"                                                    , "placeware_Export                              ")
+		.Add Key := "ras"       , Item :=Array("ras"   , "Sun Raster Image"                                             , "impress_ras_Export                            ")
+		.Add Key := "sda"       , Item :=Array("sda"   , "StarDraw 5.0 (OpenOffice.org Impress)"                        , "StarDraw 5.0 (StarImpress)                    ")
+		.Add Key := "sdd"       , Item :=Array("sdd"   , "StarImpress 5.0"                                              , "StarImpress 5.0                               ")
+		.Add Key := "sdd3"      , Item :=Array("sdd"   , "StarDraw 3.0 (OpenOffice.org Impress)"                        , "StarDraw 3.0 (StarImpress)                    ")
+		.Add Key := "sdd4"      , Item :=Array("sdd"   , "StarImpress 4.0"                                              , "StarImpress 4.0                               ")
+		.Add Key := "sti"       , Item :=Array("sti"   , "OpenOffice.org 1.0 Presentation Template"                     , "impress_StarOffice_XML_Impress_Template       ")
+		.Add Key := "svg"       , Item :=Array("svg"   , "Scalable Vector Graphics"                                     , "impress_svg_Export                            ")
+		.Add Key := "svm"       , Item :=Array("svm"   , "StarView Metafile"                                            , "impress_svm_Export                            ")
+		.Add Key := "swf"       , Item :=Array("swf"   , "Macromedia Flash (SWF)"                                       , "impress_flash_Export                          ")
+		.Add Key := "sxd"       , Item :=Array("sxd"   , "OpenOffice.org 1.0 Drawing (OpenOffice.org Impress)"          , "impress_StarOffice_XML_Draw                   ")
+		.Add Key := "sxi"       , Item :=Array("sxi"   , "OpenOffice.org 1.0 Presentation"                              , "StarOffice XML (Impress)                      ")
+		.Add Key := "tiff"      , Item :=Array("tiff"  , "Tagged Image File Format"                                     , "impress_tif_Export                            ")
+		.Add Key := "uop"       , Item :=Array("uop"   , "Unified Office Format presentation"                           , "UOF presentation                              ")
+		.Add Key := "vor"       , Item :=Array("vor"   , "StarImpress 5.0 Template"                                     , "StarImpress 5.0 Vorlage                       ")
+		.Add Key := "vor3"      , Item :=Array("vor"   , "StarDraw 3.0 Template (OpenOffice.org Impress)"               , "StarDraw 3.0 Vorlage (StarImpress)            ")
+		.Add Key := "vor4"      , Item :=Array("vor"   , "StarImpress 4.0 Template"                                     , "StarImpress 4.0 Vorlage                       ")
+		.Add Key := "vor5"      , Item :=Array("vor"   , "StarDraw 5.0 Template (OpenOffice.org Impress)"               , "StarDraw 5.0 Vorlage (StarImpress)            ")
+		.Add Key := "wmf"       , Item :=Array("wmf"   , "Windows Metafile"                                             , "impress_wmf_Export                            ")
+		.Add Key := "xhtml"     , Item :=Array("xml"   , "XHTML"                                                        , "XHTML Impress File                            ")
+		.Add Key := "xpm"       , Item :=Array("xpm"   , "X PixMap"                                                     , "impress_xpm_Export                            ")
+
+	End With
+
+	With CalcExportFilters
+		.Add Key := "csv"       , Item :=Array("csv"   , "Text CSV"                                                     , "Text - txt - csv (StarCalc)                   ")
+		.Add Key := "dbf"       , Item :=Array("dbf"   , "dBASE"                                                        , "dBase                                         ")
+		.Add Key := "dif"       , Item :=Array("dif"   , "Data Interchange Format"                                      , "DIF                                           ")
+		.Add Key := "html"      , Item :=Array("html"  , "HTML Document (OpenOffice.org Calc)"                          , "HTML (StarCalc)                               ")
+		.Add Key := "ods"       , Item :=Array("ods"   , "ODF Spreadsheet"                                              , "calc8                                         ")
+		.Add Key := "ooxml"     , Item :=Array("xml"   , "Microsoft Excel 2003 XML"                                     , "MS Excel 2003 XML                             ")
+		.Add Key := "ots"       , Item :=Array("ots"   , "ODF Spreadsheet Template"                                     , "calc8_template                                ")
+		.Add Key := "pdf"       , Item :=Array("pdf"   , "Portable Document Format"                                     , "calc_pdf_Export                               ")
+		.Add Key := "sdc"       , Item :=Array("sdc"   , "StarCalc 5.0"                                                 , "StarCalc 5.0                                  ")
+		.Add Key := "sdc3"      , Item :=Array("sdc"   , "StarCalc 3.0"                                                 , "StarCalc 3.0                                  ")
+		.Add Key := "sdc4"      , Item :=Array("sdc"   , "StarCalc 4.0"                                                 , "StarCalc 4.0                                  ")
+		.Add Key := "slk"       , Item :=Array("slk"   , "SYLK"                                                         , "SYLK                                          ")
+		.Add Key := "stc"       , Item :=Array("stc"   , "OpenOffice.org 1.0 Spreadsheet Template"                      , "calc_StarOffice_XML_Calc_Template             ")
+		.Add Key := "sxc"       , Item :=Array("sxc"   , "OpenOffice.org 1.0 Spreadsheet"                               , "StarOffice XML (Calc)                         ")
+		.Add Key := "uos"       , Item :=Array("uos"   , "Unified Office Format spreadsheet"                            , "UOF spreadsheet                               ")
+		.Add Key := "vor"       , Item :=Array("vor"   , "StarCalc 5.0 Template"                                        , "StarCalc 5.0 Vorlage/Template                 ")
+		.Add Key := "vor3"      , Item :=Array("vor"   , "StarCalc 3.0 Template"                                        , "StarCalc 3.0 Vorlage/Template                 ")
+		.Add Key := "vor4"      , Item :=Array("vor"   , "StarCalc 4.0 Template"                                        , "StarCalc 4.0 Vorlage/Template                 ")
+		.Add Key := "xhtml"     , Item :=Array("xhtml" , "XHTML"                                                        , "XHTML Calc File                               ")
+		.Add Key := "xls"       , Item :=Array("xls"   , "Microsoft Excel 97/2000/XP"                                   , "MS Excel 97                                   ")
+		.Add Key := "xls5"      , Item :=Array("xls"   , "Microsoft Excel 5.0"                                          , "MS Excel 5.0/95                               ")
+		.Add Key := "xls95"     , Item :=Array("xls"   , "Microsoft Excel 95"                                           , "MS Excel 95                                   ")
+		.Add Key := "xlt"       , Item :=Array("xlt"   , "Microsoft Excel 97/2000/XP Template"                          , "MS Excel 97 Vorlage/Template                  ")
+		.Add Key := "xlt5"      , Item :=Array("xlt"   , "Microsoft Excel 5.0 Template"                                 , "MS Excel 5.0/95 Vorlage/Template              ")
+		.Add Key := "xlt95"     , Item :=Array("xlt"   , "Microsoft Excel 95 Template"                                  , "MS Excel 95 Vorlage/Template                  ")
+
+	End With
+
+	With WriterWebExportFilters
+		.Add Key := "etext"     , Item :=Array("txt"   , "Text Encoded (OpenOffice.org Writer/Web)"                     , "Text (encoded) (StarWriter/Web)               ")
+		.Add Key := "html"      , Item :=Array("html"  , "HTML Document"                                                , "HTML                                          ")
+		'.Add Key := "html"      , Item :=Array("html"  , "HTML Document Template"                                       , "writerweb8_writer_template                    ")
+		.Add Key := "html10"    , Item :=Array("html"  , "OpenOffice.org 1.0 HTML Template"                             , "writer_web_StarOffice_XML_Writer_Web_Template ")
+		.Add Key := "mediawiki" , Item :=Array("txt"   , "MediaWiki"                                                    , "MediaWiki_Web                                 ")
+		.Add Key := "pdf"       , Item :=Array("pdf"   , "PDF - Portable Document Format"                               , "writer_web_pdf_Export                         ")
+		.Add Key := "sdw"       , Item :=Array("sdw"   , "StarWriter 5.0 (OpenOffice.org Writer/Web)"                   , "StarWriter 5.0 (StarWriter/Web)               ")
+		.Add Key := "sdw3"      , Item :=Array("sdw"   , "StarWriter 3.0 (OpenOffice.org Writer/Web)"                   , "StarWriter 3.0 (StarWriter/Web)               ")
+		.Add Key := "sdw4"      , Item :=Array("sdw"   , "StarWriter 4.0 (OpenOffice.org Writer/Web)"                   , "StarWriter 4.0 (StarWriter/Web)               ")
+		.Add Key := "text"      , Item :=Array("txt"   , "Text (OpenOffice.org Writer/Web)"                             , "Text (StarWriter/Web)                         ")
+		.Add Key := "text10"    , Item :=Array("txt"   , "OpenOffice.org 1.0 Text Document (OpenOffice.org Writer/Web)" , "writer_web_StarOffice_XML_Writer              ")
+		.Add Key := "odt"       , Item :=Array("txt"   , "OpenOffice.org Text (OpenOffice.org Writer/Web)"              , "writerweb8_writer                             ")
+		.Add Key := "vor"       , Item :=Array("vor"   , "StarWriter/Web 5.0 Template"                                  , "StarWriter/Web 5.0 Vorlage/Template           ")
+		.Add Key := "vor4"      , Item :=Array("vor"   , "StarWriter/Web 4.0 Template"                                  , "StarWriter/Web 4.0 Vorlage/Template           ")
+
+	End With
+
+	With DocTypeToFiltersMap
+		.Add Key := "com.sun.star.text.TextDocument", Item := WriterExportFilters
+		.Add Key := "com.sun.star.sheet.SpreadsheetDocument", Item := CalcExportFilters
+		.Add Key := "com.sun.star.presentation.PresentationDocument", Item :=ImpressExportFilters
+		.Add Key := "com.sun.star.drawing.DrawingDocument", Item := DrawExportFilters
+		.Add Key := "com.sun.star.text.WebDocument", Item := WriterWebExportFilters
+	End With
+	ExportFiltersInited = True
+End Sub
+
+Function FilterSaveExtension(filterDescriptor ())
+	FilterSaveExtension = Trim(filterDescriptor(0))
+End Function
+
+Function FilterHandler(filterDescriptor ())
+	FilterHandler = Trim(filterDescriptor(2))
+End Function
+
+Function GetFilter(docType, outputFormat)
+	Dim filters
+
+	On Error Goto MissingFilter
+	filters = DocTypeToFiltersMap(docType)
+	LogMessage "output format is " & outputFormat
+	GetFilter = filters(outputFormat)
+
+Done:
+	Exit Function
+
+MissingFilter:
+	LogMessage("No existing filters for exporting " & docType & " to " & outputFormat)
+	GetFilter = Null
+	Resume Done
+End Function
+

+ 201 - 0
contrib/odt/BasicODConverter/Main.bas

@@ -0,0 +1,201 @@
+REM  *****  BASIC  *****
+
+Dim Interactive As Boolean
+Dim WaitFor
+
+Function Convert(Optional inFileURL, Optional filterSpec, Optional outFileURL)
+	Dim inDoc, inDocType, openParams, closeInDoc, presentationDoc
+
+	' Set Interactivity i.e., LogMessage pops up a message.
+	Interactive = False
+
+	WaitFor = 10
+
+	' Init dependencies
+	BasicLibraries.LoadLibrary("Tools")
+	' BasicLibraries.LoadLibrary("XrayTool")
+
+	' Setup Export filters
+ 	InitExportFilters
+
+	' Export to doc format by default
+ 	If IsMissing(filterSpec) Then
+		If Interactive Then
+			filterSpec = InputBox("Export to: ")
+		Else
+			filterSpec = "doc"
+		End If
+	End If
+	filterSpec = Trim(filterSpec)
+
+	closeInDoc = False
+	If IsMissing(inFileURL) Then
+		' Most likely, the Macro is run interactively. Act on
+		' the current document
+ 		If Not ThisComponent.HasLocation() Then
+			LogMessage("Document doesn't have a location")
+			Goto Failure
+		End If
+
+		inDoc = ThisComponent
+		inFileURL = inDoc.GetLocation()
+		closeInDoc = False
+
+	Else
+		' Load the document
+		On Error Goto Failure
+		openParams = Array(MakePropertyValue("Hidden", True),MakePropertyValue("ReadOnly", True),)
+
+		'openParams = Array()
+		inDoc = StarDesktop.loadComponentFromURL(inFileURL, "_blank", 0, OpenParams())
+		closeInDoc = True
+	End If
+
+	If IsMissing(outFileURL) Then
+		outFileURL = GetURLWithoutExtension(inFileURL)
+	End If
+
+	If ExportDocument(inDoc, filterSpec, outFileURL) Then
+		Goto Success
+	End If
+
+	LogMessage("filterSpec1 is " & filterSpec)
+
+	' Export didn't go through. Maybe didn't find a valid filter.
+
+	' Check whether the request is to convert a Text or a Web
+	' Document to a Presentation Document
+
+	inDocType = GetDocumentType(inDoc)
+	If (inDocType = "com.sun.star.text.TextDocument" Or _
+	    inDocType = "com.sun.star.text.WebDocument") Then
+		LogMessage("Filterspec2 is " & filterSpec)
+		filter = GetFilter("com.sun.star.presentation.PresentationDocument", filterSpec)
+		If IsNull(filter) Then
+			LogMessage("We tried our best. Nothing more to do"
+			Goto Failure
+		Else
+			LogMessage("Trying to create presentation document. Found valid filter for " & filterSpec)
+		End If
+	Else
+		Goto Failure
+	End If
+
+	' Export Outline to Presentation
+	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
+	dispatcher.executeDispatch(inDoc.CurrentController.Frame, ".uno:SendOutlineToStarImpress", "", 0, Array())
+
+	' Dispatch event above is aynchronous. Wait for a few seconds for the above event to finish
+	Wait(WaitFor * 1000)
+
+	' After the dispatch, the current component is a presentation
+	' document. Note that it doesn't have a location
+
+	presentationDoc = ThisComponent
+	If IsNull(ExportDocument(presentationDoc, filter, outFileURL)) Then
+		Goto Failure
+	Else
+		presentationDoc.Close(True)
+	End If
+
+Success:
+	LogMessage("Successfully exported to " & outFileURL )
+	Goto Done
+
+Failure:
+	LogMessage("Export failed " & outFileURL )
+	Goto Done
+
+Done:
+	If closeInDoc Then
+		inDoc.Close(True)
+	End If
+End Function
+
+' http://codesnippets.services.openoffice.org/Writer/Writer.MergeDocs.snip
+' http://user.services.openoffice.org/en/forum/viewtopic.php?f=20&t=39983
+' http://user.services.openoffice.org/en/forum/viewtopic.php?f=21&t=23531
+
+' http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide/Files_and_Directories_%28Runtime_Library%29
+
+
+Function ExportDocument(inputDoc, filterSpec, outFileURL) As Boolean
+	Dim inputDocType, filter
+	ExportDocument = False
+
+	On Error Goto Failure
+	inputDocType = GetDocumentType(inputDoc)
+
+	If IsArray(filterSpec) Then
+		' Filter is fully specified
+		filter = filterSpec
+	Else
+		' Filter is specified by it's name
+		filter = GetFilter(inputDocType, filterSpec)
+	End If
+
+	If InStr(outFileURL, ".") = 0 Then
+		outFileURL = outFileURL & "." & FilterSaveExtension(filter)
+	End If
+
+	LogMessage("outFileURL is " & outFileURL)
+
+	inputDoc.storeToUrl(outFileURL, Array(MakePropertyValue("FilterName", FilterHandler(filter))))
+
+ 	ExportDocument = True
+	LogMessage("Export to " & outFileURL & " succeeded")
+Done:
+ 	Exit Function
+
+Failure:
+	LogMessage("Export to " & outFileURL & " failed")
+	Resume Done
+End Function
+
+
+Function GetURLWithoutExtension(s As String)
+	Dim pos
+	pos = Instr(s, ".")
+	If pos = 0 Then
+		GetURLWithoutExtension = s
+	Else
+		GetURLWithoutExtension = Left(s, pos - 1)
+	End If
+End Function
+
+Function GetDocumentType(oDoc)
+	For Each docType in DocTypes
+		If (oDoc.supportsService(docType)) Then
+			GetDocumentType = docType
+			Exit Function
+		End If
+	Next docType
+	GetDocumentType = Nothing
+End Function
+
+Function MakePropertyValue(Optional sName As String, Optional sValue) As com.sun.star.beans.PropertyValue
+	Dim oPropertyValue As New com.sun.star.beans.PropertyValue
+
+ 	If Not IsMissing(sName) Then
+		oPropertyValue.Name = sName
+	EndIf
+
+	If Not IsMissing(sValue) Then
+		oPropertyValue.Value = sValue
+	EndIf
+
+	MakePropertyValue() = oPropertyValue
+
+End Function
+
+
+Sub LogMessage(message)
+	If Interactive Then
+		If Err <> 0 Then
+			Print "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
+		End If
+		Print message
+	End If
+End Sub
+
+

+ 1 - 1
contrib/scripts/StartOzServer.oz

@@ -1,5 +1,5 @@
 %%% *************************************************************
-%%% Copyright (C) 2009 Torsten Anders (www.torsten-anders.de) 
+%%% Copyright (C) 2009-2012 Torsten Anders (www.torsten-anders.de) 
 %%% This program is free software; you can redistribute it and/or
 %%% modify it under the terms of the GNU General Public License
 %%% as published by the Free Software Foundation; either version 2

+ 1 - 1
contrib/scripts/org2hpda

@@ -1,5 +1,5 @@
 # org2hpda - a small utility to generate hipster pda style printouts from org mode 
-# Copyright (C) 2007  Christian Egli
+# Copyright (C) 2007-2012  Christian Egli
 # 
 # Version: 0.6
 #

+ 177 - 118
doc/org.texi

@@ -4,7 +4,7 @@
 @setfilename ../../info/org
 @settitle The Org Manual
 
-@set VERSION 7.8.05
+@set VERSION 7.8.06
 @set DATE mars 2012
 
 @c Use proper quote and backtick for code sections in PDF output
@@ -265,7 +265,7 @@
 @copying
 This manual is for Org version @value{VERSION}.
 
-Copyright @copyright{} 2004-2011  Free Software Foundation, Inc.
+Copyright @copyright{} 2004-2012  Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -717,6 +717,7 @@ Specific header arguments
 * rownames::                    Handle row names in tables
 * shebang::                     Make tangled files executable
 * eval::                        Limit evaluation of specific code blocks
+* wrap::                        Mark source block evaluation results
 
 Miscellaneous
 
@@ -1080,7 +1081,7 @@ attach it to your bug report.
 @node Conventions,  , Feedback, Introduction
 @section Typesetting conventions used in this manual
 
-Org uses three types of keywords: TODO keywords, tags, and property
+Org uses three types of keywords: TODO keywords, tags and property
 names.  In this manual we use the following conventions:
 
 @table @code
@@ -1098,7 +1099,14 @@ User-defined properties are capitalized; built-in properties with
 special meaning are written with all capitals.
 @end table
 
-The manual lists both the keys and the corresponding commands for accessing
+Moreover, Org uses @i{option keywords} (like @code{#+TITLE} to set the title)
+and @i{environment keywords} (like @code{#+BEGIN_HTML} to start a @code{HTML}
+environment).  They are written in uppercase in the manual to enhance its
+readability, but you can use lowercase in your Org files@footnote{Easy
+templates insert lowercase keywords and Babel dynamically inserts
+@code{#+results}.}
+
+The manual lists both the keys and the corresponding commands for accessing a
 functionality.  Org mode often uses the same key for different functions,
 depending on context.  The command that is bound to such keys has a generic
 name, like @code{org-metaright}.  In the manual we will, wherever possible,
@@ -1158,7 +1166,8 @@ Headlines define the structure of an outline tree.  The headlines in Org
 start with one or more stars, on the left margin@footnote{See the variables
 @code{org-special-ctrl-a/e}, @code{org-special-ctrl-k}, and
 @code{org-ctrl-k-protect-subtree} to configure special behavior of @kbd{C-a},
-@kbd{C-e}, and @kbd{C-k} in headlines.}.  For example:
+@kbd{C-e}, and @kbd{C-k} in headlines.} @footnote{Clocking only works with
+headings indented less then 30 stars.}.  For example:
 
 @example
 * Top level headline
@@ -1428,7 +1437,7 @@ more details, see the docstring of the command
 @code{org-clone-subtree-with-time-shift}.
 @orgcmd{C-c C-w,org-refile}
 Refile entry or region to a different location.  @xref{Refiling notes}.
-@orgcmd{C-c ^,org-sort-entries-or-items}
+@orgcmd{C-c ^,org-sort}
 Sort same-level entries.  When there is an active region, all entries in the
 region will be sorted.  Otherwise the children of the current headline are
 sorted.  The command prompts for the sorting method, which can be
@@ -1755,11 +1764,13 @@ numerically, alphabetically, by time, or by custom function.
 @cindex visibility cycling, drawers
 
 @vindex org-drawers
+@cindex org-insert-drawer
+@kindex C-c C-x d
 Sometimes you want to keep information associated with an entry, but you
 normally don't want to see it.  For this, Org mode has @emph{drawers}.
 Drawers need to be configured with the variable
-@code{org-drawers}@footnote{You can define drawers on a per-file basis
-with a line like @code{#+DRAWERS: HIDDEN PROPERTIES STATE}}.  Drawers
+@code{org-drawers}@footnote{You can define additional drawers on a
+per-file basis with a line like @code{#+DRAWERS: HIDDEN STATE}}.  Drawers
 look like this:
 
 @example
@@ -1771,6 +1782,13 @@ look like this:
    After the drawer.
 @end example
 
+You can interactively insert drawers at point by calling
+@code{org-insert-drawer}, which is bound to @key{C-c C-x d}.  With an active
+region, this command will put the region inside the drawer.  With a prefix
+argument, this command calls @code{org-insert-property-drawer} and add a
+property drawer right below the current headline.  Completion over drawer
+keywords is also possible using @key{M-TAB}.
+
 Visibility cycling (@pxref{Visibility cycling}) on the headline will hide and
 show the entry, but keep the drawer collapsed to a single line.  In order to
 look inside the drawer, you need to move the cursor to the drawer line and
@@ -3225,6 +3243,8 @@ mailto:adent@@galaxy.net                   @r{Mail link}
 vm:folder                                 @r{VM folder link}
 vm:folder#id                              @r{VM message link}
 vm://myself@@some.where.org/folder#id      @r{VM on remote machine}
+vm-imap:account:folder                    @r{VM IMAP folder link}
+vm-imap:account:folder#id                 @r{VM IMAP message link}
 wl:folder                                 @r{WANDERLUST folder link}
 wl:folder#id                              @r{WANDERLUST message link}
 mhe:folder                                @r{MH-E folder link}
@@ -4063,9 +4083,11 @@ time-stamped note for a change.  These records will be inserted after the
 headline as an itemized list, newest first@footnote{See the variable
 @code{org-log-states-order-reversed}}.  When taking a lot of notes, you might
 want to get the notes out of the way into a drawer (@pxref{Drawers}).
-Customize the variable @code{org-log-into-drawer} to get this
-behavior---the recommended drawer for this is called @code{LOGBOOK}.  You can
-also overrule the setting of this variable for a subtree by setting a
+Customize the variable @code{org-log-into-drawer} to get this behavior---the
+recommended drawer for this is called @code{LOGBOOK}@footnote{Note that the
+@code{LOGBOOK} drawer is unfolded when pressing @key{SPC} in the agenda to
+show an entry---use @key{C-u SPC} to keep it folded here}.  You can also
+overrule the setting of this variable for a subtree by setting a
 @code{LOG_INTO_DRAWER} property.
 
 Since it is normally too much to record a note for every state, Org mode
@@ -4870,8 +4892,8 @@ in the current file will be offered as possible completions.
 @orgcmd{C-c C-x p,org-set-property}
 Set a property.  This prompts for a property name and a value.  If
 necessary, the property drawer is created as well.
-@item M-x org-insert-property-drawer
-@findex org-insert-property-drawer
+@item C-u M-x org-insert-drawer
+@cindex org-insert-drawer
 Insert a property drawer into the current entry.  The drawer will be
 inserted early in the entry, but after the lines with planning
 information like deadlines.
@@ -5896,12 +5918,14 @@ created for this purpose, it is described in @ref{Structure editing}.
 @cindex time clocking
 
 Org mode allows you to clock the time you spend on specific tasks in a
-project.  When you start working on an item, you can start the clock.
-When you stop working on that task, or when you mark the task done, the
-clock is stopped and the corresponding time interval is recorded.  It
-also computes the total time spent on each subtree of a project.  And it
-remembers a history or tasks recently clocked, to that you can jump quickly
-between a number of tasks absorbing your time.
+project.  When you start working on an item, you can start the clock.  When
+you stop working on that task, or when you mark the task done, the clock is
+stopped and the corresponding time interval is recorded.  It also computes
+the total time spent on each subtree@footnote{Clocking only works if all
+headings are indented with less than 30 stars.  This is a hardcoded
+limitation of `lmax' in `org-clock-sum'.} of a project.  And it remembers a
+history or tasks recently clocked, to that you can jump quickly between a
+number of tasks absorbing your time.
 
 To save the clock history across Emacs sessions, use
 @lisp
@@ -6680,21 +6704,21 @@ similar way.}:
 
 @vindex org-from-is-user-regexp
 @smallexample
-Link type               |  Available keywords
-------------------------+----------------------------------------------
-bbdb                    |  %:name %:company
-irc                     |  %:server %:port %:nick
-vm, wl, mh, mew, rmail  |  %:type %:subject %:message-id
-                        |  %:from %:fromname %:fromaddress
-                        |  %:to   %:toname   %:toaddress
-                        |  %:date @r{(message date header field)}
-                        |  %:date-timestamp @r{(date as active timestamp)}
-                        |  %:date-timestamp-inactive @r{(date as inactive timestamp)}
-                        |  %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user.  See the variable @code{org-from-is-user-regexp}.}}
-gnus                    |  %:group, @r{for messages also all email fields}
-w3, w3m                 |  %:url
-info                    |  %:file %:node
-calendar                |  %:date
+Link type                        |  Available keywords
+---------------------------------+----------------------------------------------
+bbdb                             |  %:name %:company
+irc                              |  %:server %:port %:nick
+vm, vm-imap, wl, mh, mew, rmail  |  %:type %:subject %:message-id
+                                 |  %:from %:fromname %:fromaddress
+                                 |  %:to   %:toname   %:toaddress
+                                 |  %:date @r{(message date header field)}
+                                 |  %:date-timestamp @r{(date as active timestamp)}
+                                 |  %:date-timestamp-inactive @r{(date as inactive timestamp)}
+                                 |  %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user.  See the variable @code{org-from-is-user-regexp}.}}
+gnus                             |  %:group, @r{for messages also all email fields}
+w3, w3m                          |  %:url
+info                             |  %:file %:node
+calendar                         |  %:date
 @end smallexample
 
 @noindent
@@ -9020,7 +9044,7 @@ the object with @code{\ref@{tab:basic-data@}}:
 
 @example
 #+CAPTION: This is the caption for the next table (or link)
-#+LABEL:   tbl:basic-data
+#+LABEL:   tab:basic-data
    | ... | ...|
    |-----|----|
 @end example
@@ -9634,7 +9658,7 @@ Insert template with export options, see example below.
 @cindex #+EXPORT_SELECT_TAGS
 @cindex #+EXPORT_EXCLUDE_TAGS
 @cindex #+XSLT
-@cindex #+LATEX_HEADER
+@cindex #+LaTeX_HEADER
 @vindex user-full-name
 @vindex user-mail-address
 @vindex org-export-default-language
@@ -9654,7 +9678,7 @@ Insert template with export options, see example below.
                @r{You need to confirm using these, or configure @code{org-export-allow-BIND}}
 #+LINK_UP:     the ``up'' link of an exported page
 #+LINK_HOME:   the ``home'' link of an exported page
-#+LATEX_HEADER: extra line(s) for the @LaTeX{} header, like \usepackage@{xyz@}
+#+LaTeX_HEADER: extra line(s) for the @LaTeX{} header, like \usepackage@{xyz@}
 #+EXPORT_SELECT_TAGS:   Tags that select a tree for export
 #+EXPORT_EXCLUDE_TAGS:  Tags that exclude a tree from export
 #+XSLT:        the XSLT stylesheet used by DocBook exporter to generate FO file
@@ -10326,11 +10350,11 @@ By default, the @LaTeX{} output uses the class @code{article}.
 @vindex org-export-latex-classes
 @vindex org-export-latex-default-packages-alist
 @vindex org-export-latex-packages-alist
-@cindex #+LATEX_HEADER
-@cindex #+LATEX_CLASS
-@cindex #+LATEX_CLASS_OPTIONS
-@cindex property, LATEX_CLASS
-@cindex property, LATEX_CLASS_OPTIONS
+@cindex #+LaTeX_HEADER
+@cindex #+LaTeX_CLASS
+@cindex #+LaTeX_CLASS_OPTIONS
+@cindex property, LaTeX_CLASS
+@cindex property, LaTeX_CLASS_OPTIONS
 You can change this globally by setting a different value for
 @code{org-export-latex-default-class} or locally by adding an option like
 @code{#+LaTeX_CLASS: myclass} in your file, or with a @code{:LaTeX_CLASS:}
@@ -10340,11 +10364,22 @@ defines a header template for each class@footnote{Into which the values of
 @code{org-export-latex-default-packages-alist} and
 @code{org-export-latex-packages-alist} are spliced.}, and allows you to
 define the sectioning structure for each class.  You can also define your own
-classes there.  @code{#+LaTeX_CLASS_OPTIONS} or a @code{LaTeX_CLASS_OPTIONS}
-property can specify the options for the @code{\documentclass} macro.  You
-can also use @code{#+LATEX_HEADER: \usepackage@{xyz@}} to add lines to the
-header.  See the docstring of @code{org-export-latex-classes} for more
-information.
+classes there.  @code{#+LaTeX_CLASS_OPTIONS} or a @code{:LaTeX_CLASS_OPTIONS:}
+property can specify the options for the @code{\documentclass} macro.  The
+options to documentclass have to be provided, as expected by @LaTeX{}, within
+square brackets.  You can also use @code{#+LaTeX_HEADER: \usepackage@{xyz@}}
+to add lines to the header.  See the docstring of
+@code{org-export-latex-classes} for more information.  An example is shown
+below.
+
+@example
+#+LaTeX_CLASS: article
+#+LaTeX_CLASS_OPTIONS: [a4paper]
+#+LaTeX_HEADER: \usepackage@{xyz@}
+
+* Headline 1
+  some text
+@end example
 
 @node Quoting @LaTeX{} code, Tables in @LaTeX{} export, Header and sectioning, @LaTeX{} and PDF export
 @subsection Quoting @LaTeX{} code
@@ -10428,9 +10463,7 @@ add something like @samp{placement=[h!]} to the attributes.  It is to be noted
 this option can be used with tables as well@footnote{One can also take
 advantage of this option to pass other, unrelated options into the figure or
 table environment.  For an example see the section ``Exporting org files'' in
-@url{http://orgmode.org/worg/org-hacks.html}}.  For example the
-@code{#+ATTR_LaTeX:} line below is exported as the @code{figure} environment
-below it.
+@url{http://orgmode.org/worg/org-hacks.html}}.
 
 If you would like to let text flow around the image, add the word @samp{wrap}
 to the @code{#+ATTR_LaTeX:} line, which will make the figure occupy the left
@@ -10517,7 +10550,7 @@ transitions.
 Frames will automatically receive a @code{fragile} option if they contain
 source code that uses the verbatim environment.  Special @file{beamer}
 specific code can be inserted using @code{#+BEAMER:} and
-@code{#+BEGIN_beamer...#+end_beamer} constructs, similar to other export
+@code{#+BEGIN_BEAMER...#+END_BEAMER} constructs, similar to other export
 backends, but with the difference that @code{#+LaTeX:} stuff will be included
 in the presentation as well.
 
@@ -12280,7 +12313,7 @@ publish it as @file{theindex.html}.
 @end multitable
 
 The file will be created when first publishing a project with the
-@code{:makeindex} set.  The file only contains a statement @code{#+include:
+@code{:makeindex} set.  The file only contains a statement @code{#+INCLUDE:
 "theindex.inc"}.  You can then build around this include statement by adding
 a title, style information, etc.
 
@@ -12668,10 +12701,10 @@ Org mode buffer.  The results of evaluation are placed following a line that
 begins by default with @code{#+RESULTS} and optionally a cache identifier
 and/or the name of the evaluated code block.  The default value of
 @code{#+RESULTS} can be changed with the customizable variable
-@code{org-babel-results-keyword}. 
+@code{org-babel-results-keyword}.
 
 By default, the evaluation facility is only enabled for Lisp code blocks
-specified as @code{emacs-lisp}. However, source code blocks in many languages
+specified as @code{emacs-lisp}.  However, source code blocks in many languages
 can be evaluated within Org mode (see @ref{Languages} for a list of supported
 languages and @ref{Structure of code blocks} for information on the syntax
 used to define a code block).
@@ -12685,8 +12718,8 @@ evaluation from the @kbd{C-c C-c} key binding.}.  This will call the
 its results into the Org mode buffer.
 @cindex #+CALL
 
-It is also possible to evaluate named code blocks from anywhere in an
-Org mode buffer or an Org mode table. Live code blocks located in the current
+It is also possible to evaluate named code blocks from anywhere in an Org
+mode buffer or an Org mode table.  Live code blocks located in the current
 Org mode buffer or in the ``Library of Babel'' (see @ref{Library of Babel})
 can be executed.  Named code blocks can be executed with a separate
 @code{#+CALL:} line or inline within a block of text.
@@ -12980,7 +13013,7 @@ Multi-line header arguments on an un-named code block:
    (message "data1:%S, data2:%S" data1 data2)
  #+END_SRC
 
- #+results:
+ #+RESULTS:
  : data1:1, data2:2
 @end example
 
@@ -12992,7 +13025,7 @@ Multi-line header arguments on a named code block:
      (message "data:%S" data)
    #+END_SRC
 
-   #+results: named-block
+   #+RESULTS: named-block
    : data:2
 @end example
 
@@ -13050,6 +13083,7 @@ argument in lowercase letters.  The following header arguments are defined:
 * rownames::                    Handle row names in tables
 * shebang::                     Make tangled files executable
 * eval::                        Limit evaluation of specific code blocks
+* wrap::                        Mark source block evaluation results
 @end menu
 
 Additional header arguments are defined on a language-specific basis, see
@@ -13064,7 +13098,7 @@ syntax used to specify arguments is the same across all languages.  In every
 case, variables require a default value when they are declared.
 
 The values passed to arguments can either be literal values, references, or
-Emacs Lisp code (see @ref{var, Emacs Lisp evaluation of variables}). References
+Emacs Lisp code (see @ref{var, Emacs Lisp evaluation of variables}).  References
 include anything in the Org mode file that takes a @code{#+NAME:},
 @code{#+TBLNAME:}, or @code{#+RESULTS:} line.  This includes tables, lists,
 @code{#+BEGIN_EXAMPLE} blocks, other code blocks, and the results of other
@@ -13103,7 +13137,7 @@ an Org mode table named with either a @code{#+NAME:} or @code{#+TBLNAME:} line
 (length table)
 #+END_SRC
 
-#+results: table-length
+#+RESULTS: table-length
 : 4
 @end example
 
@@ -13122,7 +13156,7 @@ carried through to the source code block)
   (print x)
 #+END_SRC
 
-#+results:
+#+RESULTS:
 | simple | list |
 @end example
 
@@ -13135,7 +13169,7 @@ optionally followed by parentheses
 (* 2 length)
 #+END_SRC
 
-#+results:
+#+RESULTS:
 : 8
 @end example
 
@@ -13150,7 +13184,7 @@ code block name using standard function call syntax
 (* 2 input)
 #+END_SRC
 
-#+results: double
+#+RESULTS: double
 : 16
 
 #+NAME: squared
@@ -13158,7 +13192,7 @@ code block name using standard function call syntax
 (* input input)
 #+END_SRC
 
-#+results: squared
+#+RESULTS: squared
 : 4
 @end example
 
@@ -13177,7 +13211,7 @@ on two lines
   (concatenate 'string x " for you.")
 #+END_SRC
 
-#+results: read-literal-example
+#+RESULTS: read-literal-example
 : A literal example
 : on two lines for you.
 
@@ -13219,7 +13253,7 @@ following example assigns the last cell of the first row the table
   data
 #+END_SRC
 
-#+results:
+#+RESULTS:
 : a
 @end example
 
@@ -13240,7 +13274,7 @@ to @code{data}.
   data
 #+END_SRC
 
-#+results:
+#+RESULTS:
 | 2 | b |
 | 3 | c |
 | 4 | d |
@@ -13262,7 +13296,7 @@ column is referenced.
   data
 #+END_SRC
 
-#+results:
+#+RESULTS:
 | 1 | 2 | 3 | 4 |
 @end example
 
@@ -13282,7 +13316,7 @@ another by commas, as shown in the following example.
   data
 #+END_SRC
 
-#+results:
+#+RESULTS:
 | 11 | 14 | 17 |
 @end example
 
@@ -13315,7 +13349,7 @@ Emacs Lisp, as shown in the following example.
   $data
 #+END_SRC
 
-#+results:
+#+RESULTS:
 : (a b c)
 @end example
 
@@ -13381,10 +13415,10 @@ The results are interpreted as raw Org mode code and are inserted directly
 into the buffer.  If the results look like a table they will be aligned as
 such by Org mode.  E.g., @code{:results value raw}.
 @item @code{html}
-Results are assumed to be HTML and will be enclosed in a @code{begin_html}
+Results are assumed to be HTML and will be enclosed in a @code{BEGIN_HTML}
 block.  E.g., @code{:results value html}.
 @item @code{latex}
-Results assumed to be @LaTeX{} and are enclosed in a @code{begin_latex} block.
+Results assumed to be @LaTeX{} and are enclosed in a @code{BEGIN_LaTeX} block.
 E.g., @code{:results value latex}.
 @item @code{code}
 Result are assumed to be parsable code and are enclosed in a code block.
@@ -13617,21 +13651,34 @@ interpreted language.
 @node noweb, noweb-ref, session, Specific header arguments
 @subsubsection @code{:noweb}
 
-The @code{:noweb} header argument controls expansion of ``noweb'' style (see
-@ref{Noweb reference syntax}) references in a code block.  This header
-argument can have one of three values: @code{yes}, @code{no}, or @code{tangle}.
+The @code{:noweb} header argument controls expansion of ``noweb'' syntax
+references (see @ref{Noweb reference syntax}) when the code block is
+evaluated, tangled, or exported.  The @code{:noweb} header argument can have
+one of the five values: @code{no}, @code{yes}, @code{tangle}, or
+@code{no-export} @code{strip-export}.
 
 @itemize @bullet
-@item @code{yes}
-All ``noweb'' syntax references in the body of the code block will be
-expanded before the block is evaluated, tangled or exported.
 @item @code{no}
-The default.  No ``noweb'' syntax specific action is taken when the code
-block is evaluated, tangled or exported.
+The default.  ``Noweb'' syntax references in the body of the code block will
+not be expanded before the code block is evaluated, tangled or exported.
+@item @code{yes}
+``Noweb'' syntax references in the body of the code block will be
+expanded before the code block is evaluated, tangled or exported.
 @item @code{tangle}
-All ``noweb'' syntax references in the body of the code block will be
-expanded before the block is tangled, however ``noweb'' references will not
-be expanded when the block is evaluated or exported.
+``Noweb'' syntax references in the body of the code block will be expanded
+before the code block is tangled.  However, ``noweb'' syntax references will
+not be expanded when the code block is evaluated or exported.
+@item @code{no-export}
+``Noweb'' syntax references in the body of the code block will be expanded
+before the block is evaluated or tangled.  However, ``noweb'' syntax
+references will not be expanded when the code block is exported.
+@item @code{strip-export}
+``Noweb'' syntax references in the body of the code block will be expanded
+before the block is evaluated or tangled.  However, ``noweb'' syntax
+references will not be removed when the code block is exported.
+@item @code{eval}
+``Noweb'' syntax references in the body of the code block will only be
+expanded before the block is evaluated.
 @end itemize
 
 @subsubheading Noweb prefix lines
@@ -13732,7 +13779,7 @@ every time it is called.
 @item @code{yes}
 Every time the code block is run a SHA1 hash of the code and arguments
 passed to the block will be generated.  This hash is packed into the
-@code{#+results:} line and will be checked on subsequent
+@code{#+RESULTS:} line and will be checked on subsequent
 executions of the code block.  If the code block has not
 changed since the last time it was evaluated, it will not be re-evaluated.
 @end itemize
@@ -13749,7 +13796,7 @@ changed since it was last run.
  runif(1)
  #+END_SRC
 
- #+results[a2a72cd647ad44515fab62e144796432793d68e1]: random
+ #+RESULTS[a2a72cd647ad44515fab62e144796432793d68e1]: random
  0.4659510825295
 
  #+NAME: caller
@@ -13757,7 +13804,7 @@ changed since it was last run.
  x
  #+END_SRC
 
- #+results[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller
+ #+RESULTS[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller
  0.254227238707244
 @end example
 
@@ -13801,7 +13848,7 @@ default value yields the following results.
   return tab
 #+END_SRC
 
-#+results: echo-table
+#+RESULTS: echo-table
 | a | b | c |
 | d | e | f |
 | g | h | i |
@@ -13823,7 +13870,7 @@ Leaves hlines in the table.  Setting @code{:hlines yes} has this effect.
   return tab
 #+END_SRC
 
-#+results: echo-table
+#+RESULTS: echo-table
 | a | b | c |
 |---+---+---|
 | d | e | f |
@@ -13861,7 +13908,7 @@ processing, then reapplied to the results.
   return [[val + '*' for val in row] for row in tab]
 #+END_SRC
 
-#+results: echo-table-again
+#+RESULTS: echo-table-again
 | a  |
 |----|
 | b* |
@@ -13904,7 +13951,7 @@ and is then reapplied to the results.
   return [[val + 10 for val in row] for row in tab]
 #+END_SRC
 
-#+results: echo-table-once-again
+#+RESULTS: echo-table-once-again
 | one | 11 | 12 | 13 | 14 | 15 |
 | two | 16 | 17 | 18 | 19 | 20 |
 @end example
@@ -13922,7 +13969,7 @@ Setting the @code{:shebang} header argument to a string value
 first line of any tangled file holding the code block, and the file
 permissions of the tangled file are set to make it executable.
 
-@node eval,  , shebang, Specific header arguments
+@node eval, wrap, shebang, Specific header arguments
 @subsubsection @code{:eval}
 The @code{:eval} header argument can be used to limit the evaluation of
 specific code blocks.  The @code{:eval} header argument can be useful for
@@ -13947,6 +13994,14 @@ If this header argument is not set then evaluation is determined by the value
 of the @code{org-confirm-babel-evaluate} variable see @ref{Code evaluation
 security}.
 
+@node wrap,  , eval, Specific header arguments
+@subsubsection @code{:wrap}
+The @code{:wrap} header argument is used to mark the results of source block
+evaluation.  The header argument can be passed a string that will be appended
+to @code{#+BEGIN_} and @code{#+END_}, which will then be used to wrap the
+results.  If not string is specified then the results will be wrapped in a
+@code{#+BEGIN/END_RESULTS} block.
+
 @node Results of evaluation, Noweb reference syntax, Header arguments, Working With Source Code
 @section Results of evaluation
 @cindex code block, results of evaluation
@@ -14016,7 +14071,7 @@ process.  For example, compare the following two blocks:
  print "bye"
 #+END_SRC
 
-#+results:
+#+RESULTS:
 : hello
 : bye
 @end example
@@ -14029,7 +14084,7 @@ In non-session mode, the `2' is not printed and does not appear.
  print "bye"
 #+END_SRC
 
-#+results:
+#+RESULTS:
 : hello
 : 2
 : bye
@@ -14320,19 +14375,19 @@ keystrokes are typed on a line by itself.
 The following template selectors are currently supported.
 
 @multitable @columnfractions 0.1 0.9
-@item @kbd{s} @tab @code{#+begin_src     ... #+end_src}
-@item @kbd{e} @tab @code{#+begin_example ... #+end_example}
-@item @kbd{q} @tab @code{#+begin_quote   ... #+end_quote}
-@item @kbd{v} @tab @code{#+begin_verse   ... #+end_verse}
-@item @kbd{c} @tab @code{#+begin_center  ... #+end_center}
-@item @kbd{l} @tab @code{#+begin_latex   ... #+end_latex}
-@item @kbd{L} @tab @code{#+latex:}
-@item @kbd{h} @tab @code{#+begin_html    ... #+end_html}
-@item @kbd{H} @tab @code{#+html:}
-@item @kbd{a} @tab @code{#+begin_ascii   ... #+end_ascii}
-@item @kbd{A} @tab @code{#+ascii:}
-@item @kbd{i} @tab @code{#+index:} line
-@item @kbd{I} @tab @code{#+include:} line
+@item @kbd{s} @tab @code{#+BEGIN_SRC     ... #+END_SRC}
+@item @kbd{e} @tab @code{#+BEGIN_EXAMPLE ... #+END_EXAMPLE}
+@item @kbd{q} @tab @code{#+BEGIN_QUOTE   ... #+END_QUOTE}
+@item @kbd{v} @tab @code{#+BEGIN_VERSE   ... #+END_VERSE}
+@item @kbd{c} @tab @code{#+BEGIN_CENTER  ... #+END_CENTER}
+@item @kbd{l} @tab @code{#+BEGIN_LaTeX   ... #+END_LaTeX}
+@item @kbd{L} @tab @code{#+LaTeX:}
+@item @kbd{h} @tab @code{#+BEGIN_HTML    ... #+END_HTML}
+@item @kbd{H} @tab @code{#+HTML:}
+@item @kbd{a} @tab @code{#+BEGIN_ASCII   ... #+END_ASCII}
+@item @kbd{A} @tab @code{#+ASCII:}
+@item @kbd{i} @tab @code{#+INDEX:} line
+@item @kbd{I} @tab @code{#+INCLUDE:} line
 @end multitable
 
 For example, on an empty line, typing "<e" and then pressing TAB, will expand
@@ -14426,7 +14481,7 @@ either by the @i{calc} interpreter, or by the @i{Emacs Lisp} interpreter.
 @cindex options, for customization
 @cindex variables, for customization
 
-There are more than 180 variables that can be used to customize
+There are more than 500 variables that can be used to customize
 Org.  For the sake of compactness of the manual, I am not
 describing the variables here.  A structured overview of customization
 variables is available with @kbd{M-x org-customize}.  Or select
@@ -14477,8 +14532,8 @@ Set tags that can be inherited by any entry in the file, including the
 top-level entries.
 @item #+DRAWERS: NAME1 .....
 @vindex org-drawers
-Set the file-local set of drawers.  The corresponding global variable is
-@code{org-drawers}.
+Set the file-local set of additional drawers.  The corresponding global
+variable is @code{org-drawers}.
 @item #+LINK:  linkword replace
 @vindex org-link-abbrev-alist
 These lines (several are allowed) specify link abbreviations.
@@ -14689,7 +14744,7 @@ This line contains the formulas for the table directly above the line.
 @item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+DATE:,
 @itemx #+OPTIONS:, #+BIND:, #+XSLT:,
 @itemx #+DESCRIPTION:, #+KEYWORDS:,
-@itemx #+LATEX_HEADER:, #+STYLE:, #+LINK_UP:, #+LINK_HOME:,
+@itemx #+LaTeX_HEADER:, #+STYLE:, #+LINK_UP:, #+LINK_HOME:,
 @itemx #+EXPORT_SELECT_TAGS:, #+EXPORT_EXCLUDE_TAGS:
 These lines provide settings for exporting files.  For more details see
 @ref{Export options}.
@@ -15966,6 +16021,7 @@ If WHICH is nil or `all', get all properties.  If WHICH is
 `special' or `standard', only get that subclass.
 @end defun
 @vindex org-use-property-inheritance
+@findex org-insert-property-drawer
 @defun org-entry-get pom property &optional inherit
 Get value of PROPERTY for entry at point-or-marker POM.  By default,
 this only looks at properties defined locally in the entry.  If INHERIT
@@ -15988,7 +16044,7 @@ Get all property keys in the current buffer.
 @end defun
 
 @defun org-insert-property-drawer
-Insert a property drawer at point.
+Insert a property drawer for the current entry.  Also
 @end defun
 
 @defun org-entry-put-multivalued-property pom property &rest values
@@ -16141,13 +16197,16 @@ The following example counts the number of entries with TODO keyword
 @cindex iPhone
 @cindex MobileOrg
 
-@uref{http://mobileorg.ncogni.to/, MobileOrg} is an application for the
-@i{iPhone/iPod Touch} series of devices, developed by Richard Moreland.
-@i{MobileOrg} offers offline viewing and capture support for an Org mode
-system rooted on a ``real'' computer.  It does also allow you to record
-changes to existing entries.  Android users should check out
+@i{MobileOrg} is the name of the mobile companion app for Org mode, currently
+available for iOS and for Android.  @i{MobileOrg} offers offline viewing and
+capture support for an Org mode system rooted on a ``real'' computer.  It
+does also allow you to record changes to existing entries.
+The @uref{http://mobileorg.ncogni.to/, iOS implementation} for the
+@i{iPhone/iPod Touch/iPad} series of devices, was developed by Richard
+Moreland.  Android users should check out
 @uref{http://wiki.github.com/matburt/mobileorg-android/, MobileOrg Android}
-by Matt Jones.
+by Matt Jones.  The two implementations are not identical but offer similar
+features.
 
 This appendix describes the support Org has for creating agenda views in a
 format that can be displayed by @i{MobileOrg}, and for integrating notes
@@ -16312,7 +16371,7 @@ Bastien has written a large number of extensions to Org (most of them
 integrated into the core by now), including the @LaTeX{} exporter and the plain
 list parser.  His support during the early days, when he basically acted as
 co-maintainer, was central to the success of this project.  Bastien also
-invented Worg, helped establishing the Web presence of Org, and sponsors
+invented Worg, helped establishing the Web presence of Org, and sponsored
 hosting costs for the orgmode.org website.
 @item Eric Schulte and Dan Davison
 Eric and Dan are jointly responsible for the Org-babel system, which turns

+ 2 - 2
doc/orgcard.tex

@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{7.8.05}
+\def\orgversionnumber{7.8.06}
 \def\versionyear{2012}          % latest update
 \def\year{2012}                 % latest copyright year
 
@@ -17,7 +17,7 @@
 \pdflayout=(0l)
 
 % Nothing else needs to be changed below this line.
-% Copyright (C) 1987, 1993, 1996-1997, 2001-2011
+% Copyright (C) 1987, 1993, 1996-1997, 2001-2012
 %   Free Software Foundation, Inc.
 
 % This file is part of GNU Emacs.

+ 22 - 15
doc/orgguide.texi

@@ -3,7 +3,7 @@
 @setfilename ../../info/orgguide
 @settitle The compact Org-mode Guide
 
-@set VERSION 7.8.05
+@set VERSION 7.8.06
 @set DATE mars 2012
 
 @c Use proper quote and backtick for code sections in PDF output
@@ -40,7 +40,7 @@
 @end macro
 @copying
 
-Copyright @copyright{} 2010 Free Software Foundation
+Copyright @copyright{} 2010-2012 Free Software Foundation
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -1906,7 +1906,7 @@ outline, not only the heading.
 @c
 @itemx @key{TAB}
 Go to the original location of the item in another window.  Under Emacs
-22, @kbd{mouse-1} will also works for this.
+22, @kbd{mouse-1} will also work for this.
 @c
 @itemx @key{RET}
 Go to the original location of the item and delete other windows.
@@ -2409,8 +2409,8 @@ verbatim @LaTeX{} code.
 Export as DocBook file.
 @end table
 
-Similarly to the HTML exporter, you can use @code{#+DocBook:} and
-@code{#+BEGIN_DocBook ... #+END_DocBook} construct to add verbatim @LaTeX{}
+Similarly to the HTML exporter, you can use @code{#+DOCBOOK:} and
+@code{#+BEGIN_DOCBOOK ... #+END_DOCBOOK} construct to add verbatim @LaTeX{}
 code.
 
 @node iCalendar export,  , DocBook export, Exporting
@@ -2492,10 +2492,10 @@ results in several formats.
 The structure of code blocks is as follows:
 
 @example
-#+srcname: <name>
-#+begin_src <language> <switches> <header arguments>
+#+NAME: <name>
+#+BEGIN_SRC <language> <switches> <header arguments>
   <body>
-#+end_src
+#+END_SRC
 @end example
 
 Where @code{<name>} is a string used to name the code block,
@@ -2520,11 +2520,11 @@ in many languages.  For a complete list of supported languages see the
 manual.  The following shows a code block and its results.
 
 @example
-#+begin_src emacs-lisp
+#+BEGIN_SRC emacs-lisp
   (+ 1 2 3 4)
-#+end_src
+#+END_SRC
 
-#+results:
+#+RESULTS:
 : 10
 @end example
 
@@ -2663,10 +2663,17 @@ indentation for each level.  To get this support in a file, use
 @node MobileOrg,  , Clean view, Miscellaneous
 @section MobileOrg
 
-@i{MobileOrg} is an application originally developed for the @i{iPhone/iPod
-Touch} series of devices, developed by Richard Moreland.  There is also an
-independent implementation for Android devices, by Matt Jones.
-For details, see the Org-mode manual.
+@i{MobileOrg} is the name of the mobile companion app for Org mode, currently
+available for iOS and for Android.  @i{MobileOrg} offers offline viewing and
+capture support for an Org mode system rooted on a ``real'' computer.  It
+does also allow you to record changes to existing entries.
+
+The @uref{http://mobileorg.ncogni.to/, iOS implementation} for the
+@i{iPhone/iPod Touch/iPad} series of devices, was developed by Richard
+Moreland. Android users should check out
+@uref{http://wiki.github.com/matburt/mobileorg-android/, MobileOrg Android}
+by Matt Jones.  The two implementations are not identical but offer similar
+features.
 
 @seealso{
 @uref{http://orgmode.org/manual/Miscellaneous.html#Miscellaneous, Chapter 15

+ 1 - 1
doc/pdflayout.sty

@@ -1,4 +1,4 @@
-% Copyright (C) 2007, 2008, 2009  Free Software Foundation, Inc.
+% Copyright (C) 2007-2012  Free Software Foundation, Inc.
 
 % This file is part of GNU Emacs.
 

+ 2 - 2
doc/texinfo.tex

@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2011-08-15.20}
+\def\texinfoversion{2012-01-03.18}
 %
 % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008 Free Software Foundation, Inc.
+% 2007, 2008-2012 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as

+ 2 - 2
lisp/ob-awk.el

@@ -24,9 +24,9 @@
 ;;; Commentary:
 
 ;; Babel's awk can use special header argument:
-;; 
+;;
 ;; - :in-file takes a path to a file of data to be processed by awk
-;;   
+;;
 ;; - :stdin takes an Org-mode data or code block reference, the value
 ;;          of which will be passed to the awk process through STDIN
 

+ 16 - 3
lisp/ob-ditaa.el

@@ -34,15 +34,28 @@
 ;; 3) we are adding the "file" and "cmdline" header arguments
 ;;
 ;; 4) there are no variables (at least for now)
+;;
+;; 5) it depends on a variable defined in org-exp-blocks (namely
+;;    `org-ditaa-jar-path') so be sure you have org-exp-blocks loaded
 
 ;;; Code:
 (require 'ob)
 
+(defvar org-ditaa-jar-path) ;; provided by org-exp-blocks
+
 (defvar org-babel-default-header-args:ditaa
-  '((:results . "file") (:exports . "results") (:java . "-Dfile.encoding=UTF-8"))
+  '((:results . "file")
+    (:exports . "results")
+    (:java . "-Dfile.encoding=UTF-8"))
   "Default arguments for evaluating a ditaa source block.")
 
-(defvar org-ditaa-jar-path)
+(defcustom org-ditaa-jar-option "-jar"
+  "Option for the ditaa jar file.
+Do not leave leading or trailing spaces in this string."
+  :group 'org-babel
+  :version "24.1"
+  :type 'string)
+
 (defun org-babel-execute:ditaa (body params)
   "Execute a block of Ditaa code with org-babel.
 This function is called by `org-babel-execute-src-block'."
@@ -55,7 +68,7 @@ This function is called by `org-babel-execute-src-block'."
 	 (cmdline (cdr (assoc :cmdline params)))
 	 (java (cdr (assoc :java params)))
 	 (in-file (org-babel-temp-file "ditaa-"))
-	 (cmd (concat "java " java " -jar "
+	 (cmd (concat "java " java " " org-ditaa-jar-option " "
 		      (shell-quote-argument
 		       (expand-file-name org-ditaa-jar-path))
 		      " " cmdline

+ 91 - 39
lisp/ob-exp.el

@@ -43,31 +43,37 @@
 When set to nil no code will be evaluated as part of the export
 process."
   :group 'org-babel
+  :version "24.1"
   :type 'boolean)
 (put 'org-export-babel-evaluate 'safe-local-variable (lambda (x) (eq x nil)))
 
+(defun org-babel-exp-get-export-buffer ()
+  "Return the current export buffer if possible."
+  (cond
+   ((bufferp org-current-export-file) org-current-export-file)
+   (org-current-export-file (get-file-buffer org-current-export-file))
+   ('otherwise
+    (error "Requested export buffer when `org-current-export-file' is nil"))))
+
 (defmacro org-babel-exp-in-export-file (lang &rest body)
   (declare (indent 1))
   `(let* ((lang-headers (intern (concat "org-babel-default-header-args:" ,lang)))
 	  (heading (nth 4 (ignore-errors (org-heading-components))))
-	  (link (when org-current-export-file
-		  (org-make-link-string
-		   (if heading
-		       (concat org-current-export-file "::" heading)
-		     org-current-export-file))))
-	  (export-buffer (current-buffer)) results)
-     (when link
+	  (export-buffer (current-buffer))
+	  (original-buffer (org-babel-exp-get-export-buffer)) results)
+     (when original-buffer
        ;; resolve parameters in the original file so that
        ;; headline and file-wide parameters are included, attempt
        ;; to go to the same heading in the original file
-       (set-buffer (get-file-buffer org-current-export-file))
+       (set-buffer original-buffer)
        (save-restriction
-	 (condition-case nil
-	     (let ((org-link-search-inhibit-query t))
-	       (org-open-link-from-string link))
-	   (error (when heading
-		    (goto-char (point-min))
-		    (re-search-forward (regexp-quote heading) nil t))))
+	 (when heading
+	   (condition-case nil
+	       (let ((org-link-search-inhibit-query t))
+		 (org-link-search heading))
+	     (error (when heading
+		      (goto-char (point-min))
+		      (re-search-forward (regexp-quote heading) nil t)))))
 	 (setq results ,@body))
        (set-buffer export-buffer)
        results)))
@@ -109,13 +115,32 @@ none ----- do not display either code or results upon export"
 	  (setf hash (org-babel-sha1-hash info)))
 	;; expand noweb references in the original file
 	(setf (nth 1 info)
-	      (if (and (cdr (assoc :noweb (nth 2 info)))
-		       (string= "yes" (cdr (assoc :noweb (nth 2 info)))))
-		  (org-babel-expand-noweb-references
-		   info (get-file-buffer org-current-export-file))
-		(nth 1 info)))
+	      (if (string= "strip-export" (cdr (assoc :noweb (nth 2 info))))
+		  (replace-regexp-in-string
+		   (org-babel-noweb-wrap) "" (nth 1 info))
+		(if (org-babel-noweb-p (nth 2 info) :export)
+		    (org-babel-expand-noweb-references
+                     info (org-babel-exp-get-export-buffer))  
+		  (nth 1 info))))
 	(org-babel-exp-do-export info 'block hash)))))
 
+(defcustom org-babel-exp-call-line-template
+  ""
+  "Template used to export call lines.
+This template may be customized to include the call line name
+with any export markup.  The template is filled out using
+`org-fill-template', and the following %keys may be used.
+
+ line --- call line
+
+An example value would be \"\\n: call: %line\" to export the call line
+wrapped in a verbatim environment.
+
+Note: the results are inserted separately after the contents of
+this template."
+  :group 'org-babel
+  :type 'string)
+
 (defvar org-babel-default-lob-header-args)
 (defun org-babel-exp-non-block-elements (start end)
   "Process inline source and call lines between START and END for export."
@@ -146,7 +171,7 @@ none ----- do not display either code or results upon export"
 			  (if (and (cdr (assoc :noweb params))
 				   (string= "yes" (cdr (assoc :noweb params))))
 			      (org-babel-expand-noweb-references
-			       info (get-file-buffer org-current-export-file))
+			       info (org-babel-exp-get-export-buffer))
 			    (nth 1 info)))
 		    (let ((code-replacement (save-match-data
 					      (org-babel-exp-do-export
@@ -162,22 +187,24 @@ none ----- do not display either code or results upon export"
 		   (inlinep (match-string 11))
 		   (inline-start (match-end 11))
 		   (inline-end (match-end 0))
-		   (rep (let ((lob-info (org-babel-lob-get-info)))
-			  (save-match-data
-			    (org-babel-exp-do-export
-			     (list "emacs-lisp" "results"
-				   (org-babel-merge-params
-				    org-babel-default-header-args
-				    org-babel-default-lob-header-args
-				    (org-babel-params-from-properties)
-				    (org-babel-parse-header-arguments
-				     (org-babel-clean-text-properties
-				      (concat ":var results="
-					      (mapconcat #'identity
-							 (butlast lob-info)
-							 " ")))))
-				   "" nil (car (last lob-info)))
-			     'lob)))))
+		   (results (save-match-data
+			      (org-babel-exp-do-export
+			       (list "emacs-lisp" "results"
+				     (org-babel-merge-params
+				      org-babel-default-header-args
+				      org-babel-default-lob-header-args
+				      (org-babel-params-from-properties)
+				      (org-babel-parse-header-arguments
+				       (org-babel-clean-text-properties
+					(concat ":var results="
+						(mapconcat #'identity
+							   (butlast lob-info)
+							   " ")))))
+				     "" nil (car (last lob-info)))
+			       'lob)))
+		   (rep (org-fill-template
+			 org-babel-exp-call-line-template
+			 `(("line"  . ,(nth 0 lob-info))))))
 	      (if inlinep
 		  (save-excursion
 		    (goto-char inline-start)
@@ -212,13 +239,37 @@ The function respects the value of the :exports header argument."
       ('both (org-babel-exp-results info type nil hash)
 	     (org-babel-exp-code info)))))
 
+(defcustom org-babel-exp-code-template
+  "#+BEGIN_SRC %lang%flags\n%body\n#+END_SRC"
+  "Template used to export the body of code blocks.
+This template may be customized to include additional information
+such as the code block name, or the values of particular header
+arguments.  The template is filled out using `org-fill-template',
+and the following %keys may be used.
+
+ lang ------ the language of the code block
+ name ------ the name of the code block
+ body ------ the body of the code block
+ flags ----- the flags passed to the code block
+
+In addition to the keys mentioned above, every header argument
+defined for the code block may be used as a key and will be
+replaced with its value."
+  :group 'org-babel
+  :type 'string)
+
 (defun org-babel-exp-code (info)
   "Return the original code block formatted for export."
   (org-fill-template
-   "#+BEGIN_SRC %lang%flags\n%body\n#+END_SRC"
+   org-babel-exp-code-template
    `(("lang"  . ,(nth 0 info))
+     ("body"  . ,(nth 1 info))
+     ,@(mapcar (lambda (pair)
+		 (cons (substring (symbol-name (car pair)) 1)
+		       (format "%S" (cdr pair))))
+	       (nth 2 info))
      ("flags" . ,((lambda (f) (when f (concat " " f))) (nth 3 info)))
-     ("body"  . ,(nth 1 info)))))
+     ("name"  . ,(or (nth 4 info) "")))))
 
 (defun org-babel-exp-results (info type &optional silent hash)
   "Evaluate and return the results of the current code block for export.
@@ -229,7 +280,8 @@ inhibit insertion of results into the buffer."
   (when (and org-export-babel-evaluate
 	     (not (and hash (equal hash (org-babel-current-result-hash)))))
     (let ((lang (nth 0 info))
-	  (body (nth 1 info)))
+	  (body (nth 1 info))
+	  (info (copy-sequence info)))
       ;; skip code blocks which we can't evaluate
       (when (fboundp (intern (concat "org-babel-execute:" lang)))
 	(org-babel-eval-wipe-error-buffer)

+ 1 - 1
lisp/ob-gnuplot.el

@@ -34,7 +34,7 @@
 ;;; Requirements:
 
 ;; - gnuplot :: http://www.gnuplot.info/
-;; 
+;;
 ;; - gnuplot-mode :: http://cars9.uchicago.edu/~ravel/software/gnuplot-mode.html
 
 ;;; Code:

+ 1 - 1
lisp/ob-haskell.el

@@ -79,7 +79,7 @@
                    (cdr (member org-babel-haskell-eoe
                                 (reverse (mapcar #'org-babel-trim raw)))))))
     (org-babel-reassemble-table
-     (cond 
+     (cond
       ((equal result-type 'output)
        (mapconcat #'identity (reverse (cdr results)) "\n"))
       ((equal result-type 'value)

+ 1 - 0
lisp/ob-js.el

@@ -55,6 +55,7 @@
 (defcustom org-babel-js-cmd "node"
   "Name of command used to evaluate js blocks."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defvar org-babel-js-function-wrapper

+ 62 - 34
lisp/ob-lilypond.el

@@ -3,7 +3,7 @@
 ;; Copyright (C) 2010-2012  Free Software Foundation, Inc.
 
 ;; Author: Martyn Jago
-;; Keywords: babel language, literate programming
+;; Keywords: babel language, literate programming, music score
 ;; Homepage: https://github.com/mjago/ob-lilypond
 
 ;; This file is part of GNU Emacs.
@@ -23,10 +23,14 @@
 
 ;;; Commentary:
 
-;; Installation / usage info, and examples are available at
-;; https://github.com/mjago/ob-lilypond
+;; Installation, ob-lilypond documentation, and examples are available at
+;; http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-lilypond.html
+;;
+;; Lilypond documentation can be found at
+;; http://lilypond.org/manuals.html
 
 ;;; Code:
+
 (require 'ob)
 (require 'ob-eval)
 (require 'ob-tangle)
@@ -37,9 +41,11 @@
 (add-to-list 'org-babel-tangle-lang-exts '("LilyPond" . "ly"))
 
 (defvar org-babel-default-header-args:lilypond '()
-  "Default header arguments for js code blocks.")
+  "Default header arguments for lilypond code blocks.
+NOTE: The arguments are determined at lilypond compile time.
+See (ly-set-header-args)")
 
-(defconst ly-version "0.3"
+(defconst ly-version "7.6"
   "The version number of the file ob-lilypond.el.")
 
 (defvar ly-compile-post-tangle t
@@ -86,6 +92,10 @@ LY-GEN-SVG to t")
 "HTML generation can be turned on by default by setting
 LY-GEN-HTML to t")
 
+(defvar ly-gen-pdf nil
+"PDF generation can be turned on by default by setting
+LY-GEN-PDF to t")
+
 (defvar ly-use-eps nil
 "You can force the compiler to use the EPS backend by setting
 LY-USE-EPS to t")
@@ -114,7 +124,7 @@ blocks")
 		body))))
      vars)
     body))
- 
+
 (defun org-babel-execute:lilypond (body params)
   "This function is called by `org-babel-execute-src-block'.
 Depending on whether we are in arrange mode either:
@@ -138,7 +148,7 @@ specific arguments to =org-babel-tangle="
 
 (defun ly-process-basic (body params)
   "Execute a lilypond block in basic mode"
-  
+
   (let* ((result-params (cdr (assoc :result-params params)))
 	 (out-file (cdr (assoc :file params)))
 	 (cmdline (or (cdr (assoc :cmdline params))
@@ -147,7 +157,7 @@ specific arguments to =org-babel-tangle="
 
     (with-temp-file in-file
       (insert (org-babel-expand-body:generic body params)))
-    
+
     (org-babel-eval
      (concat
       (ly-determine-ly-path)
@@ -177,7 +187,7 @@ If error in compilation, attempt to mark the error in lilypond org file"
           (ly-temp-file (ly-switch-extension
                          (buffer-file-name) ".ly")))
       (if (file-exists-p ly-tangled-file)
-          (progn 
+          (progn
             (when (file-exists-p ly-temp-file)
               (delete-file ly-temp-file))
             (rename-file ly-tangled-file
@@ -203,18 +213,20 @@ FILE-NAME is full path to lilypond (.ly) file"
         (arg-2 nil)                    ;infile
         (arg-3 "*lilypond*")           ;buffer
         (arg-4 t)                      ;display
-        (arg-5 (if ly-gen-png  "--png"  "")) ;&rest...
-  (arg-6 (if ly-gen-html "--html" ""))
-        (arg-7 (if ly-use-eps  "-dbackend=eps" ""))
-        (arg-8 (if ly-gen-svg  "-dbackend=svg" ""))
-        (arg-9 (concat "--output=" (file-name-sans-extension file-name)))
-        (arg-10 file-name))
+	(arg-4 t)                      ;display
+	(arg-5 (if ly-gen-png  "--png"  "")) ;&rest...
+	(arg-6 (if ly-gen-html "--html" ""))
+        (arg-7 (if ly-gen-pdf "--pdf" ""))
+        (arg-8 (if ly-use-eps  "-dbackend=eps" ""))
+        (arg-9 (if ly-gen-svg  "-dbackend=svg" ""))
+        (arg-10 (concat "--output=" (file-name-sans-extension file-name)))
+        (arg-11 file-name))
     (if test
-        `(,arg-1 ,arg-2 ,arg-3 ,arg-4 ,arg-5
-                 ,arg-6 ,arg-7 ,arg-8 ,arg-9 ,arg-10)
+        `(,arg-1 ,arg-2 ,arg-3 ,arg-4 ,arg-5 ,arg-6
+                 ,arg-7 ,arg-8 ,arg-9 ,arg-10 ,arg-11)
       (call-process
-       arg-1 arg-2 arg-3 arg-4 arg-5
-       arg-6 arg-7 arg-8 arg-9 arg-10))))
+       arg-1 arg-2 arg-3 arg-4 arg-5 arg-6
+       arg-7 arg-8 arg-9 arg-10 arg-11))))
 
 (defun ly-check-for-compile-error (file-name &optional test)
   "Check for compile error.
@@ -243,7 +255,7 @@ FILE-NAME is full path to lilypond file"
   "Mark the erroneous lines in the lilypond org buffer.
 FILE-NAME is full path to lilypond file.
 LINE is the erroneous line"
- 
+
   (switch-to-buffer-other-window
    (concat (file-name-nondirectory
             (ly-switch-extension file-name ".org"))))
@@ -256,7 +268,7 @@ LINE is the erroneous line"
           (set-mark (point))
           (goto-char (- (point) (length line))))
       (goto-char temp))))
-  
+
 (defun ly-parse-line-num (&optional buffer)
   "Extract error line number."
 
@@ -284,7 +296,7 @@ LINE is the erroneous line"
   "Extract the erroneous line from the tangled .ly file
 FILE-NAME is full path to lilypond file.
 LINENO is the number of the erroneous line"
- 
+
   (with-temp-buffer
     (insert-file-contents (ly-switch-extension file-name ".ly")
 			  nil nil nil t)
@@ -294,12 +306,12 @@ LINENO is the number of the erroneous line"
 	  (forward-line (- lineNo 1))
 	  (buffer-substring (point) (point-at-eol)))
       nil)))
-    
+
 (defun ly-attempt-to-open-pdf (file-name &optional test)
   "Attempt to display the generated pdf file
 FILE-NAME is full path to lilypond file
 If TEST is non-nil, the shell command is returned and is not run"
-  
+
   (when ly-display-pdf-post-tangle
     (let ((pdf-file (ly-switch-extension file-name ".pdf")))
       (if (file-exists-p pdf-file)
@@ -307,8 +319,12 @@ If TEST is non-nil, the shell command is returned and is not run"
                  (concat (ly-determine-pdf-path) " " pdf-file)))
             (if test
                 cmd-string
-              (shell-command cmd-string)))
-        (message  "No pdf file generated so can't display!")))))
+	      (start-process
+	       "\"Audition pdf\""
+	       "*lilypond*"
+	       (ly-determine-pdf-path)
+	       pdf-file)))
+	(message  "No pdf file generated so can't display!")))))
 
 (defun ly-attempt-to-play-midi (file-name &optional test)
   "Attempt to play the generated MIDI file
@@ -322,7 +338,11 @@ If TEST is non-nil, the shell command is returned and is not run"
                  (concat (ly-determine-midi-path) " " midi-file)))
             (if test
                 cmd-string
-              (shell-command cmd-string)))
+              (start-process
+               "\"Audition midi\""
+               "*lilypond*"
+               (ly-determine-midi-path)
+               midi-file)))
         (message "No midi file generated so can't play!")))))
 
 (defun ly-determine-ly-path (&optional test)
@@ -340,7 +360,7 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes"
 (defun ly-determine-pdf-path (&optional test)
   "Return correct path to pdf viewer depending on OS
 If TEST is non-nil, it contains a simulation of the OS for test purposes"
-  
+
   (let ((sys-type
          (or test system-type)))
     (cond ((string= sys-type  "darwin")
@@ -352,7 +372,7 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes"
 (defun ly-determine-midi-path (&optional test)
   "Return correct path to midi player depending on OS
 If TEST is non-nil, it contains a simulation of the OS for test purposes"
-   
+
   (let ((sys-type
          (or test test system-type)))
     (cond ((string= sys-type  "darwin")
@@ -360,10 +380,10 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes"
           ((string= sys-type "win32")
            ly-win32-midi-path)
           (t ly-nix-midi-path))))
- 
+
 (defun ly-toggle-midi-play ()
   "Toggle whether midi will be played following a successful compilation"
-  
+
   (interactive)
   (setq ly-play-midi-post-tangle
         (not ly-play-midi-post-tangle))
@@ -373,7 +393,7 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes"
 
 (defun ly-toggle-pdf-display ()
   "Toggle whether pdf will be displayed following a successful compilation"
-   
+
   (interactive)
   (setq ly-display-pdf-post-tangle
         (not ly-display-pdf-post-tangle))
@@ -399,6 +419,15 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes"
   (message (concat "HTML generation has been "
                    (if ly-gen-html "ENABLED." "DISABLED."))))
 
+(defun ly-toggle-pdf-generation ()
+  "Toggle whether pdf will be generated by compilation"
+
+  (interactive)
+  (setq ly-gen-pdf
+        (not ly-gen-pdf))
+  (message (concat "PDF generation has been "
+                   (if ly-gen-pdf "ENABLED." "DISABLED."))))
+
 (defun ly-toggle-arrange-mode ()
   "Toggle whether in Arrange mode or Basic mode"
 
@@ -428,6 +457,7 @@ mode i.e. ARRANGE-MODE is t"
          '((:tangle . "yes")
            (:noweb . "yes")
            (:results . "silent")
+           (:cache . "yes")
            (:comments . "yes")))
         (t
          '((:results . "file")
@@ -441,6 +471,4 @@ dependent on LY-ARRANGE-MODE"
 
 (provide 'ob-lilypond)
 
-
-
 ;;; ob-lilypond.el ends here

+ 1 - 0
lisp/ob-lisp.el

@@ -49,6 +49,7 @@
 For example a value of \"(progn ;; %s\\n   %%s)\" would ignore the
 current directory string."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defun org-babel-expand-body:lisp (body params)

+ 3 - 2
lisp/ob-lob.el

@@ -39,6 +39,7 @@ files to `org-babel-lob-files'.")
   "Files used to populate the `org-babel-library-of-babel'.
 To add files to this list use the `org-babel-lob-ingest' command."
   :group 'org-babel
+  :version "24.1"
   :type 'list)
 
 (defvar org-babel-default-lob-header-args '((:exports . "results"))
@@ -104,7 +105,7 @@ if so then run the appropriate source block from the Library."
 	(beginning-of-line 1)
 	(when (looking-at org-babel-lob-one-liner-regexp)
 	  (append
-	   (mapcar #'org-babel-clean-text-properties 
+	   (mapcar #'org-babel-clean-text-properties
 		   (list
 		    (format "%s%s(%s)%s"
 			    (nonempty 3 12)
@@ -115,7 +116,7 @@ if so then run the appropriate source block from the Library."
 		    (nonempty 9 18)))
 	   (list (length (if (= (length (match-string 12)) 0)
 			     (match-string 2) (match-string 11))))))))))
-  
+
 (defun org-babel-lob-execute (info)
   "Execute the lob call specified by INFO."
   (let ((params (org-babel-process-params

+ 1 - 1
lisp/ob-ocaml.el

@@ -98,7 +98,7 @@
    (lambda (pair) (format "let %s = %s;;" (car pair)
 			  (org-babel-ocaml-elisp-to-ocaml (cdr pair))))
    (mapcar #'cdr (org-babel-get-header params :var))))
-  
+
 (defun org-babel-ocaml-elisp-to-ocaml (val)
   "Return a string of ocaml code which evaluates to VAL."
   (if (listp val)

+ 5 - 4
lisp/ob-picolisp.el

@@ -45,10 +45,10 @@
 
 ;; PicoLisp _is_ an object-oriented database with a Prolog-based query
 ;; language implemented in PicoLisp (Pilog). Database objects are
-;; first-class members of the language. 
+;; first-class members of the language.
 
 ;; PicoLisp is an extremely productive framework for the development
-;; of interactive web-applications (on top of a database). 
+;; of interactive web-applications (on top of a database).
 
 ;;; Requirements:
 
@@ -76,6 +76,7 @@
 (defcustom org-babel-picolisp-cmd "pil"
   "Name of command used to evaluate picolisp blocks."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defun org-babel-expand-body:picolisp (body params &optional processed-params)
@@ -96,7 +97,7 @@
 
 (defun org-babel-execute:picolisp (body params)
   "Execute a block of Picolisp code with org-babel.  This function is
- called by `org-babel-execute-src-block'"           
+ called by `org-babel-execute-src-block'"
   (message "executing Picolisp source code block")
   (let* (
 	 ;; name of the session or "none"
@@ -119,7 +120,7 @@
            ((member "value" result-params)
             (format "(out \"/dev/null\" %s)" full-body))
            (t full-body))))
-    
+
     ((lambda (result)
        (if (or (member "verbatim" result-params)
                (member "scalar" result-params)

+ 1 - 0
lisp/ob-plantuml.el

@@ -44,6 +44,7 @@
 (defcustom org-plantuml-jar-path nil
   "Path to the plantuml.jar file."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defun org-babel-execute:plantuml (body params)

+ 1 - 1
lisp/ob-ref.el

@@ -60,7 +60,7 @@
 (declare-function org-narrow-to-subtree "org" ())
 (declare-function org-id-find-id-in-file "org-id" (id file &optional markerp))
 (declare-function org-show-context "org" (&optional key))
-(declare-function org-pop-to-buffer-same-window 
+(declare-function org-pop-to-buffer-same-window
 		  "org-compat" (&optional buffer-or-name norecord label))
 
 (defvar org-babel-ref-split-regexp

+ 2 - 2
lisp/ob-ruby.el

@@ -28,10 +28,10 @@
 ;;; Requirements:
 
 ;; - ruby and irb executables :: http://www.ruby-lang.org/
-;; 
+;;
 ;; - ruby-mode :: Can be installed through ELPA, or from
 ;;   http://github.com/eschulte/rinari/raw/master/util/ruby-mode.el
-;;   
+;;
 ;; - inf-ruby mode :: Can be installed through ELPA, or from
 ;;   http://github.com/eschulte/rinari/raw/master/util/inf-ruby.el
 

+ 1 - 0
lisp/ob-scheme.el

@@ -54,6 +54,7 @@
 (defcustom org-babel-scheme-cmd "guile"
   "Name of command used to evaluate scheme blocks."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defun org-babel-expand-body:scheme (body params)

+ 32 - 14
lisp/ob-sh.el

@@ -56,14 +56,13 @@ This will be passed to  `shell-command-on-region'")
 This function is called by `org-babel-execute-src-block'."
   (let* ((session (org-babel-sh-initiate-session
 		   (cdr (assoc :session params))))
-         (result-params (cdr (assoc :result-params params)))
 	 (stdin ((lambda (stdin) (when stdin (org-babel-sh-var-to-string
 					 (org-babel-ref-resolve stdin))))
 		 (cdr (assoc :stdin params))))
          (full-body (org-babel-expand-body:generic
 		     body params (org-babel-variable-assignments:sh params))))
     (org-babel-reassemble-table
-     (org-babel-sh-evaluate session full-body result-params stdin)
+     (org-babel-sh-evaluate session full-body params stdin)
      (org-babel-pick-name
       (cdr (assoc :colname-names params)) (cdr (assoc :colnames params)))
      (org-babel-pick-name
@@ -134,29 +133,38 @@ Emacs-lisp table, otherwise return the results as a string."
 (defvar org-babel-sh-eoe-output "org_babel_sh_eoe"
   "String to indicate that evaluation has completed.")
 
-(defun org-babel-sh-evaluate (session body &optional result-params stdin)
+(defun org-babel-sh-evaluate (session body &optional params stdin)
   "Pass BODY to the Shell process in BUFFER.
 If RESULT-TYPE equals 'output then return a list of the outputs
 of the statements in BODY, if RESULT-TYPE equals 'value then
 return the value of the last statement in BODY."
   ((lambda (results)
      (when results
-       (if (or (member "scalar" result-params)
-	       (member "verbatim" result-params)
-	       (member "output" result-params))
-	   results
-	 (let ((tmp-file (org-babel-temp-file "sh-")))
-	   (with-temp-file tmp-file (insert results))
-	   (org-babel-import-elisp-from-file tmp-file)))))
+       (let ((result-params (cdr (assoc :result-params params))))
+	 (if (or (member "scalar" result-params)
+		 (member "verbatim" result-params)
+		 (member "output" result-params))
+	     results
+	   (let ((tmp-file (org-babel-temp-file "sh-")))
+	     (with-temp-file tmp-file (insert results))
+	     (org-babel-import-elisp-from-file tmp-file))))))
    (cond
     (stdin				; external shell script w/STDIN
      (let ((script-file (org-babel-temp-file "sh-script-"))
-	   (stdin-file (org-babel-temp-file "sh-stdin-")))
-       (with-temp-file script-file (insert body))
+	   (stdin-file (org-babel-temp-file "sh-stdin-"))
+	   (shebang (cdr (assoc :shebang params)))
+	   (padline (not (string= "no" (cdr (assoc :padline params))))))
+       (with-temp-file script-file
+	 (when shebang (insert (concat shebang "\n")))
+	 (when padline (insert "\n"))
+	 (insert body))
+       (set-file-modes script-file #o755)
        (with-temp-file stdin-file (insert stdin))
        (with-temp-buffer
 	 (call-process-shell-command
-	  (format "%s %s" org-babel-sh-command script-file)
+	  (if shebang
+	      script-file
+	    (format "%s %s" org-babel-sh-command script-file))
 	  stdin-file
 	  (current-buffer))
 	 (buffer-string))))
@@ -182,7 +190,17 @@ return the value of the last statement in BODY."
 	    (list org-babel-sh-eoe-indicator))))
 	2)) "\n"))
     ('otherwise				; external shell script
-     (org-babel-eval org-babel-sh-command (org-babel-trim body))))))
+     (if (cdr (assoc :shebang params))
+	 (let ((script-file (org-babel-temp-file "sh-script-"))
+	       (shebang (cdr (assoc :shebang params)))
+	       (padline (not (string= "no" (cdr (assoc :padline params))))))
+	   (with-temp-file script-file
+	     (when shebang (insert (concat shebang "\n")))
+	     (when padline (insert "\n"))
+	     (insert body))
+	   (set-file-modes script-file #o755)
+	   (org-babel-eval script-file ""))
+       (org-babel-eval org-babel-sh-command (org-babel-trim body)))))))
 
 (defun org-babel-sh-strip-weird-long-prompt (string)
   "Remove prompt cruft from a string of shell output."

+ 5 - 1
lisp/ob-sql.el

@@ -40,7 +40,7 @@
 ;; - add more useful header arguments (user, passwd, database, etc...)
 ;; - support for more engines (currently only supports mysql)
 ;; - what's a reasonable way to drop table data into SQL?
-;; 
+;;
 
 ;;; Code:
 (require 'ob)
@@ -70,6 +70,10 @@ This function is called by `org-babel-execute-src-block'."
                        (org-babel-temp-file "sql-out-")))
 	 (header-delim "")
          (command (case (intern engine)
+                    ('monetdb (format "mclient -f tab %s < %s > %s"
+                                      (or cmdline "")
+                                      (org-babel-process-file-name in-file)
+                                      (org-babel-process-file-name out-file)))
                     ('msosql (format "osql %s -s \"\t\" -i %s -o %s"
                                      (or cmdline "")
                                      (org-babel-process-file-name in-file)

+ 9 - 6
lisp/ob-tangle.el

@@ -47,6 +47,7 @@ be inserted as the extension commonly used to identify files
 written in this language.  If no entry is found in this list,
 then the name of the language is used."
   :group 'org-babel-tangle
+  :version "24.1"
   :type '(repeat
 	  (cons
 	   (string "Language name")
@@ -55,16 +56,19 @@ then the name of the language is used."
 (defcustom org-babel-post-tangle-hook nil
   "Hook run in code files tangled by `org-babel-tangle'."
   :group 'org-babel
+  :version "24.1"
   :type 'hook)
 
 (defcustom org-babel-pre-tangle-hook '(save-buffer)
   "Hook run at the beginning of `org-babel-tangle'."
   :group 'org-babel
+  :version "24.1"
   :type 'hook)
 
 (defcustom org-babel-tangle-body-hook nil
   "Hook run over the contents of each code block body."
   :group 'org-babel
+  :version "24.1"
   :type 'hook)
 
 (defcustom org-babel-tangle-comment-format-beg "[[%link][%source-name]]"
@@ -79,6 +83,7 @@ information into the output using `org-fill-template'.
 Whether or not comments are inserted during tangling is
 controlled by the :comments header argument."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defcustom org-babel-tangle-comment-format-end "%source-name ends here"
@@ -93,6 +98,7 @@ information into the output using `org-fill-template'.
 Whether or not comments are inserted during tangling is
 controlled by the :comments header argument."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defcustom org-babel-process-comment-text #'org-babel-trim
@@ -101,6 +107,7 @@ inserted as comments in tangled source-code files.  The function
 should take a single string argument and return a string
 result.  The default value is `org-babel-trim'."
   :group 'org-babel
+  :version "24.1"
   :type 'function)
 
 (defun org-babel-find-file-noselect-refresh (file)
@@ -283,7 +290,7 @@ references."
   (interactive)
   (goto-char (point-min))
   (while (or (re-search-forward "\\[\\[file:.*\\]\\[.*\\]\\]" nil t)
-             (re-search-forward "<<[^[:space:]]*>>" nil t))
+             (re-search-forward (org-babel-noweb-wrap) nil t))
     (delete-region (save-excursion (beginning-of-line 1) (point))
                    (save-excursion (end-of-line 1) (forward-char 1) (point)))))
 
@@ -344,11 +351,7 @@ code blocks by language."
 			     body params
 			     (and (fboundp assignments-cmd)
 				  (funcall assignments-cmd params))))))
-		      (if (and (cdr (assoc :noweb params)) ;; expand noweb refs
-			       (let ((nowebs (split-string
-					      (cdr (assoc :noweb params)))))
-				 (or (member "yes" nowebs)
-				     (member "tangle" nowebs))))
+		      (if (org-babel-noweb-p params :tangle)
 			  (org-babel-expand-noweb-references info)
 			(nth 1 info)))))
 		   (comment

+ 84 - 26
lisp/ob.el

@@ -33,6 +33,8 @@
 (defvar org-babel-library-of-babel)
 (declare-function show-all "outline" ())
 (declare-function org-reduce "org" (CL-FUNC CL-SEQ &rest CL-KEYS))
+(declare-function org-mark-ring-push "org" (&optional pos buffer))
+(declare-function org-strip-protective-commas "org" (beg end))
 (declare-function tramp-compat-make-temp-file "tramp-compat"
                   (filename &optional dir-flag))
 (declare-function tramp-dissect-file-name "tramp" (name &optional nodefault))
@@ -57,6 +59,7 @@
 (declare-function org-cycle "org" (&optional arg))
 (declare-function org-uniquify "org" (list))
 (declare-function org-current-level "org" ())
+(declare-function org-strip-protective-commas "org" (beg end))
 (declare-function org-table-import "org-table" (file arg))
 (declare-function org-add-hook "org-compat"
 		  (hook function &optional append local))
@@ -104,6 +107,7 @@ against accidental code block evaluation.  The
 `org-babel-no-eval-on-ctrl-c-ctrl-c' variable can be used to
 remove code block execution from the C-c C-c keybinding."
     :group 'org-babel
+    :version "24.1"
     :type '(choice boolean function))
 ;; don't allow this variable to be changed through file settings
 (put 'org-confirm-babel-evaluate 'safe-local-variable (lambda (x) (eq x t)))
@@ -111,6 +115,7 @@ remove code block execution from the C-c C-c keybinding."
 (defcustom org-babel-no-eval-on-ctrl-c-ctrl-c nil
   "Remove code block evaluation from the C-c C-c key binding."
   :group 'org-babel
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-babel-results-keyword "RESULTS"
@@ -120,6 +125,23 @@ be used."
   :group 'org-babel
   :type 'string)
 
+(defcustom org-babel-noweb-wrap-start "<<"
+  "String used to begin a noweb reference in a code block.
+See also `org-babel-noweb-wrap-end'."
+  :group 'org-babel
+  :type 'string)
+
+(defcustom org-babel-noweb-wrap-end ">>"
+  "String used to end a noweb reference in a code block.
+See also `org-babel-noweb-wrap-start'."
+  :group 'org-babel
+  :type 'string)
+
+(defun org-babel-noweb-wrap (&optional regexp)
+  (concat org-babel-noweb-wrap-start
+	  (or regexp "\\([^ \t\n].+?[^ \t]\\|[^ \t\n]\\)")
+	  org-babel-noweb-wrap-end))
+
 (defvar org-babel-src-name-regexp
   "^[ \t]*#\\+name:[ \t]*"
   "Regular expression used to match a source name line.")
@@ -381,7 +403,7 @@ then run `org-babel-pop-to-session'."
     (mkdirp	. ((yes no)))
     (no-expand)
     (noeval)
-    (noweb	. ((yes no tangle)))
+    (noweb	. ((yes no tangle no-export strip-export)))
     (noweb-ref	. :any)
     (noweb-sep  . :any)
     (padline	. ((yes no)))
@@ -394,7 +416,8 @@ then run `org-babel-pop-to-session'."
     (session	. :any)
     (shebang	. :any)
     (tangle	. ((tangle yes no :any)))
-    (var	. :any)))
+    (var	. :any)
+    (wrap       . :any)))
 
 (defconst org-babel-header-arg-names
   (mapcar #'car org-babel-common-header-args-w-values)
@@ -492,12 +515,9 @@ block."
 	     (new-hash (when cache? (org-babel-sha1-hash info)))
 	     (old-hash (when cache? (org-babel-current-result-hash)))
 	     (body (setf (nth 1 info)
-			 (let ((noweb (cdr (assoc :noweb params))))
-			   (if (and noweb
-				    (or (string= "yes" noweb)
-					(string= "tangle" noweb)))
-			       (org-babel-expand-noweb-references info)
-			     (nth 1 info)))))
+			 (if (org-babel-noweb-p params :eval)
+			     (org-babel-expand-noweb-references info)
+			   (nth 1 info))))
 	     (dir (cdr (assoc :dir params)))
 	     (default-directory
 	       (or (and dir (file-name-as-directory dir)) default-directory))
@@ -571,8 +591,7 @@ arguments and pop open the results in a preview buffer."
                              (lambda (el1 el2) (string< (symbol-name (car el1))
 						   (symbol-name (car el2)))))))
          (body (setf (nth 1 info)
-		     (if (and (cdr (assoc :noweb params))
-                              (string= "yes" (cdr (assoc :noweb params))))
+		     (if (org-babel-noweb-p params :eval)
 			 (org-babel-expand-noweb-references info) (nth 1 info))))
          (expand-cmd (intern (concat "org-babel-expand-body:" lang)))
 	 (assignments-cmd (intern (concat "org-babel-variable-assignments:"
@@ -669,8 +688,7 @@ session."
          (lang (nth 0 info))
          (params (nth 2 info))
          (body (setf (nth 1 info)
-		     (if (and (cdr (assoc :noweb params))
-                              (string= "yes" (cdr (assoc :noweb params))))
+		     (if (org-babel-noweb-p params :eval)
                          (org-babel-expand-noweb-references info)
 		       (nth 1 info))))
          (session (cdr (assoc :session params)))
@@ -1442,13 +1460,35 @@ If the point is not on a source block then return nil."
 (defun org-babel-goto-named-src-block (name)
   "Go to a named source-code block."
   (interactive
-   (let ((completion-ignore-case t))
-     (list (org-icompleting-read "source-block name: "
-				 (org-babel-src-block-names) nil t))))
+   (let ((completion-ignore-case t)
+	 (under-point (thing-at-point 'line)))
+     (list (org-icompleting-read
+	    "source-block name: " (org-babel-src-block-names) nil t
+	    (cond
+	     ;; noweb
+	     ((string-match (org-babel-noweb-wrap) under-point)
+	      (let ((block-name (match-string 1 under-point)))
+		(string-match "[^(]*" block-name)
+		(match-string 0 block-name)))
+	     ;; #+call:
+	     ((string-match org-babel-lob-one-liner-regexp under-point)
+	      (let ((source-info (car (org-babel-lob-get-info))))
+		(if (string-match "^\\([^\\[]+?\\)\\(\\[.*\\]\\)?(" source-info)
+		    (let ((source-name (match-string 1 source-info)))
+		      source-name))))
+	     ;; #+results:
+	     ((string-match (concat "#\\+" org-babel-results-keyword
+				    "\\:\s+\\([^\\(]*\\)") under-point)
+	      (match-string 1 under-point))
+	     ;; symbol-at-point
+	     ((and (thing-at-point 'symbol))
+	      (org-babel-find-named-block (thing-at-point 'symbol))
+	      (thing-at-point 'symbol))
+	     (""))))))
   (let ((point (org-babel-find-named-block name)))
     (if point
         ;; taken from `org-open-at-point'
-        (progn (goto-char point) (org-show-context))
+        (progn (org-mark-ring-push) (goto-char point) (org-show-context))
       (message "source-code block '%s' not found in this buffer" name))))
 
 (defun org-babel-find-named-block (name)
@@ -1874,6 +1914,9 @@ code ---- the results are extracted in the syntax of the source
 	  (setq end (point-marker))
 	  ;; possibly wrap result
 	  (cond
+	   ((assoc :wrap (nth 2 info))
+	    (let ((name (or (cdr (assoc :wrap (nth 2 info))) "RESULTS")))
+	      (wrap (concat "#+BEGIN_" name) (concat "#+END_" name))))
 	   ((member "html" result-params)
 	    (wrap "#+BEGIN_HTML" "#+END_HTML"))
 	   ((member "latex" result-params)
@@ -1925,11 +1968,10 @@ code ---- the results are extracted in the syntax of the source
       (progn (re-search-forward (concat "^" (match-string 1) ":END:"))
 	     (forward-char 1) (point)))
      (t
-      (let ((case-fold-search t)
-	    (blocks-re (regexp-opt
-			(list "latex" "html" "example" "src" "result" "org"))))
-	(if (looking-at (concat "[ \t]*#\\+begin_" blocks-re))
-	    (progn (re-search-forward (concat "[ \t]*#\\+end_" blocks-re) nil t)
+      (let ((case-fold-search t))
+	(if (looking-at (concat "[ \t]*#\\+begin_\\([^ \t\n\r]+\\)"))
+	    (progn (re-search-forward (concat "[ \t]*#\\+end_" (match-string 1))
+				      nil t)
 		   (forward-char 1))
 	  (while (looking-at "[ \t]*\\(: \\|\\[\\[\\)")
 	    (forward-line 1))))
@@ -2073,8 +2115,11 @@ parameters when merging lists."
 	      (:tangle ;; take the latest -- always overwrite
 	       (setq tangle (or (list (cdr pair)) tangle)))
 	      (:noweb
-	       (setq noweb (e-merge '(("yes" "no" "tangle")) noweb
-				    (split-string (or (cdr pair) "")))))
+	       (setq noweb (e-merge
+			    '(("yes" "no" "tangle" "no-export"
+			       "strip-export" "eval"))
+			    noweb
+			    (split-string (or (cdr pair) "")))))
 	      (:cache
 	       (setq cache (e-merge '(("yes" "no")) cache
 				    (split-string (or (cdr pair) "")))))
@@ -2106,6 +2151,20 @@ This results in much faster noweb reference expansion but does
 not properly allow code blocks to inherit the \":noweb-ref\"
 header argument from buffer or subtree wide properties.")
 
+(defun org-babel-noweb-p (params context)
+  "Check if PARAMS require expansion in CONTEXT.
+CONTEXT may be one of :tangle, :export or :eval."
+  (flet ((intersect (as bs)
+		       (when as
+			 (if (member (car as) bs)
+			     (car as)
+			   (intersect (cdr as) bs)))))
+    (intersect (case context
+                    (:tangle '("yes" "tangle" "no-export" "strip-export"))
+                    (:eval   '("yes" "no-export" "strip-export" "eval"))
+                    (:export '("yes")))
+                  (split-string (or (cdr (assoc :noweb params)) "")))))
+
 (defun org-babel-expand-noweb-references (&optional info parent-buffer)
   "Expand Noweb references in the body of the current source code block.
 
@@ -2153,8 +2212,7 @@ block but are passed literally to the \"example-block\"."
       (with-temp-buffer
         (insert body) (goto-char (point-min))
         (setq index (point))
-        (while (and (re-search-forward "<<\\([^ \t\n].+?[^ \t\n]\\|[^ \t\n]\\)>>"
-				       nil t))
+        (while (and (re-search-forward (org-babel-noweb-wrap) nil t))
           (save-match-data (setf source-name (match-string 1)))
           (save-match-data (setq evaluate (string-match "\(.*\)" source-name)))
           (save-match-data
@@ -2226,7 +2284,7 @@ block but are passed literally to the \"example-block\"."
 		  ;; possibly raise an error if named block doesn't exist
 		  (if (member lang org-babel-noweb-error-langs)
 		      (error "%s" (concat
-				   "<<" source-name ">> "
+				   (org-babel-noweb-wrap source-name)
 				   "could not be resolved (see "
 				   "`org-babel-noweb-error-langs')"))
 		    "")))

+ 37 - 12
lisp/org-agenda.el

@@ -247,7 +247,9 @@ you can \"misuse\" it to also add other text to the header.  However,
 
 ;; Keep custom values for `org-agenda-filter-preset' compatible with
 ;; the new variable `org-agenda-tag-filter-preset'.
-(defvaralias 'org-agenda-filter-preset 'org-agenda-tag-filter-preset)
+(if (fboundp 'defvaralias)
+    (defvaralias 'org-agenda-filter-preset 'org-agenda-tag-filter-preset)
+    (defvaralias 'org-agenda-filter 'org-agenda-tag-filter))
 
 (defconst org-agenda-custom-commands-local-options
   `(repeat :tag "Local settings for this command. Remember to quote values"
@@ -647,6 +649,7 @@ See also the variable `org-agenda-tags-todo-honor-ignore-options' if you want
 to make his option also apply to the tags-todo list."
   :group 'org-agenda-skip
   :group 'org-agenda-todo-list
+  :version "24.1"
   :type '(choice
 	  (const :tag "Ignore future timestamp todos" future)
 	  (const :tag "Ignore past or present timestamp todos" past)
@@ -794,6 +797,7 @@ trigger you to schedule it, and then you don't want to be reminded of it
 because you will take care of it on the day when scheduled."
   :group 'org-agenda-skip
   :group 'org-agenda-daily/weekly
+  :version "24.1"
   :type '(choice
 	  (const :tag "Alwas show prewarning" nil)
 	  (const :tag "Remove prewarning if entry is scheduled" t)
@@ -858,6 +862,7 @@ property so than moving the mouse over the command shows it.
 Setting it to nil is good if matcher strings are very long and/or if
 you want to use two-column display (see `org-agenda-menu-two-column')."
   :group 'org-agenda
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-agenda-menu-two-column nil
@@ -865,6 +870,7 @@ you want to use two-column display (see `org-agenda-menu-two-column')."
 If you use this, you probably want to set `org-agenda-menu-show-matcher'
 to nil."
   :group 'org-agenda
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-finalize-agenda-hook nil
@@ -888,6 +894,7 @@ Needs to be set before org.el is loaded."
   "Non-nil means `org-agenda-follow-mode' displays only the
 current item's tree, in an indirect buffer."
   :group 'org-agenda
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-agenda-show-outline-path t
@@ -1040,11 +1047,13 @@ This function makes sure that dates are aligned for easy reading."
   "Non-nil means use leading zero for military times in agenda.
 For example, 9:30am would become 09:30 rather than  9:30."
   :group 'org-agenda-daily/weekly
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-agenda-timegrid-use-ampm nil
   "When set, show AM/PM style timestamps on the timegrid."
   :group 'org-agenda
+  :version "24.1"
   :type 'boolean)
 
 (defun org-agenda-time-of-day-to-ampm (time)
@@ -1092,6 +1101,7 @@ stamp currently points to the past, the first key press will move it
 to today.  WHen nil, just move one day forward even if the date stays
 in the past."
   :group 'org-agenda-daily/weekly
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-agenda-include-diary nil
@@ -1104,6 +1114,7 @@ Custom commands can set this variable in the options section."
   "If non-nil, include entries within their deadline warning period.
 Custom commands can set this variable in the options section."
   :group 'org-agenda-daily/weekly
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-agenda-repeating-timestamp-show-all t
@@ -1179,6 +1190,7 @@ issue display.
 :short-face           face for clock intervals that are too short"
   :group 'org-agenda-daily/weekly
   :group 'org-clock
+  :version "24.1"
   :type 'plist)
 
 (defcustom org-agenda-log-mode-add-notes t
@@ -1237,6 +1249,7 @@ by preceding the first snippet with \"+\" or \"-\".  If the first snippet
 is a regexp marked with braces like \"{abc}\", this will also switch to
 boolean search."
   :group 'org-agenda-search-view
+  :version "24.1"
   :type 'boolean)
 
 (if (fboundp 'defvaralias)
@@ -1247,6 +1260,7 @@ boolean search."
   "Non-nil means, search words must be matches as complete words.
 When nil, they may also match part of a word."
   :group 'org-agenda-search-view
+  :version "24.1"
   :type 'boolean)
 
 (defgroup org-agenda-time-grid nil
@@ -1310,12 +1324,14 @@ a grid line."
 (defcustom org-agenda-show-current-time-in-grid t
   "Non-nil means show the current time in the time grid."
   :group 'org-agenda-time-grid
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-agenda-current-time-string
   "now - - - - - - - - - - - - - - - - - - - - - - - - -"
   "The string for the current time marker in the agenda."
   :group 'org-agenda-time-grid
+  :version "24.1"
   :type 'string)
 
 (defgroup org-agenda-sorting nil
@@ -1526,6 +1542,7 @@ that passed since this item was scheduled first."
   "Text preceding item pulled into the agenda by inactive time stamps.
 These entries are added to the agenda when pressing \"[\"."
   :group 'org-agenda-line-format
+  :version "24.1"
   :type '(list
 	  (string :tag "Scheduled today     ")
 	  (string :tag "Scheduled previously")))
@@ -1564,6 +1581,7 @@ the headline/diary entry."
   "Non-nil means remove time ranges specifications in agenda
 items that span on several days."
   :group 'org-agenda-line-format
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-agenda-default-appointment-duration nil
@@ -1645,6 +1663,7 @@ The only argument passed to that function is the day. It should
 returns a face, or nil if does not want to specify a face and let
 the normal rules apply."
   :group 'org-agenda-line-format
+  :version "24.1"
   :type 'function)
 
 (defcustom org-agenda-category-icon-alist nil
@@ -1677,6 +1696,7 @@ category, you can use:
 
   (\"Emacs\" '(space . (:width (16))))"
   :group 'org-agenda-line-format
+  :version "24.1"
   :type '(alist :key-type (string :tag "Regexp matching category")
 		:value-type (choice (list :tag "Icon"
 					  (string :tag "File or data")
@@ -1739,6 +1759,7 @@ With selected entries in an agenda buffer, `B R' will call
 the custom function `set-category' on the selected entries.
 Note that functions in this alist don't need to be quoted."
   :type 'alist
+  :version "24.1"
   :group 'org-agenda)
 
 (eval-when-compile
@@ -1768,7 +1789,7 @@ works you probably want to add it to `org-agenda-custom-commands' for good."
 	(setcdr ass (cdr entry))
       (push entry org-agenda-custom-commands))))
 
-;;; Define the Org-agenda-mode
+;;; Define the org-agenda-mode
 
 (defvar org-agenda-mode-map (make-sparse-keymap)
   "Keymap for `org-agenda-mode'.")
@@ -4375,7 +4396,7 @@ of what a project is and how to check if it stuck, customize the variable
 ;;; Diary integration
 
 (defvar org-disable-agenda-to-diary nil)          ;Dynamically-scoped param.
-(defvar list-diary-entries-hook)
+(defvar diary-list-entries-hook)
 (defvar diary-time-regexp)
 (defun org-get-entries-from-diary (date)
   "Get the (Emacs Calendar) diary entries for DATE."
@@ -4384,8 +4405,8 @@ of what a project is and how to check if it stuck, customize the variable
 	 (diary-display-hook '(fancy-diary-display))
 	 (diary-display-function 'fancy-diary-display)
 	 (pop-up-frames nil)
-	 (list-diary-entries-hook
-	  (cons 'org-diary-default-entry list-diary-entries-hook))
+	 (diary-list-entries-hook
+	  (cons 'org-diary-default-entry diary-list-entries-hook))
 	 (diary-file-name-prefix-function nil) ; turn this feature off
 	 (diary-modify-entry-list-string-function 'org-modify-diary-entry-string)
 	 entries
@@ -6190,8 +6211,9 @@ When this is the global TODO list, a prefix argument will be interpreted."
     (recenter window-line)))
 
 (defvar org-global-tags-completion-table nil)
+(defvar org-agenda-filtered-by-category nil)
 (defvar org-agenda-filter-form nil)
-
+(defvar org-agenda-filtered-by-category nil)
 (defun org-agenda-filter-by-category (strip)
   "Keep only those lines in the agenda buffer that have a specific category.
 The category is that of the current line."
@@ -6369,10 +6391,9 @@ If the line does not have an effort defined, return nil."
       (funcall op (or eff (if org-sort-agenda-noeffort-is-high 32767 0))
 	       value))))
 
-(defvar org-agenda-filtered-by-category nil)
 (defun org-agenda-filter-apply (filter type)
   "Set FILTER as the new agenda filter and apply it."
-  (let (tags)
+  (let (tags cat)
     (if (eq type 'tag)
 	(setq org-agenda-tag-filter filter)
       (setq org-agenda-category-filter filter
@@ -7150,10 +7171,13 @@ if it was hidden in the outline."
     (select-window win)))
 
 (defvar org-agenda-show-window nil)
-(defun org-agenda-show-and-scroll-up ()
+(defun org-agenda-show-and-scroll-up (&optional arg)
   "Display the Org-mode file which contains the item at point.
-When called repeatedly, scroll the window that is displaying the buffer."
-  (interactive)
+When called repeatedly, scroll the window that is displaying the buffer.
+With a \\[universal-argument] prefix, use `org-show-entry' instead of
+`show-subtree' to display the item, so that drawers and logbooks stay
+folded."
+  (interactive "P")
   (let ((win (selected-window)))
     (if (and (window-live-p org-agenda-show-window)
 	     (eq this-command last-command))
@@ -7161,7 +7185,7 @@ When called repeatedly, scroll the window that is displaying the buffer."
 	  (select-window org-agenda-show-window)
 	  (ignore-errors (scroll-up)))
       (org-agenda-goto t)
-      (show-subtree)
+      (if arg (org-show-entry) (show-subtree))
       (setq org-agenda-show-window (selected-window)))
     (select-window win)))
 
@@ -7996,6 +8020,7 @@ top-level    as top-level entries at the end of the file."
 (defcustom org-agenda-insert-diary-extract-time nil
   "Non-nil means extract any time specification from the diary entry."
   :group 'org-agenda
+  :version "24.1"
   :type 'boolean)
 
 (defun org-agenda-add-entry-to-org-agenda-diary-file (type text &optional d1 d2)

+ 2 - 0
lisp/org-archive.el

@@ -43,6 +43,7 @@
 (defcustom org-archive-reversed-order nil
   "Non-nil means make the tree first child under the archive heading, not last."
   :group 'org-archive
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-archive-sibling-heading "Archive"
@@ -72,6 +73,7 @@ This variable is obsolete and has no effect anymore, instead add or remove
 (defcustom org-archive-subtree-add-inherited-tags 'infile
   "Non-nil means append inherited tags when archiving a subtree."
   :group 'org-archive
+  :version "24.1"
   :type '(choice
 	  (const :tag "Never" nil)
 	  (const :tag "When archiving a subtree to the same file" infile)

+ 1 - 1
lisp/org-ascii.el

@@ -108,7 +108,7 @@ utf8      Use all UTF-8 characters")
 (defun org-export-as-utf8 (&rest args)
   "Like `org-export-as-ascii', use encoding for special symbols."
   (interactive)
-  (org-export-as-encoding 'org-export-as-ascii 
+  (org-export-as-encoding 'org-export-as-ascii
 			  (org-called-interactively-p 'any)
 			  'utf8 args))
 

+ 1 - 0
lisp/org-attach.el

@@ -101,6 +101,7 @@ ln    create a hard link.  Note that this is not supported
 (defcustom org-attach-store-link-p nil
   "Non-nil means store a link to a file when attaching it."
   :group 'org-attach
+  :version "24.1"
   :type '(choice
 	  (const :tag "Don't store link" nil)
 	  (const :tag "Link to origin location" t)

+ 1 - 0
lisp/org-bbdb.el

@@ -120,6 +120,7 @@
 (declare-function diary-ordinal-suffix "diary-lib" (n))
 
 (defvar date)   ;; dynamically scoped from Org
+(defvar name)   ;; dynamically scoped from Org
 
 ;; Customization
 

+ 10 - 0
lisp/org-beamer.el

@@ -43,6 +43,7 @@
 (defcustom org-beamer-use-parts nil
   ""
   :group 'org-beamer
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-beamer-frame-level 1
@@ -52,6 +53,7 @@ Setting this to 2 will allow sections, 3 will allow subsections as well.
 You can set this to 4 as well, if you at the same time set
 `org-beamer-use-parts' to make the top levels `\part'."
   :group 'org-beamer
+  :version "24.1"
   :type '(choice
 	  (const :tag "Frames need a BEAMER_env property" nil)
 	  (integer :tag "Specific level makes a frame")))
@@ -60,12 +62,14 @@ You can set this to 4 as well, if you at the same time set
   "Default options string to use for frames, should contains the [brackets].
 And example for this is \"[allowframebreaks]\"."
   :group 'org-beamer
+  :version "24.1"
   :type '(string :tag "[options]"))
 
 (defcustom org-beamer-column-view-format
   "%45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)"
   "Default column view format that should be used to fill the template."
   :group 'org-beamer
+  :version "24.1"
   :type '(choice
 	  (const  :tag "Do not insert Beamer column view format" nil)
 	  (string :tag "Beamer column view format")))
@@ -76,6 +80,7 @@ And example for this is \"[allowframebreaks]\"."
 When a beamer template is filled, this will be the default for
 BEAMER_HEADER_EXTRA, which will be inserted just before \\begin{document}."
   :group 'org-beamer
+  :version "24.1"
   :type '(choice
 	  (const  :tag "Do not insert Beamer themes" nil)
 	  (string :tag "Beamer themes")))
@@ -102,6 +107,7 @@ These are just a completion help.")
     ("theorem"        "t" "\\begin{theorem}%a%U%x"             "\\end{theorem}")
     ("definition"     "d" "\\begin{definition}%a%U%x"          "\\end{definition}")
     ("example"        "e" "\\begin{example}%a%U%x"             "\\end{example}")
+    ("exampleblock"   "E" "\\begin{exampleblock}%a{%h}%x"      "\\end{exampleblock}")
     ("proof"          "p" "\\begin{proof}%a%U%x"               "\\end{proof}")
     ("beamercolorbox" "o" "\\begin{beamercolorbox}%o{%h}%x"    "\\end{beamercolorbox}")
     ("normal"         "h" "%h" "") ; Emit the heading as normal text
@@ -142,6 +148,7 @@ open    The opening template for the environment, with the following escapes
 close   The closing string of the environment."
 
   :group 'org-beamer
+  :version "24.1"
   :type '(repeat
 	  (list
 	   (string :tag "Environment")
@@ -402,6 +409,7 @@ the value will be inserted right after the documentclass statement."
 (defcustom org-beamer-fragile-re "\\\\\\(verb\\|lstinline\\)\\|^[ \t]*\\\\begin{\\(verbatim\\|lstlisting\\|minted\\)}"
   "If this regexp matches in a frame, the frame is marked as fragile."
   :group 'org-beamer
+  :version "24.1"
   :type 'regexp)
 
 (defface org-beamer-tag '((t (:box (:line-width 1 :color grey40))))
@@ -511,6 +519,7 @@ This function will run in the final LaTeX document."
 (defcustom org-beamer-outline-frame-title "Outline"
   "Default title of a frame containing an outline."
   :group 'org-beamer
+  :version "24.1"
   :type '(string :tag "Outline frame title")
 )
 
@@ -519,6 +528,7 @@ This function will run in the final LaTeX document."
 You might want to put e.g. [allowframebreaks=0.9] here.  Remember to
 include square brackets."
   :group 'org-beamer
+  :version "24.1"
   :type '(string :tag "Outline frame options")
 )
 

+ 9 - 0
lisp/org-bibtex.el

@@ -216,12 +216,14 @@
 (defcustom org-bibtex-autogen-keys nil
   "Set to a truth value to use `bibtex-generate-autokey' to generate keys."
   :group 'org-bibtex
+  :version "24.1"
   :type  'boolean)
 
 (defcustom org-bibtex-prefix nil
   "Optional prefix for all bibtex property names.
 For example setting to 'BIB_' would allow interoperability with fireforg."
   :group 'org-bibtex
+  :version "24.1"
   :type  'string)
 
 (defcustom org-bibtex-treat-headline-as-title t
@@ -230,6 +232,7 @@ If an entry is missing a title property, use the headline text as
 the property. If this value is t, `org-bibtex-check' will ignore
 a missing title field."
   :group 'org-bibtex
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-bibtex-export-arbitrary-fields nil
@@ -238,6 +241,7 @@ This only has effect if `org-bibtex-prefix' is defined, so as to
 ensure that other org-properties, such as CATEGORY or LOGGING are
 not placed in the exported bibtex entry."
   :group 'org-bibtex
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-bibtex-key-property "CUSTOM_ID"
@@ -247,11 +251,13 @@ bibtex headlines from within an org file. This can be set to ID
 to enable global links, but only with great caution, as global
 IDs must be unique."
   :group 'org-bibtex
+  :version "24.1"
   :type 'string)
 
 (defcustom org-bibtex-tags nil
   "List of tag(s) that should be added to new bib entries."
   :group 'org-bibtex
+  :version "24.1"
   :type '(repeat  :tag "Tag" (string)))
 
 (defcustom org-bibtex-tags-are-keywords nil
@@ -266,17 +272,20 @@ comma-separated string of keywords when exported to bibtex. Tags
 defined in `org-bibtex-tags' or `org-bibtex-no-export-tags' will
 not be exported."
   :group 'org-bibtex
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-bibtex-no-export-tags nil
   "List of tag(s) that should not be converted to keywords.
 This variable is relevant only if `org-bibtex-export-tags-as-keywords` is t."
   :group 'org-bibtex
+  :version "24.1"
   :type '(repeat :tag "Tag" (string)))
 
 (defcustom org-bibtex-type-property-name "btype"
   "Property in which to store bibtex entry type (e.g., article)."
   :group 'org-bibtex
+  :version "24.1"
   :type 'string)
 
 

+ 13 - 1
lisp/org-capture.el

@@ -56,7 +56,7 @@
 		  (date &optional keep-restriction))
 (declare-function org-table-get-specials "org-table" ())
 (declare-function org-table-goto-line "org-table" (N))
-(declare-function org-pop-to-buffer-same-window "org-compat" 
+(declare-function org-pop-to-buffer-same-window "org-compat"
 		  (&optional buffer-or-name norecord label))
 
 (defvar org-remember-default-headline)
@@ -262,6 +262,7 @@ w3, w3m                 |  %:type %:url
 info                    |  %:type %:file %:node
 calendar                |  %:type %:date"
   :group 'org-capture
+  :version "24.1"
   :type
   '(repeat
     (choice :value ("" "" entry (file "~/org/notes.org") "")
@@ -336,12 +337,21 @@ calendar                |  %:type %:date"
 The capture buffer is still current when this hook runs and it is
 widened to the entire buffer."
   :group 'org-capture
+  :version "24.1"
   :type 'hook)
 
 (defcustom org-capture-after-finalize-hook nil
   "Hook that is run right after a capture process is finalized.
   Suitable for window cleanup"
   :group 'org-capture
+  :version "24.1"
+  :type 'hook)
+
+(defcustom org-capture-prepare-finalize-hook nil
+  "Hook that is run before the finalization starts.
+The capture buffer is current and still narrowed."
+  :group 'org-capture
+  :version "24.1"
   :type 'hook)
 
 ;;; The property list for keeping information about the capture process
@@ -527,6 +537,8 @@ captured item after finalizing."
 	       (buffer-base-buffer (current-buffer)))
     (error "This does not seem to be a capture buffer for Org-mode"))
 
+  (run-hooks 'org-capture-prepare-finalize-hook)
+
   ;; Did we start the clock in this capture buffer?
   (when (and org-capture-clock-was-started
 	     org-clock-marker (marker-buffer org-clock-marker)

+ 13 - 5
lisp/org-clock.el

@@ -226,6 +226,7 @@ should get a different face (`org-mode-line-clock-overrun').
 When this is a string, it is prepended to the clock string as an indication,
 also using the face `org-mode-line-clock-overrun'."
   :group 'org-clock
+  :version "24.1"
   :type '(choice
 	  (const :tag "Just mark the time string" nil)
 	  (string :tag "Text to prepend")))
@@ -267,12 +268,14 @@ string as argument."
     :formatter nil)
   "Default properties for clock tables."
   :group 'org-clock
+  :version "24.1"
   :type 'plist)
 
 (defcustom org-clock-clocktable-formatter 'org-clocktable-write-default
   "Function to turn clocking data into a table.
 For more information, see `org-clocktable-write-default'."
   :group 'org-clocktable
+  :version "24.1"
   :type 'function)
 
 ;; FIXME: translate es and nl last string "Clock summary at"
@@ -283,6 +286,7 @@ For more information, see `org-clocktable-write-default'."
     ("nl" "Bestand"  "N"  "Tijdstip"   "Hoofding" "Duur"  "ALLES" "Totale duur"  "Bestandstijd" "Clock summary at"))
   "Terms used in clocktable, translated to different languages."
   :group 'org-clocktable
+  :version "24.1"
   :type 'alist)
 
 (defcustom org-clock-clocktable-default-properties '(:maxlevel 2 :scope file)
@@ -310,11 +314,13 @@ play with them."
 (defcustom org-clock-report-include-clocking-task nil
   "When non-nil, include the current clocking task time in clock reports."
   :group 'org-clock
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-clock-resolve-expert nil
   "Non-nil means do not show the splash buffer with the clock resolver."
   :group 'org-clock
+  :version "24.1"
   :type 'boolean)
 
 (defvar org-clock-in-prepare-hook nil
@@ -1387,7 +1393,8 @@ If there is no running clock, throw an error, unless FAIL-QUIETLY is set."
 	  (message (concat "Clock stopped at %s after HH:MM = " org-time-clocksum-format "%s") te h m
 		   (if remove " => LINE REMOVED" ""))
           (run-hooks 'org-clock-out-hook)
-	  (org-clock-delete-current))))))
+	  (unless (org-clocking-p)
+	    (org-clock-delete-current)))))))
 
 (add-hook 'org-clock-out-hook 'org-clock-remove-empty-clock-drawer)
 
@@ -1989,7 +1996,7 @@ the currently selected interval size."
                         (encode-time 0 0 0 (+ d n) m y))))
           ((and wp (string-match "w\\|W" wp) mw (> (length wp) 0))
            (require 'cal-iso)
-           (setq date (calendar-gregorian-from-absolute 
+           (setq date (calendar-gregorian-from-absolute
 		       (calendar-absolute-from-iso (list (+ mw n) 1 y))))
            (setq ins (format-time-string
                       "%G-W%V"
@@ -2006,7 +2013,7 @@ the currently selected interval size."
                (setq mw 5
                      y (- y 1))
              ())
-           (setq date (calendar-gregorian-from-absolute 
+           (setq date (calendar-gregorian-from-absolute
 		       (calendar-absolute-from-iso (org-quarter-to-date (+ mw n) y))))
            (setq ins (format-time-string
                       (concatenate 'string (number-to-string y) "-Q" (number-to-string (+ mw n)))
@@ -2456,7 +2463,9 @@ TIME:      The sum of all time spend in this tree, in minutes.  This time
       (org-clock-sum ts te
 		     (unless (null matcher)
 		       (lambda ()
-			 (let ((tags-list (org-get-tags-at)))
+			 (let* ((tags-list (org-get-tags-at))
+				(org-scanner-tags tags-list)
+				(org-trust-scanner-tags t))
 			   (eval matcher)))))
       (goto-char (point-min))
       (setq st t)
@@ -2631,4 +2640,3 @@ The details of what will be saved are regulated by the variable
 (provide 'org-clock)
 
 ;;; org-clock.el ends here
-

+ 4 - 3
lisp/org-crypt.el

@@ -76,21 +76,21 @@
 
 (defgroup org-crypt nil
   "Org Crypt"
-  :tag "Org Crypt" 
+  :tag "Org Crypt"
   :group 'org)
 
 (defcustom org-crypt-tag-matcher "crypt"
   "The tag matcher used to find headings whose contents should be encrypted.
 
 See the \"Match syntax\" section of the org manual for more details."
-  :type 'string 
+  :type 'string
   :group 'org-crypt)
 
 (defcustom org-crypt-key ""
   "The default key to use when encrypting the contents of a heading.
 
 This setting can also be overridden in the CRYPTKEY property."
-  :type 'string 
+  :type 'string
   :group 'org-crypt)
 
 (defcustom org-crypt-disable-auto-save 'ask
@@ -111,6 +111,7 @@ nil      : Leave auto-save-mode enabled.
            NOTE: This only works for entries which have a tag
            that matches `org-crypt-tag-matcher'."
   :group 'org-crypt
+  :version "24.1"
   :type '(choice (const :tag "Always"  t)
                  (const :tag "Never"   nil)
                  (const :tag "Ask"     ask)

+ 3 - 0
lisp/org-ctags.el

@@ -162,6 +162,7 @@ See the ctags documentation for more information.")
     (t "ctags-exuberant"))
   "Full path to the ctags executable file."
   :group 'org-ctags
+  :version "24.1"
   :type 'file)
 
 (defcustom org-ctags-open-link-functions
@@ -170,6 +171,7 @@ See the ctags documentation for more information.")
     org-ctags-ask-append-topic)
   "List of functions to be prepended to ORG-OPEN-LINK-FUNCTIONS when ORG-CTAGS is active."
   :group 'org-ctags
+  :version "24.1"
   :type 'hook
   :options '(org-ctags-find-tag
              org-ctags-ask-rebuild-tags-file-then-find-tag
@@ -191,6 +193,7 @@ Created as a local variable in each buffer.")
 The following patterns are replaced in the string:
     `%t' - replaced with the capitalized title of the hyperlink"
   :group 'org-ctags
+  :version "24.1"
   :type 'string)
 
 

+ 2 - 0
lisp/org-docbook.el

@@ -150,6 +150,7 @@ avoid same set of footnote IDs being used multiple times."
 (defcustom org-export-docbook-footnote-separator "<superscript>, </superscript>"
   "Text used to separate footnotes."
   :group 'org-export-docbook
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-docbook-emphasis-alist
@@ -195,6 +196,7 @@ This XSLT stylesheet is used by
 Object (FO) files.  You can use either `fo/docbook.xsl' that
 comes with DocBook, or any customization layer you may have."
   :group 'org-export-docbook
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-docbook-xslt-proc-command nil

+ 2 - 0
lisp/org-entities.el

@@ -44,6 +44,7 @@
 For example, this will replace \"\\nsup\" with \"[not a superset of]\"
 in backends where the corresponding character is not available."
   :group 'org-entities
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-entities-user nil
@@ -68,6 +69,7 @@ utf-8 replacement    Use the special characters available in utf-8.
 If you define new entities here that require specific LaTeX packages to be
 loaded, add these packages to `org-export-latex-packages-alist'."
   :group 'org-entities
+  :version "24.1"
   :type '(repeat
 	  (list
 	   (string :tag "name  ")

+ 1 - 1
lisp/org-eshell.el

@@ -45,7 +45,7 @@
      (if (get-buffer eshell-buffer-name)
        (org-pop-to-buffer-same-window eshell-buffer-name)
        (eshell))
-     (end-of-buffer)
+     (goto-char (point-max))
      (eshell-kill-input)
      (insert command)
      (eshell-send-input)))

+ 5 - 2
lisp/org-exp-blocks.el

@@ -135,6 +135,7 @@ export function should accept three arguments."
 (defcustom org-export-blocks-postblock-hook nil
   "Run after blocks have been processed with `org-export-blocks-preprocess'."
   :group 'org-export-general
+  :version "24.1"
   :type 'hook)
 
 (defun org-export-blocks-html-quote (body &optional open close)
@@ -224,7 +225,7 @@ which defaults to the value of `org-export-blocks-witheld'."
 
 ;;--------------------------------------------------------------------------------
 ;; ditaa: create images from ASCII art using the ditaa utility
-(defvar org-ditaa-jar-path (expand-file-name
+(defcustom org-ditaa-jar-path (expand-file-name
 			    "ditaa.jar"
 			    (file-name-as-directory
 			     (expand-file-name
@@ -233,7 +234,9 @@ which defaults to the value of `org-export-blocks-witheld'."
 			       (expand-file-name
 				"../contrib"
 				(file-name-directory (or load-file-name buffer-file-name)))))))
-  "Path to the ditaa jar executable.")
+  "Path to the ditaa jar executable."
+  :group 'org-babel
+  :type 'string)
 
 (defvar org-export-current-backend) ; dynamically bound in org-exp.el
 (defun org-export-blocks-format-ditaa (body &rest headers)

+ 7 - 1
lisp/org-exp.el

@@ -98,6 +98,7 @@ is nil, the buffer remains buried also in these cases."
 This applied to the commands `org-export-as-html-and-open' and
 `org-export-as-pdf-and-open'."
   :group 'org-export-general
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-export-run-in-background nil
@@ -120,6 +121,7 @@ force an export command into the current process."
   "The initial scope when exporting with `org-export'.
 This variable can be either set to 'buffer or 'subtree."
   :group 'org-export-general
+  :version "24.1"
   :type '(choice
 	  (const :tag "Export current buffer" 'buffer)
 	  (const :tag "Export current subtree" 'subtree)))
@@ -206,7 +208,7 @@ This option can also be set with the +OPTIONS line, e.g. \"-:nil\"."
     ("sv" "F&ouml;rfattare" "Datum" "Inneh&aring;ll" "Fotnoter")
     ;; Use numeric character entities for proper rendering of non-UTF8 documents
     ;; ("zh_CN" "作者" "日期" "目录" "脚注")
-    ("zh_CN" "&#20316;&#32773;" "&#26085;&#26399;" "&#30446;&#24405;" "&#33050;&#27880;"))
+    ("zh-CN" "&#20316;&#32773;" "&#26085;&#26399;" "&#30446;&#24405;" "&#33050;&#27880;"))
   "Terms used in export text, translated to different languages.
 Use the variable `org-export-default-language' to set the language,
 or use the +OPTION lines for a per-file setting."
@@ -229,6 +231,7 @@ and in `org-clock-clocktable-language-setup'."
 (defcustom org-export-date-timestamp-format "%Y-%m-%d"
   "Time string format for Org timestamps in the #+DATE option."
   :group 'org-export-general
+  :version "24.1"
   :type 'string)
 
 (defvar org-export-page-description ""
@@ -326,6 +329,7 @@ done                 include only tasks that are already done.
 nil                  remove all tasks before export
 list of TODO kwds    keep only tasks with these keywords"
   :group 'org-export-general
+  :version "24.1"
   :type '(choice
 	  (const :tag "All tasks" t)
 	  (const :tag "No tasks" nil)
@@ -376,6 +380,7 @@ e.g. \"author:nil\"."
 This option can also be set with the +OPTIONS line,
 e.g. \"email:t\"."
   :group 'org-export-general
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-export-creator-info t
@@ -603,6 +608,7 @@ the values of constants may be useful to have."
 This is the global equivalent of the :remove-nil-lines option
 when locally sending a table with #+ORGTBL."
   :group 'org-export-tables
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-export-prefer-native-exporter-for-tables nil

+ 3 - 0
lisp/org-faces.el

@@ -351,6 +351,7 @@ keywords will then be interpreted as either foreground or background
 color."
   :group 'org-faces
   :group 'org-todo
+  :version "24.1"
   :type '(repeat
 	  (cons (choice (const todo) (const tag) (const priority))
 		(choice (const :foreground) (const :background)))))
@@ -547,6 +548,7 @@ follows a #+DATE:, #+AUTHOR: or #+EMAIL: keyword."
 When nil, format these as normal Org.  This is the default, because the
 content of these blocks will still be treated as Org syntax."
   :group 'org-faces
+  :version "24.1"
   :type 'boolean)
 
 (defface org-clock-overlay ;; copied from secondary-selection
@@ -732,6 +734,7 @@ If nil, then all levels >=org-n-level-faces are styled like
 level org-n-level-faces"
  :group 'org-appearance
  :group 'org-faces
+ :version "24.1"
  :type 'boolean)
 
 (defface org-latex-and-export-specials

+ 1 - 1
lisp/org-feed.el

@@ -80,7 +80,7 @@
 ;;  that received the input of the feed.  You should add FEEDSTATUS
 ;;  to your list of drawers in the files that receive feed input:
 ;;
-;;       #+DRAWERS: PROPERTIES LOGBOOK FEEDSTATUS
+;;       #+DRAWERS: PROPERTIES CLOCK LOGBOOK RESULTS FEEDSTATUS
 ;;
 ;;  Acknowledgments
 ;;  ---------------

+ 1 - 0
lisp/org-footnote.el

@@ -57,6 +57,7 @@
 (declare-function org-mark-ring-push "org" (&optional pos buffer))
 (declare-function org-show-context "org" (&optional key))
 (declare-function org-trim "org" (s))
+(declare-function org-skip-whitespace "org" ())
 (declare-function outline-next-heading "outline")
 
 (defvar org-outline-regexp-bol)		; defined in org.el

+ 1 - 0
lisp/org-freemind.el

@@ -414,6 +414,7 @@ MATCHED is the link just matched."
   ;; with this setting now, but not before??? Was this perhaps a java
   ;; bug or is it a windows xp bug (some resource gets exhausted if you
   ;; use sticky keys which I do).
+  :version "24.1"
   :group 'org-freemind)
 
 (defun org-freemind-org-text-to-freemind-subnode/note (node-name start end drawers-regexp)

+ 2 - 1
lisp/org-gnus.el

@@ -62,6 +62,7 @@ configured) IMAP servers don't support this operation quickly.
 So if following a link to a Gnus article takes ages, try setting
 this variable to `t'."
   :group 'org-link-store
+  :version "24.1"
   :type 'boolean)
 
 
@@ -175,7 +176,7 @@ If `org-store-link' was called with a prefix arg the meaning of
 	(setq to (or to (gnus-fetch-original-field "To"))
 	      newsgroups (gnus-fetch-original-field "Newsgroups")
 	      x-no-archive (gnus-fetch-original-field "x-no-archive")))
-      (org-store-link-props :type "gnus" :from from :subject subject 
+      (org-store-link-props :type "gnus" :from from :subject subject
 			    :message-id message-id :group group :to to)
       (when date
 	(org-add-link-props :date date :date-timestamp date-ts

+ 2 - 0
lisp/org-habit.el

@@ -70,11 +70,13 @@ relative to the current effective date."
 (defcustom org-habit-today-glyph ?!
   "Glyph character used to identify today."
   :group 'org-habit
+  :version "24.1"
   :type 'character)
 
 (defcustom org-habit-completed-glyph ?*
   "Glyph character used to show completed days on which a task was done."
   :group 'org-habit
+  :version "24.1"
   :type 'character)
 
 (defface org-habit-clear-face

+ 9 - 0
lisp/org-html.el

@@ -64,6 +64,7 @@ by the footnotes themselves."
 (defcustom org-export-html-footnote-separator "<sup>, </sup>"
   "Text used to separate footnotes."
   :group 'org-export-html
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-html-coding-system nil
@@ -252,6 +253,7 @@ You can also customize this for each buffer, using something like
 
 #+MATHJAX: scale:\"133\" align:\"right\" mathml:t path:\"/MathJax/\""
   :group 'org-export-html
+  :version "24.1"
   :type '(list :greedy t
 	      (list :tag "path   (the path from where to load MathJax.js)"
 		    (const :format "       " path) (string))
@@ -335,6 +337,7 @@ You can also customize this for each buffer, using something like
 </script>"
   "The MathJax setup for XHTML files."
   :group 'org-export-html
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-html-tag-class-prefix ""
@@ -361,6 +364,7 @@ It requires to %s: both will be replaced by the anchor referring
 to the headline (e.g. \"sec-2\").  When set to `nil', don't insert
 HTML anchors in headlines."
   :group 'org-export-html
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-html-preamble t
@@ -392,6 +396,7 @@ precedence over this variable."
 If you need to use a \"%\" character, you need to escape it
 like that: \"%%\"."
   :group 'org-export-html
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-html-postamble 'auto
@@ -432,6 +437,7 @@ precedence over this variable."
 If you need to use a \"%\" character, you need to escape it
 like that: \"%%\"."
   :group 'org-export-html
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-html-home/up-format
@@ -548,6 +554,7 @@ When nil, alignment will only be specified in the column tags, but this
 is ignored by some browsers (like Firefox, Safari).  Opera does it right
 though."
   :group 'org-export-tables
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-export-html-table-use-header-tags-for-first-column nil
@@ -578,6 +585,7 @@ When nil, also column one will use data tags."
     (">" . "&gt;"))
   "Alist of characters to be converted by `org-html-protect'."
   :group 'org-export-html
+  :version "24.1"
   :type '(repeat (cons (string :tag "Character")
 		       (string :tag "HTML equivalent"))))
 
@@ -639,6 +647,7 @@ This is a list of three strings, the first one for the preamble
 DIV, the second one for the content DIV and the third one for the
 postamble DIV."
   :group 'org-export-html
+  :version "24.1"
   :type '(list
 	  (string :tag " Div for the preamble:")
 	  (string :tag "  Div for the content:")

+ 4 - 0
lisp/org-icalendar.el

@@ -54,6 +54,7 @@ for timed events.  If non-zero, alarms are created.
 - The alarm will go off N minutes before the event
 - only a DISPLAY action is defined."
   :group 'org-export-icalendar
+  :version "24.1"
   :type 'integer)
 
 (defcustom org-icalendar-combined-name "OrgMode"
@@ -64,6 +65,7 @@ for timed events.  If non-zero, alarms are created.
 (defcustom org-icalendar-combined-description nil
   "Calendar description for the combined iCalendar (all agenda files)."
   :group 'org-export-icalendar
+  :version "24.1"
   :type 'string)
 
 (defcustom org-icalendar-use-plain-timestamp t
@@ -74,6 +76,7 @@ for timed events.  If non-zero, alarms are created.
 (defcustom org-icalendar-honor-noexport-tag nil
   "Non-nil means don't export entries with a tag in `org-export-exclude-tags'."
   :group 'org-export-icalendar
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-icalendar-use-deadline '(event-if-not-todo todo-due)
@@ -213,6 +216,7 @@ Interesting value are:
  - \":%Y%m%dT%H%M%SZ\" for time expressed in Universal Time"
 
   :group 'org-export-icalendar
+  :version "24.1"
   :type '(choice
 	  (const :tag "Local time" ":%Y%m%dT%H%M%S")
 	  (const :tag "Explicit local time" ";TZID=%Z:%Y%m%dT%H%M%S")

+ 1 - 5
lisp/org-id.el

@@ -73,7 +73,7 @@
 (require 'org)
 
 (declare-function message-make-fqdn "message" ())
-(declare-function org-pop-to-buffer-same-window 
+(declare-function org-pop-to-buffer-same-window
 		  "org-compat" (&optional buffer-or-name norecord label))
 
 ;;; Customization
@@ -641,7 +641,3 @@ optional argument MARKERP, return the position as a new marker."
 (provide 'org-id)
 
 ;;; org-id.el ends here
-
-
-
-

+ 5 - 2
lisp/org-indent.el

@@ -45,6 +45,7 @@
 (declare-function org-inlinetask-get-task-level "org-inlinetask" ())
 (declare-function org-inlinetask-in-task-p "org-inlinetask" ())
 (declare-function org-list-item-body-column "org-list" (item))
+(defvar org-inlinetask-show-first-star)
 
 (defgroup org-indent nil
   "Options concerning dynamic virtual outline indentation."
@@ -293,8 +294,10 @@ Assume point is at beginning of line."
 		(let ((stars (aref org-indent-stars
 				   (min l org-indent-max-levels))))
 		  (and stars
-		       (concat org-indent-inlinetask-first-star
-			       (substring stars 1)))))
+		       (if (org-bound-and-true-p org-inlinetask-show-first-star)
+			   (concat org-indent-inlinetask-first-star
+				   (substring stars 1))
+			 stars))))
 	       (h (aref org-indent-stars
 			(min l org-indent-max-levels)))
 	       (t (aref org-indent-strings

+ 17 - 4
lisp/org-inlinetask.el

@@ -90,6 +90,9 @@
 
 (defcustom org-inlinetask-min-level 15
   "Minimum level a headline must have before it is treated as an inline task.
+Don't set it to something higher than `29' or clocking will break since this 
+is the hardcoded maximum number of stars `org-clock-sum' will work with.
+
 It is strongly recommended that you set `org-cycle-max-level' not at all,
 or to a number smaller than this one.  In fact, when `org-cycle-max-level' is
 not set, it will be assumed to be one less than the value of smaller than
@@ -99,6 +102,12 @@ the value of this variable."
 	  (const :tag "Off" nil)
 	  (integer)))
 
+(defcustom org-inlinetask-show-first-star nil
+  "Non-nil means display the first star of an inline task as additional marker.
+When nil, the first star is not shown."
+  :tag "Org Inline Tasks"
+  :group 'org-structure)
+
 (defcustom org-inlinetask-export t
   "Non-nil means export inline tasks.
 When nil, they will not be exported."
@@ -173,6 +182,7 @@ or, with the additional package \"todonotes\" for LaTeX,
 This should be the state `org-inlinetask-insert-task' should use by
 default, or nil of no state should be assigned."
   :group 'org-inlinetask
+  :version "24.1"
   :type '(choice
 	  (const :tag "No state" nil)
 	  (string :tag "Specific state")))
@@ -431,9 +441,12 @@ Either remove headline and meta data, or do special formatting."
 			 'org-hide
 		       'org-warning)))
     (while (re-search-forward re limit t)
-      (add-text-properties (match-beginning 1) (match-end 1)
-			   `(face ,start-face font-lock-fontified t))
-      (add-text-properties (match-beginning 2) (match-end 2)
+      (if org-inlinetask-show-first-star
+	  (add-text-properties (match-beginning 1) (match-end 1)
+			       `(face ,start-face font-lock-fontified t)))
+      (add-text-properties (match-beginning
+			    (if org-inlinetask-show-first-star 2 1))
+			   (match-end 2)
 			   '(face org-hide font-lock-fontified t))
       (add-text-properties (match-beginning 3) (match-end 3)
 			   '(face org-inlinetask font-lock-fontified t)))))
@@ -451,7 +464,7 @@ Either remove headline and meta data, or do special formatting."
      ((= end start))
      ;; Inlinetask was folded: expand it.
      ((get-char-property (1+ start) 'invisible)
-      (outline-flag-region start end nil))
+      (org-show-entry))
      (t (outline-flag-region start end t)))))
 
 (defun org-inlinetask-remove-END-maybe ()

+ 1 - 1
lisp/org-irc.el

@@ -59,7 +59,7 @@
 (declare-function erc-server-buffer "erc" ())
 (declare-function erc-get-server-nickname-list "erc" ())
 (declare-function erc-cmd-JOIN "erc" (channel &optional key))
-(declare-function org-pop-to-buffer-same-window 
+(declare-function org-pop-to-buffer-same-window
 		  "org-compat" (&optional buffer-or-name norecord label))
 
 (defvar org-irc-client 'erc

+ 18 - 3
lisp/org-latex.el

@@ -218,6 +218,7 @@ For example, adding an entry
 will cause \\usepackage[utf8x]{inputenc} to be used for buffers that
 are written as utf8 files."
   :group 'org-export-latex
+  :version "24.1"
   :type '(repeat
 	  (cons
 	   (string :tag "Derived from buffer")
@@ -283,6 +284,7 @@ markup defined, the first one in the association list will be used."
 (defcustom org-export-latex-tag-markup "\\textbf{%s}"
   "Markup for tags, as a printf format."
   :group 'org-export-latex
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-latex-timestamp-markup "\\textit{%s}"
@@ -293,6 +295,7 @@ markup defined, the first one in the association list will be used."
 (defcustom org-export-latex-timestamp-inactive-markup "\\textit{%s}"
   "A printf format string to be applied to inactive time stamps."
   :group 'org-export-latex
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-latex-timestamp-keyword-markup "\\texttt{%s}"
@@ -302,11 +305,12 @@ markup defined, the first one in the association list will be used."
 
 (defcustom org-export-latex-href-format "\\href{%s}{%s}"
   "A printf format string to be applied to href links.
-The format must contain either two %s instances or just one.  
-If it contains two %s instances, the first will be filled with 
+The format must contain either two %s instances or just one.
+If it contains two %s instances, the first will be filled with
 the link, the second with the link description.  If it contains
 only one, the %s will be filled with the link."
   :group 'org-export-latex
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-latex-hyperref-format "\\hyperref[%s]{%s}"
@@ -314,11 +318,13 @@ only one, the %s will be filled with the link."
 The format must contain one or two %s instances.  The first one
 will be filled with the link, the second with its description."
   :group 'org-export-latex
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-latex-footnote-separator "\\textsuperscript{,}\\,"
   "Text used to separate footnotes."
   :group 'org-export-latex
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-latex-quotes
@@ -336,6 +342,7 @@ For each item in a CONS, the first string is a regexp
 for allowed characters before/after the quote, the second
 string defines the replacement string for this quote."
   :group 'org-export-latex
+  :version "24.1"
   :type '(list
 	  (cons :tag "Opening quote"
 		(string :tag "Regexp for char before")
@@ -361,6 +368,7 @@ string defines the replacement string for this quote."
   "When non-nil, the caption is set above the table.  When nil,
 the caption is set below the table."
   :group 'org-export-latex
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-export-latex-tables-column-borders nil
@@ -478,6 +486,7 @@ Code blocks exported with the listings package (controlled by the
 `org-export-latex-listings' variable) can be named in the style
 of noweb."
   :group 'org-export-latex
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-export-latex-minted-langs
@@ -499,6 +508,7 @@ with:
 pygmentize -L lexers
 "
   :group 'org-export-latex
+  :version "24.1"
   :type '(repeat
 	  (list
 	   (symbol :tag "Major mode       ")
@@ -522,6 +532,7 @@ black keywords.
 Note that the same options will be applied to blocks of all
 languages."
   :group 'org-export-latex
+  :version "24.1"
   :type '(repeat
 	  (list
 	   (string :tag "Listings option name ")
@@ -545,6 +556,7 @@ will result in src blocks being exported with
 as the start of the minted environment. Note that the same
 options will be applied to blocks of all languages."
   :group 'org-export-latex
+  :version "24.1"
   :type '(repeat
 	  (list
 	   (string :tag "Minted option name ")
@@ -586,11 +598,13 @@ and `org-export-with-tags' instead."
 (defcustom org-latex-default-figure-position "htb"
   "Default position for latex figures."
   :group 'org-export-latex
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-latex-tabular-environment "tabular"
   "Default environment used to build tables."
   :group 'org-export-latex
+  :version "24.1"
   :type 'string)
 
 (defcustom org-export-latex-inline-image-extensions
@@ -667,6 +681,7 @@ This function should accept the file name as its single argument."
   '("aux" "idx" "log" "out" "toc" "nav" "snm" "vrb")
   "The list of file extensions to consider as LaTeX logfiles."
   :group 'org-export-pdf
+  :version "24.1"
   :type '(repeat (string :tag "Extension")))
 
 (defcustom org-export-pdf-remove-logfiles t
@@ -2227,7 +2242,7 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER."
 		;; a LaTeX issue, but we here implement a work-around anyway.
 		(setq path (org-export-latex-protect-amp path)
 		      desc (org-export-latex-protect-amp desc)))
-	      (insert 
+	      (insert
 	       (if (string-match "%s.*%s" org-export-latex-href-format)
 		   (format org-export-latex-href-format path desc)
 		 (format org-export-latex-href-format path))))

+ 58 - 8
lisp/org-list.el

@@ -215,6 +215,7 @@ Both uppercase and lowercase are handled.  Lists with more than
 26 items will fallback to standard numbering.  Alphabetical
 counters like \"[@c]\" will be recognized."
   :group 'org-plain-lists
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-list-two-spaces-after-bullet-regexp nil
@@ -258,6 +259,7 @@ indent    when non-nil, indenting or outdenting list top-item
           outdenting a list whose bullet is * to column 0 will
           change that bullet to \"-\"."
    :group 'org-plain-lists
+   :version "24.1"
    :type '(alist :tag "Sets of rules"
 		 :key-type
 		 (choice
@@ -277,6 +279,7 @@ This affects the behavior of \\[org-move-item-up],
  \\[org-move-item-down], \\[org-next-item] and
  \\[org-previous-item]."
   :group 'org-plain-lists
+  :version "24.1"
   :type 'boolean)
 
 (defvar org-checkbox-statistics-hook nil
@@ -306,6 +309,7 @@ When the indentation would be larger than this, it will become
 By setting this to a small number, usually 1 or 2, one can more
 clearly distinguish sub-items in a list."
   :group 'org-plain-lists
+  :version "24.1"
   :type 'integer)
 
 (defcustom org-list-radio-list-templates
@@ -710,15 +714,15 @@ Assume point is at an item."
       ;;    equally indented than BEG-CELL's cdr.  Also, store ending
       ;;    position of items in END-LST-2.
       (catch 'exit
-      	(while t
-      	  (let ((ind (+ (or (get-text-property (point) 'original-indentation) 0)
+        (while t
+          (let ((ind (+ (or (get-text-property (point) 'original-indentation) 0)
 			(org-get-indentation))))
-      	    (cond
-      	     ((>= (point) lim-down)
+            (cond
+             ((>= (point) lim-down)
 	      ;; At downward limit: this is de facto the end of the
 	      ;; list.  Save point as an ending position, and jump to
 	      ;; part 3.
-      	      (throw 'exit
+              (throw 'exit
 		     (push (cons 0 (funcall end-before-blank)) end-lst-2)))
 	     ;; At a verbatim block, move to its end.  Point is at bol
 	     ;; and 'org-example property is set by whole lines:
@@ -1015,6 +1019,41 @@ type is determined by the first item of the list."
      ((string-match "[[:alnum:]]" (org-list-get-bullet first struct)) 'ordered)
      (t 'unordered))))
 
+(defun org-list-get-item-number (item struct prevs parents)
+  "Return ITEM's sequence number.
+
+STRUCT is the list structure.  PREVS is the alist of previous
+items, as returned by `org-list-prevs-alist'.  PARENTS is the
+alist of ancestors, as returned by `org-list-parents-alist'.
+
+Return value is a list of integers.  Counters have an impact on
+that value."
+  (let ((get-relative-number
+	 (function
+	  (lambda (item struct prevs)
+	    ;; Return relative sequence number of ITEM in the sub-list
+	    ;; it belongs.  STRUCT is the list structure.  PREVS is
+	    ;; the alist of previous items.
+	    (let ((seq 0) (pos item) counter)
+	      (while (and (not (setq counter (org-list-get-counter pos struct)))
+			  (setq pos (org-list-get-prev-item pos struct prevs)))
+		(incf seq))
+	      (if (not counter) (1+ seq)
+		(cond
+		 ((string-match "[A-Za-z]" counter)
+		  (+ (- (string-to-char (upcase (match-string 0 counter))) 64)
+		     seq))
+		 ((string-match "[0-9]+" counter)
+		  (+ (string-to-number (match-string 0 counter)) seq))
+		 (t (1+ seq)))))))))
+    ;; Cons each parent relative number into return value (OUT).
+    (let ((out (list (funcall get-relative-number item struct prevs)))
+	  (parent item))
+      (while (setq parent (org-list-get-parent parent struct parents))
+	(push (funcall get-relative-number parent struct prevs) out))
+      ;; Return value.
+      out)))
+
 
 
 ;;; Searching
@@ -1239,9 +1278,8 @@ This function modifies STRUCT."
       (insert body item-sep)
       ;; 5. Add new item to STRUCT.
       (mapc (lambda (e)
-      	      (let ((p (car e))
-      		    (end (nth 6 e)))
-      		(cond
+              (let ((p (car e)) (end (nth 6 e)))
+                (cond
 		 ;; Before inserted item, positions don't change but
 		 ;; an item ending after insertion has its end shifted
 		 ;; by SIZE-OFFSET.
@@ -2129,6 +2167,18 @@ item is invisible."
 	  (goto-char (match-end 0))
 	  t)))))
 
+(defun org-mark-list ()
+  "Mark the current list.
+If this is a sublist, only mark the sublist."
+  (interactive)
+  (let* ((item (org-list-get-item-begin))
+	 (struct (org-list-struct))
+	 (prevs (org-list-prevs-alist struct))
+	 (lbeg (org-list-get-list-begin item struct prevs))
+	 (lend (org-list-get-list-end item struct prevs)))
+    (push-mark lend nil t)
+    (goto-char lbeg)))
+
 (defun org-list-repair ()
   "Fix indentation, bullets and checkboxes is the list at point."
   (interactive)

+ 1 - 1
lisp/org-mks.el

@@ -24,7 +24,7 @@
 
 
 ;;; Commentary:
-;; 
+;;
 
 ;;; Code:
 

+ 11 - 5
lisp/org-mobile.el

@@ -37,7 +37,7 @@
 
 (eval-when-compile (require 'cl))
 
-(declare-function org-pop-to-buffer-same-window 
+(declare-function org-pop-to-buffer-same-window
 		  "org-compat" (&optional buffer-or-name norecord label))
 
 (defgroup org-mobile nil
@@ -68,6 +68,7 @@ org-agenda-text-search-extra-files
 (defcustom org-mobile-files-exclude-regexp ""
   "A regexp to exclude files from `org-mobile-files'."
   :group 'org-mobile
+  :version "24.1"
   :type 'regexp)
 
 (defcustom org-mobile-directory ""
@@ -84,6 +85,7 @@ Turning on encryption requires to set the same password in the MobileOrg
 application.  Before turning this on, check of MobileOrg does already
 support it - at the time of this writing it did not yet."
   :group 'org-mobile
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-mobile-encryption-tempfile "~/orgtmpcrypt"
@@ -91,6 +93,7 @@ support it - at the time of this writing it did not yet."
 This must be local file on your local machine (not on the WebDAV server).
 You might want to put this file into a directory where only you have access."
   :group 'org-mobile
+  :version "24.1"
   :type 'directory)
 
 (defcustom org-mobile-encryption-password ""
@@ -111,6 +114,7 @@ it, this also limits the security of this approach.  You can also leave
 this variable empty - Org will then ask for the password once per Emacs
 session."
   :group 'org-mobile
+  :version "24.1"
   :type '(string :tag "Password"))
 
 (defvar org-mobile-encryption-password-session nil)
@@ -150,6 +154,7 @@ custom   all custom agendas defined by the user
 all      the custom agendas and the default ones
 list     a list of selection key(s) as string."
   :group 'org-mobile
+  :version "24.1"
   :type '(choice
 	  (const :tag "Default Agendas" default)
 	  (const :tag "Custom Agendas" custom)
@@ -272,7 +277,7 @@ Also exclude files matching `org-mobile-files-exclude-regexp'."
 		     (t nil)))
 		  org-mobile-files)))
 	 (files (delete
-		 nil 
+		 nil
 		 (mapcar (lambda (f)
 			   (unless (and (not (string= org-mobile-files-exclude-regexp ""))
 					(string-match org-mobile-files-exclude-regexp f))
@@ -295,6 +300,8 @@ Also exclude files matching `org-mobile-files-exclude-regexp'."
 	(push (cons file link-name) rtn)))
     (nreverse rtn)))
 
+(defvar org-agenda-filter)
+
 ;;;###autoload
 (defun org-mobile-push ()
   "Push the current state of Org affairs to the WebDAV directory.
@@ -303,7 +310,7 @@ create all custom agenda views, for upload to the mobile phone."
   (interactive)
   (let ((a-buffer (get-buffer org-agenda-buffer-name)))
     (let ((org-agenda-buffer-name "*SUMO*")
-	  (org-agenda-filter org-agenda-filter)
+	  (org-agenda-tag-filter org-agenda-tag-filter)
 	  (org-agenda-redo-command org-agenda-redo-command))
       (save-excursion
 	(save-window-excursion
@@ -499,7 +506,7 @@ agenda view showing the flagged items."
 				 org-mobile-directory))
     (save-excursion
       (setq buf (find-file file))
-      (when (and (= (point-min) (point-max))) 
+      (when (and (= (point-min) (point-max)))
 	(insert "\n")
 	(save-buffer)
 	(when org-mobile-use-encryption
@@ -1099,4 +1106,3 @@ A and B must be strings or nil."
 (provide 'org-mobile)
 
 ;;; org-mobile.el ends here
-

+ 32 - 2
lisp/org-pcomplete.el

@@ -50,6 +50,9 @@
   :tag "Org"
   :group 'org)
 
+(defvar org-drawer-regexp)
+(defvar org-property-re)
+
 (defun org-thing-at-point ()
   "Examine the thing at point and let the caller know what it is.
 The return value is a string naming the thing at point."
@@ -84,8 +87,16 @@ The return value is a string naming the thing at point."
 	   (equal (char-after (point-at-bol)) ?*))
       (cons "tag" nil))
      ((and (equal (char-before beg1) ?:)
-	   (not (equal (char-after (point-at-bol)) ?*)))
+	   (not (equal (char-after (point-at-bol)) ?*))
+	   (save-excursion
+	     (move-beginning-of-line 1)
+	     (skip-chars-backward "[ \t\n]")
+	     (or (looking-back org-drawer-regexp)
+		 (looking-back org-property-re))))
       (cons "prop" nil))
+     ((and (equal (char-before beg1) ?:)
+	   (not (equal (char-after (point-at-bol)) ?*)))
+      (cons "drawer" nil))
      (t nil))))
 
 (defun org-command-at-point ()
@@ -146,7 +157,7 @@ When completing for #+STARTUP, for example, this function returns
 			    (org-split-string (org-get-current-options) "\n"))
 		    org-additional-option-like-keywords)))))
    (substring pcomplete-stub 2)))
-  
+
 (defvar org-startup-options)
 (defun pcomplete/org-mode/file-option/startup ()
   "Complete arguments for the #+STARTUP file option."
@@ -239,6 +250,25 @@ This needs more work, to handle headings with lots of spaces in them."
 	     lst))
    (substring pcomplete-stub 1)))
 
+(defvar org-drawers)
+
+(defun pcomplete/org-mode/drawer ()
+  "Complete a drawer name."
+  (let ((spc (save-excursion
+	       (move-beginning-of-line 1)
+	       (looking-at "^\\([ \t]*\\):")
+	       (match-string 1)))
+	(cpllist (mapcar (lambda (x) (concat x ": ")) org-drawers)))
+    (pcomplete-here cpllist
+     (substring pcomplete-stub 1)
+     (unless (or (not (delete
+		       nil
+		       (mapcar (lambda(x)
+				 (string-match (substring pcomplete-stub 1) x))
+			       cpllist)))
+		 (looking-at "[ \t]*\n.*:END:"))
+       (save-excursion (insert "\n" spc ":END:"))))))
+
 (defun pcomplete/org-mode/block-option/src ()
   "Complete the arguments of a begin_src block.
 Complete a language in the first field, the header arguments and switches."

+ 8 - 3
lisp/org-publish.el

@@ -248,6 +248,7 @@ nil won't sort files.
 You can overwrite this default per project in your
 `org-publish-project-alist', using `:sitemap-sort-files'."
   :group 'org-publish
+  :version "24.1"
   :type 'symbol)
 
 (defcustom org-publish-sitemap-sort-folders 'first
@@ -260,6 +261,7 @@ Any other value will not mix files and folders.
 You can overwrite this default per project in your
 `org-publish-project-alist', using `:sitemap-sort-folders'."
   :group 'org-publish
+  :version "24.1"
   :type 'symbol)
 
 (defcustom org-publish-sitemap-sort-ignore-case nil
@@ -268,12 +270,14 @@ You can overwrite this default per project in your
 You can overwrite this default per project in your
 `org-publish-project-alist', using `:sitemap-ignore-case'."
   :group 'org-publish
+  :version "24.1"
   :type 'boolean)
 
 (defcustom org-publish-sitemap-date-format "%Y-%m-%d"
   "Format for `format-time-string' which is used to print a date
 in the sitemap."
   :group 'org-publish
+  :version "24.1"
   :type 'string)
 
 (defcustom org-publish-sitemap-file-entry-format "%t"
@@ -284,6 +288,7 @@ You could use brackets to delimit on what part the link will be.
 %a is the author.
 %d is the date formatted using `org-publish-sitemap-date-format'."
   :group 'org-publish
+  :version "24.1"
   :type 'string)
 
 
@@ -368,7 +373,7 @@ This is a compatibility function for Emacsen without `delete-dups'."
 
 (declare-function org-publish-delete-dups "org-publish" (list))
 (declare-function find-lisp-find-files "find-lisp" (directory regexp))
-(declare-function org-pop-to-buffer-same-window 
+(declare-function org-pop-to-buffer-same-window
 		  "org-compat" (&optional buffer-or-name norecord label))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1031,7 +1036,7 @@ the project."
        (setq ibuffer (find-file-noselect index-file))
        (with-current-buffer ibuffer
          (erase-buffer)
-         (insert "\n\n#+include: \"theindex.inc\"\n\n")
+         (insert "\n\n#+INCLUDE: \"theindex.inc\"\n\n")
          (save-buffer))
        (kill-buffer ibuffer)))))
 
@@ -1127,7 +1132,7 @@ so that the file including them will be republished as well."
       (let ((ctime (org-publish-cache-ctime-of-src filename)))
 	(or (< pstamp ctime)
 	    (when included-files-ctime
-	      (not (null (delq nil (mapcar (lambda(ct) (< ctime ct)) 
+	      (not (null (delq nil (mapcar (lambda(ct) (< ctime ct))
 					   included-files-ctime))))))))))
 
 (defun org-publish-cache-set-file-property (filename property value &optional project-name)

+ 1 - 2
lisp/org-remember.el

@@ -39,7 +39,7 @@
 (declare-function remember "remember" (&optional initial))
 (declare-function remember-buffer-desc "remember" ())
 (declare-function remember-finalize "remember" ())
-(declare-function org-pop-to-buffer-same-window 
+(declare-function org-pop-to-buffer-same-window
 		  "org-compat" (&optional buffer-or-name norecord label))
 
 (defvar remember-save-after-remembering)
@@ -1152,4 +1152,3 @@ See also the variable `org-reverse-note-order'."
 (provide 'org-remember)
 
 ;;; org-remember.el ends here
-

+ 1 - 1
lisp/org-special-blocks.el

@@ -51,7 +51,7 @@ interpreted by other mechanisms.")
 (defun org-special-blocks-make-special-cookies ()
   "Adds special cookies when #+begin_foo and #+end_foo tokens are
 seen.  This is run after a few special cases are taken care of."
-  (when (or (eq org-export-current-backend 'html) 
+  (when (or (eq org-export-current-backend 'html)
 	    (eq org-export-current-backend 'latex))
     (goto-char (point-min))
     (while (re-search-forward "^[ \t]*#\\+\\(begin\\|end\\)_\\(.*\\)$" nil t)

Some files were not shown because too many files changed in this diff