Release 4.77

This commit is contained in:
Carsten Dominik 2008-01-31 11:34:46 +01:00
parent 388f9e690a
commit a096d004d7
7 changed files with 502 additions and 298 deletions

441
org
View File

@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
* Org Mode: (org). Outline-based notes management and organizer
END-INFO-DIR-ENTRY
This manual is for Org-mode (version 4.76).
This manual is for Org-mode (version 4.77).
Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
Org Mode Manual
***************
This manual is for Org-mode (version 4.76).
This manual is for Org-mode (version 4.77).
Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
@ -91,6 +91,7 @@ Tables
* Built-in table editor:: Simple tables
* Narrow columns:: Stop wasting space in tables
* Column groups:: Grouping to trigger vertical lines
* orgtbl-mode:: The table editor as minor mode
* The spreadsheet:: The table editor has spreadsheet capabilities.
@ -982,6 +983,7 @@ Emacs `calc' package.
* Built-in table editor:: Simple tables
* Narrow columns:: Stop wasting space in tables
* Column groups:: Grouping to trigger vertical lines
* orgtbl-mode:: The table editor as minor mode
* The spreadsheet:: The table editor has spreadsheet capabilities.
@ -1180,7 +1182,7 @@ Then the only table command that still works is `C-c C-c' to do a
manual re-align.

File: org, Node: Narrow columns, Next: orgtbl-mode, Prev: Built-in table editor, Up: Tables
File: org, Node: Narrow columns, Next: Column groups, Prev: Built-in table editor, Up: Tables
3.2 Narrow columns
==================
@ -1223,9 +1225,42 @@ a per-file basis with:
(1) This feature does not work on XEmacs.

File: org, Node: orgtbl-mode, Next: The spreadsheet, Prev: Narrow columns, Up: Tables
File: org, Node: Column groups, Next: orgtbl-mode, Prev: Narrow columns, Up: Tables
3.3 The Orgtbl minor mode
3.3 Column groups
=================
When Org-mode exports tables, it does so by default without vertical
lines because that is visually more satisfying in general. Occasionally
however, vertical lines can be useful to structure a table into groups
of columns, much like horizontal lines can do for groups of rows. In
order to specify column groups, you can use a special row where the
first field contains only `/'. The further fields can either contain
`<' to indicate that this column should start a group, `>' to indicate
the end of a column, or `<>' to make a column a group of its own.
Boundaries between colum groups will upon export be marked with
vertical lines. Here is an example:
| | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
|---+----+-----+-----+-----+---------+------------|
| / | <> | < | | > | < | > |
| # | 1 | 1 | 1 | 1 | 1 | 1 |
| # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 |
| # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 |
|---+----+-----+-----+-----+---------+------------|
#+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2))
It is also sufficient to just insert the colum group starters after
every vertical line you'd like to have:
| N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
|----+-----+-----+-----+---------+------------|
| / | < | | | < | |

File: org, Node: orgtbl-mode, Next: The spreadsheet, Prev: Column groups, Up: Tables
3.4 The Orgtbl minor mode
=========================
If you like the intuitive way the Org-mode table editor works, you
@ -1245,7 +1280,7 @@ Orgtbl-mode, including spreadsheet capabilities. For details, see

File: org, Node: The spreadsheet, Prev: orgtbl-mode, Up: Tables
3.4 The spreadsheet
3.5 The spreadsheet
===================
The table editor makes use of the Emacs `calc' package to implement
@ -1270,7 +1305,7 @@ to each relevant field.

File: org, Node: References, Next: Formula syntax for Calc, Prev: The spreadsheet, Up: The spreadsheet
3.4.1 References
3.5.1 References
----------------
To compute fields in the table from other fields, formulas must
@ -1370,7 +1405,7 @@ current buffer.

File: org, Node: Formula syntax for Calc, Next: Formula syntax for Lisp, Prev: References, Up: The spreadsheet
3.4.2 Formula syntax for Calc
3.5.2 Formula syntax for Calc
-----------------------------
A formula can be any algebraic expression understood by the Emacs
@ -1419,7 +1454,7 @@ the final result. A few examples:

File: org, Node: Formula syntax for Lisp, Next: Field formulas, Prev: Formula syntax for Calc, Up: The spreadsheet
3.4.3 Emacs Lisp forms as formulas
3.5.3 Emacs Lisp forms as formulas
----------------------------------
It is also possible to write a formula in Emacs Lisp; this can be useful
@ -1445,7 +1480,7 @@ in lisp.

File: org, Node: Field formulas, Next: Column formulas, Prev: Formula syntax for Lisp, Up: The spreadsheet
3.4.4 Field formulas
3.5.4 Field formulas
--------------------
To assign a formula to a particular field, type it directly into the
@ -1474,7 +1509,7 @@ following command

File: org, Node: Column formulas, Next: Editing and debugging formulas, Prev: Field formulas, Up: The spreadsheet
3.4.5 Column formulas
3.5.5 Column formulas
---------------------
Often in a table, the same formula should be used for all fields in a
@ -1508,7 +1543,7 @@ following command:

File: org, Node: Editing and debugging formulas, Next: Updating the table, Prev: Column formulas, Up: The spreadsheet
3.4.6 Editing and Debugging formulas
3.5.6 Editing and Debugging formulas
------------------------------------
You can edit individual formulas in the minibuffer or directly in the
@ -1612,7 +1647,7 @@ information will be displayed.

File: org, Node: Updating the table, Next: Advanced features, Prev: Editing and debugging formulas, Up: The spreadsheet
3.4.7 Updating the Table
3.5.7 Updating the Table
------------------------
Recalculation of a table is normally not automatic, but needs to be
@ -1641,7 +1676,7 @@ the following commands:

File: org, Node: Advanced features, Prev: Updating the table, Up: The spreadsheet
3.4.8 Advanced features
3.5.8 Advanced features
-----------------------
If you want the recalculation of fields to happen automatically, or if
@ -6669,6 +6704,7 @@ Index
* global TODO list: Global TODO list. (line 6)
* global visibility states: Visibility cycling. (line 22)
* GNUS links: External links. (line 6)
* grouping columns in tables: Column groups. (line 6)
* hand-formatted lists: Enhancing text. (line 11)
* headline levels: Export options. (line 25)
* headline levels, for exporting <1>: Export commands. (line 34)
@ -7289,193 +7325,194 @@ Key Index

