Browse Source

Merge branch 'master' of orgmode.org:org-mode

Bastien Guerry 11 years ago
parent
commit
bfab7af162
3 changed files with 29 additions and 15 deletions
  1. 12 5
      doc/org.texi
  2. 16 9
      lisp/org.el
  3. 1 1
      testing/lisp/test-org-element.el

+ 12 - 5
doc/org.texi

@@ -12977,7 +12977,7 @@ an Info file.
 Export as a Texinfo file.  For an Org file, @file{myfile.org}, the resulting
 file will be @file{myfile.texi}.  The file will be overwritten without
 warning.
-@orgcmd{C-c C-e m M,org-texinfo-export-to-info}
+@orgcmd{C-c C-e i i,org-texinfo-export-to-info}
 Export to Texinfo and then process to an Info file@footnote{By setting
 @code{org-texinfo-info-process}, it is possible to generate other formats,
 including DocBook.}.
@@ -13102,7 +13102,15 @@ an appendix, independently on its level and the class used.
 Each regular sectioning structure creates a menu entry, named after the
 heading.  You can provide a different, e.g., shorter, title in
 @code{:ALT_TITLE:} property (@pxref{Table of contents}).  Optionally, you can
-specify a description for the item in @code{:DESCRIPTION:} property.
+specify a description for the item in @code{:DESCRIPTION:} property.  E.g.,
+
+@example
+* Controlling Screen Display
+  :PROPERTIES:
+  :ALT_TITLE: Display
+  :DESCRIPTION: Controlling Screen Display
+  :END:
+@end example
 
 @node Indices
 @subsection Indices
@@ -13168,9 +13176,8 @@ written just above the list or table.
 
 In Texinfo output, description lists appear as two-column tables, using the
 default command @code{@@table}.  You can use @code{@@ftable} or
-@code{@@vtable}@footnote{For more information, please refer to
-@inforef{Two-column Tables,,texinfo}.} instead with @code{:table-type}
-attribute.
+@code{@@vtable}@footnote{For more information, @inforef{Two-column
+Tables,,texinfo}.} instead with @code{:table-type} attribute.
 
 @vindex org-texinfo-def-table-markup
 In any case, these constructs require a highlighting command for entries in

+ 16 - 9
lisp/org.el

@@ -6257,12 +6257,20 @@ Use `org-reduced-level' to remove the effect of `org-odd-levels'."
 
 (defsubst org-re-property (property &optional literal allow-null)
   "Return a regexp matching a PROPERTY line.
- Match group 3 will be set to the value if it exists."
-  (concat "^\\(?4:[ \t]*\\)\\(?1::\\(?2:"
- 	  (if literal property (regexp-quote property))
-	  "\\):\\)\\(?:[ \t]+\\(?3:[^ \t\r\n].*?\\)\\)"
-	  (and allow-null "?")
-	  "\\(?5:[ \t]*\\)$"))
+
+When optional argument LITERAL is non-nil, do not quote PROPERTY.
+This is useful when PROPERTY is a regexp.  When ALLOW-NULL is
+non-nil, match properties even without a value.
+
+Match group 3 is set to the value when it exists.  If there is no
+value and ALLOW-NULL is non-nil, it is set to the empty string."
+  (concat
+   "^\\(?4:[ \t]*\\)"
+   (format "\\(?1::\\(?2:%s\\):\\)"
+	   (if literal property (regexp-quote property)))
+   (if allow-null
+       "\\(?:\\(?3:$\\)\\|[ \t]+\\(?3:.*?\\)\\)\\(?5:[ \t]*\\)$"
+     "[ \t]+\\(?3:[^ \r\t\n]+.*?\\)\\(?5:[ \t]*\\)$")))
 
 (defconst org-property-re
   (org-re-property ".*?" 'literal t)
@@ -22468,9 +22476,8 @@ Alignment is done according to `org-property-format', which see."
 	  (looking-at org-property-re))
     (replace-match
      (concat (match-string 4)
-	     (if (match-string 3)
-		 (format org-property-format (match-string 1) (match-string 3))
-	       (match-string 1)))
+	     (org-trim
+	      (format org-property-format (match-string 1) (match-string 3))))
      t t)))
 
 (defun org-indent-line ()

+ 1 - 1
testing/lisp/test-org-element.el

@@ -1587,7 +1587,7 @@ e^{i\\pi}+1=0
 	 (org-element-type (org-element-at-point)))))
   ;; Accept empty properties.
   (should
-   (equal '(("foo" "value") ("bar" nil))
+   (equal '(("foo" "value") ("bar" ""))
 	  (org-test-with-temp-text ":PROPERTIES:\n:foo: value\n:bar:\n:END:"
 	    (org-element-map (org-element-parse-buffer) 'node-property
 	      (lambda (p)