364 Commits 4ab1a9b53d ... 38bf7561d0

Author SHA1 Message Date
  Tim Landscheidt 38bf7561d0 Remove obsolete mk/list-hooks.pl 1 year ago
  Tim Landscheidt db6da387ae Remove obsolete mk/pw 1 year ago
  Tim Landscheidt 61a885a399 Make manual and URL links in docstrings clickable 1 year ago
  Jose Robins e6f891e7aa org-clock.el: Add an autoload entry for the function org-clock-sum-today 1 year ago
  Nicolas Goaziou 248bc9631b org-element: Revert regexp change for inline source blocks and babel calls 1 year ago
  Nicolas Goaziou 19dcbab6f0 ox: Fix select tags and exclude tags and tags hierarchy 1 year ago
  Nicolas Goaziou 52c059a10d org-feed: Do not stop feed update when a feed is unavailable 1 year ago
  Nicolas Goaziou d0c4d9ba23 ox-latex: Allow negative tocdepth 1 year ago
  Nicolas Goaziou 98422471c9 org-agenda: Fix docstring 1 year ago
  Nicolas Goaziou e570e964a3 org-compat: Remove `org-decode-time' 1 year ago
  Nicolas Goaziou 0790855c93 org-clock: Fix remnant UTC time in clock computation 1 year ago
  Nicolas Goaziou b4cc12fc32 ob-core: Fix infloop when filling a region with a source block 1 year ago
  Nicolas Goaziou ddc8e8eb23 ox: Fix typo in docstring 1 year ago
  Nicolas Goaziou 7efa0f2879 Fix inline src and inline babel calls parsing 1 year ago
  Nicolas Goaziou 5b4a711949 Fix fontification of macro spanning over multiple lines 1 year ago
  Nicolas Goaziou 4d46a20ea2 ob-lob: Fix Babel calls with external references 1 year ago
  Jack Henahan ffa5f3c519 org-clock: Improve `untilnow' range behavior and performance 1 year ago
  Nicolas Goaziou b891e46ccb Fix typo in docstring 1 year ago
  Nicolas Goaziou c06f906f02 Fix typos in docstrings 1 year ago
  Nicolas Goaziou c2576f349b Re-hide archived subtrees when showing branches 1 year ago
  Tim Landscheidt 63c0266688 Update URLs in source code or tests 1 year ago
  Nicolas Goaziou 05bb961454 ORG-NEWS: Update git link abbrev 1 year ago
  Tim Landscheidt e5055616f3 Add trailing slash to https://orgmode.org/worg/org-contrib/babel 1 year ago
  Tim Landscheidt e40bc24c8b Use https for links to orgmode.org in old news entries 1 year ago
  Tim Landscheidt b289a65be7 Use https for links to orgmode.org 1 year ago
  Nicolas Goaziou bdc220ca17 ox-publish: Fix including files with a search option 1 year ago
  Nicolas Goaziou daceceb424 Fix `org-store-link' 1 year ago
  Tim Landscheidt 4ab1a9b53d Add trailing slash to https://orgmode.org/worg/org-contrib/babel 1 year ago
  Tim Landscheidt 5a1bb12530 FIXME: URLs to update in source code or tests 1 year ago
  Tim Landscheidt 809f90b6c7 Use https for links to orgmode.org in old news entries 1 year ago
  Tim Landscheidt 07eb266669 Make manual and URL links in docstrings clickable 1 year ago
  Tim Landscheidt eb2208842b Use https for links to orgmode.org 1 year ago
  Nicolas Goaziou 92176c90be Merge branch 'maint' 1 year ago
  Nicolas Goaziou 21cf8d8e61 Merge branch 'maint' 1 year ago
  Nicolas Goaziou b6787009b0 Merge branch 'maint' 1 year ago
  Nicolas Goaziou c3fffcd8d2 Fix C-<return> binding 1 year ago
  Bastien 0aeb66f64d Merge branch 'master' of code.orgmode.org:bzg/org-mode 1 year ago
  Bastien ebb67cebe5 Merge branch 'maint' 1 year ago
  Xu Chunyang 9f181d4404 org-agenda: Disable message logging for some messages 1 year ago
  Jay Kamat 57a1ece335 Respect :urgency tags for org-notify windows 1 year ago
  Nicolas Goaziou 6965098a53 Use a single keybinding representation 1 year ago
  Nicolas Goaziou a8a04348fd org-timer: Add missing autoload cookies 1 year ago
  Marco Wahl 1062c63ee1 test-ob-sed: Activate testing ob-sed 1 year ago
  Nicolas Goaziou 34d1ec4290 Merge branch 'maint' 1 year ago
  Marco Wahl 75be0362da test-org-tempo: Fix typo which activates the org-tempo tests 1 year ago
  Nicolas Goaziou d5b70fa68b Silence byte-compiler 1 year ago
  Nicolas Goaziou 000b943ebd Re-order visibility functions in "org.el" 1 year ago
  Nicolas Goaziou a8ee20d23d Replace `outline-flag-region' with `org-flag-region' 1 year ago
  Nicolas Goaziou 4dbb4a76a7 Implement `org-show-all' 1 year ago
  Nicolas Goaziou d30bea7cee Fold CLOCK and LOGBOOK drawers upon creating them 2 years ago
  Nicolas Goaziou 4403d4685e Give drawers their own invisibility spec 2 years ago
  Nicolas Goaziou 4f74aa4c0e Change signature for `org-set-visibility-according-to-property' 2 years ago
  Nicolas Goaziou e886d1566d Implement `org-flag-region' 2 years ago
  Nicolas Goaziou bbf1c26aaf Remove `org-hide-block-overlays' variable 2 years ago
  Nicolas Goaziou 728920a8ed Rename `org-timestamp--to-internal-time' into `org-timestamp-to-time' 1 year ago
  Nicolas Goaziou ee27fb010e Fix docstring 1 year ago
  Nicolas Goaziou d3cdc35e06 Implement `org-timestamp-from-string', `org-timestamp-from-time' 1 year ago
  Nicolas Goaziou 0c409d64d0 Merge branch 'maint' 1 year ago
  Marc Ihm 8f3156c945 Version 5.7.4 or org-index.el 1 year ago
  Nicolas Goaziou 46e24f6830 Merge branch 'maint' 1 year ago
  Nicolas Goaziou c82c21c7ac Merge branch 'maint' 1 year ago
  Nicolas Goaziou 9096ea4f3b manual: Tiny fix 1 year ago
  Nicolas Goaziou 857425e184 ox-org: Obey to `org-display-custom-times' 1 year ago
  Nicolas Goaziou c0a1fb4138 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7544f2b6d7 Merge branch 'maint' 1 year ago
  Nicolas Goaziou b65fe0f7a2 Merge branch 'maint' 1 year ago
  Kyle Meyer 34bb61bf81 Update master-only copyright years 1 year ago
  Kyle Meyer d94f7024bc Merge branch 'maint' 1 year ago
  Nicolas Goaziou e4b47699fe manual: Fix typo 1 year ago
  Nicolas Goaziou 6d0e2f2cc3 manual: Improve "The clock table" section 1 year ago
  Nicolas Goaziou 9bc6e644e9 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 6b06a6238b Merge branch 'maint' 1 year ago
  Nicolas Goaziou 8a2914f458 Merge branch 'maint' 1 year ago
  Xu Chunyang 38617a5373 * manual.org: Add org-capture-templates to Variable Index 1 year ago
  Nicolas Goaziou e8cd52dee0 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 931406855e Merge branch 'maint' 1 year ago
  Nicolas Goaziou eff8062400 manual: Add missing http -> https conversion 1 year ago
  Nicolas Goaziou e2b47eb5e7 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 63c89df93c manual: Use https instead of http for orgmode.org 1 year ago
  Nicolas Goaziou a692943970 manual: Use em-dash instead of spaced out en-dash 1 year ago
  Nicolas Goaziou fc1e7c2033 Merge branch 'maint' 1 year ago
  Nicolas Goaziou ff3d23e64e Do not use `called-interactively-p' in `org-store-link' 1 year ago
  Nicolas Goaziou c0ea20aab7 org-mobile: Save agenda files before pushing 1 year ago
  Nicolas Goaziou 837e1b4249 Merge branch 'maint' 1 year ago
  Nicolas Goaziou d6369e9ac6 Use completion in `org-set-effort' 1 year ago
  Nicolas Goaziou b030475575 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 1bf34d5b8a Merge branch 'maint' 1 year ago
  Nicolas Goaziou 63e9f45238 Merge branch 'maint' 1 year ago
  Nicolas Goaziou c887e78c02 Merge branch 'maint' 1 year ago
  Nicolas Goaziou e9f30779de Merge branch 'maint' 1 year ago
  Nicolas Goaziou 423b5b2f94 ORG-NEWS: Mention removal of OrgStruct and Radio lists 1 year ago
  Nicolas Goaziou c5208634ba Fix failing tests. 1 year ago
  Nicolas Goaziou a374b8b92a Silence byte-compiler 1 year ago
  Nicolas Goaziou 20491f2e7c org.texi: Remove references to Radio lists 1 year ago
  Nicolas Goaziou 87eb9ab4e9 org-list: Remove radio lists 1 year ago
  Nicolas Goaziou 2b96b08eaf Remove reference to Message mode 1 year ago
  Nicolas Goaziou eeb4c22090 Remove OrgStruct mode 1 year ago
  Nicolas Goaziou d4d9e90d19 org-table: Small optimization 1 year ago
  Nicolas Goaziou 2fb65b73b6 test-org-table: Tiny refactoring 1 year ago
  Nicolas Goaziou ef2485e7ce manual: Sync with org.texi 1 year ago
  Bastien 58c9bedfd5 Merge branch 'maint' 1 year ago
  Bastien 199908ba62 org: Enhance non-interactive calls to `org-insert-link` 1 year ago
  Bastien 29dd9a6605 org.el: New value for `org-todo-repeat-to-state' 1 year ago
  Bastien 8983ac917b org-colview: Allow to filter by tags/property when capturing colview 1 year ago
  Marco Wahl 144451143a Merge branch 'maint' 1 year ago
  Marco Wahl 6311c12556 Merge branch 'maint' 1 year ago
  Marco Wahl 269009d297 Merge branch 'maint' 1 year ago
  Nicolas Goaziou d934d1a89a Merge branch 'maint' 1 year ago
  Nicolas Goaziou a88bd87787 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 01e150eb59 ox-publish: Cache results for `org-publish-find-date' 1 year ago
  Nicolas Goaziou b30afa39b0 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7b6ec64e0e Merge branch 'maint' 1 year ago
  Kyle Meyer b9491c967c Merge branch 'maint' 1 year ago
  Nicolas Goaziou 870bfdc087 manual: Document "(eval" macro template 1 year ago
  Nicolas Goaziou 57a8dde8e3 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 2262d0d0c3 Merge branch 'maint' 1 year ago
  Nicolas Goaziou a343b0000a org-table: Improve bidirectional reordering in tables 1 year ago
  Nicolas Goaziou 4d3e7a2a57 ob-core: All Noweb parameters are read at point of definition 1 year ago
  Nicolas Goaziou 38be851245 ob-core: Do not always evaluate Lisp code in parameters 1 year ago
  Nicolas Goaziou 1e40dd6486 ob-core: Tiny refactoring 1 year ago
  Nicolas Goaziou 774e553f11 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7e77560ebb Merge branch 'maint' 1 year ago
  Kaushal Modi 6e95e088e8 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 913aad68c3 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 291d90c53e ob-core: Correctly find Noweb reference 1 year ago
  Nicolas Goaziou 1822f6eb62 Merge branch 'maint' 1 year ago
  Rasmus 153cd2b355 ORG-NEWS: Fix typo 1 year ago
  Kyle Meyer 06b49cd837 Merge branch 'maint' 1 year ago
  tsdye 0ad6a68a58 manual: Edits to the introductory section of "Working with source code" 1 year ago
  Nicolas Goaziou fdb2eb6701 Preserve file local variables during some operations 1 year ago
  Nicolas Goaziou dce82f7e5c manual.org: Fix typo 1 year ago
  Nicolas Goaziou d330eed7c0 Rename "orgmanual.org" to "manual.org" 1 year ago
  Nicolas Goaziou 290bbc14ad Update ".dir-locals.el" 1 year ago
  Nicolas Goaziou 9d072ad675 Update Org manual to current release 2 years ago
  Nicolas Goaziou 9bbee7d3c8 Add some `:safe' keywords 1 year ago
  Nicolas Goaziou 1882be68ba Remove ".dir-settings.el" 1 year ago
  Nicolas Goaziou 3ac619c8ac org-macro: Placeholders in (eval ...) macros are always strings 1 year ago
  Marco Wahl 3f2968c650 org: Insert a blank with structure template type "src" 1 year ago
  Nicolas Goaziou 6ffcdcbf02 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 1992394148 org-duration: Remove unnecessary declaration 1 year ago
  Nicolas Goaziou c9bbc4eca7 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 9a24977571 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 2646271789 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 5d4691dfbf Merge branch 'maint' 1 year ago
  Nicolas Goaziou 6fc4a1c53b Merge branch 'maint' 1 year ago
  Marco Wahl 3e845a3bf6 ORG-NEWS: Take note of org-attach-dired-to-subtree 1 year ago
  Nicolas Goaziou 60831c4606 Merge branch 'maint' 1 year ago
  Nicolas Goaziou bbf39576f4 org-tempo: Fix typo 1 year ago
  Nicolas Goaziou 5d2517ba5a Merge branch 'maint' 1 year ago
  Nicolas Goaziou a36d18caa4 Merge branch 'maint' 1 year ago
  Marco Wahl 993f76a7b4 org.texi: Document how to attach from a dired buffer 1 year ago
  Nicolas Goaziou f8849e92e5 org-archive: Add a test 1 year ago
  Nicolas Goaziou 2390b6302d Merge branch 'maint' 1 year ago
  Nicolas Goaziou e8b71b86d2 Merge branch 'maint' 1 year ago
  Nicolas Goaziou c3c1c52eb8 ox: Fix inline source block evaluation 1 year ago
  Nicolas Goaziou 076cba6b2d Fix last commit 1 year ago
  Nicolas Goaziou 6f89177ee6 Move `org-unlogged-message' to "org-macs.el" 1 year ago
  Nicolas Goaziou fc5abc2d55 ob-core: Insert lowercase results 1 year ago
  Nicolas Goaziou a34431f6ea org-tempo: Tiny refactoring 1 year ago
  Rasmus 3efb000739 org-tempo: Enable Tempo in all Org buffers after load 1 year ago
  Rasmus 4b80c62705 Update README_mainter 1 year ago
  Rasmus 94f1a58438 org-tempo.el: New file for expansion of templates 1 year ago
  Nicolas Goaziou d435c75f54 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 3695415199 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 15df8db7ad Merge branch 'maint' 1 year ago
  Nicolas Goaziou 494414028a Merge branch 'maint' 1 year ago
  Nicolas Goaziou f8db6e0295 Merge branch 'maint' 1 year ago
  Nicolas Goaziou ada2f64b16 org-attach: Make `org-attach-directory' a safe variable 1 year ago
  Nicolas Goaziou 0c691737aa Merge branch 'maint' 1 year ago
  Nicolas Goaziou a0e3f1d505 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7fc901ca0f Merge branch 'maint' 1 year ago
  Nicolas Goaziou 62112f5a86 Merge branch 'maint' 1 year ago
  Nicolas Goaziou ff36e945ca Merge branch 'maint' 1 year ago
  Nicolas Goaziou 259656a76e Merge branch 'maint' 1 year ago
  Nicolas Goaziou bdaf5dacf4 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 0ace32b045 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7a3cae65a7 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 1bb9cf1597 Merge branch 'maint' 1 year ago
  Alex Branham 33d554aacc ORG-NEWS: Document new behavior of org-comment-dwim on headings 1 year ago
  Nicolas Goaziou 326b2e85e4 Merge branch 'maint' 1 year ago
  Nicolas Goaziou fada34bb97 Merge branch 'maint' 1 year ago
  Alex Branham ee7ead62aa Make `org-comment-dwim' check if on a heading 1 year ago
  Nicolas Goaziou acfb1ca4b8 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 819b2a1a3d Merge branch 'maint' 1 year ago
  Nicolas Goaziou e92732efd0 Merge branch 'maint' 1 year ago
  Nicolas Goaziou c1d7b2cda3 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 68544f4f21 Merge branch 'maint' 1 year ago
  Kyle Meyer 5cd7eb3d53 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 579fa12f50 Merge branch 'maint' 1 year ago
  Matt Lundin b186d1d723 Do not save target buffer after archiving subtree 1 year ago
  Nicolas Goaziou 26c2ad99cf ox-publish: Fix resolving url-encoded external links 1 year ago
  Nicolas Goaziou b0ab7008df Merge branch 'maint' 1 year ago
  Nicolas Goaziou be1e807942 Merge branch 'maint' 1 year ago
  Nicolas Goaziou d7f2c8b8e1 Merge branch 'maint' 1 year ago
  Nicolas Goaziou f67e62eb3f Merge branch 'maint' 1 year ago
  Nicolas Goaziou b6df86a303 org-macro: Silence byte-compiler 1 year ago
  Nicolas Goaziou 51234f9555 org-macro: Implement "keyword" macro 1 year ago
  Nicolas Goaziou 5f5d82ed51 Remove second pass for macro expansion 1 year ago
  Nicolas Goaziou 7455f4bf83 ox: Allow a less strict UNNUMBERED inheritance 1 year ago
  Nicolas Goaziou d788d1b00e Merge branch 'maint' 1 year ago
  Nicolas Goaziou f482cfa785 Merge branch 'maint' 1 year ago
  Nicolas Goaziou b8d473a04f org-table: Insert new column to the right instead of the left 1 year ago
  Nicolas Goaziou de289d1fe8 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 04e0532ef5 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 966af419f9 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 64ac3bb5b3 ox-ascii: Lighten numbering in table of contents 1 year ago
  Nicolas Goaziou 8ff3673dfc Merge branch 'maint' 1 year ago
  Marco Wahl 5c382f2ee2 org-attach,test-org-attach: Refactoring. 1 year ago
  Marco Wahl a49ac98f3f org-attach: Refactor. Replace self made with available function. 1 year ago
  Marco Wahl 615b147031 org-attach: Attach files specified in a dired buffer. 1 year ago
  Kyle Meyer c029c4d45d Merge branch 'maint' 1 year ago
  Nicolas Goaziou 9cac9d7bc7 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 4c703513a7 Merge branch 'maint' 1 year ago
  Marco Wahl 44189a72d5 Merge branch 'maint' 1 year ago
  Nicolas Goaziou d07ee7f7f2 Implement :pre-blank property for items and footnotes definitions 1 year ago
  Marc Ihm 8f3077d14a v5.7.2 of org-index 1 year ago
  Nicolas Goaziou 28ebfa6d77 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 05034ec6ed ORG-NEWS: Document user-visible changes with new template system 1 year ago
  Nicolas Goaziou 76a9e1d01d Merge branch 'maint' 1 year ago
  Nicolas Goaziou 8d43a0c49f ox-texinfo: Gracefully handle node collision in the same hierarchy 1 year ago
  Nicolas Goaziou 04f35fc473 ox-texinfo: Preserve target name as node. 1 year ago
  Eric Abrahamsen c04e357f3d Replace easy templates with org-insert-structure-template 1 year ago
  Nicolas Goaziou fd50740c96 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7ba058963e Merge branch 'maint' 1 year ago
  Nicolas Goaziou 9bee79a102 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 6a273e30d7 Merge branch 'maint' 1 year ago
  Nicolas Goaziou ee3a9e9a77 Fix failing test 1 year ago
  Nicolas Goaziou 902bfe1892 Merge branch 'maint' 1 year ago
  Nicolas Goaziou c470edba77 ox-texinfo: Prettify adjunct for indentical nodes. 1 year ago
  Nicolas Goaziou f9c09b194f ox-texinfo: Allow cross-references to headlines excluded from TOC 1 year ago
  Nicolas Goaziou 36578fda46 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 4388bdf852 Merge branch 'maint' 1 year ago
  U-IHM-NOTEBOOK\Olli e440c51b5f Version 5.7.1 of org-index 1 year ago
  Nicolas Goaziou f474c7149b org-table: Fix compatibility with Emacs 24.3 1 year ago
  Nicolas Goaziou 99dbca3d4f Remove `org-babel-use-quick-and-dirty-noweb-expansion' 1 year ago
  Marco Wahl 22e7bc8e2b org-agenda: Refactoring. Deactivate mark in case of a region. 1 year ago
  Marco Wahl 78c6a299d2 org-agenda: Bulk mark lines in region 1 year ago
  Nicolas Goaziou bebfd341af Merge branch 'maint' 1 year ago
  Nicolas Goaziou 048169d270 org-goto: Fix wrong number of arguments error 1 year ago
  Nicolas Goaziou 3a5b75d4ee org-goto: Fix keymapp error 1 year ago
  Nicolas Goaziou 73a15d1bfb ox-texinfo: Small refactoring 1 year ago
  Nicolas Goaziou 1b9a66487a Move a test 1 year ago
  Nicolas Goaziou 96c7fd7541 Merge branch 'maint' 1 year ago
  Nicolas Goaziou e59199e3a8 ox-texinfo: Fix missing contents in headings out of TOC 1 year ago
  Nicolas Goaziou c024bec29e org-goto: Fix header 1 year ago
  Nicolas Goaziou e1c2db37ed Extract "org-goto" code into a dedicated library 1 year ago
  Nicolas Goaziou 87116700e6 Move some invisibility check functions to "org-macs.el" 1 year ago
  Nicolas Goaziou fc551191a7 Silence byte-compiler 1 year ago
  Nicolas Goaziou 59d21881b1 Revert "Move `org-key' and `org-defkey' into "org-macs.el"" 1 year ago
  Nicolas Goaziou 486331e323 Move some generic functions into "org-macs.el" 1 year ago
  Nicolas Goaziou 7f56a9920f Move `org-key' and `org-defkey' into "org-macs.el" 1 year ago
  Nicolas Goaziou 7554012cef Move compatibility functions in "org-compat.el" 1 year ago
  Nicolas Goaziou 95b76608a6 Merge branch 'maint' 1 year ago
  Nicolas Goaziou bed03c4b42 Merge branch 'maint' 1 year ago
  Kyle Meyer 33ca07b5df org-agenda: Fix the display of more key substitutions 1 year ago
  Marco Wahl 620ba14460 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 0cc59cea23 Merge branch 'maint' 1 year ago
  Nicolas Goaziou ff6fbaf395 Merge branch 'maint' 1 year ago
  Nicolas Goaziou cd9cccb4b2 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 52d4ca4b29 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7ac8883394 Move `org-completing-read' into "org-macs.el" 1 year ago
  Nicolas Goaziou 45a1918efe Move `org-xor' into "org-macs.el" 1 year ago
  Nicolas Goaziou 5b2b8f3175 ox-texinfo: Handle "notoc" value 1 year ago
  Nicolas Goaziou b401d3a44b Implement `org-export-excluded-from-toc-p' 1 year ago
  Nicolas Goaziou 9b13e44ad7 ox: Implement "notoc" UNNUMBERED value 1 year ago
  Nicolas Goaziou 29b4134687 Improve a docstring 1 year ago
  Nicolas Goaziou 2525dc6c72 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7df5d21f79 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 4ffddc2a93 Merge branch 'maint' 1 year ago
  Kyle Meyer 8184de6e13 Merge branch 'maint' 1 year ago
  Kyle Meyer 86e6ab697c Merge branch 'maint' 1 year ago
  Nicolas Goaziou 61c81e8255 Merge branch 'maint' 1 year ago
  U-IHM-NOTEBOOK\Olli 4d828ba4c6 org-index.el version 5.6.2 1 year ago
  Kyle Meyer 0b83168465 Adjust version numbers of unreleased changes 1 year ago
  Kyle Meyer a343655bb3 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 2a55d206e3 Merge branch 'maint' 1 year ago
  Nicolas Goaziou fa56da61a7 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7f56bfe0c2 Merge branch 'maint' 1 year ago
  Marco Wahl 5a16dec5a4 org-inlinetask: Wrap region at insertion 1 year ago
  Nicolas Goaziou 44e3745c78 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 9455c6910e Merge branch 'maint' 1 year ago
  Kyle Meyer eeaf9aec10 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 1b12ad5cf6 Merge branch 'maint' 1 year ago
  Kyle Meyer 7a2b642ad1 Merge branch 'maint' 1 year ago
  Kyle Meyer 1a946d04e4 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 73df53f185 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 428368af2f Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7f2b2557fe Merge branch 'maint' 1 year ago
  Nicolas Goaziou 3c83f1f5ac Merge branch 'maint' 1 year ago
  Nicolas Goaziou b8d89496fd Merge branch 'maint' 1 year ago
  Nicolas Goaziou 9cfa907971 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 4f619fc200 Merge branch 'maint' 1 year ago
  U-IHM-NOTEBOOK\Olli 731e1ca938 Version 5.6.1 of org-index 1 year ago
  Nicolas Goaziou fbf47cde94 Merge branch 'maint' 1 year ago
  Marco Wahl 80eca1d31f org.texi: Delete misplaced colon 1 year ago
  Marco Wahl 193d5b5c7a Remove the overwrite of the C-c TAB binding 1 year ago
  Kyle Meyer 48f3338057 org-agenda: Fix search view's display of command keys 1 year ago
  Jay Kamat 6456febb0a ORG-NEWS: Add an entry for supporting export in org-irc.el 1 year ago
  Jay Kamat 405555ec5c org-irc.el: Add proper export functions for irc 1 year ago
  Nicolas Goaziou 3056abe781 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 039004ddee Merge branch 'maint' 1 year ago
  Nicolas Goaziou ad0662bbe7 Revert "Table of contents ignore unnumbered headlines" 1 year ago
  Nicolas Goaziou 2faebbd2f0 Merge branch 'maint' 1 year ago
  Nicolas Goaziou cf35109ad8 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 6e7d152699 Move `org-get-at-bol' into "org-macs.el" 1 year ago
  Nicolas Goaziou 32890ea5a5 Move `org-uniquify' into "org-macs.el" 1 year ago
  Nicolas Goaziou 794dfaa6e0 org-macs: Re-order functions and macros 1 year ago
  Nicolas Goaziou 18ee77f62a Silence byte-compiler 1 year ago
  Nicolas Goaziou 442a2b430d Move `org-trim' in "org-macs.el" 1 year ago
  Nicolas Goaziou 44c46176ec Re-bind `org-show-children' to C-c TAB 1 year ago
  Kyle Meyer 5bcaa4dd13 Merge branch 'maint' 1 year ago
  Nicolas Goaziou ff6b380999 Merge branch 'maint' 1 year ago
  Kyle Meyer 297acd7517 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 2021b98b83 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 85acebdc2e Remove auto-repair of malformed property drawers 1 year ago
  Kyle Meyer 3df23ef80c Merge branch 'maint' 1 year ago
  Nicolas Goaziou fcda05df0d Merge branch 'maint' 1 year ago
  Nicolas Goaziou 9c4ee81a8b ox-texinfo: Add missing autoload cookies 1 year ago
  Nicolas Goaziou 8383f7e08b Change emphasis regexp 1 year ago
  Nicolas Goaziou 9e062df65d Merge branch 'maint' 1 year ago
  Nicolas Goaziou 04498a4fbd Merge branch 'maint' 1 year ago
  Nicolas Goaziou 3944547bf2 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 657302b97e Merge branch 'maint' 1 year ago
  Nicolas Goaziou c59cb987eb Merge branch 'maint' 1 year ago
  Nicolas Goaziou 81e7ad6507 Add missing documentation part about shrunk columns 1 year ago
  Kyle Meyer 793b429f95 Merge branch 'maint' 1 year ago
  Nicolas Goaziou c6e5639b7e ox-texinfo: Do not add @node for unnumbered headings 1 year ago
  Nicolas Goaziou bd2378161e Table of contents ignore unnumbered headlines 1 year ago
  Nicolas Goaziou 7a47458b39 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 7b1fabbf88 org-colview: Fix defcustom type 1 year ago
  Stig Brautaset 2b2314d46d org-colview: Allow custom COLLECT functions for derived properties 1 year ago
  Nicolas Goaziou 3ab1afd0ea Merge branch 'maint' 1 year ago
  Nicolas Goaziou 007bbddbcc ox-html: Prevent spurious target below headlines 1 year ago
  Nicolas Goaziou b3ab012d69 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 2a9d8653eb Merge branch 'maint' 1 year ago
  Nicolas Goaziou c8aaf8f694 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 17013d6f38 Remove duplicate test 1 year ago
  Nicolas Goaziou 289539e119 Merge branch 'maint' 1 year ago
  Nicolas Goaziou e21768d24b Merge branch 'maint' 1 year ago
  Kyle Meyer 88ffcf54d8 Merge branch 'maint' 1 year ago
  Kaushal Modi bca91bb7ee Merge branch 'maint' 1 year ago
  Nicolas Goaziou d15a4a4a9b Silence byte-compiler 1 year ago
  Nicolas Goaziou 7d1757f7d2 org-table: Fix failing tests 1 year ago
  Nicolas Goaziou f22c23277f Merge branch 'maint' 1 year ago
  Nicolas Goaziou 9c5d03ca3b Merge branch 'maint' 1 year ago
  Nicolas Goaziou 19d039abd3 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 11979e298d org-archive: Fix failing tests 1 year ago
  Nicolas Goaziou 6cfc7cb958 Merge branch 'maint' 1 year ago
  Nicolas Goaziou 85ba4912a0 org.texi: Fix last commit 1 year ago
  Nicolas Goaziou ad1c0faa7e Merge branch 'maint' 1 year ago
  Marco Wahl d41c256ea2 org.texi: Hint to "C-h ." to see hidden cell value 1 year ago
  Nicolas Goaziou d1e03f59b8 org-agenda: Silence byte-compiler 1 year ago
  Nicolas Goaziou 70d2b3c96f org-table: Obey <c> cookie when aligning a table 1 year ago
  Nicolas Goaziou 6e5598dc31 Document new column display 1 year ago
  Nicolas Goaziou 8374e6f438 org-table: Implement org-table-expand 1 year ago
  Nicolas Goaziou 882f3f3fc0 org-table: Change behavior of `org-table-toggle-column-width' 1 year ago
  Nicolas Goaziou 73bf9b8887 org-table: Allow to shrink tables upon opening a document 1 year ago
  Nicolas Goaziou 23a2fde6fe Remove visual effect of width cookies in tables 1 year ago
  Nicolas Goaziou 6d6a30d4cd org-table: Implement shrunk columns 1 year ago
  Jay Kamat 331ba68495 org-archive.el: Update statistic cookies when archiving 1 year ago
  Nicolas Goaziou 6dfcb98f13 Fix ORG-NEWS 1 year ago
  Nicolas Goaziou 7d08ff06bd Merge branch 'maint' 1 year ago
  Adam Porter fccfe56659 org-agenda: Minor refactoring and tiny bug fix 1 year ago
  Adam Porter b6c5a174da org-agenda: Refactor org-agenda-overriding-header code 1 year ago
