From bdebdb64b35d6a0a28e04335f4e8e46949206ad3 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Fri, 26 Oct 2012 16:42:05 +0200 Subject: [PATCH] Merge upstream Org (from commit acbbe2) --- doc/misc/ChangeLog | 6 + doc/misc/org.texi | 43 ++--- etc/ChangeLog | 5 + etc/refcards/orgcard.pdf | Bin 118438 -> 118492 bytes etc/refcards/orgcard.tex | 4 +- lisp/org/ChangeLog | 297 ++++++++++++++++++++++++++++++ lisp/org/ob-ditaa.el | 1 + lisp/org/ob-haskell.el | 2 + lisp/org/ob-io.el | 2 +- lisp/org/ob-keys.el | 4 +- lisp/org/ob-lob.el | 5 +- lisp/org/ob-picolisp.el | 1 + lisp/org/ob-ref.el | 1 + lisp/org/ob-scala.el | 14 +- lisp/org/ob-sql.el | 3 +- lisp/org/ob-sqlite.el | 3 +- lisp/org/ob-tangle.el | 5 +- lisp/org/ob.el | 37 ++-- lisp/org/org-agenda.el | 275 +++++++++++++++++++++++++++- lisp/org/org-archive.el | 7 + lisp/org/org-ascii.el | 5 + lisp/org/org-attach.el | 4 + lisp/org/org-bbdb.el | 6 +- lisp/org/org-beamer.el | 3 +- lisp/org/org-capture.el | 8 +- lisp/org/org-clock.el | 75 ++++++-- lisp/org/org-colview.el | 4 + lisp/org/org-compat.el | 2 +- lisp/org/org-datetree.el | 4 + lisp/org/org-docbook.el | 4 + lisp/org/org-element.el | 252 +++++++++++++++---------- lisp/org/org-exp.el | 8 +- lisp/org/org-faces.el | 8 +- lisp/org/org-feed.el | 4 + lisp/org/org-footnote.el | 4 + lisp/org/org-freemind.el | 6 +- lisp/org/org-html.el | 6 +- lisp/org/org-icalendar.el | 4 + lisp/org/org-id.el | 7 +- lisp/org/org-indent.el | 4 + lisp/org/org-install.el | 50 ++--- lisp/org/org-irc.el | 4 + lisp/org/org-latex.el | 36 ++-- lisp/org/org-lparse.el | 22 ++- lisp/org/org-mobile.el | 5 +- lisp/org/org-odt.el | 6 +- lisp/org/org-plot.el | 4 + lisp/org/org-publish.el | 5 +- lisp/org/org-remember.el | 4 + lisp/org/org-src.el | 70 ++++--- lisp/org/org-table.el | 69 ++++++- lisp/org/org-taskjuggler.el | 4 + lisp/org/org-timer.el | 6 +- lisp/org/org-version.el | 4 +- lisp/org/org-xoxo.el | 4 + lisp/org/org.el | 434 ++++++++++++++------------------------------ 56 files changed, 1256 insertions(+), 604 deletions(-) rewrite lisp/org/org-install.el (96%) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index fc44828e8bf..a0cfd675f0a 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,9 @@ +2012-10-26 Bastien Guerry + + * org.texi (Installation): Update the link to Org's ELPA. Also + don't mention org-install.el anymore as the replacement file + org-loaddefs.el is now loaded by org.el. + 2012-10-25 Michael Albinus * tramp.texi (Frequently Asked Questions): Mention diff --git a/doc/misc/org.texi b/doc/misc/org.texi index 89c99018460..cdaf1174a26 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -857,7 +857,7 @@ Theory Ltd.} @b{Important:} @i{If you the version of Org that comes with Emacs or as a XEmacs package, please skip this section and go directly to @ref{Activation}. If you downloaded Org as an ELPA package, please read the instructions on the -@uref{http://orgmode.org/elpa/, Org ELPA page}. To see what version of Org +@uref{http://orgmode.org/elpa.html, Org ELPA page}. To see what version of Org (if any) is part of your Emacs distribution, type @kbd{M-x org-version} (if your Emacs distribution does not come with Org, this function will not be defined).} @@ -947,7 +947,7 @@ description on Worg}. Installing Info files is system dependent, because of differences in the @file{install-info} program. The Info documentation is installed together with the rest of Org mode. If you don't install Org mode, it is possible to -install the Info documentation separately (you need to have +install the Info documentation seperately (you need to have install-info@footnote{The output from install-info (if any) is system dependent. In particular Debian and its derivatives use two different versions of install-info and you may see the message: @@ -964,13 +964,6 @@ on your system). make install-info @end example -Then add the following line to @file{.emacs}. It is needed so that -Emacs can autoload functions that are located in files not immediately loaded -when Org mode starts. -@lisp -(require 'org-install) -@end lisp - Do not forget to activate Org as described in the following section. @page @@ -1092,9 +1085,6 @@ shown below. ;; add latest org-mode to load path (add-to-list 'load-path (expand-file-name "/path/to/org-mode/lisp")) (add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp" t)) - -;; activate org -(require 'org-install) @end example If an error occurs, a backtrace can be very useful (see below on how to @@ -3785,7 +3775,7 @@ mostly if more than two TODO states are possible (@pxref{TODO extensions}). See also @ref{Conflicts}, for a discussion of the interaction with @code{shift-selection-mode}. See also the variable @code{org-treat-S-cursor-todo-selection-as-state-change}. -@orgcmd{C-c / t,org-show-todo-key} +@orgcmd{C-c / t,org-show-todo-tree} @cindex sparse tree, for TODO @vindex org-todo-keywords View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds the @@ -9386,16 +9376,16 @@ so often, shortcuts are provided using the Easy Templates facility @item C-c ' Edit the source code example at point in its native mode. This works by switching to a temporary buffer with the source code. You need to exit by -pressing @kbd{C-c '} again@footnote{Upon exit, lines starting with @samp{*} -or @samp{#} will get a comma prepended, to keep them from being interpreted -by Org as outline nodes or special comments. These commas will be stripped -for editing with @kbd{C-c '}, and also for export.}. The edited version will -then replace the old version in the Org buffer. Fixed-width regions -(where each line starts with a colon followed by a space) will be edited -using @code{artist-mode}@footnote{You may select a different-mode with the -variable @code{org-edit-fixed-width-region-mode}.} to allow creating ASCII -drawings easily. Using this command in an empty line will create a new -fixed-width region. +pressing @kbd{C-c '} again@footnote{Upon exit, lines starting with @samp{*}, +@samp{,*}, @samp{#+} and @samp{,#+} will get a comma prepended, to keep them +from being interpreted by Org as outline nodes or special syntax. These +commas will be stripped for editing with @kbd{C-c '}, and also for export.}. +The edited version will then replace the old version in the Org buffer. +Fixed-width regions (where each line starts with a colon followed by a space) +will be edited using @code{artist-mode}@footnote{You may select +a different-mode with the variable @code{org-edit-fixed-width-region-mode}.} +to allow creating ASCII drawings easily. Using this command in an empty line +will create a new fixed-width region. @kindex C-c l @item C-c l Calling @code{org-store-link} while editing a source code example in a @@ -14523,14 +14513,13 @@ Be sure to adjust the paths to fit your system. # DIR=`pwd` FILES="" -ORGINSTALL="~/src/org/lisp/org-install.el" # wrap each argument in the code required to call tangle on it for i in $@@; do FILES="$FILES \"$i\"" done -emacs -Q --batch -l $ORGINSTALL \ +emacs -Q --batch \ --eval "(progn (add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\")) (add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\" t)) @@ -16704,7 +16693,7 @@ on @file{org-element.el} and @file{org-export.el} has been outstanding, and opened the doors for many new ideas and features. @item Jambunathan K -Jambunathan contributed the ODT exporter, definitely a killer feature of +Jambunathan contributed the ODT exporter, definitly a killer feature of Org mode. He also contributed the new HTML exporter, which is another core feature of Org. Here too, I knew I could rely on him to fix bugs in these areas and to patiently explain the users what was the problems and solutions. @@ -16712,7 +16701,7 @@ areas and to patiently explain the users what was the problems and solutions. @item Achim Gratz Achim rewrote the building process of Org, turning some @emph{ad hoc} tools into a flexible and conceptually clean process. He patiently coped with the -many hiccups that such a change can create for users. +many hicups that such a change can create for users. @item Nick Dokos The Org mode mailing list would not be such a nice place without Nick, who diff --git a/etc/ChangeLog b/etc/ChangeLog index 3ebe18b407f..60d4a7aa271 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-26 Nicolas Goaziou + + * refcards/orgcard.tex: Fix keybindings about + `org-show-todo-tree'. + 2012-10-23 Paul Eggert Fix outdated timestamp documentation in Elisp manual (bug#12706). diff --git a/etc/refcards/orgcard.pdf b/etc/refcards/orgcard.pdf index 2f0044184438d5a0050adc8e8794fb1aced0b6c6..720f08d9ded7f3796ebfccdbef09ad0ed24355a6 100644 GIT binary patch delta 9273 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 ZjfVL<&3_V>0+oxC7nP1qT2%)1e*lk~%2EIT delta 9245 zcwU8=LwlV8qW~M*X4BX@v5m&IZ5wZF+iC1HHX1axoyNBPT`cbM?q)GRV4m5?g(=O2 zNgxMjVM*^31EWrq=K*#|>U#a2eBQ8`nDR7#Ls;xSmmY;*?i;hf5xN}mB$FV@QNdE- zjP8e@bUIsgF~}oM=Tc_8M|Yk0bp4^2GV%A08iR~`KZ$oYEk7nlU~_Nk`do;C9OSEoK(4Q;^w%{LO4{jzS?zQGBN03 z)%r&6iu)32hwtQp+pF_!T6=`QmdoX%a|D&PZt8W-n5keVA`s0Q`?l~~sU-d-YN6wo zy%ZkjW_!X?;s6sC=d)LHwB53eO#(lB+f5b(yQ4uF*E59UK_mw*5!p$Ow}ZI~Htq%1 zjA!U~o#|B2?ZGx}fM|O#H;C3#e3A2Srj3Mg5Dt_6Wg*LoLd?j0{|h5&93=x(*rDY5 zjpGYf#1xX9Y+EG)eE(f(cEd_tq72V{Zla<84+ZVlM8H6u#Bwq$SGQHSq0B>cMLsqx zGMEo{a7?^g8;iLgsVF36DO)Y^MpQ&paA0~xI%`-fnR)XYH=~lwR0Dq6y529*h)`IM zru2rXAGCj|r7*{`p>%N&D!W8Gk}*7& z!VDFnO9A5*^+DMt>oN%1Rt{~_Hh_6*1ipqF0Ex&Y4B0})gt}Ew=%rIbHyCXGft^?i z4yEHNbZtjpTP@^DVvWVt^S4^cW`s?_X%?#=MRk)CE1&CPUxdU3EvjlguzVDTO4p5! zm3+e>G=8VAv5qSrIx`}Bcyg#=+VcBC!r77*0{l47%>Q|G z?|A8PIBlkESoHp!(;n6+_JX2}mnR+OB6S%l&xG8+8ew_}D)rPJgh z7K|NymeE8FY^I)Q zCs`4O!jE72Fa+4`t6PU+4_7>xtx^nVJ_BIsCfVL3pX8`+QDXh6ZaJQ><`Db<#T6e_ zm^&JBeEg+O3grk$ap|jkE4$z z{oIw!If+V0EInD~sTZT)-h%JG&#&nSZv6EEshb8fz1nN`!!o6yQXL*?V2F!2sx&9x zJA>M|LjI7HreTr}%7>YsVgYR!KnVxdm@av-iBsv%rFZz4aNjf-v6${>jDq?O@#aV~YsY_@kyx%DfttPqFYXTEG+WAWVd!G@ zC^z3MH|;bicGW9v zsd6DY9PCch%r2FN<#s8+RvEx>Z;37&Faj$-SfsfN zNi}SMai=7gw34t;$dtdmOqmhri$YX|5OD;HTSn3~9&U_*3Qzy%XG^JYNdeb%T|7g3+5In>4eVzO0qs^Hq{#C)C#Mi<>4m}L6s!O(u9AR!= zP6+-pX~>INbD{ZBRb_Raw%d|*q?uqY)GU&NZfdKIo>smO-U1S!JbaIHN>d{vtwGTa z@y%AhHcl~tH9+;dY; zfA7ReEs|Iq>Q1(>%tG> z8dZ!PgyF@1Y{{P`Ss@_{L^_=pc(fdDsO6^D8uV19-+#c@3^}oVW@W*mb{27Ts?t-} zi(JD9)ZR#oEw}RJF~kpf=;Cs+OL&XP&g7A40FW`zD!-b{j|fz@21VZm8HLpE9IUWa+62sDf?yE1r_*TZY}$-E|7U zC~RSO@IrpZn``6Xkk@~yv7v62s%_RfGMoM?S!Hpf+f?mrwWS;b^EHFjwpy;XQpGgN z{be&uq_YN`l<~7*UyrX+zUG+~JDR^f>SrN8H{Kz+_NvpxoPjw!X1PzK*;IPqvCH(3 zon}^xvl=azgTK}qi;s$n;Xsap_539tGwgK}H|w3Y7c<|VLS7;yT+Uf_7Qfe;)&ZZ- z>x98@gBk0;CGt@p5a|aL6iheTS38b-#_S!8E?$5DrlSuUir?p)^%3~9_Jwetl?N){ z)d>65I#Yj7=b=cGoH}hpyCdqexQ=Z2In=^WR_QctnPynPF`<8+TP1RDbRS$$ct~ko zjmV9z%ivsyC6q7R^%QZ1whu{BAsm%|-owm8&BfCPw6+}w z;T8gZ*MDrL{)uZAbnNU;m+wwMKdw2^6SHOV5qr|Jf-CoFJ zJASR++1#4f#pUPcW*#2xBUxBj7|vZjBzO4cb*wwOsvW-DTK9T zL&`TH8zl}>rC!GhwQdO?$-&fYL^%aeA;)XtPC`{n3+mW?A#Xp`d z>PjXhz2TQveZg*DWSa%1-8Tv~m9etRT}xhmd+W6p0#IwQV{9jEi4@NbT8#CdKj(XE zfQM@8+Y%S*m&tYJnb7N?Nv2z?@OD6VZViq&*s(?c7tJ60wE%z`+fF%wH%j5)nl*5m^G~nKRpD zX^f}(w{h#bZuYL&RpGWpgiS+gn>AH1D(w#{NDJg0)}FUb?C+Gz1L*00rz+8_$XjeU z`ZMlch3lGsRyWcYg;oq}(lPQgdKxiEyI4Jyvn;o)!(>14%{OzaZ56*P<^?@WBJ&dM(CAww!hTJRSm`#;wg1oGDlH4ndM-ZxgGXm?14UqVOUfU+8}5dUdLz zRTqv4JTFz&rcd@9-WBo}tfgSQ!>8l>b#K|am(cq&%_CiBNDYZte!mFEXxqOtOAqGh z?zXJQ8r4w#!@XBb0+CFvj?u6yX*j>sEl_{f`}p8uok<;T+d^ z^+3?q9q|ckN%4z~s^JN$3dPp&p>9f-D||7C*EuV!sN2!J{DKO_#a96N#3Iz6VLddP zxC%8(D{z;By`zwM^z@hNuBf*)n=-7EX&Dr3Eaf(JLAnuHbbXfpWt|~MD{h%oR`rgv zTw1<6InCHStT!3nJgxyor1x;fy#?;jy*gGS957wIv(!ZIgnXWEjstimQ>WDvG(n9k9D>t5XPcY2{HldwD2Mr%2f7A`xDMQwvpQ5qV)?>+^ z-9_ho3fxJ@ODC?%EoV~Uq z62@YNQUzlQtrKpKSMH6|LqaCa=*QuYIgJbowJ!FFc^sd^u(=Gog2{TsLvmH0MF*nP z9iewxZc~b6zhUQI@VB2D-e`JRd#Ja<%*k%&JcJNAvqu6R&leU?>YY@_=_|#xm8-|6 zt&jkB97Qjj_r>oR+u-Gm&hgjQFtU__w7S{snBTm-6ycTrlKs_Llaw;yI%mixx|U(` zGU|2BqKwe{LQpdD9^wJI#fBGn0Tk$UMxk_3nHwq6sBZ<&Em1^KTbu=LiRJS8Y2_PZ zD*B|e@&DE5(M5icQYe;AmL2cGhFFnMTK{Blcf~Qw&n91bc%2n@DhvCNbG~sL*e_tw zv=yy*b8W%{5-v9y4ASFKxeB2GZ4Md%Y9I8RYgYhdOASCt6egHoMPb=C$>BYKlvcKV(_H}9 zi?RdSQ0rA`Dp7PDzXAOU8R&6~{1TQoulqvhIo#nw%?}M4_)au^b;ji}@oV#|=3Pq9 zjZ;tIbN|VA!g#R-+AmOX^WfqBY2r4j7>g ztoq)bP2{eY%AqVBI8^m!JLDp4Yd(Vz@KKH{E(~NDhOcpuIgpt)4xs$ja}|ggb5}!J ztmL9(Y?LV-)8-oyKi#SBA4-jWt+Qg+jvwbi*X~RPM_2H3z6W6RbhLK}gKw*uYLJE+ zVY?Kzl6MrFbQm-i960)un5CcN0VQ0_e8a=)(OvL#L690c{>mIrx4gybpE!$92Uv(T z{RD6&VIC%QADTUOkWHLR<(^X1Lcy@yQfIDH07xQFi zj&0wLj!##=P@Ff??RgNboH$gDVBEhaFooN))hWrZgapa+BpHJIZS+u*(QEaQ%zBh) z(|5!gy%iKM+ciq*oi&pCbBksCDJB%B+M0~)1TN~JiGpW!?mKM$;7j4YXQ{1W%Y zmBGv;-99FG&%y<6avtvB0TcuMUaim4zx_ey&i`g0_LjJ5$tqD#)co_WB`>3Vhrhs^ z)qAOGNVPpK|pZv6fZ@!`(4Kg|7K3V3)Rpxw1=W1Ang%O*Ew zZAtyTeCoxudoBsC!s75T1P!W52|bV_0h~)PfQF2sQSn?@0+AovG-1eSi=nG}a)b@T zKlkrSpy7;Z%!X4&fIZEot%Z*G<0)$`0|)Wd&3sY?m8I|>ZZpPmLE6X_;>Wta zX@9tUU?f%G=s|yWNVZY+?6Hg|{zJ?+8KUMk3Zop;Y&6hAc%JHN zEr45AXtVx1U^yx)CXL2iW%3gbDc&`;zA&u zAe0hdv0_wzsFZ->;2DP4|_DE)qpT`Wzx?BAx{CVL#yub z>qDl1?@c8Q!40w<#`IK7c?F}7l(WXJqdqZ7%vhzKtwq7yXyc6F`)NPO4#sIfJ!0OD zOjyvRJ-BP6K)s{m2GmCx<$yZ}g-5CudA41NMZswh3g0xO&U2GU?_^UPE2DQMAN*63 zPocXG?MF+1qwhq&9{SE-9&yZ29)K?}lKAw!NWSvuMofVrRVS`>+I-T8b$YK(JB)xlHGl2kotZc@4Fy6=ux>0&)mc8LKu(3pm#G-Z)!#ijbm| zQ44&OEHo4J^ikML#K#XX`$3W6z1EXIml2ds63!RE4K!7Ea*Z!d`0Qx3IyQH8O9CG#!lFN>mR=JpeqzIK#Kg2NoVPyELfMx=QJmRCUG`ZX@x zA7!tOE|2!z4_6H?p3fRF_UWCf#!5xY$L-_w^rJI=nedY(g-2a8ZQj$hH$Poa&*0-- zUu|9y^2NC=}D~Qp+Pbc;;Uq!N}$n<&l_511nFowR(nOFo}KuL`cmF+(`5@|`GycB)koeK%JG;o<&JYfMwyP&UYjt8d8{HR`l+8x0T8d%x+i2Qm}vw|>_irgyJ zc-e~Srzfp|wqr^pRg{{T3{DHU&U9!pPt_oeQC_k!s(8urN2aJZm#RP8EN=p6;yS7HS9?A zgkD(5fZ0ki6VAqio0Xet{kT2;$T*E$<&a^`4ONJTQCPKUxb2T=*l7@uIE7Z%Twq}8 zoG*MGo}NsY@C_}Lwkj)p7D~g)BYN}-Gcu0yW<7n+ikAat~3>#nIo=5@X4v zuTP3)b7(f(tb6D`r<>BdR^)!;=_U@p1=NE)4KlTD`<`p9G{+_g0-jLo-Umt~r;{+9 z7JOR_qr*QK;&M#643-lBrord-fR`0E8L0PRde1t3GUPF&l@cSShTB zDIYe0!C#m3=%y9daAzWv$2WBcH3u!`WCj5=+6;xbVE>n8g>-$-k_xAdf|^Vq$m4CMpz3|Bn~< zri4LhO~THI&`oAQ!DJH z6uB6vDt{S_3mfh(d(`oa-|Qdnyr*rCZPRm)`C>Z#vJ8#DUooMUz*FhE+2DOF1`his z++hiQH|c_qXzQZN?sw6Xb;Mbd(~8XNh4u6b7Wl9-swnw7`vg4i$j&&$C(IB>KMy>} zWDU&-;Y$O&Fcz^sJsX}SvU-`n!$h=Ly1Hm7?K3)Z_sC6FFgk1}#y${HqA``Yk(yi$JwN9Lo&i#>k^5)JDTJ~r$9^GfGo)5{~ zmp_0eiNkwH+%7U_tYB5}wbbJBZb<^h8&5^`o4!B70{xolX0k+qZ<9&+x1ch!StVk7!A)Ic4Wqa!@~Kn^~1ICS;G3n&{1-P z`5I>3D63Oqw^zvu6k;sj(jdZqoKwyK8!92JIL&v(aPuOK!U2;FB5{sn!h0ZV3uU>> z%aUQd+GU~mq`Pme#q6}Owa3pCRm%=Tn7ENGp;X{d*@Os}B53Bc@w|r6+fmt%DkI?U zJeZ$lW@5brNMnV?%D8Ijgtl$hvnV|A2pPk(jgR6QkiSvdR1#lPSL!=dZd&w#GU;}H z0$ZiZUz)tAaR(O@eh5{U@L(!4Z7FSU8iN9>F1X)9K+fe-&`PTHL)Z*;0w8*sAh#l( zdurlwkgo-|&+ zv|;qYsW|j87BiVQ5UFM7c-A$544z!I7rshiY^;-CD;iO@algv(bDs^t2$hmwG6qFFq;ZFrQe6491MmfbfM0S4PesW@ z3u~&@_r+@eszth#D+3@Q1`A;$nUYOap^_HtCmEe$gW!&%rW{}R{XC{f>p&L$bGqLQ z8gd}A*sJ0x8`$tmFf-OLVx<&Hk0&!l9 zo!v0589>Y7d{qvlZmh}LEfFOA#=JrIH@9wcZrzfpBT>OuxJdWUoOYAaRkHzF_fkg8 z2{gjB@p7o$dcYSymv2k}z^b?KjMH3fYFDC&?I&6jzkkjCpAQ!@o z;!-ve4H{M-`@Huq;K8CL>IO?IG{S96=HXdwdbeT6sfy8#%8v8yBT~|_DZRvH@*zgK zpN-{ndxG=bX{{x%qEWNDXxR~H_kJ2LF@w5~!oOea%#P=$gBOWVS#PHLB9Y`E)f{V) z0mF4+BUR)({{kM`6|5Qfc-Wlv{R9nPTbfix1@`ne zP55{h23VN43HwZQxoV<@v6Lb@r=$8rls)ZhK0Zj9mGzlRaQ5>&ScF|^)(LKE()$(+ zJf+7$q>0y)XESV=40Jg1Rmz1{LcD<>30DT{6%Wyo-T{odK!p|DjeyG^gpd`?RP3j)5eiF{U_Jxh*Q`NMW z;{D`%G8^TO;YoqFe>*A2e;Qs8xAhwoO3ste5vX;SEh@p{vPmaaR3YpfA?lb2SE(Ru z1B4y_!Ukc$i&v6rHKO9`O1|W&{rkgh3A;3?-bAb&sLt?Q^+uW>C0;qDgbwO~6d=9# z`X^j9^OER?8URQ7mLC*JPU;y)UpVdTC*~08&_5E`vVGG=(wDpdMe-LSn|X^9yaQt` zVB6pr^41t~u$eptW^NEOGdC*-h=Y!qm5P~}iUyuZ&cRg7 z$kmL5T8xL4nT7TLl-9@rFnV}pZZ1wSHVG~em$(=!NSIZEU7Ul1gGF4JS(KB7lbc;a zfQ0Y=RrKJQWX + + * ob-ditaa.el: Needs to (require 'org-compat) for + org-find-library-dir. + + * org.el: Remove utf-8 codepoints in docstrings, bytecode doesn't + work when loaded from compressed files. + + * org-compat.el: Make sure that file-name-directory is getting a + stringp. This avoids a possible " (wrong-type-argument stringp + nil)" error when the library in question does not exist. + + * org-odt.el: Replace arc-mode.el by arc-mode. + + * org.el: Replace org-macs.el by org-macs. + + * org-install.el: Provide an empty file that prints a warning + about an outdated configuration. + +2012-10-26 Bastien Guerry + + * org-latex.el (org-export-as-latex): Remove obsolete argument + `hidden'. Also fix the docstring: using 'string as the value + for `to-buffer' outputs a string with no LaTeX header. + (org-export-as-latex-batch) + (org-export-as-latex-to-buffer, org-export-region-as-latex) + (org-export-as-pdf): Don't use the obsoleted argument. + + * ob-haskell.el (org-export-as-latex): Don't use the obsoleted + argument `hidden'. + + * org.el (org-refile): Run within `with-demoted-errors' so + that a corrupted bookmark file does not stop the refile + process. + + * org-capture.el (org-capture-bookmark-last-stored-position): + Ditto for the capture process. + + * org-src.el (org-edit-src-exit): Fix bug when saving an empty + source buffer. + + * org-lparse.el (org-lparse): Fix bug by returning the output + of `org-do-lparse'. + + * org.el (org-refile-check-position): Throw an error when the + refile target is the current buffer and is not a file. + (org-agenda-file-to-front, org-remove-file): Throw an error + when the current buffer is not a file. + (org-check-agenda-file): Enhance the message. + (org-element-type): Autoload. + (org-element-context, org-element-paragraph-parser): Don't + declare as these two functions are not used in org.el. + + * org-lparse.el (browse-url-file-url): Declare. + + * org.el (org-refile-check-position): Fix typo in docstring. + + * org-clock.el (org-clock-modeline-total): Make obsolete. + (org-clock-mode-line-total): Rename from + `org-clock-modeline-total'. + (org-clock-get-sum-start): Fix references to + `org-clock-modeline-total'. + + * org-faces.el (org-agenda-filter-tags) + (org-agenda-filter-category, mode-line): Use the 'mode-line + face instead of the obsolete 'modeline. + + * org-odt.el (org-odt-styles-dir): Try more directories. + Don't throw an error, just send a message. + + * org-odt.el (org-odt-lib-dir, org-odt-data-dir) + (org-odt-schema-dir-list, org-odt-styles-dir-list): Delete. + (org-export-odt-schema-dir, org-odt-styles-dir): Infer the + correct directories without requiring other variables. + + * org-fixup.el (org-make-org-version, org-make-autoloads): + Don't define `org-odt-data-dir' in org-version.el. + + * org-loaddefs.el: New file. + + * org.el ("org-loaddefs.el"): Don't throw an error if the file + cannot be fund. + (org-version): Use org-loaddefs.el instead of org-install.el. + + * org.el: Don't dynamically autoload already autoloaded + functions. + (org-clock-update-time-maybe): Move to org-clock.el. + + * org-exp.el (org-insert-export-options-template): Remove + autoload cookie. + + * org-clock.el (org-resolve-clocks, org-clock-in) + (org-clock-out, org-clock-cancel, org-clock-goto) + (org-clock-sum, org-clock-display, org-clock-report) + (org-dblock-write:clocktable): Add autoload cookie. + (org-clock-update-time-maybe): Moved from org.el. + + * org-beamer.el (org-beamer-sectioning, org-beamer-mode): Ditto. + + * org-ascii.el (org-export-ascii-preprocess): Ditto. + + * org-archive.el (org-archive-subtree) + (org-archive-to-archive-sibling, org-toggle-archive-tag): Add + autoload cookie. + + * org-colview.el (org-columns, org-dblock-write:columnview) + (org-insert-columns-dblock, org-agenda-columns): Ditto. + + * org-table.el (org-table-create-with-table.el) + (org-table-create-or-convert-from-region, org-table-create) + (org-table-convert-region, org-table-import) + (org-table-export, org-table-align) + (org-table-justify-field-maybe, org-table-next-field) + (org-table-previous-field, org-table-next-row) + (org-table-copy-down, org-table-field-info) + (org-table-current-dline, org-table-goto-column) + (org-table-insert-column, org-table-delete-column) + (org-table-move-column-right, org-table-move-column-left) + (org-table-move-column, org-table-move-row-down) + (org-table-move-row-up, org-table-move-row) + (org-table-insert-row, org-table-insert-hline) + (org-table-hline-and-move, org-table-kill-row) + (org-table-sort-lines, org-table-cut-region) + (org-table-copy-region, org-table-paste-rectangle) + (org-table-convert, org-table-wrap-region) + (org-table-edit-field, org-table-sum) + (org-table-get-stored-formulas) + (org-table-maybe-eval-formula) + (org-table-rotate-recalc-marks) + (org-table-maybe-recalculate-line, org-table-eval-formula) + (org-table-recalculate, org-table-iterate) + (org-table-edit-formulas) + (org-table-toggle-coordinate-overlays) + (org-table-toggle-formula-debugger, orgtbl-to-generic) + (orgtbl-to-tsv, orgtbl-to-csv, orgtbl-to-latex) + (orgtbl-to-html, orgtbl-to-texinfo, orgtbl-to-orgtbl): Ditto. + + * org.el (turn-on-orgtbl): Moved here from org-table.el. + (org-clock-persistence-insinuate): Moved here from org-clock.el. + (org-update-all-dblocks, org-map-entries) + (org-require-autoloaded-modules, org-forward-element) + (org-backward-element, org-up-element) + (org-element-greater-elements, org-drag-element-backward) + (org-drag-element-forward, org-mark-element) + (org-narrow-to-element, org-transpose-element) + (org-unindent-buffer): Don't autoload. + + * org-clock.el (org-clock-get-clocktable): Rename from + `org-get-clocktable'. + (org-clock-persistence-insinuate): Move to org.el. + + * org-capture.el: Do no set `generated-autoload-file' locally. + Minor code clean up. + + * org-agenda.el (org-agenda-list): Use + `org-clock-get-clocktable'. Do no set + `generated-autoload-file' locally. + + * org-table.el (org-table-iterate-buffer-tables): Minor + reformatting. + (turn-on-orgtbl): Move to org.el. + + * org-html.el (org-export-htmlize-generate-css): Don't autoload. + + * org-timer.el (org-timer-pause-or-continue, org-timer-stop): + Ditto. + + * ob-tangle.el (org-babel-tangle-lang-exts): Ditto. + + * ob-lob.el (org-babel-lob-ingest): Ditto. + + * org-id.el (org-id-copy) + (org-id-get-with-outline-path-completion) + (org-id-get-with-outline-drilling): Ditto. + + * org-lparse.el (org-lparse-and-open, org-lparse-batch) + (org-lparse-to-buffer, org-replace-region-by) + (org-lparse-region): Ditto. + + * org-mobile.el (org-mobile-create-sumo-agenda): Ditto. + + * org.el (org-cycle): Fix misplaced autoload cookie. + + * org-agenda.el (org-agenda-get-timestamps): Check if the item + is an habit when formatting it with `org-agenda-format-item'. + (org-agenda-get-blocks): Fix bug: don't assume the item is an + habit when formatting with `org-agenda-format-item'. + + * org.el (org-calendar-agenda-action-key): Delete an option. + (org-mode-map): Delete its keybinding. + (org-agenda-action-marker, org-mark-entry-for-agenda-action): + Delete. + + * org-agenda.el (org-agenda-diary-entry): Don't prevent from + being used outside of Org agendas, as it can be used in + calendar buffers too. + +2012-10-26 Caio Tiago Oliveira (tiny change) + + * ob-scala.el (org-babel-scala-wrapper-method): Use a Scala + block enclosing the submitted code. + +2012-10-26 Myles English (tiny change) + + * org-clock.el (org-clock-in): Moved the call to + org-clock-in-prepare-hook until the task's properties + can be accessed. + +2012-10-26 Nicolas Goaziou + + * org.el (org-auto-fill-function): Make sure `adaptive-fill-mode' + mode is nil when pre-computed `fill-prefix' is the empty string. + Otherwise filling functions from fill.el think it has to be computed + again and overwrite it. + + * org.el: Make `org-closest-date' aware of hours repeaters. + + * org.el (org-end-of-line): Do not call `end-of-visual-line' when + moving to the end of line. Also improve behaviour on elements that + can be hidden. + + * org.el (org-sparse-tree): Allow to call `org-show-todo-tree' + with an argument. + + * org-element.el (org-element--get-next-object-candidates): Fix + parsing of objects of the same type in a single paragraph. + + * org-element.el (org-element-sub/superscript-successor): Fix + parsing of sub/superscript at beginning of item. + (org-element-latex-or-entity-successor): Fix parsing of latex + fragments at beginning of item. + + * org-agenda.el (org-agenda-later): Fix function when span is + a number and an argument was provided. Also fix typo in docstring. + + * org.el (org-read-date-analyze): Fix analyzing for dates like + "29.03 16:40". + + * org-element.el (org-element-center-block-parser) + (org-element-drawer-parser, , org-element-footnote-definition-parser) + (org-element-inlinetask-parser, org-element-plain-list-parser) + (org-element-quote-block-parser, org-element-special-block-parser) + (org-element-babel-call-parser, org-element-clock-parser) + (org-element-comment-parser, org-element-comment-block-parser) + (org-element-example-block-parser, org-element-export-block-parser) + (org-element-fixed-width-parser, org-element-horizontal-rule-parser) + (org-element-keyword-parser, org-element-latex-environment-parser) + (org-element-paragraph-parser, org-element-planning-parser) + (org-element-property-drawer-parser, org-element-src-block-parser) + (org-element-table-parser) + (org-element-verse-block-parserorg-element-dynamic-block-parser): + Make sure element never ends at the end of a blank non-empty line. + + * org-element.el (org-element-context) + (org-element--get-next-object-candidates): Fix `org-element-context'. + In particular, the restrictions for an object may be different from + those of its container (i.e. table rows and table cells). + + * org-element.el (org-element-example-block-parser) + (org-element-src-block-parser): Store value of example-blocks and + src-blocks unescaped. + (org-element-example-block-interpreter) + (org-element-src-block-interpreter): Escape value again when storing + it. + + * org-src.el (org-escape-code-in-string) + (org-unescape-code-in-string, org-escape-code-in-region) + (org-unescape-code-in-region): New functions. + (org-edit-src-code, org-edit-src-exit): Use new functions. + + * org.el (org-strip-protective-commas): Removed function. + + * org-exp.el (org-export-select-backend-specific-text): Use new + function. + + * ob.el (org-babel-parse-src-block-match) + (org-babel-parse-inline-src-block-match, org-babel-insert-result): + Always escape produced blocks, independently on the language of the + block, if any. Use new functions. + + * org-element.el (org-element-paragraph-parser): Fix regexp + starting a block. + + * org-element.el (org-element-center-block-parser): + (org-element-drawer-parser, org-element-dynamic-block-parser) + (org-element-example-block-parser, org-element-export-block-parser) + (org-element-latex-environment-parser, org-element-paragraph-parser) + (org-element-property-drawer-parser, org-element-src-block-parser) + (org-element-verse-block-parser): Use stricter regexps for boundaries + of elements. + +2012-10-26 Toby S. Cubitt + + * org-agenda.el (org-agenda-get-sexps): Reset `extra' to nil at + beginning of re-search-forward loop, otherwise next iteration picks up + `extra' value from previous entry. + 2012-09-30 Abdó Roig-Maranges * org-html.el (org-export-html-preprocess) diff --git a/lisp/org/ob-ditaa.el b/lisp/org/ob-ditaa.el index ae7794b659c..7c545c47437 100644 --- a/lisp/org/ob-ditaa.el +++ b/lisp/org/ob-ditaa.el @@ -40,6 +40,7 @@ ;;; Code: (require 'ob) +(require 'org-compat) (defvar org-ditaa-jar-path) ;; provided by org-exp-blocks diff --git a/lisp/org/ob-haskell.el b/lisp/org/ob-haskell.el index 1588f99f1e4..03972efeec1 100644 --- a/lisp/org/ob-haskell.el +++ b/lisp/org/ob-haskell.el @@ -147,6 +147,8 @@ specifying a variable of the same value." (format "%S" var))) (defvar org-src-preserve-indentation) +(declare-function org-export-as-latex "org-latex" + (arg &optional ext-plist to-buffer body-only pub-dir)) (defun org-babel-haskell-export-to-lhs (&optional arg) "Export to a .lhs file with all haskell code blocks escaped. When called with a prefix argument the resulting diff --git a/lisp/org/ob-io.el b/lisp/org/ob-io.el index 20648266056..881f35afbda 100644 --- a/lisp/org/ob-io.el +++ b/lisp/org/ob-io.el @@ -38,12 +38,12 @@ (require 'ob-eval) (eval-when-compile (require 'cl)) +(defvar org-babel-tangle-lang-exts) ;; Autoloaded (add-to-list 'org-babel-tangle-lang-exts '("io" . "io")) (defvar org-babel-default-header-args:io '()) (defvar org-babel-io-command "io" "Name of the command to use for executing Io code.") - (defun org-babel-execute:io (body params) "Execute a block of Io code with org-babel. This function is called by `org-babel-execute-src-block'" diff --git a/lisp/org/ob-keys.el b/lisp/org/ob-keys.el index 759bef3905f..3e3f496ff35 100644 --- a/lisp/org/ob-keys.el +++ b/lisp/org/ob-keys.el @@ -98,6 +98,8 @@ a-list placed behind the generic `org-babel-key-prefix'.") (provide 'ob-keys) - +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; ob-keys.el ends here diff --git a/lisp/org/ob-lob.el b/lisp/org/ob-lob.el index 6aafe34dcd3..8b5f14d0252 100644 --- a/lisp/org/ob-lob.el +++ b/lisp/org/ob-lob.el @@ -45,7 +45,6 @@ To add files to this list use the `org-babel-lob-ingest' command." (defvar org-babel-default-lob-header-args '((:exports . "results")) "Default header arguments to use when exporting #+lob/call lines.") -;;;###autoload (defun org-babel-lob-ingest (&optional file) "Add all named source-blocks defined in FILE to `org-babel-library-of-babel'." @@ -143,6 +142,8 @@ if so then run the appropriate source block from the Library." (provide 'ob-lob) - +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; ob-lob.el ends here diff --git a/lisp/org/ob-picolisp.el b/lisp/org/ob-picolisp.el index dd0704fc14e..025993c5847 100644 --- a/lisp/org/ob-picolisp.el +++ b/lisp/org/ob-picolisp.el @@ -60,6 +60,7 @@ (eval-when-compile (require 'cl)) (declare-function run-picolisp "ext:inferior-picolisp" (cmd)) +(defvar org-babel-tangle-lang-exts) ;; Autoloaded ;; optionally define a file extension for this language (add-to-list 'org-babel-tangle-lang-exts '("picolisp" . "l")) diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el index 79861f1b78a..af4ee6a1a4d 100644 --- a/lisp/org/ob-ref.el +++ b/lisp/org/ob-ref.el @@ -59,6 +59,7 @@ (declare-function org-at-item-p "org-list" ()) (declare-function org-narrow-to-subtree "org" ()) (declare-function org-id-find-id-in-file "org-id" (id file &optional markerp)) +(declare-function org-id-find-id-file "org-id" (id)) (declare-function org-show-context "org" (&optional key)) (declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) diff --git a/lisp/org/ob-scala.el b/lisp/org/ob-scala.el index b5eb18484b9..ea3c3f28112 100644 --- a/lisp/org/ob-scala.el +++ b/lisp/org/ob-scala.el @@ -36,12 +36,12 @@ (require 'ob-eval) (eval-when-compile (require 'cl)) +(defvar org-babel-tangle-lang-exts) ;; Autoloaded (add-to-list 'org-babel-tangle-lang-exts '("scala" . "scala")) (defvar org-babel-default-header-args:scala '()) (defvar org-babel-scala-command "scala" "Name of the command to use for executing Scala code.") - (defun org-babel-execute:scala (body params) "Execute a block of Scala code with org-babel. This function is called by `org-babel-execute-src-block'" @@ -72,9 +72,17 @@ Emacs-lisp table, otherwise return the results as a string." (defvar org-babel-scala-wrapper-method - "( + +"var str_result :String = null; + +Console.withOut(new java.io.OutputStream() {def write(b: Int){ +}}) { + str_result = { %s -) asString print + }.toString +} + +print(str_result) ") diff --git a/lisp/org/ob-sql.el b/lisp/org/ob-sql.el index ad7b1e29a93..20a136a80fb 100644 --- a/lisp/org/ob-sql.el +++ b/lisp/org/ob-sql.el @@ -47,7 +47,8 @@ (eval-when-compile (require 'cl)) (declare-function org-table-import "org-table" (file arg)) -(declare-function orgtbl-to-csv "org-table" (TABLE PARAMS)) +(declare-function orgtbl-to-csv "org-table" (table params)) +(declare-function org-table-to-lisp "org-table" (&optional txt)) (defvar org-babel-default-header-args:sql '()) diff --git a/lisp/org/ob-sqlite.el b/lisp/org/ob-sqlite.el index 24a7dd58c2c..b1696d94d3c 100644 --- a/lisp/org/ob-sqlite.el +++ b/lisp/org/ob-sqlite.el @@ -33,7 +33,8 @@ (declare-function org-fill-template "org" (template alist)) (declare-function org-table-convert-region "org-table" (beg0 end0 &optional separator)) -(declare-function orgtbl-to-csv "org-table" (TABLE PARAMS)) +(declare-function orgtbl-to-csv "org-table" (table params)) +(declare-function org-table-to-lisp "org-table" (&optional txt)) (defvar org-babel-default-header-args:sqlite '()) diff --git a/lisp/org/ob-tangle.el b/lisp/org/ob-tangle.el index 7077a1571eb..7e25b2cd1bc 100644 --- a/lisp/org/ob-tangle.el +++ b/lisp/org/ob-tangle.el @@ -38,7 +38,6 @@ (declare-function org-babel-update-block-body "org" (new-body)) (declare-function make-directory "files" (dir &optional parents)) -;;;###autoload (defcustom org-babel-tangle-lang-exts '(("emacs-lisp" . "el")) "Alist mapping languages to their file extensions. @@ -514,6 +513,8 @@ which enable the original code blocks to be found." (provide 'ob-tangle) - +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; ob-tangle.el ends here diff --git a/lisp/org/ob.el b/lisp/org/ob.el index f15457d68e2..b06aac11f69 100644 --- a/lisp/org/ob.el +++ b/lisp/org/ob.el @@ -39,7 +39,6 @@ (declare-function show-all "outline" ()) (declare-function org-reduce "org" (CL-FUNC CL-SEQ &rest CL-KEYS)) (declare-function org-mark-ring-push "org" (&optional pos buffer)) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function tramp-compat-make-temp-file "tramp-compat" (filename &optional dir-flag)) (declare-function tramp-dissect-file-name "tramp" (name &optional nodefault)) @@ -64,7 +63,6 @@ (declare-function org-cycle "org" (&optional arg)) (declare-function org-uniquify "org" (list)) (declare-function org-current-level "org" ()) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function org-table-import "org-table" (file arg)) (declare-function org-add-hook "org-compat" (hook function &optional append local)) @@ -87,10 +85,11 @@ (declare-function org-list-struct "org-list" ()) (declare-function org-list-prevs-alist "org-list" (struct)) (declare-function org-list-get-list-end "org-list" (item struct prevs)) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function org-remove-if "org" (predicate seq)) (declare-function org-completing-read "org" (&rest args)) -(declare-function org-add-protective-commas "org-src" (beg end)) +(declare-function org-escape-code-in-region "org-src" (beg end)) +(declare-function org-unescape-code-in-string "org-src" (s)) +(declare-function org-table-to-lisp "org-table" (&optional txt)) (defgroup org-babel nil "Code block evaluation and management in `org-mode' documents." @@ -494,8 +493,8 @@ can not be resolved.") ;;; functions (defvar call-process-region) -;;;###autoload +;;;###autoload (defun org-babel-execute-src-block (&optional arg info params) "Execute the current source code block. Insert the results of execution into the buffer. Source code @@ -838,6 +837,7 @@ evaluation mechanisms." (key-binding (or key (read-key-sequence nil)))))) (defvar org-bracket-link-regexp) + ;;;###autoload (defun org-babel-open-src-block-result (&optional re-run) "If `point' is on a src block then open the results of the @@ -944,6 +944,7 @@ buffer." (def-edebug-spec org-babel-map-inline-src-blocks (form body)) (defvar org-babel-lob-one-liner-regexp) + ;;;###autoload (defmacro org-babel-map-call-lines (file &rest body) "Evaluate BODY forms on each call line in FILE. @@ -1241,7 +1242,7 @@ may be specified in the properties of the current outline entry." ;; get block body less properties, protective commas, and indentation (with-temp-buffer (save-match-data - (insert (org-babel-strip-protective-commas body lang)) + (insert (org-unescape-code-in-string body)) (unless preserve-indentation (org-do-remove-indentation)) (buffer-string))) (org-babel-merge-params @@ -1258,8 +1259,7 @@ may be specified in the properties of the current outline entry." (let* ((lang (org-no-properties (match-string 2))) (lang-headers (intern (concat "org-babel-default-header-args:" lang)))) (list lang - (org-babel-strip-protective-commas - (org-no-properties (match-string 5)) lang) + (org-unescape-code-in-string (org-no-properties (match-string 5))) (org-babel-merge-params org-babel-default-inline-header-args (org-babel-params-from-properties lang) @@ -1937,10 +1937,10 @@ code ---- the results are extracted in the syntax of the source ((member "prepend" result-params)))) ; already there (setq results-switches (if results-switches (concat " " results-switches) "")) - (let ((wrap (lambda (start finish &optional escape) + (let ((wrap (lambda (start finish) (goto-char end) (insert (concat finish "\n")) (goto-char beg) (insert (concat start "\n")) - (if escape (org-add-protective-commas (point) end)) + (org-escape-code-in-region (point) end) (goto-char end) (goto-char (point-at-eol)) (setq end (point-marker)))) (proper-list-p (lambda (it) (and (listp it) (null (cdr (last it))))))) @@ -1987,7 +1987,7 @@ code ---- the results are extracted in the syntax of the source ((member "latex" result-params) (funcall wrap "#+BEGIN_LaTeX" "#+END_LaTeX")) ((member "org" result-params) - (funcall wrap "#+BEGIN_SRC org" "#+END_SRC" 'escape)) + (funcall wrap "#+BEGIN_SRC org" "#+END_SRC")) ((member "code" result-params) (funcall wrap (format "#+BEGIN_SRC %s%s" (or lang "none") results-switches) "#+END_SRC")) @@ -2370,17 +2370,6 @@ block but are passed literally to the \"example-block\"." (funcall nb-add (buffer-substring index (point-max)))) new-body)) -(defun org-babel-strip-protective-commas (body &optional lang) - "Strip protective commas from bodies of source blocks." - (with-temp-buffer - (insert body) - (if (and lang (string= lang "org")) - (progn (goto-char (point-min)) - (while (re-search-forward "^[ \t]*\\(,\\)" nil t) - (replace-match "" nil nil nil 1))) - (org-strip-protective-commas (point-min) (point-max))) - (buffer-string))) - (defun org-babel-script-escape (str &optional force) "Safely convert tables into elisp lists." (let (in-single in-double out) @@ -2599,6 +2588,8 @@ of `org-babel-temporary-directory'." (provide 'ob) - +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; ob.el ends here diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 32fecde2af0..36f3fcb9974 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -1871,6 +1871,7 @@ When nil, `q' will kill the single agenda buffer." :version "24.3" :type 'boolean) + ;;;###autoload (defun org-toggle-sticky-agenda (&optional arg) "Toggle `org-agenda-sticky'." @@ -1888,6 +1889,11 @@ When nil, `q' will kill the single agenda buffer." (message "Sticky agenda was %s" (if org-agenda-sticky "enabled" "disabled")))))) +(autoload 'org-toggle-sticky-agenda "org-agenda" "\ +Toggle `org-agenda-sticky'. + +\(fn &optional ARG)" t nil) + (defvar org-agenda-buffer nil "Agenda buffer currently being generated.") @@ -2563,6 +2569,43 @@ Pressing `<' twice means to restrict to the current subtree or region ((equal org-keys "!") (customize-variable 'org-stuck-projects)) (t (error "Invalid agenda key")))))) +(autoload 'org-agenda "org-agenda" "\ +Dispatch agenda commands to collect entries to the agenda buffer. +Prompts for a command to execute. Any prefix arg will be passed +on to the selected command. The default selections are: + +a Call `org-agenda-list' to display the agenda for current day or week. +t Call `org-todo-list' to display the global todo list. +T Call `org-todo-list' to display the global todo list, select only + entries with a specific TODO keyword (the user gets a prompt). +m Call `org-tags-view' to display headlines with tags matching + a condition (the user is prompted for the condition). +M Like `m', but select only TODO entries, no ordinary headlines. +L Create a timeline for the current buffer. +e Export views to associated files. +s Search entries for keywords. +S Search entries for keywords, only with TODO keywords. +/ Multi occur across all agenda files and also files listed + in `org-agenda-text-search-extra-files'. +< Restrict agenda commands to buffer, subtree, or region. + Press several times to get the desired effect. +> Remove a previous restriction. +# List \"stuck\" projects. +! Configure what \"stuck\" means. +C Configure custom agenda commands. + +More commands can be added by configuring the variable +`org-agenda-custom-commands'. In particular, specific tags and TODO keyword +searches can be pre-defined in this way. + +If the current buffer is in Org-mode and visiting a file, you can also +first press `<' once to indicate that the agenda should be temporarily +\(until the next use of \\[org-agenda]) restricted to the current file. +Pressing `<' twice means to restrict to the current subtree or region +\(if active). + +\(fn &optional ARG ORG-KEYS RESTRICTION)" t nil) + (defun org-agenda-append-agenda () "Append another agenda view to the current one. This function allows interactive building of block agendas. @@ -2857,6 +2900,16 @@ before running the agenda command." (org-agenda nil cmd-key))) (set-buffer org-agenda-buffer-name) (princ (buffer-string))) + +(autoload 'org-batch-agenda "org-agenda" "\ +Run an agenda command in batch mode and send the result to STDOUT. +If CMD-KEY is a string of length 1, it is used as a key in +`org-agenda-custom-commands' and triggers this command. If it is a +longer string it is used as a tags/todo match string. +Parameters are alternating variable names and values that will be bound +before running the agenda command. + +\(fn CMD-KEY &rest PARAMETERS)" nil t) (def-edebug-spec org-batch-agenda (form &rest sexp)) (defvar org-agenda-info nil) @@ -2915,6 +2968,43 @@ agenda-day The day in the agenda where this is listed" priority-letter priority agenda-day) ",")) (princ "\n"))))) + +(autoload 'org-batch-agenda-csv "org-agenda" "\ +Run an agenda command in batch mode and send the result to STDOUT. +If CMD-KEY is a string of length 1, it is used as a key in +`org-agenda-custom-commands' and triggers this command. If it is a +longer string it is used as a tags/todo match string. +Parameters are alternating variable names and values that will be bound +before running the agenda command. + +The output gives a line for each selected agenda item. Each +item is a list of comma-separated values, like this: + +category,head,type,todo,tags,date,time,extra,priority-l,priority-n + +category The category of the item +head The headline, without TODO kwd, TAGS and PRIORITY +type The type of the agenda entry, can be + todo selected in TODO match + tagsmatch selected in tags match + diary imported from diary + deadline a deadline on given date + scheduled scheduled on given date + timestamp entry has timestamp on given date + closed entry was closed on given date + upcoming-deadline warning about deadline + past-scheduled forwarded scheduled item + block entry has date block including g. date +todo The todo keyword, if any +tags All tags including inherited ones, separated by colons +date The relevant date, like 2007-2-14 +time The time, like 15:00-16:50 +extra Sting with extra planning info +priority-l The priority letter if any was given +priority-n The computed numerical priority +agenda-day The day in the agenda where this is listed + +\(fn CMD-KEY &rest PARAMETERS)" nil t) (def-edebug-spec org-batch-agenda-csv (form &rest sexp)) (defun org-fix-agenda-info (props) @@ -2964,6 +3054,11 @@ This ensures the export commands can easily use it." (interactive) (eval (list 'org-batch-store-agenda-views))) +(autoload 'org-store-agenda-views "org-agenda" "\ + + +\(fn &rest PARAMETERS)" t nil) + ;;;###autoload (defmacro org-batch-store-agenda-views (&rest parameters) "Run all custom agenda commands that have a file argument." @@ -2998,6 +3093,11 @@ This ensures the export commands can easily use it." (org-agenda-write (expand-file-name (pop files) dir) nil t bufname))) (and (get-buffer bufname) (kill-buffer bufname))))))) + +(autoload 'org-batch-store-agenda-views "org-agenda" "\ +Run all custom agenda commands that have a file argument. + +\(fn &rest PARAMETERS)" nil t) (def-edebug-spec org-batch-store-agenda-views (&rest sexp)) (defvar org-agenda-current-span nil @@ -4002,7 +4102,7 @@ given in `org-agenda-start-on-weekday'." "" x)) filter "")))) - (setq tbl (apply 'org-get-clocktable p)) + (setq tbl (apply 'org-clock-get-clocktable p)) (insert tbl))) (goto-char (point-min)) (or org-agenda-multi (org-agenda-fit-window-to-buffer)) @@ -4026,6 +4126,20 @@ given in `org-agenda-start-on-weekday'." (setq buffer-read-only t) (message "")))) +(autoload 'org-agenda-list "org-agenda" "\ +Produce a daily/weekly view from all files in variable `org-agenda-files'. +The view will be for the current day or week, but from the overview buffer +you will be able to go to other days/weeks. + +With a numeric prefix argument in an interactive call, the agenda will +span ARG days. Lisp programs should instead specify SPAN to change +the number of days. SPAN defaults to `org-agenda-span'. + +START-DAY defaults to TODAY, or to the most recent match for the weekday +given in `org-agenda-start-on-weekday'. + +\(fn &optional ARG START-DAY SPAN)" t nil) + (defun org-agenda-ndays-to-span (n) "Return a span symbol for a span of N days, or N if none matches." (cond ((symbolp n) n) @@ -4328,6 +4442,52 @@ in `org-agenda-text-search-extra-files'." (org-agenda-finalize) (setq buffer-read-only t)))) +(autoload 'org-search-view "org-agenda" "\ +Show all entries that contain a phrase or words or regular expressions. + +With optional prefix argument TODO-ONLY, only consider entries that are +TODO entries. The argument STRING can be used to pass a default search +string into this function. If EDIT-AT is non-nil, it means that the +user should get a chance to edit this string, with cursor at position +EDIT-AT. + +The search string can be viewed either as a phrase that should be found as +is, or it can be broken into a number of snippets, each of which must match +in a Boolean way to select an entry. The default depends on the variable +`org-agenda-search-view-always-boolean'. +Even if this is turned off (the default) you can always switch to +Boolean search dynamically by preceding the first word with \"+\" or \"-\". + +The default is a direct search of the whole phrase, where each space in +the search string can expand to an arbitrary amount of whitespace, +including newlines. + +If using a Boolean search, the search string is split on whitespace and +each snippet is searched separately, with logical AND to select an entry. +Words prefixed with a minus must *not* occur in the entry. Words without +a prefix or prefixed with a plus must occur in the entry. Matching is +case-insensitive. Words are enclosed by word delimiters (i.e. they must +match whole words, not parts of a word) if +`org-agenda-search-view-force-full-words' is set (default is nil). + +Boolean search snippets enclosed by curly braces are interpreted as +regular expressions that must or (when preceded with \"-\") must not +match in the entry. Snippets enclosed into double quotes will be taken +as a whole, to include whitespace. + +- If the search string starts with an asterisk, search only in headlines. +- If (possibly after the leading star) the search string starts with an + exclamation mark, this also means to look at TODO entries only, an effect + that can also be achieved with a prefix argument. +- If (possibly after star and exclamation mark) the search string starts + with a colon, this will mean that the (non-regexp) snippets of the + Boolean search must match as full words. + +This command searches the agenda files, and in addition the files listed +in `org-agenda-text-search-extra-files'. + +\(fn &optional TODO-ONLY STRING EDIT-AT)" t nil) + ;;; Agenda TODO list (defvar org-select-this-todo-keyword nil) @@ -4418,6 +4578,15 @@ for a keyword. A numeric prefix directly selects the Nth keyword in (org-agenda-finalize) (setq buffer-read-only t)))) +(autoload 'org-todo-list "org-agenda" "\ +Show all (not done) TODO entries from all agenda file in a single list. +The prefix arg can be used to select a specific TODO keyword and limit +the list to these. When using \\[universal-argument], you will be prompted +for a keyword. A numeric prefix directly selects the Nth keyword in +`org-todo-keywords-1'. + +\(fn &optional ARG)" t nil) + ;;; Agenda tags match ;;;###autoload @@ -4503,6 +4672,12 @@ The prefix arg TODO-ONLY limits the search to TODO entries." (org-agenda-finalize) (setq buffer-read-only t)))) +(autoload 'org-tags-view "org-agenda" "\ +Show all headlines for all `org-agenda-files' matching a TAGS criterion. +The prefix arg TODO-ONLY limits the search to TODO entries. + +\(fn &optional TODO-ONLY MATCH)" t nil) + ;;; Agenda Finding stuck projects (defvar org-agenda-skip-regexp nil @@ -4731,6 +4906,14 @@ of what a project is and how to check if it stuck, customize the variable (setq org-agenda-redo-command `(org-agenda-list-stuck-projects ,current-prefix-arg))))) +(autoload 'org-agenda-list-stuck-projects "org-agenda" "\ +Create agenda view for projects that are stuck. +Stuck projects are project that have no next actions. For the definitions +of what a project is and how to check if it stuck, customize the variable +`org-stuck-projects'. + +\(fn &rest IGNORE)" t nil) + ;;; Diary integration (defvar org-disable-agenda-to-diary nil) ;Dynamically-scoped param. @@ -4909,6 +5092,35 @@ function from a program - use `org-agenda-get-day-entries' instead." (if results (concat (org-agenda-finalize-entries results) "\n")))) +(autoload 'org-diary "org-agenda" "\ +Return diary information from org files. +This function can be used in a \"sexp\" diary entry in the Emacs calendar. +It accesses org files and extracts information from those files to be +listed in the diary. The function accepts arguments specifying what +items should be listed. For a list of arguments allowed here, see the +variable `org-agenda-entry-types'. + +The call in the diary file should look like this: + + &%%(org-diary) ~/path/to/some/orgfile.org + +Use a separate line for each org file to check. Or, if you omit the file name, +all files listed in `org-agenda-files' will be checked automatically: + + &%%(org-diary) + +If you don't give any arguments (as in the example above), the default +arguments (:deadline :scheduled :timestamp :sexp) are used. +So the example above may also be written as + + &%%(org-diary :deadline :timestamp :sexp :scheduled) + +The function expects the lisp variables `entry' and `date' to be provided +by the caller, because this is how the calendar works. Don't use this +function from a program - use `org-agenda-get-day-entries' instead. + +\(fn &rest ARGS)" nil nil) + ;;; Agenda entry finders (defun org-agenda-get-day-entries (file date &rest args) @@ -5035,7 +5247,6 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (>= days n) (<= days n)))) -;;;###autoload (defun org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item (&optional end) "Do we have a reason to ignore this TODO entry because it has a time stamp?" @@ -5098,6 +5309,11 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (match-string 1) org-agenda-todo-ignore-timestamp)) (t)))))))))) +(autoload 'org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item "org-agenda" "\ +Do we have a reason to ignore this TODO entry because it has a time stamp? + +\(fn &optional END)" nil nil) + (defconst org-agenda-no-heading-message "No heading for this item in buffer or region.") @@ -5133,12 +5349,13 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', "\\|\\(<%%\\(([^>\n]+)\\)>\\)")) marker hdmarker deadlinep scheduledp clockp closedp inactivep donep tmp priority category category-pos ee txt timestr tags - b0 b3 e3 head todo-state end-of-match show-all warntime) + b0 b3 e3 head todo-state end-of-match show-all warntime habitp) (goto-char (point-min)) (while (setq end-of-match (re-search-forward regexp nil t)) (setq b0 (match-beginning 0) b3 (match-beginning 3) e3 (match-end 3) todo-state (save-match-data (ignore-errors (org-get-todo-state))) + habitp (and (functionp 'org-is-habit-p) (save-match-data (org-is-habit-p))) show-all (or (eq org-agenda-repeating-timestamp-show-all t) (member todo-state org-agenda-repeating-timestamp-show-all))) @@ -5190,7 +5407,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (setq txt (org-agenda-format-item (if inactivep org-agenda-inactive-leader nil) head category tags timestr - remove-re t))) + remove-re habitp))) (setq priority (org-get-priority txt)) (org-add-props txt props 'org-marker marker 'org-hd-marker hdmarker) @@ -5237,7 +5454,8 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', tags (save-excursion (org-backward-heading-same-level 0) (org-get-tags-at)) todo-state (org-get-todo-state) - warntime (org-entry-get (point) "APPT_WARNTIME")) + warntime (org-entry-get (point) "APPT_WARNTIME") + extra nil) (dolist (r (if (stringp result) (list result) @@ -5848,7 +6066,7 @@ FRACTION is what fraction of the head-warning time has passed." (concat "<" start-time ">")) ((= d2 d0) (concat "<" end-time ">"))) - remove-re t)))) + remove-re)))) (org-add-props txt props 'org-marker marker 'org-hd-marker hdmarker 'type "block" 'date date @@ -7059,7 +7277,7 @@ Negative selection means regexp must not match for selection of an entry." (move-beginning-of-line 1))))) (defun org-agenda-later (arg) - "Go forward in time by thee current span. + "Go forward in time by the current span. With prefix ARG, go forward that many times the current span." (interactive "p") (org-agenda-check-type t 'agenda) @@ -7071,7 +7289,7 @@ With prefix ARG, go forward that many times the current span." greg2) (cond ((numberp span) - (setq sd (+ span sd))) + (setq sd (+ (* span arg) sd))) ((eq span 'day) (setq sd (+ arg sd))) ((eq span 'week) @@ -8654,7 +8872,6 @@ When `org-agenda-diary-file' points to a file, `org-agenda-diary-entry-in-org-file' is called instead to create entries in that Org-mode file." (interactive) - (org-agenda-check-type t 'agenda 'timeline) (if (not (eq org-agenda-diary-file 'diary-file)) (org-agenda-diary-entry-in-org-file) (require 'diary-lib) @@ -8765,6 +8982,12 @@ This is a command that has to be installed in `calendar-mode-map'." (calendar-cursor-to-date)) nil)) +(autoload 'org-calendar-goto-agenda "org-agenda" "\ +Compute the Org-mode agenda for the calendar date displayed at the cursor. +This is a command that has to be installed in `calendar-mode-map'. + +\(fn)" t nil) + (defun org-agenda-convert-date () (interactive) (org-agenda-check-type t 'agenda 'timeline) @@ -9207,6 +9430,40 @@ to override `appt-message-warning-time'." (message "No event to add") (message "Added %d event%s for today" cnt (if (> cnt 1) "s" ""))))) +(autoload 'org-agenda-to-appt "org-agenda" "\ +Activate appointments found in `org-agenda-files'. +With a \\[universal-argument] prefix, refresh the list of +appointments. + +If FILTER is t, interactively prompt the user for a regular +expression, and filter out entries that don't match it. + +If FILTER is a string, use this string as a regular expression +for filtering entries out. + +If FILTER is a function, filter out entries against which +calling the function returns nil. This function takes one +argument: an entry from `org-agenda-get-day-entries'. + +FILTER can also be an alist with the car of each cell being +either 'headline or 'category. For example: + + '((headline \"IMPORTANT\") + (category \"Work\")) + +will only add headlines containing IMPORTANT or headlines +belonging to the \"Work\" category. + +ARGS are symbols indicating what kind of entries to consider. +By default `org-agenda-to-appt' will use :deadline, :scheduled +and :timestamp entries. See the docstring of `org-diary' for +details and examples. + +If an entry as a APPT_WARNTIME property, its value will be used +to override `appt-message-warning-time'. + +\(fn &optional REFRESH FILTER &rest ARGS)" t nil) + (defun org-agenda-todayp (date) "Does DATE mean today, when considering `org-extend-today-until'?" (let ((today (org-today)) diff --git a/lisp/org/org-archive.el b/lisp/org/org-archive.el index 29b883824ef..d41a1d38a89 100644 --- a/lisp/org/org-archive.el +++ b/lisp/org/org-archive.el @@ -181,6 +181,7 @@ if LOCATION is not given, the value of `org-archive-location' is used." (file-name-nondirectory (buffer-file-name (buffer-base-buffer)))))) +;;;###autoload (defun org-archive-subtree (&optional find-done) "Move the current subtree to the archive. The archive can be a certain top-level heading in the current file, or in @@ -369,6 +370,7 @@ this heading." (if (looking-at "^[ \t]*$") (outline-next-visible-heading 1)))) +;;;###autoload (defun org-archive-to-archive-sibling () "Archive the current heading by moving it under the archive sibling. The archive sibling is a sibling of the heading with the heading name @@ -483,6 +485,7 @@ When TAG is non-nil, don't move trees, but mark them with the ARCHIVE tag." (goto-char end))))) (message "%d trees archived" cntarch))) +;;;###autoload (defun org-toggle-archive-tag (&optional find-done) "Toggle the archive tag for the current headline. With prefix ARG, check all children of current headline and offer tagging @@ -537,4 +540,8 @@ This command is set with the variable `org-archive-default-command'." (provide 'org-archive) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-archive.el ends here diff --git a/lisp/org/org-ascii.el b/lisp/org/org-ascii.el index 655b8db668d..575b830f2c0 100644 --- a/lisp/org/org-ascii.el +++ b/lisp/org/org-ascii.el @@ -553,6 +553,7 @@ publishing directory." (kill-buffer (current-buffer))) (current-buffer)))) +;;;###autoload (defun org-export-ascii-preprocess (parameters) "Do extra work for ASCII export." ;; @@ -726,4 +727,8 @@ publishing directory." (provide 'org-ascii) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-ascii.el ends here diff --git a/lisp/org/org-attach.el b/lisp/org/org-attach.el index e02d7e07a4c..25bd6e89d97 100644 --- a/lisp/org/org-attach.el +++ b/lisp/org/org-attach.el @@ -451,4 +451,8 @@ prefix." (provide 'org-attach) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-attach.el ends here diff --git a/lisp/org/org-bbdb.el b/lisp/org/org-bbdb.el index be395ad3927..0fcf27565d5 100644 --- a/lisp/org/org-bbdb.el +++ b/lisp/org/org-bbdb.el @@ -338,7 +338,7 @@ This is used by Org to re-create the anniversary hash table." (add-hook 'bbdb-after-change-hook 'org-bbdb-updated) ;;;###autoload -(defun org-bbdb-anniversaries() +(defun org-bbdb-anniversaries () "Extract anniversaries from BBDB for display in the agenda." (require 'bbdb) (require 'diary-lib) @@ -433,4 +433,8 @@ END:VEVENT\n" (provide 'org-bbdb) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-bbdb.el ends here diff --git a/lisp/org/org-beamer.el b/lisp/org/org-beamer.el index b5f3013e000..73d15416e60 100644 --- a/lisp/org/org-beamer.el +++ b/lisp/org/org-beamer.el @@ -228,7 +228,7 @@ the tag does not have any semantic meaning." (org-entry-put nil "BEAMER_env" (match-string 1 tags))) (t (org-entry-delete nil "BEAMER_env")))))) - +;;;###autoload (defun org-beamer-sectioning (level text) "Return the sectioning entry for the current headline. LEVEL is the reduced level of the headline. @@ -370,6 +370,7 @@ org-beamer-extra are all scoped into this function dynamically." "The keymap for `org-beamer-mode'.") (define-key org-beamer-mode-map "\C-c\C-b" 'org-beamer-select-environment) +;;;###autoload (define-minor-mode org-beamer-mode "Special support for editing Org-mode files made to export to beamer." nil " Bm" nil) diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el index 9d20814a2ca..1dfffc6fe1d 100644 --- a/lisp/org/org-capture.el +++ b/lisp/org/org-capture.el @@ -434,9 +434,10 @@ Turning on this mode runs the normal hook `org-capture-mode-hook'." ;;; The main commands -;;;###autoload (defvar org-capture-initial nil) (defvar org-capture-entry nil) + +;;;###autoload (defun org-capture-string (string &optional keys) (interactive "sInitial text: \n") (let ((org-capture-initial string) @@ -1249,7 +1250,8 @@ Of course, if exact position has been required, just put it there." (save-restriction (widen) (goto-char pos) - (bookmark-set "org-capture-last-stored") + (with-demoted-errors + (bookmark-set "org-capture-last-stored")) (move-marker org-capture-last-stored-marker (point))))))) (defun org-capture-narrow (beg end) @@ -1280,7 +1282,7 @@ Point will remain at the first line after the inserted text." (goto-char pos))) (defvar org-clock-marker) ; Defined in org.el -;;;###autoload + (defun org-capture-insert-template-here () (let* ((template (org-capture-get :template)) (type (org-capture-get :type)) diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index bb6f2b955b3..3f252fd8c32 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el @@ -201,7 +201,10 @@ file name play this sound file. If not possible, fall back to beep" (const :tag "Standard beep" t) (file :tag "Play sound file"))) -(defcustom org-clock-modeline-total 'auto +(define-obsolete-variable-alias 'org-clock-modeline-total + 'org-clock-mode-line-total "24.3") + +(defcustom org-clock-mode-line-total 'auto "Default setting for the time included for the mode line clock. This can be overruled locally using the CLOCK_MODELINE_TOTAL property. Allowed values are: @@ -962,6 +965,7 @@ to be CLOCKED OUT."))) (not (memq ch '(?K ?G ?S ?C)))) fail-quietly))))) +;;;###autoload (defun org-resolve-clocks (&optional only-dangling-p prompt-fn last-valid) "Resolve all currently open org-mode clocks. If `only-dangling-p' is non-nil, only ask to resolve dangling @@ -1059,6 +1063,8 @@ so long." (setq org-clock-current-task nil)) (defvar org-clock-out-time nil) ; store the time of the last clock-out + +;;;###autoload (defun org-clock-in (&optional select start-time) "Start the clock on the current item. If necessary, clock-out of the currently active clock. @@ -1132,7 +1138,6 @@ make this the default behavior.)" (if (and (eobp) (not (org-at-heading-p))) (point-at-bol 0) (point))) - (run-hooks 'org-clock-in-prepare-hook) (save-excursion (when (and selected-task (marker-buffer selected-task)) ;; There is a selected task, move to the correct buffer @@ -1151,6 +1156,7 @@ make this the default behavior.)" ;; beginning of the heading, since the ;; user is liking to insert stuff here ;; manually + (run-hooks 'org-clock-in-prepare-hook) (org-clock-history-push)) (org-clock-set-current) (cond ((functionp org-clock-in-switch-to-state) @@ -1310,10 +1316,10 @@ for a todo state to switch to, overriding the existing value This is for the currently running clock as it is displayed in the mode line. This function looks at the properties LAST_REPEAT and in particular CLOCK_MODELINE_TOTAL and the -corresponding variable `org-clock-modeline-total' and then +corresponding variable `org-clock-mode-line-total' and then decides which time to use." (let ((cmt (or (org-entry-get nil "CLOCK_MODELINE_TOTAL") - (symbol-name org-clock-modeline-total))) + (symbol-name org-clock-mode-line-total))) (lr (org-entry-get nil "LAST_REPEAT"))) (cond ((equal cmt "current") @@ -1428,6 +1434,7 @@ line and position cursor in that line." (and (re-search-forward org-property-end-re nil t) (goto-char (match-beginning 0)))))))) +;;;###autoload (defun org-clock-out (&optional switch-to-state fail-quietly at-time) "Stop the currently running clock. Throw an error if there is no running clock and FAIL-QUIETLY is nil. @@ -1587,6 +1594,7 @@ UPDOWN tells whether to change 'up or 'down." ((eq org-ts-what 'year) (* 24 3600 365.2))))) org-ts-what 'updown))))))) +;;;###autoload (defun org-clock-cancel () "Cancel the running clock by removing the start timestamp." (interactive) @@ -1613,6 +1621,7 @@ UPDOWN tells whether to change 'up or 'down." (message "Clock canceled") (run-hooks 'org-clock-cancel-hook)) +;;;###autoload (defun org-clock-goto (&optional select) "Go to the currently clocked-in entry, or to the most recently clocked one. With prefix arg SELECT, offer recently clocked tasks for selection." @@ -1651,6 +1660,7 @@ With prefix arg SELECT, offer recently clocked tasks for selection." (let ((range (org-clock-special-range 'today))) (org-clock-sum (car range) (cadr range) nil :org-clock-minutes-today))) +;;;###autoload (defun org-clock-sum (&optional tstart tend headline-filter propname) "Sum the times for each subtree. Puts the resulting times in minutes as a text property on each headline. @@ -1749,6 +1759,7 @@ PROPNAME lets you set a custom text property instead of :org-clock-minutes." (org-clock-sum tstart) org-clock-file-total-minutes))) +;;;###autoload (defun org-clock-display (&optional total-only) "Show subtree times in the entire buffer. If TOTAL-ONLY is non-nil, only show the total time for the entire file @@ -1859,7 +1870,7 @@ and is only done if the variable `org-clock-out-when-done' is not nil." 'org-clock-out-if-current) ;;;###autoload -(defun org-get-clocktable (&rest props) +(defun org-clock-get-clocktable (&rest props) "Get a formatted clocktable with parameters according to PROPS. The table is created in a temporary buffer, fully formatted and fontified, and then returned." @@ -1879,6 +1890,7 @@ fontified, and then returned." (re-search-forward "^[ \t]*#\\+END" nil t) (point-at-bol))))) +;;;###autoload (defun org-clock-report (&optional arg) "Create a table containing a report about clocked time. If the cursor is inside an existing clocktable block, then the table @@ -2165,6 +2177,7 @@ the currently selected interval size." (org-update-dblock) t))))) +;;;###autoload (defun org-dblock-write:clocktable (params) "Write the standard clocktable." (setq params (org-combine-plists org-clocktable-defaults params)) @@ -2675,6 +2688,48 @@ This function is made for clock tables." (defvar org-clock-loaded nil "Was the clock file loaded?") +(defun org-clock-update-time-maybe () + "If this is a CLOCK line, update it and return t. +Otherwise, return nil." + (interactive) + (save-excursion + (beginning-of-line 1) + (skip-chars-forward " \t") + (when (looking-at org-clock-string) + (let ((re (concat "[ \t]*" org-clock-string + " *[[<]\\([^]>]+\\)[]>]\\(-+[[<]\\([^]>]+\\)[]>]" + "\\([ \t]*=>.*\\)?\\)?")) + ts te h m s neg) + (cond + ((not (looking-at re)) + nil) + ((not (match-end 2)) + (when (and (equal (marker-buffer org-clock-marker) (current-buffer)) + (> org-clock-marker (point)) + (<= org-clock-marker (point-at-eol))) + ;; The clock is running here + (setq org-clock-start-time + (apply 'encode-time + (org-parse-time-string (match-string 1)))) + (org-clock-update-mode-line))) + (t + (and (match-end 4) (delete-region (match-beginning 4) (match-end 4))) + (end-of-line 1) + (setq ts (match-string 1) + te (match-string 3)) + (setq s (- (org-float-time + (apply 'encode-time (org-parse-time-string te))) + (org-float-time + (apply 'encode-time (org-parse-time-string ts)))) + neg (< s 0) + s (abs s) + h (floor (/ s 3600)) + s (- s (* 3600 h)) + m (floor (/ s 60)) + s (- s (* 60 s))) + (insert " => " (format (if neg "-%d:%02d" "%2d:%02d") h m)) + t)))))) + (defun org-clock-save () "Persist various clock-related data to disk. The details of what will be saved are regulated by the variable @@ -2766,15 +2821,13 @@ The details of what will be saved are regulated by the variable (if (outline-invisible-p) (org-show-context)))))))))) -;;;###autoload -(defun org-clock-persistence-insinuate () - "Set up hooks for clock persistence." - (add-hook 'org-mode-hook 'org-clock-load) - (add-hook 'kill-emacs-hook 'org-clock-save)) - ;; Suggested bindings (org-defkey org-mode-map "\C-c\C-x\C-e" 'org-clock-modify-effort-estimate) (provide 'org-clock) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-clock.el ends here diff --git a/lisp/org/org-colview.el b/lisp/org/org-colview.el index e17210b7ff5..1be105d44fb 100644 --- a/lisp/org/org-colview.el +++ b/lisp/org/org-colview.el @@ -686,6 +686,7 @@ around it." (move-marker org-columns-top-level-marker org-entry-property-inherited-from) (move-marker org-columns-top-level-marker (point)))) +;;;###autoload (defun org-columns (&optional columns-fmt-string) "Turn on column view on an org-mode file. When COLUMNS-FMT-STRING is non-nil, use it as the column format." @@ -1222,6 +1223,7 @@ of fields." (push row tbl))))) (append (list title 'hline) (nreverse tbl))))) +;;;###autoload (defun org-dblock-write:columnview (params) "Write the column view table. PARAMS is a property list of parameters: @@ -1334,6 +1336,7 @@ and tailing newline characters." (t (error "Garbage in listtable: %s" x)))) tbl "\n")) +;;;###autoload (defun org-insert-columns-dblock () "Create a dynamic block capturing a column view table." (interactive) @@ -1357,6 +1360,7 @@ and tailing newline characters." (defvar org-agenda-columns-compute-summary-properties); defined in org-agenda.el (defvar org-agenda-columns-add-appointments-to-effort-sum); as well +;;;###autoload (defun org-agenda-columns () "Turn on or update column view in the agenda." (interactive) diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el index 76042849663..6e582b8c1d6 100644 --- a/lisp/org/org-compat.el +++ b/lisp/org/org-compat.el @@ -327,7 +327,7 @@ Works on both Emacs and XEmacs." (apply 'propertize string properties))) (defmacro org-find-library-dir (library) - `(file-name-directory (locate-library ,library))) + `(file-name-directory (or (locate-library ,library) ""))) (defun org-count-lines (s) "How many lines in string S?" diff --git a/lisp/org/org-datetree.el b/lisp/org/org-datetree.el index 4ff8e7d00d0..a2b2e5621da 100644 --- a/lisp/org/org-datetree.el +++ b/lisp/org/org-datetree.el @@ -207,4 +207,8 @@ before running this command, even though the command tries to be smart." (provide 'org-datetree) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-datetree.el ends here diff --git a/lisp/org/org-docbook.el b/lisp/org/org-docbook.el index 22cc5a7cdac..a40d5b969f3 100644 --- a/lisp/org/org-docbook.el +++ b/lisp/org/org-docbook.el @@ -1451,4 +1451,8 @@ the alist of previous items." (provide 'org-docbook) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-docbook.el ends here diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index 8b44d4936f5..5da2dec3fb3 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el @@ -478,7 +478,7 @@ containing `:begin', `:end', `:hiddenp', `:contents-begin', Assume point is at the beginning of the block." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_CENTER" limit t))) + (re-search-forward "^[ \t]*#\\+END_CENTER[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((block-end-line (match-beginning 0))) @@ -494,7 +494,8 @@ Assume point is at the beginning of the block." (forward-line) (point))) (end (save-excursion (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'center-block (nconc (list :begin begin @@ -524,7 +525,7 @@ Return a list whose CAR is `drawer' and CDR is a plist containing Assume point is at beginning of drawer." (let ((case-fold-search t)) - (if (not (save-excursion (re-search-forward "^[ \t]*:END:" limit t))) + (if (not (save-excursion (re-search-forward "^[ \t]*:END:[ \t]*$" limit t))) ;; Incomplete drawer: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((drawer-end-line (match-beginning 0))) @@ -544,7 +545,8 @@ Assume point is at beginning of drawer." (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'drawer (nconc (list :begin begin @@ -578,7 +580,8 @@ containing `:block-name', `:begin', `:end', `:hiddenp', Assume point is at beginning of dynamic block." (let ((case-fold-search t)) - (if (not (save-excursion (re-search-forward org-dblock-end-re limit t))) + (if (not (save-excursion + (re-search-forward "^[ \t]*#\\+END:?[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((block-end-line (match-beginning 0))) @@ -598,7 +601,8 @@ Assume point is at beginning of dynamic block." (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'dynamic-block (nconc (list :begin begin @@ -653,7 +657,8 @@ Assume point is at the beginning of the footnote definition." (contents-end (and contents-begin ending)) (end (progn (goto-char ending) (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'footnote-definition (nconc (list :label label @@ -904,7 +909,8 @@ Assume point is at beginning of the inline task." (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol)))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position)))) (inlinetask (list 'inlinetask (nconc @@ -1108,7 +1114,8 @@ Assume point is at the beginning of the list." (unless (bolp) (forward-line)) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) ;; Return value. (list 'plain-list (nconc @@ -1145,7 +1152,7 @@ containing `:begin', `:end', `:hiddenp', `:contents-begin', Assume point is at the beginning of the block." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_QUOTE" limit t))) + (re-search-forward "^[ \t]*#\\+END_QUOTE[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((block-end-line (match-beginning 0))) @@ -1162,7 +1169,8 @@ Assume point is at the beginning of the block." (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'quote-block (nconc (list :begin begin @@ -1227,7 +1235,8 @@ Assume point is at the beginning of the block." (type (progn (looking-at "[ \t]*#\\+BEGIN_\\(S-+\\)") (upcase (match-string-no-properties 1))))) (if (not (save-excursion - (re-search-forward (concat "^[ \t]*#\\+END_" type) limit t))) + (re-search-forward + (format "^[ \t]*#\\+END_%s[ \t]*$" type) limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((block-end-line (match-beginning 0))) @@ -1243,8 +1252,9 @@ Assume point is at the beginning of the block." (pos-before-blank (progn (goto-char block-end-line) (forward-line) (point))) - (end (progn (org-skip-whitespace) - (if (eobp) (point) (point-at-bol))))) + (end (progn (skip-chars-forward " \r\t\n" limit) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'special-block (nconc (list :type type @@ -1295,7 +1305,8 @@ keywords." (begin (point-at-bol)) (pos-before-blank (progn (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'babel-call (list :begin begin :end end @@ -1338,7 +1349,8 @@ as keywords." (status (if time 'closed 'running)) (post-blank (let ((before-blank (progn (forward-line) (point)))) (skip-chars-forward " \r\t\n" limit) - (unless (eobp) (beginning-of-line)) + (skip-chars-backward " \t") + (unless (bolp) (end-of-line)) (count-lines before-blank (point)))) (end (point))) (list 'clock @@ -1396,7 +1408,8 @@ Assume point is at comment beginning." (point))) (end (progn (goto-char com-end) (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'comment (nconc (list :begin begin @@ -1425,7 +1438,7 @@ containing `:begin', `:end', `:hiddenp', `:value' and Assume point is at comment block beginning." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_COMMENT" limit t))) + (re-search-forward "^[ \t]*#\\+END_COMMENT[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -1438,7 +1451,8 @@ Assume point is at comment block beginning." (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol)))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position)))) (value (buffer-substring-no-properties contents-begin contents-end))) (list 'comment-block @@ -1470,7 +1484,7 @@ containing `:begin', `:end', `:number-lines', `:preserve-indent', `:switches', `:value' and `:post-blank' keywords." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_EXAMPLE" limit t))) + (re-search-forward "^[ \t]*#\\+END_EXAMPLE[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -1502,12 +1516,15 @@ containing `:begin', `:end', `:number-lines', `:preserve-indent', (begin (car keywords)) (contents-begin (progn (forward-line) (point))) (hidden (org-invisible-p2)) - (value (buffer-substring-no-properties contents-begin contents-end)) + (value (org-unescape-code-in-string + (buffer-substring-no-properties + contents-begin contents-end))) (pos-before-blank (progn (goto-char contents-end) (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'example-block (nconc (list :begin begin @@ -1529,7 +1546,8 @@ CONTENTS is nil." (let ((switches (org-element-property :switches example-block))) (concat "#+BEGIN_EXAMPLE" (and switches (concat " " switches)) "\n" (org-remove-indentation - (org-element-property :value example-block)) + (org-escape-code-in-string + (org-element-property :value example-block))) "#+END_EXAMPLE"))) @@ -1549,7 +1567,8 @@ Assume point is at export-block beginning." (type (progn (looking-at "[ \t]*#\\+BEGIN_\\(\\S-+\\)") (upcase (org-match-string-no-properties 1))))) (if (not (save-excursion - (re-search-forward (concat "^[ \t]*#\\+END_" type) limit t))) + (re-search-forward + (format "^[ \t]*#\\+END_%s[ \t]*$" type) limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -1562,7 +1581,8 @@ Assume point is at export-block beginning." (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol)))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position)))) (value (buffer-substring-no-properties contents-begin contents-end))) (list 'export-block @@ -1612,7 +1632,8 @@ Assume point is at the beginning of the fixed-width area." (forward-line)) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'fixed-width (nconc (list :begin begin @@ -1642,7 +1663,8 @@ containing `:begin', `:end' and `:post-blank' keywords." (begin (car keywords)) (post-hr (progn (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'horizontal-rule (nconc (list :begin begin @@ -1675,7 +1697,8 @@ keywords." (match-end 0) (point-at-eol)))) (pos-before-blank (progn (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'keyword (list :key key :value value @@ -1711,12 +1734,14 @@ Assume point is at the beginning of the latex environment." (env (progn (looking-at "^[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}") (regexp-quote (match-string 1)))) (code-end - (progn (re-search-forward (format "^[ \t]*\\\\end{%s}" env) limit t) + (progn (re-search-forward + (format "^[ \t]*\\\\end{%s}[ \t]*$" env) limit t) (forward-line) (point))) (value (buffer-substring-no-properties code-begin code-end)) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'latex-environment (nconc (list :begin begin @@ -1744,69 +1769,80 @@ containing `:begin', `:end', `:contents-begin' and Assume point is at the beginning of the paragraph." (save-excursion - (let* (;; INNER-PAR-P is non-nil when paragraph is at the + (let* ((contents-begin (point)) + ;; INNER-PAR-P is non-nil when paragraph is at the ;; beginning of an item or a footnote reference. In that ;; case, we mustn't look for affiliated keywords since they ;; belong to the container. (inner-par-p (not (bolp))) - (contents-begin (point)) (keywords (unless inner-par-p (org-element--collect-affiliated-keywords))) (begin (if inner-par-p contents-begin (car keywords))) (before-blank (let ((case-fold-search t)) (end-of-line) - (re-search-forward org-element-paragraph-separate limit 'm) - (while (and (/= (point) limit) - (cond - ;; Skip non-existent or incomplete drawer. - ((save-excursion - (beginning-of-line) - (and (looking-at "[ \t]*:\\S-") - (or (not (looking-at org-drawer-regexp)) - (not (save-excursion - (re-search-forward - "^[ \t]*:END:" limit t))))))) - ;; Stop at comments. - ((save-excursion - (beginning-of-line) - (not (looking-at "[ \t]*#\\S-"))) nil) - ;; Skip incomplete dynamic blocks. - ((save-excursion - (beginning-of-line) - (looking-at "[ \t]*#\\+BEGIN: ")) - (not (save-excursion - (re-search-forward - "^[ \t]*\\+END:" limit t)))) - ;; Skip incomplete blocks. - ((save-excursion - (beginning-of-line) - (looking-at "[ \t]*#\\+BEGIN_\\(\\S-+\\)")) - (not (save-excursion - (re-search-forward - (concat "^[ \t]*#\\+END_" - (match-string 1)) - limit t)))) - ;; Skip incomplete latex environments. - ((save-excursion - (beginning-of-line) - (looking-at "^[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}")) - (not (save-excursion - (re-search-forward - (format "^[ \t]*\\\\end{%s}" - (match-string 1)) - limit t)))) - ;; Skip ill-formed keywords. - ((not (save-excursion - (beginning-of-line) - (looking-at "[ \t]*#\\+\\S-+:")))))) - (re-search-forward org-element-paragraph-separate limit 'm)) - (if (eobp) (point) (goto-char (line-beginning-position))))) + (if (not (re-search-forward + org-element-paragraph-separate limit 'm)) + limit + ;; A matching `org-element-paragraph-separate' is not + ;; necessarily the end of the paragraph. In + ;; particular, lines starting with # or : as a first + ;; non-space character are ambiguous. We have check + ;; if they are valid Org syntax (i.e. not an + ;; incomplete keyword). + (beginning-of-line) + (while (not + (or + ;; There's no ambiguity for other symbols or + ;; empty lines: stop here. + (looking-at "[ \t]*\\(?:[^:#]\\|$\\)") + ;; Stop at valid fixed-width areas. + (looking-at "[ \t]*:\\(?: \\|$\\)") + ;; Stop at drawers. + (and (looking-at org-drawer-regexp) + (save-excursion + (re-search-forward + "^[ \t]*:END:[ \t]*$" limit t))) + ;; Stop at valid comments. + (looking-at "[ \t]*#\\(?: \\|$\\)") + ;; Stop at valid dynamic blocks. + (and (looking-at org-dblock-start-re) + (save-excursion + (re-search-forward + "^[ \t]*#\\+END:?[ \t]*$" limit t))) + ;; Stop at valid blocks. + (and (looking-at + "[ \t]*#\\+BEGIN_\\(\\S-+\\)") + (save-excursion + (re-search-forward + (format "^[ \t]*#\\+END_%s[ \t]*$" + (match-string 1)) + limit t))) + ;; Stop at valid latex environments. + (and (looking-at + "^[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}[ \t]*$") + (save-excursion + (re-search-forward + (format "^[ \t]*\\\\end{%s}[ \t]*$" + (match-string 1)) + limit t))) + ;; Stop at valid keywords. + (looking-at "[ \t]*#\\+\\S-+:") + ;; Skip everything else. + (not + (progn + (end-of-line) + (re-search-forward org-element-paragraph-separate + limit 'm))))) + (beginning-of-line))) + (if (= (point) limit) limit + (goto-char (line-beginning-position))))) (contents-end (progn (skip-chars-backward " \r\t\n" contents-begin) (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'paragraph (nconc (list :begin begin @@ -1837,7 +1873,8 @@ and `:post-blank' keywords." (begin (point)) (post-blank (let ((before-blank (progn (forward-line) (point)))) (skip-chars-forward " \r\t\n" limit) - (unless (eobp) (beginning-of-line)) + (skip-chars-backward " \t") + (unless (bolp) (end-of-line)) (count-lines before-blank (point)))) (end (point)) closed deadline scheduled) @@ -1895,7 +1932,7 @@ Assume point is at the beginning of the property drawer." (hidden (org-invisible-p2)) (properties (let (val) - (while (not (looking-at "^[ \t]*:END:")) + (while (not (looking-at "^[ \t]*:END:[ \t]*$")) (when (looking-at "[ \t]*:\\([A-Za-z][-_A-Za-z0-9]*\\):") (push (cons (org-match-string-no-properties 1) (org-trim @@ -1908,7 +1945,8 @@ Assume point is at the beginning of the property drawer." (point-at-bol))) (pos-before-blank (progn (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'property-drawer (list :begin begin :end end @@ -1974,7 +2012,8 @@ containing `:language', `:switches', `:parameters', `:begin', Assume point is at the beginning of the block." (let ((case-fold-search t)) - (if (not (save-excursion (re-search-forward "^[ \t]*#\\+END_SRC" limit t))) + (if (not (save-excursion (re-search-forward "^[ \t]*#\\+END_SRC[ \t]*$" + limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -2017,13 +2056,15 @@ Assume point is at the beginning of the block." ;; Get visibility status. (hidden (progn (forward-line) (org-invisible-p2))) ;; Retrieve code. - (value (buffer-substring-no-properties (point) contents-end)) + (value (org-unescape-code-in-string + (buffer-substring-no-properties (point) contents-end))) (pos-before-blank (progn (goto-char contents-end) (forward-line) (point))) ;; Get position after ending blank lines. (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'src-block (nconc (list :language language @@ -2051,7 +2092,6 @@ CONTENTS is nil." (params (org-element-property :parameters src-block)) (value (let ((val (org-element-property :value src-block))) (cond - (org-src-preserve-indentation val) ((zerop org-edit-src-content-indentation) (org-remove-indentation val)) @@ -2065,7 +2105,7 @@ CONTENTS is nil." (concat (and lang (concat " " lang)) (and switches (concat " " switches)) (and params (concat " " params)))) - value + (org-escape-code-in-string value) "#+END_SRC"))) @@ -2087,7 +2127,10 @@ Assume point is at the beginning of the table." (type (if (org-at-table.el-p) 'table.el 'org)) (keywords (org-element--collect-affiliated-keywords)) (begin (car keywords)) - (table-end (goto-char (marker-position (org-table-end t)))) + (table-end + (if (re-search-forward org-table-any-border-regexp limit 'm) + (goto-char (match-beginning 0)) + (point))) (tblfm (let (acc) (while (looking-at "[ \t]*#\\+TBLFM: +\\(.*\\)[ \t]*$") (push (org-match-string-no-properties 1) acc) @@ -2095,7 +2138,8 @@ Assume point is at the beginning of the table." acc)) (pos-before-blank (point)) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'table (nconc (list :begin begin @@ -2179,7 +2223,7 @@ containing `:begin', `:end', `:contents-begin', `:contents-end', Assume point is at beginning of the block." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_VERSE" limit t))) + (re-search-forward "^[ \t]*#\\+END_VERSE[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -2192,7 +2236,8 @@ Assume point is at beginning of the block." (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'verse-block (nconc (list :begin begin @@ -2367,6 +2412,7 @@ LIMIT bounds the search. Return value is a cons cell whose CAR is `entity' or `latex-fragment' and CDR is beginning position." (save-excursion + (unless (bolp) (backward-char)) (let ((matchers (remove "begin" (plist-get org-format-latex-options :matchers))) ;; ENTITY-RE matches both LaTeX commands and Org entities. @@ -3044,6 +3090,7 @@ LIMIT bounds the search. Return value is a cons cell whose CAR is either `subscript' or `superscript' and CDR is beginning position." (save-excursion + (unless (bolp) (backward-char)) (when (re-search-forward org-match-substring-regexp limit t) (cons (if (string= (match-string 2) "_") 'subscript 'superscript) (match-beginning 2))))) @@ -3838,6 +3885,15 @@ Return value is an alist whose CAR is position and CDR the object type, as a symbol. OBJECTS is the previous candidates alist." + ;; Filter out any object found but not belonging to RESTRICTION. + (setq objects + (org-remove-if-not + (lambda (obj) + (let ((type (car obj))) + (memq (or (cdr (assq type org-element-object-successor-alist)) + type) + restriction))) + objects)) (let (next-candidates types-to-search) ;; If no previous result, search every object type in RESTRICTION. ;; Otherwise, keep potential candidates (old objects located after @@ -4235,7 +4291,7 @@ and :post-blank properties." (progn (beginning-of-line) (skip-chars-forward "* ") (setq end (point-at-eol)))) - (and (memq type '(paragraph table-cell verse-block)) + (and (memq type '(paragraph table-row verse-block)) (let ((cbeg (org-element-property :contents-begin element)) (cend (org-element-property @@ -4254,7 +4310,7 @@ and :post-blank properties." candidates))) ;; If ORIGIN is before next object in element, there's ;; no point in looking further. - (if (> (cdr closest-cand) origin) (throw 'exit element) + (if (> (cdr closest-cand) origin) (throw 'exit parent) (let* ((object (progn (goto-char (cdr closest-cand)) (funcall (intern (format "org-element-%s-parser" @@ -4274,7 +4330,9 @@ and :post-blank properties." ;; search to the end of its contents. (t (goto-char cbeg) (org-element-put-property object :parent parent) - (setq parent object end cend))))))) + (setq parent object + restriction (org-element-restriction object) + end cend))))))) parent)))))) (defsubst org-element-nested-p (elem-A elem-B) @@ -4351,6 +4409,10 @@ end of ELEM-A." (cdr overlays))) (goto-char (org-element-property :end elem-B))))) - (provide 'org-element) + +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-element.el ends here diff --git a/lisp/org/org-exp.el b/lisp/org/org-exp.el index 6b506cd1275..a578fe70f07 100644 --- a/lisp/org/org-exp.el +++ b/lisp/org/org-exp.el @@ -48,6 +48,7 @@ (declare-function org-table-colgroup-line-p "org-table" (line)) (declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) +(declare-function org-unescape-code-in-region "org-src" (beg end)) (autoload 'org-export-generic "org-export-generic" "Export using the generic exporter" t) @@ -1790,7 +1791,7 @@ from the buffer." beg-content end-content `(org-protected t original-indentation ,ind org-native-text t)) ;; strip protective commas - (org-strip-protective-commas beg-content end-content) + (org-unescape-code-in-region beg-content end-content) (delete-region (match-beginning 0) (match-end 0)) (save-excursion (goto-char beg) @@ -3230,7 +3231,6 @@ Does include HTML export options as well as TODO and CATEGORY stuff." org-archive-location "org file:~/org/%s.org")) -;;;###autoload (defun org-insert-export-options-template () "Insert into the buffer a template with information for exporting." (interactive) @@ -3348,4 +3348,8 @@ The depends on the variable `org-export-copy-to-kill-ring'." (provide 'org-exp) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-exp.el ends here diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el index 51aead1b8bb..58be52d9e28 100644 --- a/lisp/org/org-faces.el +++ b/lisp/org/org-faces.el @@ -692,13 +692,13 @@ month and 365.24 days for a year)." :group 'org-faces) (defface org-agenda-filter-tags - (org-compatible-face 'modeline + (org-compatible-face 'mode-line nil) "Face for tag(s) in the mode-line when filtering the agenda." :group 'org-faces) (defface org-agenda-filter-category - (org-compatible-face 'modeline + (org-compatible-face 'mode-line nil) "Face for tag(s) in the mode-line when filtering the agenda." :group 'org-faces) @@ -770,9 +770,9 @@ level org-n-level-faces" "Face used to highlight math latex and other special exporter stuff." :group 'org-faces) -(org-copy-face 'modeline 'org-mode-line-clock +(org-copy-face 'mode-line 'org-mode-line-clock "Face used for clock display in mode line.") -(org-copy-face 'modeline 'org-mode-line-clock-overrun +(org-copy-face 'mode-line 'org-mode-line-clock-overrun "Face used for clock display for overrun tasks in mode line." :background "red") diff --git a/lisp/org/org-feed.el b/lisp/org/org-feed.el index 91bf3347953..7724578ae58 100644 --- a/lisp/org/org-feed.el +++ b/lisp/org/org-feed.el @@ -695,4 +695,8 @@ formatted as a string, not the original XML data." (provide 'org-feed) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-feed.el ends here diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el index 3aaa44b7ac3..c598965f4c7 100644 --- a/lisp/org/org-footnote.el +++ b/lisp/org/org-footnote.el @@ -948,4 +948,8 @@ If LABEL is non-nil, delete that footnote instead." (provide 'org-footnote) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-footnote.el ends here diff --git a/lisp/org/org-freemind.el b/lisp/org/org-freemind.el index a05cb554d4b..afc925d5426 100644 --- a/lisp/org/org-freemind.el +++ b/lisp/org/org-freemind.el @@ -1219,8 +1219,8 @@ PATH should be a list of steps, where each step has the form (provide 'org-freemind) - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; org-freemind.el ends here diff --git a/lisp/org/org-html.el b/lisp/org/org-html.el index 79b028638a1..a6ca2d2a03b 100644 --- a/lisp/org/org-html.el +++ b/lisp/org/org-html.el @@ -210,6 +210,7 @@ not be modified. Use the variables `org-export-html-style' to add your own style information." :group 'org-export-html :type 'boolean) + ;;;###autoload (put 'org-export-html-style-include-default 'safe-local-variable 'booleanp) @@ -2380,7 +2381,6 @@ the settings define in the org-... variables." (plist-get htmlize-buffer-places 'content-end))) (kill-buffer htmlbuf)))) -;;;###autoload (defun org-export-htmlize-generate-css () "Create the CSS for all font definitions in the current Emacs session. Use this to create face definitions in your CSS style file that can then @@ -2749,4 +2749,8 @@ the alist of previous items." (provide 'org-html) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-html.el ends here diff --git a/lisp/org/org-icalendar.el b/lisp/org/org-icalendar.el index 8523b442583..a2d2117dcb4 100644 --- a/lisp/org/org-icalendar.el +++ b/lisp/org/org-icalendar.el @@ -684,4 +684,8 @@ a time), or the day by one (if it does not contain a time)." (provide 'org-icalendar) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-icalendar.el ends here diff --git a/lisp/org/org-id.el b/lisp/org/org-id.el index c156e240dbf..f870ccc5a52 100644 --- a/lisp/org/org-id.el +++ b/lisp/org/org-id.el @@ -233,7 +233,6 @@ With optional argument FORCE, force the creation of a new ID." (org-entry-put (point) "ID" nil)) (org-id-get (point) 'create)) -;;;###autoload (defun org-id-copy () "Copy the ID of the entry at point to the kill ring. Create an ID if necessary." @@ -259,7 +258,6 @@ In any case, the ID of the entry is returned." (org-id-add-location id (buffer-file-name (buffer-base-buffer))) id))))) -;;;###autoload (defun org-id-get-with-outline-path-completion (&optional targets) "Use outline-path-completion to retrieve the ID of an entry. TARGETS may be a setting for `org-refile-targets' to define the eligible @@ -276,7 +274,6 @@ It returns the ID of the entry. If necessary, the ID is created." (prog1 (org-id-get pom 'create) (move-marker pom nil)))) -;;;###autoload (defun org-id-get-with-outline-drilling (&optional targets) "Use an outline-cycling interface to retrieve the ID of an entry. This only finds entries in the current buffer, using `org-get-location'. @@ -681,4 +678,8 @@ optional argument MARKERP, return the position as a new marker." (provide 'org-id) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-id.el ends here diff --git a/lisp/org/org-indent.el b/lisp/org/org-indent.el index d006df86747..c4d74fbb2fa 100644 --- a/lisp/org/org-indent.el +++ b/lisp/org/org-indent.el @@ -431,4 +431,8 @@ This function is meant to be called by `after-change-functions'." (provide 'org-indent) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-indent.el ends here diff --git a/lisp/org/org-install.el b/lisp/org/org-install.el dissimilarity index 96% index 8df78b6b68d..a31d8b79209 100644 --- a/lisp/org/org-install.el +++ b/lisp/org/org-install.el @@ -1,37 +1,13 @@ -;;; org-install.el --- Outline-based notes management and organizer -;; Carstens outline-mode for keeping track of everything. -;; Copyright (C) 2004-2012 Free Software Foundation, Inc. -;; -;; Author: Carsten Dominik -;; Keywords: outlines, hypermedia, calendar, wp -;; Homepage: http://orgmode.org -;; Version: 6.06b -;; -;; This file is part of GNU Emacs. -;; -;; GNU Emacs is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs. If not, see . -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;;; Commentary: -;; -;; When Org-mode is distributed with Emacs, this is just a dummy file. -;; In an Org-mode distribution outside Emacs, this file would provide -;; the autoloads. We include this dummy version in Emacs, so that people -;; can leave a (require 'org-install) in .emacs, independently of -;; which kind of distribution they use. -;; - -(provide 'org-install) - -;;; org-install.el ends here +;;; org-install.el --- autogenerated file, do not edit +;; +;;; Code: +(warn "The file org-install is obsolete. +Please change your configuration to (require 'org) instead.") + +(provide 'org-install) + +;; Local Variables: +;; no-byte-compile: t +;; coding: utf-8 +;; End: +;;; org-install.el ends here diff --git a/lisp/org/org-irc.el b/lisp/org/org-irc.el index 787eed7950f..d31b1828ddd 100644 --- a/lisp/org/org-irc.el +++ b/lisp/org/org-irc.el @@ -252,4 +252,8 @@ default." (provide 'org-irc) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-irc.el ends here diff --git a/lisp/org/org-latex.el b/lisp/org/org-latex.el index 933fa56b8dd..9ce84f14e92 100644 --- a/lisp/org/org-latex.el +++ b/lisp/org/org-latex.el @@ -787,14 +787,14 @@ emacs --batch --load=$HOME/lib/emacs/org.el --eval \"(setq org-export-headline-levels 2)\" --visit=MyFile --funcall org-export-as-latex-batch" - (org-export-as-latex org-export-headline-levels 'hidden)) + (org-export-as-latex org-export-headline-levels)) ;;;###autoload (defun org-export-as-latex-to-buffer (arg) "Call `org-export-as-latex` with output to a temporary buffer. No file is created. The prefix ARG is passed through to `org-export-as-latex'." (interactive "P") - (org-export-as-latex arg nil nil "*Org LaTeX Export*") + (org-export-as-latex arg nil "*Org LaTeX Export*") (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window "*Org LaTeX Export*"))) @@ -848,7 +848,7 @@ in a window. A non-interactive call will only return the buffer." (set-mark (point)) ;; to activate the region (goto-char beg) (setq rtn (org-export-as-latex - nil nil ext-plist + nil ext-plist buffer body-only)) (if (fboundp 'deactivate-mark) (deactivate-mark)) (if (and (org-called-interactively-p 'any) (bufferp rtn)) @@ -856,21 +856,19 @@ in a window. A non-interactive call will only return the buffer." rtn))) ;;;###autoload -(defun org-export-as-latex (arg &optional hidden ext-plist - to-buffer body-only pub-dir) +(defun org-export-as-latex (arg &optional ext-plist to-buffer body-only pub-dir) "Export current buffer to a LaTeX file. If there is an active region, export only the region. The prefix ARG specifies how many levels of the outline should become headlines. The default is 3. Lower levels will be exported depending on `org-export-latex-low-levels'. The default is to convert them as description lists. -HIDDEN is obsolete and does nothing. -EXT-PLIST is a property list with -external parameters overriding org-mode's default settings, but -still inferior to file-local settings. When TO-BUFFER is -non-nil, create a buffer with that name and export to that -buffer. If TO-BUFFER is the symbol `string', don't leave any -buffer behind but just return the resulting LaTeX as a string. +EXT-PLIST is a property list with external parameters overriding +org-mode's default settings, but still inferior to file-local settings. +When TO-BUFFER is non-nil, create a buffer with that name and export +to that buffer. If TO-BUFFER is the symbol `string', don't leave any +buffer behind and just return the resulting LaTeX as a string, with +no LaTeX header. When BODY-ONLY is set, don't produce the file header and footer, simply return the content of \\begin{document}...\\end{document}, without even the \\begin{document} and \\end{document} commands. @@ -957,10 +955,9 @@ when PUB-DIR is set, use this as the publishing directory." (auto-insert nil); Avoid any auto-insert stuff for the new file (TeX-master (boundp 'TeX-master)) (buffer (if to-buffer - (cond - ((eq to-buffer 'string) (get-buffer-create - "*Org LaTeX Export*")) - (t (get-buffer-create to-buffer))) + (if (eq to-buffer 'string) + (get-buffer-create "*Org LaTeX Export*") + (get-buffer-create to-buffer)) (find-file-noselect filename))) (odd org-odd-levels-only) (header (org-export-latex-make-header title opt-plist)) @@ -1120,8 +1117,7 @@ when PUB-DIR is set, use this as the publishing directory." (interactive "P") (message "Exporting to PDF...") (let* ((wconfig (current-window-configuration)) - (lbuf (org-export-as-latex arg hidden ext-plist - to-buffer body-only pub-dir)) + (lbuf (org-export-as-latex arg ext-plist to-buffer body-only pub-dir)) (file (buffer-file-name lbuf)) (base (file-name-sans-extension (buffer-file-name lbuf))) (pdffile (concat base ".pdf")) @@ -2899,4 +2895,8 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER." (provide 'org-export-latex) (provide 'org-latex) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-latex.el ends here diff --git a/lisp/org/org-lparse.el b/lisp/org/org-lparse.el index 7024912050a..c5ced3ef01c 100644 --- a/lisp/org/org-lparse.el +++ b/lisp/org/org-lparse.el @@ -50,7 +50,6 @@ (require 'org-list) (require 'format-spec) -;;;###autoload (defun org-lparse-and-open (target-backend native-backend arg &optional file-or-buf) "Export outline to TARGET-BACKEND via NATIVE-BACKEND and open exported file. @@ -71,7 +70,6 @@ lists." (when org-export-kill-product-buffer-when-displayed (kill-buffer (current-buffer)))))) -;;;###autoload (defun org-lparse-batch (target-backend &optional native-backend) "Call the function `org-lparse'. This function can be used in batch processing as: @@ -83,7 +81,6 @@ emacs --batch (org-lparse target-backend native-backend org-export-headline-levels 'hidden)) -;;;###autoload (defun org-lparse-to-buffer (backend arg) "Call `org-lparse' with output to a temporary buffer. No file is created. The prefix ARG is passed through to @@ -93,7 +90,6 @@ No file is created. The prefix ARG is passed through to (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window tempbuf)))) -;;;###autoload (defun org-replace-region-by (backend beg end) "Assume the current region has org-mode syntax, and convert it to HTML. This can be used in any buffer. For example, you could write an @@ -115,7 +111,6 @@ this command to convert it." (delete-region beg end) (insert backend-string))) -;;;###autoload (defun org-lparse-region (backend beg end &optional body-only buffer) "Convert region from BEG to END in org-mode buffer to HTML. If prefix arg BODY-ONLY is set, omit file header, footer, and table of @@ -447,11 +442,12 @@ PUB-DIR specifies the publishing directory." (error "Don't know how to export to backend %s %s" target-backend (format "via %s" native-backend))) (run-hooks 'org-export-first-hook) - (org-do-lparse arg hidden ext-plist to-buffer body-only pub-dir) - (remove-hook 'org-export-preprocess-hook - 'org-lparse-strip-experimental-blocks-maybe) - (remove-hook 'org-export-preprocess-after-blockquote-hook - 'org-lparse-preprocess-after-blockquote))) + (prog1 + (org-do-lparse arg hidden ext-plist to-buffer body-only pub-dir) + (remove-hook 'org-export-preprocess-hook + 'org-lparse-strip-experimental-blocks-maybe) + (remove-hook 'org-export-preprocess-after-blockquote-hook + 'org-lparse-preprocess-after-blockquote)))) (defcustom org-lparse-use-flashy-warning nil "Control flashing of messages logged with `org-lparse-warn'. @@ -480,6 +476,8 @@ This is a helper routine for interactive use." (eval-when-compile (require 'browse-url)) +(declare-function browse-url-file-url "browse-url" (file)) + (defun org-lparse-do-convert (in-file out-fmt &optional prefix-arg) "Workhorse routine for `org-export-odt-convert'." (require 'browse-url) @@ -2298,4 +2296,8 @@ Replaces invalid characters with \"_\"." (provide 'org-lparse) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-lparse.el ends here diff --git a/lisp/org/org-mobile.el b/lisp/org/org-mobile.el index d2c9c17367f..ffdd66513be 100644 --- a/lisp/org/org-mobile.el +++ b/lisp/org/org-mobile.el @@ -680,7 +680,6 @@ The table of checksums is written to the file mobile-checksums." (let ((table '(?: ?/))) (org-link-escape s table))) -;;;###autoload (defun org-mobile-create-sumo-agenda () "Create a file that contains all custom agenda views." (interactive) @@ -1129,4 +1128,8 @@ A and B must be strings or nil." (provide 'org-mobile) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-mobile.el ends here diff --git a/lisp/org/org-odt.el b/lisp/org/org-odt.el index 7de4b5de853..2dc3af39b09 100644 --- a/lisp/org/org-odt.el +++ b/lisp/org/org-odt.el @@ -2718,7 +2718,7 @@ Do this when translation to MathML fails." (defun org-export-odt-preprocess (parameters) (org-export-odt-preprocess-label-references)) -(declare-function archive-zip-extract "arc-mode.el" (archive name)) +(declare-function archive-zip-extract "arc-mode" (archive name)) (defun org-odt-zip-extract-one (archive member &optional target) (require 'arc-mode) (let* ((target (or target default-directory)) @@ -2847,4 +2847,8 @@ formula file." (provide 'org-odt) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-odt.el ends here diff --git a/lisp/org/org-plot.el b/lisp/org/org-plot.el index 48d72ac2810..5dec304363f 100644 --- a/lisp/org/org-plot.el +++ b/lisp/org/org-plot.el @@ -351,4 +351,8 @@ line directly before or after the table." (provide 'org-plot) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-plot.el ends here diff --git a/lisp/org/org-publish.el b/lisp/org/org-publish.el index 947d52b9200..d10514255b6 100644 --- a/lisp/org/org-publish.el +++ b/lisp/org/org-publish.el @@ -916,7 +916,6 @@ directory and force publishing all files." (if force nil org-publish-use-timestamps-flag))) (org-publish-projects org-publish-project-alist)))) - ;;;###autoload (defun org-publish-current-file (&optional force) "Publish the current file. @@ -1192,4 +1191,8 @@ Returns value on success, else nil." (provide 'org-publish) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-publish.el ends here diff --git a/lisp/org/org-remember.el b/lisp/org/org-remember.el index dd493749295..d555ca65d21 100644 --- a/lisp/org/org-remember.el +++ b/lisp/org/org-remember.el @@ -1149,4 +1149,8 @@ See also the variable `org-reverse-note-order'." (provide 'org-remember) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-remember.el ends here diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el index 9d6bc1aa2c8..b4d4c0489a9 100644 --- a/lisp/org/org-src.el +++ b/lisp/org/org-src.el @@ -41,10 +41,8 @@ (declare-function org-at-table.el-p "org" ()) (declare-function org-get-indentation "org" (&optional line)) (declare-function org-switch-to-buffer-other-window "org" (&rest args)) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function org-base-buffer "org" (buffer)) (defcustom org-edit-src-region-extra nil @@ -311,13 +309,8 @@ buffer." (error "Language mode `%s' fails with: %S" lang-f (nth 1 e))))) (dolist (pair transmitted-variables) (org-set-local (car pair) (cadr pair))) - (if (derived-mode-p 'org-mode) - (progn - (goto-char (point-min)) - (while (re-search-forward "^," nil t) - (if (eq (org-current-line) line) (setq total-nindent (1+ total-nindent))) - (replace-match ""))) - (org-strip-protective-commas (point-min) (point-max))) + ;; Remove protecting commas from visible part of buffer. + (org-unescape-code-in-region (point-min) (point-max)) (when markline (org-goto-line (1+ (- markline begline))) (org-move-to-column @@ -590,20 +583,38 @@ the language, a switch telling if the content should be in a single line." (goto-char pos) (org-get-indentation))) -(defun org-add-protective-commas (beg end &optional line) - "Add protective commas in region. -Return the delta in size of the region." +(defun org-escape-code-in-region (beg end) + "Escape lines between BEG and END. +Escaping happens when a line starts with \"*\", \"#+\", \",*\" or +\",#+\" by appending a comma to it." (interactive "r") - (let ((org-re "^\\(.\\)") - (other-re "^\\([*]\\|[ \t]*#\\+\\)") - (delta 0)) - (save-excursion - (goto-char beg) - (while (re-search-forward (if (derived-mode-p 'org-mode) org-re other-re) - end t) - (if (and line (eq (org-current-line) line)) (setq delta (1+ delta))) - (replace-match ",\\1"))) - delta)) + (save-excursion + (goto-char beg) + (while (re-search-forward "^[ \t]*,?\\(\\*\\|#\\+\\)" end t) + (replace-match ",\\1" nil nil nil 1)))) + +(defun org-escape-code-in-string (s) + "Escape lines in string S. +Escaping happens when a line starts with \"*\", \"#+\", \",*\" or +\",#+\" by appending a comma to it." + (replace-regexp-in-string "^[ \t]*,?\\(\\*\\|#\\+\\)" ",\\1" s nil nil 1)) + +(defun org-unescape-code-in-region (beg end) + "Un-escape lines between BEG and END. +Un-escaping happens by removing the first comma on lines starting +with \",*\", \",#+\", \",,*\" and \",,#+\"." + (interactive "r") + (save-excursion + (goto-char beg) + (while (re-search-forward "^[ \t]*,?\\(,\\)\\(?:\\*\\|#\\+\\)" end t) + (replace-match "" nil nil nil 1)))) + +(defun org-unescape-code-in-string (s) + "Un-escape lines in string S. +Un-escaping happens by removing the first comma on lines starting +with \",*\", \",#+\", \",,*\" and \",,#+\"." + (replace-regexp-in-string + "^[ \t]*,?\\(,\\)\\(?:\\*\\|#\\+\\)" "" s nil nil 1)) (defun org-edit-src-exit (&optional context) "Exit special edit and protect problematic lines." @@ -649,8 +660,12 @@ Return the delta in size of the region." (goto-char (point-min)) (if (looking-at "\\s-*") (replace-match " "))) (when (org-bound-and-true-p org-edit-src-from-org-mode) - (setq delta (+ delta (org-add-protective-commas - (point-min) (point-max) line)))) + (org-escape-code-in-region (point-min) (point-max)) + (setq delta (+ delta + (save-excursion + (org-goto-line line) + (if (looking-at "[ \t]*\\(,,\\)?\\(\\*\\|#+\\)") 1 + 0))))) (when (org-bound-and-true-p org-edit-src-picture) (setq preserve-indentation nil) (untabify (point-min) (point-max)) @@ -674,9 +689,10 @@ Return the delta in size of the region." (kill-buffer buffer)) (goto-char beg) (when allow-write-back-p - (delete-region beg (1- end)) - (insert code) - (delete-char 1) + (delete-region beg (max beg (1- end))) + (unless (string-match "^[ \t]*$" code) + (insert code) + (delete-char 1)) (goto-char beg) (if single (just-one-space))) (if (memq t (mapcar (lambda (overlay) diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index 3eb63b6e53c..0555041231b 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el @@ -423,6 +423,7 @@ available parameters." (concat "\\(" "@[-0-9I$]+" "\\|" "[a-zA-Z]\\{1,2\\}\\([0-9]+\\|&\\)" "\\)") "Match a reference that needs translation, for reference display.") +;;;###autoload (defun org-table-create-with-table.el () "Use the table.el package to insert a new table. If there is already a table at point, convert between Org-mode tables @@ -439,6 +440,7 @@ and table.el tables." (org-table-convert))) (t (call-interactively 'table-insert)))) +;;;###autoload (defun org-table-create-or-convert-from-region (arg) "Convert region to table, or create an empty table. If there is an active region, convert it to a table, using the function @@ -451,6 +453,7 @@ If there is no such region, create an empty table with `org-table-create'." (org-table-convert-region (region-beginning) (region-end) arg) (org-table-create arg))) +;;;###autoload (defun org-table-create (&optional size) "Query for a size and insert a table skeleton. SIZE is a string Columns x Rows like for example \"3x2\"." @@ -483,6 +486,7 @@ SIZE is a string Columns x Rows like for example \"3x2\"." (goto-char pos))) (org-table-align))) +;;;###autoload (defun org-table-convert-region (beg0 end0 &optional separator) "Convert region to a table. The region goes from BEG0 to END0, but these borders will be moved @@ -543,6 +547,7 @@ nil When nil, the command tries to be smart and figure out the (goto-char beg) (org-table-align))) +;;;###autoload (defun org-table-import (file arg) "Import FILE as a table. The file is assumed to be tab-separated. Such files can be produced by most @@ -558,6 +563,7 @@ are found, lines will be split on whitespace into fields." (defvar org-table-last-alignment) (defvar org-table-last-column-widths) +;;;###autoload (defun org-table-export (&optional file format) "Export table to a file, with configurable format. Such a file can be imported into usual spreadsheet programs. @@ -673,6 +679,7 @@ When nil, simply write \"#ERROR\" in corrupted fields.") (defconst org-narrow-column-arrow "=>" "Used as display property in narrowed table columns.") +;;;###autoload (defun org-table-align () "Align the table at point by aligning all vertical bars." (interactive) @@ -884,6 +891,7 @@ With argument TABLE-TYPE, go to the end of a table.el-type table." (goto-char (match-beginning 0))) (point-marker))) +;;;###autoload (defun org-table-justify-field-maybe (&optional new) "Justify the current field, text to left, number to right. Optional argument NEW may specify text to replace the current field content." @@ -924,6 +932,7 @@ Optional argument NEW may specify text to replace the current field content." (setq org-table-may-need-update t)) (goto-char pos)))))) +;;;###autoload (defun org-table-next-field () "Go to the next field in the current table, creating new lines as needed. Before doing so, re-align the table if necessary." @@ -953,6 +962,7 @@ Before doing so, re-align the table if necessary." (error (org-table-insert-row 'below))))) +;;;###autoload (defun org-table-previous-field () "Go to the previous field in the table. Before doing so, re-align the table if necessary." @@ -1006,6 +1016,7 @@ With numeric argument N, move N-1 fields backward first." (forward-char 1))) (if (<= (point) pos) (org-table-end-of-field 2)))) +;;;###autoload (defun org-table-next-row () "Go to the next row (same column) in the current table. Before doing so, re-align the table if necessary." @@ -1029,6 +1040,7 @@ Before doing so, re-align the table if necessary." (skip-chars-backward "^|\n\r") (if (looking-at " ") (forward-char 1))))) +;;;###autoload (defun org-table-copy-down (n) "Copy a field down in the current column. If the field at the cursor is empty, copy into it the content of @@ -1173,6 +1185,7 @@ is always the old value." val) (forward-char 1) "")) +;;;###autoload (defun org-table-field-info (arg) "Show info about the current field, and highlight any reference at point." (interactive "P") @@ -1228,6 +1241,7 @@ is always the old value." (message "In table column %d" cnt)) cnt))) +;;;###autoload (defun org-table-current-dline () "Find out what table data line we are in. Only data lines count for this." @@ -1244,6 +1258,7 @@ Only data lines count for this." (message "This is table line %d" cnt)) cnt))) +;;;###autoload (defun org-table-goto-column (n &optional on-delim force) "Move the cursor to the Nth column in the current table line. With optional argument ON-DELIM, stop with point before the left delimiter @@ -1266,6 +1281,7 @@ However, when FORCE is non-nil, create new columns if necessary." (backward-char 1) (if (looking-at " ") (forward-char 1))))) +;;;###autoload (defun org-table-insert-column () "Insert a new column into the table." (interactive) @@ -1335,6 +1351,7 @@ first dline below it is used. When ABOVE is non-nil, the one above is used." (setq i (1+ i))))) nil)) +;;;###autoload (defun org-table-delete-column () "Delete a column from the table." (interactive) @@ -1367,15 +1384,18 @@ first dline below it is used. When ABOVE is non-nil, the one above is used." (org-table-fix-formulas "$LR" (list (cons (number-to-string col) "INVALID")) col -1 col)))) +;;;###autoload (defun org-table-move-column-right () "Move column to the right." (interactive) (org-table-move-column nil)) +;;;###autoload (defun org-table-move-column-left () "Move column to the left." (interactive) (org-table-move-column 'left)) +;;;###autoload (defun org-table-move-column (&optional left) "Move the current column to the right. With arg LEFT, move to the left." (interactive "P") @@ -1415,15 +1435,18 @@ first dline below it is used. When ABOVE is non-nil, the one above is used." "$LR" (list (cons (number-to-string col) (number-to-string colpos)) (cons (number-to-string colpos) (number-to-string col))))))) +;;;###autoload (defun org-table-move-row-down () "Move table row down." (interactive) (org-table-move-row nil)) +;;;###autoload (defun org-table-move-row-up () "Move table row up." (interactive) (org-table-move-row 'up)) +;;;###autoload (defun org-table-move-row (&optional up) "Move the current table line down. With arg UP, move it up." (interactive "P") @@ -1457,6 +1480,7 @@ first dline below it is used. When ABOVE is non-nil, the one above is used." "@" (list (cons (number-to-string dline1) (number-to-string dline2)) (cons (number-to-string dline2) (number-to-string dline1))))))) +;;;###autoload (defun org-table-insert-row (&optional arg) "Insert a new row above the current line into the table. With prefix ARG, insert below the current line." @@ -1478,6 +1502,7 @@ With prefix ARG, insert below the current line." (funcall org-table-fix-formulas-confirm "Fix formulas? ")) (org-table-fix-formulas "@" nil (1- (org-table-current-dline)) 1)))) +;;;###autoload (defun org-table-insert-hline (&optional above) "Insert a horizontal-line below the current line into the table. With prefix ABOVE, insert above the current line." @@ -1501,6 +1526,7 @@ With prefix ABOVE, insert above the current line." (org-move-to-column col) (and org-table-overlay-coordinates (org-table-align)))) +;;;###autoload (defun org-table-hline-and-move (&optional same-column) "Insert a hline and move to the row below that line." (interactive "P") @@ -1527,6 +1553,7 @@ In particular, this does handle wide and invisible characters." t t s))) s)) +;;;###autoload (defun org-table-kill-row () "Delete the current row or horizontal line from the table." (interactive) @@ -1542,6 +1569,7 @@ In particular, this does handle wide and invisible characters." (org-table-fix-formulas "@" (list (cons (number-to-string dline) "INVALID")) dline -1 dline)))) +;;;###autoload (defun org-table-sort-lines (with-case &optional sorting-type) "Sort table lines according to the column at point. @@ -1622,7 +1650,7 @@ should be done in reverse order." (org-table-goto-column thiscol) (message "%d lines sorted, based on column %d" (length lns) column))) - +;;;###autoload (defun org-table-cut-region (beg end) "Copy region in table to the clipboard and blank all relevant fields. If there is no active region, use just the field at point." @@ -1631,6 +1659,7 @@ If there is no active region, use just the field at point." (if (org-region-active-p) (region-end) (point)))) (org-table-copy-region beg end 'cut)) +;;;###autoload (defun org-table-copy-region (beg end &optional cut) "Copy rectangular region in table to clipboard. A special clipboard is used which can only be accessed @@ -1668,6 +1697,7 @@ with `org-table-paste-rectangle'." (if cut (org-table-align)) org-table-clip)) +;;;###autoload (defun org-table-paste-rectangle () "Paste a rectangular region into a table. The upper right corner ends up in the current field. All involved fields @@ -1698,6 +1728,7 @@ lines." (org-table-goto-column col) (org-table-align))) +;;;###autoload (defun org-table-convert () "Convert from `org-mode' table to table.el and back. Obviously, this only works within limits. When an Org-mode table is @@ -1771,6 +1802,7 @@ Note that horizontal lines disappeared." contents "")) (org-table-align))) +;;;###autoload (defun org-table-wrap-region (arg) "Wrap several fields in a column like a paragraph. This is useful if you'd like to spread the contents of a field over several @@ -1841,6 +1873,7 @@ blank, and the content is appended to the field above." (defvar org-field-marker nil) +;;;###autoload (defun org-table-edit-field (arg) "Edit table field in a different window. This is mainly useful for fields that contain hidden parts. @@ -1944,6 +1977,7 @@ table (but see `org-table-exit-follow-field-mode-when-leaving-table')." (defvar org-timecnt) ; dynamically scoped parameter +;;;###autoload (defun org-table-sum (&optional beg end nlast) "Sum numbers in region of current table column. The result will be displayed in the echo area, and will be available @@ -2144,9 +2178,10 @@ When NAMED is non-nil, look for a named equation." (bs (org-table-formula-make-cmp-string (car b)))) (and as bs (string< as bs)))) +;;;###autoload (defun org-table-get-stored-formulas (&optional noerror) "Return an alist with the stored formulas directly after current table." - (interactive) + (interactive) ;; FIXME interactive? (let ((case-fold-search t) scol eq eq-alist strings string seen) (save-excursion (goto-char (org-table-end)) @@ -2283,6 +2318,7 @@ For all numbers larger than LIMIT, shift them by DELTA." (setq org-table-local-parameters (append org-table-local-parameters al2)))))) +;;;###autoload (defun org-table-maybe-eval-formula () "Check if the current field starts with \"=\" or \":=\". If yes, store the formula and apply it." @@ -2313,6 +2349,7 @@ Will be filled automatically during use.") ("_" . "Names for values in row below this one.") ("^" . "Names for values in row above this one."))) +;;;###autoload (defun org-table-rotate-recalc-marks (&optional newchar) "Rotate the recalculation mark in the first column. If in any row, the first field is not consistent with a mark, @@ -2374,6 +2411,7 @@ of the new mark." (and (org-called-interactively-p 'interactive) (message "%s" (cdr (assoc new org-recalc-marks)))))) +;;;###autoload (defun org-table-maybe-recalculate-line () "Recompute the current line if marked for it, and if we haven't just done it." (interactive) @@ -2397,6 +2435,7 @@ of the new mark." (cons var (cons value org-tbl-calc-modes))) org-tbl-calc-modes) +;;;###autoload (defun org-table-eval-formula (&optional arg equation suppress-align suppress-const suppress-store suppress-analysis) @@ -2823,6 +2862,7 @@ LISPP means to return something appropriate for a Lisp list." elements ",") "]")))) +;;;###autoload (defun org-table-recalculate (&optional all noalign) "Recalculate the current table line by applying all stored formulas. With prefix arg ALL, do this for all lines in the table. @@ -2961,6 +3001,7 @@ known that the table will be realigned a little later anyway." (or noalign (and org-table-may-need-update (org-table-align)) (and all (message "Re-applying formulas...done")))))) +;;;###autoload (defun org-table-iterate (&optional arg) "Recalculate the table until it does not change anymore. The maximum number of iterations is 10, but you can choose a different value @@ -2997,10 +3038,9 @@ with the prefix ARG." "Iterate all tables in the buffer, to converge inter-table dependencies." (interactive) (let* ((imax 10) + (i imax) (checksum (md5 (buffer-string))) - - c1 - (i imax)) + c1) (save-excursion (save-restriction (widen) @@ -3164,6 +3204,7 @@ Parameters get priority." (defvar org-pos) +;;;###autoload (defun org-table-edit-formulas () "Edit the formulas of the current table in a separate buffer." (interactive) @@ -3801,6 +3842,7 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line." (org-overlay-display ov str 'org-special-keyword 'evaporate))) (beginning-of-line 2))))) +;;;###autoload (defun org-table-toggle-coordinate-overlays () "Toggle the display of Row/Column numbers in tables." (interactive) @@ -3813,6 +3855,7 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line." (mapc 'delete-overlay org-table-coordinate-overlays) (setq org-table-coordinate-overlays nil))) +;;;###autoload (defun org-table-toggle-formula-debugger () "Toggle the formula debugger in tables." (interactive) @@ -3852,11 +3895,6 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line." (defvar orgtbl-mode-map (make-keymap) "Keymap for `orgtbl-mode'.") -;;;###autoload -(defun turn-on-orgtbl () - "Unconditionally turn on `orgtbl-mode'." - (orgtbl-mode 1)) - (defvar org-old-auto-fill-inhibit-regexp nil "Local variable used by `orgtbl-mode'.") @@ -4480,6 +4518,7 @@ First element has index 0, or I0 if given." (*orgtbl-lfmt* *orgtbl-llfmt*)) (orgtbl-format-line prevline)))))) +;;;###autoload (defun orgtbl-to-generic (table params) "Convert the orgtbl-mode TABLE to some other format. This generic routine can be used for many standard cases. @@ -4606,9 +4645,11 @@ directly by `orgtbl-send-table'. See manual." (remq nil *orgtbl-rtn*) *orgtbl-rtn*)) "\n"))) +;;;###autoload (defun orgtbl-to-tsv (table params) "Convert the orgtbl-mode table to TAB separated material." (orgtbl-to-generic table (org-combine-plists '(:sep "\t") params))) +;;;###autoload (defun orgtbl-to-csv (table params) "Convert the orgtbl-mode table to CSV material. This does take care of the proper quoting of fields with comma or quotes." @@ -4616,6 +4657,7 @@ This does take care of the proper quoting of fields with comma or quotes." '(:sep "," :fmt org-quote-csv-field) params))) +;;;###autoload (defun orgtbl-to-latex (table params) "Convert the orgtbl-mode TABLE to LaTeX. TABLE is a list, each entry either the symbol `hline' for a horizontal @@ -4654,6 +4696,7 @@ this function is called." :efmt "%s\\,(%s)" :hline "\\hline"))) (orgtbl-to-generic table (org-combine-plists params2 params)))) +;;;###autoload (defun orgtbl-to-html (table params) "Convert the orgtbl-mode TABLE to HTML. TABLE is a list, each entry either the symbol `hline' for a horizontal @@ -4684,6 +4727,7 @@ so you cannot specify parameters for it." (setq html (replace-match "" t t html))) html)) +;;;###autoload (defun orgtbl-to-texinfo (table params) "Convert the orgtbl-mode TABLE to TeXInfo. TABLE is a list, each entry either the symbol `hline' for a horizontal @@ -4722,6 +4766,7 @@ this function is called." :hlstart "@headitem "))) (orgtbl-to-generic table (org-combine-plists params2 params)))) +;;;###autoload (defun orgtbl-to-orgtbl (table params) "Convert the orgtbl-mode TABLE into another orgtbl-mode table. Useful when slicing one table into many. The :hline, :sep, @@ -4832,4 +4877,8 @@ list of the fields in the rectangle ." (provide 'org-table) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-table.el ends here diff --git a/lisp/org/org-taskjuggler.el b/lisp/org/org-taskjuggler.el index aa645d296e8..a3de6e41239 100644 --- a/lisp/org/org-taskjuggler.el +++ b/lisp/org/org-taskjuggler.el @@ -692,4 +692,8 @@ org-mode priority string." (provide 'org-taskjuggler) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-taskjuggler.el ends here diff --git a/lisp/org/org-timer.el b/lisp/org/org-timer.el index 92aaf1c7bb8..a314564b94a 100644 --- a/lisp/org/org-timer.el +++ b/lisp/org/org-timer.el @@ -130,7 +130,6 @@ the region 0:00:00." (org-timer-secs-to-hms (or delta 0))) (run-hooks 'org-timer-start-hook)))) -;;;###autoload (defun org-timer-pause-or-continue (&optional stop) "Pause or continue the relative timer. With prefix arg STOP, stop it entirely." @@ -157,7 +156,6 @@ With prefix arg STOP, stop it entirely." (org-timer-set-mode-line 'pause) (message "Timer paused at %s" (org-timer-value-string))))) -;;;###autoload (defun org-timer-stop () "Stop the relative timer." (interactive) @@ -443,4 +441,8 @@ replace any running timer." (provide 'org-timer) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-timer.el ends here diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index 688947def52..9fcea6725e3 100644 --- a/lisp/org/org-version.el +++ b/lisp/org/org-version.el @@ -11,10 +11,10 @@ (defun org-git-version () "The Git version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-git-version "7.9.2-GNU-Emacs-24-3")) + (let ((org-git-version "release_7.9.2-68-g7a9d34")) org-git-version)) ;;;###autoload -(defconst org-odt-data-dir "/usr/share/emacs/etc/org" +(defvar org-odt-data-dir "/usr/share/emacs/etc/org" "The location of ODT styles.") (provide 'org-version) diff --git a/lisp/org/org-xoxo.el b/lisp/org/org-xoxo.el index ee549627a85..6ff78b56839 100644 --- a/lisp/org/org-xoxo.el +++ b/lisp/org/org-xoxo.el @@ -122,4 +122,8 @@ The XOXO buffer is named *xoxo-*" (provide 'org-xoxo) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-xoxo.el ends here diff --git a/lisp/org/org.el b/lisp/org/org.el index cfd86513fbc..45dbe2754e8 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -78,6 +78,8 @@ (require 'find-func) (require 'format-spec) +(load "org-loaddefs.el" t t) + ;; `org-outline-regexp' ought to be a defconst but is let-binding in ;; some places -- e.g. see the macro org-with-limited-levels. ;; @@ -117,8 +119,23 @@ Stars are put in group 1 and the trimmed body in group 2.") (declare-function org-clock-timestamps-down "org-clock" ()) (declare-function org-clock-sum-current-item "org-clock" (&optional tstart)) +(declare-function orgtbl-mode "org-table" (&optional arg)) +(declare-function org-clock-out "org-clock" (&optional switch-to-state fail-quietly at-time)) +(declare-function org-beamer-mode "org-beamer" ()) +(declare-function org-table-edit-field "org-table" (arg)) +(declare-function org-table-justify-field-maybe "org-table" (&optional new)) +(declare-function org-id-get-create "org-id" (&optional force)) +(declare-function org-id-find-id-file "org-id" (id)) +(declare-function org-tags-view "org-agenda" (&optional todo-only match)) +(declare-function org-agenda-list "org-agenda" (&optional arg start-day span)) +(declare-function org-table-align "org-table" ()) +(declare-function org-table-paste-rectangle "org-table" ()) +(declare-function org-table-maybe-eval-formula "org-table" ()) +(declare-function org-table-maybe-recalculate-line "org-table" ()) + ;; load languages based on value of `org-babel-load-languages' (defvar org-babel-load-languages) + ;;;###autoload (defun org-babel-do-load-languages (sym value) "Load the languages defined in `org-babel-load-languages'." @@ -206,6 +223,7 @@ identifier." ;;; Version (require 'org-compat) (org-check-version) + ;;;###autoload (defun org-version (&optional here full message) "Show the org-mode version in the echo area. @@ -214,7 +232,7 @@ When FULL is non-nil, use a verbose version string. When MESSAGE is non-nil, display a message with the version." (interactive "P") (let* ((org-dir (ignore-errors (org-find-library-dir "org"))) - (org-install-dir (ignore-errors (org-find-library-dir "org-install.el"))) + (org-install-dir (ignore-errors (org-find-library-dir "org-loaddefs.el"))) (org-trash (or (and (fboundp 'org-release) (fboundp 'org-git-version)) (load (concat org-dir "org-version.el") @@ -228,7 +246,7 @@ When MESSAGE is non-nil, display a message with the version." (if (string= org-dir org-install-dir) org-install-dir (concat "mixed installation! " org-install-dir " and " org-dir)) - "org-install.el can not be found!"))) + "org-loaddefs.el can not be found!"))) (_version (if full version org-version))) (if (org-called-interactively-p 'interactive) (if here @@ -3264,13 +3282,6 @@ forth between agenda and calendar." :group 'org-agenda :type 'sexp) -(defcustom org-calendar-agenda-action-key [?k] - "The key to be installed in `calendar-mode-map' for agenda-action. -The command `org-agenda-action' will be bound to this key. The -default is the character `k' because we use the same key in the agenda." - :group 'org-agenda - :type 'sexp) - (defcustom org-calendar-insert-diary-entry-key [?i] "The key to be installed in `calendar-mode-map' for adding diary entries. This option is irrelevant until `org-agenda-diary-file' has been configured @@ -3296,8 +3307,6 @@ points to a file, `org-agenda-diary-entry' will be used instead." '(progn (org-defkey calendar-mode-map org-calendar-to-agenda-key 'org-calendar-goto-agenda) - (org-defkey calendar-mode-map org-calendar-agenda-action-key - 'org-agenda-action) (add-hook 'calendar-mode-hook (lambda () (unless (eq org-agenda-diary-file 'diary-file) @@ -3869,30 +3878,13 @@ This works for both table types.") (eval-and-compile (org-autoload "org-table" - '(org-table-align org-table-begin org-table-blank-field - org-table-convert org-table-convert-region org-table-copy-down - org-table-copy-region org-table-create - org-table-create-or-convert-from-region - org-table-create-with-table.el org-table-current-dline - org-table-cut-region org-table-delete-column org-table-edit-field - org-table-edit-formulas org-table-end org-table-eval-formula - org-table-export org-table-field-info - org-table-get-stored-formulas org-table-goto-column - org-table-hline-and-move org-table-import org-table-insert-column - org-table-insert-hline org-table-insert-row org-table-iterate - org-table-justify-field-maybe org-table-kill-row - org-table-maybe-eval-formula org-table-maybe-recalculate-line - org-table-move-column org-table-move-column-left - org-table-move-column-right org-table-move-row - org-table-move-row-down org-table-move-row-up - org-table-next-field org-table-next-row org-table-paste-rectangle - org-table-previous-field org-table-recalculate - org-table-rotate-recalc-marks org-table-sort-lines org-table-sum - org-table-toggle-coordinate-overlays - org-table-toggle-formula-debugger org-table-wrap-region - orgtbl-mode turn-on-orgtbl org-table-to-lisp - orgtbl-to-generic orgtbl-to-tsv orgtbl-to-csv orgtbl-to-latex - orgtbl-to-orgtbl orgtbl-to-html orgtbl-to-texinfo))) + '(org-table-begin org-table-blank-field org-table-end))) + +;;;###autoload +(defun turn-on-orgtbl () + "Unconditionally turn on `orgtbl-mode'." + (require 'org-table) + (orgtbl-mode 1)) (defun org-at-table-p (&optional table-type) "Return t if the cursor is inside an org-type table. @@ -3971,62 +3963,14 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables." (declare-function org-default-export-plist "org-exp") (declare-function org-infile-export-plist "org-exp") (declare-function org-get-current-options "org-exp") -(eval-and-compile - (org-autoload "org-exp" - '(org-export org-export-visible - org-insert-export-options-template - org-table-clean-before-export)) - (org-autoload "org-ascii" - '(org-export-as-ascii org-export-ascii-preprocess - org-export-as-ascii-to-buffer org-replace-region-by-ascii - org-export-region-as-ascii)) - (org-autoload "org-latex" - '(org-export-as-latex-batch org-export-as-latex-to-buffer - org-replace-region-by-latex org-export-region-as-latex - org-export-as-latex org-export-as-pdf - org-export-as-pdf-and-open)) - (org-autoload "org-html" - '(org-export-as-html-and-open - org-export-as-html-batch org-export-as-html-to-buffer - org-replace-region-by-html org-export-region-as-html - org-export-as-html)) - (org-autoload "org-docbook" - '(org-export-as-docbook-batch org-export-as-docbook-to-buffer - org-replace-region-by-docbook org-export-region-as-docbook - org-export-as-docbook-pdf org-export-as-docbook-pdf-and-open - org-export-as-docbook)) - (org-autoload "org-icalendar" - '(org-export-icalendar-this-file - org-export-icalendar-all-agenda-files - org-export-icalendar-combine-agenda-files)) - (org-autoload "org-xoxo" '(org-export-as-xoxo)) - (org-autoload "org-beamer" '(org-beamer-mode org-beamer-sectioning))) ;; Declare and autoload functions from org-agenda.el (eval-and-compile (org-autoload "org-agenda" - '(org-agenda org-agenda-list org-search-view - org-todo-list org-tags-view org-agenda-list-stuck-projects - org-diary org-agenda-to-appt - org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item))) - -;; Autoload org-remember + '(org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item))) -(eval-and-compile - (org-autoload "org-remember" - '(org-remember-insinuate org-remember-annotation - org-remember-apply-template org-remember org-remember-handler))) - -(eval-and-compile - (org-autoload "org-capture" - '(org-capture org-capture-insert-template-here - org-capture-import-remember-templates))) - -;; Autoload org-clock.el - -(declare-function org-clock-save-markers-for-cut-and-paste "org-clock" - (beg end)) +(declare-function org-clock-save-markers-for-cut-and-paste "org-clock" (beg end)) (declare-function org-clock-update-mode-line "org-clock" ()) (declare-function org-resolve-clocks "org-clock" (&optional also-non-dangling-p prompt last-valid)) @@ -4043,55 +3987,9 @@ The return value is actually the clock marker." (marker-buffer org-clock-marker)) (eval-and-compile - (org-autoload - "org-clock" - '(org-clock-in org-clock-out org-clock-cancel - org-clock-goto org-clock-sum org-clock-display - org-clock-remove-overlays org-clock-report - org-clocktable-shift org-dblock-write:clocktable - org-get-clocktable org-resolve-clocks))) - -(defun org-clock-update-time-maybe () - "If this is a CLOCK line, update it and return t. -Otherwise, return nil." - (interactive) - (save-excursion - (beginning-of-line 1) - (skip-chars-forward " \t") - (when (looking-at org-clock-string) - (let ((re (concat "[ \t]*" org-clock-string - " *[[<]\\([^]>]+\\)[]>]\\(-+[[<]\\([^]>]+\\)[]>]" - "\\([ \t]*=>.*\\)?\\)?")) - ts te h m s neg) - (cond - ((not (looking-at re)) - nil) - ((not (match-end 2)) - (when (and (equal (marker-buffer org-clock-marker) (current-buffer)) - (> org-clock-marker (point)) - (<= org-clock-marker (point-at-eol))) - ;; The clock is running here - (setq org-clock-start-time - (apply 'encode-time - (org-parse-time-string (match-string 1)))) - (org-clock-update-mode-line))) - (t - (and (match-end 4) (delete-region (match-beginning 4) (match-end 4))) - (end-of-line 1) - (setq ts (match-string 1) - te (match-string 3)) - (setq s (- (org-float-time - (apply 'encode-time (org-parse-time-string te))) - (org-float-time - (apply 'encode-time (org-parse-time-string ts)))) - neg (< s 0) - s (abs s) - h (floor (/ s 3600)) - s (- s (* 3600 h)) - m (floor (/ s 60)) - s (- s (* 60 s))) - (insert " => " (format (if neg "-%d:%02d" "%2d:%02d") h m)) - t)))))) + (org-autoload "org-clock" '(org-clock-remove-overlays + org-clock-update-time-maybe + org-clocktable-shift))) (defun org-check-running-clock () "Check if the current buffer contains the running clock. @@ -4108,44 +4006,18 @@ If yes, offer to stop it and to save the buffer with the changes." (when (org-match-line "^[ \t]*#\\+BEGIN:[ \t]+clocktable\\>") (org-clocktable-shift dir n))) -;; Autoload org-timer.el - -(eval-and-compile - (org-autoload - "org-timer" - '(org-timer-start org-timer org-timer-item - org-timer-change-times-in-region - org-timer-set-timer - org-timer-reset-timers - org-timer-show-remaining-time))) - -;; Autoload org-feed.el - -(eval-and-compile - (org-autoload - "org-feed" - '(org-feed-update org-feed-update-all org-feed-goto-inbox))) - - -;; Autoload org-indent.el +;;;###autoload +(defun org-clock-persistence-insinuate () + "Set up hooks for clock persistence." + (require 'org-clock) + (add-hook 'org-mode-hook 'org-clock-load) + (add-hook 'kill-emacs-hook 'org-clock-save)) ;; Define the variable already here, to make sure we have it. (defvar org-indent-mode nil "Non-nil if Org-Indent mode is enabled. Use the command `org-indent-mode' to change this variable.") -(eval-and-compile - (org-autoload - "org-indent" - '(org-indent-mode))) - -;; Autoload org-mobile.el - -(eval-and-compile - (org-autoload - "org-mobile" - '(org-mobile-push org-mobile-pull org-mobile-create-sumo-agenda))) - ;; Autoload archiving code ;; The stuff that is needed for cycling and tags has to be defined here. @@ -4319,10 +4191,7 @@ Otherwise, these types are allowed: (eval-and-compile (org-autoload "org-archive" - '(org-add-archive-files org-archive-subtree - org-archive-to-archive-sibling org-toggle-archive-tag - org-archive-subtree-default - org-archive-subtree-default-with-confirmation))) + '(org-add-archive-files))) ;; Autoload Column View Code @@ -4331,9 +4200,10 @@ Otherwise, these types are allowed: (declare-function org-columns-compute "org-colview" (property)) (org-autoload (if (featurep 'xemacs) "org-colview-xemacs" "org-colview") - '(org-columns-number-to-string org-columns-get-format-and-top-level - org-columns-compute org-agenda-columns org-columns-remove-overlays - org-columns org-insert-columns-dblock org-dblock-write:columnview)) + '(org-columns-number-to-string + org-columns-get-format-and-top-level + org-columns-compute + org-columns-remove-overlays)) ;; Autoload ID code @@ -4342,15 +4212,10 @@ Otherwise, these types are allowed: (declare-function org-id-locations-save "org-id") (defvar org-id-track-globally) (org-autoload "org-id" - '(org-id-get-create org-id-new org-id-copy org-id-get - org-id-get-with-outline-path-completion - org-id-get-with-outline-drilling org-id-store-link - org-id-goto org-id-find org-id-store-link)) - -;; Autoload Plotting Code - -(org-autoload "org-plot" - '(org-plot/gnuplot)) + '(org-id-new + org-id-copy + org-id-get-with-outline-path-completion + org-id-get-with-outline-drilling)) ;;; Variables for pre-computed regular expressions, all buffer local @@ -5096,7 +4961,7 @@ The following commands are available: (lambda (&rest ignore) (org-show-context 'isearch)))) ;; Turn on org-beamer-mode? - (and org-startup-with-beamer-mode (org-beamer-mode 1)) + (and org-startup-with-beamer-mode (org-beamer-mode)) ;; Setup the pcomplete hooks (set (make-local-variable 'pcomplete-command-completion-function) @@ -5569,22 +5434,6 @@ by a #." t) (t nil)))))) -(defun org-strip-protective-commas (beg end) - "Strip protective commas between BEG and END in the current buffer." - (interactive "r") - (save-excursion - (save-match-data - (goto-char beg) - (let ((front-line (save-excursion - (re-search-forward - "[^[:space:]]" end t) - (goto-char (match-beginning 0)) - (current-column)))) - (while (re-search-forward "^[ \t]*\\(,\\)\\([*]\\|#\\)" end t) - (goto-char (match-beginning 1)) - (when (= (current-column) front-line) - (replace-match "" nil nil nil 1))))))) - (defun org-activate-angle-links (limit) "Run through the buffer and add overlays to links." (if (re-search-forward org-angle-link-re limit t) @@ -6188,10 +6037,9 @@ and subscripts." (defvar org-cycle-subtree-status nil) (make-variable-buffer-local 'org-cycle-subtree-status) -;;;###autoload - (defvar org-inlinetask-min-level) +;;;###autoload (defun org-cycle (&optional arg) "TAB-action and visibility cycling for Org-mode. @@ -9205,7 +9053,7 @@ If optional argument MERGE is set, merge TABLE into (defun org-link-unescape (str) "Unhex hexified Unicode strings as returned from the JavaScript function -encodeURIComponent. E.g. `%C3%B6' is the german Umlaut `ö'." +encodeURIComponent. E.g. `%C3%B6' is the german o-Umlaut." (unless (and (null str) (string= "" str)) (let ((pos 0) (case-fold-search t) unhexed) (while (setq pos (string-match "\\(%[0-9a-f][0-9a-f]\\)+" str pos)) @@ -9215,9 +9063,9 @@ encodeURIComponent. E.g. `%C3%B6' is the german Umlaut `ö'." str) (defun org-link-unescape-compound (hex) - "Unhexify Unicode hex-chars. E.g. `%C3%B6' is the German Umlaut `ö'. + "Unhexify Unicode hex-chars. E.g. `%C3%B6' is the German o-Umlaut. Note: this function also decodes single byte encodings like -`%E1' (\"á\") if not followed by another `%[A-F0-9]{2}' group." +`%E1' (a-acute) if not followed by another `%[A-F0-9]{2}' group." (save-match-data (let* ((bytes (cdr (split-string hex "%"))) (ret "") @@ -11028,11 +10876,13 @@ prefix argument (`C-u C-u C-u C-c C-w')." (and org-auto-align-tags (let ((org-loop-over-headlines-in-active-region nil)) (org-set-tags nil t))) - (bookmark-set "org-refile-last-stored") + (with-demoted-errors + (bookmark-set "org-refile-last-stored")) ;; If we are refiling for capture, make sure that the ;; last-capture pointers point here (when (org-bound-and-true-p org-refile-for-capture) - (bookmark-set "org-capture-last-stored-marker") + (with-demoted-errors + (bookmark-set "org-capture-last-stored-marker")) (move-marker org-capture-last-stored-marker (point))) (if (fboundp 'deactivate-mark) (deactivate-mark)) (run-hooks 'org-after-refile-insert-hook)))) @@ -11128,26 +10978,28 @@ this is used for the GOTO interface." (org-refile-new-child parent-target child))) (error "Invalid target location"))))) -(declare-function org-string-nw-p "org-macs.el" (s)) +(declare-function org-string-nw-p "org-macs" (s)) (defun org-refile-check-position (refile-pointer) - "Check if the refile pointer matches the readline to which it points." + "Check if the refile pointer matches the headline to which it points." (let* ((file (nth 1 refile-pointer)) (re (nth 2 refile-pointer)) (pos (nth 3 refile-pointer)) buffer) - (when (org-string-nw-p re) - (setq buffer (if (markerp pos) - (marker-buffer pos) - (or (find-buffer-visiting file) - (find-file-noselect file)))) - (with-current-buffer buffer - (save-excursion - (save-restriction - (widen) - (goto-char pos) - (beginning-of-line 1) - (unless (org-looking-at-p re) - (error "Invalid refile position, please clear the cache with `C-0 C-c C-w' before refiling")))))))) + (if (and (not (markerp pos)) (not file)) + (error "Please save the buffer to a file before refiling") + (when (org-string-nw-p re) + (setq buffer (if (markerp pos) + (marker-buffer pos) + (or (find-buffer-visiting file) + (find-file-noselect file)))) + (with-current-buffer buffer + (save-excursion + (save-restriction + (widen) + (goto-char pos) + (beginning-of-line 1) + (unless (org-looking-at-p re) + (error "Invalid refile position, please clear the cache with `C-0 C-c C-w' before refiling"))))))))) (defun org-refile-new-child (parent-target child) "Use refile target PARENT-TARGET to add new CHILD below it." @@ -11337,7 +11189,6 @@ Error if there is no such block at point." (goto-char pos) (error "Not in a dynamic block")))) -;;;###autoload (defun org-update-all-dblocks () "Update all dynamic blocks in the buffer. This function can be used in a hook." @@ -12821,7 +12672,7 @@ D Show deadlines and scheduled items between a date range." ((equal ans ?D) (call-interactively 'org-check-dates-range)) ((equal ans ?t) - (org-show-todo-tree nil)) + (call-interactively 'org-show-todo-tree)) ((equal ans ?T) (org-show-todo-tree '(4))) ((member ans '(?T ?m)) @@ -14157,7 +14008,6 @@ Returns the new tags string, or nil to not change the current settings." ;;;; The mapping API -;;;###autoload (defun org-map-entries (func &optional match scope &rest skip) "Call FUNC at each headline selected by MATCH in SCOPE. @@ -15656,14 +15506,13 @@ user." ;; Help matching dotted european dates (when (string-match - "^ *\\(3[01]\\|0?[1-9]\\|[12][0-9]\\)\\. ?\\(0?[1-9]\\|1[012]\\)\\. ?\\([1-9][0-9][0-9][0-9]\\)?" ans) - (setq year (if (match-end 3) - (string-to-number (match-string 3 ans)) - (progn (setq kill-year t) - (string-to-number (format-time-string "%Y")))) + "^ *\\(3[01]\\|0?[1-9]\\|[12][0-9]\\)\\. ?\\(0?[1-9]\\|1[012]\\)\\.\\( ?[1-9][0-9]\\{3\\}\\)?" ans) + (setq year (if (match-end 3) (string-to-number (match-string 3 ans)) + (setq kill-year t) + (string-to-number (format-time-string "%Y"))) day (string-to-number (match-string 1 ans)) month (string-to-number (match-string 2 ans)) - ans (replace-match (format "%04d-%02d-%02d\\5" year month day) + ans (replace-match (format "%04d-%02d-%02d" year month day) t nil ans))) ;; Help matching american dates, like 5/30 or 5/30/7 @@ -16311,7 +16160,12 @@ When PREFER is `future', return a date that is either CURRENT or future. When SHOW-ALL is nil, only return the current occurrence of a time stamp." ;; Make the proper lists from the dates (catch 'exit - (let ((a1 '(("d" . day) ("w" . week) ("m" . month) ("y" . year))) + (let ((a1 '(("h" . hour) + ("d" . day) + ("w" . week) + ("m" . month) + ("y" . year))) + (shour (nth 2 (org-parse-time-string start))) dn dw sday cday n1 n2 n0 d m y y1 y2 date1 date2 nmonths nm ny m2) @@ -16331,6 +16185,13 @@ When SHOW-ALL is nil, only return the current occurrence of a time stamp." (error "Invalid change specifier: %s" change)) (if (eq dw 'week) (setq dw 'day dn (* 7 dn))) (cond + ((eq dw 'hour) + (let ((missing-hours + (mod (+ (- (* 24 (- cday sday)) shour) org-extend-today-until) + dn))) + (setq n1 (if (zerop missing-hours) cday + (- cday (1+ (floor (/ missing-hours 24))))) + n2 (+ cday (floor (/ (- dn missing-hours) 24)))))) ((eq dw 'day) (setq n1 (+ sday (* dn (floor (/ (- cday sday) dn)))) n2 (+ n1 dn))) @@ -16993,7 +16854,9 @@ end of the list." (file-alist (mapcar (lambda (x) (cons (file-truename x) x)) (org-agenda-files t))) - (ctf (file-truename buffer-file-name)) + (ctf (file-truename + (or buffer-file-name + (error "Please save the current buffer to a file")))) x had) (setq x (assoc ctf file-alist) had x) @@ -17012,7 +16875,8 @@ These are the files which are being checked for agenda entries. Optional argument FILE means use this file instead of the current." (interactive) (let* ((org-agenda-skip-unavailable-files nil) - (file (or file buffer-file-name)) + (file (or file buffer-file-name + (error "Current buffer does not visit a file"))) (true-file (file-truename file)) (afile (abbreviate-file-name file)) (files (delq nil (mapcar @@ -17034,7 +16898,7 @@ Optional argument FILE means use this file instead of the current." (defun org-check-agenda-file (file) "Make sure FILE exists. If not, ask user what to do." (when (not (file-exists-p file)) - (message "non-existent agenda file %s. [R]emove from list or [A]bort?" + (message "Non-existent agenda file %s. [R]emove from list or [A]bort?" (abbreviate-file-name file)) (let ((r (downcase (read-char-exclusive)))) (cond @@ -18113,7 +17977,6 @@ BEG and END default to the buffer boundaries." (org-defkey org-mode-map [?\C-c (control ?*)] 'org-list-make-subtree) ;;(org-defkey org-mode-map [?\C-c (control ?-)] 'org-list-make-list-from-subtree) -(org-defkey org-mode-map "\C-c\C-x\C-k" 'org-mark-entry-for-agenda-action) (org-defkey org-mode-map "\C-c\C-x\C-w" 'org-cut-special) (org-defkey org-mode-map "\C-c\C-x\M-w" 'org-copy-special) (org-defkey org-mode-map "\C-c\C-x\C-y" 'org-paste-special) @@ -18801,13 +18664,12 @@ this function returns t, nil otherwise." nil)))) (autoload 'org-element-at-point "org-element") +(autoload 'org-element-type "org-element") (declare-function org-element-at-point "org-element" (&optional keep-trail)) (declare-function org-element-type "org-element" (element)) -(declare-function org-element-context "org-element" ()) (declare-function org-element-contents "org-element" (element)) (declare-function org-element-property "org-element" (property element)) -(declare-function org-element-paragraph-parser "org-element" (limit)) (declare-function org-element-map "org-element" (data types fun &optional info first-match no-recursion)) (declare-function org-element-nested-p "org-element" (elem-a elem-b)) (declare-function org-element-swap-A-B "org-element" (elem-a elem-b)) @@ -19985,7 +19847,6 @@ Your bug report will be posted to the Org-mode mailing list. ;;;; Documentation -;;;###autoload (defun org-require-autoloaded-modules () (interactive) (mapc 'require @@ -20813,20 +20674,6 @@ returns the current time." (nth 2 date)))))) (or defd (current-time)))) -(defvar org-agenda-action-marker (make-marker) - "Marker pointing to the entry for the next agenda action.") - -(defun org-mark-entry-for-agenda-action () - "Mark the current entry as target of an agenda action. -Agenda actions are actions executed from the agenda with the key `k', -which make use of the date at the cursor." - (interactive) - (move-marker org-agenda-action-marker - (save-excursion (org-back-to-heading t) (point)) - (current-buffer)) - (message - "Entry marked for action; press `k' at desired date in agenda or calendar")) - (defun org-mark-subtree (&optional up) "Mark the current subtree. This puts point at the start of the current subtree, and mark at @@ -21224,7 +21071,10 @@ a footnote definition, try to fill the first paragraph within." ;; Check if auto-filling is meaningful. (let ((fc (current-fill-column))) (when (and fc (> (current-column) fc)) - (let ((fill-prefix (org-adaptive-fill-function))) + (let* ((fill-prefix (org-adaptive-fill-function)) + ;; Enforce empty fill prefix, if required. Otherwise, it + ;; will be computed again. + (adaptive-fill-mode (not (equal fill-prefix "")))) (when fill-prefix (do-auto-fill)))))) (defun org-comment-line-break-function (&optional soft) @@ -21475,45 +21325,43 @@ beyond the end of the headline." (defun org-end-of-line (&optional arg) "Go to the end of the line. -If this is a headline, and `org-special-ctrl-a/e' is set, ignore tags on the -first attempt, and only move to after the tags when the cursor is already -beyond the end of the headline." +If this is a headline, and `org-special-ctrl-a/e' is set, ignore +tags on the first attempt, and only move to after the tags when +the cursor is already beyond the end of the headline." (interactive "P") - (let ((special (if (consp org-special-ctrl-a/e) - (cdr org-special-ctrl-a/e) - org-special-ctrl-a/e))) + (let ((special (if (consp org-special-ctrl-a/e) (cdr org-special-ctrl-a/e) + org-special-ctrl-a/e)) + (type (org-element-type + (save-excursion (beginning-of-line) (org-element-at-point))))) (cond - ((or (not special) arg - (not (or (org-at-heading-p) (org-at-item-p) (org-at-drawer-p)))) + ((or (not special) arg) (call-interactively - (cond ((org-bound-and-true-p line-move-visual) 'end-of-visual-line) - ((fboundp 'move-end-of-line) 'move-end-of-line) - (t 'end-of-line)))) - ((org-at-heading-p) + (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line))) + ((memq type '(headline inlinetask)) (let ((pos (point))) - (beginning-of-line 1) - (if (looking-at (org-re ".*?\\(?:\\([ \t]*\\)\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*\\)?$")) - (if (eq special t) - (if (or (< pos (match-beginning 1)) - (= pos (match-end 0))) - (goto-char (match-beginning 1)) - (goto-char (match-end 0))) - (if (or (< pos (match-end 0)) (not (eq this-command last-command))) - (goto-char (match-end 0)) - (goto-char (match-beginning 1)))) - (call-interactively (if (fboundp 'move-end-of-line) - 'move-end-of-line - 'end-of-line))))) - ((org-at-drawer-p) - (move-end-of-line 1) - (when (overlays-at (1- (point))) (backward-char 1))) - ;; At an item: Move before any hidden text. - (t (call-interactively - (cond ((org-bound-and-true-p line-move-visual) 'end-of-visual-line) - ((fboundp 'move-end-of-line) 'move-end-of-line) - (t 'end-of-line))))) - (org-no-warnings - (and (featurep 'xemacs) (setq zmacs-region-stays t))))) + (beginning-of-line 1) + (if (looking-at (org-re ".*?\\(?:\\([ \t]*\\)\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*\\)?$")) + (if (eq special t) + (if (or (< pos (match-beginning 1)) (= pos (match-end 0))) + (goto-char (match-beginning 1)) + (goto-char (match-end 0))) + (if (or (< pos (match-end 0)) + (not (eq this-command last-command))) + (goto-char (match-end 0)) + (goto-char (match-beginning 1)))) + (call-interactively + (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line))))) + ((memq type + '(center-block comment-block drawer dynamic-block example-block + export-block item plain-list property-drawer + quote-block special-block src-block verse-block)) + ;; Never move past the ellipsis. + (or (eolp) (move-end-of-line 1)) + (when (org-invisible-p2) (backward-char))) + (t + (call-interactively + (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line)))) + (org-no-warnings (and (featurep 'xemacs) (setq zmacs-region-stays t))))) (define-key org-mode-map "\C-a" 'org-beginning-of-line) (define-key org-mode-map "\C-e" 'org-end-of-line) @@ -21966,7 +21814,6 @@ Stop at the first and last subheadings of a superior heading." (if (< l level) (setq arg 1))) (setq arg (1- arg))))) -;;;###autoload (defun org-forward-element () "Move forward by one element. Move to the next element at the same level, when possible." @@ -21986,7 +21833,6 @@ Move to the next element at the same level, when possible." (goto-char (org-element-property :end parent)) (goto-char end)))))) -;;;###autoload (defun org-backward-element () "Move backward by one element. Move to the previous element at the same level, when possible." @@ -22013,7 +21859,6 @@ Move to the previous element at the same level, when possible." ((org-before-first-heading-p) (goto-char (point-min))) (t (org-back-to-heading))))))) -;;;###autoload (defun org-up-element () "Move to upper element." (interactive) @@ -22026,7 +21871,6 @@ Move to the previous element at the same level, when possible." (error "No surrounding element") (org-with-limited-levels (org-back-to-heading))))))) -;;;###autoload (defvar org-element-greater-elements) (defun org-down-element () "Move to inner element." @@ -22043,7 +21887,6 @@ Move to the previous element at the same level, when possible." (error "No content for this element")))) (t (error "No inner element"))))) -;;;###autoload (defun org-drag-element-backward () "Move backward element at point." (interactive) @@ -22060,7 +21903,6 @@ Move to the previous element at the same level, when possible." (goto-char (+ (org-element-property :begin prev-elem) (- pos (org-element-property :begin elem))))))))) -;;;###autoload (defun org-drag-element-forward () "Move forward element at point." (interactive) @@ -22095,7 +21937,6 @@ Move to the previous element at the same level, when possible." (org-element-swap-A-B elem next-elem) (goto-char (+ pos size-next size-blank)))))) -;;;###autoload (defun org-mark-element () "Put point at beginning of this element, mark at end. @@ -22116,7 +21957,6 @@ ones already marked." (push-mark (org-element-property :end element) t t) (goto-char (org-element-property :begin element)))))) -;;;###autoload (defun org-narrow-to-element () "Narrow buffer to current element." (interactive) @@ -22135,7 +21975,6 @@ ones already marked." (org-element-property :begin elem) (org-element-property :end elem)))))) -;;;###autoload (defun org-transpose-element () "Transpose current and previous elements, keeping blank lines between. Point is moved after both elements." @@ -22145,7 +21984,6 @@ Point is moved after both elements." (org-drag-element-backward) (goto-char end))) -;;;###autoload (defun org-unindent-buffer () "Un-indent the visible part of the buffer. Relative indentation (between items, inside blocks, etc.) isn't -- 2.11.4.GIT