From 50620051800d14a47558fb4379d7cbae5d81f6a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Thu, 10 Jan 2013 00:44:12 -0300 Subject: [PATCH 01/10] * progmodes/python.el (python-nav-end-of-statement): Fix cornercase when handling multiline strings. --- lisp/ChangeLog | 5 +++++ lisp/progmodes/python.el | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c3264d817e4..63dd9d0a093 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-01-10 Fabián Ezequiel Gallina + + * progmodes/python.el (python-nav-end-of-statement): Fix + cornercase when handling multiline strings. + 2013-01-10 Glenn Morris * emacs-lisp/authors.el (authors-ignored-files) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 7294984fc4a..e58dfa169ef 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1188,7 +1188,16 @@ of the statement." (not (eobp)) (cond ((setq string-start (python-syntax-context 'string)) (goto-char string-start) - (python-nav-end-of-statement t)) + (if (python-syntax-context 'paren) + ;; Ended up inside a paren, roll again. + (python-nav-end-of-statement t) + ;; This is not inside a paren, move to the + ;; end of this string. + (goto-char (+ (point) + (python-syntax-count-quotes + (char-after (point)) (point)))) + (or (re-search-forward (rx (syntax string-delimiter)) nil t) + (goto-char (point-max))))) ((python-syntax-context 'paren) ;; The statement won't end before we've escaped ;; at least one level of parenthesis. @@ -1302,7 +1311,7 @@ backward to previous block." "Safe version of standard `forward-sexp'. When ARG > 0 move forward, else if ARG is < 0." (or arg (setq arg 1)) - (let ((forward-sexp-function nil) + (let ((forward-sexp-function) (paren-regexp (if (> arg 0) (python-rx close-paren) (python-rx open-paren))) (search-fn From 39aff4a79fc24148c317c3eacb2cb92e46981aa3 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 9 Jan 2013 20:00:02 -0800 Subject: [PATCH 02/10] * make-dist: Add options for xz compression and no compression. --- ChangeLog | 4 ++++ make-dist | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0dcbc4747fb..05d15b7dc36 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-01-10 Glenn Morris + + * make-dist: Add options for xz compression and no compression. + 2013-01-04 Glenn Morris * info/dir: Add htmlfontify. diff --git a/make-dist b/make-dist index 60afb0c618f..788dca3462c 100755 --- a/make-dist +++ b/make-dist @@ -87,6 +87,13 @@ while [ $# -gt 0 ]; do "--lzma") default_gzip="lzma" ;; + ## Same with xz. + "--xz") + default_gzip="xz" + ;; + "--no-compress") + default_gzip="cat" + ;; "--snapshot") clean_up=yes @@ -101,6 +108,8 @@ while [ $# -gt 0 ]; do echo " --bzip2 use bzip2 instead of gzip" echo " --clean-up delete staging directories when done" echo " --lzma use lzma instead of gzip" + echo " --xz use xz instead of gzip" + echo " --no-compress don't compress" echo " --newer=TIME don't include files older than TIME" echo " --no-check don't check for bad file names etc." echo " --no-update don't recompile or do analogous things" @@ -510,6 +519,7 @@ if [ "${make_tar}" = yes ]; then case "${default_gzip}" in bzip2) gzip_extension=.bz2 ;; lzma) gzip_extension=.lzma ;; + xz) gzip_extension=.xz ;; gzip) gzip_extension=.gz ; default_gzip="gzip --best";; *) gzip_extension= ;; esac From fb6ea014512973f2e8d291b2f6672fbb56c3fe61 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 9 Jan 2013 23:31:36 -0500 Subject: [PATCH 03/10] Auto-commit of generated files. --- autogen/configure | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/autogen/configure b/autogen/configure index 4df461524d1..35967f530ed 100755 --- a/autogen/configure +++ b/autogen/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for emacs 24.2.91. +# Generated by GNU Autoconf 2.65 for emacs 24.2.92. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -549,8 +549,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='emacs' PACKAGE_TARNAME='emacs' -PACKAGE_VERSION='24.2.91' -PACKAGE_STRING='emacs 24.2.91' +PACKAGE_VERSION='24.2.92' +PACKAGE_STRING='emacs 24.2.92' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1940,7 +1940,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures emacs 24.2.91 to adapt to many kinds of systems. +\`configure' configures emacs 24.2.92 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2014,7 +2014,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of emacs 24.2.91:";; + short | recursive ) echo "Configuration of emacs 24.2.92:";; esac cat <<\_ACEOF @@ -2182,7 +2182,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -emacs configure 24.2.91 +emacs configure 24.2.92 generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. @@ -2904,7 +2904,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by emacs $as_me 24.2.91, which was +It was created by emacs $as_me 24.2.92, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ @@ -3765,7 +3765,7 @@ fi # Define the identity of the package. PACKAGE='emacs' - VERSION='24.2.91' + VERSION='24.2.92' cat >>confdefs.h <<_ACEOF @@ -25478,7 +25478,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by emacs $as_me 24.2.91, which was +This file was extended by emacs $as_me 24.2.92, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25544,7 +25544,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -emacs config.status 24.2.91 +emacs config.status 24.2.92 configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" From b6f960a0ea4a19ed3dc8a6c5e34cf1d2e02b4bb9 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 10 Jan 2013 23:47:57 -0800 Subject: [PATCH 04/10] Fix SIGDANGER handlers, for AIX. * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]: Move handlers here from emacs.c; they were out of place. Fixes: debbugs:13408 --- src/ChangeLog | 6 ++++++ src/emacs.c | 19 ------------------- src/sysdep.c | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 919e9e7de43..696a70fc08d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2013-01-11 Paul Eggert + + Fix SIGDANGER handlers, for AIX (Bug#13408). + * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]: + Move handlers here from emacs.c; they were out of place. + 2013-01-05 Eli Zaretskii * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead diff --git a/src/emacs.c b/src/emacs.c index a7b17a9905c..c0c230ef3dd 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -346,25 +346,6 @@ terminate_due_to_signal (int sig, int backtrace_limit) /* This shouldn't be executed, but it prevents a warning. */ exit (1); } - -#ifdef SIGDANGER - -/* Handler for SIGDANGER. */ -static void -handle_danger_signal (int sig) -{ - malloc_warning ("Operating system warns that virtual memory is running low.\n"); - - /* It might be unsafe to call do_auto_save now. */ - force_auto_save_soon (); -} - -static void -deliver_danger_signal (int sig) -{ - deliver_process_signal (sig, handle_danger_signal); -} -#endif /* Code for dealing with Lisp access to the Unix command line. */ diff --git a/src/sysdep.c b/src/sysdep.c index 960c13b8d84..47a14bdba35 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -1663,6 +1663,25 @@ deliver_arith_signal (int sig) deliver_thread_signal (sig, handle_arith_signal); } +#ifdef SIGDANGER + +/* Handler for SIGDANGER. */ +static void +handle_danger_signal (int sig) +{ + malloc_warning ("Operating system warns that virtual memory is running low.\n"); + + /* It might be unsafe to call do_auto_save now. */ + force_auto_save_soon (); +} + +static void +deliver_danger_signal (int sig) +{ + deliver_process_signal (sig, handle_danger_signal); +} +#endif + /* Treat SIG as a terminating signal, unless it is already ignored and we are in --batch mode. Among other things, this makes nohup work. */ static void From 45b7bfdd5414ee4be86b10468afbcd493aacd5ef Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 10 Jan 2013 23:51:25 -0800 Subject: [PATCH 05/10] Backport typo fix from trunk, for AIX. * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'. This follows up on the 2012-09-29 patch that removed indirection for the 'function' field. Reported by Sergey Vinokurov in . Fixes: debbugs:13408 --- src/ChangeLog | 6 ++++++ src/eval.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 696a70fc08d..0ba5b2ccab2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,11 @@ 2013-01-11 Paul Eggert + Backport typo fix from trunk, for AIX (Bug#13408). + * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'. + This follows up on the 2012-09-29 patch that removed indirection + for the 'function' field. Reported by Sergey Vinokurov in + . + Fix SIGDANGER handlers, for AIX (Bug#13408). * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]: Move handlers here from emacs.c; they were out of place. diff --git a/src/eval.c b/src/eval.c index 7709b8ba2dc..a0db6e0745c 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3377,7 +3377,7 @@ mark_backtrace (void) for (backlist = backtrace_list; backlist; backlist = backlist->next) { - mark_object (*backlist->function); + mark_object (backlist->function); if (backlist->nargs == UNEVALLED || backlist->nargs == MANY) /* FIXME: Can this happen? */ From 38693137f66848fa3e3fee5d0af8436e9fe7414b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Fri, 11 Jan 2013 02:22:49 +0100 Subject: [PATCH 06/10] * gtkutil.c (xg_initialize): Backport from trunk. Add ifdef HAVE_FREETYPE around x_last_font_name. Fixes: debbugs:13403 --- src/ChangeLog | 5 +++++ src/gtkutil.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 0ba5b2ccab2..8c16df2803d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2013-01-11 Jan Djärv + + * gtkutil.c (xg_initialize): Backport from trunk. + Add ifdef HAVE_FREETYPE around x_last_font_name (Bug#13403). + 2013-01-11 Paul Eggert Backport typo fix from trunk, for AIX (Bug#13408). diff --git a/src/gtkutil.c b/src/gtkutil.c index 0c7d0d18f0b..e76b0a733a0 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -4994,7 +4994,9 @@ xg_initialize (void) "cancel", 0); update_theme_scrollbar_width (); +#ifdef HAVE_FREETYPE x_last_font_name = NULL; +#endif } #endif /* USE_GTK */ From f5e9cbd447d2af41da420a5dde2f28ba75892a37 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 12 Jan 2013 11:31:25 -0800 Subject: [PATCH 07/10] ChangeLog fix (no need to merge to trunk) --- src/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 8c16df2803d..dbba6322423 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,4 +1,4 @@ -2013-01-11 Jan Djärv +2013-01-11 Rainer Orth (tiny change) * gtkutil.c (xg_initialize): Backport from trunk. Add ifdef HAVE_FREETYPE around x_last_font_name (Bug#13403). From a89c8ef024113dbf993db0d379fabbfb06c86520 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Sun, 13 Jan 2013 11:33:16 +0100 Subject: [PATCH 08/10] Merge Org 7.9.3d (commit e8f5b0ad). --- doc/misc/ChangeLog | 11 +++ doc/misc/org.texi | 140 +++++++++++++----------------------- lisp/org/ChangeLog | 55 ++++++++++----- lisp/org/ob-eval.el | 14 ++-- lisp/org/org-agenda.el | 148 ++++++++++++++++++++++++++++++--------- lisp/org/org-capture.el | 8 +-- lisp/org/org-clock.el | 2 +- lisp/org/org-compat.el | 28 -------- lisp/org/org-id.el | 2 +- lisp/org/org-lparse.el | 4 +- lisp/org/org-mobile.el | 8 +-- lisp/org/org-odt.el | 2 +- lisp/org/org-protocol.el | 6 +- lisp/org/org-version.el | 4 +- lisp/org/org.el | 35 +++++---- 15 files changed, 261 insertions(+), 206 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 8d88336183d..e3ee947fe24 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,14 @@ +2013-01-13 Bastien Guerry + + * org.texi (Installation): Simplify. + +2013-01-13 François Allisson (tiny change) + + * org.texi (Handling links): Update the mention to the obsolete + variable `org-link-to-org-use-id' with a mention to the newer + variable `org-id-link-to-org-use-id'. Mention the need to load + the org-id library. + 2013-01-08 Bastien Guerry * org.texi (Pushing to MobileOrg): Add footnote about using 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 @@ @c %**start of header @setfilename ../../info/org @settitle The Org Manual -@set VERSION 7.9.3+ (GNU Emacs 24.3) +@set VERSION 7.9.3d (GNU Emacs 24.3) @c Use proper quote and backtick for code sections in PDF output @c Cf. Texinfo manual 14.2 @@ -339,7 +339,7 @@ with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, Introduction * Summary:: Brief summary of what Org does -* Installation:: How to install a downloaded version of Org +* Installation:: Installing Org * Activation:: How to activate Org for certain buffers * Feedback:: Bug reports, ideas, patches etc. * Conventions:: Typesetting conventions in the manual @@ -771,7 +771,7 @@ MobileOrg @menu * Summary:: Brief summary of what Org does -* Installation:: How to install a downloaded version of Org +* Installation:: Installing Org * Activation:: How to activate Org for certain buffers * Feedback:: Bug reports, ideas, patches etc. * Conventions:: Typesetting conventions in the manual @@ -851,118 +851,69 @@ Theory Ltd.} @cindex installation @cindex XEmacs -@b{Important:} @i{If you the version of Org that comes with Emacs or as a -XEmacs package, please skip this section and go directly to @ref{Activation}. -If you downloaded Org as an ELPA package, please read the instructions on the -@uref{http://orgmode.org/elpa.html, Org ELPA page}. To see what version of Org -(if any) is part of your Emacs distribution, type @kbd{M-x org-version} (if -your Emacs distribution does not come with Org, this function will not be -defined).} - -Installation of Org mode uses a build system, which is described in more -detail on @uref{http://orgmode.org/worg/dev/org-build-system.html, Worg}. - -If you have downloaded Org from the Web as a distribution @file{.zip} or -@file{.tar.gz} archive, take the following steps to install it: +Org is part of recent distributions of GNU Emacs, so you normally don't need +to install it. If, for one reason or another, you want to install Org on top +of this pre-packaged version, there are three ways to do it: @itemize @bullet -@item Unpack the distribution archive. -@item Change into (@code{cd}) the Org directory. -@item Run @code{make help config} -and then check and edit the file @file{local.mk} if the default configuration -does not match your system. Set the name of the Emacs binary (likely either -@file{emacs} or @file{xemacs}), and the paths to the directories where local -Lisp and Info files will be installed. If the Emacs binary is not in your -path, give the full path to the executable. Avoid spaces in any path names. -@item Run @code{make config} -again to check the configuration. -@item Run @code{make install} or @code{sudo make install} -to build and install Org mode on your system. +@item By using Emacs package system. +@item By downloading Org as an archive. +@item By using Org's git repository. @end itemize -If you use a cloned Git repository, then the procedure is slightly different. -The following description assumes that you are using the @code{master} branch -(where the development is done). You could also use the @code{maint} branch -instead, where the release versions are published, just replace @code{master} -with @code{maint} in the description below. +We @b{strongly recommend} to stick to a single installation method. -@itemize @bullet -@item Change into (@code{cd}) the Org repository. -@item Run @code{git checkout master} -to switch to the @code{master} branch of the Org repository. -@item Run @code{make help} -and then check and edit the file @file{local.mk}. You must set the name of -the Emacs binary (likely either @file{emacs} or @file{xemacs}), and the paths -to the directories where local Lisp and Info files will be installed. If the -Emacs binary is not in your path, you must give the full path to the -executable. Avoid spaces in any path names. -@item Run @code{make config} -to check the configuration. -@item Optionally run @code{make test} -to build Org mode and then run the full testsuite. -@item Run @code{make update2} or @code{make up2} -to update the Git repository and build and install Org mode. The latter -invocation runs the complete test suite before installation and installs only -if the build passes all tests. -@end itemize +@subsubheading Using Emacs packaging system -If you don't have access to the system-wide directories and you don't want to -install somewhere into your home directory, you can run Org directly from the -distribution directory or Org repository by compiling Org mode in place: +Recent Emacs distributions include a packaging system which lets you install +Elisp libraries. You can install Org with @kbd{M-x package-install RET org}. +To make sure your Org configuration is well taken into account, initialize +the package system with @code{(package-initialize)} before setting any Org +option. If you want to use Org's package repository, check out the +@uref{http://orgmode.org/elpa.html, Org ELPA page}. -@itemize @bullet -@item Change into (@code{cd}) the Org repository. -@item Run @code{git checkout master} -to switch to the @code{master} branch of the Org repository. -@item Run @code{make compile} -@end itemize +@subsubheading Downloading Org as an archive -Last but not least you can also run Org mode directly from an Org repository -without any compilation. Simply replace the last step in the recipe above -with @code{make uncompiled}. - -Then add the following line to @file{.emacs}: +You can download Org latest release from @uref{http://orgmode.org/, Org's +website}. In this case, make sure you set the load-path correctly in your +@file{.emacs}: @example (add-to-list 'load-path "~/path/to/orgdir/lisp") @end example -@noindent -If you plan to use code from the @file{contrib} subdirectory without -compiling them, do a similar step for this directory: +The downloaded archive contains contributed libraries that are not included +in Emacs. If you want to use them, add the @file{contrib} directory to your +load-path: @example (add-to-list 'load-path "~/path/to/orgdir/contrib/lisp" t) @end example -If you want to include those files with the build and install, please -customize the variable @code{ORG_ADD_CONTRIB} instead in your @code{local.mk} -file, for more details please see this -@uref{http://orgmode.org/worg/dev/org-build-system.html#sec-4-1-2, -description on Worg}. +Optionally, you can compile the files and/or install them in your system. +Run @code{make help} to list compilation and installation options. -Installing Info files is system dependent, because of differences in the -@file{install-info} program. The Info documentation is installed together -with the rest of Org mode. If you don't install Org mode, it is possible to -install the Info documentation separately (you need to have -install-info@footnote{The output from install-info (if any) is system -dependent. In particular Debian and its derivatives use two different -versions of install-info and you may see the message: +@subsubheading Using Org's git repository + +You can clone Org's repository and install Org like this: @example -This is not dpkg install-info anymore, but GNU install-info -See the man page for ginstall-info for command line arguments +$ cd ~/src/ +$ git clone git://orgmode.org/org-mode.git +$ make autoloads @end example -@noindent which can be safely ignored.} -on your system). +Note that @code{make autoloads} is mandatory: it defines Org's version and +Org's autoloaded functions, respectively in @file{org-version.el} and in +@file{org-loaddefs.el}. -@example -make install-info -@end example +Remember to add the correct load-path as described in the method above. -Do not forget to activate Org as described in the following section. -@page +You can also compile and install Org from this git repository: check +@code{make help} to get the list of compilation/installation options. + +For more detailed explanations on Org's build system, please check the Org +Build System page on @uref{http://orgmode.org/worg/dev/org-build-system.html, Worg}. @node Activation, Feedback, Installation, Introduction @section Activation @@ -3384,13 +3335,16 @@ be the description@footnote{If the headline contains a timestamp, it will be removed from the link and result in a wrong link---you should avoid putting timestamp in the headline.}. -@vindex org-link-to-org-use-id +@vindex org-id-link-to-org-use-id @cindex property, CUSTOM_ID @cindex property, ID If the headline has a @code{CUSTOM_ID} property, a link to this custom ID will be stored. In addition or alternatively (depending on the value of -@code{org-link-to-org-use-id}), a globally unique @code{ID} property will be -created and/or used to construct a link. So using this command in Org +@code{org-id-link-to-org-use-id}), a globally unique @code{ID} property will +be created and/or used to construct a link@footnote{The library @code{org-id} +must first be loaded, either through @code{org-customize} by enabling +@code{id} in @code{org-modules} , or by adding @code{(require 'org-id)} in +your @file{.emacs}.}. So using this command in Org buffers will potentially create two links: a human-readable from the custom ID, and one that is globally unique and works even if the entry is moved from file to file. Later, when inserting the link, you need to decide which one diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index 1201fa36a9f..b6d196ecf54 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog @@ -1,24 +1,47 @@ +2013-01-13 Bastien Guerry + + * org-compat.el (org-condition-case-unless-debug): Delete. + + * org-odt.el (org-odt-cleanup-xml-buffers): Use + `condition-case' instead of `org-condition-case-unless-debug', + which is now deleted. + + * org-capture.el (org-capture-templates-contexts): + * org-agenda.el (org-agenda-custom-commands-contexts): + Docstring fix. + + * org.el (org-get-tags-at): Remove duplicate inherited tags. + + * org-agenda.el (org-agenda-show-inherited-tags): Allow to be set + to 'always or to a list of agenda types. + (org-agenda-finalize): Rework conditions under which inherited + tags should be made available even when not displayed. + (org-search-view, org-agenda-get-todos) + (org-agenda-get-timestamps, org-agenda-get-sexps) + (org-agenda-get-progress, org-agenda-get-scheduled) + (org-agenda-get-blocks): Use new possible values of + `org-agenda-show-inherited-tags'. + + * org.el (org-open-at-point): Fix opening all links at point. + + * org-agenda.el (org-get-entries-from-diary): Turn off + `diary-file-name-prefix' instead of + `diary-file-name-prefix-function', the former is checked before + the latter. + + * org.el (org-edit-special): Check for table.el before checking + for Org tables. + +2013-01-13 Michael Albinus + + * ob-eval.el (org-babel-shell-command-on-region): Use + `executable-find' for local `shell-file-name'. + 2013-01-08 Achim Gratz - * org-compat.el (org-define-obsolete-function-alias) - (org-define-obsolete-variable-alias): Introduce new compatibility - macros to obsolete functions and variables. - - * org-agenda.el, org-clock.el, org-id.el, org-lparse.el, - org-protocol.el org.el: Use - `org-define-obsolete-{function,variable}-alias' instead of - `define-obsolate{function,variable}-alias'. - * org-faces.el: Define face alias mode-line for XEmacs (it's called modeline there). - * org-compat.el (org-condition-case-unless-debug): Do not use - defalias for special forms, the Emacs 22 byte-compiler does not - recognize them correctly when compiling macros. Use a macro - instead and rely on macro expansion. That however makes the - decision at compile time, which should be acceptable in this case - since it only affects debugging. - * org-compat.el (org-no-popups): New wrapper macro which let-binds the correct variables to suppress popup windows depending on the 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." t))) (let ((input-file (org-babel-temp-file "input-")) (error-file (if error-buffer (org-babel-temp-file "scor-") nil)) + ;; Unfortunately, `executable-find' does not support file name + ;; handlers. Therefore, we could use it in the local case + ;; only. (shell-file-name - (if (file-executable-p - (concat (file-remote-p default-directory) shell-file-name)) - shell-file-name - "/bin/sh")) + (cond ((and (not (file-remote-p default-directory)) + (executable-find shell-file-name)) + shell-file-name) + ((file-executable-p + (concat (file-remote-p default-directory) shell-file-name)) + shell-file-name) + ("/bin/sh"))) exit-status) ;; There is an error in `process-file' when `error-file' exists. ;; 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')." :version "24.1" :type 'boolean) -(org-define-obsolete-variable-alias 'org-agenda-menu-two-column 'org-agenda-menu-two-columns "24.3") +(define-obsolete-variable-alias 'org-agenda-menu-two-column 'org-agenda-menu-two-columns "24.3") (defcustom org-agenda-menu-two-columns nil "Non-nil means, use two columns to show custom commands in the dispatcher. @@ -900,7 +900,7 @@ to nil." :version "24.1" :type 'boolean) -(org-define-obsolete-variable-alias 'org-finalize-agenda-hook 'org-agenda-finalize-hook "24.3") +(define-obsolete-variable-alias 'org-finalize-agenda-hook 'org-agenda-finalize-hook "24.3") (defcustom org-agenda-finalize-hook nil "Hook run just before displaying an agenda buffer. 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." (const :tag "No default duration"))) (defcustom org-agenda-show-inherited-tags t - "Non-nil means show inherited tags in each agenda line." + "Non-nil means show inherited tags in each agenda line. + +When this option is set to 'always, it take precedences over +`org-agenda-use-tag-inheritance' and inherited tags are shown +in every agenda. + +When this option is set to t (the default), inherited tags are +shown when they are available, i.e. when the value of +`org-agenda-use-tag-inheritance' has been taken into account. + +This can be set to a list of agenda types in which the agenda +must display the inherited tags. Available types are 'todo, +'agenda, 'search and 'timeline. + +When set to nil, never show inherited tags in agenda lines." :group 'org-agenda-line-format - :type 'boolean) + :group 'org-agenda + :version "24.3" + :type '(choice + (const :tag "Show inherited tags when available" t) + (const :tag "Always show inherited tags" 'always) + (repeat :tag "Show inherited tags only in selected agenda types" + (symbol :tag "Agenda type")))) (defcustom org-agenda-use-tag-inheritance '(todo search timeline agenda) "List of agenda view types where to use tag inheritance. In tags/tags-todo/tags-tree agenda views, tag inheritance is controlled by `org-use-tag-inheritance'. In other agenda types, -`org-use-tag-inheritance' is not used when selecting the agenda -entries, but you may want the agenda to use the inherited tags -anyway, e.g. for later tag filtering. +`org-use-tag-inheritance' is not used for the selection of the +agenda entries. Still, you may want the agenda to be aware of +the inherited tags anyway, e.g. for later tag filtering. -The default value reset tags in every agenda type. Setting this -option to nil will speed up non-tags agenda view a lot. +Allowed value are 'todo, 'search, 'timeline and 'agenda. -Allowed value are 'todo, 'search, 'timeline and 'agenda." - :version "24.3" +This variable has no effect if `org-agenda-show-inherited-tags' +is set to 'always. In that case, the agenda is aware of those +tags. + +The default value sets tags in every agenda type. Setting this +option to nil will speed up non-tags agenda view a lot." :group 'org-agenda - :type '(repeat (symbol :tag "Agenda type"))) + :version "24.3" + :type '(choice + (const :tag "Use tag inheritance in all agenda types" t) + (repeat :tag "Use tag inheritance in selected agenda types" + (symbol :tag "Agenda type")))) (defcustom org-agenda-hide-tags-regexp nil "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 want this command to be accessible only from plain text files, use this: - '((\"p\" (in-file . \"\\.txt\"))) + '((\"p\" ((in-file . \"\\.txt\")))) Here are the available contexts definitions: @@ -2379,7 +2406,7 @@ accessible if there is at least one valid check. You can also bind a key to another agenda custom command depending on contextual rules. - '((\"p\" \"q\" (in-file . \"\\.txt\"))) + '((\"p\" \"q\" ((in-file . \"\\.txt\")))) Here it means: in .txt files, use \"p\" as the key for the agenda command otherwise associated with \"q\". (The command @@ -3569,8 +3596,14 @@ generating a new one." (save-excursion (next-single-property-change (point-min) 'org-habit-p))) (org-habit-insert-consistency-graphs)) (setq org-agenda-type (org-get-at-bol 'org-agenda-type)) - (when (delq nil (mapcar (lambda (tp) (org-agenda-check-type nil tp)) - org-agenda-use-tag-inheritance)) + (unless (or (eq org-agenda-show-inherited-tags 'always) + (and (listp org-agenda-show-inherited-tags) + (memq org-agenda-type org-agenda-show-inherited-tags)) + (and (eq org-agenda-show-inherited-tags t) + (or (eq org-agenda-use-tag-inheritance t) + (and (listp org-agenda-use-tag-inheritance) + (not (memq org-agenda-type + org-agenda-use-tag-inheritance)))))) (let (mrk) (save-excursion (goto-char (point-min)) @@ -4290,7 +4323,7 @@ in `org-agenda-text-search-extra-files'." 'help-echo (format "mouse-2 or RET jump to location"))) (full-words org-agenda-search-view-force-full-words) (org-agenda-text-search-extra-files org-agenda-text-search-extra-files) - regexp rtn rtnall files file pos + regexp rtn rtnall files file pos inherited-tags marker category category-pos tags c neg re boolean ee txt beg end words regexps+ regexps- hdl-only buffer beg1 str) (unless (and (not edit-at) @@ -4444,7 +4477,13 @@ in `org-agenda-text-search-extra-files'." (setq marker (org-agenda-new-marker (point)) category (org-get-category) category-pos (get-text-property (point) 'org-category-position) - tags (org-get-tags-at nil t) + inherited-tags + (or (eq org-agenda-show-inherited-tags 'always) + (memq 'todo org-agenda-show-inherited-tags) + (and (eq org-agenda-show-inherited-tags t) + (or (eq org-agenda-use-tag-inheritance t) + (memq 'todo org-agenda-use-tag-inheritance)))) + tags (org-get-tags-at nil (not inherited-tags)) txt (org-agenda-format-item "" (buffer-substring-no-properties @@ -4974,7 +5013,7 @@ of what a project is and how to check if it stuck, customize the variable (pop-up-frames nil) (diary-list-entries-hook (cons 'org-diary-default-entry diary-list-entries-hook)) - (diary-file-name-prefix-function nil) ; turn this feature off + (diary-file-name-prefix nil) ; turn this feature off (diary-modify-entry-list-string-function 'org-modify-diary-entry-string) entries (org-disable-agenda-to-diary t)) @@ -5250,7 +5289,7 @@ the documentation of `org-diary'." "\\|") "\\)")) (t org-not-done-regexp)))) marker priority category category-pos tags todo-state - ee txt beg end) + ee txt beg end inherited-tags) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -5268,7 +5307,14 @@ the documentation of `org-diary'." category-pos (get-text-property (point) 'org-category-position) txt (org-trim (buffer-substring (match-beginning 2) (match-end 0))) - tags (org-get-tags-at nil t) + inherited-tags + (or (eq org-agenda-show-inherited-tags 'always) + (and (listp org-agenda-show-inherited-tags) + (memq 'todo org-agenda-show-inherited-tags)) + (and (eq org-agenda-show-inherited-tags t) + (or (eq org-agenda-use-tag-inheritance t) + (memq 'todo org-agenda-use-tag-inheritance)))) + tags (org-get-tags-at nil (not inherited-tags)) txt (org-agenda-format-item "" txt category tags t) priority (1+ (org-get-priority txt)) 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? "\\|\\(<%%\\(([^>\n]+)\\)>\\)")) marker hdmarker deadlinep scheduledp clockp closedp inactivep donep tmp priority category category-pos ee txt timestr tags - b0 b3 e3 head todo-state end-of-match show-all warntime habitp) + b0 b3 e3 head todo-state end-of-match show-all warntime habitp + inherited-tags) (goto-char (point-min)) (while (setq end-of-match (re-search-forward regexp nil t)) (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? (assoc (point) deadline-position-alist)) (throw :skip nil)) (setq hdmarker (org-agenda-new-marker) - tags (org-get-tags-at nil t)) + inherited-tags + (or (eq org-agenda-show-inherited-tags 'always) + (and (listp org-agenda-show-inherited-tags) + (memq 'agenda org-agenda-show-inherited-tags)) + (and (eq org-agenda-show-inherited-tags t) + (or (eq org-agenda-use-tag-inheritance t) + (memq 'agenda org-agenda-use-tag-inheritance)))) + tags (org-get-tags-at nil (not inherited-tags))) (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") (setq head (or (match-string 1) "")) (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? (abbreviate-file-name buffer-file-name)))) (regexp "^&?%%(") marker category extra category-pos ee txt tags entry - result beg b sexp sexp-entry todo-state warntime) + result beg b sexp sexp-entry todo-state warntime inherited-tags) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -5497,7 +5551,14 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? (setq marker (org-agenda-new-marker beg) category (org-get-category beg) category-pos (get-text-property beg 'org-category-position) - tags (save-excursion (org-back-to-heading t) (org-get-tags-at nil t)) + inherited-tags + (or (eq org-agenda-show-inherited-tags 'always) + (and (listp org-agenda-show-inherited-tags) + (memq 'agenda org-agenda-show-inherited-tags)) + (and (eq org-agenda-show-inherited-tags t) + (or (eq org-agenda-use-tag-inheritance t) + (memq 'agenda org-agenda-use-tag-inheritance)))) + tags (org-get-tags-at nil (not inherited-tags)) todo-state (org-get-todo-state) warntime (get-text-property (point) 'org-appt-warntime) extra nil) @@ -5628,7 +5689,7 @@ please use `org-class' instead." 1 11)))) (org-agenda-search-headline-for-time nil) marker hdmarker priority category category-pos tags closedp - statep clockp state ee txt extra timestr rest clocked) + statep clockp state ee txt extra timestr rest clocked inherited-tags) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -5666,7 +5727,14 @@ please use `org-class' instead." (setq txt org-agenda-no-heading-message) (goto-char (match-beginning 0)) (setq hdmarker (org-agenda-new-marker) - tags (org-get-tags-at nil t)) + inherited-tags + (or (eq org-agenda-show-inherited-tags 'always) + (and (listp org-agenda-show-inherited-tags) + (memq 'todo org-agenda-show-inherited-tags)) + (and (eq org-agenda-show-inherited-tags t) + (or (eq org-agenda-use-tag-inheritance t) + (memq 'todo org-agenda-use-tag-inheritance)))) + tags (org-get-tags-at nil (not inherited-tags))) (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") (setq txt (match-string 1)) (when extra @@ -5944,7 +6012,7 @@ FRACTION is what fraction of the head-warning time has passed." deadline-results)) d2 diff pos pos1 category category-pos tags donep ee txt head pastschedp todo-state face timestr s habitp show-all - did-habit-check-p warntime) + did-habit-check-p warntime inherited-tags) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -6006,7 +6074,14 @@ FRACTION is what fraction of the head-warning time has passed." pastschedp)) (setq mm (assoc pos1 deadline-position-alist))) (throw :skip nil))) - (setq tags (org-get-tags-at nil t)) + (setq inherited-tags + (or (eq org-agenda-show-inherited-tags 'always) + (and (listp org-agenda-show-inherited-tags) + (memq 'agenda org-agenda-show-inherited-tags)) + (and (eq org-agenda-show-inherited-tags t) + (or (eq org-agenda-use-tag-inheritance t) + (memq 'agenda org-agenda-use-tag-inheritance)))) + tags (org-get-tags-at nil (not inherited-tags))) (setq head (buffer-substring-no-properties (point) (progn (skip-chars-forward "^\r\n") (point)))) @@ -6061,7 +6136,7 @@ FRACTION is what fraction of the head-warning time has passed." (regexp org-tr-regexp) (d0 (calendar-absolute-from-gregorian date)) marker hdmarker ee txt d1 d2 s1 s2 category category-pos - todo-state tags pos head donep) + todo-state tags pos head donep inherited-tags) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -6087,8 +6162,15 @@ FRACTION is what fraction of the head-warning time has passed." (if (not (re-search-backward org-outline-regexp-bol nil t)) (setq txt org-agenda-no-heading-message) (goto-char (match-beginning 0)) - (setq hdmarker (org-agenda-new-marker (point))) - (setq tags (org-get-tags-at nil t)) + (setq hdmarker (org-agenda-new-marker (point)) + inherited-tags + (or (eq org-agenda-show-inherited-tags 'always) + (and (listp org-agenda-show-inherited-tags) + (memq 'agenda org-agenda-show-inherited-tags)) + (and (eq org-agenda-show-inherited-tags t) + (or (eq org-agenda-use-tag-inheritance t) + (memq 'agenda org-agenda-use-tag-inheritance)))) + tags (org-get-tags-at nil (not inherited-tags))) (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") (setq head (match-string 1)) (let ((remove-re @@ -7702,7 +7784,7 @@ When called with a prefix argument, include all archive files as well." ""))) (force-mode-line-update)) -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-agenda-post-command-hook 'org-agenda-update-agenda-type "24.3") (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 this template to be accessible only from `message-mode' buffers, use this: - '((\"c\" (in-mode . \"message-mode\"))) + '((\"c\" ((in-mode . \"message-mode\")))) Here are the available contexts definitions: @@ -467,11 +467,11 @@ accessible if there is at least one valid check. You can also bind a key to another agenda custom command depending on contextual rules. - '((\"c\" \"d\" (in-mode . \"message-mode\"))) + '((\"c\" \"d\" ((in-mode . \"message-mode\")))) -Here it means: in `message-mode buffers', use \"d\" as the +Here it means: in `message-mode buffers', use \"c\" as the key for the capture template otherwise associated with \"d\". -\(The template originally associated with \"q\" is not displayed +\(The template originally associated with \"d\" is not displayed to avoid duplicates.)" :version "24.3" :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" (const :tag "Standard beep" t) (file :tag "Play sound file"))) -(org-define-obsolete-variable-alias 'org-clock-modeline-total +(define-obsolete-variable-alias 'org-clock-modeline-total 'org-clock-mode-line-total "24.3") (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." (set-buffer-modified-p modified-p)) (decompose-region beg end))) -(defmacro org-define-obsolete-function-alias (o-name c-name when &optional doc) - "Reconcile the two-argument form of -`define-obsolete-function-alias' in XEmacs/Emacs 22 with the 3-4 -argument form in Emacs 23 and later." - (if (or (featurep 'xemacs) - (< emacs-major-version 23)) - `(define-obsolete-function-alias ,o-name ,c-name) - `(define-obsolete-function-alias ,o-name ,c-name ,when ,doc))) - -(defmacro org-define-obsolete-variable-alias (o-name c-name when &optional doc) - "Reconcile the two-argument form of -`define-obsolete-variable-alias' in XEmacs/Emacs 22 with the 3-4 -argument form in Emacs 23 and later." - (if (or (featurep 'xemacs) - (< emacs-major-version 23)) - `(define-obsolete-variable-alias ,o-name ,c-name) - `(define-obsolete-variable-alias ,o-name ,c-name ,when ,doc))) - ;; Miscellaneous functions (defun org-add-hook (hook function &optional append local) @@ -463,16 +445,6 @@ With two arguments, return floor and remainder of their quotient." 'pop-to-buffer-same-window buffer-or-name norecord) (funcall 'switch-to-buffer buffer-or-name norecord))) -;; `condition-case-unless-debug' has been introduced in Emacs 24.1 -;; `condition-case-no-debug' has been introduced in Emacs 23.1 -(defmacro org-condition-case-unless-debug (var bodyform &rest handlers) - (declare (debug condition-case) (indent 2)) - (or (and (fboundp 'condition-case-unless-debug) - `(condition-case-unless-debug ,var ,bodyform ,@handlers)) - (and (fboundp 'condition-case-no-debug) - `(condition-case-no-debug ,var ,bodyform ,@handlers)) - `(condition-case ,var ,bodyform ,@handlers))) - ;; RECURSIVE has been introduced with Emacs 23.2. ;; This is copying and adapted from `tramp-compat-delete-directory' (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 @@ :tag "Org ID" :group 'org) -(org-define-obsolete-variable-alias +(define-obsolete-variable-alias 'org-link-to-org-use-id 'org-id-link-to-org-use-id "24.3") (defcustom org-id-link-to-org-use-id nil "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." (org-lparse-end-paragraph) (org-lparse-end-list-item (or type "u"))) -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-lparse-preprocess-after-blockquote-hook 'org-lparse-preprocess-after-blockquote "24.3") @@ -1736,7 +1736,7 @@ information." (format "ORG-%s-END %s" (upcase (match-string 2)) (match-string 3))) t t)))) -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-lparse-strip-experimental-blocks-maybe-hook 'org-lparse-strip-experimental-blocks-maybe "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." (delete-region (point) (point-at-eol))) ((get-text-property (point) 'org-agenda-structural-header) (setq in-date nil) - (setq app (get-text-property (point) - 'org-agenda-title-append)) - (setq short (get-text-property (point) - 'short-heading)) + (setq app (get-text-property (point) 'org-agenda-title-append)) + (setq short (get-text-property (point) 'short-heading)) (when (and short (looking-at ".+")) - (replace-match short) + (replace-match short nil t) (beginning-of-line 1)) (when app (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'." xml-files)) ;; delete temporary directory. (org-delete-directory org-odt-zip-dir t))))) - (org-condition-case-unless-debug err + (condition-case err (prog1 (progn ,@body) (funcall --cleanup-xml-buffers)) ((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 @@ (filename &optional up)) (declare-function server-edit "server" (&optional arg)) -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-protocol-unhex-compound 'org-link-unescape-compound "2011-02-17") -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-protocol-unhex-string 'org-link-unescape "2011-02-17") -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-protocol-unhex-single-byte-sequence 'org-link-unescape-single-byte-sequence "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 @@ (defun org-release () "The release version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-release "7.9.3+")) + (let ((org-release "7.9.3d")) org-release)) ;;;###autoload (defun org-git-version () "The Git version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-git-version "7.9.3+-GNU-Emacs-24-3 (commit 4cac75153)")) + (let ((org-git-version "7.9.3d-GNU-Emacs-24-3 (commit e8f5b0ad)")) org-git-version)) ;;;###autoload (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." ((< change 0) (max 1 (1+ (* 2 (/ (+ level (* 2 change)) 2)))))) (max 1 (+ level (or change 0))))) -(org-define-obsolete-function-alias 'org-get-legal-level 'org-get-valid-level "23.1") +(if (boundp 'define-obsolete-function-alias) + (if (or (featurep 'xemacs) (< emacs-major-version 23)) + (define-obsolete-function-alias 'org-get-legal-level + 'org-get-valid-level) + (define-obsolete-function-alias 'org-get-legal-level + 'org-get-valid-level "23.1"))) (defvar org-called-with-limited-levels nil) ;; Dynamically bound in ;; ̀org-with-limited-levels' @@ -9684,12 +9689,14 @@ application the system uses for this file type." "[ \t]:[^ \t\n]+:[ \t]*$"))) (not (get-text-property (point) 'org-linked-text))) (or (let* ((lkall (org-offer-links-in-entry (current-buffer) (point) arg)) - (lk (car lkall)) + (lk0 (car lkall)) + (lk (if (stringp lk0) (list lk0) lk0)) (lkend (cdr lkall))) - (when lk - (prog1 (search-forward lk nil lkend) - (goto-char (match-beginning 0)) - (org-open-at-point)))) + (mapcar (lambda(l) + (search-forward l nil lkend) + (goto-char (match-beginning 0)) + (org-open-at-point)) + lk)) (progn (require 'org-attach) (org-attach-reveal 'if-exists)))) ((run-hook-with-args-until-success 'org-open-at-point-functions)) ((and (org-at-timestamp-p t) @@ -13524,7 +13531,10 @@ ignore inherited ones." (error nil))))) (if local tags - (append (org-remove-uninherited-tags org-file-tags) tags)))))) + (reverse (delete-dups + (reverse (append + (org-remove-uninherited-tags + org-file-tags) tags))))))))) (defun org-add-prop-inherited (s) (add-text-properties 0 (length s) '(inherited t) s) @@ -17798,7 +17808,7 @@ BEG and END default to the buffer boundaries." (list 'org-display-inline-remove-overlay)) (push ov org-inline-image-overlays))))))))) -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-display-inline-modification-hook 'org-display-inline-remove-overlay "24.3") (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." (defvar org-table-auto-blank-field) ; defined in org-table.el (defvar org-speed-command nil) -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-speed-command-default-hook 'org-speed-command-activate "24.3") (defun org-speed-command-activate (keys) @@ -18191,7 +18201,7 @@ Use `org-speed-commands-user' for further customization." (cdr (assoc keys (append org-speed-commands-user org-speed-commands-default))))) -(org-define-obsolete-function-alias +(define-obsolete-function-alias 'org-babel-speed-command-hook 'org-babel-speed-command-activate "24.3") (defun org-babel-speed-command-activate (keys) @@ -19026,14 +19036,13 @@ Otherwise, return a user error." (beginning-of-line 1) (looking-at "\\(?:#\\+\\(?:setupfile\\|include\\):?[ \t]+\"?\\|[ \t]*.*?file=\"\\)\\([^\"\n>]+\\)")) (find-file (org-trim (match-string 1)))) + ((org-at-table.el-p) (org-edit-src-code)) ((or (org-at-table-p) (save-excursion (beginning-of-line 1) (let ((case-fold-search )) (looking-at "[ \t]*#\\+tblfm:")))) (call-interactively 'org-table-edit-formulas)) - ((or (org-in-block-p '("src" "example" "latex" "html")) - (org-at-table.el-p)) - (org-edit-src-code)) + ((org-in-block-p '("src" "example" "latex" "html")) (org-edit-src-code)) ((org-in-fixed-width-region-p) (org-edit-fixed-width-region)) ((org-at-regexp-p org-any-link-re) (call-interactively 'ffap)) (t (user-error "No special environment to edit here")))) From b826986f36c63534c0705b99e3604193518c080b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 13 Jan 2013 15:29:22 +0100 Subject: [PATCH 09/10] * nsfont.m (LCD_SMOOTHING_MARGIN): New define. (nsfont_draw): Remove disabling of LCD smoothing. (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix Bug#11484 with LCD smooting on. --- src/ChangeLog | 7 +++++++ src/nsfont.m | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index dbba6322423..18eb69c9f69 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2013-01-13 Jan Djärv + + * nsfont.m (LCD_SMOOTHING_MARGIN): New define. + (nsfont_draw): Remove disabling of LCD smoothing. + (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix + Bug#11484 with LCD smooting on. + 2013-01-11 Rainer Orth (tiny change) * gtkutil.c (xg_initialize): Backport from trunk. diff --git a/src/nsfont.m b/src/nsfont.m index 9dd80b28b9f..207b6a40483 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -44,6 +44,7 @@ #endif #define NSFONT_TRACE 0 +#define LCD_SMOOTHING_MARGIN 2 extern Lisp_Object Qns; extern Lisp_Object Qnormal, Qbold, Qitalic, Qcondensed, Qexpanded; @@ -1235,7 +1236,6 @@ is false when (FROM > 0 || TO < S->nchars). */ else CGContextSetShouldAntialias (gcontext, 1); - CGContextSetShouldSmoothFonts (gcontext, NO); CGContextSetTextMatrix (gcontext, fliptf); if (bgCol != nil) @@ -1401,11 +1401,12 @@ is false when (FROM > 0 || TO < S->nchars). */ lb = r.origin.x; rb = r.size.width - w; + // Add to bearing for LCD smoothing. We don't know if it is there. if (lb < 0) - metrics->lbearing = round (lb); + metrics->lbearing = round (lb - LCD_SMOOTHING_MARGIN); if (font_info->ital) rb += 0.22 * font_info->height; - metrics->rbearing = lrint (w + rb); + metrics->rbearing = lrint (w + rb + LCD_SMOOTHING_MARGIN); metrics->descent = r.origin.y < 0 ? -r.origin.y : 0; /*lrint (hshrink * [sfont ascender] + expand * hd/2); */ From 2e7a1892492d450d1fdf52cc704dd8f5d3a9cb18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 13 Jan 2013 20:36:05 +0100 Subject: [PATCH 10/10] Fix spelling error. --- src/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 18eb69c9f69..a673c5f6123 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -3,7 +3,7 @@ * nsfont.m (LCD_SMOOTHING_MARGIN): New define. (nsfont_draw): Remove disabling of LCD smoothing. (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix - Bug#11484 with LCD smooting on. + Bug#11484 with LCD smoothing on. 2013-01-11 Rainer Orth (tiny change)