68 changed files with 24425 additions and 28368 deletions
  1. 9 15
      .dir-locals.el
  2. 9 0
      .dir-settings.el
  3. 0 3
      README_maintainer
  4. 177 184
      contrib/lisp/org-index.el
  5. 0 1
      contrib/lisp/org-notify.el
  6. 0 21235
      contrib/manual.org
  7. 19580 0
      contrib/orgmanual.org
  8. 213 254
      doc/org.texi
  9. 2 220
      etc/ORG-NEWS
  10. 112 105
      lisp/ob-core.el
  11. 2 4
      lisp/ob-lilypond.el
  12. 44 33
      lisp/ob-lob.el
  13. 81 108
      lisp/org-agenda.el
  14. 2 11
      lisp/org-archive.el
  15. 1 38
      lisp/org-attach.el
  16. 1 1
      lisp/org-capture.el
  17. 10 38
      lisp/org-clock.el
  18. 19 40
      lisp/org-colview.el
  19. 13 313
      lisp/org-compat.el
  20. 1 0
      lisp/org-duration.el
  21. 50 76
      lisp/org-element.el
  22. 16 8
      lisp/org-feed.el
  23. 199 184
      lisp/org-footnote.el
  24. 0 314
      lisp/org-goto.el
  25. 2 3
      lisp/org-id.el
  26. 9 15
      lisp/org-inlinetask.el
  27. 1 14
      lisp/org-irc.el
  28. 118 12
      lisp/org-list.el
  29. 23 71
      lisp/org-macro.el
  30. 204 606
      lisp/org-macs.el
  31. 0 5
      lisp/org-mobile.el
  32. 1 1
      lisp/org-mouse.el
  33. 4 2
      lisp/org-pcomplete.el
  34. 1 2
      lisp/org-src.el
  35. 352 665
      lisp/org-table.el
  36. 0 168
      lisp/org-tempo.el
  37. 0 2
      lisp/org-timer.el
  38. 2389 1210
      lisp/org.el
  39. 8 7
      lisp/ox-ascii.el
  40. 30 12
      lisp/ox-html.el
  41. 1 1
      lisp/ox-latex.el
  42. 1 1
      lisp/ox-md.el
  43. 3 6
      lisp/ox-org.el
  44. 40 60
      lisp/ox-publish.el
  45. 120 114
      lisp/ox-texinfo.el
  46. 71 70
      lisp/ox.el
  47. 0 32
      mk/list-hooks.pl
  48. 0 664
      mk/pw
  49. 1 6
      testing/examples/pub/a.org
  50. 0 6
      testing/examples/pub/b.org
  51. 57 47
      testing/lisp/test-ob-exp.el
  52. 55 0
      testing/lisp/test-ob-lob.el
  53. 2 4
      testing/lisp/test-ob-sed.el
  54. 12 11
      testing/lisp/test-ob.el
  55. 0 140
      testing/lisp/test-org-archive.el
  56. 0 89
      testing/lisp/test-org-attach.el
  57. 13 50
      testing/lisp/test-org-colview.el
  58. 7 46
      testing/lisp/test-org-element.el
  59. 4 88
      testing/lisp/test-org-footnote.el
  60. 108 7
      testing/lisp/test-org-list.el
  61. 11 36
      testing/lisp/test-org-macro.el
  62. 0 37
      testing/lisp/test-org-macs.el
  63. 142 484
      testing/lisp/test-org-table.el
  64. 0 75
      testing/lisp/test-org-tempo.el
  65. 39 154
      testing/lisp/test-org.el
  66. 1 64
      testing/lisp/test-ox-publish.el
  67. 52 94
      testing/lisp/test-ox.el
  68. 2 2
      testing/org-test.el

