Commit 7a368970 authored by Carsten Dominik's avatar Carsten Dominik
Browse files

(org-export-plain-list-max-depth): Renamed from

	`org-export-local-list-max-depth'.  Default values changed to 3.
	(org-auto-renumber-ordered-lists,
	org-plain-list-ordered-item-terminator): New options.
	(org-at-item-p, org-beginning-of-item, org-end-of-item,
	org-get-indentation, org-get-string-indentation,
	org-maybe-renumber-ordered-list, org-renumber-ordered-list): New
	functions.
	(org-move-item-down, org-move-item-up): New commands.
	(org-export-as-html): New classes for CSS support.  Bug fix in
	regular expression detecting fixed-width regions.  Respect
	`org-local-list-ordered-item-terminator'.
	(org-set-autofill-regexps, org-adaptive-fill-function): "1)" is
	also a list item.
	(org-metaup, org-metadown, org-shiftmetaup, org-shiftmetadown):
	New item moving functions added.
parent ece75c05
......@@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
;; Version: 3.20
;; Version: 3.21
;;
;; This file is part of GNU Emacs.
;;
......@@ -76,10 +76,17 @@
;; The documentation of Org-mode can be found in the TeXInfo file. The
;; distribution also contains a PDF version of it. At the homepage of
;; Org-mode, you can read the same text online as HTML. There is also an
;; excellent reference card made by Philip Rooke.
;; excellent reference card made by Philip Rooke. This card can be found
;; in the etc/ directory of Emacs 22.
;;
;; Changes:
;; -------
;; Version 3.21
;; - Improved CSS support for the HTML export. Thanks to Christian Egli.
;; - Editing support for hand-formatted lists
;; - M-S-cursor keys handle plain list items
;; - C-c C-c renumbers ordered plain lists
;;
;; Version 3.20
;; - There is finally an option to make TAB jump over horizontal lines
;; in tables instead of creating a new line before that line.
......@@ -88,7 +95,7 @@
;; - Changes to the HTML exporter
;; - hand-formatted lists are exported correctly, similar to
;; markdown lists. Nested lists are possible. See the docstring
;; of the variable `org-export-local-list-max-depth'.
;; of the variable `org-export-plain-list-max-depth'.
;; - cleaned up to produce valid HTML 4.0 (transitional).
;; - support for cascading style sheets.
;; - New command to cycle through all agenda files, on C-,
......@@ -234,7 +241,7 @@
;;; Customization variables
(defvar org-version "3.20"
(defvar org-version "3.21"
"The version number of the file org.el.")
(defun org-version ()
(interactive)
......@@ -889,6 +896,25 @@ first line, so it is probably best to use this in combinations with
:group 'org-structure
:type 'boolean)
(defcustom org-plain-list-ordered-item-terminator t
"The character that makes a line with leading number an ordered list item.
Valid values are ?. and ?\). To get both terminators, use t. While
?. may look nicer, it creates the danger that a line with leading
number may be incorrectly interpreted as an item. ?\) therefore is
the safe choice."
:group 'org-structure
:type '(choice (const :tag "dot like in \"2.\"" ?.)
(const :tag "paren like in \"2)\"" ?\))
(const :tab "both" t)))
(defcustom org-auto-renumber-ordered-lists t
"Non-nil means, automatically renumber ordered plain lists.
Renumbering happens when the sequence have been changed with
\\[org-shiftmetaup] or \\[org-shiftmetadown]. After other editing commands,
use \\[org-ctrl-c-ctrl-c] to trigger renumbering."
:group 'org-structure
:type 'boolean)
(defgroup org-link nil
"Options concerning links in Org-mode."
:tag "Org Link"
......@@ -1342,24 +1368,48 @@ This should have an association in `org-export-language-setup'."
:group 'org-export
:type 'string)
(defcustom org-export-html-style ""
(defcustom org-export-html-style
"<style type=\"text/css\">
html {
font-family: Times, serif;
font-size: 12pt;
}
.title { text-align: center; }
.todo, .deadline { color: red; }
.done { color: green; }
pre {
border: 1pt solid #AEBDCC;
background-color: #F3F5F7;
padding: 5pt;
font-family: courier, monospace;
}
table { border-collapse: collapse; }
td, th {
vertical-align: top;
border: 1pt solid #ADB9CC;
}
</style>"
"The default style specification for exported HTML files.
Since there are different ways of setting style information, this variable
needs to contain the full HTML structure to provide a style, including the
surrounding HTML tags. For example, legal values would be
surrounding HTML tags. The style specifications should include definiitons
for new classes todo, done, title, and deadline. For example, legal values
would be.
<style type=\"text/css\">
p {font-weight: normal; color: gray; }
h1 {color: black; }
.title { text-align: center; }
.todo, .deadline { color: red; }
.done { color: green; }
</style>
or
or, if you want to keep the style in a file,
<link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\">
As the value of this option simply gets inserted into the HTML <head> header,
you can \"misuse\" it to add arbitrary text to the header.
"
you can \"misuse\" it to add arbitrary text to the header."
:group 'org-export
:type 'string)
......@@ -1393,18 +1443,16 @@ This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"."
:group 'org-export
:type 'boolean)
(defcustom org-export-local-list-max-depth 1
(defcustom org-export-plain-list-max-depth 3
"Maximum depth of hand-formatted lists in HTML export.
Org-mode parses hand-formatted enumeration and bullet lists and
transforms them to HTML open export. Different indentation of the bullet
or number indicates different list nesting levels. To avoid confusion,
only a single level is allowed by default. This means that a list is started
with an item, and that all further items are consitered as long as the
indentation is larger or equal to the indentation of the first item. When this
is larger than 1, deeper indentation leads to deeper list nesting.
If you are careful with hand formatting, you can increase this limit and
get lists of arbitrary depth. For example, by setting this option to 3, the
following list would look correct in HTML:
transforms them to HTML open export. Different indentation of the
bullet or number indicates different list nesting levels. To avoid
confusion, only a single level is allowed by default. When this is
larger than 1, deeper indentation leads to deeper list nesting. For
example, the default value of 3 allows the following list to be
formatted correctly in HTML:
* Fruit
- Apple
......@@ -2757,6 +2805,234 @@ If optional TXT is given, check this string instead of the current kill."
(throw 'exit nil)))
t))))
;;; Plain list item
(defun org-at-item-p ()
"Is point in a line starting a hand-formatted item?"
(let ((llt org-plain-list-ordered-item-terminator))
(save-excursion
(goto-char (point-at-bol))
(looking-at
(cond
((eq llt t) "\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)")
((= llt ?.) "\\([ \t]*\\([-+]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)")
((= llt ?\)) "\\([ \t]*\\([-+]\\|\\([0-9]+)\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)")
(t (error "Invalid value of `org-plain-list-ordered-item-terminator'")))))))
(defun org-get-indentation ()
"Get the indentation of the current line, ionterpreting tabs."
(save-excursion
(beginning-of-line 1)
(skip-chars-forward " \t")
(current-column)))
(defun org-beginning-of-item ()
"Go to the beginning of the current hand-formatted item.
If the cursor is not in an item, throw an error."
(let ((pos (point))
(limit (save-excursion (org-back-to-heading)
(beginning-of-line 2) (point)))
ind ind1)
(if (org-at-item-p)
(beginning-of-line 1)
(beginning-of-line 1)
(skip-chars-forward " \t")
(setq ind (current-column))
(if (catch 'exit
(while t
(beginning-of-line 0)
(if (< (point) limit) (throw 'exit nil))
(unless (looking-at " \t]*$")
(skip-chars-forward " \t")
(setq ind1 (current-column))
(if (< ind1 ind)
(throw 'exit (org-at-item-p))))))
nil
(goto-char pos)
(error "Not in an item")))))
(defun org-end-of-item ()
"Go to the beginning of the current hand-formatted item.
If the cursor is not in an item, throw an error."
(let ((pos (point))
(limit (save-excursion (outline-next-heading) (point)))
(ind (save-excursion
(org-beginning-of-item)
(skip-chars-forward " \t")
(current-column)))
ind1)
(if (catch 'exit
(while t
(beginning-of-line 2)
(if (>= (point) limit) (throw 'exit t))
(unless (looking-at "[ \t]*$")
(skip-chars-forward " \t")
(setq ind1 (current-column))
(if (<= ind1 ind) (throw 'exit t)))))
(beginning-of-line 1)
(goto-char pos)
(error "Not in an item"))))
(defun org-move-item-down (arg)
"Move the plain list item at point down, i.e. swap with following item.
Subitems (items with larger indentation are considered part of the item,
so this really moves item trees."
(interactive "p")
(let (beg end ind ind1 (pos (point)) txt)
(org-beginning-of-item)
(setq beg (point))
(setq ind (org-get-indentation))
(org-end-of-item)
(setq end (point))
(setq ind1 (org-get-indentation))
(if (and (org-at-item-p) (= ind ind1))
(progn
(org-end-of-item)
(setq txt (buffer-substring beg end))
(save-excursion
(delete-region beg end))
(setq pos (point))
(insert txt)
(goto-char pos)
(org-maybe-renumber-ordered-list))
(goto-char pos)
(error "Cannot move this item further down"))))
(defun org-move-item-up (arg)
"Move the plain list item at point up, i.e. swap with previous item.
Subitems (items with larger indentation are considered part of the item,
so this really moves item trees."
(interactive "p")
(let (beg end ind ind1 (pos (point)) txt)
(org-beginning-of-item)
(setq beg (point))
(setq ind (org-get-indentation))
(org-end-of-item)
(setq end (point))
(goto-char beg)
(catch 'exit
(while t
(beginning-of-line 0)
(if (looking-at "[ \t]*$")
nil
(if (<= (setq ind1 (org-get-indentation)) ind)
(throw 'exit t)))))
(condition-case nil
(org-beginning-of-item)
(error (goto-char beg)
(error "Cannot move this item further up")))
(setq ind1 (org-get-indentation))
(if (and (org-at-item-p) (= ind ind1))
(progn
(setq txt (buffer-substring beg end))
(save-excursion
(delete-region beg end))
(setq pos (point))
(insert txt)
(goto-char pos)
(org-maybe-renumber-ordered-list))
(goto-char pos)
(error "Cannot move this item further up"))))
(defun org-maybe-renumber-ordered-list ()
"Renumber the ordered list at point if setup allows it.
This tests the user option `org-auto-renumber-ordered-lists' before
doing the renumbering."
(and org-auto-renumber-ordered-lists
(org-at-item-p)
(match-beginning 3)
(org-renumber-ordered-list 1)))
(defun org-get-string-indentation (s)
"What indentation has S due to SPACE and TAB at the beginning of the string?"
(let ((n -1) (i 0) (w tab-width) c)
(catch 'exit
(while (< (setq n (1+ n)) (length s))
(setq c (aref s n))
(cond ((= c ?\ ) (setq i (1+ i)))
((= c ?\t) (setq i (* (/ (+ w i) w) w)))
(t (throw 'exit t)))))
i))
(defun org-renumber-ordered-list (arg)
"Renumber an ordered plain list.
Cursor neext to be in the first line of an item, the line that starts
with something like \"1.\" or \"2)\"."
(interactive "p")
(unless (and (org-at-item-p)
(match-beginning 3))
(error "This is not an ordered list"))
(let ((line (org-current-line))
(col (current-column))
(ind (org-get-string-indentation
(buffer-substring (point-at-bol) (match-beginning 3))))
(term (substring (match-string 3) -1))
ind1 (n (1- arg)))
;; find where this list begins
(catch 'exit
(while t
(catch 'next
(beginning-of-line 0)
(if (looking-at "[ \t]*$") (throw 'next t))
(skip-chars-forward " \t") (setq ind1 (current-column))
(if (and (<= ind1 ind)
(not (org-at-item-p)))
(throw 'exit t)))))
;; Walk forward and replace these numbers
(catch 'exit
(while t
(catch 'next
(beginning-of-line 2)
(if (eobp) (throw 'exit nil))
(if (looking-at "[ \t]*$") (throw 'next nil))
(skip-chars-forward " \t") (setq ind1 (current-column))
(if (> ind1 ind) (throw 'next t))
(if (< ind1 ind) (throw 'exit t))
(if (not (org-at-item-p)) (throw 'exit nil))
(if (not (match-beginning 3))
(error "unordered bullet in ordered list. Press \\[undo] to recover"))
(delete-region (match-beginning 3) (1- (match-end 3)))
(goto-char (match-beginning 3))
(insert (format "%d" (setq n (1+ n)))))))
(goto-line line)
(move-to-column col)))
(defvar org-last-indent-begin-marker (make-marker))
(defvar org-last-indent-end-marker (make-marker))
(defun org-outdent-item (arg)
"Outdent a local list item."
(interactive "p")
(org-indent-item (- arg)))
(defun org-indent-item (arg)
"Indent a local list item."
(interactive "p")
(unless (org-at-item-p)
(error "Not on an item"))
(let (beg end ind ind1)
(if (memq last-command '(org-shiftmetaright org-shiftmetaleft))
(setq beg org-last-indent-begin-marker
end org-last-indent-end-marker)
(org-beginning-of-item)
(setq beg (move-marker org-last-indent-begin-marker (point)))
(org-end-of-item)
(setq end (move-marker org-last-indent-end-marker (point))))
(goto-char beg)
(skip-chars-forward " \t") (setq ind (current-column))
(if (< (+ arg ind) 0) (error "Cannot outdent beyond margin"))
(while (< (point) end)
(beginning-of-line 1)
(skip-chars-forward " \t") (setq ind1 (current-column))
(delete-region (point-at-bol) (point))
(indent-to-column (+ ind1 arg))
(beginning-of-line 2))
(goto-char beg)))
;;; Archiving
(defun org-archive-subtree ()
"Move the current subtree to the archive.
The archive can be a certain top-level heading in the current file, or in
......@@ -8985,6 +9261,7 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(in-local-list nil)
(local-list-num nil)
(local-list-indent nil)
(llt org-plain-list-ordered-item-terminator)
(email user-mail-address)
(language org-export-default-language)
(text nil)
......@@ -9039,7 +9316,7 @@ headlines. The default is 3. Lower levels will become bulleted lists."
"
language (org-html-expand title) (or charset "iso-8859-1")
date time author style))
(if title (insert (concat "<H1 align=\"center\">"
(if title (insert (concat "<H1 class=\"title\">"
(org-html-expand title) "</H1>\n")))
(if author (insert (concat (nth 1 lang-words) ": " author "\n")))
(if email (insert (concat "<a href=\"mailto:" email "\">&lt;"
......@@ -9089,7 +9366,7 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(insert
(format
(if todo
"<li><a href=\"#sec-%d\"><span style='color:red'>%s</span></a>\n"
"<li><a href=\"#sec-%d\"><span class=\"todo\">%s</span></a>\n"
"<li><a href=\"#sec-%d\">%s</a>\n")
head-count txt))
(setq org-last-level level))
......@@ -9122,7 +9399,7 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(insert "<pre>\n"))
(insert (org-html-protect (match-string 1 line)) "\n")
(when (and lines
(not (string-match "^[ \t]+\\(:.*\\)"
(not (string-match "^[ \t]*\\(:.*\\)"
(car lines))))
(setq infixed nil)
(insert "</pre>\n"))
......@@ -9180,9 +9457,9 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(match-beginning 2))
(if (equal (match-string 2 line) org-done-string)
(setq line (replace-match
"<span style='color:green'>\\2</span>"
"<span class=\"done\">\\2</span>"
nil nil line 2))
(setq line (replace-match "<span style='color:red'>\\2</span>"
(setq line (replace-match "<span class=\"todo\">\\2</span>"
nil nil line 2))))
;; DEADLINES
......@@ -9192,9 +9469,8 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(string-match "<a href"
(substring line 0 (match-beginning 0))))
nil ; Don't do the replacement - it is inside a link
(setq line (replace-match "<span style='color:red'>\\&</span>"
(setq line (replace-match "<span class=\"deadline\">\\&</span>"
nil nil line 1)))))
(cond
((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
;; This is a headline
......@@ -9233,13 +9509,21 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(insert (org-format-table-html table-buffer table-orig-buffer))))
(t
;; Normal lines
(when (and (> org-export-local-list-max-depth 0)
(when (and (> org-export-plain-list-max-depth 0)
(string-match
"^\\( *\\)\\(\\([-+*]\\)\\|\\([0-9]+\\.\\)\\)? *\\([^ \t\n\r]\\)"
(cond
((eq llt t) "^\\([ \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+[.)]\\)\\)?\\( +[^ \t\n\r]\\|[ \t]*$\\)")
((= llt ?.) "^\\([ \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+\\.\\)\\)?\\( +[^ \t\n\r]\\|[ \t]*$\\)")
((= llt ?\)) "^\\( \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+)\\)\\)?\\( +[^ \t\n\r]\\|[ \t]*$\\)")
(t (error "Invalid value of `org-plain-list-ordered-item-terminator'")))
line))
(setq ind (- (match-end 1) (match-beginning 1))
(setq ind (org-get-string-indentation line)
start-is-num (match-beginning 4)
starter (if (match-beginning 2) (match-string 2 line)))
starter (if (match-beginning 2) (match-string 2 line))
line (substring line (match-beginning 5)))
(unless (string-match "[^ \t]" line)
;; empty line. Pretend indentation is large.
(setq ind (1+ (or (car local-list-indent) 1))))
(while (and in-local-list
(or (and (= ind (car local-list-indent))
(not starter))
......@@ -9247,13 +9531,12 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(insert (if (car local-list-num) "</ol>\n" "</ul>"))
(pop local-list-num) (pop local-list-indent)
(setq in-local-list local-list-indent))
(cond
((and starter
(or (not in-local-list)
(> ind (car local-list-indent)))
(< (length local-list-indent)
org-export-local-list-max-depth))
org-export-plain-list-max-depth))
;; Start new (level of ) list
(insert (if start-is-num "<ol>\n<li>\n" "<ul>\n<li>\n"))
(push start-is-num local-list-num)
......@@ -9261,8 +9544,7 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(setq in-local-list t))
(starter
;; continue current list
(insert "<li>\n")))
(setq line (substring line (match-beginning 5))))
(insert "<li>\n"))))
;; Empty lines start a new paragraph. If hand-formatted lists
;; are not fully interpreted, lines starting with "-", "+", "*"
;; also start a new paragraph.
......@@ -9327,7 +9609,7 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(mapconcat (lambda (x)
(if head
(concat "<th>" x "</th>")
(concat "<td valign=\"top\">" x "</td>")))
(concat "<td>" x "</td>")))
fields "")
"</tr>\n"))))
(setq html (concat html "</table>\n"))
......@@ -9366,10 +9648,8 @@ But it has the disadvantage, that no cell- or row-spanning is allowed."
(lambda (x)
(if (equal x "") (setq x empty))
(if head
(concat "<th valign=\"top\">" x
"</th>\n")
(concat "<td valign=\"top\">" x
"</td>\n")))
(concat "<th>" x "</th>\n")
(concat "<td>" x "</td>\n")))
field-buffer "\n")
"</tr>\n"))
(setq head nil)
......@@ -10016,6 +10296,7 @@ See the individual commands for more information."
(cond
((org-at-table-p) (org-table-delete-column))
((org-on-heading-p) (org-promote-subtree))
((org-at-item-p) (call-interactively 'org-outdent-item))
(t (org-shiftcursor-error))))
(defun org-shiftmetaright ()
......@@ -10026,30 +10307,36 @@ See the individual commands for more information."
(cond
((org-at-table-p) (org-table-insert-column))
((org-on-heading-p) (org-demote-subtree))
((org-at-item-p) (call-interactively 'org-indent-item))
(t (org-shiftcursor-error))))
(defun org-shiftmetaup (&optional arg)
"Move subtree up or kill table row.
Calls `org-move-subtree-up' or `org-table-kill-row', depending on context.
See the individual commands for more information."
Calls `org-move-subtree-up' or `org-table-kill-row' or
`org-move-item-up' depending on context. See the individual commands
for more information."
(interactive "P")
(cond
((org-at-table-p) (org-table-kill-row))
((org-on-heading-p) (org-move-subtree-up arg))
((org-at-item-p) (org-move-item-up arg))
(t (org-shiftcursor-error))))
(defun org-shiftmetadown (&optional arg)
"Move subtree down or insert table row.
Calls `org-move-subtree-down' or `org-table-insert-row', depending on context.
See the individual commands for more information."
Calls `org-move-subtree-down' or `org-table-insert-row' or
`org-move-item-down', depending on context. See the individual
commands for more information."
(interactive "P")
(cond
((org-at-table-p) (org-table-insert-row arg))
((org-on-heading-p) (org-move-subtree-down arg))
((org-at-item-p) (org-move-item-down arg))
(t (org-shiftcursor-error))))
(defun org-metaleft (&optional arg)
"Promote heading or move table column to left.
Calls `org-do-promote' or `org-table-move-column', depending on context.
With no specific context, calls the Emacs default `backward-word'.
See the individual commands for more information."
(interactive "P")
(cond
......@@ -10060,6 +10347,7 @@ See the individual commands for more information."
(defun org-metaright (&optional arg)
"Demote subtree or move table column to right.
Calls `org-do-demote' or `org-table-move-column', depending on context.
With no specific context, calls the Emacs default `forward-word'.
See the individual commands for more information."
(interactive "P")
(cond
......@@ -10069,22 +10357,26 @@ See the individual commands for more information."
(defun org-metaup (&optional arg)
"Move subtree up or move table row up.
Calls `org-move-subtree-up' or `org-table-move-row', depending on context.
See the individual commands for more information."
Calls `org-move-subtree-up' or `org-table-move-row' or
`org-move-item-up', depending on context. See the individual commands
for more information."
(interactive "P")
(cond
((org-at-table-p) (org-table-move-row 'up))
((org-on-heading-p) (org-move-subtree-up arg))
((org-at-item-p) (org-move-item-up arg))
(t (org-shiftcursor-error))))
(defun org-metadown (&optional arg)
"Move subtree down or move table row down.
Calls `org-move-subtree-down' or `org-table-move-row', depending on context.
See the individual commands for more information."
Calls `org-move-subtree-down' or `org-table-move-row' or
`org-move-item-down', depending on context. See the individual
commands for more information."
(interactive "P")
(cond
((org-at-table-p) (org-table-move-row nil))
((org-on-heading-p) (org-move-subtree-down arg))
((org-at-item-p) (org-move-item-down arg))
(t (org-shiftcursor-error))))
(defun org-shiftup (&optional arg)
......@@ -10153,6 +10445,8 @@ If the cursor is on a #+TBLFM line, re-apply the formulae to the table."
(org-table-recalculate t)
(org-table-maybe-recalculate-line))
(org-table-align))
((org-at-item-p)
(org-renumber-ordered-list (prefix-numeric-value arg)))
((save-excursion (beginning-of-line 1) (looking-at "#\\+\\([A-Z]+\\)"))
(cond
((equal (match-string 1) "TBLFM")
......@@ -10165,11 +10459,13 @@ If the cursor is on a #+TBLFM line, re-apply the formulae to the table."
(org-mode-restart))))
((org-region-active-p)
(org-table-convert-region (region-beginning) (region-end) arg))
((and (region-beginning) (region-end))
((condition-case nil
(and (region-beginning) (region-end))
(error nil))
(if (y-or-n-p "Convert inactive region to table? ")
(org-table-convert-region (region-beginning) (region-end) arg)
(error "Abort")))
(t (error "No table at point, and no region to make one")))))
(t (error "C-c C-c can do nothing useful at this location.")))))
(defun org-mode-restart ()
"Restart Org-mode, to scan again for special lines.
......@@ -10436,7 +10732,7 @@ With optional NODE, go directly to that node."
(set (make-local-variable 'paragraph-separate) "\f\\|\\*\\|[ ]*$\\|[ \t]*[:|]")
;; The paragraph starter includes hand-formatted lists.
(set (make-local-variable 'paragraph-start)
"\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*]\\|[0-9]+\\.[ \t]+\\)\\|[ \t]*[:|]")
"\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*]\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]")
;; Inhibit auto-fill for headers, tables and fixed-width lines.
;; But only if the user has not turned off tables or fixed-width regions
(set (make-local-variable 'auto-fill-inhibit-regexp)
......@@ -10472,7 +10768,7 @@ With optional NODE, go directly to that node."
"Return a fill prefix for org-mode files.
In particular, this makes sure hanging paragraphs for hand-formatted lists
work correctly."
(if (looking-at " *\\([-*+] \\|[0-9]+\\. \\)?")
(if (looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?")
(make-string (- (match-end 0) (match-beginning 0)) ?\ )))
;; Functions needed for Emacs/XEmacs region compatibility
......@@ -10707,3 +11003,4 @@ Show the heading too, if it is currently invisible."
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
;;; org.el ends here
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment