diff options
37 files changed, 528 insertions, 287 deletions
| @@ -1,3 +1,7 @@ | |||
| 1 | 2013-01-13 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * make-dist: Add options for xz compression and no compression. | ||
| 4 | |||
| 1 | 2013-01-12 Paul Eggert <eggert@cs.ucla.edu> | 5 | 2013-01-12 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 6 | ||
| 3 | Enable conservative stack scanning for all architectures. | 7 | Enable conservative stack scanning for all architectures. |
diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server index 16d8887ed5a..5983a0f9617 100644 --- a/admin/nt/README-ftp-server +++ b/admin/nt/README-ftp-server | |||
| @@ -288,4 +288,4 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| 288 | GNU General Public License for more details. | 288 | GNU General Public License for more details. |
| 289 | 289 | ||
| 290 | You should have received a copy of the GNU General Public License | 290 | You should have received a copy of the GNU General Public License |
| 291 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | 291 | along with GNU Emacs. If not, see http://www.gnu.org/licenses/. |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 4412b1c3c2c..95c7ac7b233 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2013-01-13 Bastien Guerry <bzg@gnu.org> | ||
| 2 | |||
| 3 | * org.texi (Installation): Simplify. | ||
| 4 | |||
| 5 | 2013-01-13 François Allisson <francois@allisson.co> (tiny change) | ||
| 6 | |||
| 7 | * org.texi (Handling links): Update the mention to the obsolete | ||
| 8 | variable `org-link-to-org-use-id' with a mention to the newer | ||
| 9 | variable `org-id-link-to-org-use-id'. Mention the need to load | ||
| 10 | the org-id library. | ||
| 11 | |||
| 1 | 2013-01-10 Michael Albinus <michael.albinus@gmx.de> | 12 | 2013-01-10 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 13 | ||
| 3 | * tramp.texi (Default Host): Introduce `tramp-default-host-alist'. | 14 | * tramp.texi (Default Host): Introduce `tramp-default-host-alist'. |
diff --git a/doc/misc/org.texi b/doc/misc/org.texi index 75298db29fe..d41d2848cc6 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | @c %**start of header | 2 | @c %**start of header |
| 3 | @setfilename ../../info/org | 3 | @setfilename ../../info/org |
| 4 | @settitle The Org Manual | 4 | @settitle The Org Manual |
| 5 | @set VERSION 7.9.3+ (GNU Emacs 24.3) | 5 | @set VERSION 7.9.3d (GNU Emacs 24.3) |
| 6 | 6 | ||
| 7 | @c Use proper quote and backtick for code sections in PDF output | 7 | @c Use proper quote and backtick for code sections in PDF output |
| 8 | @c Cf. Texinfo manual 14.2 | 8 | @c Cf. Texinfo manual 14.2 |
| @@ -339,7 +339,7 @@ with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, | |||
| 339 | Introduction | 339 | Introduction |
| 340 | 340 | ||
| 341 | * Summary:: Brief summary of what Org does | 341 | * Summary:: Brief summary of what Org does |
| 342 | * Installation:: How to install a downloaded version of Org | 342 | * Installation:: Installing Org |
| 343 | * Activation:: How to activate Org for certain buffers | 343 | * Activation:: How to activate Org for certain buffers |
| 344 | * Feedback:: Bug reports, ideas, patches etc. | 344 | * Feedback:: Bug reports, ideas, patches etc. |
| 345 | * Conventions:: Typesetting conventions in the manual | 345 | * Conventions:: Typesetting conventions in the manual |
| @@ -771,7 +771,7 @@ MobileOrg | |||
| 771 | 771 | ||
| 772 | @menu | 772 | @menu |
| 773 | * Summary:: Brief summary of what Org does | 773 | * Summary:: Brief summary of what Org does |
| 774 | * Installation:: How to install a downloaded version of Org | 774 | * Installation:: Installing Org |
| 775 | * Activation:: How to activate Org for certain buffers | 775 | * Activation:: How to activate Org for certain buffers |
| 776 | * Feedback:: Bug reports, ideas, patches etc. | 776 | * Feedback:: Bug reports, ideas, patches etc. |
| 777 | * Conventions:: Typesetting conventions in the manual | 777 | * Conventions:: Typesetting conventions in the manual |
| @@ -851,118 +851,69 @@ Theory Ltd.} | |||
| 851 | @cindex installation | 851 | @cindex installation |
| 852 | @cindex XEmacs | 852 | @cindex XEmacs |
| 853 | 853 | ||
| 854 | @b{Important:} @i{If you the version of Org that comes with Emacs or as a | 854 | Org is part of recent distributions of GNU Emacs, so you normally don't need |
| 855 | XEmacs package, please skip this section and go directly to @ref{Activation}. | 855 | to install it. If, for one reason or another, you want to install Org on top |
| 856 | If you downloaded Org as an ELPA package, please read the instructions on the | 856 | of this pre-packaged version, there are three ways to do it: |
| 857 | @uref{http://orgmode.org/elpa.html, Org ELPA page}. To see what version of Org | ||
| 858 | (if any) is part of your Emacs distribution, type @kbd{M-x org-version} (if | ||
| 859 | your Emacs distribution does not come with Org, this function will not be | ||
| 860 | defined).} | ||
| 861 | |||
| 862 | Installation of Org mode uses a build system, which is described in more | ||
| 863 | detail on @uref{http://orgmode.org/worg/dev/org-build-system.html, Worg}. | ||
| 864 | |||
| 865 | If you have downloaded Org from the Web as a distribution @file{.zip} or | ||
| 866 | @file{.tar.gz} archive, take the following steps to install it: | ||
| 867 | 857 | ||
| 868 | @itemize @bullet | 858 | @itemize @bullet |
| 869 | @item Unpack the distribution archive. | 859 | @item By using Emacs package system. |
| 870 | @item Change into (@code{cd}) the Org directory. | 860 | @item By downloading Org as an archive. |
| 871 | @item Run @code{make help config} | 861 | @item By using Org's git repository. |
| 872 | and then check and edit the file @file{local.mk} if the default configuration | ||
| 873 | does not match your system. Set the name of the Emacs binary (likely either | ||
| 874 | @file{emacs} or @file{xemacs}), and the paths to the directories where local | ||
| 875 | Lisp and Info files will be installed. If the Emacs binary is not in your | ||
| 876 | path, give the full path to the executable. Avoid spaces in any path names. | ||
| 877 | @item Run @code{make config} | ||
| 878 | again to check the configuration. | ||
| 879 | @item Run @code{make install} or @code{sudo make install} | ||
| 880 | to build and install Org mode on your system. | ||
| 881 | @end itemize | 862 | @end itemize |
| 882 | 863 | ||
| 883 | If you use a cloned Git repository, then the procedure is slightly different. | 864 | We @b{strongly recommend} to stick to a single installation method. |
| 884 | The following description assumes that you are using the @code{master} branch | ||
| 885 | (where the development is done). You could also use the @code{maint} branch | ||
| 886 | instead, where the release versions are published, just replace @code{master} | ||
| 887 | with @code{maint} in the description below. | ||
| 888 | 865 | ||
| 889 | @itemize @bullet | 866 | @subsubheading Using Emacs packaging system |
| 890 | @item Change into (@code{cd}) the Org repository. | ||
| 891 | @item Run @code{git checkout master} | ||
| 892 | to switch to the @code{master} branch of the Org repository. | ||
| 893 | @item Run @code{make help} | ||
| 894 | and then check and edit the file @file{local.mk}. You must set the name of | ||
| 895 | the Emacs binary (likely either @file{emacs} or @file{xemacs}), and the paths | ||
| 896 | to the directories where local Lisp and Info files will be installed. If the | ||
| 897 | Emacs binary is not in your path, you must give the full path to the | ||
| 898 | executable. Avoid spaces in any path names. | ||
| 899 | @item Run @code{make config} | ||
| 900 | to check the configuration. | ||
| 901 | @item Optionally run @code{make test} | ||
| 902 | to build Org mode and then run the full testsuite. | ||
| 903 | @item Run @code{make update2} or @code{make up2} | ||
| 904 | to update the Git repository and build and install Org mode. The latter | ||
| 905 | invocation runs the complete test suite before installation and installs only | ||
| 906 | if the build passes all tests. | ||
| 907 | @end itemize | ||
| 908 | 867 | ||
| 909 | If you don't have access to the system-wide directories and you don't want to | 868 | Recent Emacs distributions include a packaging system which lets you install |
| 910 | install somewhere into your home directory, you can run Org directly from the | 869 | Elisp libraries. You can install Org with @kbd{M-x package-install RET org}. |
| 911 | distribution directory or Org repository by compiling Org mode in place: | 870 | To make sure your Org configuration is well taken into account, initialize |
| 912 | 871 | the package system with @code{(package-initialize)} before setting any Org | |
| 913 | @itemize @bullet | 872 | option. If you want to use Org's package repository, check out the |
| 914 | @item Change into (@code{cd}) the Org repository. | 873 | @uref{http://orgmode.org/elpa.html, Org ELPA page}. |
| 915 | @item Run @code{git checkout master} | ||
| 916 | to switch to the @code{master} branch of the Org repository. | ||
| 917 | @item Run @code{make compile} | ||
| 918 | @end itemize | ||
| 919 | 874 | ||
| 920 | Last but not least you can also run Org mode directly from an Org repository | 875 | @subsubheading Downloading Org as an archive |
| 921 | without any compilation. Simply replace the last step in the recipe above | ||
| 922 | with @code{make uncompiled}. | ||
| 923 | 876 | ||
| 924 | Then add the following line to @file{.emacs}: | 877 | You can download Org latest release from @uref{http://orgmode.org/, Org's |
| 878 | website}. In this case, make sure you set the load-path correctly in your | ||
| 879 | @file{.emacs}: | ||
| 925 | 880 | ||
| 926 | @example | 881 | @example |
| 927 | (add-to-list 'load-path "~/path/to/orgdir/lisp") | 882 | (add-to-list 'load-path "~/path/to/orgdir/lisp") |
| 928 | @end example | 883 | @end example |
| 929 | 884 | ||
| 930 | @noindent | 885 | The downloaded archive contains contributed libraries that are not included |
| 931 | If you plan to use code from the @file{contrib} subdirectory without | 886 | in Emacs. If you want to use them, add the @file{contrib} directory to your |
| 932 | compiling them, do a similar step for this directory: | 887 | load-path: |
| 933 | 888 | ||
| 934 | @example | 889 | @example |
| 935 | (add-to-list 'load-path "~/path/to/orgdir/contrib/lisp" t) | 890 | (add-to-list 'load-path "~/path/to/orgdir/contrib/lisp" t) |
| 936 | @end example | 891 | @end example |
| 937 | 892 | ||
| 938 | If you want to include those files with the build and install, please | 893 | Optionally, you can compile the files and/or install them in your system. |
| 939 | customize the variable @code{ORG_ADD_CONTRIB} instead in your @code{local.mk} | 894 | Run @code{make help} to list compilation and installation options. |
| 940 | file, for more details please see this | ||
| 941 | @uref{http://orgmode.org/worg/dev/org-build-system.html#sec-4-1-2, | ||
| 942 | description on Worg}. | ||
| 943 | 895 | ||
| 944 | Installing Info files is system dependent, because of differences in the | 896 | @subsubheading Using Org's git repository |
| 945 | @file{install-info} program. The Info documentation is installed together | 897 | |
| 946 | with the rest of Org mode. If you don't install Org mode, it is possible to | 898 | You can clone Org's repository and install Org like this: |
| 947 | install the Info documentation separately (you need to have | ||
| 948 | install-info@footnote{The output from install-info (if any) is system | ||
| 949 | dependent. In particular Debian and its derivatives use two different | ||
| 950 | versions of install-info and you may see the message: | ||
| 951 | 899 | ||
| 952 | @example | 900 | @example |
| 953 | This is not dpkg install-info anymore, but GNU install-info | 901 | $ cd ~/src/ |
| 954 | See the man page for ginstall-info for command line arguments | 902 | $ git clone git://orgmode.org/org-mode.git |
| 903 | $ make autoloads | ||
| 955 | @end example | 904 | @end example |
| 956 | 905 | ||
| 957 | @noindent which can be safely ignored.} | 906 | Note that @code{make autoloads} is mandatory: it defines Org's version and |
| 958 | on your system). | 907 | Org's autoloaded functions, respectively in @file{org-version.el} and in |
| 908 | @file{org-loaddefs.el}. | ||
| 959 | 909 | ||
| 960 | @example | 910 | Remember to add the correct load-path as described in the method above. |
| 961 | make install-info | ||
| 962 | @end example | ||
| 963 | 911 | ||
| 964 | Do not forget to activate Org as described in the following section. | 912 | You can also compile and install Org from this git repository: check |
| 965 | @page | 913 | @code{make help} to get the list of compilation/installation options. |
| 914 | |||
| 915 | For more detailed explanations on Org's build system, please check the Org | ||
| 916 | Build System page on @uref{http://orgmode.org/worg/dev/org-build-system.html, Worg}. | ||
| 966 | 917 | ||
| 967 | @node Activation, Feedback, Installation, Introduction | 918 | @node Activation, Feedback, Installation, Introduction |
| 968 | @section Activation | 919 | @section Activation |
| @@ -3384,13 +3335,16 @@ be the description@footnote{If the headline contains a timestamp, it will be | |||
| 3384 | removed from the link and result in a wrong link---you should avoid putting | 3335 | removed from the link and result in a wrong link---you should avoid putting |
| 3385 | timestamp in the headline.}. | 3336 | timestamp in the headline.}. |
| 3386 | 3337 | ||
| 3387 | @vindex org-link-to-org-use-id | 3338 | @vindex org-id-link-to-org-use-id |
| 3388 | @cindex property, CUSTOM_ID | 3339 | @cindex property, CUSTOM_ID |
| 3389 | @cindex property, ID | 3340 | @cindex property, ID |
| 3390 | If the headline has a @code{CUSTOM_ID} property, a link to this custom ID | 3341 | If the headline has a @code{CUSTOM_ID} property, a link to this custom ID |
| 3391 | will be stored. In addition or alternatively (depending on the value of | 3342 | will be stored. In addition or alternatively (depending on the value of |
| 3392 | @code{org-link-to-org-use-id}), a globally unique @code{ID} property will be | 3343 | @code{org-id-link-to-org-use-id}), a globally unique @code{ID} property will |
| 3393 | created and/or used to construct a link. So using this command in Org | 3344 | be created and/or used to construct a link@footnote{The library @code{org-id} |
| 3345 | must first be loaded, either through @code{org-customize} by enabling | ||
| 3346 | @code{id} in @code{org-modules} , or by adding @code{(require 'org-id)} in | ||
| 3347 | your @file{.emacs}.}. So using this command in Org | ||
| 3394 | buffers will potentially create two links: a human-readable from the custom | 3348 | buffers will potentially create two links: a human-readable from the custom |
| 3395 | ID, and one that is globally unique and works even if the entry is moved from | 3349 | ID, and one that is globally unique and works even if the entry is moved from |
| 3396 | file to file. Later, when inserting the link, you need to decide which one | 3350 | file to file. Later, when inserting the link, you need to decide which one |
| @@ -58,6 +58,8 @@ entries of a file. On GNU/Linux, the POSIX ACL interface is used via | |||
| 58 | libacl. On MS-Windows, the NT Security APIs are used to emulate the | 58 | libacl. On MS-Windows, the NT Security APIs are used to emulate the |
| 59 | POSIX ACL interfaces. | 59 | POSIX ACL interfaces. |
| 60 | 60 | ||
| 61 | ** New option `scroll-bar-adjust-thumb-portion'. | ||
| 62 | |||
| 61 | * Editing Changes in Emacs 24.4 | 63 | * Editing Changes in Emacs 24.4 |
| 62 | 64 | ||
| 63 | ** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', | 65 | ** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', |
| @@ -66,6 +68,8 @@ bound to <f11> and M-<f10>, respectively. | |||
| 66 | 68 | ||
| 67 | * Changes in Specialized Modes and Packages in Emacs 24.4 | 69 | * Changes in Specialized Modes and Packages in Emacs 24.4 |
| 68 | 70 | ||
| 71 | ** jit-lock-debug-mode lets you use the debuggers on code run via jit-lock. | ||
| 72 | |||
| 69 | ** completing-read-multiple's separator can now be a regexp. | 73 | ** completing-read-multiple's separator can now be a regexp. |
| 70 | The default separator is changed to allow surrounding spaces around the comma. | 74 | The default separator is changed to allow surrounding spaces around the comma. |
| 71 | 75 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7723528c886..5c7e8c3e6a8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,36 @@ | |||
| 1 | 2013-01-13 Fabián Ezequiel Gallina <fgallina@cuca> | ||
| 2 | |||
| 3 | * progmodes/python.el (python-nav-end-of-statement): Fix | ||
| 4 | cornercase when handling multiline strings. | ||
| 5 | |||
| 6 | 2013-01-13 Richard Stallman <rms@gnu.org> | ||
| 7 | |||
| 8 | * mail/sendmail.el (mail-position-on-field): Add doc string. | ||
| 9 | |||
| 10 | * mail/rmailmm.el (rmail-insert-mime-forwarded-message): Get | ||
| 11 | current message boundaries and pass them to | ||
| 12 | message-forward-make-body-mime. Minor style changes. | ||
| 13 | |||
| 14 | 2013-01-13 Eli Zaretskii <eliz@gnu.org> | ||
| 15 | |||
| 16 | * cus-start.el (all): Avoid warnings about | ||
| 17 | scroll-bar-adjust-thumb-portion on platforms where it is not | ||
| 18 | defined. | ||
| 19 | |||
| 20 | 2013-01-11 Jan Djärv <jan.h.d@swipnet.se> | ||
| 21 | |||
| 22 | * cus-start.el (all): Add scroll-bar-adjust-thumb-portion. | ||
| 23 | |||
| 24 | 2013-01-13 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 25 | |||
| 26 | * jit-lock.el (jit-lock-debug-mode): New minor mode. | ||
| 27 | (jit-lock--debug-fontifying): New var. | ||
| 28 | (jit-lock--debug-fontify): New function. | ||
| 29 | * subr.el (condition-case-unless-debug): Don't prevent catching the | ||
| 30 | error, just let the debbugger run. | ||
| 31 | * emacs-lisp/timer.el (timer-event-handler): Don't prevent debugging | ||
| 32 | timer code and don't drop errors silently. | ||
| 33 | |||
| 1 | 2013-01-12 Michael Albinus <michael.albinus@gmx.de> | 34 | 2013-01-12 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 35 | ||
| 3 | * autorevert.el (auto-revert-notify-watch-descriptor): Give it | 36 | * autorevert.el (auto-revert-notify-watch-descriptor): Give it |
diff --git a/lisp/cus-start.el b/lisp/cus-start.el index b954ed60baa..62e91fafcbf 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el | |||
| @@ -513,6 +513,7 @@ since it could result in memory overflow and make Emacs crash." | |||
| 513 | (x-use-underline-position-properties display boolean "22.1") | 513 | (x-use-underline-position-properties display boolean "22.1") |
| 514 | (x-underline-at-descent-line display boolean "22.1") | 514 | (x-underline-at-descent-line display boolean "22.1") |
| 515 | (x-stretch-cursor display boolean "21.1") | 515 | (x-stretch-cursor display boolean "21.1") |
| 516 | (scroll-bar-adjust-thumb-portion windows boolean "24.4") | ||
| 516 | ;; xselect.c | 517 | ;; xselect.c |
| 517 | (x-select-enable-clipboard-manager killing boolean "24.1") | 518 | (x-select-enable-clipboard-manager killing boolean "24.1") |
| 518 | ;; xsettings.c | 519 | ;; xsettings.c |
| @@ -575,6 +576,9 @@ since it could result in memory overflow and make Emacs crash." | |||
| 575 | (symbol-name symbol)) | 576 | (symbol-name symbol)) |
| 576 | ;; Any function from fontset.c will do. | 577 | ;; Any function from fontset.c will do. |
| 577 | (fboundp 'new-fontset)) | 578 | (fboundp 'new-fontset)) |
| 579 | ((equal "scroll-bar-adjust-thumb-portion" | ||
| 580 | (symbol-name symbol)) | ||
| 581 | (featurep 'x)) | ||
| 578 | (t t)))) | 582 | (t t)))) |
| 579 | (if (not (boundp symbol)) | 583 | (if (not (boundp symbol)) |
| 580 | ;; If variables are removed from C code, give an error here! | 584 | ;; If variables are removed from C code, give an error here! |
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 3eaacd24ec8..8b019d0a785 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el | |||
| @@ -307,13 +307,13 @@ This function is called, by name, directly by the C code." | |||
| 307 | ;; Run handler. | 307 | ;; Run handler. |
| 308 | ;; We do this after rescheduling so that the handler function | 308 | ;; We do this after rescheduling so that the handler function |
| 309 | ;; can cancel its own timer successfully with cancel-timer. | 309 | ;; can cancel its own timer successfully with cancel-timer. |
| 310 | (condition-case nil | 310 | (condition-case-unless-debug err |
| 311 | ;; Timer functions should not change the current buffer. | 311 | ;; Timer functions should not change the current buffer. |
| 312 | ;; If they do, all kinds of nasty surprises can happen, | 312 | ;; If they do, all kinds of nasty surprises can happen, |
| 313 | ;; and it can be hellish to track down their source. | 313 | ;; and it can be hellish to track down their source. |
| 314 | (save-current-buffer | 314 | (save-current-buffer |
| 315 | (apply (timer--function timer) (timer--args timer))) | 315 | (apply (timer--function timer) (timer--args timer))) |
| 316 | (error nil)) | 316 | (error (message "Error in timer: %S" err))) |
| 317 | (if retrigger | 317 | (if retrigger |
| 318 | (setf (timer--triggered timer) nil))) | 318 | (setf (timer--triggered timer) nil))) |
| 319 | (error "Bogus timer event")))) | 319 | (error "Bogus timer event")))) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 44dbf060e49..1524f000450 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2013-01-13 Richard Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * message.el (message-forward-make-body-mime): New args BEG, END | ||
| 4 | specify what part of FORWARD-BUFFER to use. Do the work directly | ||
| 5 | instead of calling `mml-insert-buffer'. | ||
| 6 | |||
| 1 | 2013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com> | 7 | 2013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com> |
| 2 | 8 | ||
| 3 | * gnus-start.el (gnus-check-new-newsgroups): Fix ambiguous doc string | 9 | * gnus-start.el (gnus-check-new-newsgroups): Fix ambiguous doc string |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 8832899c55d..808e1edd6c3 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -7376,12 +7376,13 @@ Optional DIGEST will use digest to forward." | |||
| 7376 | (dolist (elem ignored) | 7376 | (dolist (elem ignored) |
| 7377 | (message-remove-header elem t)))))) | 7377 | (message-remove-header elem t)))))) |
| 7378 | 7378 | ||
| 7379 | (defun message-forward-make-body-mime (forward-buffer) | 7379 | (defun message-forward-make-body-mime (forward-buffer &optional beg end) |
| 7380 | (let ((b (point))) | 7380 | (let ((b (point))) |
| 7381 | (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n") | 7381 | (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n") |
| 7382 | (save-restriction | 7382 | (save-restriction |
| 7383 | (narrow-to-region (point) (point)) | 7383 | (narrow-to-region (point) (point)) |
| 7384 | (mml-insert-buffer forward-buffer) | 7384 | (insert-buffer-substring forward-buffer beg end) |
| 7385 | (mml-quote-region (point-min) (point-max)) | ||
| 7385 | (goto-char (point-min)) | 7386 | (goto-char (point-min)) |
| 7386 | (when (looking-at "From ") | 7387 | (when (looking-at "From ") |
| 7387 | (replace-match "X-From-Line: ")) | 7388 | (replace-match "X-From-Line: ")) |
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index 7be5df72c84..668f1ec963a 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el | |||
| @@ -257,6 +257,47 @@ the variable `jit-lock-stealth-nice'." | |||
| 257 | (remove-hook 'after-change-functions 'jit-lock-after-change t) | 257 | (remove-hook 'after-change-functions 'jit-lock-after-change t) |
| 258 | (remove-hook 'fontification-functions 'jit-lock-function)))) | 258 | (remove-hook 'fontification-functions 'jit-lock-function)))) |
| 259 | 259 | ||
| 260 | (define-minor-mode jit-lock-debug-mode | ||
| 261 | "Minor mode to help debug code run from jit-lock. | ||
| 262 | When this minor mode is enabled, jit-lock runs as little code as possible | ||
| 263 | during redisplay and moves the rest to a timer, where things | ||
| 264 | like `debug-on-error' and Edebug can be used." | ||
| 265 | :global t | ||
| 266 | (when jit-lock-defer-timer | ||
| 267 | (cancel-timer jit-lock-defer-timer) | ||
| 268 | (setq jit-lock-defer-timer nil)) | ||
| 269 | (when jit-lock-debug-mode | ||
| 270 | (setq jit-lock-defer-timer | ||
| 271 | (run-with-idle-timer 0 t #'jit-lock--debug-fontify)))) | ||
| 272 | |||
| 273 | (defvar jit-lock--debug-fontifying nil) | ||
| 274 | |||
| 275 | (defun jit-lock--debug-fontify () | ||
| 276 | "Fontify what was deferred for debugging." | ||
| 277 | (when (and (not jit-lock--debug-fontifying) | ||
| 278 | jit-lock-defer-buffers (not memory-full)) | ||
| 279 | (let ((jit-lock--debug-fontifying t) | ||
| 280 | (inhibit-debugger nil)) ;FIXME: Not sufficient! | ||
| 281 | ;; Mark the deferred regions back to `fontified = nil' | ||
| 282 | (dolist (buffer jit-lock-defer-buffers) | ||
| 283 | (when (buffer-live-p buffer) | ||
| 284 | (with-current-buffer buffer | ||
| 285 | ;; (message "Jit-Debug %s" (buffer-name)) | ||
| 286 | (with-buffer-prepared-for-jit-lock | ||
| 287 | (let ((pos (point-min))) | ||
| 288 | (while | ||
| 289 | (progn | ||
| 290 | (when (eq (get-text-property pos 'fontified) 'defer) | ||
| 291 | (let ((beg pos) | ||
| 292 | (end (setq pos (next-single-property-change | ||
| 293 | pos 'fontified | ||
| 294 | nil (point-max))))) | ||
| 295 | (put-text-property beg end 'fontified nil) | ||
| 296 | (jit-lock-fontify-now beg end))) | ||
| 297 | (setq pos (next-single-property-change | ||
| 298 | pos 'fontified))))))))) | ||
| 299 | (setq jit-lock-defer-buffers nil)))) | ||
| 300 | |||
| 260 | (defun jit-lock-register (fun &optional contextual) | 301 | (defun jit-lock-register (fun &optional contextual) |
| 261 | "Register FUN as a fontification function to be called in this buffer. | 302 | "Register FUN as a fontification function to be called in this buffer. |
| 262 | FUN will be called with two arguments START and END indicating the region | 303 | FUN will be called with two arguments START and END indicating the region |
| @@ -504,7 +545,8 @@ non-nil in a repeated invocation of this function." | |||
| 504 | pos (setq pos (next-single-property-change | 545 | pos (setq pos (next-single-property-change |
| 505 | pos 'fontified nil (point-max))) | 546 | pos 'fontified nil (point-max))) |
| 506 | 'fontified nil)) | 547 | 'fontified nil)) |
| 507 | (setq pos (next-single-property-change pos 'fontified))))))))) | 548 | (setq pos (next-single-property-change |
| 549 | pos 'fontified))))))))) | ||
| 508 | (setq jit-lock-defer-buffers nil) | 550 | (setq jit-lock-defer-buffers nil) |
| 509 | ;; Force fontification of the visible parts. | 551 | ;; Force fontification of the visible parts. |
| 510 | (let ((jit-lock-defer-timer nil)) | 552 | (let ((jit-lock-defer-timer nil)) |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index e32d3c608d4..c6385498dcd 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -4647,7 +4647,7 @@ With prefix argument N moves forward N messages with these labels. | |||
| 4647 | 4647 | ||
| 4648 | ;;;*** | 4648 | ;;;*** |
| 4649 | 4649 | ||
| 4650 | ;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "1f33964668345a1a1f3119fece148227") | 4650 | ;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "93951f748e43e1015da1b485088970ca") |
| 4651 | ;;; Generated autoloads from rmailmm.el | 4651 | ;;; Generated autoloads from rmailmm.el |
| 4652 | 4652 | ||
| 4653 | (autoload 'rmail-mime "rmailmm" "\ | 4653 | (autoload 'rmail-mime "rmailmm" "\ |
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index 566dec1ad39..350e3dacbcf 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el | |||
| @@ -1365,14 +1365,15 @@ The arguments ARG and STATE have no effect in this case." | |||
| 1365 | (defun rmail-insert-mime-forwarded-message (forward-buffer) | 1365 | (defun rmail-insert-mime-forwarded-message (forward-buffer) |
| 1366 | "Insert the message in FORWARD-BUFFER as a forwarded message. | 1366 | "Insert the message in FORWARD-BUFFER as a forwarded message. |
| 1367 | This is the usual value of `rmail-insert-mime-forwarded-message-function'." | 1367 | This is the usual value of `rmail-insert-mime-forwarded-message-function'." |
| 1368 | (let ((message-buffer | 1368 | (let (contents-buffer start end) |
| 1369 | (with-current-buffer forward-buffer | 1369 | (with-current-buffer forward-buffer |
| 1370 | (if rmail-buffer-swapped | 1370 | (setq contents-buffer |
| 1371 | rmail-view-buffer | 1371 | (if rmail-buffer-swapped |
| 1372 | forward-buffer)))) | 1372 | rmail-view-buffer |
| 1373 | (save-restriction | 1373 | forward-buffer) |
| 1374 | (narrow-to-region (point) (point)) | 1374 | start (rmail-msgbeg rmail-current-message) |
| 1375 | (message-forward-make-body-mime message-buffer)))) | 1375 | end (rmail-msgend rmail-current-message))) |
| 1376 | (message-forward-make-body-mime contents-buffer start end))) | ||
| 1376 | 1377 | ||
| 1377 | (setq rmail-insert-mime-forwarded-message-function | 1378 | (setq rmail-insert-mime-forwarded-message-function |
| 1378 | 'rmail-insert-mime-forwarded-message) | 1379 | 'rmail-insert-mime-forwarded-message) |
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index e86229a5cfb..e1dee3295f2 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el | |||
| @@ -1493,6 +1493,9 @@ just append to the file, in Babyl format if necessary." | |||
| 1493 | (insert "\nMail-Followup-To: ")))) | 1493 | (insert "\nMail-Followup-To: ")))) |
| 1494 | 1494 | ||
| 1495 | (defun mail-position-on-field (field &optional soft) | 1495 | (defun mail-position-on-field (field &optional soft) |
| 1496 | "Move to the start of the contents of header field FIELD. | ||
| 1497 | If there is none, insert one, unless SOFT is non-nil. | ||
| 1498 | If there are multiple FIELD fields, this goes to the first." | ||
| 1496 | (let (end | 1499 | (let (end |
| 1497 | (case-fold-search t)) | 1500 | (case-fold-search t)) |
| 1498 | (setq end (mail-header-end)) | 1501 | (setq end (mail-header-end)) |
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index 3a575f60414..56a76c7d680 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog | |||
| @@ -1,24 +1,47 @@ | |||
| 1 | 2013-01-09 Achim Gratz <Stromeko@Stromeko.de> | 1 | 2013-01-13 Bastien Guerry <bzg@gnu.org> |
| 2 | |||
| 3 | * org-compat.el (org-condition-case-unless-debug): Delete. | ||
| 4 | |||
| 5 | * org-odt.el (org-odt-cleanup-xml-buffers): Use | ||
| 6 | `condition-case' instead of `org-condition-case-unless-debug', | ||
| 7 | which is now deleted. | ||
| 8 | |||
| 9 | * org-capture.el (org-capture-templates-contexts): | ||
| 10 | * org-agenda.el (org-agenda-custom-commands-contexts): | ||
| 11 | Docstring fix. | ||
| 12 | |||
| 13 | * org.el (org-get-tags-at): Remove duplicate inherited tags. | ||
| 14 | |||
| 15 | * org-agenda.el (org-agenda-show-inherited-tags): Allow to be set | ||
| 16 | to 'always or to a list of agenda types. | ||
| 17 | (org-agenda-finalize): Rework conditions under which inherited | ||
| 18 | tags should be made available even when not displayed. | ||
| 19 | (org-search-view, org-agenda-get-todos) | ||
| 20 | (org-agenda-get-timestamps, org-agenda-get-sexps) | ||
| 21 | (org-agenda-get-progress, org-agenda-get-scheduled) | ||
| 22 | (org-agenda-get-blocks): Use new possible values of | ||
| 23 | `org-agenda-show-inherited-tags'. | ||
| 2 | 24 | ||
| 3 | * org-compat.el (org-define-obsolete-function-alias) | 25 | * org.el (org-open-at-point): Fix opening all links at point. |
| 4 | (org-define-obsolete-variable-alias): Introduce new compatibility | ||
| 5 | macros to obsolete functions and variables. | ||
| 6 | 26 | ||
| 7 | * org-agenda.el, org-clock.el, org-id.el, org-lparse.el: | 27 | * org-agenda.el (org-get-entries-from-diary): Turn off |
| 8 | * org-protocol.el, org.el: | 28 | `diary-file-name-prefix' instead of |
| 9 | Use `org-define-obsolete-{function,variable}-alias' instead | 29 | `diary-file-name-prefix-function', the former is checked before |
| 10 | of `define-obsolate{function,variable}-alias'. | 30 | the latter. |
| 31 | |||
| 32 | * org.el (org-edit-special): Check for table.el before checking | ||
| 33 | for Org tables. | ||
| 34 | |||
| 35 | 2013-01-13 Michael Albinus <michael.albinus@gmx.de> | ||
| 36 | |||
| 37 | * ob-eval.el (org-babel-shell-command-on-region): Use | ||
| 38 | `executable-find' for local `shell-file-name'. | ||
| 39 | |||
| 40 | 2013-01-09 Achim Gratz <Stromeko@Stromeko.de> | ||
| 11 | 41 | ||
| 12 | * org-faces.el: Define face alias mode-line for XEmacs (it's | 42 | * org-faces.el: Define face alias mode-line for XEmacs (it's |
| 13 | called modeline there). | 43 | called modeline there). |
| 14 | 44 | ||
| 15 | * org-compat.el (org-condition-case-unless-debug): Do not use | ||
| 16 | defalias for special forms, the Emacs 22 byte-compiler does not | ||
| 17 | recognize them correctly when compiling macros. Use a macro | ||
| 18 | instead and rely on macro expansion. That however makes the | ||
| 19 | decision at compile time, which should be acceptable in this case | ||
| 20 | since it only affects debugging. | ||
| 21 | |||
| 22 | * org-compat.el (org-no-popups): New wrapper macro which let-binds | 45 | * org-compat.el (org-no-popups): New wrapper macro which let-binds |
| 23 | the correct variables to suppress popup windows depending on the | 46 | the correct variables to suppress popup windows depending on the |
| 24 | Emacs version in use. This is a compile-time decision when | 47 | Emacs version in use. This is a compile-time decision when |
diff --git a/lisp/org/ob-eval.el b/lisp/org/ob-eval.el index 5884d33d786..22d2bcf288e 100644 --- a/lisp/org/ob-eval.el +++ b/lisp/org/ob-eval.el | |||
| @@ -137,11 +137,17 @@ specifies the value of ERROR-BUFFER." | |||
| 137 | t))) | 137 | t))) |
| 138 | (let ((input-file (org-babel-temp-file "input-")) | 138 | (let ((input-file (org-babel-temp-file "input-")) |
| 139 | (error-file (if error-buffer (org-babel-temp-file "scor-") nil)) | 139 | (error-file (if error-buffer (org-babel-temp-file "scor-") nil)) |
| 140 | ;; Unfortunately, `executable-find' does not support file name | ||
| 141 | ;; handlers. Therefore, we could use it in the local case | ||
| 142 | ;; only. | ||
| 140 | (shell-file-name | 143 | (shell-file-name |
| 141 | (if (file-executable-p | 144 | (cond ((and (not (file-remote-p default-directory)) |
| 142 | (concat (file-remote-p default-directory) shell-file-name)) | 145 | (executable-find shell-file-name)) |
| 143 | shell-file-name | 146 | shell-file-name) |
| 144 | "/bin/sh")) | 147 | ((file-executable-p |
| 148 | (concat (file-remote-p default-directory) shell-file-name)) | ||
| 149 | shell-file-name) | ||
| 150 | ("/bin/sh"))) | ||
| 145 | exit-status) | 151 | exit-status) |
| 146 | ;; There is an error in `process-file' when `error-file' exists. | 152 | ;; There is an error in `process-file' when `error-file' exists. |
| 147 | ;; This is fixed in Emacs trunk as of 2012-12-21; let's use this | 153 | ;; This is fixed in Emacs trunk as of 2012-12-21; let's use this |
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 2eb96c2510b..ca8459ca33d 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el | |||
| @@ -890,7 +890,7 @@ you want to use two-columns display (see `org-agenda-menu-two-columns')." | |||
| 890 | :version "24.1" | 890 | :version "24.1" |
| 891 | :type 'boolean) | 891 | :type 'boolean) |
| 892 | 892 | ||
| 893 | (org-define-obsolete-variable-alias 'org-agenda-menu-two-column 'org-agenda-menu-two-columns "24.3") | 893 | (define-obsolete-variable-alias 'org-agenda-menu-two-column 'org-agenda-menu-two-columns "24.3") |
| 894 | 894 | ||
| 895 | (defcustom org-agenda-menu-two-columns nil | 895 | (defcustom org-agenda-menu-two-columns nil |
| 896 | "Non-nil means, use two columns to show custom commands in the dispatcher. | 896 | "Non-nil means, use two columns to show custom commands in the dispatcher. |
| @@ -900,7 +900,7 @@ to nil." | |||
| 900 | :version "24.1" | 900 | :version "24.1" |
| 901 | :type 'boolean) | 901 | :type 'boolean) |
| 902 | 902 | ||
| 903 | (org-define-obsolete-variable-alias 'org-finalize-agenda-hook 'org-agenda-finalize-hook "24.3") | 903 | (define-obsolete-variable-alias 'org-finalize-agenda-hook 'org-agenda-finalize-hook "24.3") |
| 904 | (defcustom org-agenda-finalize-hook nil | 904 | (defcustom org-agenda-finalize-hook nil |
| 905 | "Hook run just before displaying an agenda buffer. | 905 | "Hook run just before displaying an agenda buffer. |
| 906 | The buffer is still writable when the hook is called. | 906 | The buffer is still writable when the hook is called. |
| @@ -1648,26 +1648,53 @@ When non-nil, this must be the number of minutes, e.g. 60 for one hour." | |||
| 1648 | (const :tag "No default duration"))) | 1648 | (const :tag "No default duration"))) |
| 1649 | 1649 | ||
| 1650 | (defcustom org-agenda-show-inherited-tags t | 1650 | (defcustom org-agenda-show-inherited-tags t |
| 1651 | "Non-nil means show inherited tags in each agenda line." | 1651 | "Non-nil means show inherited tags in each agenda line. |
| 1652 | |||
| 1653 | When this option is set to 'always, it take precedences over | ||
| 1654 | `org-agenda-use-tag-inheritance' and inherited tags are shown | ||
| 1655 | in every agenda. | ||
| 1656 | |||
| 1657 | When this option is set to t (the default), inherited tags are | ||
| 1658 | shown when they are available, i.e. when the value of | ||
| 1659 | `org-agenda-use-tag-inheritance' has been taken into account. | ||
| 1660 | |||
| 1661 | This can be set to a list of agenda types in which the agenda | ||
| 1662 | must display the inherited tags. Available types are 'todo, | ||
| 1663 | 'agenda, 'search and 'timeline. | ||
| 1664 | |||
| 1665 | When set to nil, never show inherited tags in agenda lines." | ||
| 1652 | :group 'org-agenda-line-format | 1666 | :group 'org-agenda-line-format |
| 1653 | :type 'boolean) | 1667 | :group 'org-agenda |
| 1668 | :version "24.3" | ||
| 1669 | :type '(choice | ||
| 1670 | (const :tag "Show inherited tags when available" t) | ||
| 1671 | (const :tag "Always show inherited tags" 'always) | ||
| 1672 | (repeat :tag "Show inherited tags only in selected agenda types" | ||
| 1673 | (symbol :tag "Agenda type")))) | ||
| 1654 | 1674 | ||
| 1655 | (defcustom org-agenda-use-tag-inheritance '(todo search timeline agenda) | 1675 | (defcustom org-agenda-use-tag-inheritance '(todo search timeline agenda) |
| 1656 | "List of agenda view types where to use tag inheritance. | 1676 | "List of agenda view types where to use tag inheritance. |
| 1657 | 1677 | ||
| 1658 | In tags/tags-todo/tags-tree agenda views, tag inheritance is | 1678 | In tags/tags-todo/tags-tree agenda views, tag inheritance is |
| 1659 | controlled by `org-use-tag-inheritance'. In other agenda types, | 1679 | controlled by `org-use-tag-inheritance'. In other agenda types, |
| 1660 | `org-use-tag-inheritance' is not used when selecting the agenda | 1680 | `org-use-tag-inheritance' is not used for the selection of the |
| 1661 | entries, but you may want the agenda to use the inherited tags | 1681 | agenda entries. Still, you may want the agenda to be aware of |
| 1662 | anyway, e.g. for later tag filtering. | 1682 | the inherited tags anyway, e.g. for later tag filtering. |
| 1663 | 1683 | ||
| 1664 | The default value reset tags in every agenda type. Setting this | 1684 | Allowed value are 'todo, 'search, 'timeline and 'agenda. |
| 1665 | option to nil will speed up non-tags agenda view a lot. | ||
| 1666 | 1685 | ||
| 1667 | Allowed value are 'todo, 'search, 'timeline and 'agenda." | 1686 | This variable has no effect if `org-agenda-show-inherited-tags' |
| 1668 | :version "24.3" | 1687 | is set to 'always. In that case, the agenda is aware of those |
| 1688 | tags. | ||
| 1689 | |||
| 1690 | The default value sets tags in every agenda type. Setting this | ||
| 1691 | option to nil will speed up non-tags agenda view a lot." | ||
| 1669 | :group 'org-agenda | 1692 | :group 'org-agenda |
| 1670 | :type '(repeat (symbol :tag "Agenda type"))) | 1693 | :version "24.3" |
| 1694 | :type '(choice | ||
| 1695 | (const :tag "Use tag inheritance in all agenda types" t) | ||
| 1696 | (repeat :tag "Use tag inheritance in selected agenda types" | ||
| 1697 | (symbol :tag "Agenda type")))) | ||
| 1671 | 1698 | ||
| 1672 | (defcustom org-agenda-hide-tags-regexp nil | 1699 | (defcustom org-agenda-hide-tags-regexp nil |
| 1673 | "Regular expression used to filter away specific tags in agenda views. | 1700 | "Regular expression used to filter away specific tags in agenda views. |
| @@ -2363,7 +2390,7 @@ For example, if you have a custom agenda command \"p\" and you | |||
| 2363 | want this command to be accessible only from plain text files, | 2390 | want this command to be accessible only from plain text files, |
| 2364 | use this: | 2391 | use this: |
| 2365 | 2392 | ||
| 2366 | '((\"p\" (in-file . \"\\.txt\"))) | 2393 | '((\"p\" ((in-file . \"\\.txt\")))) |
| 2367 | 2394 | ||
| 2368 | Here are the available contexts definitions: | 2395 | Here are the available contexts definitions: |
| 2369 | 2396 | ||
| @@ -2379,7 +2406,7 @@ accessible if there is at least one valid check. | |||
| 2379 | You can also bind a key to another agenda custom command | 2406 | You can also bind a key to another agenda custom command |
| 2380 | depending on contextual rules. | 2407 | depending on contextual rules. |
| 2381 | 2408 | ||
| 2382 | '((\"p\" \"q\" (in-file . \"\\.txt\"))) | 2409 | '((\"p\" \"q\" ((in-file . \"\\.txt\")))) |
| 2383 | 2410 | ||
| 2384 | Here it means: in .txt files, use \"p\" as the key for the | 2411 | Here it means: in .txt files, use \"p\" as the key for the |
| 2385 | agenda command otherwise associated with \"q\". (The command | 2412 | agenda command otherwise associated with \"q\". (The command |
| @@ -3569,8 +3596,14 @@ generating a new one." | |||
| 3569 | (save-excursion (next-single-property-change (point-min) 'org-habit-p))) | 3596 | (save-excursion (next-single-property-change (point-min) 'org-habit-p))) |
| 3570 | (org-habit-insert-consistency-graphs)) | 3597 | (org-habit-insert-consistency-graphs)) |
| 3571 | (setq org-agenda-type (org-get-at-bol 'org-agenda-type)) | 3598 | (setq org-agenda-type (org-get-at-bol 'org-agenda-type)) |
| 3572 | (when (delq nil (mapcar (lambda (tp) (org-agenda-check-type nil tp)) | 3599 | (unless (or (eq org-agenda-show-inherited-tags 'always) |
| 3573 | org-agenda-use-tag-inheritance)) | 3600 | (and (listp org-agenda-show-inherited-tags) |
| 3601 | (memq org-agenda-type org-agenda-show-inherited-tags)) | ||
| 3602 | (and (eq org-agenda-show-inherited-tags t) | ||
| 3603 | (or (eq org-agenda-use-tag-inheritance t) | ||
| 3604 | (and (listp org-agenda-use-tag-inheritance) | ||
| 3605 | (not (memq org-agenda-type | ||
| 3606 | org-agenda-use-tag-inheritance)))))) | ||
| 3574 | (let (mrk) | 3607 | (let (mrk) |
| 3575 | (save-excursion | 3608 | (save-excursion |
| 3576 | (goto-char (point-min)) | 3609 | (goto-char (point-min)) |
| @@ -4290,7 +4323,7 @@ in `org-agenda-text-search-extra-files'." | |||
| 4290 | 'help-echo (format "mouse-2 or RET jump to location"))) | 4323 | 'help-echo (format "mouse-2 or RET jump to location"))) |
| 4291 | (full-words org-agenda-search-view-force-full-words) | 4324 | (full-words org-agenda-search-view-force-full-words) |
| 4292 | (org-agenda-text-search-extra-files org-agenda-text-search-extra-files) | 4325 | (org-agenda-text-search-extra-files org-agenda-text-search-extra-files) |
| 4293 | regexp rtn rtnall files file pos | 4326 | regexp rtn rtnall files file pos inherited-tags |
| 4294 | marker category category-pos tags c neg re boolean | 4327 | marker category category-pos tags c neg re boolean |
| 4295 | ee txt beg end words regexps+ regexps- hdl-only buffer beg1 str) | 4328 | ee txt beg end words regexps+ regexps- hdl-only buffer beg1 str) |
| 4296 | (unless (and (not edit-at) | 4329 | (unless (and (not edit-at) |
| @@ -4444,7 +4477,13 @@ in `org-agenda-text-search-extra-files'." | |||
| 4444 | (setq marker (org-agenda-new-marker (point)) | 4477 | (setq marker (org-agenda-new-marker (point)) |
| 4445 | category (org-get-category) | 4478 | category (org-get-category) |
| 4446 | category-pos (get-text-property (point) 'org-category-position) | 4479 | category-pos (get-text-property (point) 'org-category-position) |
| 4447 | tags (org-get-tags-at nil t) | 4480 | inherited-tags |
| 4481 | (or (eq org-agenda-show-inherited-tags 'always) | ||
| 4482 | (memq 'todo org-agenda-show-inherited-tags) | ||
| 4483 | (and (eq org-agenda-show-inherited-tags t) | ||
| 4484 | (or (eq org-agenda-use-tag-inheritance t) | ||
| 4485 | (memq 'todo org-agenda-use-tag-inheritance)))) | ||
| 4486 | tags (org-get-tags-at nil (not inherited-tags)) | ||
| 4448 | txt (org-agenda-format-item | 4487 | txt (org-agenda-format-item |
| 4449 | "" | 4488 | "" |
| 4450 | (buffer-substring-no-properties | 4489 | (buffer-substring-no-properties |
| @@ -4974,7 +5013,7 @@ of what a project is and how to check if it stuck, customize the variable | |||
| 4974 | (pop-up-frames nil) | 5013 | (pop-up-frames nil) |
| 4975 | (diary-list-entries-hook | 5014 | (diary-list-entries-hook |
| 4976 | (cons 'org-diary-default-entry diary-list-entries-hook)) | 5015 | (cons 'org-diary-default-entry diary-list-entries-hook)) |
| 4977 | (diary-file-name-prefix-function nil) ; turn this feature off | 5016 | (diary-file-name-prefix nil) ; turn this feature off |
| 4978 | (diary-modify-entry-list-string-function 'org-modify-diary-entry-string) | 5017 | (diary-modify-entry-list-string-function 'org-modify-diary-entry-string) |
| 4979 | entries | 5018 | entries |
| 4980 | (org-disable-agenda-to-diary t)) | 5019 | (org-disable-agenda-to-diary t)) |
| @@ -5250,7 +5289,7 @@ the documentation of `org-diary'." | |||
| 5250 | "\\|") "\\)")) | 5289 | "\\|") "\\)")) |
| 5251 | (t org-not-done-regexp)))) | 5290 | (t org-not-done-regexp)))) |
| 5252 | marker priority category category-pos tags todo-state | 5291 | marker priority category category-pos tags todo-state |
| 5253 | ee txt beg end) | 5292 | ee txt beg end inherited-tags) |
| 5254 | (goto-char (point-min)) | 5293 | (goto-char (point-min)) |
| 5255 | (while (re-search-forward regexp nil t) | 5294 | (while (re-search-forward regexp nil t) |
| 5256 | (catch :skip | 5295 | (catch :skip |
| @@ -5268,7 +5307,14 @@ the documentation of `org-diary'." | |||
| 5268 | category-pos (get-text-property (point) 'org-category-position) | 5307 | category-pos (get-text-property (point) 'org-category-position) |
| 5269 | txt (org-trim | 5308 | txt (org-trim |
| 5270 | (buffer-substring (match-beginning 2) (match-end 0))) | 5309 | (buffer-substring (match-beginning 2) (match-end 0))) |
| 5271 | tags (org-get-tags-at nil t) | 5310 | inherited-tags |
| 5311 | (or (eq org-agenda-show-inherited-tags 'always) | ||
| 5312 | (and (listp org-agenda-show-inherited-tags) | ||
| 5313 | (memq 'todo org-agenda-show-inherited-tags)) | ||
| 5314 | (and (eq org-agenda-show-inherited-tags t) | ||
| 5315 | (or (eq org-agenda-use-tag-inheritance t) | ||
| 5316 | (memq 'todo org-agenda-use-tag-inheritance)))) | ||
| 5317 | tags (org-get-tags-at nil (not inherited-tags)) | ||
| 5272 | txt (org-agenda-format-item "" txt category tags t) | 5318 | txt (org-agenda-format-item "" txt category tags t) |
| 5273 | priority (1+ (org-get-priority txt)) | 5319 | priority (1+ (org-get-priority txt)) |
| 5274 | todo-state (org-get-todo-state)) | 5320 | todo-state (org-get-todo-state)) |
| @@ -5395,7 +5441,8 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? | |||
| 5395 | "\\|\\(<%%\\(([^>\n]+)\\)>\\)")) | 5441 | "\\|\\(<%%\\(([^>\n]+)\\)>\\)")) |
| 5396 | marker hdmarker deadlinep scheduledp clockp closedp inactivep | 5442 | marker hdmarker deadlinep scheduledp clockp closedp inactivep |
| 5397 | donep tmp priority category category-pos ee txt timestr tags | 5443 | donep tmp priority category category-pos ee txt timestr tags |
| 5398 | b0 b3 e3 head todo-state end-of-match show-all warntime habitp) | 5444 | b0 b3 e3 head todo-state end-of-match show-all warntime habitp |
| 5445 | inherited-tags) | ||
| 5399 | (goto-char (point-min)) | 5446 | (goto-char (point-min)) |
| 5400 | (while (setq end-of-match (re-search-forward regexp nil t)) | 5447 | (while (setq end-of-match (re-search-forward regexp nil t)) |
| 5401 | (setq b0 (match-beginning 0) | 5448 | (setq b0 (match-beginning 0) |
| @@ -5447,7 +5494,14 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? | |||
| 5447 | (assoc (point) deadline-position-alist)) | 5494 | (assoc (point) deadline-position-alist)) |
| 5448 | (throw :skip nil)) | 5495 | (throw :skip nil)) |
| 5449 | (setq hdmarker (org-agenda-new-marker) | 5496 | (setq hdmarker (org-agenda-new-marker) |
| 5450 | tags (org-get-tags-at nil t)) | 5497 | inherited-tags |
| 5498 | (or (eq org-agenda-show-inherited-tags 'always) | ||
| 5499 | (and (listp org-agenda-show-inherited-tags) | ||
| 5500 | (memq 'agenda org-agenda-show-inherited-tags)) | ||
| 5501 | (and (eq org-agenda-show-inherited-tags t) | ||
| 5502 | (or (eq org-agenda-use-tag-inheritance t) | ||
| 5503 | (memq 'agenda org-agenda-use-tag-inheritance)))) | ||
| 5504 | tags (org-get-tags-at nil (not inherited-tags))) | ||
| 5451 | (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") | 5505 | (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") |
| 5452 | (setq head (or (match-string 1) "")) | 5506 | (setq head (or (match-string 1) "")) |
| 5453 | (setq txt (org-agenda-format-item | 5507 | (setq txt (org-agenda-format-item |
| @@ -5479,7 +5533,7 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? | |||
| 5479 | (abbreviate-file-name buffer-file-name)))) | 5533 | (abbreviate-file-name buffer-file-name)))) |
| 5480 | (regexp "^&?%%(") | 5534 | (regexp "^&?%%(") |
| 5481 | marker category extra category-pos ee txt tags entry | 5535 | marker category extra category-pos ee txt tags entry |
| 5482 | result beg b sexp sexp-entry todo-state warntime) | 5536 | result beg b sexp sexp-entry todo-state warntime inherited-tags) |
| 5483 | (goto-char (point-min)) | 5537 | (goto-char (point-min)) |
| 5484 | (while (re-search-forward regexp nil t) | 5538 | (while (re-search-forward regexp nil t) |
| 5485 | (catch :skip | 5539 | (catch :skip |
| @@ -5497,7 +5551,14 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? | |||
| 5497 | (setq marker (org-agenda-new-marker beg) | 5551 | (setq marker (org-agenda-new-marker beg) |
| 5498 | category (org-get-category beg) | 5552 | category (org-get-category beg) |
| 5499 | category-pos (get-text-property beg 'org-category-position) | 5553 | category-pos (get-text-property beg 'org-category-position) |
| 5500 | tags (save-excursion (org-back-to-heading t) (org-get-tags-at nil t)) | 5554 | inherited-tags |
| 5555 | (or (eq org-agenda-show-inherited-tags 'always) | ||
| 5556 | (and (listp org-agenda-show-inherited-tags) | ||
| 5557 | (memq 'agenda org-agenda-show-inherited-tags)) | ||
| 5558 | (and (eq org-agenda-show-inherited-tags t) | ||
| 5559 | (or (eq org-agenda-use-tag-inheritance t) | ||
| 5560 | (memq 'agenda org-agenda-use-tag-inheritance)))) | ||
| 5561 | tags (org-get-tags-at nil (not inherited-tags)) | ||
| 5501 | todo-state (org-get-todo-state) | 5562 | todo-state (org-get-todo-state) |
| 5502 | warntime (get-text-property (point) 'org-appt-warntime) | 5563 | warntime (get-text-property (point) 'org-appt-warntime) |
| 5503 | extra nil) | 5564 | extra nil) |
| @@ -5628,7 +5689,7 @@ please use `org-class' instead." | |||
| 5628 | 1 11)))) | 5689 | 1 11)))) |
| 5629 | (org-agenda-search-headline-for-time nil) | 5690 | (org-agenda-search-headline-for-time nil) |
| 5630 | marker hdmarker priority category category-pos tags closedp | 5691 | marker hdmarker priority category category-pos tags closedp |
| 5631 | statep clockp state ee txt extra timestr rest clocked) | 5692 | statep clockp state ee txt extra timestr rest clocked inherited-tags) |
| 5632 | (goto-char (point-min)) | 5693 | (goto-char (point-min)) |
| 5633 | (while (re-search-forward regexp nil t) | 5694 | (while (re-search-forward regexp nil t) |
| 5634 | (catch :skip | 5695 | (catch :skip |
| @@ -5666,7 +5727,14 @@ please use `org-class' instead." | |||
| 5666 | (setq txt org-agenda-no-heading-message) | 5727 | (setq txt org-agenda-no-heading-message) |
| 5667 | (goto-char (match-beginning 0)) | 5728 | (goto-char (match-beginning 0)) |
| 5668 | (setq hdmarker (org-agenda-new-marker) | 5729 | (setq hdmarker (org-agenda-new-marker) |
| 5669 | tags (org-get-tags-at nil t)) | 5730 | inherited-tags |
| 5731 | (or (eq org-agenda-show-inherited-tags 'always) | ||
| 5732 | (and (listp org-agenda-show-inherited-tags) | ||
| 5733 | (memq 'todo org-agenda-show-inherited-tags)) | ||
| 5734 | (and (eq org-agenda-show-inherited-tags t) | ||
| 5735 | (or (eq org-agenda-use-tag-inheritance t) | ||
| 5736 | (memq 'todo org-agenda-use-tag-inheritance)))) | ||
| 5737 | tags (org-get-tags-at nil (not inherited-tags))) | ||
| 5670 | (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") | 5738 | (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") |
| 5671 | (setq txt (match-string 1)) | 5739 | (setq txt (match-string 1)) |
| 5672 | (when extra | 5740 | (when extra |
| @@ -5944,7 +6012,7 @@ FRACTION is what fraction of the head-warning time has passed." | |||
| 5944 | deadline-results)) | 6012 | deadline-results)) |
| 5945 | d2 diff pos pos1 category category-pos tags donep | 6013 | d2 diff pos pos1 category category-pos tags donep |
| 5946 | ee txt head pastschedp todo-state face timestr s habitp show-all | 6014 | ee txt head pastschedp todo-state face timestr s habitp show-all |
| 5947 | did-habit-check-p warntime) | 6015 | did-habit-check-p warntime inherited-tags) |
| 5948 | (goto-char (point-min)) | 6016 | (goto-char (point-min)) |
| 5949 | (while (re-search-forward regexp nil t) | 6017 | (while (re-search-forward regexp nil t) |
| 5950 | (catch :skip | 6018 | (catch :skip |
| @@ -6006,7 +6074,14 @@ FRACTION is what fraction of the head-warning time has passed." | |||
| 6006 | pastschedp)) | 6074 | pastschedp)) |
| 6007 | (setq mm (assoc pos1 deadline-position-alist))) | 6075 | (setq mm (assoc pos1 deadline-position-alist))) |
| 6008 | (throw :skip nil))) | 6076 | (throw :skip nil))) |
| 6009 | (setq tags (org-get-tags-at nil t)) | 6077 | (setq inherited-tags |
| 6078 | (or (eq org-agenda-show-inherited-tags 'always) | ||
| 6079 | (and (listp org-agenda-show-inherited-tags) | ||
| 6080 | (memq 'agenda org-agenda-show-inherited-tags)) | ||
| 6081 | (and (eq org-agenda-show-inherited-tags t) | ||
| 6082 | (or (eq org-agenda-use-tag-inheritance t) | ||
| 6083 | (memq 'agenda org-agenda-use-tag-inheritance)))) | ||
| 6084 | tags (org-get-tags-at nil (not inherited-tags))) | ||
| 6010 | (setq head (buffer-substring-no-properties | 6085 | (setq head (buffer-substring-no-properties |
| 6011 | (point) | 6086 | (point) |
| 6012 | (progn (skip-chars-forward "^\r\n") (point)))) | 6087 | (progn (skip-chars-forward "^\r\n") (point)))) |
| @@ -6061,7 +6136,7 @@ FRACTION is what fraction of the head-warning time has passed." | |||
| 6061 | (regexp org-tr-regexp) | 6136 | (regexp org-tr-regexp) |
| 6062 | (d0 (calendar-absolute-from-gregorian date)) | 6137 | (d0 (calendar-absolute-from-gregorian date)) |
| 6063 | marker hdmarker ee txt d1 d2 s1 s2 category category-pos | 6138 | marker hdmarker ee txt d1 d2 s1 s2 category category-pos |
| 6064 | todo-state tags pos head donep) | 6139 | todo-state tags pos head donep inherited-tags) |
| 6065 | (goto-char (point-min)) | 6140 | (goto-char (point-min)) |
| 6066 | (while (re-search-forward regexp nil t) | 6141 | (while (re-search-forward regexp nil t) |
| 6067 | (catch :skip | 6142 | (catch :skip |
| @@ -6087,8 +6162,15 @@ FRACTION is what fraction of the head-warning time has passed." | |||
| 6087 | (if (not (re-search-backward org-outline-regexp-bol nil t)) | 6162 | (if (not (re-search-backward org-outline-regexp-bol nil t)) |
| 6088 | (setq txt org-agenda-no-heading-message) | 6163 | (setq txt org-agenda-no-heading-message) |
| 6089 | (goto-char (match-beginning 0)) | 6164 | (goto-char (match-beginning 0)) |
| 6090 | (setq hdmarker (org-agenda-new-marker (point))) | 6165 | (setq hdmarker (org-agenda-new-marker (point)) |
| 6091 | (setq tags (org-get-tags-at nil t)) | 6166 | inherited-tags |
| 6167 | (or (eq org-agenda-show-inherited-tags 'always) | ||
| 6168 | (and (listp org-agenda-show-inherited-tags) | ||
| 6169 | (memq 'agenda org-agenda-show-inherited-tags)) | ||
| 6170 | (and (eq org-agenda-show-inherited-tags t) | ||
| 6171 | (or (eq org-agenda-use-tag-inheritance t) | ||
| 6172 | (memq 'agenda org-agenda-use-tag-inheritance)))) | ||
| 6173 | tags (org-get-tags-at nil (not inherited-tags))) | ||
| 6092 | (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") | 6174 | (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") |
| 6093 | (setq head (match-string 1)) | 6175 | (setq head (match-string 1)) |
| 6094 | (let ((remove-re | 6176 | (let ((remove-re |
| @@ -7702,7 +7784,7 @@ When called with a prefix argument, include all archive files as well." | |||
| 7702 | ""))) | 7784 | ""))) |
| 7703 | (force-mode-line-update)) | 7785 | (force-mode-line-update)) |
| 7704 | 7786 | ||
| 7705 | (org-define-obsolete-function-alias | 7787 | (define-obsolete-function-alias |
| 7706 | 'org-agenda-post-command-hook 'org-agenda-update-agenda-type "24.3") | 7788 | 'org-agenda-post-command-hook 'org-agenda-update-agenda-type "24.3") |
| 7707 | 7789 | ||
| 7708 | (defun org-agenda-update-agenda-type () | 7790 | (defun org-agenda-update-agenda-type () |
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el index c888536b385..8a271b8d055 100644 --- a/lisp/org/org-capture.el +++ b/lisp/org/org-capture.el | |||
| @@ -451,7 +451,7 @@ For example, if you have a capture template \"c\" and you want | |||
| 451 | this template to be accessible only from `message-mode' buffers, | 451 | this template to be accessible only from `message-mode' buffers, |
| 452 | use this: | 452 | use this: |
| 453 | 453 | ||
| 454 | '((\"c\" (in-mode . \"message-mode\"))) | 454 | '((\"c\" ((in-mode . \"message-mode\")))) |
| 455 | 455 | ||
| 456 | Here are the available contexts definitions: | 456 | Here are the available contexts definitions: |
| 457 | 457 | ||
| @@ -467,11 +467,11 @@ accessible if there is at least one valid check. | |||
| 467 | You can also bind a key to another agenda custom command | 467 | You can also bind a key to another agenda custom command |
| 468 | depending on contextual rules. | 468 | depending on contextual rules. |
| 469 | 469 | ||
| 470 | '((\"c\" \"d\" (in-mode . \"message-mode\"))) | 470 | '((\"c\" \"d\" ((in-mode . \"message-mode\")))) |
| 471 | 471 | ||
| 472 | Here it means: in `message-mode buffers', use \"d\" as the | 472 | Here it means: in `message-mode buffers', use \"c\" as the |
| 473 | key for the capture template otherwise associated with \"d\". | 473 | key for the capture template otherwise associated with \"d\". |
| 474 | \(The template originally associated with \"q\" is not displayed | 474 | \(The template originally associated with \"d\" is not displayed |
| 475 | to avoid duplicates.)" | 475 | to avoid duplicates.)" |
| 476 | :version "24.3" | 476 | :version "24.3" |
| 477 | :group 'org-capture | 477 | :group 'org-capture |
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index 32cfa9ae913..c043dd19e11 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el | |||
| @@ -205,7 +205,7 @@ file name play this sound file. If not possible, fall back to beep" | |||
| 205 | (const :tag "Standard beep" t) | 205 | (const :tag "Standard beep" t) |
| 206 | (file :tag "Play sound file"))) | 206 | (file :tag "Play sound file"))) |
| 207 | 207 | ||
| 208 | (org-define-obsolete-variable-alias 'org-clock-modeline-total | 208 | (define-obsolete-variable-alias 'org-clock-modeline-total |
| 209 | 'org-clock-mode-line-total "24.3") | 209 | 'org-clock-mode-line-total "24.3") |
| 210 | 210 | ||
| 211 | (defcustom org-clock-mode-line-total 'auto | 211 | (defcustom org-clock-mode-line-total 'auto |
diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el index 687b81fd882..9292b994367 100644 --- a/lisp/org/org-compat.el +++ b/lisp/org/org-compat.el | |||
| @@ -169,24 +169,6 @@ If DELETE is non-nil, delete all those overlays." | |||
| 169 | (set-buffer-modified-p modified-p)) | 169 | (set-buffer-modified-p modified-p)) |
| 170 | (decompose-region beg end))) | 170 | (decompose-region beg end))) |
| 171 | 171 | ||
| 172 | (defmacro org-define-obsolete-function-alias (o-name c-name when &optional doc) | ||
| 173 | "Reconcile the two-argument form of | ||
| 174 | `define-obsolete-function-alias' in XEmacs/Emacs 22 with the 3-4 | ||
| 175 | argument form in Emacs 23 and later." | ||
| 176 | (if (or (featurep 'xemacs) | ||
| 177 | (< emacs-major-version 23)) | ||
| 178 | `(define-obsolete-function-alias ,o-name ,c-name) | ||
| 179 | `(define-obsolete-function-alias ,o-name ,c-name ,when ,doc))) | ||
| 180 | |||
| 181 | (defmacro org-define-obsolete-variable-alias (o-name c-name when &optional doc) | ||
| 182 | "Reconcile the two-argument form of | ||
| 183 | `define-obsolete-variable-alias' in XEmacs/Emacs 22 with the 3-4 | ||
| 184 | argument form in Emacs 23 and later." | ||
| 185 | (if (or (featurep 'xemacs) | ||
| 186 | (< emacs-major-version 23)) | ||
| 187 | `(define-obsolete-variable-alias ,o-name ,c-name) | ||
| 188 | `(define-obsolete-variable-alias ,o-name ,c-name ,when ,doc))) | ||
| 189 | |||
| 190 | ;; Miscellaneous functions | 172 | ;; Miscellaneous functions |
| 191 | 173 | ||
| 192 | (defun org-add-hook (hook function &optional append local) | 174 | (defun org-add-hook (hook function &optional append local) |
| @@ -463,16 +445,6 @@ With two arguments, return floor and remainder of their quotient." | |||
| 463 | 'pop-to-buffer-same-window buffer-or-name norecord) | 445 | 'pop-to-buffer-same-window buffer-or-name norecord) |
| 464 | (funcall 'switch-to-buffer buffer-or-name norecord))) | 446 | (funcall 'switch-to-buffer buffer-or-name norecord))) |
| 465 | 447 | ||
| 466 | ;; `condition-case-unless-debug' has been introduced in Emacs 24.1 | ||
| 467 | ;; `condition-case-no-debug' has been introduced in Emacs 23.1 | ||
| 468 | (defmacro org-condition-case-unless-debug (var bodyform &rest handlers) | ||
| 469 | (declare (debug condition-case) (indent 2)) | ||
| 470 | (or (and (fboundp 'condition-case-unless-debug) | ||
| 471 | `(condition-case-unless-debug ,var ,bodyform ,@handlers)) | ||
| 472 | (and (fboundp 'condition-case-no-debug) | ||
| 473 | `(condition-case-no-debug ,var ,bodyform ,@handlers)) | ||
| 474 | `(condition-case ,var ,bodyform ,@handlers))) | ||
| 475 | |||
| 476 | ;; RECURSIVE has been introduced with Emacs 23.2. | 448 | ;; RECURSIVE has been introduced with Emacs 23.2. |
| 477 | ;; This is copying and adapted from `tramp-compat-delete-directory' | 449 | ;; This is copying and adapted from `tramp-compat-delete-directory' |
| 478 | (defun org-delete-directory (directory &optional recursive) | 450 | (defun org-delete-directory (directory &optional recursive) |
diff --git a/lisp/org/org-id.el b/lisp/org/org-id.el index 5d8e5b0dcf9..6e865b50c2c 100644 --- a/lisp/org/org-id.el +++ b/lisp/org/org-id.el | |||
| @@ -83,7 +83,7 @@ | |||
| 83 | :tag "Org ID" | 83 | :tag "Org ID" |
| 84 | :group 'org) | 84 | :group 'org) |
| 85 | 85 | ||
| 86 | (org-define-obsolete-variable-alias | 86 | (define-obsolete-variable-alias |
| 87 | 'org-link-to-org-use-id 'org-id-link-to-org-use-id "24.3") | 87 | 'org-link-to-org-use-id 'org-id-link-to-org-use-id "24.3") |
| 88 | (defcustom org-id-link-to-org-use-id nil | 88 | (defcustom org-id-link-to-org-use-id nil |
| 89 | "Non-nil means storing a link to an Org file will use entry IDs. | 89 | "Non-nil means storing a link to an Org file will use entry IDs. |
diff --git a/lisp/org/org-lparse.el b/lisp/org/org-lparse.el index e9fbbea586e..11711353ff7 100644 --- a/lisp/org/org-lparse.el +++ b/lisp/org/org-lparse.el | |||
| @@ -1718,7 +1718,7 @@ information." | |||
| 1718 | (org-lparse-end-paragraph) | 1718 | (org-lparse-end-paragraph) |
| 1719 | (org-lparse-end-list-item (or type "u"))) | 1719 | (org-lparse-end-list-item (or type "u"))) |
| 1720 | 1720 | ||
| 1721 | (org-define-obsolete-function-alias | 1721 | (define-obsolete-function-alias |
| 1722 | 'org-lparse-preprocess-after-blockquote-hook | 1722 | 'org-lparse-preprocess-after-blockquote-hook |
| 1723 | 'org-lparse-preprocess-after-blockquote | 1723 | 'org-lparse-preprocess-after-blockquote |
| 1724 | "24.3") | 1724 | "24.3") |
| @@ -1736,7 +1736,7 @@ information." | |||
| 1736 | (format "ORG-%s-END %s" (upcase (match-string 2)) | 1736 | (format "ORG-%s-END %s" (upcase (match-string 2)) |
| 1737 | (match-string 3))) t t)))) | 1737 | (match-string 3))) t t)))) |
| 1738 | 1738 | ||
| 1739 | (org-define-obsolete-function-alias | 1739 | (define-obsolete-function-alias |
| 1740 | 'org-lparse-strip-experimental-blocks-maybe-hook | 1740 | 'org-lparse-strip-experimental-blocks-maybe-hook |
| 1741 | 'org-lparse-strip-experimental-blocks-maybe | 1741 | 'org-lparse-strip-experimental-blocks-maybe |
| 1742 | "24.3") | 1742 | "24.3") |
diff --git a/lisp/org/org-mobile.el b/lisp/org/org-mobile.el index d2e7c217f76..a410de0d775 100644 --- a/lisp/org/org-mobile.el +++ b/lisp/org/org-mobile.el | |||
| @@ -620,12 +620,10 @@ The table of checksums is written to the file mobile-checksums." | |||
| 620 | (delete-region (point) (point-at-eol))) | 620 | (delete-region (point) (point-at-eol))) |
| 621 | ((get-text-property (point) 'org-agenda-structural-header) | 621 | ((get-text-property (point) 'org-agenda-structural-header) |
| 622 | (setq in-date nil) | 622 | (setq in-date nil) |
| 623 | (setq app (get-text-property (point) | 623 | (setq app (get-text-property (point) 'org-agenda-title-append)) |
| 624 | 'org-agenda-title-append)) | 624 | (setq short (get-text-property (point) 'short-heading)) |
| 625 | (setq short (get-text-property (point) | ||
| 626 | 'short-heading)) | ||
| 627 | (when (and short (looking-at ".+")) | 625 | (when (and short (looking-at ".+")) |
| 628 | (replace-match short) | 626 | (replace-match short nil t) |
| 629 | (beginning-of-line 1)) | 627 | (beginning-of-line 1)) |
| 630 | (when app | 628 | (when app |
| 631 | (end-of-line 1) | 629 | (end-of-line 1) |
diff --git a/lisp/org/org-odt.el b/lisp/org/org-odt.el index b5f6e21c0c2..92228f37eb8 100644 --- a/lisp/org/org-odt.el +++ b/lisp/org/org-odt.el | |||
| @@ -447,7 +447,7 @@ values. See Info node `(emacs) File Variables'." | |||
| 447 | xml-files)) | 447 | xml-files)) |
| 448 | ;; delete temporary directory. | 448 | ;; delete temporary directory. |
| 449 | (org-delete-directory org-odt-zip-dir t))))) | 449 | (org-delete-directory org-odt-zip-dir t))))) |
| 450 | (org-condition-case-unless-debug err | 450 | (condition-case err |
| 451 | (prog1 (progn ,@body) | 451 | (prog1 (progn ,@body) |
| 452 | (funcall --cleanup-xml-buffers)) | 452 | (funcall --cleanup-xml-buffers)) |
| 453 | ((quit error) | 453 | ((quit error) |
diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el index fd84e62c003..18c6d6d70a4 100644 --- a/lisp/org/org-protocol.el +++ b/lisp/org/org-protocol.el | |||
| @@ -128,15 +128,15 @@ | |||
| 128 | (filename &optional up)) | 128 | (filename &optional up)) |
| 129 | (declare-function server-edit "server" (&optional arg)) | 129 | (declare-function server-edit "server" (&optional arg)) |
| 130 | 130 | ||
| 131 | (org-define-obsolete-function-alias | 131 | (define-obsolete-function-alias |
| 132 | 'org-protocol-unhex-compound 'org-link-unescape-compound | 132 | 'org-protocol-unhex-compound 'org-link-unescape-compound |
| 133 | "2011-02-17") | 133 | "2011-02-17") |
| 134 | 134 | ||
| 135 | (org-define-obsolete-function-alias | 135 | (define-obsolete-function-alias |
| 136 | 'org-protocol-unhex-string 'org-link-unescape | 136 | 'org-protocol-unhex-string 'org-link-unescape |
| 137 | "2011-02-17") | 137 | "2011-02-17") |
| 138 | 138 | ||
| 139 | (org-define-obsolete-function-alias | 139 | (define-obsolete-function-alias |
| 140 | 'org-protocol-unhex-single-byte-sequence | 140 | 'org-protocol-unhex-single-byte-sequence |
| 141 | 'org-link-unescape-single-byte-sequence | 141 | 'org-link-unescape-single-byte-sequence |
| 142 | "2011-02-17") | 142 | "2011-02-17") |
diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index f638e57ad94..e62eba3cf83 100644 --- a/lisp/org/org-version.el +++ b/lisp/org/org-version.el | |||
| @@ -5,13 +5,13 @@ | |||
| 5 | (defun org-release () | 5 | (defun org-release () |
| 6 | "The release version of org-mode. | 6 | "The release version of org-mode. |
| 7 | Inserted by installing org-mode or when a release is made." | 7 | Inserted by installing org-mode or when a release is made." |
| 8 | (let ((org-release "7.9.3+")) | 8 | (let ((org-release "7.9.3d")) |
| 9 | org-release)) | 9 | org-release)) |
| 10 | ;;;###autoload | 10 | ;;;###autoload |
| 11 | (defun org-git-version () | 11 | (defun org-git-version () |
| 12 | "The Git version of org-mode. | 12 | "The Git version of org-mode. |
| 13 | Inserted by installing org-mode or when a release is made." | 13 | Inserted by installing org-mode or when a release is made." |
| 14 | (let ((org-git-version "7.9.3+-GNU-Emacs-24-3 (commit 4cac75153)")) | 14 | (let ((org-git-version "7.9.3d-GNU-Emacs-24-3 (commit e8f5b0ad)")) |
| 15 | org-git-version)) | 15 | org-git-version)) |
| 16 | ;;;###autoload | 16 | ;;;###autoload |
| 17 | (defvar org-odt-data-dir "/usr/share/emacs/etc/org" | 17 | (defvar org-odt-data-dir "/usr/share/emacs/etc/org" |
diff --git a/lisp/org/org.el b/lisp/org/org.el index 32ed13fc1a3..9409feca178 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el | |||
| @@ -7402,7 +7402,12 @@ even level numbers will become the next higher odd number." | |||
| 7402 | ((< change 0) (max 1 (1+ (* 2 (/ (+ level (* 2 change)) 2)))))) | 7402 | ((< change 0) (max 1 (1+ (* 2 (/ (+ level (* 2 change)) 2)))))) |
| 7403 | (max 1 (+ level (or change 0))))) | 7403 | (max 1 (+ level (or change 0))))) |
| 7404 | 7404 | ||
| 7405 | (org-define-obsolete-function-alias 'org-get-legal-level 'org-get-valid-level "23.1") | 7405 | (if (boundp 'define-obsolete-function-alias) |
| 7406 | (if (or (featurep 'xemacs) (< emacs-major-version 23)) | ||
| 7407 | (define-obsolete-function-alias 'org-get-legal-level | ||
| 7408 | 'org-get-valid-level) | ||
| 7409 | (define-obsolete-function-alias 'org-get-legal-level | ||
| 7410 | 'org-get-valid-level "23.1"))) | ||
| 7406 | 7411 | ||
| 7407 | (defvar org-called-with-limited-levels nil) ;; Dynamically bound in | 7412 | (defvar org-called-with-limited-levels nil) ;; Dynamically bound in |
| 7408 | ;; ̀org-with-limited-levels' | 7413 | ;; ̀org-with-limited-levels' |
| @@ -9684,12 +9689,14 @@ application the system uses for this file type." | |||
| 9684 | "[ \t]:[^ \t\n]+:[ \t]*$"))) | 9689 | "[ \t]:[^ \t\n]+:[ \t]*$"))) |
| 9685 | (not (get-text-property (point) 'org-linked-text))) | 9690 | (not (get-text-property (point) 'org-linked-text))) |
| 9686 | (or (let* ((lkall (org-offer-links-in-entry (current-buffer) (point) arg)) | 9691 | (or (let* ((lkall (org-offer-links-in-entry (current-buffer) (point) arg)) |
| 9687 | (lk (car lkall)) | 9692 | (lk0 (car lkall)) |
| 9693 | (lk (if (stringp lk0) (list lk0) lk0)) | ||
| 9688 | (lkend (cdr lkall))) | 9694 | (lkend (cdr lkall))) |
| 9689 | (when lk | 9695 | (mapcar (lambda(l) |
| 9690 | (prog1 (search-forward lk nil lkend) | 9696 | (search-forward l nil lkend) |
| 9691 | (goto-char (match-beginning 0)) | 9697 | (goto-char (match-beginning 0)) |
| 9692 | (org-open-at-point)))) | 9698 | (org-open-at-point)) |
| 9699 | lk)) | ||
| 9693 | (progn (require 'org-attach) (org-attach-reveal 'if-exists)))) | 9700 | (progn (require 'org-attach) (org-attach-reveal 'if-exists)))) |
| 9694 | ((run-hook-with-args-until-success 'org-open-at-point-functions)) | 9701 | ((run-hook-with-args-until-success 'org-open-at-point-functions)) |
| 9695 | ((and (org-at-timestamp-p t) | 9702 | ((and (org-at-timestamp-p t) |
| @@ -13524,7 +13531,10 @@ ignore inherited ones." | |||
| 13524 | (error nil))))) | 13531 | (error nil))))) |
| 13525 | (if local | 13532 | (if local |
| 13526 | tags | 13533 | tags |
| 13527 | (append (org-remove-uninherited-tags org-file-tags) tags)))))) | 13534 | (reverse (delete-dups |
| 13535 | (reverse (append | ||
| 13536 | (org-remove-uninherited-tags | ||
| 13537 | org-file-tags) tags))))))))) | ||
| 13528 | 13538 | ||
| 13529 | (defun org-add-prop-inherited (s) | 13539 | (defun org-add-prop-inherited (s) |
| 13530 | (add-text-properties 0 (length s) '(inherited t) s) | 13540 | (add-text-properties 0 (length s) '(inherited t) s) |
| @@ -17798,7 +17808,7 @@ BEG and END default to the buffer boundaries." | |||
| 17798 | (list 'org-display-inline-remove-overlay)) | 17808 | (list 'org-display-inline-remove-overlay)) |
| 17799 | (push ov org-inline-image-overlays))))))))) | 17809 | (push ov org-inline-image-overlays))))))))) |
| 17800 | 17810 | ||
| 17801 | (org-define-obsolete-function-alias | 17811 | (define-obsolete-function-alias |
| 17802 | 'org-display-inline-modification-hook 'org-display-inline-remove-overlay "24.3") | 17812 | 'org-display-inline-modification-hook 'org-display-inline-remove-overlay "24.3") |
| 17803 | 17813 | ||
| 17804 | (defun org-display-inline-remove-overlay (ov after beg end &optional len) | 17814 | (defun org-display-inline-remove-overlay (ov after beg end &optional len) |
| @@ -18178,7 +18188,7 @@ If not, return to the original position and throw an error." | |||
| 18178 | (defvar org-table-auto-blank-field) ; defined in org-table.el | 18188 | (defvar org-table-auto-blank-field) ; defined in org-table.el |
| 18179 | (defvar org-speed-command nil) | 18189 | (defvar org-speed-command nil) |
| 18180 | 18190 | ||
| 18181 | (org-define-obsolete-function-alias | 18191 | (define-obsolete-function-alias |
| 18182 | 'org-speed-command-default-hook 'org-speed-command-activate "24.3") | 18192 | 'org-speed-command-default-hook 'org-speed-command-activate "24.3") |
| 18183 | 18193 | ||
| 18184 | (defun org-speed-command-activate (keys) | 18194 | (defun org-speed-command-activate (keys) |
| @@ -18191,7 +18201,7 @@ Use `org-speed-commands-user' for further customization." | |||
| 18191 | (cdr (assoc keys (append org-speed-commands-user | 18201 | (cdr (assoc keys (append org-speed-commands-user |
| 18192 | org-speed-commands-default))))) | 18202 | org-speed-commands-default))))) |
| 18193 | 18203 | ||
| 18194 | (org-define-obsolete-function-alias | 18204 | (define-obsolete-function-alias |
| 18195 | 'org-babel-speed-command-hook 'org-babel-speed-command-activate "24.3") | 18205 | 'org-babel-speed-command-hook 'org-babel-speed-command-activate "24.3") |
| 18196 | 18206 | ||
| 18197 | (defun org-babel-speed-command-activate (keys) | 18207 | (defun org-babel-speed-command-activate (keys) |
| @@ -19026,14 +19036,13 @@ Otherwise, return a user error." | |||
| 19026 | (beginning-of-line 1) | 19036 | (beginning-of-line 1) |
| 19027 | (looking-at "\\(?:#\\+\\(?:setupfile\\|include\\):?[ \t]+\"?\\|[ \t]*<include\\>.*?file=\"\\)\\([^\"\n>]+\\)")) | 19037 | (looking-at "\\(?:#\\+\\(?:setupfile\\|include\\):?[ \t]+\"?\\|[ \t]*<include\\>.*?file=\"\\)\\([^\"\n>]+\\)")) |
| 19028 | (find-file (org-trim (match-string 1)))) | 19038 | (find-file (org-trim (match-string 1)))) |
| 19039 | ((org-at-table.el-p) (org-edit-src-code)) | ||
| 19029 | ((or (org-at-table-p) | 19040 | ((or (org-at-table-p) |
| 19030 | (save-excursion | 19041 | (save-excursion |
| 19031 | (beginning-of-line 1) | 19042 | (beginning-of-line 1) |
| 19032 | (let ((case-fold-search )) (looking-at "[ \t]*#\\+tblfm:")))) | 19043 | (let ((case-fold-search )) (looking-at "[ \t]*#\\+tblfm:")))) |
| 19033 | (call-interactively 'org-table-edit-formulas)) | 19044 | (call-interactively 'org-table-edit-formulas)) |
| 19034 | ((or (org-in-block-p '("src" "example" "latex" "html")) | 19045 | ((org-in-block-p '("src" "example" "latex" "html")) (org-edit-src-code)) |
| 19035 | (org-at-table.el-p)) | ||
| 19036 | (org-edit-src-code)) | ||
| 19037 | ((org-in-fixed-width-region-p) (org-edit-fixed-width-region)) | 19046 | ((org-in-fixed-width-region-p) (org-edit-fixed-width-region)) |
| 19038 | ((org-at-regexp-p org-any-link-re) (call-interactively 'ffap)) | 19047 | ((org-at-regexp-p org-any-link-re) (call-interactively 'ffap)) |
| 19039 | (t (user-error "No special environment to edit here")))) | 19048 | (t (user-error "No special environment to edit here")))) |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 172193266ca..0e5f4c82090 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -1198,7 +1198,16 @@ of the statement." | |||
| 1198 | (not (eobp)) | 1198 | (not (eobp)) |
| 1199 | (cond ((setq string-start (python-syntax-context 'string)) | 1199 | (cond ((setq string-start (python-syntax-context 'string)) |
| 1200 | (goto-char string-start) | 1200 | (goto-char string-start) |
| 1201 | (python-nav-end-of-statement t)) | 1201 | (if (python-syntax-context 'paren) |
| 1202 | ;; Ended up inside a paren, roll again. | ||
| 1203 | (python-nav-end-of-statement t) | ||
| 1204 | ;; This is not inside a paren, move to the | ||
| 1205 | ;; end of this string. | ||
| 1206 | (goto-char (+ (point) | ||
| 1207 | (python-syntax-count-quotes | ||
| 1208 | (char-after (point)) (point)))) | ||
| 1209 | (or (re-search-forward (rx (syntax string-delimiter)) nil t) | ||
| 1210 | (goto-char (point-max))))) | ||
| 1202 | ((python-syntax-context 'paren) | 1211 | ((python-syntax-context 'paren) |
| 1203 | ;; The statement won't end before we've escaped | 1212 | ;; The statement won't end before we've escaped |
| 1204 | ;; at least one level of parenthesis. | 1213 | ;; at least one level of parenthesis. |
| @@ -1312,7 +1321,7 @@ backward to previous block." | |||
| 1312 | "Safe version of standard `forward-sexp'. | 1321 | "Safe version of standard `forward-sexp'. |
| 1313 | When ARG > 0 move forward, else if ARG is < 0." | 1322 | When ARG > 0 move forward, else if ARG is < 0." |
| 1314 | (or arg (setq arg 1)) | 1323 | (or arg (setq arg 1)) |
| 1315 | (let ((forward-sexp-function nil) | 1324 | (let ((forward-sexp-function) |
| 1316 | (paren-regexp | 1325 | (paren-regexp |
| 1317 | (if (> arg 0) (python-rx close-paren) (python-rx open-paren))) | 1326 | (if (> arg 0) (python-rx close-paren) (python-rx open-paren))) |
| 1318 | (search-fn | 1327 | (search-fn |
diff --git a/lisp/subr.el b/lisp/subr.el index 11e882d9158..e1ab5298409 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -3367,16 +3367,17 @@ If BODY finishes, `while-no-input' returns whatever value BODY produced." | |||
| 3367 | (progn ,@body))))))) | 3367 | (progn ,@body))))))) |
| 3368 | 3368 | ||
| 3369 | (defmacro condition-case-unless-debug (var bodyform &rest handlers) | 3369 | (defmacro condition-case-unless-debug (var bodyform &rest handlers) |
| 3370 | "Like `condition-case' except that it does not catch anything when debugging. | 3370 | "Like `condition-case' except that it does not prevent debugging. |
| 3371 | More specifically if `debug-on-error' is set, then it does not catch any signal." | 3371 | More specifically if `debug-on-error' is set then the debugger will be invoked |
| 3372 | even if this catches the signal." | ||
| 3372 | (declare (debug condition-case) (indent 2)) | 3373 | (declare (debug condition-case) (indent 2)) |
| 3373 | (let ((bodysym (make-symbol "body"))) | 3374 | `(condition-case ,var |
| 3374 | `(let ((,bodysym (lambda () ,bodyform))) | 3375 | ,bodyform |
| 3375 | (if debug-on-error | 3376 | ,@(mapcar (lambda (handler) |
| 3376 | (funcall ,bodysym) | 3377 | `((debug ,@(if (listp (car handler)) (car handler) |
| 3377 | (condition-case ,var | 3378 | (list (car handler)))) |
| 3378 | (funcall ,bodysym) | 3379 | ,@(cdr handler))) |
| 3379 | ,@handlers))))) | 3380 | handlers))) |
| 3380 | 3381 | ||
| 3381 | (define-obsolete-function-alias 'condition-case-no-debug | 3382 | (define-obsolete-function-alias 'condition-case-no-debug |
| 3382 | 'condition-case-unless-debug "24.1") | 3383 | 'condition-case-unless-debug "24.1") |
| @@ -87,6 +87,13 @@ while [ $# -gt 0 ]; do | |||
| 87 | "--lzma") | 87 | "--lzma") |
| 88 | default_gzip="lzma" | 88 | default_gzip="lzma" |
| 89 | ;; | 89 | ;; |
| 90 | ## Same with xz. | ||
| 91 | "--xz") | ||
| 92 | default_gzip="xz" | ||
| 93 | ;; | ||
| 94 | "--no-compress") | ||
| 95 | default_gzip="cat" | ||
| 96 | ;; | ||
| 90 | 97 | ||
| 91 | "--snapshot") | 98 | "--snapshot") |
| 92 | clean_up=yes | 99 | clean_up=yes |
| @@ -101,6 +108,8 @@ while [ $# -gt 0 ]; do | |||
| 101 | echo " --bzip2 use bzip2 instead of gzip" | 108 | echo " --bzip2 use bzip2 instead of gzip" |
| 102 | echo " --clean-up delete staging directories when done" | 109 | echo " --clean-up delete staging directories when done" |
| 103 | echo " --lzma use lzma instead of gzip" | 110 | echo " --lzma use lzma instead of gzip" |
| 111 | echo " --xz use xz instead of gzip" | ||
| 112 | echo " --no-compress don't compress" | ||
| 104 | echo " --newer=TIME don't include files older than TIME" | 113 | echo " --newer=TIME don't include files older than TIME" |
| 105 | echo " --no-check don't check for bad file names etc." | 114 | echo " --no-check don't check for bad file names etc." |
| 106 | echo " --no-update don't recompile or do analogous things" | 115 | echo " --no-update don't recompile or do analogous things" |
| @@ -510,6 +519,7 @@ if [ "${make_tar}" = yes ]; then | |||
| 510 | case "${default_gzip}" in | 519 | case "${default_gzip}" in |
| 511 | bzip2) gzip_extension=.bz2 ;; | 520 | bzip2) gzip_extension=.bz2 ;; |
| 512 | lzma) gzip_extension=.lzma ;; | 521 | lzma) gzip_extension=.lzma ;; |
| 522 | xz) gzip_extension=.xz ;; | ||
| 513 | gzip) gzip_extension=.gz ; default_gzip="gzip --best";; | 523 | gzip) gzip_extension=.gz ; default_gzip="gzip --best";; |
| 514 | *) gzip_extension= ;; | 524 | *) gzip_extension= ;; |
| 515 | esac | 525 | esac |
diff --git a/src/ChangeLog b/src/ChangeLog index 13b53e922ed..9096b904171 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,43 @@ | |||
| 1 | 2013-01-13 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * nsfont.m (LCD_SMOOTHING_MARGIN): New define. | ||
| 4 | (nsfont_draw): Remove disabling of LCD smoothing. | ||
| 5 | (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix | ||
| 6 | Bug#11484 with LCD smoothing on. | ||
| 7 | |||
| 8 | 2013-01-13 Paul Eggert <eggert@cs.ucla.edu> | ||
| 9 | |||
| 10 | Fix SIGDANGER handlers, for AIX (Bug#13408). | ||
| 11 | * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]: | ||
| 12 | Move handlers here from emacs.c; they were out of place. | ||
| 13 | |||
| 14 | 2013-01-11 Jan Djärv <jan.h.d@swipnet.se> | ||
| 15 | |||
| 16 | * xterm.c (syms_of_xterm): Adjust documentation for | ||
| 17 | scroll-bar-adjust-thumb-portion. | ||
| 18 | |||
| 19 | 2012-12-31 Adam Sjøgren <asjo@koldfront.dk> (tiny change) | ||
| 20 | |||
| 21 | * xterm.c (scroll-bar-adjust-thumb-portion): New variable to | ||
| 22 | determine whether scroll bar thumb size should be adjusted or | ||
| 23 | not. Use variable for MOTIF. | ||
| 24 | |||
| 25 | * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for | ||
| 26 | GTK. | ||
| 27 | |||
| 28 | 2013-01-13 Jan Djärv <jan.h.d@swipnet.se> | ||
| 29 | |||
| 30 | * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key | ||
| 31 | event is generated. | ||
| 32 | (doCommandBySelector:): Set processingCompose to NO. | ||
| 33 | |||
| 34 | * nsfont.m (ns_findfonts): Add block/unblock_input calls. | ||
| 35 | Remove check for fkeys count > zero, block/unblock fixes the real bug. | ||
| 36 | (nsfont_list_family): Add block/unblock_input calls. | ||
| 37 | (nsfont_open): Move block_input earlier. Add unblock_input before early | ||
| 38 | return. | ||
| 39 | (nsfont_draw): Add block/unblock_input calls. | ||
| 40 | |||
| 1 | 2013-01-12 Dmitry Antipov <dmantipov@yandex.ru> | 41 | 2013-01-12 Dmitry Antipov <dmantipov@yandex.ru> |
| 2 | 42 | ||
| 3 | * indent.c (Fvertical_motion): Remove now-incorrect GCPROs | 43 | * indent.c (Fvertical_motion): Remove now-incorrect GCPROs |
| @@ -46,7 +86,7 @@ | |||
| 46 | (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY. | 86 | (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY. |
| 47 | This is the main part of the bug fix. | 87 | This is the main part of the bug fix. |
| 48 | 88 | ||
| 49 | 2013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change) | 89 | 2013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change) |
| 50 | 90 | ||
| 51 | * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around | 91 | * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around |
| 52 | x_last_font_name (Bug#13403). | 92 | x_last_font_name (Bug#13403). |
| @@ -1758,7 +1798,7 @@ | |||
| 1758 | * image.c (xpm_make_color_table_h): Fix compiler error because | 1798 | * image.c (xpm_make_color_table_h): Fix compiler error because |
| 1759 | make_hash_table changed. | 1799 | make_hash_table changed. |
| 1760 | 1800 | ||
| 1761 | 2012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change) | 1801 | 2012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change) |
| 1762 | 1802 | ||
| 1763 | * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541). | 1803 | * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541). |
| 1764 | 1804 | ||
diff --git a/src/emacs.c b/src/emacs.c index 3dad507f4d3..d1eeb97980a 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -347,25 +347,6 @@ terminate_due_to_signal (int sig, int backtrace_limit) | |||
| 347 | /* This shouldn't be executed, but it prevents a warning. */ | 347 | /* This shouldn't be executed, but it prevents a warning. */ |
| 348 | exit (1); | 348 | exit (1); |
| 349 | } | 349 | } |
| 350 | |||
| 351 | #ifdef SIGDANGER | ||
| 352 | |||
| 353 | /* Handler for SIGDANGER. */ | ||
| 354 | static void | ||
| 355 | handle_danger_signal (int sig) | ||
| 356 | { | ||
| 357 | malloc_warning ("Operating system warns that virtual memory is running low.\n"); | ||
| 358 | |||
| 359 | /* It might be unsafe to call do_auto_save now. */ | ||
| 360 | force_auto_save_soon (); | ||
| 361 | } | ||
| 362 | |||
| 363 | static void | ||
| 364 | deliver_danger_signal (int sig) | ||
| 365 | { | ||
| 366 | deliver_process_signal (sig, handle_danger_signal); | ||
| 367 | } | ||
| 368 | #endif | ||
| 369 | 350 | ||
| 370 | /* Code for dealing with Lisp access to the Unix command line. */ | 351 | /* Code for dealing with Lisp access to the Unix command line. */ |
| 371 | 352 | ||
diff --git a/src/gtkutil.c b/src/gtkutil.c index 6daf189f74c..af845f69e62 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -3795,13 +3795,17 @@ xg_set_toolkit_scroll_bar_thumb (struct scroll_bar *bar, | |||
| 3795 | 3795 | ||
| 3796 | adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); | 3796 | adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); |
| 3797 | 3797 | ||
| 3798 | /* We do the same as for MOTIF in xterm.c, assume 30 chars per line | 3798 | if (scroll_bar_adjust_thumb_portion_p) |
| 3799 | rather than the real portion value. This makes the thumb less likely | 3799 | { |
| 3800 | to resize and that looks better. */ | 3800 | /* We do the same as for MOTIF in xterm.c, use 30 chars per |
| 3801 | portion = WINDOW_TOTAL_LINES (XWINDOW (bar->window)) * 30; | 3801 | line rather than the real portion value. This makes the |
| 3802 | /* When the thumb is at the bottom, position == whole. | 3802 | thumb less likely to resize and that looks better. */ |
| 3803 | So we need to increase `whole' to make space for the thumb. */ | 3803 | portion = WINDOW_TOTAL_LINES (XWINDOW (bar->window)) * 30; |
| 3804 | whole += portion; | 3804 | |
| 3805 | /* When the thumb is at the bottom, position == whole. | ||
| 3806 | So we need to increase `whole' to make space for the thumb. */ | ||
| 3807 | whole += portion; | ||
| 3808 | } | ||
| 3805 | 3809 | ||
| 3806 | if (whole <= 0) | 3810 | if (whole <= 0) |
| 3807 | top = 0, shown = 1; | 3811 | top = 0, shown = 1; |
diff --git a/src/nsfont.m b/src/nsfont.m index c0bea2e225c..5039f0c9013 100644 --- a/src/nsfont.m +++ b/src/nsfont.m | |||
| @@ -44,6 +44,7 @@ Author: Adrian Robert (arobert@cogsci.ucsd.edu) | |||
| 44 | #endif | 44 | #endif |
| 45 | 45 | ||
| 46 | #define NSFONT_TRACE 0 | 46 | #define NSFONT_TRACE 0 |
| 47 | #define LCD_SMOOTHING_MARGIN 2 | ||
| 47 | 48 | ||
| 48 | extern Lisp_Object Qns; | 49 | extern Lisp_Object Qns; |
| 49 | extern Lisp_Object Qnormal, Qbold, Qitalic; | 50 | extern Lisp_Object Qnormal, Qbold, Qitalic; |
| @@ -546,6 +547,7 @@ ns_findfonts (Lisp_Object font_spec, BOOL isMatch) | |||
| 546 | NSSet *cFamilies; | 547 | NSSet *cFamilies; |
| 547 | BOOL foundItal = NO; | 548 | BOOL foundItal = NO; |
| 548 | 549 | ||
| 550 | block_input (); | ||
| 549 | if (NSFONT_TRACE) | 551 | if (NSFONT_TRACE) |
| 550 | { | 552 | { |
| 551 | fprintf (stderr, "nsfont: %s for fontspec:\n ", | 553 | fprintf (stderr, "nsfont: %s for fontspec:\n ", |
| @@ -560,10 +562,7 @@ ns_findfonts (Lisp_Object font_spec, BOOL isMatch) | |||
| 560 | if (isMatch) | 562 | if (isMatch) |
| 561 | [fkeys removeObject: NSFontFamilyAttribute]; | 563 | [fkeys removeObject: NSFontFamilyAttribute]; |
| 562 | 564 | ||
| 563 | if ([fkeys count] > 0) | 565 | matchingDescs = [fdesc matchingFontDescriptorsWithMandatoryKeys: fkeys]; |
| 564 | matchingDescs = [fdesc matchingFontDescriptorsWithMandatoryKeys: fkeys]; | ||
| 565 | else | ||
| 566 | matchingDescs = [NSMutableArray array]; | ||
| 567 | 566 | ||
| 568 | if (NSFONT_TRACE) | 567 | if (NSFONT_TRACE) |
| 569 | NSLog(@"Got desc %@ and found %d matching fonts from it: ", fdesc, | 568 | NSLog(@"Got desc %@ and found %d matching fonts from it: ", fdesc, |
| @@ -598,6 +597,8 @@ ns_findfonts (Lisp_Object font_spec, BOOL isMatch) | |||
| 598 | [s1 release]; | 597 | [s1 release]; |
| 599 | } | 598 | } |
| 600 | 599 | ||
| 600 | unblock_input (); | ||
| 601 | |||
| 601 | /* Return something if was a match and nothing found. */ | 602 | /* Return something if was a match and nothing found. */ |
| 602 | if (isMatch) | 603 | if (isMatch) |
| 603 | return ns_fallback_entity (); | 604 | return ns_fallback_entity (); |
| @@ -701,10 +702,12 @@ static Lisp_Object | |||
| 701 | nsfont_list_family (Lisp_Object frame) | 702 | nsfont_list_family (Lisp_Object frame) |
| 702 | { | 703 | { |
| 703 | Lisp_Object list = Qnil; | 704 | Lisp_Object list = Qnil; |
| 704 | NSEnumerator *families = | 705 | NSEnumerator *families; |
| 705 | [[[NSFontManager sharedFontManager] availableFontFamilies] | ||
| 706 | objectEnumerator]; | ||
| 707 | NSString *family; | 706 | NSString *family; |
| 707 | |||
| 708 | block_input (); | ||
| 709 | families = [[[NSFontManager sharedFontManager] availableFontFamilies] | ||
| 710 | objectEnumerator]; | ||
| 708 | while ((family = [families nextObject])) | 711 | while ((family = [families nextObject])) |
| 709 | list = Fcons (intern ([family UTF8String]), list); | 712 | list = Fcons (intern ([family UTF8String]), list); |
| 710 | /* FIXME: escape the name? */ | 713 | /* FIXME: escape the name? */ |
| @@ -713,6 +716,7 @@ nsfont_list_family (Lisp_Object frame) | |||
| 713 | fprintf (stderr, "nsfont: list families returning %"pI"d entries\n", | 716 | fprintf (stderr, "nsfont: list families returning %"pI"d entries\n", |
| 714 | XINT (Flength (list))); | 717 | XINT (Flength (list))); |
| 715 | 718 | ||
| 719 | unblock_input (); | ||
| 716 | return list; | 720 | return list; |
| 717 | } | 721 | } |
| 718 | 722 | ||
| @@ -735,6 +739,8 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size) | |||
| 735 | Lisp_Object font_object; | 739 | Lisp_Object font_object; |
| 736 | int fixLeopardBug; | 740 | int fixLeopardBug; |
| 737 | 741 | ||
| 742 | block_input (); | ||
| 743 | |||
| 738 | if (NSFONT_TRACE) | 744 | if (NSFONT_TRACE) |
| 739 | { | 745 | { |
| 740 | fprintf (stderr, "nsfont: open size %d of fontentity:\n ", pixel_size); | 746 | fprintf (stderr, "nsfont: open size %d of fontentity:\n ", pixel_size); |
| @@ -794,13 +800,14 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size) | |||
| 794 | font_info = (struct nsfont_info *) XFONT_OBJECT (font_object); | 800 | font_info = (struct nsfont_info *) XFONT_OBJECT (font_object); |
| 795 | font = (struct font *) font_info; | 801 | font = (struct font *) font_info; |
| 796 | if (!font) | 802 | if (!font) |
| 797 | return Qnil; /* FIXME: other terms do, but return Qnil causes segfault */ | 803 | { |
| 804 | unblock_input (); | ||
| 805 | return Qnil; /* FIXME: other terms do, but return Qnil causes segfault */ | ||
| 806 | } | ||
| 798 | 807 | ||
| 799 | font_info->glyphs = xzalloc (0x100 * sizeof *font_info->glyphs); | 808 | font_info->glyphs = xzalloc (0x100 * sizeof *font_info->glyphs); |
| 800 | font_info->metrics = xzalloc (0x100 * sizeof *font_info->metrics); | 809 | font_info->metrics = xzalloc (0x100 * sizeof *font_info->metrics); |
| 801 | 810 | ||
| 802 | block_input (); | ||
| 803 | |||
| 804 | /* for metrics */ | 811 | /* for metrics */ |
| 805 | #ifdef NS_IMPL_COCOA | 812 | #ifdef NS_IMPL_COCOA |
| 806 | sfont = [nsfont screenFontWithRenderingMode: | 813 | sfont = [nsfont screenFontWithRenderingMode: |
| @@ -1051,6 +1058,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 1051 | char isComposite = s->first_glyph->type == COMPOSITE_GLYPH; | 1058 | char isComposite = s->first_glyph->type == COMPOSITE_GLYPH; |
| 1052 | int end = isComposite ? s->cmp_to : s->nchars; | 1059 | int end = isComposite ? s->cmp_to : s->nchars; |
| 1053 | 1060 | ||
| 1061 | block_input (); | ||
| 1054 | /* Select face based on input flags */ | 1062 | /* Select face based on input flags */ |
| 1055 | switch (ns_tmp_flags) | 1063 | switch (ns_tmp_flags) |
| 1056 | { | 1064 | { |
| @@ -1240,7 +1248,6 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 1240 | else | 1248 | else |
| 1241 | CGContextSetShouldAntialias (gcontext, 1); | 1249 | CGContextSetShouldAntialias (gcontext, 1); |
| 1242 | 1250 | ||
| 1243 | CGContextSetShouldSmoothFonts (gcontext, NO); | ||
| 1244 | CGContextSetTextMatrix (gcontext, fliptf); | 1251 | CGContextSetTextMatrix (gcontext, fliptf); |
| 1245 | 1252 | ||
| 1246 | if (bgCol != nil) | 1253 | if (bgCol != nil) |
| @@ -1273,6 +1280,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 1273 | /* Draw underline, overline, strike-through. */ | 1280 | /* Draw underline, overline, strike-through. */ |
| 1274 | ns_draw_text_decoration (s, face, col, r.size.width, r.origin.x); | 1281 | ns_draw_text_decoration (s, face, col, r.size.width, r.origin.x); |
| 1275 | 1282 | ||
| 1283 | unblock_input (); | ||
| 1276 | return to-from; | 1284 | return to-from; |
| 1277 | } | 1285 | } |
| 1278 | 1286 | ||
| @@ -1406,11 +1414,12 @@ ns_glyph_metrics (struct nsfont_info *font_info, unsigned char block) | |||
| 1406 | 1414 | ||
| 1407 | lb = r.origin.x; | 1415 | lb = r.origin.x; |
| 1408 | rb = r.size.width - w; | 1416 | rb = r.size.width - w; |
| 1417 | // Add to bearing for LCD smoothing. We don't know if it is there. | ||
| 1409 | if (lb < 0) | 1418 | if (lb < 0) |
| 1410 | metrics->lbearing = round (lb); | 1419 | metrics->lbearing = round (lb - LCD_SMOOTHING_MARGIN); |
| 1411 | if (font_info->ital) | 1420 | if (font_info->ital) |
| 1412 | rb += 0.22 * font_info->height; | 1421 | rb += 0.22 * font_info->height; |
| 1413 | metrics->rbearing = lrint (w + rb); | 1422 | metrics->rbearing = lrint (w + rb + LCD_SMOOTHING_MARGIN); |
| 1414 | 1423 | ||
| 1415 | metrics->descent = r.origin.y < 0 ? -r.origin.y : 0; | 1424 | metrics->descent = r.origin.y < 0 ? -r.origin.y : 0; |
| 1416 | /*lrint (hshrink * [sfont ascender] + expand * hd/2); */ | 1425 | /*lrint (hshrink * [sfont ascender] + expand * hd/2); */ |
diff --git a/src/nsterm.m b/src/nsterm.m index 0fd062b7f17..48efac3f70b 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -4981,6 +4981,7 @@ not_in_argv (NSString *arg) | |||
| 4981 | 4981 | ||
| 4982 | emacs_event->code = code; | 4982 | emacs_event->code = code; |
| 4983 | EV_TRAILER (theEvent); | 4983 | EV_TRAILER (theEvent); |
| 4984 | processingCompose = NO; | ||
| 4984 | return; | 4985 | return; |
| 4985 | } | 4986 | } |
| 4986 | } | 4987 | } |
| @@ -5171,6 +5172,7 @@ not_in_argv (NSString *arg) | |||
| 5171 | if (NS_KEYLOG) | 5172 | if (NS_KEYLOG) |
| 5172 | NSLog (@"doCommandBySelector: %@", NSStringFromSelector (aSelector)); | 5173 | NSLog (@"doCommandBySelector: %@", NSStringFromSelector (aSelector)); |
| 5173 | 5174 | ||
| 5175 | processingCompose = NO; | ||
| 5174 | if (aSelector == @selector (deleteBackward:)) | 5176 | if (aSelector == @selector (deleteBackward:)) |
| 5175 | { | 5177 | { |
| 5176 | /* happens when user backspaces over an ongoing composition: | 5178 | /* happens when user backspaces over an ongoing composition: |
diff --git a/src/sysdep.c b/src/sysdep.c index 158d2f73eec..0e9a6826005 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -1678,6 +1678,25 @@ deliver_arith_signal (int sig) | |||
| 1678 | deliver_thread_signal (sig, handle_arith_signal); | 1678 | deliver_thread_signal (sig, handle_arith_signal); |
| 1679 | } | 1679 | } |
| 1680 | 1680 | ||
| 1681 | #ifdef SIGDANGER | ||
| 1682 | |||
| 1683 | /* Handler for SIGDANGER. */ | ||
| 1684 | static void | ||
| 1685 | handle_danger_signal (int sig) | ||
| 1686 | { | ||
| 1687 | malloc_warning ("Operating system warns that virtual memory is running low.\n"); | ||
| 1688 | |||
| 1689 | /* It might be unsafe to call do_auto_save now. */ | ||
| 1690 | force_auto_save_soon (); | ||
| 1691 | } | ||
| 1692 | |||
| 1693 | static void | ||
| 1694 | deliver_danger_signal (int sig) | ||
| 1695 | { | ||
| 1696 | deliver_process_signal (sig, handle_danger_signal); | ||
| 1697 | } | ||
| 1698 | #endif | ||
| 1699 | |||
| 1681 | /* Treat SIG as a terminating signal, unless it is already ignored and | 1700 | /* Treat SIG as a terminating signal, unless it is already ignored and |
| 1682 | we are in --batch mode. Among other things, this makes nohup work. */ | 1701 | we are in --batch mode. Among other things, this makes nohup work. */ |
| 1683 | static void | 1702 | static void |
diff --git a/src/xterm.c b/src/xterm.c index e24fbd19f2b..212530e5acf 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -4811,21 +4811,24 @@ x_set_toolkit_scroll_bar_thumb (struct scroll_bar *bar, int portion, int positio | |||
| 4811 | 4811 | ||
| 4812 | #ifdef USE_MOTIF | 4812 | #ifdef USE_MOTIF |
| 4813 | 4813 | ||
| 4814 | /* We use an estimate of 30 chars per line rather than the real | 4814 | if (scroll_bar_adjust_thumb_portion_p) |
| 4815 | `portion' value. This has the disadvantage that the thumb size | 4815 | { |
| 4816 | is not very representative, but it makes our life a lot easier. | 4816 | /* We use an estimate of 30 chars per line rather than the real |
| 4817 | Otherwise, we have to constantly adjust the thumb size, which | 4817 | `portion' value. This has the disadvantage that the thumb size |
| 4818 | we can't always do quickly enough: while dragging, the size of | 4818 | is not very representative, but it makes our life a lot easier. |
| 4819 | the thumb might prevent the user from dragging the thumb all the | 4819 | Otherwise, we have to constantly adjust the thumb size, which |
| 4820 | way to the end. but Motif and some versions of Xaw3d don't allow | 4820 | we can't always do quickly enough: while dragging, the size of |
| 4821 | updating the thumb size while dragging. Also, even if we can update | 4821 | the thumb might prevent the user from dragging the thumb all the |
| 4822 | its size, the update will often happen too late. | 4822 | way to the end. but Motif and some versions of Xaw3d don't allow |
| 4823 | If you don't believe it, check out revision 1.650 of xterm.c to see | 4823 | updating the thumb size while dragging. Also, even if we can update |
| 4824 | what hoops we were going through and the still poor behavior we got. */ | 4824 | its size, the update will often happen too late. |
| 4825 | portion = WINDOW_TOTAL_LINES (XWINDOW (bar->window)) * 30; | 4825 | If you don't believe it, check out revision 1.650 of xterm.c to see |
| 4826 | /* When the thumb is at the bottom, position == whole. | 4826 | what hoops we were going through and the still poor behavior we got. */ |
| 4827 | So we need to increase `whole' to make space for the thumb. */ | 4827 | portion = WINDOW_TOTAL_LINES (XWINDOW (bar->window)) * 30; |
| 4828 | whole += portion; | 4828 | /* When the thumb is at the bottom, position == whole. |
| 4829 | So we need to increase `whole' to make space for the thumb. */ | ||
| 4830 | whole += portion; | ||
| 4831 | } | ||
| 4829 | 4832 | ||
| 4830 | if (whole <= 0) | 4833 | if (whole <= 0) |
| 4831 | top = 0, shown = 1; | 4834 | top = 0, shown = 1; |
| @@ -10802,6 +10805,16 @@ With MS Windows or Nextstep, the value is t. */); | |||
| 10802 | Vx_toolkit_scroll_bars = Qnil; | 10805 | Vx_toolkit_scroll_bars = Qnil; |
| 10803 | #endif | 10806 | #endif |
| 10804 | 10807 | ||
| 10808 | DEFVAR_BOOL ("scroll-bar-adjust-thumb-portion", | ||
| 10809 | scroll_bar_adjust_thumb_portion_p, | ||
| 10810 | doc: /* Adjust thumb for overscrolling for Gtk+ and MOTIF. | ||
| 10811 | Non-nil means adjust the thumb in the scroll bar so it can be dragged downwards | ||
| 10812 | even if the end of the buffer is shown (i.e. overscrolling). | ||
| 10813 | Set to nil if you want the thumb to be at the bottom when the end of the buffer | ||
| 10814 | is shown. Also, the thumb fills the whole scroll bar when the entire buffer | ||
| 10815 | is visible. In this case you can not overscroll. */); | ||
| 10816 | scroll_bar_adjust_thumb_portion_p = 1; | ||
| 10817 | |||
| 10805 | staticpro (&last_mouse_motion_frame); | 10818 | staticpro (&last_mouse_motion_frame); |
| 10806 | last_mouse_motion_frame = Qnil; | 10819 | last_mouse_motion_frame = Qnil; |
| 10807 | 10820 | ||