+ 9 - 15
.dir-locals.el

@@ -1,15 +1,9 @@
-;;; Directory Local Variables
-;;; For more information see (info "(emacs) Directory Variables")
-
-((nil
-  (indent-tabs-mode . t)
-  (tab-width . 8)
-  (fill-column . 70)
-  (sentence-end-double-space . t))
- (org-mode
-  (indent-tabs-mode)
-  (org-edit-src-content-indentation . 2)
-  (org-adapt-indentation)))
-
-
-
+;; - keep in sync dir-locals.el (for Emacs >= 24) with .dir-settings.el
+;;   (for Emacs < 24)
+;; - don't use a symbolic link to prevent problems on cygwin
+;;   distributions (commit 971b9eeacd38959439ddaa7c650430cc2dcb673e)
+
+((nil . ((indent-tabs-mode . t)
+	 (tab-width . 8)
+	 (fill-column . 70)
+	 (sentence-end-double-space . t))))

+ 9 - 0
.dir-settings.el

@@ -0,0 +1,9 @@
+;; - keep in sync dir-locals.el (for Emacs >= 24) with .dir-settings.el
+;;   (for Emacs < 24)
+;; - don't use a symbolic link to prevent problems on cygwin
+;;   distributions (commit 971b9eeacd38959439ddaa7c650430cc2dcb673e)
+
+((nil . ((indent-tabs-mode . t)
+	 (tab-width . 8)
+	 (fill-column . 70)
+	 (sentence-end-double-space . t))))

+ 0 - 3
README_maintainer

@@ -165,9 +165,6 @@ the Emacs repository, folder by folder.
 
 **** TODO =org-mode/testing=
 
-*** Update  =emacs/etc/NEWS=
-Whenever a new (major) version of Org is synchronized to the Emacs
-repository, it should be mentioned in the NEWS file.
 * Updating the list of hooks/commands/options on Worg
 
 Load the =mk/eldo.el= file then =M-x eldo-make-doc RET=.

+ 177 - 184
contrib/lisp/org-index.el

@@ -3,7 +3,7 @@
 ;; Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 ;; Author: Marc Ihm <org-index@2484.de>
-;; Version: 5.7.4
+;; Version: 5.5.0
 ;; Keywords: outlines index
 
 ;; This file is not part of GNU Emacs.
@@ -51,11 +51,13 @@
 ;;
 ;;  - Place this file in a directory of your load-path,
 ;;    e.g. org-mode/contrib/lisp.