Tag Table:
Node: Top970
Node: Introduction11676
Node: Summary12091
Node: Installation15100
Node: Activation16478
Node: Feedback17727
Node: Document structure19803
Node: Outlines20577
Node: Headlines21237
Ref: Headlines-Footnote-122245
Node: Visibility cycling22344
Ref: Visibility cycling-Footnote-124554
Ref: Visibility cycling-Footnote-224612
Ref: Visibility cycling-Footnote-324662
Node: Motion24932
Node: Structure editing25886
Node: Archiving28712
Node: ARCHIVE tag29270
Node: Moving subtrees31063
Node: Sparse trees32374
Ref: Sparse trees-Footnote-134506
Ref: Sparse trees-Footnote-234688
Node: Plain lists34803
Ref: Plain lists-Footnote-138572
Ref: Plain lists-Footnote-238930
Node: Tables39114
Node: Built-in table editor39628
Node: Narrow columns46867
Ref: Narrow columns-Footnote-148800
Node: orgtbl-mode48846
Node: The spreadsheet49650
Node: References50737
Ref: References-Footnote-154866
Node: Formula syntax for Calc55155
Node: Formula syntax for Lisp57612
Node: Field formulas58881
Node: Column formulas60189
Node: Editing and debugging formulas61788
Node: Updating the table65941
Node: Advanced features66976
Node: Hyperlinks71501
Node: Link format72274
Node: Internal links73567
Ref: Internal links-Footnote-175492
Node: Radio targets75624
Node: External links76315
Node: Handling links78719
Ref: Handling links-Footnote-184006
Ref: Handling links-Footnote-284243
Node: Link abbreviations84317
Node: Search options85996
Ref: Search options-Footnote-187776
Node: Custom searches87857
Node: Remember88905
Node: Setting up remember89892
Node: Remember templates90474
Ref: Remember templates-Footnote-193766
Node: Storing notes93864
Node: TODO items95751
Node: TODO basics96734
Node: TODO extensions98431
Node: Workflow states99250
Ref: Workflow states-Footnote-1100425
Node: TODO types100518
Ref: TODO types-Footnote-1102101
Node: Multiple sets in one file102183
Node: Per file keywords103794
Ref: Per file keywords-Footnote-1105083
Node: Priorities105284
Node: Breaking down tasks106894
Ref: Breaking down tasks-Footnote-1107414
Node: Checkboxes107510
Node: Timestamps110265
Node: Time stamps110706
Ref: Time stamps-Footnote-1113011
Node: Creating timestamps113127
Node: The date/time prompt115201
Ref: The date/time prompt-Footnote-1117189
Node: Custom time format117295
Node: Deadlines and scheduling118843
Ref: Deadlines and scheduling-Footnote-1120193
Node: Inserting deadline/schedule120348
Node: Repeated tasks121286
Node: Progress logging122925
Node: Closing items123580
Ref: Closing items-Footnote-1124514
Ref: Closing items-Footnote-2124583
Node: Tracking TODO state changes124656
Node: Clocking work time125512
Ref: Clocking work time-Footnote-1129158
Ref: Clocking work time-Footnote-2129236
Node: Tags129362
Node: Tag inheritance130124
Node: Setting tags131061
Ref: Setting tags-Footnote-1135584
Ref: Setting tags-Footnote-2135696
Node: Tag searches135779
Node: Agenda views138490
Node: Agenda files140435
Ref: Agenda files-Footnote-1141401
Ref: Agenda files-Footnote-2141550
Node: Agenda dispatcher141743
Node: Built-in agenda views143434
Node: Weekly/Daily agenda144012
Node: Global TODO list146953
Node: Matching headline tags149225
Node: Timeline150296
Node: Stuck projects150962
Node: Presentation and sorting152813
Node: Categories153604
Node: Time-of-day specifications154268
Node: Sorting of agenda items156239
Node: Agenda commands157521
Node: Custom agenda views164675
Node: Storing searches165394
Node: Block agenda167306
Node: Setting Options168536
Node: Exporting Agenda Views171275
Ref: Exporting Agenda Views-Footnote-1175559
Ref: Exporting Agenda Views-Footnote-2175616
Node: Extracting Agenda Information for other programs175802
Node: Embedded LaTeX179928
Ref: Embedded LaTeX-Footnote-1181020
Node: Math symbols181210
Node: Subscripts and Superscripts181975
Node: LaTeX fragments182819
Ref: LaTeX fragments-Footnote-1185053
Node: Processing LaTeX fragments185315
Node: CDLaTeX mode186261
Ref: CDLaTeX mode-Footnote-1188745
Node: Exporting188893
Node: ASCII export190207
Node: HTML export191497
Node: Export commands192116
Node: Quoting HTML tags193360
Node: Links193990
Node: Images194687
Ref: Images-Footnote-1195558
Node: CSS support195619
Ref: CSS support-Footnote-1196938
Node: XOXO export197051
Node: iCalendar export197490
Node: Text interpretation198709
Node: Comment lines199300
Node: Initial text199695
Node: Footnotes201364
Node: Enhancing text202179
Ref: Enhancing text-Footnote-1204038
Node: Export options204128
Node: Publishing206021
Ref: Publishing-Footnote-1206817
Node: Configuration207013
Node: Project alist207731
Node: Sources and destinations208797
Node: Selecting files209527
Node: Publishing action210275
Node: Publishing options211508
Node: Publishing links213660
Node: Project page index215173
Node: Sample configuration215951
Node: Simple example216443
Node: Complex example217116
Node: Triggering publication219192
Node: Miscellaneous219877
Node: Completion220511
Node: Customization221982
Node: In-buffer settings222565
Node: The very busy C-c C-c key227441
Node: Clean view229085
Node: TTY keys231662
Node: Interaction233272
Node: Cooperation233669
Node: Conflicts236545
Node: Bugs238548
Node: Extensions and Hacking240044
Node: Extensions240640
Node: Tables in arbitrary syntax242587
Node: Radio tables243664
Node: A LaTeX example246167
Ref: A LaTeX example-Footnote-1249813
Ref: A LaTeX example-Footnote-2249961
Node: Translator functions250396
Ref: Translator functions-Footnote-1253505
Node: Dynamic blocks253593
Node: Special agenda views255565
Ref: Special agenda views-Footnote-1257844
Node: History and Acknowledgments258104
Node: Index264198
Node: Key Index296279
Node: Introduction11743
Node: Summary12158
Node: Installation15167
Node: Activation16545
Node: Feedback17794
Node: Document structure19870
Node: Outlines20644
Node: Headlines21304
Ref: Headlines-Footnote-122312
Node: Visibility cycling22411
Ref: Visibility cycling-Footnote-124621
Ref: Visibility cycling-Footnote-224679
Ref: Visibility cycling-Footnote-324729
Node: Motion24999
Node: Structure editing25953
Node: Archiving28779
Node: ARCHIVE tag29337
Node: Moving subtrees31130
Node: Sparse trees32441
Ref: Sparse trees-Footnote-134573
Ref: Sparse trees-Footnote-234755
Node: Plain lists34870
Ref: Plain lists-Footnote-138639
Ref: Plain lists-Footnote-238997
Node: Tables39181
Node: Built-in table editor39762
Node: Narrow columns47001
Ref: Narrow columns-Footnote-148936
Node: Column groups48982
Node: orgtbl-mode50515
Node: The spreadsheet51318
Node: References52405
Ref: References-Footnote-156534
Node: Formula syntax for Calc56823
Node: Formula syntax for Lisp59280
Node: Field formulas60549
Node: Column formulas61857
Node: Editing and debugging formulas63456
Node: Updating the table67609
Node: Advanced features68644
Node: Hyperlinks73169
Node: Link format73942
Node: Internal links75235
Ref: Internal links-Footnote-177160
Node: Radio targets77292
Node: External links77983
Node: Handling links80387
Ref: Handling links-Footnote-185674
Ref: Handling links-Footnote-285911
Node: Link abbreviations85985
Node: Search options87664
Ref: Search options-Footnote-189444
Node: Custom searches89525
Node: Remember90573
Node: Setting up remember91560
Node: Remember templates92142
Ref: Remember templates-Footnote-195434
Node: Storing notes95532
Node: TODO items97419
Node: TODO basics98402
Node: TODO extensions100099
Node: Workflow states100918
Ref: Workflow states-Footnote-1102093
Node: TODO types102186
Ref: TODO types-Footnote-1103769
Node: Multiple sets in one file103851
Node: Per file keywords105462
Ref: Per file keywords-Footnote-1106751
Node: Priorities106952
Node: Breaking down tasks108562
Ref: Breaking down tasks-Footnote-1109082
Node: Checkboxes109178
Node: Timestamps111933
Node: Time stamps112374
Ref: Time stamps-Footnote-1114679
Node: Creating timestamps114795
Node: The date/time prompt116869
Ref: The date/time prompt-Footnote-1118857
Node: Custom time format118963
Node: Deadlines and scheduling120511
Ref: Deadlines and scheduling-Footnote-1121861
Node: Inserting deadline/schedule122016
Node: Repeated tasks122954
Node: Progress logging124593
Node: Closing items125248
Ref: Closing items-Footnote-1126182
Ref: Closing items-Footnote-2126251
Node: Tracking TODO state changes126324
Node: Clocking work time127180
Ref: Clocking work time-Footnote-1130826
Ref: Clocking work time-Footnote-2130904
Node: Tags131030
Node: Tag inheritance131792
Node: Setting tags132729
Ref: Setting tags-Footnote-1137252
Ref: Setting tags-Footnote-2137364
Node: Tag searches137447
Node: Agenda views140158
Node: Agenda files142103
Ref: Agenda files-Footnote-1143069
Ref: Agenda files-Footnote-2143218
Node: Agenda dispatcher143411
Node: Built-in agenda views145102
Node: Weekly/Daily agenda145680
Node: Global TODO list148621
Node: Matching headline tags150893
Node: Timeline151964
Node: Stuck projects152630
Node: Presentation and sorting154481
Node: Categories155272
Node: Time-of-day specifications155936
Node: Sorting of agenda items157907
Node: Agenda commands159189
Node: Custom agenda views166343
Node: Storing searches167062
Node: Block agenda168974
Node: Setting Options170204
Node: Exporting Agenda Views172943
Ref: Exporting Agenda Views-Footnote-1177227
Ref: Exporting Agenda Views-Footnote-2177284
Node: Extracting Agenda Information for other programs177470
Node: Embedded LaTeX181596
Ref: Embedded LaTeX-Footnote-1182688
Node: Math symbols182878
Node: Subscripts and Superscripts183643
Node: LaTeX fragments184487
Ref: LaTeX fragments-Footnote-1186721
Node: Processing LaTeX fragments186983
Node: CDLaTeX mode187929
Ref: CDLaTeX mode-Footnote-1190413
Node: Exporting190561
Node: ASCII export191875
Node: HTML export193165
Node: Export commands193784
Node: Quoting HTML tags195028
Node: Links195658
Node: Images196355
Ref: Images-Footnote-1197226
Node: CSS support197287
Ref: CSS support-Footnote-1198606
Node: XOXO export198719
Node: iCalendar export199158
Node: Text interpretation200377
Node: Comment lines200968
Node: Initial text201363
Node: Footnotes203032
Node: Enhancing text203847
Ref: Enhancing text-Footnote-1205706
Node: Export options205796
Node: Publishing207689
Ref: Publishing-Footnote-1208485
Node: Configuration208681
Node: Project alist209399
Node: Sources and destinations210465
Node: Selecting files211195
Node: Publishing action211943
Node: Publishing options213176
Node: Publishing links215328
Node: Project page index216841
Node: Sample configuration217619
Node: Simple example218111
Node: Complex example218784
Node: Triggering publication220860
Node: Miscellaneous221545
Node: Completion222179
Node: Customization223650
Node: In-buffer settings224233
Node: The very busy C-c C-c key229109
Node: Clean view230753
Node: TTY keys233330
Node: Interaction234940
Node: Cooperation235337
Node: Conflicts238213
Node: Bugs240216
Node: Extensions and Hacking241712
Node: Extensions242308
Node: Tables in arbitrary syntax244255
Node: Radio tables245332
Node: A LaTeX example247835
Ref: A LaTeX example-Footnote-1251481
Ref: A LaTeX example-Footnote-2251629
Node: Translator functions252064
Ref: Translator functions-Footnote-1255173
Node: Dynamic blocks255261
Node: Special agenda views257233
Ref: Special agenda views-Footnote-1259512
Node: History and Acknowledgments259772
Node: Index265866
Node: Key Index298020

