Now on revision 111517. ------------------------------------------------------------ revno: 111517 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-01-13 17:09:38 -0800 message: Remove compilation-error-regexp-alist-alist (presumed) extraneous backslash diff: === modified file 'lisp/progmodes/compile.el' --- lisp/progmodes/compile.el 2013-01-14 01:08:13 +0000 +++ lisp/progmodes/compile.el 2013-01-14 01:09:38 +0000 @@ -266,7 +266,7 @@ \\|[.:]\\(?3:[0-9]+\\)\\(?:-\\(?:\\(?4:[0-9]+\\)\\.\\)?\\(?5:[0-9]+\\)\\)?\\)?:\ \\(?: *\\(\\(?:Future\\|Runtime\\)?[Ww]arning\\|W:\\)\\|\ *\\([Ii]nfo\\(?:\\>\\|rmationa?l?\\)\\|I:\\|instantiated from\\|[Nn]ote\\)\\|\ - *[Ee]rror\\|\[0-9]?\\(?:[^0-9\n]\\|$\\)\\|[0-9][0-9][0-9]\\)" + *[Ee]rror\\|[0-9]?\\(?:[^0-9\n]\\|$\\)\\|[0-9][0-9][0-9]\\)" 1 (2 . 4) (3 . 5) (6 . 7)) (lcc ------------------------------------------------------------ revno: 111516 fixes bug: http://debbugs.gnu.org/13335 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-01-13 17:08:13 -0800 message: Fix interpretation of gnu line.col1-col2 error message format * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): * test/automated/compile-tests.el (compile-tests--test-regexps-data): Fix interpretation of gnu line.col1-col2 format. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-01-13 20:03:01 +0000 +++ lisp/ChangeLog 2013-01-14 01:08:13 +0000 @@ -1,3 +1,8 @@ +2013-01-14 Glenn Morris + + * progmodes/compile.el (compilation-error-regexp-alist-alist): + Fix interpretation of gnu line.col1-col2 format. (Bug#13335) + 2013-01-13 Fabián Ezequiel Gallina * progmodes/python.el (python-nav-end-of-statement): Fix === modified file 'lisp/progmodes/compile.el' --- lisp/progmodes/compile.el 2013-01-11 23:08:55 +0000 +++ lisp/progmodes/compile.el 2013-01-14 01:08:13 +0000 @@ -134,6 +134,7 @@ ;; If you make any changes to `compilation-error-regexp-alist-alist', ;; be sure to run the ERT test in test/automated/compile-tests.el. +;; emacs -batch -l compile-tests.el -f ert-run-tests-batch-and-exit (defvar compilation-error-regexp-alist-alist '((absoft @@ -261,8 +262,8 @@ ;; The "in \\|from " exception was added to handle messages from Ruby. "^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\|[ \t]+\\(?:in \\|from \\)\\)?\ \\([0-9]*[^0-9\n]\\(?:[^\n :]\\| [^-/\n]\\|:[^ \n]\\)*?\\): ?\ -\\([0-9]+\\)\\(?:[.:]\\([0-9]+\\)\\)?\ -\\(?:-\\([0-9]+\\)?\\(?:\\.\\([0-9]+\\)\\)?\\)?:\ +\\([0-9]+\\)\\(?:-\\(?4:[0-9]+\\)\\(?:\\.\\(?5:[0-9]+\\)\\)?\ +\\|[.:]\\(?3:[0-9]+\\)\\(?:-\\(?:\\(?4:[0-9]+\\)\\.\\)?\\(?5:[0-9]+\\)\\)?\\)?:\ \\(?: *\\(\\(?:Future\\|Runtime\\)?[Ww]arning\\|W:\\)\\|\ *\\([Ii]nfo\\(?:\\>\\|rmationa?l?\\)\\|I:\\|instantiated from\\|[Nn]ote\\)\\|\ *[Ee]rror\\|\[0-9]?\\(?:[^0-9\n]\\|$\\)\\|[0-9][0-9][0-9]\\)" === modified file 'test/ChangeLog' --- test/ChangeLog 2013-01-10 15:01:35 +0000 +++ test/ChangeLog 2013-01-14 01:08:13 +0000 @@ -1,3 +1,8 @@ +2013-01-14 Glenn Morris + + * automated/compile-tests.el (compile-tests--test-regexps-data): + Fix interpretation of gnu line.col1-col2 format. (Bug#13335) + 2013-01-10 Wolfgang Jenkner * automated/man-tests.el: New file. === modified file 'test/automated/compile-tests.el' --- test/automated/compile-tests.el 2013-01-01 09:11:05 +0000 +++ test/automated/compile-tests.el 2013-01-14 01:08:13 +0000 @@ -176,8 +176,10 @@ ("foo.c:8.23: note: message" 1 23 8 "foo.c") ("foo.c:8.23: info: message" 1 23 8 "foo.c") ("foo.c:8:23:information: message" 1 23 8 "foo.c") - ("foo.c:8.23-45: Informational: message" 1 (23 . nil) (8 . 45) "foo.c") + ("foo.c:8.23-45: Informational: message" 1 (23 . 46) (8 . nil) "foo.c") ("foo.c:8-23: message" 1 nil (8 . 23) "foo.c") + ;; The next one is not in the GNU standards AFAICS. + ;; Here we seem to interpret it as LINE1-LINE2.COL2. ("foo.c:8-45.3: message" 1 (nil . 4) (8 . 45) "foo.c") ("foo.c:8.23-9.1: message" 1 (23 . 2) (8 . 9) "foo.c") ("jade:dbcommon.dsl:133:17:E: missing argument for function call" ------------------------------------------------------------ revno: 111515 committer: Romain Francoise branch nick: trunk timestamp: Sun 2013-01-13 22:26:10 +0100 message: Delete merge marker. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-01-13 19:46:27 +0000 +++ lisp/gnus/ChangeLog 2013-01-13 21:26:10 +0000 @@ -43,7 +43,6 @@ (mml-smime-epg-find-usable-secret-key): New helper function copied from mml2015.el. ->>>>>>> MERGE-SOURCE 2012-12-31 Lars Magne Ingebrigtsen * gnus-msg.el (gnus-inews-insert-gcc): Don't insert Gcc headers if Gnus ------------------------------------------------------------ revno: 111514 [merge] committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-01-13 12:03:01 -0800 message: Merge from emacs-24; up to r111176 diff: === modified file 'ChangeLog' --- ChangeLog 2013-01-12 05:21:06 +0000 +++ ChangeLog 2013-01-13 20:03:01 +0000 @@ -1,3 +1,7 @@ +2013-01-13 Glenn Morris + + * make-dist: Add options for xz compression and no compression. + 2013-01-12 Paul Eggert Enable conservative stack scanning for all architectures. === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-01-10 07:34:48 +0000 +++ doc/misc/ChangeLog 2013-01-13 20:03:01 +0000 @@ -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-10 Michael Albinus * tramp.texi (Default Host): Introduce `tramp-default-host-alist'. === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2013-01-09 08:30:21 +0000 +++ doc/misc/org.texi 2013-01-13 20:03:01 +0000 @@ -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 @@ 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 @@ @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 @@ @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: - -@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. -@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. - -@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 - -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: - -@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 - -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}: +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 By using Emacs package system. +@item By downloading Org as an archive. +@item By using Org's git repository. +@end itemize + +We @b{strongly recommend} to stick to a single installation method. + +@subsubheading Using Emacs packaging system + +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}. + +@subsubheading Downloading Org as an archive + +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}. - -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: - -@example -This is not dpkg install-info anymore, but GNU install-info -See the man page for ginstall-info for command line arguments -@end example - -@noindent which can be safely ignored.} -on your system). - -@example -make install-info -@end example - -Do not forget to activate Org as described in the following section. -@page +Optionally, you can compile the files and/or install them in your system. +Run @code{make help} to list compilation and installation options. + +@subsubheading Using Org's git repository + +You can clone Org's repository and install Org like this: + +@example +$ cd ~/src/ +$ git clone git://orgmode.org/org-mode.git +$ make autoloads +@end example + +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}. + +Remember to add the correct load-path as described in the method above. + +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 @@ 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 === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-01-13 19:48:04 +0000 +++ lisp/ChangeLog 2013-01-13 20:03:01 +0000 @@ -1,3 +1,8 @@ +2013-01-13 Fabián Ezequiel Gallina + + * progmodes/python.el (python-nav-end-of-statement): Fix + cornercase when handling multiline strings. + 2013-01-13 Richard Stallman * mail/sendmail.el (mail-position-on-field): Add doc string. === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2013-01-09 08:30:21 +0000 +++ lisp/org/ChangeLog 2013-01-13 20:03:01 +0000 @@ -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-09 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 === modified file 'lisp/org/ob-eval.el' --- lisp/org/ob-eval.el 2013-01-09 08:30:21 +0000 +++ lisp/org/ob-eval.el 2013-01-13 20:03:01 +0000 @@ -137,11 +137,17 @@ 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 === modified file 'lisp/org/org-agenda.el' --- lisp/org/org-agenda.el 2013-01-08 18:49:37 +0000 +++ lisp/org/org-agenda.el 2013-01-13 10:33:16 +0000 @@ -890,7 +890,7 @@ :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 @@ :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 @@ (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. - -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." +`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. + +Allowed value are 'todo, 'search, 'timeline and 'agenda. + +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 :version "24.3" - :group 'org-agenda - :type '(repeat (symbol :tag "Agenda type"))) + :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 @@ 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 @@ 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 @@ (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 @@ '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 @@ (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 @@ (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 @@ "\\|") "\\)")) (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 @@ 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 @@ "\\|\\(<%%\\(([^>\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 @@ (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 @@ (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 @@ (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 @@ 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 @@ (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 @@ 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 @@ 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 @@ (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 @@ (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 @@ ""))) (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 () === modified file 'lisp/org/org-capture.el' --- lisp/org/org-capture.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org-capture.el 2013-01-13 10:33:16 +0000 @@ -451,7 +451,7 @@ 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 @@ 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 === modified file 'lisp/org/org-clock.el' --- lisp/org/org-clock.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org-clock.el 2013-01-13 10:33:16 +0000 @@ -205,7 +205,7 @@ (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 === modified file 'lisp/org/org-compat.el' --- lisp/org/org-compat.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org-compat.el 2013-01-13 10:33:16 +0000 @@ -169,24 +169,6 @@ (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 @@ '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) === modified file 'lisp/org/org-id.el' --- lisp/org/org-id.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org-id.el 2013-01-13 10:33:16 +0000 @@ -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. === modified file 'lisp/org/org-lparse.el' --- lisp/org/org-lparse.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org-lparse.el 2013-01-13 10:33:16 +0000 @@ -1718,7 +1718,7 @@ (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 @@ (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") === modified file 'lisp/org/org-mobile.el' --- lisp/org/org-mobile.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org-mobile.el 2013-01-13 10:33:16 +0000 @@ -620,12 +620,10 @@ (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) === modified file 'lisp/org/org-odt.el' --- lisp/org/org-odt.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org-odt.el 2013-01-13 10:33:16 +0000 @@ -447,7 +447,7 @@ 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) === modified file 'lisp/org/org-protocol.el' --- lisp/org/org-protocol.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org-protocol.el 2013-01-13 10:33:16 +0000 @@ -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") === modified file 'lisp/org/org-version.el' --- lisp/org/org-version.el 2013-01-08 18:49:37 +0000 +++ lisp/org/org-version.el 2013-01-13 10:33:16 +0000 @@ -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" === modified file 'lisp/org/org.el' --- lisp/org/org.el 2013-01-08 14:27:18 +0000 +++ lisp/org/org.el 2013-01-13 10:33:16 +0000 @@ -7402,7 +7402,12 @@ ((< 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 @@ "[ \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 @@ (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 @@ (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 @@ (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 @@ (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 @@ (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")))) === modified file 'lisp/progmodes/python.el' --- lisp/progmodes/python.el 2013-01-02 16:13:04 +0000 +++ lisp/progmodes/python.el 2013-01-13 20:03:01 +0000 @@ -1198,7 +1198,16 @@ (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. @@ -1312,7 +1321,7 @@ "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 === modified file 'make-dist' --- make-dist 2013-01-01 09:11:05 +0000 +++ make-dist 2013-01-10 04:00:02 +0000 @@ -87,6 +87,13 @@ "--lzma") default_gzip="lzma" ;; + ## Same with xz. + "--xz") + default_gzip="xz" + ;; + "--no-compress") + default_gzip="cat" + ;; "--snapshot") clean_up=yes @@ -101,6 +108,8 @@ 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 @@ 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 === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-13 19:58:02 +0000 +++ src/ChangeLog 2013-01-13 20:03:01 +0000 @@ -1,3 +1,16 @@ +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 smoothing on. + +2013-01-13 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-11 Jan Djärv * xterm.c (syms_of_xterm): Adjust documentation for === modified file 'src/emacs.c' --- src/emacs.c 2013-01-02 16:13:04 +0000 +++ src/emacs.c 2013-01-13 20:03:01 +0000 @@ -344,25 +344,6 @@ /* 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. */ === modified file 'src/nsfont.m' --- src/nsfont.m 2013-01-13 12:05:17 +0000 +++ src/nsfont.m 2013-01-13 20:03:01 +0000 @@ -44,6 +44,7 @@ #endif #define NSFONT_TRACE 0 +#define LCD_SMOOTHING_MARGIN 2 extern Lisp_Object Qns; extern Lisp_Object Qnormal, Qbold, Qitalic; @@ -1247,7 +1248,6 @@ else CGContextSetShouldAntialias (gcontext, 1); - CGContextSetShouldSmoothFonts (gcontext, NO); CGContextSetTextMatrix (gcontext, fliptf); if (bgCol != nil) @@ -1414,11 +1414,12 @@ 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); */ === modified file 'src/sysdep.c' --- src/sysdep.c 2013-01-11 02:40:58 +0000 +++ src/sysdep.c 2013-01-13 20:03:01 +0000 @@ -1678,6 +1678,25 @@ 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 ------------------------------------------------------------ revno: 111513 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-01-13 11:58:02 -0800 message: ChangeLog whitespace trivia diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-11 05:10:11 +0000 +++ src/ChangeLog 2013-01-13 19:58:02 +0000 @@ -3,7 +3,7 @@ * xterm.c (syms_of_xterm): Adjust documentation for scroll-bar-adjust-thumb-portion. -2012-12-31 Adam Sjøgren (tiny change) +2012-12-31 Adam Sjøgren (tiny change) * xterm.c (scroll-bar-adjust-thumb-portion): New variable to determine whether scroll bar thumb size should be adjusted or @@ -73,7 +73,7 @@ (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY. This is the main part of the bug fix. -2013-01-10 Rainer Orth (tiny change) +2013-01-10 Rainer Orth (tiny change) * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around x_last_font_name (Bug#13403). @@ -1785,7 +1785,7 @@ * image.c (xpm_make_color_table_h): Fix compiler error because make_hash_table changed. -2012-11-08 Thomas Kappler (tiny change) +2012-11-08 Thomas Kappler (tiny change) * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541). ------------------------------------------------------------ revno: 111512 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-01-13 11:55:51 -0800 message: NEWS placeholder for scroll-bar-adjust-thumb-portion diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-01-13 01:23:48 +0000 +++ etc/NEWS 2013-01-13 19:55:51 +0000 @@ -58,6 +58,8 @@ libacl. On MS-Windows, the NT Security APIs are used to emulate the POSIX ACL interfaces. +** New option `scroll-bar-adjust-thumb-portion'. + * Editing Changes in Emacs 24.4 ** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', ------------------------------------------------------------ revno: 111511 committer: Richard Stallman branch nick: trunk timestamp: Sun 2013-01-13 14:48:04 -0500 message: Doc fix. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-01-13 19:46:27 +0000 +++ lisp/ChangeLog 2013-01-13 19:48:04 +0000 @@ -1,5 +1,7 @@ 2013-01-13 Richard Stallman + * mail/sendmail.el (mail-position-on-field): Add doc string. + * mail/rmailmm.el (rmail-insert-mime-forwarded-message): Get current message boundaries and pass them to message-forward-make-body-mime. Minor style changes. === modified file 'lisp/mail/sendmail.el' --- lisp/mail/sendmail.el 2013-01-01 09:11:05 +0000 +++ lisp/mail/sendmail.el 2013-01-13 19:48:04 +0000 @@ -1493,6 +1493,9 @@ (insert "\nMail-Followup-To: ")))) (defun mail-position-on-field (field &optional soft) + "Move to the start of the contents of header field FIELD. +If there is none, insert one, unless SOFT is non-nil. +If there are multiple FIELD fields, this goes to the first." (let (end (case-fold-search t)) (setq end (mail-header-end)) ------------------------------------------------------------ revno: 111510 committer: Richard Stallman branch nick: trunk timestamp: Sun 2013-01-13 14:46:27 -0500 message: Fix bug that f in Rmail, in some situations, would insert entire Rmail file. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-01-13 17:47:45 +0000 +++ lisp/ChangeLog 2013-01-13 19:46:27 +0000 @@ -1,3 +1,9 @@ +2013-01-13 Richard Stallman + + * mail/rmailmm.el (rmail-insert-mime-forwarded-message): Get + current message boundaries and pass them to + message-forward-make-body-mime. Minor style changes. + 2013-01-13 Eli Zaretskii * cus-start.el (all): Avoid warnings about === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-01-11 23:08:55 +0000 +++ lisp/gnus/ChangeLog 2013-01-13 19:46:27 +0000 @@ -1,3 +1,9 @@ +2013-01-13 Richard Stallman + + * message.el (message-forward-make-body-mime): New args BEG, END + specify what part of FORWARD-BUFFER to use. Do the work directly + instead of calling `mml-insert-buffer'. + 2013-01-11 Aaron S. Hawley * gnus-start.el (gnus-check-new-newsgroups): Fix ambiguous doc string @@ -37,6 +43,7 @@ (mml-smime-epg-find-usable-secret-key): New helper function copied from mml2015.el. +>>>>>>> MERGE-SOURCE 2012-12-31 Lars Magne Ingebrigtsen * gnus-msg.el (gnus-inews-insert-gcc): Don't insert Gcc headers if Gnus === modified file 'lisp/gnus/message.el' --- lisp/gnus/message.el 2013-01-02 16:13:04 +0000 +++ lisp/gnus/message.el 2013-01-13 19:46:27 +0000 @@ -7376,12 +7376,13 @@ (dolist (elem ignored) (message-remove-header elem t)))))) -(defun message-forward-make-body-mime (forward-buffer) +(defun message-forward-make-body-mime (forward-buffer &optional beg end) (let ((b (point))) (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n") (save-restriction (narrow-to-region (point) (point)) - (mml-insert-buffer forward-buffer) + (insert-buffer-substring forward-buffer beg end) + (mml-quote-region (point-min) (point-max)) (goto-char (point-min)) (when (looking-at "From ") (replace-match "X-From-Line: ")) === modified file 'lisp/mail/rmailmm.el' --- lisp/mail/rmailmm.el 2013-01-01 09:11:05 +0000 +++ lisp/mail/rmailmm.el 2013-01-13 19:46:27 +0000 @@ -1365,14 +1365,15 @@ (defun rmail-insert-mime-forwarded-message (forward-buffer) "Insert the message in FORWARD-BUFFER as a forwarded message. This is the usual value of `rmail-insert-mime-forwarded-message-function'." - (let ((message-buffer - (with-current-buffer forward-buffer - (if rmail-buffer-swapped - rmail-view-buffer - forward-buffer)))) - (save-restriction - (narrow-to-region (point) (point)) - (message-forward-make-body-mime message-buffer)))) + (let (contents-buffer start end) + (with-current-buffer forward-buffer + (setq contents-buffer + (if rmail-buffer-swapped + rmail-view-buffer + forward-buffer) + start (rmail-msgbeg rmail-current-message) + end (rmail-msgend rmail-current-message))) + (message-forward-make-body-mime contents-buffer start end))) (setq rmail-insert-mime-forwarded-message-function 'rmail-insert-mime-forwarded-message) ------------------------------------------------------------ revno: 111509 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2013-01-13 19:47:45 +0200 message: Avoid warnings from cus-start.el regarding scroll-bar-adjust-thumb-portion. lisp/cus-start.el (all): Avoid warnings about scroll-bar-adjust-thumb-portion on platforms where it is not defined. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-01-11 05:09:30 +0000 +++ lisp/ChangeLog 2013-01-13 17:47:45 +0000 @@ -1,3 +1,9 @@ +2013-01-13 Eli Zaretskii + + * cus-start.el (all): Avoid warnings about + scroll-bar-adjust-thumb-portion on platforms where it is not + defined. + 2013-01-11 Jan Djärv * cus-start.el (all): Add scroll-bar-adjust-thumb-portion. === modified file 'lisp/cus-start.el' --- lisp/cus-start.el 2013-01-11 05:09:30 +0000 +++ lisp/cus-start.el 2013-01-13 17:47:45 +0000 @@ -576,6 +576,9 @@ (symbol-name symbol)) ;; Any function from fontset.c will do. (fboundp 'new-fontset)) + ((equal "scroll-bar-adjust-thumb-portion" + (symbol-name symbol)) + (featurep 'x)) (t t)))) (if (not (boundp symbol)) ;; If variables are removed from C code, give an error here! ------------------------------------------------------------ revno: 111508 committer: Jan D. branch nick: trunk timestamp: Fri 2013-01-11 06:10:11 +0100 message: Add tiny change. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-11 05:09:30 +0000 +++ src/ChangeLog 2013-01-11 05:10:11 +0000 @@ -3,7 +3,7 @@ * xterm.c (syms_of_xterm): Adjust documentation for scroll-bar-adjust-thumb-portion. -2012-12-31 Adam Sjøgren +2012-12-31 Adam Sjøgren (tiny change) * xterm.c (scroll-bar-adjust-thumb-portion): New variable to determine whether scroll bar thumb size should be adjusted or ------------------------------------------------------------ revno: 111507 committer: Jan D. branch nick: trunk timestamp: Fri 2013-01-11 06:09:30 +0100 message: Make scroll-bar-adjust-thumb-portion customizable, adjust documentation. * lisp/cus-start.el (all): Add scroll-bar-adjust-thumb-portion. * src/xterm.c (syms_of_xterm): Adjust documentation for scroll-bar-adjust-thumb-portion. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-01-13 01:23:48 +0000 +++ lisp/ChangeLog 2013-01-11 05:09:30 +0000 @@ -1,3 +1,7 @@ +2013-01-11 Jan Djärv + + * cus-start.el (all): Add scroll-bar-adjust-thumb-portion. + 2013-01-13 Stefan Monnier * jit-lock.el (jit-lock-debug-mode): New minor mode. === modified file 'lisp/cus-start.el' --- lisp/cus-start.el 2013-01-10 10:30:16 +0000 +++ lisp/cus-start.el 2013-01-11 05:09:30 +0000 @@ -513,6 +513,7 @@ (x-use-underline-position-properties display boolean "22.1") (x-underline-at-descent-line display boolean "22.1") (x-stretch-cursor display boolean "21.1") + (scroll-bar-adjust-thumb-portion windows boolean "24.4") ;; xselect.c (x-select-enable-clipboard-manager killing boolean "24.1") ;; xsettings.c === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-11 04:57:45 +0000 +++ src/ChangeLog 2013-01-11 05:09:30 +0000 @@ -1,3 +1,8 @@ +2013-01-11 Jan Djärv + + * xterm.c (syms_of_xterm): Adjust documentation for + scroll-bar-adjust-thumb-portion. + 2012-12-31 Adam Sjøgren * xterm.c (scroll-bar-adjust-thumb-portion): New variable to === modified file 'src/xterm.c' --- src/xterm.c 2013-01-11 04:57:45 +0000 +++ src/xterm.c 2013-01-11 05:09:30 +0000 @@ -10789,10 +10789,12 @@ DEFVAR_BOOL ("scroll-bar-adjust-thumb-portion", scroll_bar_adjust_thumb_portion_p, - doc: /* Non-nil means adjust the thumb in the -scroll bar to be less likely to resize which looks better. -Set to nil if you want the thumb to fill the whole scroll bar -when the entire buffer is visible. */); + doc: /* Adjust thumb for overscrolling for Gtk+ and MOTIF. +Non-nil means adjust the thumb in the scroll bar so it can be dragged downwards +even if the end of the buffer is shown (i.e. overscrolling). +Set to nil if you want the thumb to be at the bottom when the end of the buffer +is shown. Also, the thumb fills the whole scroll bar when the entire buffer +is visible. In this case you can not overscroll. */); scroll_bar_adjust_thumb_portion_p = 1; staticpro (&last_mouse_motion_frame); ------------------------------------------------------------ revno: 111506 committer: Jan D. branch nick: trunk timestamp: Fri 2013-01-11 05:57:45 +0100 message: Introduce scroll-bar-adjust-thumb-portion. * xterm.c (scroll-bar-adjust-thumb-portion): New variable to determine whether scroll bar thumb size should be adjusted or not. Use variable for MOTIF. * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for GTK. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-13 12:08:31 +0000 +++ src/ChangeLog 2013-01-11 04:57:45 +0000 @@ -1,3 +1,12 @@ +2012-12-31 Adam Sjøgren + + * xterm.c (scroll-bar-adjust-thumb-portion): New variable to + determine whether scroll bar thumb size should be adjusted or + not. Use variable for MOTIF. + + * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for + GTK. + 2013-01-13 Jan Djärv * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key === modified file 'src/gtkutil.c' --- src/gtkutil.c 2013-01-10 17:45:08 +0000 +++ src/gtkutil.c 2013-01-11 04:57:45 +0000 @@ -3795,13 +3795,17 @@ adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); - /* We do the same as for MOTIF in xterm.c, assume 30 chars per line - rather than the real portion value. This makes the thumb less likely - to resize and that looks better. */ - portion = WINDOW_TOTAL_LINES (XWINDOW (bar->window)) * 30; - /* When the thumb is at the bottom, position == whole. - So we need to increase `whole' to make space for the thumb. */ - whole += portion; + if (scroll_bar_adjust_thumb_portion_p) + { + /* We do the same as for MOTIF in xterm.c, use 30 chars per + line rather than the real portion value. This makes the + thumb less likely to resize and that looks better. */ + portion = WINDOW_TOTAL_LINES (XWINDOW (bar->window)) * 30; + + /* When the thumb is at the bottom, position == whole. + So we need to increase `whole' to make space for the thumb. */ + whole += portion; + } if (whole <= 0) top = 0, shown = 1; === modified file 'src/xterm.c' --- src/xterm.c 2013-01-04 19:22:37 +0000 +++ src/xterm.c 2013-01-11 04:57:45 +0000 @@ -4802,21 +4802,24 @@ #ifdef USE_MOTIF - /* We use an estimate of 30 chars per line rather than the real - `portion' value. This has the disadvantage that the thumb size - is not very representative, but it makes our life a lot easier. - Otherwise, we have to constantly adjust the thumb size, which - we can't always do quickly enough: while dragging, the size of - the thumb might prevent the user from dragging the thumb all the - way to the end. but Motif and some versions of Xaw3d don't allow - updating the thumb size while dragging. Also, even if we can update - its size, the update will often happen too late. - If you don't believe it, check out revision 1.650 of xterm.c to see - what hoops we were going through and the still poor behavior we got. */ - portion = WINDOW_TOTAL_LINES (XWINDOW (bar->window)) * 30; - /* When the thumb is at the bottom, position == whole. - So we need to increase `whole' to make space for the thumb. */ - whole += portion; + if (scroll_bar_adjust_thumb_portion_p) + { + /* We use an estimate of 30 chars per line rather than the real + `portion' value. This has the disadvantage that the thumb size + is not very representative, but it makes our life a lot easier. + Otherwise, we have to constantly adjust the thumb size, which + we can't always do quickly enough: while dragging, the size of + the thumb might prevent the user from dragging the thumb all the + way to the end. but Motif and some versions of Xaw3d don't allow + updating the thumb size while dragging. Also, even if we can update + its size, the update will often happen too late. + If you don't believe it, check out revision 1.650 of xterm.c to see + what hoops we were going through and the still poor behavior we got. */ + portion = WINDOW_TOTAL_LINES (XWINDOW (bar->window)) * 30; + /* When the thumb is at the bottom, position == whole. + So we need to increase `whole' to make space for the thumb. */ + whole += portion; + } if (whole <= 0) top = 0, shown = 1; @@ -10784,6 +10787,14 @@ Vx_toolkit_scroll_bars = Qnil; #endif + DEFVAR_BOOL ("scroll-bar-adjust-thumb-portion", + scroll_bar_adjust_thumb_portion_p, + doc: /* Non-nil means adjust the thumb in the +scroll bar to be less likely to resize which looks better. +Set to nil if you want the thumb to fill the whole scroll bar +when the entire buffer is visible. */); + scroll_bar_adjust_thumb_portion_p = 1; + staticpro (&last_mouse_motion_frame); last_mouse_motion_frame = Qnil; ------------------------------------------------------------ revno: 111505 committer: Jan D. branch nick: trunk timestamp: Sun 2013-01-13 13:08:31 +0100 message: * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key event is generated. (doCommandBySelector:): Set processingCompose to NO. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-13 12:05:17 +0000 +++ src/ChangeLog 2013-01-13 12:08:31 +0000 @@ -1,5 +1,9 @@ 2013-01-13 Jan Djärv + * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key + event is generated. + (doCommandBySelector:): Set processingCompose to NO. + * nsfont.m (ns_findfonts): Add block/unblock_input calls. Remove check for fkeys count > zero, block/unblock fixes the real bug. (nsfont_list_family): Add block/unblock_input calls. === modified file 'src/nsterm.m' --- src/nsterm.m 2013-01-04 19:22:37 +0000 +++ src/nsterm.m 2013-01-13 12:08:31 +0000 @@ -4981,6 +4981,7 @@ emacs_event->code = code; EV_TRAILER (theEvent); + processingCompose = NO; return; } } @@ -5171,6 +5172,7 @@ if (NS_KEYLOG) NSLog (@"doCommandBySelector: %@", NSStringFromSelector (aSelector)); + processingCompose = NO; if (aSelector == @selector (deleteBackward:)) { /* happens when user backspaces over an ongoing composition: ------------------------------------------------------------ revno: 111504 committer: Jan D. branch nick: trunk timestamp: Sun 2013-01-13 13:05:17 +0100 message: * nsfont.m (ns_findfonts): Add block/unblock_input calls. Remove check for fkeys count > zero, block/unblock fixes the real bug. (nsfont_list_family): Add block/unblock_input calls. (nsfont_open): Move block_input earlier. Add unblock_input before early return. (nsfont_draw): Add block/unblock_input calls. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-12 06:15:12 +0000 +++ src/ChangeLog 2013-01-13 12:05:17 +0000 @@ -1,3 +1,12 @@ +2013-01-13 Jan Djärv + + * nsfont.m (ns_findfonts): Add block/unblock_input calls. + Remove check for fkeys count > zero, block/unblock fixes the real bug. + (nsfont_list_family): Add block/unblock_input calls. + (nsfont_open): Move block_input earlier. Add unblock_input before early + return. + (nsfont_draw): Add block/unblock_input calls. + 2013-01-12 Dmitry Antipov * indent.c (Fvertical_motion): Remove now-incorrect GCPROs === modified file 'src/nsfont.m' --- src/nsfont.m 2013-01-02 16:13:04 +0000 +++ src/nsfont.m 2013-01-13 12:05:17 +0000 @@ -546,6 +546,7 @@ NSSet *cFamilies; BOOL foundItal = NO; + block_input (); if (NSFONT_TRACE) { fprintf (stderr, "nsfont: %s for fontspec:\n ", @@ -560,10 +561,7 @@ if (isMatch) [fkeys removeObject: NSFontFamilyAttribute]; - if ([fkeys count] > 0) - matchingDescs = [fdesc matchingFontDescriptorsWithMandatoryKeys: fkeys]; - else - matchingDescs = [NSMutableArray array]; + matchingDescs = [fdesc matchingFontDescriptorsWithMandatoryKeys: fkeys]; if (NSFONT_TRACE) NSLog(@"Got desc %@ and found %d matching fonts from it: ", fdesc, @@ -598,6 +596,8 @@ [s1 release]; } + unblock_input (); + /* Return something if was a match and nothing found. */ if (isMatch) return ns_fallback_entity (); @@ -701,10 +701,12 @@ nsfont_list_family (Lisp_Object frame) { Lisp_Object list = Qnil; - NSEnumerator *families = - [[[NSFontManager sharedFontManager] availableFontFamilies] - objectEnumerator]; + NSEnumerator *families; NSString *family; + + block_input (); + families = [[[NSFontManager sharedFontManager] availableFontFamilies] + objectEnumerator]; while ((family = [families nextObject])) list = Fcons (intern ([family UTF8String]), list); /* FIXME: escape the name? */ @@ -713,6 +715,7 @@ fprintf (stderr, "nsfont: list families returning %"pI"d entries\n", XINT (Flength (list))); + unblock_input (); return list; } @@ -735,6 +738,8 @@ Lisp_Object font_object; int fixLeopardBug; + block_input (); + if (NSFONT_TRACE) { fprintf (stderr, "nsfont: open size %d of fontentity:\n ", pixel_size); @@ -794,13 +799,14 @@ font_info = (struct nsfont_info *) XFONT_OBJECT (font_object); font = (struct font *) font_info; if (!font) - return Qnil; /* FIXME: other terms do, but return Qnil causes segfault */ + { + unblock_input (); + return Qnil; /* FIXME: other terms do, but return Qnil causes segfault */ + } font_info->glyphs = xzalloc (0x100 * sizeof *font_info->glyphs); font_info->metrics = xzalloc (0x100 * sizeof *font_info->metrics); - block_input (); - /* for metrics */ #ifdef NS_IMPL_COCOA sfont = [nsfont screenFontWithRenderingMode: @@ -1051,6 +1057,7 @@ char isComposite = s->first_glyph->type == COMPOSITE_GLYPH; int end = isComposite ? s->cmp_to : s->nchars; + block_input (); /* Select face based on input flags */ switch (ns_tmp_flags) { @@ -1273,6 +1280,7 @@ /* Draw underline, overline, strike-through. */ ns_draw_text_decoration (s, face, col, r.size.width, r.origin.x); + unblock_input (); return to-from; } ------------------------------------------------------------ revno: 111503 committer: Stefan Monnier branch nick: trunk timestamp: Sat 2013-01-12 20:23:48 -0500 message: * lisp/jit-lock.el (jit-lock-debug-mode): New minor mode. (jit-lock--debug-fontifying): New var. (jit-lock--debug-fontify): New function. * lisp/subr.el (condition-case-unless-debug): Don't prevent catching the error, just let the debbugger run. * lisp/emacs-lisp/timer.el (timer-event-handler): Don't prevent debugging timer code and don't drop errors silently. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-01-10 02:45:31 +0000 +++ etc/NEWS 2013-01-13 01:23:48 +0000 @@ -66,6 +66,8 @@ * Changes in Specialized Modes and Packages in Emacs 24.4 +** jit-lock-debug-mode lets you use the debuggers on code run via jit-lock. + ** completing-read-multiple's separator can now be a regexp. The default separator is changed to allow surrounding spaces around the comma. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-01-12 19:24:27 +0000 +++ lisp/ChangeLog 2013-01-13 01:23:48 +0000 @@ -1,3 +1,13 @@ +2013-01-13 Stefan Monnier + + * jit-lock.el (jit-lock-debug-mode): New minor mode. + (jit-lock--debug-fontifying): New var. + (jit-lock--debug-fontify): New function. + * subr.el (condition-case-unless-debug): Don't prevent catching the + error, just let the debbugger run. + * emacs-lisp/timer.el (timer-event-handler): Don't prevent debugging + timer code and don't drop errors silently. + 2013-01-12 Michael Albinus * autorevert.el (auto-revert-notify-watch-descriptor): Give it === modified file 'lisp/emacs-lisp/timer.el' --- lisp/emacs-lisp/timer.el 2013-01-01 09:11:05 +0000 +++ lisp/emacs-lisp/timer.el 2013-01-13 01:23:48 +0000 @@ -307,13 +307,13 @@ ;; Run handler. ;; We do this after rescheduling so that the handler function ;; can cancel its own timer successfully with cancel-timer. - (condition-case nil + (condition-case-unless-debug err ;; Timer functions should not change the current buffer. ;; If they do, all kinds of nasty surprises can happen, ;; and it can be hellish to track down their source. (save-current-buffer (apply (timer--function timer) (timer--args timer))) - (error nil)) + (error (message "Error in timer: %S" err))) (if retrigger (setf (timer--triggered timer) nil))) (error "Bogus timer event")))) === modified file 'lisp/jit-lock.el' --- lisp/jit-lock.el 2013-01-01 09:11:05 +0000 +++ lisp/jit-lock.el 2013-01-13 01:23:48 +0000 @@ -257,6 +257,47 @@ (remove-hook 'after-change-functions 'jit-lock-after-change t) (remove-hook 'fontification-functions 'jit-lock-function)))) +(define-minor-mode jit-lock-debug-mode + "Minor mode to help debug code run from jit-lock. +When this minor mode is enabled, jit-lock runs as little code as possible +during redisplay and moves the rest to a timer, where things +like `debug-on-error' and Edebug can be used." + :global t + (when jit-lock-defer-timer + (cancel-timer jit-lock-defer-timer) + (setq jit-lock-defer-timer nil)) + (when jit-lock-debug-mode + (setq jit-lock-defer-timer + (run-with-idle-timer 0 t #'jit-lock--debug-fontify)))) + +(defvar jit-lock--debug-fontifying nil) + +(defun jit-lock--debug-fontify () + "Fontify what was deferred for debugging." + (when (and (not jit-lock--debug-fontifying) + jit-lock-defer-buffers (not memory-full)) + (let ((jit-lock--debug-fontifying t) + (inhibit-debugger nil)) ;FIXME: Not sufficient! + ;; Mark the deferred regions back to `fontified = nil' + (dolist (buffer jit-lock-defer-buffers) + (when (buffer-live-p buffer) + (with-current-buffer buffer + ;; (message "Jit-Debug %s" (buffer-name)) + (with-buffer-prepared-for-jit-lock + (let ((pos (point-min))) + (while + (progn + (when (eq (get-text-property pos 'fontified) 'defer) + (let ((beg pos) + (end (setq pos (next-single-property-change + pos 'fontified + nil (point-max))))) + (put-text-property beg end 'fontified nil) + (jit-lock-fontify-now beg end))) + (setq pos (next-single-property-change + pos 'fontified))))))))) + (setq jit-lock-defer-buffers nil)))) + (defun jit-lock-register (fun &optional contextual) "Register FUN as a fontification function to be called in this buffer. FUN will be called with two arguments START and END indicating the region @@ -504,7 +545,8 @@ pos (setq pos (next-single-property-change pos 'fontified nil (point-max))) 'fontified nil)) - (setq pos (next-single-property-change pos 'fontified))))))))) + (setq pos (next-single-property-change + pos 'fontified))))))))) (setq jit-lock-defer-buffers nil) ;; Force fontification of the visible parts. (let ((jit-lock-defer-timer nil)) === modified file 'lisp/subr.el' --- lisp/subr.el 2013-01-04 03:42:11 +0000 +++ lisp/subr.el 2013-01-13 01:23:48 +0000 @@ -3367,16 +3367,17 @@ (progn ,@body))))))) (defmacro condition-case-unless-debug (var bodyform &rest handlers) - "Like `condition-case' except that it does not catch anything when debugging. -More specifically if `debug-on-error' is set, then it does not catch any signal." + "Like `condition-case' except that it does not prevent debugging. +More specifically if `debug-on-error' is set then the debugger will be invoked +even if this catches the signal." (declare (debug condition-case) (indent 2)) - (let ((bodysym (make-symbol "body"))) - `(let ((,bodysym (lambda () ,bodyform))) - (if debug-on-error - (funcall ,bodysym) - (condition-case ,var - (funcall ,bodysym) - ,@handlers))))) + `(condition-case ,var + ,bodyform + ,@(mapcar (lambda (handler) + `((debug ,@(if (listp (car handler)) (car handler) + (list (car handler)))) + ,@(cdr handler))) + handlers))) (define-obsolete-function-alias 'condition-case-no-debug 'condition-case-unless-debug "24.1") ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.