+;;
 ;;  - Add these lines to your .emacs:
 ;;
 ;;    (require 'org-index)
 ;;
 ;;  - Restart your Emacs to make this effective.
+;;
 ;;  - Invoke `org-index'; on first run it will assist in creating your
 ;;    index table.
 ;;
@@ -66,6 +68,7 @@
 ;; Further information:
 ;;
 ;;  - Watch the screencast at http://2484.de/org-index.html.
+;;
 ;;  - See the documentation of `org-index', which can also be read by
 ;;    invoking `org-index' and choosing the command help or '?'.
 ;;
@@ -73,31 +76,128 @@
 ;; Updates:
 ;;
 ;;  The latest published version of this file can always be found at:
+;;
 ;;    https://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-index.el;hb=HEAD
-;;  Development version under:
-;;    https://github.com/marcIhm/org-index
 ;;
+;;  Development version under:
 ;;
+;;    https://github.com/marcIhm/org-index
 
 ;;; Change Log:
 
-;; 
-;;  - See the command 'news' for recent changes, or
-;;  - https://github.com/marcIhm/org-index/ChangeLog.org    for older news
-;;  - https://github.com/marcIhm/org-index/commits/master   for a complete list of changes
+;;   [2017-09-03 So] Version 5.5.0
+;;   - In occur: case-sensitive search for upcase letters
+;;   - Better handling of nested focus nodes
+;;   - Bugfixes
+;;
+;;   [2017-06-06 Tu] Version 5.4.2
+;;   - Dedicated submenu for focus operations
+;;   - Occur accepts a numeric argument as a day span
+;;   - New customization `org-index-clock-into-focus'
+;;   - Fixed delay after choosing an index line
+;;   - (Re)introduced lexical binding
+;;   - Bugfixes
+;;
+;;   [2017-03-26 Su] Version 5.3.0
+;;   - Focused can now be on a list of nodes (instead of a single one)
+;;   - Cleaned up undeclared dependencies
+;;
+;;   [2017-02-18 Sa] Version 5.2.3
+;;   - New command 'focus'
+;;   - Speeded up org-index--parse-table with the stored property "max-ref"
+;;   - Speeded up org-index--on with search
+;;   - Added org-index-prepare-when-idle
+;;   - Fixed compatibility issue with emacs 24 (font-lock-ensure)
+;;   - Added more customizations
+;;   - Bugfixes
+;;
+;;   [2016-10-19 We] Version 5.1.4
+;;   - Bugfixes
 ;;
+;;   [2016-08-26 Fr] Version 5.1.3
+;;   - Offering help during query for subcommands
+;;   - Removed org-index-default-keybindings
+;;   - Renamed subcommand multi-occur to find-ref
+;;   - Subcommands add needs no longer be invoked from heading
+;;   - Many Bugfixes
 ;;
+;;   [2015-12-29 Tu] Version 5.0.2
+;;   - New commands yank, column and edit
+;;   - New column tags
+;;   - All columns are now required
+;;   - References are now optional
+;;   - Subcommand enter has been renamed to index
+;;   - Subcommands kill and edit can be invoked from an occur buffer
+;;   - Many Bugfixes
+;;   - Added link to screencast
+;;
+;;   [2015-08-20 Th] Version 4.3.0
+;;   - Configuration is done now via standard customize
+;;   - New sorting strategy 'mixed'
+;;   - Silenced some compiler warnings
+;;
+;;   [2015-03-18 We] Version 4.2.1
+;;   - No garbage in kill-ring
+;;   - No recentering after add
+;;
+;;   [2015-03-08 Su] Version 4.2.0
+;;   - Reference numbers for subcommands can be passed as a prefix argument
+;;   - New variable org-index-default-keybindings-list with a list of
+;;     default keybindings for org-index-default-keybindings
+;;   - Added new column level
+;;   - removed flags get-category-on-add and get-heading-on-add
+;;
+;;   [2015-02-26 Th] to [2015-03-05 Th] Version 4.0.0 to 4.1.2
+;;   - Removed command "leave"; rather go back with org-mark-ring-goto
+;;   - Renamed column "link" to "id"
+;;   - Added maintainance options to find duplicate rows, to check ids,
+;;     update index or remove property org-index-ref from nodes
+;;   - Shortened versin history
+;;
+;;   [2014-12-08 Mo] to [2015-01-31 Sa] Version 3.0.0 to 3.2.0:
+;;   - Complete sorting of index only occurs in idle-timer
+;;   - New command "maintain"  with some subcommands
+;;   - Rewrote command "occur" with overlays in an indirect buffer
+;;   - Command "add" updates index, if node is already present
+;;   - New commands "add" and "delete" to easily add and remove
+;;     the current node to or from your index.
+;;   - New command "example" to create an example index.
+;;   - Several new flags that are explained within index node.
+;;   - Removed commands "reuse", "missing", "put", "goto",
+;;     "update", "link", "fill", "unhighlight"
+;;   - New function `org-index-default-keybindings'
+;;
+;;   [2012-12-07 Fr] to [2014-04-26 Sa] Version 2.0.0 to 2.4.3:
+;;   - New functions org-index-new-line and org-index-get-line
+;;     offer access to org-index from other lisp programs
+;;   - Regression tests with ert
+;;   - Renamed from "org-favtable" to "org-index"
+;;   - Added an assistant to set up the index table
+;;   - occur is now incremental, searching as you type
+;;   - Integrated with org-mark-ring-goto
+;;   - Added full support for ids
+;;   - Renamed the package from "org-reftable" to "org-favtable"
+;;   - Additional columns are required (e.g. "link"). Error messages will
+;;     guide you
+;;   - Ask user explicitly, which command to invoke
+;;   - Renamed the package from "org-refer-by-number" to "org-reftable"
+;;
+;;   [2011-12-10 Sa] to [2012-09-22 Sa] Version Version 1.2.0 to 1.5.0:
+;;    - New command "sort" to sort a buffer or region by reference number
+;;    - New commands "highlight" and "unhighlight" to mark references
+;;    - New command "head" to find a headline with a reference number
+;;    - New commands occur and multi-occur
+;;    - Started this Change Log
 
 ;;; Code:
 
 (require 'org-table)
 (require 'org-id)
-(require 'org-inlinetask)
 (require 'cl-lib)
 (require 'widget)
 
 ;; Version of this package
-(defvar org-index-version "5.7.4" "Version of `org-index', format is major.minor.bugfix, where \"major\" are incompatible changes and \"minor\" are new features.")
+(defvar org-index-version "5.5.0" "Version of `org-index', format is major.minor.bugfix, where \"major\" are incompatible changes and \"minor\" are new features.")
 
 ;; customizable options
 (defgroup org-index nil
@@ -208,12 +308,7 @@ those pieces."
                   (const keywords))))
 
 (defcustom org-index-clock-into-focus nil
-  "Clock into focused node ?"
-  :group 'org-index
-  :type 'boolean)
-
-(defcustom org-index-goto-bottom-after-focus nil
-  "After visiting a focused nodes; position cursor at bottom of node (as opposed to heading) ?"
+  "Clock into focused node."
   :group 'org-index
   :type 'boolean)
 
@@ -231,7 +326,6 @@ those pieces."
 (defvar org-index--headings nil "Headlines of index-table as a string.")
 (defvar org-index--headings-visible nil "Visible part of headlines of index-table as a string.")
 (defvar org-index--ids-focused-nodes nil "Ids of focused node (if any).")
-(defvar org-index--ids-focused-nodes-saved nil "Backup for ‘org-index--ids-focused-nodes’.")
 (defvar org-index--id-last-goto-focus nil "Id of last node, that has been focused to.")
 
 ;; Variables to hold context and state
@@ -257,7 +351,6 @@ those pieces."
 (defvar org-index--context-occur nil "Position and line used for occur in edit buffer.")
 (defvar org-index--context-node nil "Buffer and position for node in edit buffer.")
 (defvar org-index--short-help-buffer-name "*org-index commands*" "Name of buffer to display short help.")
-(defvar org-index--news-buffer-name "*org-index news*" "Name of buffer to display news.")
 (defvar org-index--display-short-help nil "True, if short help should be displayed.")
 (defvar org-index--short-help-displayed nil "True, if short help message has been displayed.")
 (defvar org-index--prefix-arg nil "True, if prefix argument has been received during input.")
@@ -268,7 +361,7 @@ those pieces."
 (defvar org-index--last-command nil "Subcommand, that hast been excecuted last.")
 
 ;; static information for this program package
-(defconst org-index--commands '(occur add kill head ping index ref yank column edit help short-help news focus example sort find-ref highlight maintain) "List of commands available.")
+(defconst org-index--commands '(occur add kill head ping index ref yank column edit help short-help focus example sort find-ref highlight maintain) "List of commands available.")
 (defconst org-index--valid-headings '(ref id created last-accessed count keywords category level yank tags) "All valid headings.")
 (defconst org-index--occur-buffer-name "*org-index-occur*" "Name of occur buffer.")
 (defconst org-index--edit-buffer-name "*org-index-edit*" "Name of edit buffer.")
@@ -321,7 +414,7 @@ for its index table.
 To start building up your index, use subcommands 'add', 'ref' and
 'yank' to create entries and use 'occur' to find them.
 
-This is version 5.7.4 of org-index.el.
+This is version 5.5.0 of org-index.el.
 
 
 The function `org-index' is the only interactive function of this
@@ -383,8 +476,6 @@ of subcommands to choose from:
     I.e. from the complete help, show only the first line for each
     subcommand.
 
-  news: [n] Show news for the current point release.
-
   example: Create an example index, that will not be saved.
     May serve as an example.
 
@@ -474,13 +565,11 @@ interactive calls."
         ;; read command; if requested display help in read-loop
         (setq org-index--display-short-help (eq command 'short-help))
         (setq command (org-index--read-command))
+        (setq org-index--last-command org-index--this-command)
+        (setq org-index--this-command command)
 	(if org-index--prefix-arg (setq arg (or arg '(4))))
         (setq org-index--display-short-help nil))
 
-      (setq org-index--last-command org-index--this-command)
-      (setq org-index--this-command command)
-
-
       ;;
       ;; Get search string, if required; process possible sources one after
       ;; another (lisp argument, prefix argument, user input).
@@ -577,22 +666,6 @@ interactive calls."
         (org-index--display-short-help))
 
        
-       ((eq command 'news)
-        (with-current-buffer-window
-         org-index--news-buffer-name nil nil
-         (insert (format "News for Version %s of org-index:\n"
-                         (progn
-                           (string-match "\\([0-9]+\\.[0-9]+\\)\\." org-index-version)
-                           (match-string 1 org-index-version))))
-         (insert "
-  - New option org-index-goto-bottom-after-focus for position after jumping to a focused node
-  - New focus-command 'r' to revert last change to list of focused nodes
-")
-         (insert "\nSee https://github.com/marcIhm/org-index/ChangeLog.org for older news.\n")
-         (org-mode))
-        (shrink-window-if-larger-than-buffer (get-buffer-window org-index--news-buffer-name)))
-       
-
        ((eq command 'find-ref)
 
         ;; Construct list of all org-buffers
@@ -681,7 +754,7 @@ interactive calls."
 
         (let ((moved-up 0) id info reached-top done)
 
-          (unless (string= major-mode "org-mode") (error "Not in org-mode"))
+          (unless (string= major-mode "org-mode") (error "No node at point"))
           ;; take id from current node or reference
           (setq id (if search-ref
                        (org-index--id-from-ref search-ref)
@@ -689,7 +762,7 @@ interactive calls."
 
           ;; move up until we find a node in index
           (save-excursion
-            (org-with-limited-levels (org-back-to-heading))
+            (outline-back-to-heading)
             (while (not done)
               (if id
                   (setq info (org-index--on 'id id
@@ -978,8 +1051,10 @@ Optional argument KEYS-VALUES specifies content of new line."
    (princ "Short help; shortcuts in []; capital letter acts like C-u.\n")
    (princ (org-index--get-short-help-text)))
   (with-current-buffer org-index--short-help-buffer-name
-    (let ((inhibit-read-only t))
-      (shrink-window-if-larger-than-buffer (get-buffer-window))
+    (let ((inhibit-read-only t)
+          win)
+      (setq win (get-buffer-window))
+      (shrink-window-if-larger-than-buffer win)
       (goto-char (point-min))
       (end-of-line)
       (goto-char (point-min)))))
@@ -1032,44 +1107,22 @@ Optional argument KEYS-VALUES specifies content of new line."
 (defun org-index--goto-focus ()
   "Goto focus node, one after the other."
   (if org-index--ids-focused-nodes
-      (let (again last-id following-id in-last-id target-id explain marker
-                    (repeat-clause "") (bottom-clause "") (heading-is-clause ""))
+      (let (this-id target-id following-id last-id again explain marker)
         (setq again (and (eq this-command last-command)
                          (eq org-index--this-command org-index--last-command)))
         (setq last-id (or org-index--id-last-goto-focus
                           (car (last org-index--ids-focused-nodes))))
+        (setq this-id (org-id-get))
         (setq following-id (car (or (cdr-safe (member last-id
                                                       (append org-index--ids-focused-nodes
                                                               org-index--ids-focused-nodes)))
                                     org-index--ids-focused-nodes)))
-        (setq in-last-id (string= (ignore-errors (org-id-get)) last-id))
-
-        (setq target-id (if (or again in-last-id) following-id last-id))
-        
-        (set-transient-map (let ((map (make-sparse-keymap)))
-                             (define-key map (vector ?f)
-                               (lambda () (interactive)
-                                 (setq this-command last-command)
-                                 (setq org-index--this-command org-index--last-command)
-                                 (message (concat (org-index--goto-focus) " (again)."))))
-                             (define-key map (vector ?h)
-                               (lambda () (interactive)
-                                 (org-with-limited-levels (org-back-to-heading))
-                                 (recenter 1)
-                                 (message "On heading.")))
-                             (define-key map (vector ?b)
-                               (lambda () (interactive)
-                                 (org-index--end-of-focused-node)
-                                 (recenter -1)
-                                 (message "At bottom.")))
-                             (define-key map (vector ?d)
-                               (lambda () (interactive)
-                                 (setq this-command last-command)
-                                 (org-index--delete-from-focus)
-                                 (org-index--persist-focused-nodes)
-                                 (message (concat  "Current node has been removed from list of focused nodes, " (org-index--goto-focus) "."))))
-                             map) t)
-        (setq repeat-clause "; type 'f' to repeat or 'd' to delete this node from list, 'h' goes to heading, 'b' to bottom of node")
+        (if again
+            (progn
+              (setq target-id following-id)
+              (setq explain "Jumped to next"))
+          (setq target-id last-id)
+          (setq explain "Jumped back to current"))
 
         (if (member target-id (org-index--ids-up-to-top))
             (setq explain "Staying below current")
@@ -1080,17 +1133,7 @@ Optional argument KEYS-VALUES specifies content of new line."
           (pop-to-buffer-same-window (marker-buffer marker))
           (goto-char (marker-position marker))
           (org-index--unfold-buffer)
-          (move-marker marker nil)
-          (when org-index-goto-bottom-after-focus
-            (setq bottom-clause "bottom of ")
-            (setq heading-is-clause (format ", heading is '%s'" (propertize (org-get-heading t t t t) 'face 'org-todo)))
-            (org-index--end-of-focused-node)
-            (org-reveal)
-            (recenter -1)))
-
-        (if (or again in-last-id)
-            (setq explain (format "Jumped to %snext" bottom-clause))
-          (setq explain (format "Jumped back to %scurrent" bottom-clause)))
+          (move-marker marker nil))
         
         (when org-index-clock-into-focus
           (if org-index--after-focus-timer (cancel-timer org-index--after-focus-timer))
@@ -1098,65 +1141,39 @@ Optional argument KEYS-VALUES specifies content of new line."
           (setq org-index--after-focus-timer
                 (run-at-time org-index--after-focus-delay nil
                              (lambda ()
-                               (when (string= org-index--after-focus-context (ignore-errors (org-id-get)))
-                                 (save-window-excursion
-                                   (save-excursion
-                                     (org-id-goto org-index--after-focus-context)
-                                     (org-clock-in)
-                                     (org-index--update-line org-index--after-focus-context t)
-                                     (setq org-index--after-focus-context nil)
-                                     (cancel-timer org-index--after-focus-timer))))))))
+                               (if org-index--after-focus-context
+                                   (if org-index-clock-into-focus 
+                                       (save-excursion
+                                         (org-id-goto org-index--after-focus-context)
+                                         (org-clock-in)))
+                                 (org-index--update-line org-index--after-focus-context t)
+                                 (setq org-index--after-focus-context nil))))))
         (setq org-index--id-last-goto-focus target-id)
-        (concat
-         (if (cdr org-index--ids-focused-nodes)
-             (format "%s focus node (out of %d)%s"
-                     explain
-                     (length org-index--ids-focused-nodes)
-                     heading-is-clause)
-           (format "Jumped to %ssingle focus-node%s" bottom-clause heading-is-clause))
-         repeat-clause))
+        (if (cdr org-index--ids-focused-nodes)
+            (format "%s focus node (out of %d)"
+                    explain
+                    (length org-index--ids-focused-nodes))
+          "Jumped to single focus-node"))
       "No nodes in focus, use set-focus"))
 
 
-(defun org-index--end-of-focused-node ()
-  "Goto end of focused nodes, ignoring inline-tasks but stopping at first child."
-  (let (level (pos (point)))
-    (when (ignore-errors (org-with-limited-levels (org-back-to-heading)))
-      (setq level (outline-level))
-      (forward-char 1)
-      (if (and (org-with-limited-levels (re-search-forward org-outline-regexp-bol nil t))
-               (> (outline-level) level))
-          (progn        ; landed on child node
-            (goto-char (match-beginning 0))
-            (forward-line -1))
-        (goto-char pos) ; landed on next sibling or end of buffer
-        (org-with-limited-levels
-         (org-end-of-subtree nil t)
-         (when (org-at-heading-p)
-           (forward-line -1))))
-      (beginning-of-line))))
-
-
 (defun org-index--more-focus-commands ()
   "More commands for handling focused nodes."
   (let (id text more-text char prompt ids-up-to-top)
 
-    (setq prompt (format "Please specify action on the list of %s focused nodes: set, append, delete, restore (s,a,d,r or ? for short help) - "
-                         (length org-index--ids-focused-nodes)))
-    (while (not (memq char (list ?s ?a ?d ?r)))
+    (setq prompt "Please specify action on the list focused nodes: set, append, delete (s,a,d or ? for short help) - ")
+    (while (not (memq char (list ?s ?a ?d)))
         (setq char (read-char prompt))
-        (setq prompt "Actions on list of focused nodes:  s)et single focus on this node,  a)ppend this node to list,  d)elete this node from list,  r)estore previous list of focused nodes.  Please choose - "))
+        (setq prompt "Actions on list of focused nodes:  s)et single focus on this node,  a)ppend this node to list,  d)elete this node from list.  Please choose - "))
     (setq text
           (cond
 
            ((eq char ?s)
             (setq id (org-id-get-create))
-            (setq org-index--ids-focused-nodes-saved org-index--ids-focused-nodes)
             (setq org-index--ids-focused-nodes (list id))
             (setq org-index--id-last-goto-focus id)
-            (org-index--update-line id t)
             (if org-index-clock-into-focus (org-clock-in))
-            "Focus has been set on current node (1 node in focus)")
+            "Focus has been set on current node%s (1 node in focus)")
 
            ((eq char ?a)
             (setq id (org-id-get-create))
@@ -1171,7 +1188,6 @@ Optional argument KEYS-VALUES specifies content of new line."
                                                 nil)
                                             x))
                                         org-index--ids-focused-nodes)))
-              (setq org-index--ids-focused-nodes-saved org-index--ids-focused-nodes)
               ;; remove parent, if already in list of focused nodes
               (setq ids-up-to-top (org-index--ids-up-to-top))
               (when (seq-intersection ids-up-to-top org-index--ids-focused-nodes)
@@ -1179,57 +1195,36 @@ Optional argument KEYS-VALUES specifies content of new line."
                 (setq more-text (concat more-text ", replacing its parent")))
               (setq org-index--ids-focused-nodes (cons id org-index--ids-focused-nodes)))
             (setq org-index--id-last-goto-focus id)
-            (org-index--update-line id t)
+	    (setq org-index--id-last-goto-focus id)
             (if org-index-clock-into-focus (org-clock-in))
             "Current node has been appended to list of focused nodes%s (%d node%s in focus)")
 
            ((eq char ?d)
-            (org-index--delete-from-focus)
-            (concat "Current node has been removed from list of focused nodes%s (%d node%s in focus), " (org-index--goto-focus) "."))
-
-           ((eq char ?r)
-            (if org-index--ids-focused-nodes-saved
-                (let (txt)
-                  (setq txt (format "Discarded current list of focused %d focused node%s and restored previous list; now %%s%%d node%%s in focus" (length org-index--ids-focused-nodes-saved) (if (cdr org-index--ids-focused-nodes-saved) "s" "")))
-                  (setq org-index--ids-focused-nodes org-index--ids-focused-nodes-saved)
-                  txt)
-              "No saved list of focused nodes to restore, nothing to do"))))
-
-    (org-index--persist-focused-nodes)
+            (setq id (org-id-get))
+            (if (and id  (member id org-index--ids-focused-nodes))
+                (progn
+                  (setq org-index--id-last-goto-focus
+                        (or (car-safe (cdr-safe (member id (reverse (append org-index--ids-focused-nodes
+                                                                            org-index--ids-focused-nodes)))))
+                            org-index--id-last-goto-focus))
+                  (setq org-index--ids-focused-nodes (delete id org-index--ids-focused-nodes))
+		  (setq org-index--id-last-goto-focus nil)
+                  "Current node has been removed from list of focused nodes%s (%d node%s in focus)")
+              "Current node has not been in list of focused nodes%s (%d node%s in focus)"))))
+    
+    (with-current-buffer org-index--buffer
+      (org-entry-put org-index--point "ids-focused-nodes" (string-join org-index--ids-focused-nodes " ")))
     
     (format text (or more-text "") (length org-index--ids-focused-nodes) (if (cdr org-index--ids-focused-nodes) "s" ""))))
 
 
-(defun org-index--persist-focused-nodes ()
-  "Write list of focused nodes to property."
-  (with-current-buffer org-index--buffer
-    (org-entry-put org-index--point "ids-focused-nodes" (string-join org-index--ids-focused-nodes " "))))
-
-
-(defun org-index--delete-from-focus ()
-  "Delete current node from list of focused nodes."
-  (let (id)
-    (setq id (org-id-get))
-    (if (and id (member id org-index--ids-focused-nodes))
-        (progn
-          (setq org-index--id-last-goto-focus
-                (or (car-safe (cdr-safe (member id (reverse (append org-index--ids-focused-nodes
-                                                                    org-index--ids-focused-nodes)))))
-                    org-index--id-last-goto-focus))
-          (setq org-index--ids-focused-nodes-saved org-index--ids-focused-nodes)
-          (setq org-index--ids-focused-nodes (delete id org-index--ids-focused-nodes))
-          (setq org-index--id-last-goto-focus nil)
-          "Current node has been removed from list of focused nodes%s (%d node%s in focus)")
-      "Current node has not been in list of focused nodes%s (%d node%s in focus)")))
-
-
 (defun org-index--ids-up-to-top ()
-  "Get list of all ids from current node up to top level."
+  "Get list of all ids from current node up to top level"
   (when (string= major-mode "org-mode")
     (let (ancestors id level start-level)
       (save-excursion
         (ignore-errors
-          (org-with-limited-levels (org-back-to-heading))
+          (outline-back-to-heading)
           (setq id (org-id-get))
           (if id (setq ancestors (cons id ancestors)))
           (setq start-level (org-outline-level))
@@ -1573,8 +1568,7 @@ Optional argument CHECK-SORT-MIXED triggers resorting if mixed and stale."
 
   (let (initial-point
         end-of-headings
-        start-of-headings
-        max-ref-field)
+        start-of-headings)
 
     (unless num-lines-to-format (setq num-lines-to-format 0))
 
@@ -1684,7 +1678,7 @@ Optional argument CHECK-SORT-MIXED triggers resorting if mixed and stale."
   "One-time migration: No property; need to go through whole table once to find max."
   (org-index--go-below-hline)
   (let ((max-ref-num 0)
-        ref-field ref-num)
+        ref-field ref-num ref)
     (message "One-time migration to set index-property maxref...")
     (while (org-at-table-p)
       (setq ref-field (org-index--get-or-set-field 'ref))
@@ -2108,9 +2102,13 @@ specify flag TEMPORARY for th new table temporary, maybe COMPARE it with existin
 
 (defun org-index--unfold-buffer ()
   "Helper function to unfold buffer."
-  (org-show-context 'tree)
-  (org-reveal '(4))
-  (recenter 1))
+  (org-show-context)
+  (org-show-subtree)
+  (recenter 1)
+  (save-excursion
+    (org-back-to-heading)
+    (forward-line) ;; on property drawer
+    (org-cycle)))
 
 
 (defun org-index--update-line (&optional id-or-pos no-error)
@@ -2388,7 +2386,7 @@ CREATE-REF and TAG-WITH-REF if given."
     (org-index--save-positions)
     (unless (or org-index--within-index-node
                 org-index--within-occur)
-      (org-with-limited-levels (org-back-to-heading)))
+      (org-back-to-heading))
     
     ;; try to do the same things from within index and from outside
     (if org-index--within-index-node
@@ -2605,7 +2603,7 @@ Optional argument DEFAULTS gives default values."
     (org-index--save-positions)
     (unless (or org-index--within-index-node
                 org-index--within-occur)
-      (org-with-limited-levels (org-back-to-heading)))
+      (org-back-to-heading))
     
     ;; Collect information: What should be deleted ?
     (if (or org-index--within-occur
@@ -3033,15 +3031,10 @@ If OTHER in separate window."
 
       ;; highlight words
       (mapc (lambda (w) (unless (or (not w) (string= w ""))
-                     (highlight-regexp
-                      (if (string= w (downcase w))
-                          (apply 'concat (mapcar (lambda (c) (if (string-match "[[:alpha:]]" (char-to-string c))
-                                                            (format "[%c%c]" (downcase c) (upcase c))
-                                                          (char-to-string c)))
-                                                 (regexp-quote w)))
-                        (regexp-quote w)) 'isearch)))
+                     (let ((case-fold-search (not (string= w (downcase w)))))
+                       (highlight-regexp (regexp-quote w) 'isearch))))
             (cons word words))
-      
+
       (setq buffer-read-only t)
 
       ;; install keyboard-shortcuts
@@ -3099,7 +3092,7 @@ If OTHER in separate window."
 
 
 (defun org-index--occur-end-of-visible ()
-  "End of visible stretch during occur."
+  "End of visible stretch during occur"
   (if org-index--occur-stack
       (cdr (assoc :end-of-visible (car org-index--occur-stack)))
     (point-max)))

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

@@ -374,7 +374,6 @@ org-notify window.  Mostly copied from `appt-select-lowest-window'."
               :title     (plist-get plist :heading)
               :body      (org-notify-body-text plist)
               :timeout   (if duration (* duration 1000))
-              :urgency   (plist-get plist :urgency)
               :actions   org-notify-actions
               :on-action 'org-notify-on-action-notify)))
     (setq org-notify-on-action-map

File diff suppressed because it is too large
+ 0 - 21235
contrib/manual.org


File diff suppressed because it is too large
+ 19580 - 0
contrib/orgmanual.org


+ 213 - 254
doc/org.texi

@@ -355,6 +355,7 @@ Document structure
 * Drawers::                     Tucking stuff away
 * Blocks::                      Folding blocks
 * Footnotes::                   How footnotes are defined in Org's syntax
+* Orgstruct mode::              Structure editing outside Org
 * Org syntax::                  Formal description of Org's syntax
 
 Visibility cycling
@@ -748,7 +749,7 @@ Specific header arguments
 Miscellaneous
 
 * Completion::                  M-TAB guesses completions
-* Structure templates::         Quick insertion of structural elements
+* Easy templates::              Quick insertion of structural elements
 * Speed keys::                  Electric commands at the beginning of a headline
 * Code evaluation security::    Org mode files evaluate inline code
 * Customization::               Adapting Org to changing tastes
@@ -784,6 +785,7 @@ Tables and lists in arbitrary syntax
 * Radio tables::                Sending and receiving radio tables
 * A @LaTeX{} example::          Step by step, almost a tutorial
 * Translator functions::        Copy and modify
+* Radio lists::                 Sending and receiving lists
 
 MobileOrg
 
@@ -1158,6 +1160,7 @@ edit the structure of the document.
 * Drawers::                     Tucking stuff away
 * Blocks::                      Folding blocks
 * Footnotes::                   How footnotes are defined in Org's syntax
+* Orgstruct mode::              Structure editing outside Org
 * Org syntax::                  Formal description of Org's syntax
 @end menu
 
@@ -1987,6 +1990,41 @@ a separate window.  The window can be closed by pressing @kbd{C-c '}.
 
 @end table
 
+@node Orgstruct mode
+@section The Orgstruct minor mode
+@cindex Orgstruct mode
+@cindex minor mode for structure editing
+
+If you like the intuitive way the Org mode structure editing and list
+formatting works, you might want to use these commands in other modes like
+Text mode or Mail mode as well.  The minor mode @code{orgstruct-mode} makes
+this possible.   Toggle the mode with @kbd{M-x orgstruct-mode RET}, or
+turn it on by default, for example in Message mode, with one of:
+
+@lisp
+(add-hook 'message-mode-hook 'turn-on-orgstruct)
+(add-hook 'message-mode-hook 'turn-on-orgstruct++)
+@end lisp
+
+When this mode is active and the cursor is on a line that looks to Org like a
+headline or the first line of a list item, most structure editing commands
+will work, even if the same keys normally have different functionality in the
+major mode you are using.  If the cursor is not in one of those special
+lines, Orgstruct mode lurks silently in the shadows.
+
+When you use @code{orgstruct++-mode}, Org will also export indentation and
+autofill settings into that mode, and detect item context after the first
+line of an item.
+
+@vindex orgstruct-heading-prefix-regexp
+You can also use Org structure editing to fold and unfold headlines in
+@emph{any} file, provided you defined @code{orgstruct-heading-prefix-regexp}:
+the regular expression must match the local prefix to use before Org's
+headlines.  For example, if you set this variable to @code{";; "} in Emacs
+Lisp files, you will be able to fold and unfold headlines in Emacs Lisp
+commented lines.  Some commands like @code{org-demote} are disabled when the
+prefix is set, but folding/unfolding will work correctly.
+
 @node Org syntax
 @section Org syntax
 @cindex Org syntax
@@ -2256,91 +2294,60 @@ it off with
 @cindex narrow columns in tables
 @cindex alignment in tables
 
-The width of columns is automatically determined by the table editor.  The
-alignment of a column is determined automatically from the fraction of
-number-like versus non-number fields in the column.
-
-@vindex org-table-automatic-realign
-Editing a field may modify alignment of the table.  Moving a contiguous row
-or column---i.e., using @kbd{TAB} or @kbd{RET}---automatically re-aligns it.
-If you want to disable this behavior, set @code{org-table-automatic-realign}
-to @code{nil}.  In any case, you can always align manually a table:
-
-@table @asis
-@orgcmd{C-c C-c,org-table-align}
-Align the current table.
-@end table
-
-@vindex org-startup-align-all-tables
-@noindent
-Setting the option @code{org-startup-align-all-tables} re-aligns all tables
-in a file upon visiting it.  You can also set this option on a per-file basis
-with:
-
-@example
-#+STARTUP: align
-#+STARTUP: noalign
-@end example
+The width of columns is automatically determined by the table editor.  And
+also the alignment of a column is determined automatically from the fraction
+of number-like versus non-number fields in the column.
 
 Sometimes a single field or a few fields need to carry more text, leading to
-inconveniently wide columns.  Maybe you want to hide away several columns or
-display them with a fixed width, regardless of content, as shown in the
-following example.
+inconveniently wide columns.  Or maybe you want to make a table with several
+columns having a fixed width, regardless of content.  To set the width of
+a column, one field anywhere in the column may contain just the string
+@samp{<N>} where @samp{N} is an integer specifying the width of the column in
+characters.  The next re-align will then set the width of this column to this
+value.
 
 @example
 @group
-|---+---------------------+--------|           |---+-------@dots{}|@dots{}|
-|   | <6>                 |        |           |   | <6>   @dots{}|@dots{}|
-| 1 | one                 | some   |   ----\   | 1 | one   @dots{}|@dots{}|
-| 2 | two                 | boring |   ----/   | 2 | two   @dots{}|@dots{}|
-| 3 | This is a long text | column |           | 3 | This i@dots{}|@dots{}|
-|---+---------------------+--------|           |---+-------@dots{}|@dots{}|
+|---+------------------------------|               |---+--------|
+|   |                              |               |   | <6>    |
+| 1 | one                          |               | 1 | one    |
+| 2 | two                          |     ----\     | 2 | two    |
+| 3 | This is a long chunk of text |     ----/     | 3 | This=> |
+| 4 | four                         |               | 4 | four   |
+|---+------------------------------|               |---+--------|
 @end group
 @end example
 
-To set the width of a column, one field anywhere in the column may contain
-just the string @samp{<N>} where @samp{N} specifies the width as a number of
-characters.  You control displayed width of columns with the following tools:
-
-@table @asis
-@orgcmd{C-c @key{TAB},org-table-toggle-column-width}
-Shrink or expand current column.
-
-If a width cookie specifies a width W for the column, shrinking it displays
-the first W visible characters only.  Otherwise, the column is shrunk to
-a single character.
-
-When called before the first column or after the last one, ask for a list of
-column ranges to operate on.
-
-@orgcmd{C-u C-c @key{TAB},org-table-shrink}
-Shrink all columns with a column width.  Expand the others.
-
-@orgcmd{C-u C-u C-c @key{TAB},org-table-expand}
-Expand all columns.
-@end table
-
-To see the full text of a shrunk field, hold the mouse over it---a tool-tip
-window then shows the full content.  Alternatively @kbd{C-h .}
-(@code{display-local-help}) reveals the full content.  For convenience, any
-change to a shrunk column expands it.
+@noindent
+Fields that are wider become clipped and end in the string @samp{=>}.
+Note that the full text is still in the buffer but is hidden.
+To see the full text, hold the mouse over the field---a tool-tip window
+will show the full content.  To edit such a field, use the command
+@kbd{C-c `} (that is @kbd{C-c} followed by the grave accent).  This will
+open a new window with the full field.  Edit it and finish with @kbd{C-c
+C-c}.
 
-@vindex org-startup-shrink-all-tables
-Setting the option @code{org-startup-shrink-all-tables} shrinks all columns
-containing a width cookie in a file the moment it is visited.  You can also
-set this option on a per-file basis with:
+@vindex org-startup-align-all-tables
+When visiting a file containing a table with narrowed columns, the
+necessary character hiding has not yet happened, and the table needs to
+be aligned before it looks nice.  Setting the option
+@code{org-startup-align-all-tables} will realign all tables in a file
+upon visiting, but also slow down startup.  You can also set this option
+on a per-file basis with:
 
 @example
-#+STARTUP: shrink
+#+STARTUP: align
+#+STARTUP: noalign
 @end example
 
 If you would like to overrule the automatic alignment of number-rich columns
 to the right and of string-rich columns to the left, you can use @samp{<r>},
-@samp{<c>} or @samp{<l>} in a similar fashion.  You may also combine
-alignment and field width like this: @samp{<r10>}.
+@samp{<c>}@footnote{Centering does not work inside Emacs, but it does have an
+effect when exporting to HTML.} or @samp{<l>} in a similar fashion.  You may
+also combine alignment and field width like this: @samp{<r10>}.
 
-Lines which only contain these formatting cookies are removed automatically
-upon exporting the document.
+Lines which only contain these formatting cookies will be removed
+automatically when exporting the document.
 
 @node Column groups
 @section Column groups
@@ -6370,16 +6377,16 @@ Deadlines and scheduled items produce entries in the agenda when they are
 over-due, so it is important to be able to mark such an entry as completed
 once you have done so.  When you mark a DEADLINE or a SCHEDULE with the TODO
 keyword DONE, it will no longer produce entries in the agenda.  The problem
-with this is, however, is that then also the @emph{next} instance of the
+with this is, however, that then also the @emph{next} instance of the
 repeated entry will not be active.  Org mode deals with this in the following
-way: When you try to mark such an entry as DONE (using @kbd{C-c C-t}), it
-will shift the base date of the repeating timestamp by the repeater interval,
-and immediately set the entry state back to TODO@footnote{In fact, the target
-state is taken from, in this sequence, the @code{REPEAT_TO_STATE} property,
-the variable @code{org-todo-repeat-to-state} if it is a string, the previous
-TODO state if @code{org-todo-repeat-to-state} is @code{t} or the first state
-of the TODO state sequence.}.  In the example above, setting the state to
-DONE would actually switch the date like this:
+way: When you try to mark such an entry DONE (using @kbd{C-c C-t}), it will
+shift the base date of the repeating timestamp by the repeater interval, and
+immediately set the entry state back to TODO@footnote{In fact, the target
+state is taken from, in this sequence, the @code{REPEAT_TO_STATE} property or
+the variable @code{org-todo-repeat-to-state}.  If neither of these is
+specified, the target state defaults to the first state of the TODO state
+sequence.}.  In the example above, setting the state to DONE would actually
+switch the date like this:
 
 @example
 ** TODO Pay the rent
@@ -7468,62 +7475,6 @@ same directory for attachments as the parent does.
 @end table
 @end table
 
-@menu
-* Attach from dired::          Use dired to attach
-@end menu
-
-@node Attach from dired
-@subsection Attach from dired
-@cindex attach from dired
-
-It's possible to attach files to a subtree from a @command{dired} window in
-Emacs.  This might be convenient in some cases.
-
-To use this feature have one window in @command{dired} mode containing the
-file (or files) to be attached and another window with point in the subtree
-that shall get the attachments.
-
-In the @command{dired} window with point on a file @kbd{M-x
-org-attach-dired-to-subtree} attaches the file to the subtree using the
-attachment method set by variable @code{org-attach-method}.  When files are
-marked in the @command{dired} window then all marked files get attached.
-
-Add the following lines to the Emacs config to have binding @kbd{C-c C-x a}
-in @command{dired} windows for attaching.
-
-@smalllisp
-(add-hook
- 'dired-mode-hook
- (lambda ()
-   (define-key dired-mode-map (kbd "C-c C-x a") #'org-attach-dired-to-subtree))))
-@end smalllisp
-
-The following code shows how to bind further attachment methods.
-
-@lisp
-(add-hook
- 'dired-mode-hook
- (lambda ()
-   (define-key dired-mode-map (kbd "C-c C-x a") #'org-attach-dired-to-subtree)
-   (define-key dired-mode-map (kbd "C-c C-x c")
-     (lambda () (interactive)
-       (let ((org-attach-method 'cp))
-         (call-interactively #'org-attach-dired-to-subtree))))
-   (define-key dired-mode-map (kbd "C-c C-x m")
-     (lambda () (interactive)
-       (let ((org-attach-method 'mv))
-         (call-interactively #'org-attach-dired-to-subtree))))
-   (define-key dired-mode-map (kbd "C-c C-x h")
-     (lambda () (interactive)
-       (let ((org-attach-method 'ln))
-         (call-interactively #'org-attach-dired-to-subtree))))
-   (define-key dired-mode-map (kbd "C-c C-x s")
-     (lambda () (interactive)
-       (let ((org-attach-method 'lns))
-         (call-interactively #'org-attach-dired-to-subtree))))))
-@end lisp
-
-
 @node RSS feeds
 @section RSS feeds
 @cindex RSS feeds
@@ -9350,8 +9301,7 @@ drag forward by that many lines.
 @vindex org-agenda-bulk-custom-functions
 
 @orgcmd{m,org-agenda-bulk-mark}
-Mark the entry at point for bulk action.  If there is an active region in the
-agenda, mark the entries in the region.  With numeric prefix argument, mark
+Mark the entry at point for bulk action.  With numeric prefix argument, mark
 that many successive entries.
 @c
 @orgcmd{*,org-agenda-bulk-mark-all}
@@ -10125,16 +10075,18 @@ look like the fontified Emacs buffer@footnote{This works automatically for
 the HTML back-end (it requires version 1.34 of the @file{htmlize.el} package,
 which you need to install).  Fontified code chunks in @LaTeX{} can be
 achieved using either the
-@url{https://www.ctan.org/tex-archive/macros/latex/contrib/listings/?lang=en,
-listings,} or the @url{https://github.com/gpoore/minted, minted,} package.
+@url{https://www.ctan.org/tex-archive/macros/latex/contrib/listings/?lang=en, listings,}
+or the
+@url{https://github.com/gpoore/minted, minted,} package.
 If you use minted or listing, you must load the packages manually, for
-example by adding the desired package to @code{org-latex-packages-alist}.
-Refer to @code{org-latex-listings} for details.}.  This is done with the
-@samp{src} block, where you also need to specify the name of the major mode
-that should be used to fontify the example@footnote{Code in @samp{src} blocks
-may also be evaluated either interactively or on export.  @xref{Working with
-source code}, for more information on evaluating code blocks.}, see
-@ref{Structure templates} for shortcuts to easily insert code blocks.
+example by adding the desired package to
+@code{org-latex-packages-alist}.  Refer to @code{org-latex-listings}
+for details.}.  This is done with the @samp{src} block, where you also need
+to specify the name of the major mode that should be used to fontify the
+example@footnote{Code in @samp{src} blocks may also be evaluated either
+interactively or on export.  @xref{Working with source code}, for more
+information on evaluating code blocks.}, see @ref{Easy templates} for
+shortcuts to easily insert code blocks.
 @cindex #+BEGIN_SRC
 
 @example
@@ -10200,8 +10152,9 @@ If the syntax for the label format conflicts with the language syntax, use a
 HTML export also allows examples to be published as text areas (@pxref{Text
 areas in HTML export}).
 
-Because the @code{#+BEGIN_...} @dots{} @code{#+END_...} patterns need to be
-added so often, a shortcut is provided (@pxref{Structure templates}).
+Because the @code{#+BEGIN_...} and @code{#+END_...} patterns need to be added
+so often, shortcuts are provided using the Easy templates facility
+(@pxref{Easy templates}).
 
 @table @kbd
 @kindex C-c '
@@ -10837,10 +10790,8 @@ Toggle inclusion of inlinetasks (@code{org-export-with-inlinetasks}).
 Toggle section-numbers (@code{org-export-with-section-numbers}).  When set to
 number @samp{n}, Org numbers only those headlines at level @samp{n} or above.
 Setting @code{UNNUMBERED} property to non-@code{nil} disables numbering of
-the heading.  Since subheadings inherit from this property, it affects their
-numbering, too.  Moreover, when the value is @samp{notoc}, the unnumbered
-headline does not appear in the table of contents either (@pxref{Table of
-contents}).
+a heading.  Since subheadings inherit from this property, it affects their
+numbering, too.
 
 @item p:
 @vindex org-export-with-planning
@@ -10924,42 +10875,22 @@ settings that cannot be changed using keywords.
 @cindex list of tables
 @cindex list of listings
 
-@cindex @samp{toc} in OPTIONS keyword
+@cindex #+TOC
 @vindex org-export-with-toc
-The table of contents includes all headlines in the document.  Its depth is
-therefore the same as the headline levels in the file.  If you need to use
-a different depth, or turn it off entirely, set the
-@code{org-export-with-toc} variable accordingly.  You can achieve the same on
-a per file basis, using the following @samp{toc} item in @samp{#+OPTIONS}
-keyword:
+Org normally inserts the table of contents directly before the first headline
+of the file.  Org sets the TOC depth the same as the headline levels in the
+file.  Use a lower number for lower TOC depth.  To turn off TOC entirely, use
+@code{nil}.  This is configured in the @code{org-export-with-toc} variable or
+as keywords in an Org file as:
 
 @example
 #+OPTIONS: toc:2          @r{only include two levels in TOC}
 #+OPTIONS: toc:nil        @r{no default TOC at all}
 @end example
 
-@cindex excluding entries from table of contents
-@cindex table of contents, exclude entries
-Org includes both numbered and unnumbered headlines in the table of
-contents@footnote{At the moment, some export back-ends do not obey this
-specification.  For example, @LaTeX{} export excludes every unnumbered
-headline from the table of contents.}.  If you need to exclude an unnumbered
-headline, along with all its children, set the @samp{UNNUMBERED} property to
-@samp{notoc} value.
-
-@example
-* Subtree not numbered, not in table of contents either
-  :PROPERTIES:
-  :UNNUMBERED: notoc
-  :END:
-@end example
-
-@cindex #+TOC
-Org normally inserts the table of contents directly before the first headline
-of the file.  To move the table of contents to a different location, first
-turn off the default with @code{org-export-with-toc} variable or with
-@code{#+OPTIONS: toc:nil}.  Then insert @code{#+TOC: headlines N} at the
-desired location(s).
+To move the table of contents to a different location, first turn off the
+default with @code{org-export-with-toc} variable or with @code{#+OPTIONS:
+toc:nil}.  Then insert @code{#+TOC: headlines N} at the desired location(s).
 
 @example
 #+OPTIONS: toc:nil        @r{no default TOC}
@@ -10978,8 +10909,8 @@ compatibility issues, @code{titletoc} has to be loaded @emph{before}
 variable.
 
 @example
-* Section
-#+TOC: headlines 1 local @r{insert local TOC, with direct children only}
+* Section #+TOC: headlines 1 local @r{insert local TOC, with direct children
+only}
 @end example
 
 Use the @code{TOC} keyword to generate list of tables (resp.@: all listings)
@@ -11097,19 +11028,14 @@ options.
 Org comes with following pre-defined macros:
 
 @table @code
-@item @{@{@{keyword(@var{NAME})@}@}@}
-@itemx @{@{@{title@}@}@}
+@item @{@{@{title@}@}@}
 @itemx @{@{@{author@}@}@}
 @itemx @{@{@{email@}@}@}
-@cindex keyword, macro
 @cindex title, macro
 @cindex author, macro
 @cindex email, macro
-The @samp{keyword} macro collects all values from @var{NAME} keywords
-throughout the buffer, separated with white space.  @samp{title},
-@samp{author} and @samp{email} macros are shortcuts for, respectively,
-@samp{@{@{@{keyword(TITLE)@}@}@}}, @samp{@{@{@{keyword(AUTHOR)@}@}@}} and
-@samp{@{@{@{keyword(EMAIL)@}@}@}}.
+Org replaces these macro references with available information at the time of
+export.
 
 @item @{@{@{date@}@}@}
 @itemx @{@{@{date(@var{FORMAT})@}@}@}
@@ -11967,13 +11893,9 @@ options can be configured via @code{org-html-mathjax-options}, or in the
 buffer.  For example, with the following settings,
 @smallexample
 #+HTML_MATHJAX: align: left indent: 5em tagside: left font: Neo-Euler
-#+HTML_MATHJAX: cancel.js noErrors.js
 @end smallexample
 equation labels will be displayed on the left margin and equations will be
-five ems from the left margin.  In addition, it loads the two MathJax
-extensions @samp{cancel.js} and @samp{noErrors.js}@footnote{See
-@uref{http://docs.mathjax.org/en/latest/tex.html#tex-extensions, TeX and
-LaTeX extensions} in the @uref{http://docs.mathjax.org, MathJax manual} to learn about extensions.}.
+five ems from the left margin.
 
 @noindent See the docstring of
 @code{org-html-mathjax-options} for all supported variables.  The MathJax
@@ -14962,10 +14884,10 @@ retrieve additional information about published documents.
 @item @code{:sitemap-function}
 @tab Plug-in function to use for generation of the sitemap.  It is called
 with two arguments: the title of the site-map and a representation of the
-files and directories involved in the project as a nested list, which can
-further be transformed using @code{org-list-to-generic},
-@code{org-list-to-subtree} and alike.  Default value generates a plain list
-of links to all files in the project.
+files and directories involved in the project as a radio list (@pxref{Radio
+lists}).  The latter can further be transformed using
+@code{org-list-to-generic}, @code{org-list-to-subtree} and alike.  Default
+value generates a plain list of links to all files in the project.
 
 @item @code{:sitemap-sort-folders}
 @tab Where folders should appear in the sitemap.  Set this to @code{first}
@@ -15267,12 +15189,12 @@ A @samp{src} block conforms to this structure:
 #+END_SRC
 @end example
 
-Do not be put-off by having to remember the source block syntax.  Org mode
-offers a command for wrapping existing text in a block (@pxref{Structure
-templates}).  Org also works with other completion systems in Emacs, some of
-which predate Org and have custom domain-specific languages for defining
-templates.  Regular use of templates reduces errors, increases accuracy, and
-maintains consistency.
+Org mode's templates system (@pxref{Easy templates}) speeds up creating
+@samp{src} code blocks with just three keystrokes.  Do not be put-off by
+having to remember the source block syntax.  Org also works with other
+completion systems in Emacs, some of which predate Org and have custom
+domain-specific languages for defining templates.  Regular use of templates
+reduces errors, increases accuracy, and maintains consistency.
 
 @cindex source code, inline
 An inline code block conforms to this structure:
@@ -16604,8 +16526,8 @@ Do things when True
 @cindex @code{:noweb-ref}, src header argument
 
 When expanding Noweb style references, Org concatenates @samp{src} code
-blocks by matching the reference name to either the code block name or, if
-none is found, to the @code{:noweb-ref} header argument.
+blocks by matching the reference name to either the code block name or the
+@code{:noweb-ref} header argument.
 
 For simple concatenation, set this @code{:noweb-ref} header argument at the
 sub-tree or file level.  In the example Org file shown next, the body of the
@@ -17188,6 +17110,11 @@ Note that now the expansion contains the @emph{results} of the code block
 100
 @end example
 
+For faster tangling of large Org mode files, set
+@code{org-babel-use-quick-and-dirty-noweb-expansion} variable to @code{t}.
+The speedup comes at the expense of not correctly resolving inherited values
+of the @code{:noweb-ref} header argument.
+
 
 @node Key bindings and useful functions
 @section Key bindings and useful functions
@@ -17323,7 +17250,7 @@ emacs -Q --batch --eval "
 
 @menu
 * Completion::                  M-TAB guesses completions
-* Structure templates::         Quick insertion of structural elements
+* Easy templates::              Quick insertion of structural elements
 * Speed keys::                  Electric commands at the beginning of a headline
 * Code evaluation security::    Org mode files evaluate inline code
 * Customization::               Adapting Org to changing tastes
@@ -17398,53 +17325,46 @@ If your desktop intercepts the combo @kbd{M-@key{TAB}} to switch windows, use
 environment.
 @end table
 
-@node Structure templates
-@section Structure templates
+@node Easy templates
+@section Easy templates
 @cindex template insertion
 @cindex insertion, of templates
 
-With just a few keystrokes, it is possible to insert empty structural blocks,
-such as @samp{#+BEGIN_SRC} @dots{} @samp{#+END_SRC}, or to wrap existing text
-in such a block.
+With just a few keystrokes, Org's easy templates inserts empty pairs of
+structural elements, such as @code{#+BEGIN_SRC} and @code{#+END_SRC}.  Easy
+templates use an expansion mechanism, which is native to Org, in a process
+similar to @file{yasnippet} and other Emacs template expansion packages.
 
-@table @kbd
-@orgcmd{C-c C-x w,org-insert-structure-template}
-Prompt for a type of block structure, and insert the block at point.  If the
-region is active, it is wrapped in the block.  First prompts the user for
-a key, which is used to look up a structure type from the values below.  If
-the key is @key{TAB}, the user is prompted to enter a type.
-@end table
+@kbd{<} @kbd{s} @kbd{@key{TAB}} expands to a @samp{src} code block.
 
-@vindex org-structure-template-alist
-Available structure types are defined in @code{org-structure-template-alist},
-see the docstring for adding or changing values.
+@kbd{<} @kbd{l} @kbd{@key{TAB}} expands to:
 
-@cindex Tempo
-@cindex Template expansion
-@cindex template insertion
-@cindex insertion, of templates
-@vindex org-tempo-keywords-alist
-@vindex org-structure-template-alist
-Org Tempo expands snippets to structures defined in
-@code{org-structure-template-alist} and @code{org-tempo-keywords-alist}.  For
-example, @code{org-tempo} expands @kbd{< s @key{TAB}} to a code block.
-Enable it by customizing @code{org-modules} or add @code{(require
-'org-tempo)} to your Emacs init file@footnote{For more information, please
-refer to the commentary section in @file{org-tempo.el}.}.
-
-@multitable @columnfractions 0.2 0.8
-@item @kbd{c} @tab @samp{#+BEGIN_CENTER}
-@item @kbd{C} @tab @samp{#+BEGIN_COMMENT}
-@item @kbd{e} @tab @samp{#+BEGIN_EXAMPLE}
-@item @kbd{E} @tab @samp{#+BEGIN_EXPORT}
-@item @kbd{a} @tab @samp{#+BEGIN_EXPORT ascii}
-@item @kbd{h} @tab @samp{#+BEGIN_EXPORT html}
-@item @kbd{l} @tab @samp{#+BEGIN_EXPORT latex}
-@item @kbd{s} @tab @samp{#+BEGIN_SRC}
-@item @kbd{q} @tab @samp{#+BEGIN_QUOTE}
-@item @kbd{v} @tab @samp{#+BEGIN_VERSE}
+#+BEGIN_EXPORT latex
+
+#+END_EXPORT
+
+Org comes with these pre-defined easy templates:
+
+@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{C} @tab @code{#+BEGIN_COMMENT ... #+END_COMMENT}
+@item @kbd{l} @tab @code{#+BEGIN_EXPORT latex ... #+END_EXPORT}
+@item @kbd{L} @tab @code{#+LATEX:}
+@item @kbd{h} @tab @code{#+BEGIN_EXPORT html ... #+END_EXPORT}
+@item @kbd{H} @tab @code{#+HTML:}
+@item @kbd{a} @tab @code{#+BEGIN_EXPORT ascii ... #+END_EXPORT}
+@item @kbd{A} @tab @code{#+ASCII:}
+@item @kbd{i} @tab @code{#+INDEX:} line
+@item @kbd{I} @tab @code{#+INCLUDE:} line
 @end multitable
 
+More templates can added by customizing the variable
+@code{org-structure-template-alist}, whose docstring has additional details.
+
 @node Speed keys
 @section Speed keys
 @cindex speed keys
@@ -17635,8 +17555,9 @@ noindent   @r{start with @code{org-indent-mode} turned off}
 @end example
 
 @vindex org-startup-align-all-tables
-Aligns tables consistently upon visiting a file.  The corresponding variable
-is @code{org-startup-align-all-tables} with @code{nil} as default value.
+Aligns tables consistently upon visiting a file; useful for restoring
+narrowed table columns.  The corresponding variable is
+@code{org-startup-align-all-tables} with @code{nil} as default value.
 
 @cindex @code{align}, STARTUP keyword
 @cindex @code{noalign}, STARTUP keyword
@@ -17645,10 +17566,6 @@ align      @r{align all tables}
 noalign    @r{don't align tables on startup}
 @end example
 
-@vindex org-startup-shrink-all-tables
-Shrink table columns with a width cookie.  The corresponding variable is
-@code{org-startup-shrink-all-tables} with @code{nil} as default value.
-
 @vindex org-startup-with-inline-images
 Whether Org should automatically display inline images.  The corresponding
 variable is @code{org-startup-with-inline-images}, with a default value
@@ -18488,6 +18405,7 @@ list locally to another format, such as HTML, @LaTeX{} or Texinfo.
 * Radio tables::                Sending and receiving radio tables
 * A @LaTeX{} example::          Step by step, almost a tutorial
 * Translator functions::        Copy and modify
+* Radio lists::                 Sending and receiving lists
 @end menu
 
 @node Radio tables
@@ -18709,6 +18627,47 @@ parameters specified in the @samp{#+ORGTBL: SEND} line.  Please share your
 translator functions by posting them to the Org users mailing list,
 @email{emacs-orgmode@@gnu.org}.
 
+@node Radio lists
+@subsection Radio lists
+@cindex radio lists
+@cindex org-list-insert-radio-list
+
+Call the @code{org-list-insert-radio-list} function to insert a radio list
+template in HTML, @LaTeX{}, and Texinfo mode documents.  Sending and
+receiving radio lists works is the same as for radio tables (@pxref{Radio
+tables}) except for these differences:
+
+@cindex #+ORGLST
+@itemize @minus
+@item
+Orgstruct mode must be active.
+@item
+Use @code{ORGLST} keyword instead of @code{ORGTBL}.
+@item
+@kbd{C-c C-c} works only on the first list item.
+@end itemize
+
+Built-in translators functions are: @code{org-list-to-latex},
+@code{org-list-to-html} and @code{org-list-to-texinfo}.  They use the
+@code{org-list-to-generic} translator function.  See its documentation for
+parameters for accurate customizations of lists.  Here is a @LaTeX{} example:
+
+@example
+% BEGIN RECEIVE ORGLST to-buy
+% END RECEIVE ORGLST to-buy
+\begin@{comment@}
+#+ORGLST: SEND to-buy org-list-to-latex
+- a new house
+- a new computer
+  + a new keyboard
+  + a new mouse
+- a new life
+\end@{comment@}
+@end example
+
+@kbd{C-c C-c} on @samp{a new house} inserts the translated @LaTeX{} list
+in-between the BEGIN and END marker lines.
+
 @node Dynamic blocks
 @section Dynamic blocks
 @cindex dynamic blocks

+ 2 - 220
etc/ORG-NEWS

@@ -1,232 +1,13 @@
 ORG NEWS -- history of user-visible changes.   -*- mode: org; coding: utf-8 -*-
 
-#+STARTUP: overview
-
 #+LINK: doc https://orgmode.org/worg/doc.html#%s
-#+LINK: git https://orgmode.org/cgit.cgi/org-mode.git/commit/?id=%s
+#+LINK: git https://code.orgmode.org/bzg/org-mode/commit/%s
 
 Copyright (C) 2012-2018 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Org bug reports to mailto:emacs-orgmode@gnu.org.
 
-* Version 9.2
-** Incompatible changes
-*** Removal of OrgStruct mode mode and radio lists
-
-OrgStruct minor mode and radio lists mechanism (~org-list-send-list~
-and ~org-list-radio-lists-templates~) are removed from the code base.
-
-*** Change to Noweb expansion
-
-Expansion check =:noweb-ref= only if no matching named block is found
-in the buffer.  As a consequence, any =:noweb-ref= value matching the
-name of a source block in the buffer is ignored. A simple fix is to
-give every concerned source-block, including the named one, a new,
-unique, Noweb reference.
-
-#+BEGIN_SRC org
-  ,#+NAME: foo
-  ,#+BEGIN_SRC emacs-lisp
-    1
-  ,#+END_SRC
-
-  ,#+BEGIN_SRC emacs-lisp :noweb-ref foo
-    2
-  ,#+END_SRC
-
-  ,#+BEGIN_SRC emacs-lisp :noweb yes
-    <<foo>>
-  ,#+END_SRC
-#+END_SRC
-
-should become
-
-#+BEGIN_SRC org
-  ,#+NAME: foo
-  ,#+BEGIN_SRC emacs-lisp :noweb-ref bar
-    1
-  ,#+END_SRC
-
-  ,#+BEGIN_SRC emacs-lisp :noweb-ref bar
-    2
-  ,#+END_SRC
-
-  ,#+BEGIN_SRC emacs-lisp :noweb yes
-    <<bar>>
-  ,#+END_SRC
-#+END_SRC
-
-*** Change ~org-structure-template-alist~ value
-
-With the new template expansion mechanism (see
-[[*~org-insert-structure-template~]]), the variable changed its data type.
-See docstring for details.
-
-*** Change ~org-set-effort~ signature
-See docstring for details.
-*** Placeholders in =(eval ...)= macros are always strings
-
-Within =(eval ...)= macros, =$1=-like placeholders are always replaced
-with a string.  As a consequence, they must not be enclosed within
-quotes. As an illustration, consider the following, now valid,
-examples:
-
-#+begin_example
-  ,#+macro: join (eval (concat $1 $2))
-  ,#+macro: sum (eval (+ (string-to-number $1) (string-to-number $2)))
-
-  {{{join(a,b)}}} => ab
-  {{{sum(1,2)}}}  => 3
-#+end_example
-
-However, there is no change in non-eval macros:
-
-#+begin_example
-  ,#+macro: disp argument: $1
-
-  {{{disp(text)}}} => argument: text
-#+end_example
-
-*** =align= STARTUP value no longer narrow table columns
-
-Columns narrowing (or shrinking) is now dynamic. See [[*Dynamically
-narrow table columns]] for details. In particular, it is decoupled from
-aligning.
-
-If you need to automatically shrink columns upon opening an Org
-document, use =shrink= value instead, or in addition to align:
-
-#+BEGIN_EXAMPLE
-,#+STARTUP: align shrink
-#+END_EXAMPLE
-
-** New features
-*** Org Tempo may used for snippet expansion of structure template.
-See manual and the commentary section in ~org-tempo.el~ for details.
-*** Exclude unnumbered headlines from table of contents
-Set their =UNNUMBERED= property to the special =notoc= value.  See
-manual for details.
-*** ~org-archive~ functions update status cookies
-
-Archiving headers through ~org-archive-subtree~ and
-~org-archive-to-archive-sibling~ such as the ones listed below:
-
-#+BEGIN_SRC org
-  ,* Top [1/2]
-  ,** DONE Completed
-  ,** TODO Working
-#+END_SRC
-
-Will update the status cookie in the top level header.
-
-*** Disable =org-agenda-overriding-header= by setting to empty string
-
-The ~org-agenda-overriding-header~ inserted into agenda views can now
-be disabled by setting it to an empty string.
-
-*** Dynamically narrow table columns
-
-With ~C-c TAB~, it is now possible to narrow a column to the width
-specified by a width cookie in the column, or to 1 character if there
-is no such cookie.  The same keybinding expands a narrowed column to
-its previous state.
-
-Editing the column automatically expands the whole column to its full
-size.
-
-*** =org-columns-summary-types= entries can take an optional COLLECT function
-
-You can use this to make collection of a property from an entry
-conditional on another entry. E.g. given this configuration:
-
-#+BEGIN_SRC emacs-lisp
-  (defun custom/org-collect-confirmed (property)
-    "Return `PROPERTY' for `CONFIRMED' entries"
-    (let ((prop (org-entry-get nil property))
-	  (confirmed (org-entry-get nil "CONFIRMED")))
-      (if (and prop (string= "[X]" confirmed))
-	  prop
-	"0")))
-
-  (setq org-columns-summary-types
-	'(("X+" org-columns--summary-sum
-	   custom/org-collect-confirmed)))
-#+END_SRC
-
-You can have a file =bananas.org= containing:
-
-#+BEGIN_SRC org
-  ,#+columns: %ITEM %CONFIRMED %Bananas{+} %Bananas(Confirmed Bananas){X+}
-
-  ,* All shipments
-  ,** Shipment 1
-     :PROPERTIES:
-     :CONFIRMED: [X]
-     :Bananas:  4
-     :END:
-
-  ,** Shipment 2
-     :PROPERTIES:
-     :CONFIRMED: [ ]
-     :BANANAS:  7
-     :END:
-#+END_SRC
-
-... and when going to the top of that file and entering column view
-you should expect to see something like:
-
-| ITEM            | CONFIRMED | Bananas | Confirmed Bananas |
-|-----------------+-----------+---------+-------------------|
-| All shipments   |           |      11 |                 4 |
-| Shipment 1      | [X]       |       4 |                 4 |
-| Shipment 2      | [ ]       |       7 |                 7 |
-
-#+BEGIN_EXAMPLE
-  ,#+STARTUP: shrink
-#+END_EXAMPLE
-
-** New functions
-*** ~org-insert-structure-template~
-
-This function can be used to wrap existing text of Org elements in
-a #+BEGIN_FOO/#+END_FOO block.  Bound to C-c C-x w by default.
-
-*** ~org-export-excluded-from-toc-p~
-
-See docstring for details.
-
-*** ~org-timestamp-to-time~
-*** ~org-timestamp-from-string~
-*** ~org-timestamp-from-time~
-*** ~org-attach-dired-to-subtree~
-
-See docstring for details.
-
-** Removed functions
-*** ~org-try-structure-completion~
-Org Tempo may be used as a replacement.  See details above.
-** Removed variables
-
-*** org-babel-use-quick-and-dirty-noweb-expansion
-
-** Miscellaneous
-
-*** ~org-table-insert-column~ inserts a column to the right
-
-It used to insert it on the left.  With this change,
-~org-table-insert-column~ and ~org-table-delete-column~ are
-reciprocal.
-
-*** ~org-publish-resolve-external-link~ accepts a new optional argument.
-*** ~org-irc.el~ now supports exporting =irc:= links properly
-
-Previously, irc links were exported by ~ox-md~ and ~ox-html~ as normal
-file links, which lead to them being broken in web browsers. Now both
-of these exporters will properly export to =irc:= links, which will
-open properly in irc clients from web browsers.
-
-*** ~org-comment-dwim~ (bound to =M-;=) now comments headings, if point is on a heading
 * Version 9.1
 
 ** Incompatible changes
@@ -356,6 +137,7 @@ See docstring for details.
 =org-agenda-tags-column= can now be set to =auto=, which will
 automatically align tags to the right edge of the window.  This is now
 the default setting.
+
 *** New value for ~org-publish-sitemap-sort-folders~
 
 The new ~ignore~ value effectively allows toggling inclusion of

+ 112 - 105
lisp/ob-core.el

@@ -75,6 +75,7 @@
 (declare-function org-narrow-to-subtree "org" ())
 (declare-function org-next-block "org" (arg &optional backward block-regexp))
 (declare-function org-open-at-point "org" (&optional in-emacs reference-buffer))
+(declare-function org-outline-overlay-data "org" (&optional use-markers))
 (declare-function org-previous-block "org" (arg &optional block-regexp))
 (declare-function org-remove-indentation "org" (code &optional n))
 (declare-function org-reverse-string "org" (string))
@@ -91,6 +92,7 @@
 (declare-function org-uniquify "org" (list))
 (declare-function orgtbl-to-generic "org-table" (table params))
 (declare-function orgtbl-to-orgtbl "org-table" (table params))
+(declare-function outline-show-all "outline" ())
 (declare-function tramp-compat-make-temp-file "tramp-compat" (filename &optional dir-flag))
 
 (defgroup org-babel nil
@@ -575,10 +577,9 @@ the outer-most code block.")
 (defun org-babel-get-src-block-info (&optional light datum)
   "Extract information from a source block or inline source block.
 
-When optional argument LIGHT is non-nil, Babel does not resolve
-remote variable references; a process which could likely result
-in the execution of other code blocks, and do not evaluate Lisp
-values in parameters.
+Optional argument LIGHT does not resolve remote variable
+references; a process which could likely result in the execution
+of other code blocks.
 
 By default, consider the block at point.  However, when optional
 argument DATUM is provided, extract information from that parsed
@@ -609,9 +610,8 @@ a list with the following pattern:
 		       ;; properties applicable to its location within
 		       ;; the document.
 		       (org-with-point-at (org-element-property :begin datum)
-			 (org-babel-params-from-properties lang light))
-		       (mapcar (lambda (h)
-				 (org-babel-parse-header-arguments h light))
+			 (org-babel-params-from-properties lang))
+		       (mapcar #'org-babel-parse-header-arguments
 			       (cons (org-element-property :parameters datum)
 				     (org-element-property :header datum)))))
 	       (or (org-element-property :switches datum) "")
@@ -980,13 +980,24 @@ with a prefix argument then this is passed on to
 (defmacro org-babel-do-in-edit-buffer (&rest body)
   "Evaluate BODY in edit buffer if there is a code block at point.
 Return t if a code block was found at point, nil otherwise."
-  `(let ((org-src-window-setup 'switch-invisibly))
-     (when (and (org-babel-where-is-src-block-head)
+  (declare (debug (body)))
+  `(let* ((element (org-element-at-point))
+	  ;; This function is not supposed to move point.  However,
+	  ;; `org-edit-src-code' always moves point back into the
+	  ;; source block.  It is problematic if the point was before
+	  ;; the code, e.g., on block's opening line.  In this case,
+	  ;; we want to restore this location after executing BODY.
+	  (outside-position
+	   (and (<= (line-beginning-position)
+		    (org-element-property :post-affiliated element))
+		(point-marker)))
+	  (org-src-window-setup 'switch-invisibly))
+     (when (and (org-babel-where-is-src-block-head element)
 		(org-edit-src-code))
        (unwind-protect (progn ,@body)
-	 (org-edit-src-exit))
+	 (org-edit-src-exit)
+	 (when outside-position (goto-char outside-position)))
        t)))
-(def-edebug-spec org-babel-do-in-edit-buffer (body))
 
 (defun org-babel-do-key-sequence-in-edit-buffer (key)
   "Read key sequence and execute the command in edit buffer.
@@ -1415,27 +1426,24 @@ portions of results lines."
 	  (lambda () (add-hook 'change-major-mode-hook
 			  'org-babel-show-result-all 'append 'local)))
 
-(defun org-babel-params-from-properties (&optional lang no-eval)
-  "Retrieve source block parameters specified as properties.
-
-LANG is the language of the source block, as a string.  When
-optional argument NO-EVAL is non-nil, do not evaluate Lisp values
-in parameters.
-
-Return a list of association lists of source block parameters
+(defvar org-file-properties)
+(defun org-babel-params-from-properties (&optional lang)
+  "Retrieve parameters specified as properties.
+Return a list of association lists of source block params
 specified in the properties of the current outline entry."
   (save-match-data
     (list
-     ;; Header arguments specified with the header-args property at
+     ;; header arguments specified with the header-args property at
      ;; point of call.
      (org-babel-parse-header-arguments
-      (org-entry-get (point) "header-args" 'inherit)
-      no-eval)
-     ;; Language-specific header arguments at point of call.
-     (and lang
+      (org-entry-get org-babel-current-src-block-location
+		     "header-args"
+		     'inherit))
+     (and lang	 ; language-specific header arguments at point of call
 	  (org-babel-parse-header-arguments
-	   (org-entry-get (point) (concat "header-args:" lang) 'inherit)
-	   no-eval)))))
+	   (org-entry-get org-babel-current-src-block-location
+			  (concat "header-args:" lang)
+			  'inherit))))))
 
 (defun org-babel-balanced-split (string alts)
   "Split STRING on instances of ALTS.
@@ -1523,11 +1531,9 @@ balanced instances of \"[ \t]:\", set ALTS to ((32 9) . 58)."
 		       (cons el acc))))
 		 list :initial-value nil))))
 
-(defun org-babel-parse-header-arguments (string &optional no-eval)
-  "Parse header arguments in STRING.
-When optional argument NO-EVAL is non-nil, do not evaluate Lisp
-in parameters.  Return an alist."
-  (when (org-string-nw-p string)
+(defun org-babel-parse-header-arguments (arg-string)
+  "Parse a string of header arguments returning an alist."
+  (when (> (length arg-string) 0)
     (org-babel-parse-multiple-vars
      (delq nil
 	   (mapcar
@@ -1536,12 +1542,10 @@ in parameters.  Return an alist."
 		   "\\([^ \f\t\n\r\v]+\\)[ \f\t\n\r\v]+\\([^ \f\t\n\r\v]+.*\\)"
 		   arg)
 		  (cons (intern (match-string 1 arg))
-			(org-babel-read (org-babel-chomp (match-string 2 arg))
-					no-eval))
+			(org-babel-read (org-babel-chomp (match-string 2 arg))))
 		(cons (intern (org-babel-chomp arg)) nil)))
-	    (let ((raw (org-babel-balanced-split string '((32 9) . 58))))
-              (cons (car raw)
-		    (mapcar (lambda (r) (concat ":" r)) (cdr raw)))))))))
+	    (let ((raw (org-babel-balanced-split arg-string '((32 9) . 58))))
+              (cons (car raw) (mapcar (lambda (r) (concat ":" r)) (cdr raw)))))))))
 
 (defun org-babel-parse-multiple-vars (header-arguments)
   "Expand multiple variable assignments behind a single :var keyword.
@@ -2359,24 +2363,24 @@ INFO may provide the values of these header arguments (in the
 		  ;; possibly wrap result
 		  (cond
 		   ((assq :wrap (nth 2 info))
-		    (let ((name (or (cdr (assq :wrap (nth 2 info))) "results")))
-		      (funcall wrap (concat "#+begin_" name)
-			       (concat "#+end_" (car (split-string name)))
+		    (let ((name (or (cdr (assq :wrap (nth 2 info))) "RESULTS")))
+		      (funcall wrap (concat "#+BEGIN_" name)
+			       (concat "#+END_" (car (split-string name)))
 			       nil nil (concat "{{{results(@@" name ":") "@@)}}}")))
 		   ((member "html" result-params)
-		    (funcall wrap "#+begin_export html" "#+end_export" nil nil
+		    (funcall wrap "#+BEGIN_EXPORT html" "#+END_EXPORT" nil nil
 			     "{{{results(@@html:" "@@)}}}"))
 		   ((member "latex" result-params)
-		    (funcall wrap "#+begin_export latex" "#+end_export" nil nil
+		    (funcall wrap "#+BEGIN_EXPORT latex" "#+END_EXPORT" nil nil
 			     "{{{results(@@latex:" "@@)}}}"))
 		   ((member "org" result-params)
 		    (goto-char beg) (when (org-at-table-p) (org-cycle))
-		    (funcall wrap "#+begin_src org" "#+end_src" nil nil
+		    (funcall wrap "#+BEGIN_SRC org" "#+END_SRC" nil nil
 			     "{{{results(src_org{" "})}}}"))
 		   ((member "code" result-params)
 		    (let ((lang (or lang "none")))
-		      (funcall wrap (format "#+begin_src %s%s" lang results-switches)
-			       "#+end_src" nil nil
+		      (funcall wrap (format "#+BEGIN_SRC %s%s" lang results-switches)
+			       "#+END_SRC" nil nil
 			       (format "{{{results(src_%s[%s]{" lang results-switches)
 			       "})}}}")))
 		   ((member "raw" result-params)
@@ -2385,7 +2389,7 @@ INFO may provide the values of these header arguments (in the
 			;; Stay backward compatible with <7.9.2
 			(member "wrap" result-params))
 		    (goto-char beg) (when (org-at-table-p) (org-cycle))
-		    (funcall wrap ":results:" ":end:" 'no-escape nil
+		    (funcall wrap ":RESULTS:" ":END:" 'no-escape nil
 			     "{{{results(" ")}}}"))
 		   ((and inline (member "file" result-params))
 		    (funcall wrap nil nil nil nil "{{{results(" ")}}}"))
@@ -2659,6 +2663,12 @@ parameters when merging lists."
     ;; Return merged params.
     params))
 
+(defvar org-babel-use-quick-and-dirty-noweb-expansion nil
+  "Set to true to use regular expressions to expand noweb references.
+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."
@@ -2705,8 +2715,16 @@ block but are passed literally to the \"example-block\"."
          (body (nth 1 info))
 	 (ob-nww-start org-babel-noweb-wrap-start)
 	 (ob-nww-end org-babel-noweb-wrap-end)
+	 (comment (string= "noweb" (cdr (assq :comments (nth 2 info)))))
+	 (rx-prefix (concat "\\(" org-babel-src-name-regexp "\\|"
+			    ":noweb-ref[ \t]+" "\\)"))
          (new-body "")
 	 (nb-add (lambda (text) (setq new-body (concat new-body text))))
+	 (c-wrap (lambda (text)
+		   (with-temp-buffer
+		     (funcall (intern (concat lang "-mode")))
+		     (comment-region (point) (progn (insert text) (point)))
+		     (org-trim (buffer-string)))))
 	 index source-name evaluate prefix)
     (with-temp-buffer
       (setq-local org-babel-noweb-wrap-start ob-nww-start)
@@ -2738,74 +2756,63 @@ block but are passed literally to the \"example-block\"."
                    (let ((raw (org-babel-ref-resolve source-name)))
                      (if (stringp raw) raw (format "%S" raw)))
                  (or
-                  ;; Retrieve from the Library of Babel.
-                  (nth 2 (assoc-string source-name org-babel-library-of-babel))
+                  ;; Retrieve from the library of babel.
+                  (nth 2 (assoc (intern source-name)
+                                org-babel-library-of-babel))
                   ;; Return the contents of headlines literally.
                   (save-excursion
                     (when (org-babel-ref-goto-headline-id source-name)
-		      (org-babel-ref-headline-body)))
+			      (org-babel-ref-headline-body)))
                   ;; Find the expansion of reference in this buffer.
-                  (save-excursion
-		    (goto-char (point-min))
-		    (let* ((name-regexp
-			    (org-babel-named-src-block-regexp-for-name
-			     source-name))
-			   (comment
-			    (string= "noweb"
-				     (cdr (assq :comments (nth 2 info)))))
-			   (c-wrap
-			    (lambda (s)
-			      ;; Comment, according to LANG mode,
-			      ;; string S.  Return new string.
-			      (with-temp-buffer
-				(funcall (intern (concat lang "-mode")))
-				(comment-region (point)
-						(progn (insert s) (point)))
-				(org-trim (buffer-string)))))
-			   (expand-body
-			    (lambda (i)
-			      ;; Expand body of code blocked
-			      ;; represented by block info I.
-			      (let ((b (if (org-babel-noweb-p (nth 2 i) :eval)
-					   (org-babel-expand-noweb-references i)
-					 (nth 1 i))))
-				(if (not comment) b
-				  (let ((cs (org-babel-tangle-comment-links i)))
-				    (concat (funcall c-wrap (car cs)) "\n"
-					    b "\n"
-					    (funcall c-wrap (cadr cs)))))))))
-		      (if (re-search-forward name-regexp nil t)
-			  ;; Found a source block named SOURCE-NAME.
-			  ;; Assume it is unique; do not look after
-			  ;; `:noweb-ref' header argument.
-			  (funcall expand-body
-				   (org-babel-get-src-block-info 'light))
-			;; Though luck.  We go into the long process
-			;; of checking each source block and expand
-			;; those with a matching Noweb reference.
-			(let ((expansion nil))
-			  (org-babel-map-src-blocks nil
-			    (let* ((info (org-babel-get-src-block-info 'light))
-				   (parameters (nth 2 info)))
-			      (when (equal source-name
-					   (cdr (assq :noweb-ref parameters)))
-				(push (funcall expand-body info) expansion)
-				(push (or (cdr (assq :noweb-sep parameters))
-					  "\n")
-				      expansion))))
-			  (when expansion
-			    (mapconcat #'identity
-				       (nreverse (cdr expansion))
-				       ""))))))
+                  (let ((rx (concat rx-prefix source-name "[ \t\n]"))
+                        expansion)
+                    (save-excursion
+                      (goto-char (point-min))
+                      (if org-babel-use-quick-and-dirty-noweb-expansion
+                          (while (re-search-forward rx nil t)
+                            (let* ((i (org-babel-get-src-block-info 'light))
+                                   (body (if (org-babel-noweb-p (nth 2 i) :eval)
+					     (org-babel-expand-noweb-references i)
+					   (nth 1 i)))
+                                   (sep (or (cdr (assq :noweb-sep (nth 2 i)))
+                                            "\n"))
+                                   (full (if comment
+                                             (let ((cs (org-babel-tangle-comment-links i)))
+					       (concat (funcall c-wrap (car cs)) "\n"
+						       body "\n"
+						       (funcall c-wrap (cadr cs))))
+                                           body)))
+                              (setq expansion (cons sep (cons full expansion)))))
+                        (org-babel-map-src-blocks nil
+			  (let ((i (let ((org-babel-current-src-block-location (point)))
+				     (org-babel-get-src-block-info 'light))))
+                            (when (equal (or (cdr (assq :noweb-ref (nth 2 i)))
+                                             (nth 4 i))
+                                         source-name)
+                              (let* ((body (if (org-babel-noweb-p (nth 2 i) :eval)
+					       (org-babel-expand-noweb-references i)
+					     (nth 1 i)))
+                                     (sep (or (cdr (assq :noweb-sep (nth 2 i)))
+                                              "\n"))
+                                     (full (if comment
+                                               (let ((cs (org-babel-tangle-comment-links i)))
+                                                  (concat (funcall c-wrap (car cs)) "\n"
+                                                          body "\n"
+                                                          (funcall c-wrap (cadr cs))))
+                                             body)))
+                                (setq expansion
+                                      (cons sep (cons full expansion)))))))))
+                    (and expansion
+                         (mapconcat #'identity (nreverse (cdr expansion)) "")))
                   ;; Possibly raise an error if named block doesn't exist.
                   (if (or org-babel-noweb-error-all-langs
 			  (member lang org-babel-noweb-error-langs))
-		      (error "%s could not be resolved (see \
-`org-babel-noweb-error-langs')"
-			     (org-babel-noweb-wrap source-name))
+                      (error "%s" (concat
+                                   (org-babel-noweb-wrap source-name)
+                                   "could not be resolved (see "
+                                   "`org-babel-noweb-error-langs')"))
                     "")))
-               "[\n\r]")
-	      (concat "\n" prefix))))))
+               "[\n\r]") (concat "\n" prefix))))))
       (funcall nb-add (buffer-substring index (point-max))))
     new-body))
 

+ 2 - 4
lisp/ob-lilypond.el

@@ -33,9 +33,7 @@
 
 ;;; Code:
 (require 'ob)
-
-(declare-function org-show-all "org" (&optional types))
-
+(require 'outline)
 (defalias 'lilypond-mode 'LilyPond-mode)
 
 (add-to-list 'org-babel-tangle-lang-exts '("LilyPond" . "ly"))
@@ -266,7 +264,7 @@ LINE is the erroneous line"
     (setq case-fold-search nil)
     (if (search-forward line nil t)
         (progn
-          (org-show-all)
+          (outline-show-all)
           (set-mark (point))
           (goto-char (- (point) (length line))))
       (goto-char temp))))

+ 44 - 33
lisp/ob-lob.el

@@ -79,44 +79,54 @@ if so then run the appropriate source block from the Library."
       (org-babel-execute-src-block nil info)
       t)))
 