End Tag Table

286
org.el
View File

@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
;; Version: 4.76
;; Version: 4.77
;;
;; This file is part of GNU Emacs.
;;
@ -324,7 +324,7 @@ contexts. Valid contexts are
(const default))
(boolean)))))
(defcustom org-show-following-heading '((default . t))
(defcustom org-show-following-heading '((default . nil))
"Non-nil means, show following heading when revealing a location.
Org-mode often shows locations in an org-mode file which might have
been invisible before. When this is set, the heading following the
@ -838,7 +838,7 @@ t: accept as input and present for editing"
:type '(choice
(const :tag "Never, don't even check unser input for them" nil)
(const :tag "Always, both as user input, and when editing" t)
(const :tag "Conver user input, don't offerr during editing" 'from)))
(const :tag "Convert user input, don't offer during editing" 'from)))
(defcustom org-table-copy-increment t
"Non-nil means, increment when copying current field with \\[org-table-copy-down]."
@ -2951,9 +2951,7 @@ specify what is allowed/forbidden in each part:
pre Chars allowed as prematch. Beginning of line will be allowed too.
post Chars allowed as postmatch. End of line will be allowed too.
border The chars *forbidden* as border characters. In addition to the
characters given here, all marker characters are forbidden too.
FIXME: the last statement is no longer true.
border The chars *forbidden* as border characters.
body-regexp A regexp like \".\" to match a body character. Don't use
non-shy groups here, and don't allow newline here.
newline The maximum number of newlines allowed in an emphasis exp.
@ -3438,7 +3436,7 @@ means to push this value onto the list in the variable.")
(org-trim (match-string 2 value)))
links)))
((equal key "PRIORITIES")
(setq prio (org-split-string " +" value)))
(setq prio (org-split-string value " +")))
((equal key "STARTUP")
(let ((opts (org-split-string value splitre))
l var val)
@ -3984,20 +3982,15 @@ that will be added to PLIST. Returns the string that was modified."
org-plain-link-re "\\)")
"Regular expression matching any link.")
(defconst org-ts-lengths
(cons (length (format-time-string (car org-time-stamp-formats)))
(length (format-time-string (cdr org-time-stamp-formats))))
"This holds the lengths of the two different time formats.")
(defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^\r\n>]*?\\)>"
"Regular expression for fast time stamp matching.")
(defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^\r\n>]*?\\)[]>]"
"Regular expression for fast time stamp matching.")
(defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\) \\([^]0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)"
"Regular expression matching time strings for analysis.")
(defconst org-ts-regexp2 (concat "<" org-ts-regexp1 "[^>\n]\\{0,5\\}>")
(defconst org-ts-regexp2 (concat "<" org-ts-regexp1 "[^>\n]\\{0,6\\}>")
"Regular expression matching time stamps, with groups.")
;; FIXME need to exclude ] here as well, also need to think about lengths
(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[^]>\n]\\{0,5\\}[]>]")
(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[^]>\n]\\{0,6\\}[]>]")
"Regular expression matching time stamps (also [..]), with groups.")
(defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp)
"Regular expression matching a time stamp range.")
@ -4476,12 +4469,20 @@ between words."
((= eos eoh)
;; Nothing is hidden behind this heading
(message "EMPTY ENTRY")
(setq org-cycle-subtree-status nil))
(setq org-cycle-subtree-status nil)
(save-excursion
(goto-char eos)
(outline-next-heading)
(if (org-invisible-p) (org-flag-heading nil))))
((>= eol eos)
;; Entire subtree is hidden in one line: open it
(org-show-entry)
(show-children)
(message "CHILDREN")
(save-excursion
(goto-char eos)
(outline-next-heading)
(if (org-invisible-p) (org-flag-heading nil)))
(setq org-cycle-subtree-status 'children)
(run-hook-with-args 'org-cycle-hook 'children))
((and (eq last-command this-command)
@ -6281,7 +6282,6 @@ When NSPACE is non-nil, it indicates the minimum number of spaces that
separate columns. By default, the function first checks if every line
contains at lease one TAB. If yes, it assumes that the material is TAB
separated. If not, it assumes a single space as separator."
;; FIXME: Allow CSV?????
(interactive "rP")
(let* ((beg (min beg0 end0))
(end (max beg0 end0))
@ -8239,7 +8239,7 @@ and TABLE is a vector with line types."
(setq i 0 hdir "+")
(if (eq (aref table 0) 'hline) (setq hn (1- hn)))))
(if (and (not hn) on (not odir))
(error "should never happen");;(aref org-table-dlines on) FIXME
(error "should never happen");;(aref org-table-dlines on)
(if (and hn (> hn 0))
(setq i (org-find-row-type table i 'hline (equal hdir "-") nil hn)))
(if on
@ -8338,7 +8338,7 @@ With prefix arg ALL, do this for all lines in the table."
(goto-char beg)
(and all (message "Re-applying formulas to full table..."))
(while (re-search-forward line-re end t)
(unless (string-match "^ *[_^!$] *$" (org-table-get-field 1))
(unless (string-match "^ *[_^!$/] *$" (org-table-get-field 1))
;; Unprotected line, recalculate
(and all (message "Re-applying formulas to full table...(line %d)"
(setq cnt (1+ cnt))))
@ -8551,9 +8551,15 @@ Works for single references, but also for entire formulas and even the
full TBLFM line."
(let ((start 0))
(while (string-match "\\<\\([a-zA-Z]+\\)\\([0-9]+\\>\\|&\\)\\|\\(;[^\r\n:]+\\)" s start)
(if (match-end 3)
;; format match, just advance
(setq start (match-end 0))
(cond
((match-end 3)
;; format match, just advance
(setq start (match-end 0)))
((and (> (match-beginning 0) 0)
(equal ?. (aref s (max (1- (match-beginning 0)) 0))))
;; 3.e5 or something like this. FIXME: is this ok????
(setq start (match-end 0)))
(t
(setq start (match-beginning 0)
s (replace-match
(if (equal (match-string 2 s) "&")
@ -8561,7 +8567,7 @@ full TBLFM line."
(format "@%d$%d"
(string-to-number (match-string 2 s))
(org-letters-to-number (match-string 1 s))))
t t s))))
t t s)))))
s))
(defun org-table-convert-refs-to-an (s)
@ -9038,7 +9044,7 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line."
ic (1+ ic)
s1 (concat "$" (int-to-string ic))
s2 (org-number-to-letters ic)
str (if org-table-use-standard-references s2 s1))
str (if (eq org-table-use-standard-references t) s2 s1))
(setq ov (org-make-overlay beg (+ beg (length str))))
(push ov org-table-coordinate-overlays)
(org-overlay-display ov str 'org-special-keyword 'evaporate)))
@ -9412,7 +9418,7 @@ overwritten, and the table is not marked as requiring realignment."
(defvar orgtbl-exp-regexp "^\\([-+]?[0-9][0-9.]*\\)[eE]\\([-+]?[0-9]+\\)$"
"Regula expression matching exponentials as produced by calc.")
(defvar org-table-clean-did-remove-column-1 nil)
(defvar org-table-clean-did-remove-column nil)
(defun orgtbl-export (table target)
(let ((func (intern (concat "orgtbl-to-" (symbol-name target))))
@ -9464,7 +9470,7 @@ this table."
(org-table-begin) (org-table-end)))
(lines (nthcdr (or skip 0) (org-split-string txt "[ \t]*\n[ \t]*")))
(lines (org-table-clean-before-export lines))
(i0 (if org-table-clean-did-remove-column-1 2 1))
(i0 (if org-table-clean-did-remove-column 2 1))
(table (mapcar
(lambda (x)
(if (string-match org-table-hline-regexp x)
@ -12001,7 +12007,7 @@ be removed."
The auto-repeater uses this.")
(defun org-add-log-maybe (&optional purpose state findpos)
"FIXME"
"Set up the post command hook to take a note."
(save-excursion
(when (and (listp org-log-done)
(memq purpose org-log-done))
@ -13042,20 +13048,24 @@ The command returns the inserted time stamp."
(message "Time stamps are overlayed with custom format")
(message "Time stamp overlays removed")))
;; FIXME: do something about the repeaters
(defun org-display-custom-time (beg end)
"Overlay modified time stamp format over timestamp between BED and END."
(let* ((t1 (save-match-data
(org-parse-time-string (buffer-substring beg end) t)))
(w1 (- end beg))
(with-hm (and (nth 1 t1) (nth 2 t1)))
(tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats))
(time (org-fix-decoded-time t1))
(str (org-add-props
(let* ((ts (buffer-substring beg end))
t1 w1 with-hm tf time str w2 (off 0))
(save-match-data
(setq t1 (org-parse-time-string ts t))
(if (string-match " \\+[0-9]+[dwmy]\\'" ts)
(setq off (- (match-end 0) (match-beginning 0)))))
(setq end (- end off))
(setq w1 (- end beg)
with-hm (and (nth 1 t1) (nth 2 t1))
tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats)
time (org-fix-decoded-time t1)
str (org-add-props
(format-time-string
(substring tf 1 -1) (apply 'encode-time time))
nil 'mouse-face 'highlight))
(w2 (length str)))
nil 'mouse-face 'highlight)
w2 (length str))
(if (not (= w2 w1))
(add-text-properties (1+ beg) (+ 2 beg)
(list 'org-dwidth t 'org-dwidth-n (- w1 w2))))
@ -13443,14 +13453,13 @@ in the timestamp determines what will be changed."
(not (get-text-property (1- (point)) 'display)))
(setq org-ts-what 'day))
(setq org-ts-what (or what org-ts-what)
with-hm (<= (abs (- (cdr org-ts-lengths)
(- (match-end 0) (match-beginning 0))))
1)
inactive (= (char-after (match-beginning 0)) ?\[)
ts (match-string 0))
(replace-match "")
(if (string-match " \\+[0-9]+[dwmy]" ts)
(setq extra (match-string 0 ts)))
(if (string-match "^.\\{10\\}.*?[0-9]+:[0-9][0-9]" ts)
(setq with-hm t))
(setq time0 (org-parse-time-string ts))
(setq time
(apply 'encode-time
@ -14409,7 +14418,7 @@ L Timeline for current buffer # List stuck projects (!=configure)
((fboundp type)
(org-let lprops '(funcall type match)))
(t (error "Invalid custom agenda command type %s" type))))
(org-run-agenda-series (cddr entry))))
(org-run-agenda-series (nth 1 entry) (cddr entry))))
((equal c ?C) (customize-variable 'org-agenda-custom-commands))
((equal c ?a) (call-interactively 'org-agenda-list))
((equal c ?t) (call-interactively 'org-todo-list))
@ -14425,10 +14434,10 @@ L Timeline for current buffer # List stuck projects (!=configure)
((equal c ?!) (customize-variable 'org-stuck-projects))
(t (error "Invalid key"))))))
(defun org-run-agenda-series (series)
(org-prepare-agenda)
(defun org-run-agenda-series (name series)
(org-prepare-agenda name)
(let* ((org-agenda-multi t)
(redo (list 'org-run-agenda-series (list 'quote series)))
(redo (list 'org-run-agenda-series name (list 'quote series)))
(cmds (car series))
(gprops (nth 1 series))
match ;; The byte compiler incorrectly complains about this. Keep it!
@ -14480,7 +14489,12 @@ before running the agenda command."
(flet ((read-char-exclusive () (string-to-char cmd-key)))
(eval (list 'let (nreverse pars) '(org-agenda nil)))))
(set-buffer "*Org Agenda*")
(princ (buffer-string))))
(princ (org-encode-for-stdout (buffer-string)))))
(defun org-encode-for-stdout (string)
(if (fboundp 'encode-coding-string)
(encode-coding-string string buffer-file-coding-system)
string))
(defvar org-agenda-info nil)
@ -14537,10 +14551,11 @@ priority-n The computed numerical priority"
(setq org-agenda-info
(org-fix-agenda-info (text-properties-at 0 line)))
(princ
(mapconcat 'org-agenda-export-csv-mapper
'(org-category txt type todo tags date time-of-day extra
priority-letter priority)
","))
(org-encode-for-stdout
(mapconcat 'org-agenda-export-csv-mapper
'(org-category txt type todo tags date time-of-day extra
priority-letter priority)
",")))
(princ "\n"))))))
(defun org-fix-agenda-info (props)
@ -14551,8 +14566,15 @@ priority-n The computed numerical priority"
(when (setq tmp (plist-get props 'date))
(if (integerp tmp) (setq tmp (calendar-gregorian-from-absolute tmp)))
(let ((calendar-date-display-form '(year "-" month "-" day)))
'((format "%4d, %9s %2s, %4s" dayname monthname day year))
(setq tmp (calendar-date-string tmp)))
(setq props (plist-put props 'date tmp)))
(when (setq tmp (plist-get props 'day))
(if (integerp tmp) (setq tmp (calendar-gregorian-from-absolute tmp)))
(let ((calendar-date-display-form '(year "-" month "-" day)))
(setq tmp (calendar-date-string tmp)))
(setq props (plist-put props 'day tmp)))
(when (setq tmp (plist-get props 'txt))
(when (string-match "\\[#\\([A-Z0-9]\\)\\] ?" tmp)
(plist-put props 'priority-letter (match-string 1 tmp))
@ -14589,6 +14611,7 @@ priority-n The computed numerical priority"
(defmacro org-batch-store-agenda-views (&rest parameters)
"Run all custom agenda commands that have a file argument."
(let ((cmds org-agenda-custom-commands)
(dir (default-directory))
pars cmd thiscmdkey files opts)
(while parameters
(push (list (pop parameters) (if parameters (pop parameters))) pars))
@ -14607,7 +14630,8 @@ priority-n The computed numerical priority"
(set-buffer "*Org Agenda*")
(while files
(eval (list 'let (append org-agenda-exporter-settings opts pars)
(list 'org-write-agenda (pop files) t)))))
(list 'org-write-agenda
(expand-file-name (pop files) dir) t)))))
(kill-buffer org-agenda-buffer-name)))))
(defun org-write-agenda (file &optional nosettings)
@ -14807,7 +14831,8 @@ Optional argument FILE means, use this file instead of the current."
(defvar org-agenda-multi nil) ; dynammically scoped
(defvar org-agenda-buffer-name "*Org Agenda*")
(defvar org-pre-agenda-window-conf nil)
(defun org-prepare-agenda ()
(defvar org-agenda-name nil)
(defun org-prepare-agenda (&optional name)
(setq org-todo-keywords-for-agenda nil)
(setq org-done-keywords-for-agenda nil)
(if org-agenda-multi
@ -14840,7 +14865,9 @@ Optional argument FILE means, use this file instead of the current."
(switch-to-buffer-other-window abuf))))
(setq buffer-read-only nil)
(erase-buffer)
(org-agenda-mode))
(org-agenda-mode)
(and name (not org-agenda-name)
(org-set-local 'org-agenda-name name)))
(setq buffer-read-only nil))
(defun org-finalize-agenda ()
@ -15037,7 +15064,8 @@ dates."
(setq day-numbers (delq nil (mapcar (lambda(x)
(if (>= x today) x nil))
day-numbers))))
(org-prepare-agenda)
(org-prepare-agenda (concat "Timeline "
(file-name-nondirectory buffer-file-name)))
(if doclosed (push :closed args))
(push :timestamp args)
(push :sexp args)
@ -15182,7 +15210,7 @@ NDAYS defaults to `org-agenda-ndays'."
(push (1+ (car day-numbers)) day-numbers)
(setq ndays (1- ndays)))
(setq day-numbers (nreverse day-numbers))
(org-prepare-agenda)
(org-prepare-agenda "Day/Week")
(org-set-local 'org-starting-day (car day-numbers))
(org-set-local 'org-include-all-loc include-all)
(when (and (or include-all org-agenda-include-all-todo)
@ -15282,7 +15310,7 @@ for a keyword. A numeric prefix directly selects the Nth keyword in
(require 'calendar)
(org-compile-prefix-format 'todo)
(org-set-sorting-strategy 'todo)
(org-prepare-agenda)
(org-prepare-agenda "TODO")
(let* ((today (time-to-days (current-time)))
(date (calendar-gregorian-from-absolute today))
(kwds org-todo-keywords-for-agenda)
@ -15353,7 +15381,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries."
buffer)
(setq matcher (org-make-tags-matcher match)
match (car matcher) matcher (cdr matcher))
(org-prepare-agenda)
(org-prepare-agenda (concat "TAGS " match))
(setq org-agenda-redo-command
(list 'org-tags-view (list 'quote todo-only)
(list 'if 'current-prefix-arg nil match)))
@ -18411,7 +18439,8 @@ underlined headlines. The default is 3."
(plist-get opt-plist :skip-before-1st-heading)
:add-text (plist-get opt-plist :text))
"[\r\n]")))
thetoc have-headings first-heading-pos)
thetoc have-headings first-heading-pos
table-open table-buffer)
(let (buffer-read-only)
(org-unmodified
@ -18520,6 +18549,24 @@ underlined headlines. The default is 3."
(setq level (org-tr-level (- (match-end 1) (match-beginning 1)))
txt (match-string 2 line))
(org-ascii-level-start level txt umax lines))
((and org-export-with-tables
(string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
(if (not table-open)
;; New table starts
(setq table-open t table-buffer nil))
;; Accumulate lines
(setq table-buffer (cons line table-buffer))
(when (or (not lines)
(not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
(car lines))))
(setq table-open nil
table-buffer (nreverse table-buffer))
(insert (mapconcat
(lambda (x)
(org-fix-indentation x org-ascii-current-indentation))
(org-format-table-ascii table-buffer)
"\n") "\n")))
(t
(insert (org-fix-indentation line org-ascii-current-indentation) "\n"))))
(normal-mode)
@ -19295,6 +19342,17 @@ lang=\"%s\" xml:lang=\"%s\">
(concat (substring line 0 (match-beginning 2))
"<span class=\"todo\">" (match-string 2 line)
"</span>" (substring line (match-end 2))))))
;; Does this contain a reference to a footnote?
(while (string-match "\\([^* \t].*?\\)\\[\\([0-9]+\\)\\]" line)
(let ((n (match-string 2 line)))
(setq line
(replace-match
(format
"%s<sup><a class=\"footref\" name=\"fnr.%s\" href=\"#fn.%s\">%s</a></sup>"
(match-string 1 line) n n n)
t t line))))
(cond
((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
;; This is a headline
@ -19395,19 +19453,13 @@ lang=\"%s\" xml:lang=\"%s\">
;; are not fully interpreted, lines starting with "-", "+", "*"
;; also start a new paragraph.
(if (string-match "^ [-+*]-\\|^[ \t]*$" line) (org-open-par))
;; Is this the start of a footnote?
(when (string-match "^[ \t]*\\[\\([0-9]+\\)\\]" line)
(org-close-par-maybe)
(let ((n (match-string 1 line)))
(setq line (replace-match
(format "<p class=\"footnote\"><sup><a class=\"footnum\"name=\"fn.%s\" href=\"#fnr.%s\">%s</a></sup>" n n n) t t line))))
;; Does this contain a reference to a footnote?
(while (string-match "\\[\\([0-9]+\\)\\]" line)
(let ((n (match-string 1 line)))
(setq line (replace-match
(format
"<sup><a class=\"footref\" name=\"fnr.%s\" href=\"#fn.%s\">%s</a></sup>"
n n n) t t line))))
(format "<p class=\"footnote\"><sup><a class=\"footnum\" name=\"fn.%s\" href=\"#fnr.%s\">%s</a></sup>" n n n) t t line))))
;; Check if the line break needs to be conserved
(cond
@ -19484,6 +19536,50 @@ lang=\"%s\" xml:lang=\"%s\">
(kill-buffer (current-buffer)))
(current-buffer)))))
(defvar org-table-colgroup-info nil) ;; FIXME: mode to a better place
(defun org-format-table-ascii (lines)
"Format a table for ascii export."
(if (stringp lines)
(setq lines (org-split-string lines "\n")))
(if (not (string-match "^[ \t]*|" (car lines)))
;; Table made by table.el - test for spanning
lines
;; A normal org table
;; Get rid of hlines at beginning and end
(if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
(setq lines (nreverse lines))
(if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
(setq lines (nreverse lines))
(when org-export-table-remove-special-lines
;; Check if the table has a marking column. If yes remove the
;; column and the special lines
(setq lines (org-table-clean-before-export lines)))
;; Get rid of the vertical lines except for grouping
(let ((vl (org-colgroup-info-to-vline-list org-table-colgroup-info))
rtn line vl1 start)
(while (setq line (pop lines))
(if (string-match org-table-hline-regexp line)
(and (string-match "|\\(.*\\)|" line)
(setq line (replace-match " \\1" t nil line)))
(setq start 0 vl1 vl)
(while (string-match "|" line start)
(setq start (match-end 0))
(or (pop vl1) (setq line (replace-match " " t t line)))))
(push line rtn))
(nreverse rtn))))
(defun org-colgroup-info-to-vline-list (info)
(let (vl new last rtn line)
(while info
(setq last new new (pop info))
(if (or (memq last '(:end :startend))
(memq new '(:start :startend)))
(push t vl)
(push nil vl)))
(setq vl (cons nil (nreverse vl)))))
(defun org-format-table-html (lines olines)
"Find out which HTML converter to use and return the HTML code."
(if (stringp lines)
@ -19527,7 +19623,7 @@ lang=\"%s\" xml:lang=\"%s\">
(lambda (x) (string-match "^[ \t]*|-" x))
(cdr lines)))))
(nlines 0) fnum i
tbopen line fields html)
tbopen line fields html gr)
(if splice (setq head nil))
(unless splice (push (if head "<thead>" "<tbody>") html))
(setq tbopen t)
@ -19567,9 +19663,12 @@ lang=\"%s\" xml:lang=\"%s\">
;; Put in COL tags with the alignment (unfortuntely often ignored...)
(push (mapconcat
(lambda (x)
(format "<COL align=\"%s\">"
(setq gr (pop org-table-colgroup-info))
(format "%s<COL align=\"%s\">%s"
(if (memq gr '(:start :startend)) "<colgroup>" "")
(if (> (/ (float x) nlines) org-table-number-fraction)
"right" "left")))
"right" "left")
(if (memq gr '(:end :startend)) "</colgroup>" "")))
fnum "")
html)
(push org-export-html-table-tag html))
@ -19578,22 +19677,50 @@ lang=\"%s\" xml:lang=\"%s\">
(defun org-table-clean-before-export (lines)
"Check if the table has a marking column.
If yes remove the column and the special lines."
(setq org-table-colgroup-info nil)
(if (memq nil
(mapcar
(lambda (x) (or (string-match "^[ \t]*|-" x)
(string-match "^[ \t]*| *\\([#!$*_^ /]\\) *|" x)))
lines))
(progn
(setq org-table-clean-did-remove-column-1 nil)
lines)
(setq org-table-clean-did-remove-column-1 t)
(setq org-table-clean-did-remove-column nil)
(delq nil
(mapcar
(lambda (x)
(cond
((string-match "^[ \t]*| */ *|" x)
(setq org-table-colgroup-info
(mapcar (lambda (x)
(cond ((member x '("<" "&lt;")) :start)
((member x '(">" "&gt;")) :end)
((member x '("<>" "&lt;&gt;")) :startend)
(t nil)))
(org-split-string x "[ \t]*|[ \t]*")))
nil)
(t x)))
lines)))
(setq org-table-clean-did-remove-column t)
(delq nil
(mapcar
(lambda (x) (if (string-match "^[ \t]*| *[!_^/] *|" x)
nil ; ignore this line
(and (or (string-match "^[ \t]*|-+\\+" x)
(string-match "^[ \t]*|[^|]*|" x))
(replace-match "|" t t x))))
(lambda (x)
(cond
((string-match "^[ \t]*| */ *|" x)
(setq org-table-colgroup-info
(mapcar (lambda (x)
(cond ((member x '("<" "&lt;")) :start)
((member x '(">" "&gt;")) :end)
((member x '("<>" "&lt;&gt;")) :startend)
(t nil)))
(cdr (org-split-string x "[ \t]*|[ \t]*"))))
nil)
((string-match "^[ \t]*| *[!_^/] *|" x)
nil) ; ignore this line
((or (string-match "^\\([ \t]*\\)|-+\\+" x)
(string-match "^\\([ \t]*\\)|[^|]*|" x))
;; remove the first column
(replace-match "\\1|" t nil x))
(t (error "This should not happen"))))
lines))))
(defun org-format-table-table-html (lines)
@ -21347,8 +21474,10 @@ In particular, this makes sure hanging paragraphs for hand-formatted lists
work correctly."
(cond ((looking-at "#[ \t]+")
(match-string 0))
((looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?")
(make-string (- (match-end 0) (match-beginning 0)) ?\ ))
((looking-at "[ \t]*\\([-*+] \\|[0-9]+[.)] \\)?")
(save-excursion
(goto-char (match-end 0))
(make-string (current-column) ?\ )))
(t nil)))
;;;; Functions extending outline functionality
@ -21568,7 +21697,7 @@ Show the heading too, if it is currently invisible."
;;;; Experimental code
(defun org-closed-in-range ()
"Sparse treee of items closed in a certain time range.
"Sparse tree of items closed in a certain time range.
Still experimental, may disappear in the furture."
(interactive)
;; Get the time interval from the user.
@ -21596,3 +21725,4 @@ Still experimental, may disappear in the furture."
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
;;; org.el ends here

BIN
org.pdf

Binary file not shown.

View File

@ -3,8 +3,8 @@
@setfilename ../info/org
@settitle Org Mode Manual
@set VERSION 4.76
@set DATE May 2007
@set VERSION 4.77
@set DATE June 2007
@dircategory Emacs
@direntry
@ -122,6 +122,7 @@ Tables
* Built-in table editor:: Simple tables
* Narrow columns:: Stop wasting space in tables
* Column groups:: Grouping to trigger vertical lines
* orgtbl-mode:: The table editor as minor mode
* The spreadsheet:: The table editor has spreadsheet capabilities.
@ -1109,6 +1110,7 @@ Emacs @file{calc} package.
@menu
* Built-in table editor:: Simple tables
* Narrow columns:: Stop wasting space in tables
* Column groups:: Grouping to trigger vertical lines
* orgtbl-mode:: The table editor as minor mode
* The spreadsheet:: The table editor has spreadsheet capabilities.
@end menu
@ -1328,7 +1330,7 @@ it off with
@noindent Then the only table command that still works is
@kbd{C-c C-c} to do a manual re-align.
@node Narrow columns, orgtbl-mode, Built-in table editor, Tables
@node Narrow columns, Column groups, Built-in table editor, Tables
@section Narrow columns
@cindex narrow columns in tables
@ -1374,7 +1376,42 @@ on a per-file basis with:
#+STARTUP: noalign
@end example
@node orgtbl-mode, The spreadsheet, Narrow columns, Tables
@node Column groups, orgtbl-mode, Narrow columns, Tables
@section Column groups
@cindex grouping columns in tables
When Org-mode exports tables, it does so by default without vertical
lines because that is visually more satisfying in general. Occasionally
however, vertical lines can be useful to structure a table into groups
of columns, much like horizontal lines can do for groups of rows. In
order to specify column groups, you can use a special row where the
first field contains only @samp{/}. The further fields can either
contain @samp{<} to indicate that this column should start a group,
@samp{>} to indicate the end of a column, or @samp{<>} to make a column
a group of its own. Boundaries between colum groups will upon export be
marked with vertical lines. Here is an example:
@example
| | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
|---+----+-----+-----+-----+---------+------------|
| / | <> | < | | > | < | > |
| # | 1 | 1 | 1 | 1 | 1 | 1 |
| # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 |
| # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 |
|---+----+-----+-----+-----+---------+------------|
#+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2))
@end example
It is also sufficient to just insert the colum group starters after
every vertical line you'd like to have:
@example
| N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
|----+-----+-----+-----+---------+------------|
| / | < | | | < | |
@end example
@node orgtbl-mode, The spreadsheet, Column groups, Tables
@section The Orgtbl minor mode
@cindex orgtbl-mode
@cindex minor mode for tables

Binary file not shown.

View File

@ -1,5 +1,5 @@
% Reference Card for Org Mode
\def\orgversionnumber{4.75}
\def\orgversionnumber{4.77}
\def\versionyear{2007} % latest update
\def\year{2007} % latest copyright year

View File

@ -299,7 +299,7 @@ Turning on outline mode calls the value of `text-mode-hook' and then of
(setq line-move-ignore-invisible t)
;; Cause use of ellipses for invisible text.
(add-to-invisibility-spec '(outline . t))
(easy-menu-add outline-mode-menu-heading)
(easy-menu-add outline-mode-menu-show)
(easy-menu-add outline-mode-menu-hide)
@ -719,15 +719,15 @@ BEG and END default respectively to the beginning and end of buffer."
(map-extents
#'(lambda (ex ignored)
(if (< (extent-start-position ex) beg)
(if (> (extent-end-position ex) end)
(progn
(set-extent-endpoints (copy-extent ex)
(extent-start-position ex) beg)
(set-extent-endpoints ex end (extent-end-position ex)))
(set-extent-endpoints ex (extent-start-position ex) beg)))
(if (> (extent-end-position ex) end)
(set-extent-endpoints ex end (extent-end-position ex))
(delete-extent ex)))
(if (> (extent-end-position ex) end)
(progn
(set-extent-endpoints (copy-extent ex)
(extent-start-position ex) beg)
(set-extent-endpoints ex end (extent-end-position ex)))
(set-extent-endpoints ex (extent-start-position ex) beg))
(if (> (extent-end-position ex) end)
(set-extent-endpoints ex end (extent-end-position ex))
(delete-extent ex))))
(current-buffer) beg end nil 'end-closed 'outline)))
(defun outline-flag-region (from to flag)
@ -881,8 +881,8 @@ Show the heading too, if it is currently invisible."
(outline-back-to-heading)
(outline-end-of-heading)
(outline-flag-region (point)
(progn (outline-end-of-subtree) (point))
flag)))
(progn (outline-end-of-subtree) (point))
flag)))
(defun outline-end-of-subtree ()
(outline-back-to-heading)
@ -1008,7 +1008,7 @@ Stop at the first and last subheadings of a superior heading."
(outline-previous-visible-heading 1))
(if (< (funcall outline-level) level)
nil
(point))))
(point))))
(defun outline-headers-as-kill (beg end)
"Save the visible outline headers in region at the start of the kill ring.