-(defun org-babel-lob--src-info (name)
-  "Return internal representation for Babel data named NAME.
-NAME is a string.  This function looks into the current document
+(defun org-babel-lob--src-info (ref)
+  "Return internal representation for Babel data referenced as REF.
+REF is a string.  This function looks into the current document
 for a Babel call or source block.  If none is found, it looks
-after NAME in the Library of Babel.  Eventually, if that also
-fails, it returns nil."
-  ;; During export, look into the pristine copy of the document being
-  ;; exported instead of the current one, which could miss some data.
-  (with-current-buffer (or org-babel-exp-reference-buffer (current-buffer))
-    (org-with-wide-buffer
-     (goto-char (point-min))
-     (catch :found
-       (let ((case-fold-search t)
-	     (regexp (org-babel-named-data-regexp-for-name name)))
-	 (while (re-search-forward regexp nil t)
-	   (let ((element (org-element-at-point)))
-	     (when (equal name (org-element-property :name element))
-	       (throw :found
-		      (pcase (org-element-type element)
-			(`src-block (org-babel-get-src-block-info t element))
-			(`babel-call (org-babel-lob-get-info element))
-			;; Non-executable data found.  Since names are
-			;; supposed to be unique throughout a document,
-			;; bail out.
-			(_ nil))))))
-	 ;; No element named NAME in buffer.  Try Library of Babel.
-	 (cdr (assoc-string name org-babel-library-of-babel)))))))
+after REF in the Library of Babel."
+  (let ((name ref)
+	(file nil))
+    ;; Extract the remote file, if specified in the reference.
+    (when (string-match "\\`\\(.+\\):\\(.+\\)\\'" ref)
+      (setq file (match-string 1 ref))
+      (setq name (match-string 2 ref)))
+    ;; During export, look into the pristine copy of the document
+    ;; being exported instead of the current one, which could miss
+    ;; some data.
+    (with-current-buffer (cond (file (find-file-noselect file t))
+			       (org-babel-exp-reference-buffer)
+			       (t (current-buffer)))