From 1e2415d8fb5e69b4b46f4a05e06d18150ab9aed7 Mon Sep 17 00:00:00 2001 From: Katsumi Yamaoka Date: Thu, 14 Jul 2011 22:20:24 +0000 Subject: [PATCH 01/48] lisp/gnus/ChangeLog (2011-07-14): Fix function name. --- lisp/gnus/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 7c887dc5450..e3321ab30c5 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -5,7 +5,7 @@ * gnus-int.el (gnus-request-thread): Add group argument. - * gnus-sum.el (gnus-request-thread): Use it. + * gnus-sum.el (gnus-summary-refer-thread): Use it. 2011-07-10 Lars Magne Ingebrigtsen From f5c7a9297ca465dbeaad4884a6de605216720691 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 14 Jul 2011 22:15:05 -0400 Subject: [PATCH 02/48] * admin/notes/bugtracker: How to add new tags. --- admin/notes/bugtracker | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker index 04721e4cec3..dd1ea46ceb2 100644 --- a/admin/notes/bugtracker +++ b/admin/notes/bugtracker @@ -632,3 +632,11 @@ mytest my.email.address Then if you do all your testing with 'Package: mytest', the resulting mails should only go to your email address. + +** Adding new tags + +Add them to @gTags in /etc/debbugs/config. +I think you also have to add them to 'tags' and 'tags_single_letter' +in /usr/share/perl5/Debbugs/Config.pm. +And update /var/www/Developer.html with a description of what the tag means. +And the "valid tags" list in /var/www/index.html. From a7c33da259f863536c1ec8b2c7f1043d284c1718 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 14 Jul 2011 22:16:55 -0400 Subject: [PATCH 03/48] * lisp/emacs-lisp/debug.el (debug): Doc fix. (Bug#8273) --- lisp/ChangeLog | 4 ++++ lisp/emacs-lisp/debug.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 66783b9a5ed..1b3e25da8e1 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2011-07-15 Glenn Morris + + * emacs-lisp/debug.el (debug): Doc fix. (Bug#8273) + 2011-07-14 Lars Magne Ingebrigtsen * man.el (Man-fontify-manpage): Fix message when formatting the diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index 2fa339e62fe..157749500e7 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el @@ -102,7 +102,7 @@ and `debugger-reenable' to temporarily disable debug-on-entry.") (setq debugger 'debug) ;;;###autoload (defun debug (&rest debugger-args) - "Enter debugger. To return, type \\`\\[debugger-continue]'. + "Enter debugger. \\`\\[debugger-continue]' returns from the debugger. Arguments are mainly for use when this is called from the internals of the evaluator. From ec2bc542a4d0127425625e8cb458684bd825675a Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 14 Jul 2011 22:18:02 -0400 Subject: [PATCH 04/48] No need for ChangeLog entry about quickly reverted change. (Also confusing since the original ChangeLog entry was removed.) --- src/ChangeLog | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 625a0b7925c..21563806ece 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -12,9 +12,6 @@ 2011-07-14 Lars Magne Ingebrigtsen - * data.c (Fcdr, Fcar): Revert the last change, since it didn't - really clarify much. - * search.c (Fre_search_backward): Mention `case-fold-search' in all the re_search_* functions (bug#8138). From f0eb61e99dce9005dc94c909046f6130b3d4a97c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 14 Jul 2011 23:44:47 -0700 Subject: [PATCH 05/48] * bidi.c (bidi_cache_ensure_space): Also check that the bidi cache size does not exceed that of the largest Lisp string or buffer. See Eli Zaretskii in . --- src/ChangeLog | 3 +++ src/bidi.c | 13 ++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index c19786fb72c..493b3277f52 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -15,6 +15,9 @@ Don't set bidi_cache_size until after xrealloc returns, because it might not return. (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow. + (bidi_cache_ensure_space): Also check that the bidi cache size + does not exceed that of the largest Lisp string or buffer. See Eli + Zaretskii in . * alloc.c (__malloc_size_t): Remove. All uses replaced by size_t. See Andreas Schwab's note diff --git a/src/bidi.c b/src/bidi.c index 1999606639b..697ebb92856 100644 --- a/src/bidi.c +++ b/src/bidi.c @@ -464,9 +464,16 @@ bidi_cache_ensure_space (ptrdiff_t idx) if (idx >= bidi_cache_size) { ptrdiff_t new_size; - ptrdiff_t max_size = - min (PTRDIFF_MAX, SIZE_MAX) / elsz / BIDI_CACHE_CHUNK * BIDI_CACHE_CHUNK; - if (max_size <= idx) + + /* The bidi cache cannot be larger than the largest Lisp string + or buffer. */ + ptrdiff_t string_or_buffer_bound = + max (BUF_BYTES_MAX, STRING_BYTES_BOUND); + + /* Also, it cannot be larger than what C can represent. */ + ptrdiff_t c_bound = min (PTRDIFF_MAX, SIZE_MAX) / elsz; + + if (min (string_or_buffer_bound, c_bound) <= idx) memory_full (SIZE_MAX); new_size = idx - idx % BIDI_CACHE_CHUNK + BIDI_CACHE_CHUNK; bidi_cache = (struct bidi_it *) xrealloc (bidi_cache, new_size * elsz); From 75c68aa1b696fca51177e7777e4aa9838a1b4660 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Fri, 15 Jul 2011 09:12:09 +0200 Subject: [PATCH 06/48] Fix pop-to-buffer call in switch-to-buffer. * window.el (switch-to-buffer): Call pop-to-buffer with normalized buffer argument (Bug#9083) and self-identifying label argument. --- lisp/ChangeLog | 5 +++++ lisp/window.el | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1b3e25da8e1..96f4dd07612 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-07-15 Martin Rudalics + + * window.el (switch-to-buffer): Call pop-to-buffer with normalized + buffer argument (Bug#9083) and self-identifying label argument. + 2011-07-15 Glenn Morris * emacs-lisp/debug.el (debug): Doc fix. (Bug#8273) diff --git a/lisp/window.el b/lisp/window.el index 0302a672521..4f21bb05397 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -5953,13 +5953,13 @@ Return the buffer switched to." (list (read-buffer-to-switch "Switch to buffer: ") nil nil)) (let ((buffer (window-normalize-buffer-to-switch-to buffer-or-name))) (if (null force-same-window) - (pop-to-buffer buffer-or-name - '(same-window (reuse-window-dedicated . weak)) - norecord nil) + (pop-to-buffer + buffer '(same-window (reuse-window-dedicated . weak)) + norecord 'switch-to-buffer) (cond ;; Don't call set-window-buffer if it's not needed since it ;; might signal an error (e.g. if the window is dedicated). - ((eq buffer (window-buffer)) nil) + ((eq buffer (window-buffer))) ((window-minibuffer-p) (error "Cannot switch buffers in minibuffer window")) ((eq (window-dedicated-p) t) From aa4b6df6901fc736db6165f379857f448abbe711 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 15 Jul 2011 13:50:03 +0300 Subject: [PATCH 07/48] Fix vertical cursor motion in Speedbar frames under bidi display. src/xdisp.c (move_it_in_display_line_to): Fix vertical motion with bidi redisplay when a line includes both an image and is truncated. --- src/ChangeLog | 6 ++++++ src/xdisp.c | 16 +++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 21563806ece..3bb02a71865 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2011-07-15 Eli Zaretskii + + * xdisp.c (move_it_in_display_line_to): Fix vertical motion with + bidi redisplay when a line includes both an image and is + truncated. + 2011-07-14 Paul Eggert Fix minor problems found by static checking. diff --git a/src/xdisp.c b/src/xdisp.c index 69a66a4db64..50da62ca0ab 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -7928,7 +7928,14 @@ move_it_in_display_line_to (struct it *it, || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) { if (!get_next_display_element (it) - || BUFFER_POS_REACHED_P ()) + || BUFFER_POS_REACHED_P () + /* If we are past TO_CHARPOS, but never saw any + character positions smaller than TO_CHARPOS, + return MOVE_POS_MATCH_OR_ZV, like the + unidirectional display did. */ + || ((op & MOVE_TO_POS) != 0 + && !saw_smaller_pos + && IT_CHARPOS (*it) > to_charpos)) { result = MOVE_POS_MATCH_OR_ZV; break; @@ -7939,6 +7946,13 @@ move_it_in_display_line_to (struct it *it, break; } } + else if ((op & MOVE_TO_POS) != 0 + && !saw_smaller_pos + && IT_CHARPOS (*it) > to_charpos) + { + result = MOVE_POS_MATCH_OR_ZV; + break; + } result = MOVE_LINE_TRUNCATED; break; } From 3073fc1414139dfa3c9f179242fae3ddcfbf7b5f Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 14:45:51 +0200 Subject: [PATCH 08/48] * variables.texi (Lexical Binding): Mention `defcustom'. Fixes: debbugs:8459 --- doc/lispref/variables.texi | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 3da09369882..091765043e3 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1099,11 +1099,12 @@ use short names like @code{x}. @node Lexical Binding @subsection Use of Lexical Scoping -Emacs Lisp can be evaluated in two different modes: in dynamic binding mode or -lexical binding mode. In dynamic binding mode, all local variables use dynamic -scoping, whereas in lexical binding mode variables that have been declared -@dfn{special} (i.e., declared with @code{defvar} or @code{defconst}) use -dynamic scoping and all others use lexical scoping. +Emacs Lisp can be evaluated in two different modes: in dynamic binding +mode or lexical binding mode. In dynamic binding mode, all local +variables use dynamic scoping, whereas in lexical binding mode +variables that have been declared @dfn{special} (i.e., declared with +@code{defvar}, @code{defcustom} or @code{defconst}) use dynamic +scoping and all others use lexical scoping. @defvar lexical-binding When non-nil, evaluation of Lisp code uses lexical scoping for non-special From 1d698799d3ffda0268176efb71d88165fe8e191f Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 14:57:20 +0200 Subject: [PATCH 09/48] `lexical-binding' doc clarification * lread.c (syms_of_lread): Clarify that is isn't only `eval-buffer' and `eval-defun' that's affected by `lexical-binding'. Fixes: debbugs:8460 --- src/ChangeLog | 6 ++++++ src/lread.c | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3bb02a71865..8ef3efa8a52 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2011-07-15 Lars Magne Ingebrigtsen + + * lread.c (syms_of_lread): Clarify that is isn't only + `eval-buffer' and `eval-defun' that's affected by + `lexical-binding' (bug#8460). + 2011-07-15 Eli Zaretskii * xdisp.c (move_it_in_display_line_to): Fix vertical motion with diff --git a/src/lread.c b/src/lread.c index 6cb217a21c6..7dd566dc173 100644 --- a/src/lread.c +++ b/src/lread.c @@ -4510,9 +4510,11 @@ to load. See also `load-dangerous-libraries'. */); staticpro (&Qlexical_binding); DEFVAR_LISP ("lexical-binding", Vlexical_binding, doc: /* If non-nil, use lexical binding when evaluating code. -This only applies to code evaluated by `eval-buffer' and `eval-region'. -This variable is automatically set from the file variables of an interpreted - Lisp file read using `load'. */); +This applies to code evaluated by `eval-buffer' and `eval-region' and +other commands that call these functions, like `eval-defun' and +the like. +This variable is automatically set from the file variables of an +interpreted Lisp file read using `load'. */); Fmake_variable_buffer_local (Qlexical_binding); DEFVAR_LISP ("eval-buffer-list", Veval_buffer_list, From 662498421ef4b06cfa6e27d6be2b09e80ec2bff9 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 15:16:11 +0200 Subject: [PATCH 10/48] (Using Debugger): Mention @code{eval-expression-debug-on-error} Fixes: debbugs:8549 --- doc/lispref/ChangeLog | 5 +++++ doc/lispref/debugging.texi | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 153d7e839c3..cf6e3482efb 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2011-07-15 Lars Magne Ingebrigtsen + + * debugging.texi (Using Debugger): Mention + @code{eval-expression-debug-on-error} (bug#8549). + 2011-07-14 Eli Zaretskii * display.texi (Other Display Specs): Document that `left-fringe' diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi index ed146453df7..d9e807afb88 100644 --- a/doc/lispref/debugging.texi +++ b/doc/lispref/debugging.texi @@ -306,6 +306,16 @@ and it is wise to go back to the backtrace buffer and exit the debugger the debugger gets out of the recursive edit and kills the backtrace buffer. + When the debugger has been entered, the @code{debug-on-error} +variable is temporarily set according to +@code{eval-expression-debug-on-error}. If the latter variable is +non-@code{nil}, @code{debug-on-error} will temporarily be set to +@code{t}. This means that any further errors that occur while doing a +debugging session will (by default) trigger another backtrace. If +this is not want you want, you can either set +@code{eval-expression-debug-on-error} to @code{nil}, or set +@code{debug-on-error} to @code{nil} in @code{debugger-mode-hook}. + @cindex current stack frame The backtrace buffer shows you the functions that are executing and their argument values. It also allows you to specify a stack frame by From 478615cc10347eac8d0a2846f3364b1d887ae3d5 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 15:33:07 +0200 Subject: [PATCH 11/48] Doc fix. * isearch.el (isearch-barrier): Add a doc string, since it's mentioned in a function doc string. Fixes: debbugs:8678 --- lisp/ChangeLog | 5 +++++ lisp/isearch.el | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 96f4dd07612..76b1d779843 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-07-15 Lars Magne Ingebrigtsen + + * isearch.el (isearch-barrier): Add a doc string, since it's + mentioned in a function doc string (bug#8678). + 2011-07-15 Martin Rudalics * window.el (switch-to-buffer): Call pop-to-buffer with normalized diff --git a/lisp/isearch.el b/lisp/isearch.el index 50e7b331c85..1942641fae9 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -549,7 +549,8 @@ Each set is a vector of the form: (defvar isearch-error nil) ; Error message for failed search. (defvar isearch-other-end nil) ; Start (end) of match if forward (backward). (defvar isearch-wrapped nil) ; Searching restarted from the top (bottom). -(defvar isearch-barrier 0) +(defvar isearch-barrier 0 + "Recorded minimum/maximal point for the current search.") (defvar isearch-just-started nil) (defvar isearch-start-hscroll 0) ; hscroll when starting the search. From 4bf0979f4c5b87f53a1da435569ba5646e1d93e5 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 15:46:52 +0200 Subject: [PATCH 12/48] * emacs-lisp/cl-macs.el (declare): Add a doc string (bug#8690). --- lisp/ChangeLog | 2 ++ lisp/emacs-lisp/cl-macs.el | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 76b1d779843..c315d6a2ff3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2011-07-15 Lars Magne Ingebrigtsen + * emacs-lisp/cl-macs.el (declare): Add a doc string (bug#8690). + * isearch.el (isearch-barrier): Add a doc string, since it's mentioned in a function doc string (bug#8678). diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 2813cc4f065..623d1c6418f 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1601,6 +1601,12 @@ values. For compatibility, (values A B C) is a synonym for (list A B C). ;;;###autoload (defmacro declare (&rest specs) + "Declare something about SPECS while compiling. +For instance + + \(declare (warn 0)) + +will turn off byte-compile warnings." (if (cl-compiling-file) (while specs (if (listp cl-declare-stack) (push (car specs) cl-declare-stack)) From 1b5eaeb36cb630692e7a9c523f49ad7e9c9e2263 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 15:55:00 +0200 Subject: [PATCH 13/48] Minor grammer fixes for syntax.el. Fixes: debbugs:8690 --- lisp/emacs-lisp/cl-loaddefs.el | 7 ++++++- lisp/emacs-lisp/syntax.el | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index 48c7386bd43..1c766afc8db 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el @@ -282,7 +282,7 @@ Not documented ;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist ;;;;;; do* do loop return-from return block etypecase typecase ecase ;;;;;; case load-time-value eval-when destructuring-bind function* -;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "9f551dc739a39b3c8b420fbd1ab71879") +;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "dd99db1e96dff411cc5d484a639a1330") ;;; Generated autoloads from cl-macs.el (autoload 'gensym "cl-macs" "\ @@ -541,7 +541,12 @@ values. For compatibility, (values A B C) is a synonym for (list A B C). \(fn TYPE FORM)" nil (quote macro)) (autoload 'declare "cl-macs" "\ +Declare something about SPECS while compiling. +For instance + (declare (warn 0)) + +will turn off byte-compile warnings. \(fn &rest SPECS)" nil (quote macro)) diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index 200b3a6389b..c65cbc39eab 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -100,7 +100,7 @@ Put first the functions more likely to cause a change and cheaper to compute.") (cons beg end)) (defvar syntax-propertize--done -1 - "Position upto which syntax-table properties have been set.") + "Position up to which syntax-table properties have been set.") (make-variable-buffer-local 'syntax-propertize--done) (defun syntax-propertize--shift-groups (re n) @@ -283,7 +283,7 @@ The return value is a function suitable for `syntax-propertize-function'." (setq keywords font-lock-syntactic-keywords)))))) (defun syntax-propertize (pos) - "Ensure that syntax-table properties are set upto POS." + "Ensure that syntax-table properties are set until POS." (when (and syntax-propertize-function (< syntax-propertize--done pos)) ;; (message "Needs to syntax-propertize from %s to %s" From 064e2d087eafc008377be3547bbed21267468422 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 15:59:53 +0200 Subject: [PATCH 14/48] Use /dev/null instead of the Windows "nul" in flymake example Fixes: debbugs:8715 --- doc/misc/ChangeLog | 5 +++++ doc/misc/flymake.texi | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 38cbaafa45d..d64980bd1c8 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,8 @@ +2011-07-15 Lars Magne Ingebrigtsen + + * flymake.texi (Example -- Configuring a tool called via make): + Use /dev/null instead of the Windows "nul" (bug#8715). + 2011-07-14 Lars Magne Ingebrigtsen * widget.texi (Setting Up the Buffer): Remove mention of the diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi index 74cf3d630da..625e9549444 100644 --- a/doc/misc/flymake.texi +++ b/doc/misc/flymake.texi @@ -483,7 +483,7 @@ our case this target might look like this: @verbatim check-syntax: - gcc -o nul -S ${CHK_SOURCES} + gcc -o /dev/null -S ${CHK_SOURCES} @end verbatim The format of error messages reported by @code{gcc} is already From 3aa5f34b9ba4b34132ae8f971c5820175f868489 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 16:24:09 +0200 Subject: [PATCH 15/48] Error message fix in `describe-specified-language-support' * international/mule-cmds.el (describe-specified-language-support): Make the error message clearer (bug#8905). --- lisp/ChangeLog | 4 ++++ lisp/international/mule-cmds.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c315d6a2ff3..3f32e44beb2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2011-07-15 Lars Magne Ingebrigtsen + * international/mule-cmds.el + (describe-specified-language-support): Make the error message + clearer (bug#8905). + * emacs-lisp/cl-macs.el (declare): Add a doc string (bug#8690). * isearch.el (isearch-barrier): Add a doc string, since it's diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 6a73aaaa838..128fb86b7b4 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -2059,7 +2059,7 @@ See `set-language-info-alist' for use in programs." (or (not (eq last-command-event 'Default)) (setq last-command-event 'English)) (setq language-name (symbol-name last-command-event)))) - (error "Bogus calling sequence")) + (error "This command should only be called from the menu bar")) (describe-language-environment language-name))) (defun describe-language-environment (language-name) From f863868c450935385e5483c2e170fa7eb5799327 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 16:31:14 +0200 Subject: [PATCH 16/48] Clarify that \= only quotes the next character --- doc/lispref/ChangeLog | 4 ++++ doc/lispref/help.texi | 5 ++--- src/ChangeLog | 4 ++++ src/doc.c | 4 ++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index cf6e3482efb..d18a72ef6d7 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,5 +1,9 @@ 2011-07-15 Lars Magne Ingebrigtsen + * help.texi (Keys in Documentation): Clarify that \= only quotes + the next character, and doesn't affect longer sequences in + particular (bug#8935). + * debugging.texi (Using Debugger): Mention @code{eval-expression-debug-on-error} (bug#8549). diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 0ce05d55a07..4e5bb1b247c 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -324,9 +324,8 @@ specifies @var{mapvar}'s value as the keymap for any following @samp{\[@var{command}]} sequences in this documentation string. @item \= -quotes the following character and is discarded; thus, @samp{\=\[} puts -@samp{\[} into the output, and @samp{\=\=} puts @samp{\=} into the -output. +quotes the following character and is discarded; thus, @samp{\=\} puts +@samp{\} into the output. @end table @strong{Please note:} Each @samp{\} must be doubled when written in a diff --git a/src/ChangeLog b/src/ChangeLog index 8ef3efa8a52..75de3e44123 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2011-07-15 Lars Magne Ingebrigtsen + * doc.c (Fsubstitute_command_keys): Clarify that \= really only + quotes the next character, and doesn't affect other longer + sequences (bug#8935). + * lread.c (syms_of_lread): Clarify that is isn't only `eval-buffer' and `eval-defun' that's affected by `lexical-binding' (bug#8460). diff --git a/src/doc.c b/src/doc.c index 69646f5af51..5a8dc3ce37c 100644 --- a/src/doc.c +++ b/src/doc.c @@ -702,8 +702,8 @@ Substrings of the form \\=\\{MAPVAR} are replaced by summaries \(made by `describe-bindings') of the value of MAPVAR, taken as a keymap. Substrings of the form \\=\\ specify to use the value of MAPVAR as the keymap for future \\=\\[COMMAND] substrings. -\\=\\= quotes the following character and is discarded; -thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ into the output. +\\=\\= quotes the following character and is discarded. +In particular, \\=\\=\\ puts \\ into the output. Returns original STRING if no substitutions were made. Otherwise, a new string, without any text properties, is returned. */) From c39da69053fc7bd17a3859dc56a9cd0991961999 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 16:59:42 +0200 Subject: [PATCH 17/48] * emacs-lisp/cl-macs.el (declare): Doc string fix-up. --- lisp/ChangeLog | 2 ++ lisp/emacs-lisp/cl-macs.el | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3f32e44beb2..1ec6c18e6a9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2011-07-15 Lars Magne Ingebrigtsen + * emacs-lisp/cl-macs.el (declare): Doc string fix-up. + * international/mule-cmds.el (describe-specified-language-support): Make the error message clearer (bug#8905). diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 623d1c6418f..4f9e0e8b70a 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1601,12 +1601,12 @@ values. For compatibility, (values A B C) is a synonym for (list A B C). ;;;###autoload (defmacro declare (&rest specs) - "Declare something about SPECS while compiling. + "Declare SPECS about the current function while compiling. For instance \(declare (warn 0)) -will turn off byte-compile warnings." +will turn off byte-compile warnings in the function." (if (cl-compiling-file) (while specs (if (listp cl-declare-stack) (push (car specs) cl-declare-stack)) From 06789f9706db4c8fc335619c28daeda2c1e75e48 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 17:13:00 +0200 Subject: [PATCH 18/48] Add new command `Info-beginning-of-buffer' to allow announcing `b' * info.el (Info-beginning-of-buffer): New command. (Info-mode-map): Use it instead of `beginning-of-buffer' to allow announcing `b' as the key (bug#8325). --- lisp/ChangeLog | 4 ++++ lisp/info.el | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1ec6c18e6a9..47dff71bdff 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2011-07-15 Lars Magne Ingebrigtsen + * info.el (Info-beginning-of-buffer): New command. + (Info-mode-map): Use it instead of `beginning-of-buffer' to allow + announcing `b' as the key (bug#8325). + * emacs-lisp/cl-macs.el (declare): Doc string fix-up. * international/mule-cmds.el diff --git a/lisp/info.el b/lisp/info.el index cbdc8cc7ab3..638227dd30c 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -2789,6 +2789,11 @@ N is the digit argument used to invoke this command." (goto-char (point-max))))) (t (error "No previous nodes")))) +(defun Info-beginning-of-buffer () + "Go to the beginnning of the buffer." + (interactive) + (goto-char (point-min))) + (defun Info-scroll-up () "Scroll one screenful forward in Info, considering all nodes as one sequence. Once you scroll far enough in a node that its menu appears on the screen @@ -3650,7 +3655,7 @@ If FORK is non-nil, it is passed to `Info-goto-node'." (defvar Info-mode-map (let ((map (make-keymap))) (suppress-keymap map) - (define-key map "." 'beginning-of-buffer) + (define-key map "." 'Info-beginning-of-buffer) (define-key map " " 'Info-scroll-up) (define-key map "\C-m" 'Info-follow-nearest-node) (define-key map "\t" 'Info-next-reference) @@ -3671,7 +3676,8 @@ If FORK is non-nil, it is passed to `Info-goto-node'." (define-key map "[" 'Info-backward-node) (define-key map "<" 'Info-top-node) (define-key map ">" 'Info-final-node) - (define-key map "b" 'beginning-of-buffer) + (define-key map "b" 'Info-beginning-of-buffer) + (put 'Info-beginning-of-buffer :advertised-binding "b") (define-key map "d" 'Info-directory) (define-key map "e" 'Info-edit) (define-key map "f" 'Info-follow-reference) @@ -3931,7 +3937,7 @@ Moving within a node: \\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is already visible, try to go to the previous menu entry, or up if there is none. -\\[beginning-of-buffer] Go to beginning of node. +\\[Info-beginning-of-buffer] Go to beginning of node. Advanced commands: \\[Info-search] Search through this Info file for specified regexp, From ab896c37a8440ff1f791b8e0f035bc58f04f5099 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 17:14:46 +0200 Subject: [PATCH 19/48] (Info-mode-menu): Use `Info-beginning-of-buffer' for consistency. --- lisp/ChangeLog | 1 + lisp/info.el | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 47dff71bdff..36d6cebc878 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -3,6 +3,7 @@ * info.el (Info-beginning-of-buffer): New command. (Info-mode-map): Use it instead of `beginning-of-buffer' to allow announcing `b' as the key (bug#8325). + (Info-mode-menu): Use `Info-beginning-of-buffer' for consistency. * emacs-lisp/cl-macs.el (declare): Doc string fix-up. diff --git a/lisp/info.el b/lisp/info.el index 638227dd30c..afe7e858fd7 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -3731,7 +3731,7 @@ If FORK is non-nil, it is passed to `Info-goto-node'." :help "Go backward one node, considering all as a sequence"] ["Forward" Info-forward-node :help "Go forward one node, considering all as a sequence"] - ["Beginning" beginning-of-buffer + ["Beginning" Info-beginning-of-buffer :help "Go to beginning of this node"] ["Top" Info-top-node :help "Go to top node of file"] From 64348f40105be3d3fdd79662903b74a03edfe544 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 15 Jul 2011 17:31:36 +0200 Subject: [PATCH 20/48] * src/doc.c (Fsubstitute_command_keys): Revert last change. --- src/ChangeLog | 4 ++++ src/doc.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 75de3e44123..8b9f2935347 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-07-15 Andreas Schwab + + * doc.c (Fsubstitute_command_keys): Revert last change. + 2011-07-15 Lars Magne Ingebrigtsen * doc.c (Fsubstitute_command_keys): Clarify that \= really only diff --git a/src/doc.c b/src/doc.c index 5a8dc3ce37c..69646f5af51 100644 --- a/src/doc.c +++ b/src/doc.c @@ -702,8 +702,8 @@ Substrings of the form \\=\\{MAPVAR} are replaced by summaries \(made by `describe-bindings') of the value of MAPVAR, taken as a keymap. Substrings of the form \\=\\ specify to use the value of MAPVAR as the keymap for future \\=\\[COMMAND] substrings. -\\=\\= quotes the following character and is discarded. -In particular, \\=\\=\\ puts \\ into the output. +\\=\\= quotes the following character and is discarded; +thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ into the output. Returns original STRING if no substitutions were made. Otherwise, a new string, without any text properties, is returned. */) From 89671e16b34f41fd4b56cf01f329bbed26c483f8 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 17:46:28 +0200 Subject: [PATCH 21/48] * help.texi (Misc Help): Mention `describe-prefix-bindings' explicitly. Fixes: debbugs:8904 --- doc/emacs/ChangeLog | 5 +++++ doc/emacs/help.texi | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 531bf206a80..e10b9a83a43 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,8 @@ +2011-07-15 Lars Magne Ingebrigtsen + + * help.texi (Misc Help): Mention `describe-prefix-bindings' + explicitly (bug#8904). + 2011-07-14 Lars Magne Ingebrigtsen * trouble.texi (Checklist): Use an `M-x' example instead of an diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 76a9f2413b1..9a75bfb1887 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -589,11 +589,13 @@ displays the contents of the syntax table, with explanations of each character's syntax (@pxref{Syntax Tables,, Syntax Tables, elisp, The Emacs Lisp Reference Manual}). +@findex describe-prefix-bindings You can get a list of subcommands for a particular prefix key by -typing @kbd{C-h} after the prefix key. (There are a few prefix keys -for which this does not work---those that provide their own bindings -for @kbd{C-h}. One of these is @key{ESC}, because @kbd{@key{ESC} C-h} -is actually @kbd{C-M-h}, which marks a defun.) +typing @kbd{C-h} (@code{describe-prefix-bindings}) after the prefix +key. (There are a few prefix keys for which this does not +work---those that provide their own bindings for @kbd{C-h}. One of +these is @key{ESC}, because @kbd{@key{ESC} C-h} is actually +@kbd{C-M-h}, which marks a defun.) @node Help Files @section Help Files From dbc44fcd08d1105e2aa4de567d40814f6b668053 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 18:01:18 +0200 Subject: [PATCH 22/48] * emacs-lisp/cl-macs.el (declare): Link to the "Declarations" node. --- lisp/ChangeLog | 2 ++ lisp/emacs-lisp/cl-macs.el | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 36d6cebc878..e15843f136d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2011-07-15 Lars Magne Ingebrigtsen + * emacs-lisp/cl-macs.el (declare): Link to the "Declarations" node. + * info.el (Info-beginning-of-buffer): New command. (Info-mode-map): Use it instead of `beginning-of-buffer' to allow announcing `b' as the key (bug#8325). diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 4f9e0e8b70a..5b6d08472f1 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1606,7 +1606,8 @@ For instance \(declare (warn 0)) -will turn off byte-compile warnings in the function." +will turn off byte-compile warnings in the function. +See Info node `(cl)Declarations' for details." (if (cl-compiling-file) (while specs (if (listp cl-declare-stack) (push (car specs) cl-declare-stack)) From bd23ebc01d3a58d3f8357d97f49cf00c2ef4b585 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 15 Jul 2011 13:04:12 -0400 Subject: [PATCH 23/48] * lisp/info.el (info-insert-file-contents): Require jka-compr. (Bug#9090) --- lisp/ChangeLog | 4 ++++ lisp/info.el | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e15843f136d..307e4df7ae7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2011-07-15 Glenn Morris + + * info.el (info-insert-file-contents): Require jka-compr. (Bug#9090) + 2011-07-15 Lars Magne Ingebrigtsen * emacs-lisp/cl-macs.el (declare): Link to the "Declarations" node. diff --git a/lisp/info.el b/lisp/info.el index afe7e858fd7..51105be6db3 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -32,7 +32,7 @@ ;;; Code: -(eval-when-compile (require 'jka-compr) (require 'cl)) +(eval-when-compile (require 'cl)) (defgroup info nil "Info subsystem." @@ -463,6 +463,7 @@ be last in the list.") (defun info-insert-file-contents (filename &optional visit) "Insert the contents of an Info file in the current buffer. Do the right thing if the file has been compressed or zipped." + (require 'jka-compr) ; bug #9090 (let* ((tail Info-suffix-list) (jka-compr-verbose nil) (lfn (if (fboundp 'msdos-long-file-names) From c65bca6520d8f3097b1c597381150fd2ffd0f886 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 15 Jul 2011 13:18:53 -0400 Subject: [PATCH 24/48] Rework previous change. * lisp/jka-compr.el (jka-compr-verbose): Move from here... * lisp/jka-cmpr-hook.el (jka-compr-verbose): ... to here. (Bug#9090) Add missing :version tag. * lisp/info.el: No need to require jka-compr when compiling. --- lisp/ChangeLog | 5 ++++- lisp/info.el | 1 - lisp/jka-cmpr-hook.el | 6 ++++++ lisp/jka-compr.el | 5 ----- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 307e4df7ae7..f99f2692bad 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,6 +1,9 @@ 2011-07-15 Glenn Morris - * info.el (info-insert-file-contents): Require jka-compr. (Bug#9090) + * jka-compr.el (jka-compr-verbose): Move from here... + * jka-cmpr-hook.el (jka-compr-verbose): ... to here. (Bug#9090) + Add missing :version tag. + * info.el: No need to require jka-compr when compiling. 2011-07-15 Lars Magne Ingebrigtsen diff --git a/lisp/info.el b/lisp/info.el index 51105be6db3..a4826ee8c2c 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -463,7 +463,6 @@ be last in the list.") (defun info-insert-file-contents (filename &optional visit) "Insert the contents of an Info file in the current buffer. Do the right thing if the file has been compressed or zipped." - (require 'jka-compr) ; bug #9090 (let* ((tail Info-suffix-list) (jka-compr-verbose nil) (lfn (if (fboundp 'msdos-long-file-names) diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el index e1cf2a661ed..d28fde0b214 100644 --- a/lisp/jka-cmpr-hook.el +++ b/lisp/jka-cmpr-hook.el @@ -39,6 +39,12 @@ "jka-compr customization." :group 'compression) +(defcustom jka-compr-verbose t + "If non-nil, output messages whenever compressing or uncompressing files." + :version "24.1" + :type 'boolean + :group 'jka-compr) + ;; List of all the elements we actually added to file-coding-system-alist. (defvar jka-compr-added-to-file-coding-system-alist nil) diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index 1893e982bbb..cd769885cc6 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el @@ -97,11 +97,6 @@ NOTE: Not used in MS-DOS and Windows systems." :type 'string :group 'jka-compr) -(defcustom jka-compr-verbose t - "If non-nil, output messages whenever compressing or uncompressing files." - :type 'boolean - :group 'jka-compr) - (defvar jka-compr-use-shell (not (memq system-type '(ms-dos windows-nt)))) From 7b41decb8ee56d61ace1637138a38b89bcf09eb4 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 19:21:57 +0200 Subject: [PATCH 25/48] Add a variable to customize the gnutls priority --- lisp/ChangeLog | 3 +++ lisp/emacs-lisp/cl-loaddefs.el | 7 ++++--- lisp/net/gnutls.el | 9 ++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f99f2692bad..114a318fe96 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -7,6 +7,9 @@ 2011-07-15 Lars Magne Ingebrigtsen + * net/gnutls.el (gnutls-algorithm-priority): New variable. + (gnutls-negotiate): Use it. + * emacs-lisp/cl-macs.el (declare): Link to the "Declarations" node. * info.el (Info-beginning-of-buffer): New command. diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index 1c766afc8db..f0c72a0b269 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el @@ -282,7 +282,7 @@ Not documented ;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist ;;;;;; do* do loop return-from return block etypecase typecase ecase ;;;;;; case load-time-value eval-when destructuring-bind function* -;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "dd99db1e96dff411cc5d484a639a1330") +;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "2261724608e3223036b863d214f7dc0c") ;;; Generated autoloads from cl-macs.el (autoload 'gensym "cl-macs" "\ @@ -541,12 +541,13 @@ values. For compatibility, (values A B C) is a synonym for (list A B C). \(fn TYPE FORM)" nil (quote macro)) (autoload 'declare "cl-macs" "\ -Declare something about SPECS while compiling. +Declare SPECS about the current function while compiling. For instance (declare (warn 0)) -will turn off byte-compile warnings. +will turn off byte-compile warnings in the function. +See Info node `(cl)Declarations' for details. \(fn &rest SPECS)" nil (quote macro)) diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el index 67d7b2d20d3..f0bc8dec09d 100644 --- a/lisp/net/gnutls.el +++ b/lisp/net/gnutls.el @@ -47,6 +47,13 @@ :type 'integer :group 'gnutls) +(defcustom gnutls-algorithm-priority nil + "If non-nil, this should be a TLS priority string. +For instance, if you want to skip the \"dhe-rsa\" algorithm, +set this variable to \"normal:-dhe-rsa\"." + :type '(choice (const nil) + string)) + (defun open-gnutls-stream (name buffer host service) "Open a SSL/TLS connection for a service to a host. Returns a subprocess-object to represent the connection. @@ -145,7 +152,7 @@ defaults to GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT." ((eq type 'gnutls-anon) "NORMAL:+ANON-DH:!ARCFOUR-128") ((eq type 'gnutls-x509pki) - "NORMAL")))) + (or gnutls-algorithm-priority "NORMAL"))))) (params `(:priority ,priority-string :hostname ,hostname :loglevel ,gnutls-log-level From d6066239555e3ef3fcda8481ce9f9288676b1bd8 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 19:25:02 +0200 Subject: [PATCH 26/48] * net/gnutls.el (gnutls-negotiate): Upcase `gnutls-algorithm-priority'. --- lisp/ChangeLog | 5 +++++ lisp/net/gnutls.el | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 114a318fe96..87f5cc9d70d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-07-15 Lars Magne Ingebrigtsen + + * net/gnutls.el (gnutls-negotiate): Upcase + `gnutls-algorithm-priority'. + 2011-07-15 Glenn Morris * jka-compr.el (jka-compr-verbose): Move from here... diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el index f0bc8dec09d..14d4a2f28e6 100644 --- a/lisp/net/gnutls.el +++ b/lisp/net/gnutls.el @@ -152,7 +152,9 @@ defaults to GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT." ((eq type 'gnutls-anon) "NORMAL:+ANON-DH:!ARCFOUR-128") ((eq type 'gnutls-x509pki) - (or gnutls-algorithm-priority "NORMAL"))))) + (if gnutls-algorithm-priority + (upcase gnutls-algorithm-priority) + "NORMAL"))))) (params `(:priority ,priority-string :hostname ,hostname :loglevel ,gnutls-log-level From 87e86684426cfc7c4676dc90e44a623921f7186e Mon Sep 17 00:00:00 2001 From: Lawrence Mitchell Date: Fri, 15 Jul 2011 19:41:24 +0200 Subject: [PATCH 27/48] Allow controlling how many prime bits to use during TLS negotiation --- lisp/ChangeLog | 5 +++++ lisp/net/gnutls.el | 22 ++++++++++++++++++++-- src/ChangeLog | 5 +++++ src/gnutls.c | 16 ++++++++++++++++ 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 87f5cc9d70d..6bfdb61330b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-07-09 Lawrence Mitchell + + * net/gnutls.el (gnutls-min-prime-bits): New variable. + (gnutls-negotiate): Use it. + 2011-07-15 Lars Magne Ingebrigtsen * net/gnutls.el (gnutls-negotiate): Upcase diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el index 14d4a2f28e6..edbf9a54afc 100644 --- a/lisp/net/gnutls.el +++ b/lisp/net/gnutls.el @@ -54,6 +54,19 @@ set this variable to \"normal:-dhe-rsa\"." :type '(choice (const nil) string)) +;;;###autoload +(defcustom gnutls-min-prime-bits nil + "The minimum number of bits to be used in Diffie-Hellman key exchange. + +This sets the minimum accepted size of the key to be used in a +client-server handshake. If the server sends a prime with fewer than +the specified number of bits the handshake will fail. + +A value of nil says to use the default gnutls value." + :type '(choice (const :tag "Use default value" nil) + (integer :tag "Number of bits" 512)) + :group 'gnutls) + (defun open-gnutls-stream (name buffer host service) "Open a SSL/TLS connection for a service to a host. Returns a subprocess-object to represent the connection. @@ -97,8 +110,8 @@ trust and key files, and priority string." (defun* gnutls-negotiate (&rest spec &key process type hostname priority-string - trustfiles crlfiles keylist verify-flags - verify-error verify-hostname-error + trustfiles crlfiles keylist min-prime-bits + verify-flags verify-error verify-hostname-error &allow-other-keys) "Negotiate a SSL/TLS connection. Returns proc. Signals gnutls-error. @@ -111,6 +124,9 @@ PRIORITY-STRING is as per the GnuTLS docs, default is \"NORMAL\". TRUSTFILES is a list of CA bundles. CRLFILES is a list of CRL files. KEYLIST is an alist of (client key file, client cert file) pairs. +MIN-PRIME-BITS is the minimum acceptable size of Diffie-Hellman keys +\(see `gnutls-min-prime-bits' for more information). Use nil for the +default. When VERIFY-HOSTNAME-ERROR is not nil, an error will be raised when the hostname does not match the presented certificate's host @@ -155,9 +171,11 @@ defaults to GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT." (if gnutls-algorithm-priority (upcase gnutls-algorithm-priority) "NORMAL"))))) + (min-prime-bits (or min-prime-bits gnutls-min-prime-bits)) (params `(:priority ,priority-string :hostname ,hostname :loglevel ,gnutls-log-level + :min-prime-bits ,min-prime-bits :trustfiles ,trustfiles :crlfiles ,crlfiles :keylist ,keylist diff --git a/src/ChangeLog b/src/ChangeLog index 8b9f2935347..56c7a148416 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-07-09 Lawrence Mitchell + + * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable. + (Fgnutls_boot): Use it. + 2011-07-15 Andreas Schwab * doc.c (Fsubstitute_command_keys): Revert last change. diff --git a/src/gnutls.c b/src/gnutls.c index 3761951b866..fdc0c13a53b 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -50,6 +50,7 @@ static Lisp_Object Qgnutls_bootprop_crlfiles; static Lisp_Object Qgnutls_bootprop_callbacks; static Lisp_Object Qgnutls_bootprop_loglevel; static Lisp_Object Qgnutls_bootprop_hostname; +static Lisp_Object Qgnutls_bootprop_min_prime_bits; static Lisp_Object Qgnutls_bootprop_verify_flags; static Lisp_Object Qgnutls_bootprop_verify_hostname_error; @@ -105,6 +106,8 @@ DEF_GNUTLS_FN (int, gnutls_certificate_verify_peers2, DEF_GNUTLS_FN (int, gnutls_credentials_set, (gnutls_session_t, gnutls_credentials_type_t, void *)); DEF_GNUTLS_FN (void, gnutls_deinit, (gnutls_session_t)); +DEF_GNUTLS_FN (void, gnutls_dh_set_prime_bits, + (gnutls_session_t, unsigned int)); DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int)); DEF_GNUTLS_FN (int, gnutls_global_init, (void)); DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func)); @@ -169,6 +172,7 @@ init_gnutls_functions (Lisp_Object libraries) LOAD_GNUTLS_FN (library, gnutls_certificate_verify_peers2); LOAD_GNUTLS_FN (library, gnutls_credentials_set); LOAD_GNUTLS_FN (library, gnutls_deinit); + LOAD_GNUTLS_FN (library, gnutls_dh_set_prime_bits); LOAD_GNUTLS_FN (library, gnutls_error_is_fatal); LOAD_GNUTLS_FN (library, gnutls_global_init); LOAD_GNUTLS_FN (library, gnutls_global_set_log_function); @@ -218,6 +222,7 @@ init_gnutls_functions (Lisp_Object libraries) #define fn_gnutls_certificate_verify_peers2 gnutls_certificate_verify_peers2 #define fn_gnutls_credentials_set gnutls_credentials_set #define fn_gnutls_deinit gnutls_deinit +#define fn_gnutls_dh_set_prime_bits gnutls_dh_set_prime_bits #define fn_gnutls_error_is_fatal gnutls_error_is_fatal #define fn_gnutls_global_init gnutls_global_init #define fn_gnutls_global_set_log_function gnutls_global_set_log_function @@ -646,6 +651,9 @@ gnutls_certificate_set_verify_flags. :verify-hostname-error, if non-nil, makes a hostname mismatch an error. Otherwise it will be just a warning. +:min-prime-bits is the minimum accepted number of bits the client will +accept in Diffie-Hellman key exchange. + The debug level will be set for this process AND globally for GnuTLS. So if you set it higher or lower at any point, it affects global debugging. @@ -698,6 +706,7 @@ one trustfile (usually a CA bundle). */) Lisp_Object verify_flags; /* Lisp_Object verify_error; */ Lisp_Object verify_hostname_error; + Lisp_Object prime_bits; CHECK_PROCESS (proc); CHECK_SYMBOL (type); @@ -719,6 +728,7 @@ one trustfile (usually a CA bundle). */) verify_flags = Fplist_get (proplist, Qgnutls_bootprop_verify_flags); /* verify_error = Fplist_get (proplist, Qgnutls_bootprop_verify_error); */ verify_hostname_error = Fplist_get (proplist, Qgnutls_bootprop_verify_hostname_error); + prime_bits = Fplist_get (proplist, Qgnutls_bootprop_min_prime_bits); if (!STRINGP (hostname)) error ("gnutls-boot: invalid :hostname parameter"); @@ -936,6 +946,11 @@ one trustfile (usually a CA bundle). */) GNUTLS_INITSTAGE (proc) = GNUTLS_STAGE_PRIORITY; + if (!EQ (prime_bits, Qnil)) + { + fn_gnutls_dh_set_prime_bits (state, XUINT (prime_bits)); + } + if (EQ (type, Qgnutls_x509pki)) { ret = fn_gnutls_credentials_set (state, GNUTLS_CRD_CERTIFICATE, x509_cred); @@ -1114,6 +1129,7 @@ syms_of_gnutls (void) DEFSYM (Qgnutls_bootprop_crlfiles, ":crlfiles"); DEFSYM (Qgnutls_bootprop_callbacks, ":callbacks"); DEFSYM (Qgnutls_bootprop_callbacks_verify, "verify"); + DEFSYM (Qgnutls_bootprop_min_prime_bits, ":min-prime-bits"); DEFSYM (Qgnutls_bootprop_loglevel, ":loglevel"); DEFSYM (Qgnutls_bootprop_verify_flags, ":verify-flags"); DEFSYM (Qgnutls_bootprop_verify_hostname_error, ":verify-hostname-error"); From 4baf28e6167c7925d0caf10388eb5b2020709480 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 15 Jul 2011 20:43:23 +0200 Subject: [PATCH 28/48] * doc/lispref/help.texi (Keys in Documentation): Revert last change. --- doc/lispref/ChangeLog | 4 ++++ doc/lispref/help.texi | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index d18a72ef6d7..033c2fec65b 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2011-07-15 Andreas Schwab + + * help.texi (Keys in Documentation): Revert last change. + 2011-07-15 Lars Magne Ingebrigtsen * help.texi (Keys in Documentation): Clarify that \= only quotes diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 4e5bb1b247c..0ce05d55a07 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -324,8 +324,9 @@ specifies @var{mapvar}'s value as the keymap for any following @samp{\[@var{command}]} sequences in this documentation string. @item \= -quotes the following character and is discarded; thus, @samp{\=\} puts -@samp{\} into the output. +quotes the following character and is discarded; thus, @samp{\=\[} puts +@samp{\[} into the output, and @samp{\=\=} puts @samp{\=} into the +output. @end table @strong{Please note:} Each @samp{\} must be doubled when written in a From 6ccf7859d6814efcfe7745e1fdd4a2b5964a8952 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 15 Jul 2011 18:53:39 -0400 Subject: [PATCH 29/48] * lisp/subr.el (read-char-choice): Allow quitting. (Bug#9001) --- lisp/ChangeLog | 4 ++++ lisp/subr.el | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6bfdb61330b..1a2c8daed5b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2011-07-15 Glenn Morris + + * subr.el (read-char-choice): Allow quitting. (Bug#9001) + 2011-07-09 Lawrence Mitchell * net/gnutls.el (gnutls-min-prime-bits): New variable. diff --git a/lisp/subr.el b/lisp/subr.el index 94b28c007d1..d462283b7bd 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2161,7 +2161,9 @@ keyboard-quit events while waiting for a valid input." ;; read-event returns -1 if we are in a kbd macro and ;; there are no more events in the macro. Attempt to ;; get an event interactively. - (setq executing-kbd-macro nil))))) + (setq executing-kbd-macro nil)) + ((and (not inhibit-keyboard-quit) (eq char ?\C-g)) + (keyboard-quit))))) ;; Display the question with the answer. But without cursor-in-echo-area. (message "%s%s" prompt (char-to-string char)) char)) From c152c1d6bea9addaedf7a99eb33ff4d327ce7a5a Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Fri, 15 Jul 2011 23:16:19 +0000 Subject: [PATCH 30/48] Merge changes made in Gnus trunk. gnus.el (debbugs-gnu): Renamed from debbugs-emacs. message.el (message-reply): Work around mysterious bug where `message-mode' seems to overwrite the locally bound `subject' variable. --- lisp/gnus/ChangeLog | 7 +++++++ lisp/gnus/gnus.el | 5 ++--- lisp/gnus/message.el | 27 +++++++++++++-------------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index e3321ab30c5..9491612a883 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,10 @@ +2011-07-15 Lars Magne Ingebrigtsen + + * gnus.el (debbugs-gnu): Renamed from debbugs-emacs. + + * message.el (message-reply): Work around mysterious bug where + `message-mode' seems to overwrite the locally bound `subject' variable. + 2011-07-14 Andrew Cohen * nnimap.el (nnimap-request-thread): Ensure search is performed in diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index ac7db0e1d69..b66d5f22474 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -4381,12 +4381,11 @@ prompt the user for the name of an NNTP server to use." (gnus-1 arg dont-connect slave) (gnus-final-warning))) -(autoload 'debbugs-emacs "debbugs-gnu") +(autoload 'debbugs-gnu "debbugs-gnu") (defun gnus-list-debbugs () "List all open Gnus bug reports." (interactive) - (debbugs-emacs '("important" "normal" "minor" "wishlist") - "gnus")) + (debbugs-gnu nil "gnus")) ;; Allow redefinition of Gnus functions. diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 7d7cc01225b..ffc6a680ef8 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -6878,20 +6878,19 @@ Useful functions to put in this list include: (unless follow-to (setq follow-to (message-get-reply-headers wide to-address)))) - (unless (message-mail-user-agent) - (message-pop-to-buffer - (message-buffer-name - (if wide "wide reply" "reply") from - (if wide to-address nil)) - switch-function)) - - (setq message-reply-headers - (vector 0 subject from date message-id references 0 0 "")) - - (message-setup - `((Subject . ,subject) - ,@follow-to) - cur))) + (let ((headers + `((Subject . ,subject) + ,@follow-to))) + (unless (message-mail-user-agent) + (message-pop-to-buffer + (message-buffer-name + (if wide "wide reply" "reply") from + (if wide to-address nil)) + switch-function)) + (setq message-reply-headers + (vector 0 (cdr (assq 'Subject headers)) + from date message-id references 0 0 "")) + (message-setup headers cur)))) ;;;###autoload (defun message-wide-reply (&optional to-address) From 03ea5b873a2f8c5d19bfe0e5682a9700e86d1160 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 15 Jul 2011 19:59:25 -0400 Subject: [PATCH 31/48] * lisp/subr.el (read-char-choice): Respect help-form. (Bug#9001) --- lisp/ChangeLog | 1 + lisp/subr.el | 43 ++++++++++++++++++++++++++----------------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1a2c8daed5b..5efd11e542b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,6 +1,7 @@ 2011-07-15 Glenn Morris * subr.el (read-char-choice): Allow quitting. (Bug#9001) + Respect help-form. 2011-07-09 Lawrence Mitchell diff --git a/lisp/subr.el b/lisp/subr.el index d462283b7bd..ef19797012a 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2145,25 +2145,34 @@ If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore keyboard-quit events while waiting for a valid input." (unless (consp chars) (error "Called `read-char-choice' without valid char choices")) - (let (char done) + (let (char done show-help (helpbuf " *Char Help*")) (let ((cursor-in-echo-area t) (executing-kbd-macro executing-kbd-macro)) - (while (not done) - (unless (get-text-property 0 'face prompt) - (setq prompt (propertize prompt 'face 'minibuffer-prompt))) - (setq char (let ((inhibit-quit inhibit-keyboard-quit)) - (read-key prompt))) - (cond - ((not (numberp char))) - ((memq char chars) - (setq done t)) - ((and executing-kbd-macro (= char -1)) - ;; read-event returns -1 if we are in a kbd macro and - ;; there are no more events in the macro. Attempt to - ;; get an event interactively. - (setq executing-kbd-macro nil)) - ((and (not inhibit-keyboard-quit) (eq char ?\C-g)) - (keyboard-quit))))) + (save-window-excursion ; in case we call help-form-show + (while (not done) + (unless (get-text-property 0 'face prompt) + (setq prompt (propertize prompt 'face 'minibuffer-prompt))) + (setq char (let ((inhibit-quit inhibit-keyboard-quit)) + (read-key prompt))) + (and show-help (buffer-live-p helpbuf) + (kill-buffer helpbuf)) + (cond + ((not (numberp char))) + ;; If caller has set help-form, that's enough. + ;; They don't explicitly have to add help-char to chars. + ((and help-form + (eq char help-char) + (setq show-help t) + (help-form-show))) + ((memq char chars) + (setq done t)) + ((and executing-kbd-macro (= char -1)) + ;; read-event returns -1 if we are in a kbd macro and + ;; there are no more events in the macro. Attempt to + ;; get an event interactively. + (setq executing-kbd-macro nil)) + ((and (not inhibit-keyboard-quit) (eq char ?\C-g)) + (keyboard-quit)))))) ;; Display the question with the answer. But without cursor-in-echo-area. (message "%s%s" prompt (char-to-string char)) char)) From be39b8cc93dca884ea46ec92f008a1bd2f27d53e Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Sat, 16 Jul 2011 15:02:51 +0200 Subject: [PATCH 32/48] To fixes wrt window selection and buffer list. * frame.el (select-frame-set-input-focus): New argument NORECORD. * window.el (pop-to-buffer): Select window used even if it was selected before, see discussion of (Bug#8615), (Bug#6954). Pass argument NORECORD on to select-frame-set-input-focus. --- lisp/ChangeLog | 8 ++++++++ lisp/frame.el | 9 ++++++--- lisp/window.el | 18 ++++++++---------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5efd11e542b..d22a6f081cd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2011-07-16 Martin Rudalics + + * frame.el (select-frame-set-input-focus): New argument + NORECORD. + * window.el (pop-to-buffer): Select window used even if it was + selected before, see discussion of (Bug#8615), (Bug#6954). Pass + argument NORECORD on to select-frame-set-input-focus. + 2011-07-15 Glenn Morris * subr.el (read-char-choice): Allow quitting. (Bug#9001) diff --git a/lisp/frame.el b/lisp/frame.el index d6f82750347..8fea4f05147 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -747,12 +747,15 @@ the user during startup." (declare-function x-focus-frame "xfns.c" (frame)) -(defun select-frame-set-input-focus (frame) +(defun select-frame-set-input-focus (frame &optional norecord) "Select FRAME, raise it, and set input focus, if possible. If `mouse-autoselect-window' is non-nil, also move mouse pointer to FRAME's selected window. Otherwise, if `focus-follows-mouse' -is non-nil, move mouse cursor to FRAME." - (select-frame frame) +is non-nil, move mouse cursor to FRAME. + +Optional argument NORECORD means to neither change the order of +recently selected windows nor the buffer list." + (select-frame frame norecord) (raise-frame frame) ;; Ensure, if possible, that FRAME gets input focus. (when (memq (window-system frame) '(x w32 ns)) diff --git a/lisp/window.el b/lisp/window.el index 4f21bb05397..b4b900287e1 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -3272,7 +3272,7 @@ window." (defun split-window-side-by-side (&optional size) "Split selected window into two windows side by side. The selected window becomes the left one and gets SIZE columns. -SIZE negative means the right window gets -SIZE lines. +SIZE negative means the right window gets -SIZE columns. SIZE includes the width of the window's scroll bar; if there are no scroll bars, it includes the width of the divider column to @@ -5836,15 +5836,13 @@ additional information." new-window new-frame) (set-buffer buffer) (setq new-window (display-buffer buffer specifiers label)) - (unless (eq new-window old-window) - ;; `display-buffer' has chosen another window, select it. - (select-window new-window norecord) - (setq new-frame (window-frame new-window)) - (unless (eq new-frame old-frame) - ;; `display-buffer' has chosen another frame, make sure it gets - ;; input focus and is risen. - (select-frame-set-input-focus new-frame))) - + (setq new-frame (window-frame new-window)) + (if (eq old-frame new-frame) + ;; Make sure new-window gets selected (Bug#8615), (Bug#6954). + (select-window new-window norecord) + ;; `display-buffer' has chosen another frame, make sure it gets + ;; input focus and is risen. + (select-frame-set-input-focus new-frame norecord)) buffer)) (defsubst pop-to-buffer-same-window (&optional buffer-or-name norecord label) From 0794775d0d97c4f7291cc3954711a30447117963 Mon Sep 17 00:00:00 2001 From: Lawrence Mitchell Date: Sat, 16 Jul 2011 17:52:46 +0200 Subject: [PATCH 33/48] Silence byte-compiler warning with :read-only defstruct slots * emacs-lisp/cl-macs.el (defstruct): Ignore argument to setf method if slot is read-only. Fixes: debbugs:9035 --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/cl-macs.el | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d22a6f081cd..a4c3f0c9217 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-07-16 Lawrence Mitchell + + * emacs-lisp/cl-macs.el (defstruct): Ignore argument to setf + method if slot is read-only (bug#9035). + 2011-07-16 Martin Rudalics * frame.el (select-frame-set-input-focus): New argument diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 5b6d08472f1..d6b4643d6a4 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2396,8 +2396,10 @@ value, that slot cannot be set via `setf'. (push (cons accessor t) side-eff) (push (list 'define-setf-method accessor '(cl-x) (if (cadr (memq :read-only (cddr desc))) - (list 'error (format "%s is a read-only slot" - accessor)) + (list 'progn '(ignore cl-x) + (list 'error + (format "%s is a read-only slot" + 'accessor))) ;; If cl is loaded only for compilation, ;; the call to cl-struct-setf-expander would ;; cause a warning because it may not be From 8020905afef0ff70f4dacf890d81050a2eb54874 Mon Sep 17 00:00:00 2001 From: Bill Wohler Date: Sat, 16 Jul 2011 09:15:43 -0700 Subject: [PATCH 34/48] * NEWS, MH-E-NEWS: Update for MH-E release 8.2.92. --- etc/ChangeLog | 6 ++++++ etc/MH-E-NEWS | 16 ++++++++++++++-- etc/NEWS | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/etc/ChangeLog b/etc/ChangeLog index bfe584c69a1..cf856429f01 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,9 @@ +2011-07-16 Bill Wohler + + Release MH-E version 8.2.92. + + * NEWS, MH-E-NEWS: Update for MH-E release 8.2.92. + 2011-07-12 Bill Wohler Release MH-E version 8.2.91. diff --git a/etc/MH-E-NEWS b/etc/MH-E-NEWS index a46354d7b7b..b5b2a8b5867 100644 --- a/etc/MH-E-NEWS +++ b/etc/MH-E-NEWS @@ -3,6 +3,11 @@ Copyright (C) 2001-2011 Free Software Foundation, Inc. See the end of the file for license conditions. +* Changes in MH-E 8.2.92 + +Version 8.2.92 actually corrects the error in the modeline glyph when +running XEmacs 21.5.31 in a terminal. + * Changes in MH-E 8.2.91 Version 8.2.91 fixes the folder window problem that was introduced @@ -14,8 +19,6 @@ from SourceForge and explicitly load MH-E will have to be change their `load-path' to "/path/to/mh-e/emacs/trunk/lisp/mh-e" instead. Note the addition of "trunk." -This version of MH-E is packaged with GNU Emacs 24.1 - * Changes in MH-E 8.2.90 In 2010, the version control system (VCS) of Emacs was upgraded from @@ -32,6 +35,15 @@ meaning that `+f/b/b TAB' can complete to `+foo/bar/baz'. Also, RFC 2047-encoded Subject header fields in replies are now decoded. +This version of MH-E is packaged with GNU Emacs 24.1 + +** Bug Fixes in MH-E 8.2.90 + +*** Make mh-showing a legitimate minor mode + +The `mh-showing-mode' variable is now defined with `define-minor-mode' +(closes SF #482666). + * Changes in MH-E 8.2 diff --git a/etc/NEWS b/etc/NEWS index 11acbd8c42d..70793c7c1d6 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -488,7 +488,7 @@ $ESHELL nor variable `explicit-shell-file-name' is set. ** MH-E -*** Upgraded to MH-E version 8.2.91. See MH-E-NEWS for details. +*** Upgraded to MH-E version 8.2.92. See MH-E-NEWS for details. ** comint and modes derived from it use the generic completion code. From b53a9f73f71ae87430f8341364b253a3466c117b Mon Sep 17 00:00:00 2001 From: Bill Wohler Date: Sat, 16 Jul 2011 09:16:34 -0700 Subject: [PATCH 35/48] * mh-e.el (Version, mh-version): Update for release 8.2.92. --- lisp/mh-e/ChangeLog | 6 ++++++ lisp/mh-e/mh-e.el | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index df4edcc75e1..431c15b2346 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog @@ -1,3 +1,9 @@ +2011-07-16 Bill Wohler + + Release MH-E version 8.2.92. + + * mh-e.el (Version, mh-version): Update for release 8.2.92. + 2011-07-12 Bill Wohler Release MH-E version 8.2.91. diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index 51b41e854b0..1e7b07eb6dc 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el @@ -5,7 +5,7 @@ ;; Author: Bill Wohler ;; Maintainer: Bill Wohler -;; Version: 8.2.91 +;; Version: 8.2.92 ;; Keywords: mail ;; This file is part of GNU Emacs. @@ -127,7 +127,7 @@ ;; Try to keep variables local to a single file. Provide accessors if ;; variables are shared. Use this section as a last resort. -(defconst mh-version "8.2.91" "Version number of MH-E.") +(defconst mh-version "8.2.92" "Version number of MH-E.") ;; Variants From 011b0ad6b50df387f266e86cf818810a16e9f01f Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 16 Jul 2011 19:58:16 +0200 Subject: [PATCH 36/48] Document toolkit differences for menus (Toolkit Differences): New node with text from Tim Cross (tiny change) and Glenn Morris. --- doc/lispref/ChangeLog | 5 +++++ doc/lispref/keymaps.texi | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 033c2fec65b..8eca2ccf52b 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2011-07-16 Lars Magne Ingebrigtsen + + * keymaps.texi (Toolkit Differences): New node with text from Tim + Cross (tiny change) and Glenn Morris. + 2011-07-15 Andreas Schwab * help.texi (Keys in Documentation): Revert last change. diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index 15b2f2079ba..95f798c21d4 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -2019,8 +2019,10 @@ an existing menu, you can specify its position in the menu using various features. * Menu Separators:: Drawing a horizontal line through a menu. * Alias Menu Items:: Using command aliases in menu items. +* Toolkit Differences:: Not all toolkits provide the same features. @end menu + @node Simple Menu Items @subsubsection Simple Menu Items @@ -2309,6 +2311,28 @@ itself). To request this, give the alias symbol a non-@code{nil} causes menu items for @code{make-read-only} and @code{make-writable} to show the keyboard bindings for @code{toggle-read-only}. +@node Toolkit Differences +@subsubsection Toolkit Differences + +The various toolkits with which you can build Emacs do not all support +the same set of features for menus. Some code works as expected with +one toolkit, but not under another. + +For example: menu actions or buttons in a top-level menu-bar. The +following works with the Lucid toolkit or on MS Windows, but not with +GTK or Nextstep, where clicking on the item has no effect. + +@example +(defun menu-action-greet () + (interactive) + (message "Hello Emacs User!")) + +(defun top-level-menu () + (interactive) + (define-key lisp-interaction-mode-map [menu-bar m] + '(menu-item "Action Button" menu-action-greet))) +@end example + @node Mouse Menus @subsection Menus and the Mouse From dd88932771fc7b16428b185fe93f7f696b489c7e Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 16 Jul 2011 20:27:08 +0200 Subject: [PATCH 37/48] Use the same condition for POLL_FOR_INPUT in both keyboard.c and process.c Fixes: debbugs:1858 --- src/ChangeLog | 5 +++++ src/process.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 56c7a148416..3c50cbb1d03 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-07-16 Lars Magne Ingebrigtsen + + * process.c: Use the same condition for POLL_FOR_INPUT in both + keyboard.c and process.c (bug#1858). + 2011-07-09 Lawrence Mitchell * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable. diff --git a/src/process.c b/src/process.c index 1a884357b86..236c27e5c3a 100644 --- a/src/process.c +++ b/src/process.c @@ -245,7 +245,7 @@ static void create_pty (Lisp_Object); /* If we support a window system, turn on the code to poll periodically to detect C-g. It isn't actually used when doing interrupt input. */ -#ifdef HAVE_WINDOW_SYSTEM +#if defined(HAVE_WINDOW_SYSTEM) && !defined(USE_ASYNC_EVENTS) #define POLL_FOR_INPUT #endif From f019fb210628549b661bf7ebaa40e136df205af4 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 16 Jul 2011 20:39:01 +0200 Subject: [PATCH 38/48] * simple.el (current-kill): Clarify what `interprogram-paste-function' does. Apparently I forgot to check in simple.el last time and just checked in the ChangeLog. Fixes: debbugs:7500 --- lisp/ChangeLog | 5 +++++ lisp/simple.el | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a4c3f0c9217..06201dd4146 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-07-16 Lars Magne Ingebrigtsen + + * simple.el (current-kill): Clarify what + `interprogram-paste-function' does (bug#7500). + 2011-07-16 Lawrence Mitchell * emacs-lisp/cl-macs.el (defstruct): Ignore argument to setf diff --git a/lisp/simple.el b/lisp/simple.el index 64333402924..5dbe1e39794 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -3056,10 +3056,11 @@ If `interprogram-cut-function' is set, pass the resulting kill to it." (defun current-kill (n &optional do-not-move) "Rotate the yanking point by N places, and then return that kill. -If N is zero, `interprogram-paste-function' is set, and calling -it returns a string or list of strings, then that string (or -list) is added to the front of the kill ring and the string (or -first string in the list) is returned as the latest kill. +If N is zero and `interprogram-paste-function' is set to a +function that returns a string or a list of strings, and if that +function doesn't return nil, then that string (or list) is added +to the front of the kill ring and the string (or first string in +the list) is returned as the latest kill. If N is not zero, and if `yank-pop-change-selection' is non-nil, use `interprogram-cut-function' to transfer the From ca425c7c87bc939777a1dceea7fbe1fe563bc3ca Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 16 Jul 2011 20:42:38 +0200 Subject: [PATCH 39/48] Document `auto-fill-function' in relation to `auto-fill-mode' Fixes: debbugs:2470 --- lisp/ChangeLog | 2 ++ lisp/simple.el | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 06201dd4146..6ac0dd3d0b1 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -2,6 +2,8 @@ * simple.el (current-kill): Clarify what `interprogram-paste-function' does (bug#7500). + (auto-fill-mode): Document `auto-fill-function' in relation to + `auto-fill-mode' (bug#2470). 2011-07-16 Lawrence Mitchell diff --git a/lisp/simple.el b/lisp/simple.el index 5dbe1e39794..7fd7e20b499 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5237,14 +5237,16 @@ Some major modes set this.") ;; auto-fill-function to nil in a file-local setting is safe and ;; can be useful to prevent auto-filling. (put 'auto-fill-function 'safe-local-variable 'null) -;; FIXME: turn into a proper minor mode. -;; Add a global minor mode version of it. + (define-minor-mode auto-fill-mode "Toggle Auto Fill mode. With ARG, turn Auto Fill mode on if and only if ARG is positive. In Auto Fill mode, inserting a space at a column beyond `current-fill-column' automatically breaks the line at a previous space. +When `auto-fill-mode' is on, the `auto-fill-function' variable is +non-`nil'. + The value of `normal-auto-fill-function' specifies the function to use for `auto-fill-function' when turning Auto Fill mode on." :variable (eq auto-fill-function normal-auto-fill-function)) From c82f64de3f319e15b3cc8e08cd3bfa69e69aa4eb Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 16 Jul 2011 21:38:25 +0200 Subject: [PATCH 40/48] Make docview error message clearer * doc-view.el (doc-view-make-safe-dir): Rewrite the error message to clarify what the problem is (bug#4291). --- lisp/ChangeLog | 3 +++ lisp/doc-view.el | 29 +++++++++++++++++------------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6ac0dd3d0b1..48f61a55552 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2011-07-16 Lars Magne Ingebrigtsen + * doc-view.el (doc-view-make-safe-dir): Rewrite the error message + to clarify what the problem is (bug#4291). + * simple.el (current-kill): Clarify what `interprogram-paste-function' does (bug#7500). (auto-fill-mode): Document `auto-fill-function' in relation to diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 666c6a8b034..872b2172c7e 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -569,18 +569,18 @@ at the top edge of the page moves to the previous page." (defun doc-view-make-safe-dir (dir) (condition-case nil (let ((umask (default-file-modes))) - (unwind-protect - (progn - ;; Create temp files with strict access rights. It's easy to - ;; loosen them later, whereas it's impossible to close the - ;; time-window of loose permissions otherwise. - (set-default-file-modes #o0700) - (make-directory dir)) - ;; Reset the umask. - (set-default-file-modes umask))) + (unwind-protect + (progn + ;; Create temp files with strict access rights. It's easy to + ;; loosen them later, whereas it's impossible to close the + ;; time-window of loose permissions otherwise. + (set-default-file-modes #o0700) + (make-directory dir)) + ;; Reset the umask. + (set-default-file-modes umask))) (file-already-exists - (if (file-symlink-p dir) - (error "Danger: %s points to a symbolic link" dir)) + (when (file-symlink-p dir) + (error "Danger: %s points to a symbolic link" dir)) ;; In case it was created earlier with looser rights. ;; We could check the mode info returned by file-attributes, but it's ;; a pain to parse and it may not tell you what we want under @@ -589,7 +589,12 @@ at the top edge of the page moves to the previous page." ;; This also ends up checking a bunch of useful conditions: it makes ;; sure we have write-access to the directory and that we own it, thus ;; closing a bunch of security holes. - (set-file-modes dir #o0700)))) + (condition-case error + (set-file-modes dir #o0700) + (file-error + (error + (format "Unable to use temporary directory %s: %s" + dir (mapconcat 'identity (cdr error) " ")))))))) (defun doc-view-current-cache-dir () "Return the directory where the png files of the current doc should be saved. From aa57197f1f28ae6c54257f61ce40152cc095b7ae Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 16 Jul 2011 13:02:57 -0700 Subject: [PATCH 41/48] Grammar tweak. --- doc/lispref/keymaps.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index 95f798c21d4..e5cca0622a9 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -2318,7 +2318,7 @@ The various toolkits with which you can build Emacs do not all support the same set of features for menus. Some code works as expected with one toolkit, but not under another. -For example: menu actions or buttons in a top-level menu-bar. The +One example is menu actions or buttons in a top-level menu-bar. The following works with the Lucid toolkit or on MS Windows, but not with GTK or Nextstep, where clicking on the item has no effect. From 3ee3a1b5386a4df89314aa10ee1e596ae3d60446 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 16 Jul 2011 22:01:37 +0200 Subject: [PATCH 42/48] Make `buffer-offer-save' permanently local Fixes: debbugs:6241 --- lisp/ChangeLog | 2 ++ lisp/files.el | 1 + 2 files changed, 3 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 48f61a55552..a6b66ca2678 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2011-07-16 Lars Magne Ingebrigtsen + * files.el (buffer-offer-save): Made permanently local (bug#6241). + * doc-view.el (doc-view-make-safe-dir): Rewrite the error message to clarify what the problem is (bug#4291). diff --git a/lisp/files.el b/lisp/files.el index 0b253fcc297..6b8a352f20c 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -151,6 +151,7 @@ Automatically local in all buffers." :type 'boolean :group 'backup) (make-variable-buffer-local 'buffer-offer-save) +(put 'buffer-offer-save 'permanent-local t) (defcustom find-file-existing-other-name t "Non-nil means find a file under alternative names, in existing buffers. From 67f9b9f8b0794d8bfd279190794abf75aedddda4 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 16 Jul 2011 13:05:20 -0700 Subject: [PATCH 43/48] ChangeLog fix. --- doc/lispref/ChangeLog | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 8eca2ccf52b..091a6ffda59 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,7 +1,8 @@ 2011-07-16 Lars Magne Ingebrigtsen + Tim Cross (tiny change) + Glenn Morris - * keymaps.texi (Toolkit Differences): New node with text from Tim - Cross (tiny change) and Glenn Morris. + * keymaps.texi (Toolkit Differences): New node. (Bug#8176) 2011-07-15 Andreas Schwab From 81746738bbd5e36291e684c74ffef08e43405b10 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 16 Jul 2011 22:05:54 +0200 Subject: [PATCH 44/48] Include EN DASH as an indentation character * textmodes/fill.el (adaptive-fill-regexp): Include EN DASH as an indentation character. Fixes: debbugs:6380 --- lisp/ChangeLog | 3 +++ lisp/textmodes/fill.el | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a6b66ca2678..186917010ab 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2011-07-16 Lars Magne Ingebrigtsen + * textmodes/fill.el (adaptive-fill-regexp): Include EN DASH as an + indentation character (bug#6380). + * files.el (buffer-offer-save): Made permanently local (bug#6241). * doc-view.el (doc-view-make-safe-dir): Rewrite the error message diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index b264cc30850..52f6e5b4889 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -93,7 +93,7 @@ reinserts the fill prefix in each resulting line." ;; Added `!' for doxygen comments starting with `//!' or `/*!'. ;; Added `%' for TeX comments. ;; RMS: deleted the code to match `1.' and `(1)'. - (purecopy "[ \t]*\\([-!|#%;>*·•‣⁃◦]+[ \t]*\\)*") + (purecopy "[ \t]*\\([-–!|#%;>*·•‣⁃◦]+[ \t]*\\)*") "Regexp to match text at start of line that constitutes indentation. If Adaptive Fill mode is enabled, a prefix matching this pattern on the first and second lines of a paragraph is used as the From a80314570479945eb610a4f3f30fd6e82100195d Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 16 Jul 2011 14:53:38 -0700 Subject: [PATCH 45/48] * fileio.c (Fcopy_file): Don't diagnose fchown failures. Fixes: debbugs:9002 --- src/ChangeLog | 4 ++++ src/fileio.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3c50cbb1d03..961b3e0234a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-07-16 Paul Eggert + + * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002) + 2011-07-16 Lars Magne Ingebrigtsen * process.c: Use the same condition for POLL_FOR_INPUT in both diff --git a/src/fileio.c b/src/fileio.c index c6f8dfe4683..de822cdb466 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1959,8 +1959,8 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */) owner and group. */ if (input_file_statable_p) { - if (!NILP (preserve_uid_gid) && fchown (ofd, st.st_uid, st.st_gid) != 0) - report_file_error ("Doing chown", Fcons (newname, Qnil)); + if (!NILP (preserve_uid_gid)) + fchown (ofd, st.st_uid, st.st_gid); if (fchmod (ofd, st.st_mode & 07777) != 0) report_file_error ("Doing chmod", Fcons (newname, Qnil)); } From 750c33f71e7281e651f7315689f9085a1d0894d7 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sun, 17 Jul 2011 00:49:20 +0200 Subject: [PATCH 46/48] Move the defintion of `gnutls-log-level' to the C level to avoid loading problems --- lisp/ChangeLog | 2 ++ lisp/net/gnutls.el | 5 ----- src/ChangeLog | 3 +++ src/gnutls.c | 16 ++++++++-------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 186917010ab..15f742ed91a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2011-07-16 Lars Magne Ingebrigtsen + * net/gnutls.el (gnutls-log-level): Removed. + * textmodes/fill.el (adaptive-fill-regexp): Include EN DASH as an indentation character (bug#6380). diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el index edbf9a54afc..9cb071b185d 100644 --- a/lisp/net/gnutls.el +++ b/lisp/net/gnutls.el @@ -42,11 +42,6 @@ :prefix "gnutls-" :group 'net-utils) -(defcustom gnutls-log-level 0 - "Logging level to be used by `starttls-negotiate' and GnuTLS." - :type 'integer - :group 'gnutls) - (defcustom gnutls-algorithm-priority nil "If non-nil, this should be a TLS priority string. For instance, if you want to skip the \"dhe-rsa\" algorithm, diff --git a/src/ChangeLog b/src/ChangeLog index 961b3e0234a..27a375c978d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -4,6 +4,9 @@ 2011-07-16 Lars Magne Ingebrigtsen + * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since + it's used from the C level. + * process.c: Use the same condition for POLL_FOR_INPUT in both keyboard.c and process.c (bug#1858). diff --git a/src/gnutls.c b/src/gnutls.c index fdc0c13a53b..52e80a69ae5 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -35,7 +35,6 @@ static int emacs_gnutls_handle_error (gnutls_session_t, int err); static Lisp_Object Qgnutls_dll; -static Lisp_Object Qgnutls_log_level; static Lisp_Object Qgnutls_code; static Lisp_Object Qgnutls_anon, Qgnutls_x509pki; static Lisp_Object Qgnutls_e_interrupted, Qgnutls_e_again, @@ -146,7 +145,6 @@ static int init_gnutls_functions (Lisp_Object libraries) { HMODULE library; - Lisp_Object gnutls_log_level = Fsymbol_value (Qgnutls_log_level); int max_log_level = 1; if (!(library = w32_delayed_load (libraries, Qgnutls_dll))) @@ -195,8 +193,8 @@ init_gnutls_functions (Lisp_Object libraries) LOAD_GNUTLS_FN (library, gnutls_x509_crt_import); LOAD_GNUTLS_FN (library, gnutls_x509_crt_init); - if (NUMBERP (gnutls_log_level)) - max_log_level = XINT (gnutls_log_level); + if (NUMBERP (Vgnutls_log_level)) + max_log_level = XINT (Vgnutls_log_level); GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:", SDATA (Fget (Qgnutls_dll, QCloaded_from))); @@ -399,7 +397,6 @@ emacs_gnutls_read (struct Lisp_Process *proc, char *buf, EMACS_INT nbyte) static int emacs_gnutls_handle_error (gnutls_session_t session, int err) { - Lisp_Object gnutls_log_level = Fsymbol_value (Qgnutls_log_level); int max_log_level = 0; int ret; @@ -409,8 +406,8 @@ emacs_gnutls_handle_error (gnutls_session_t session, int err) if (err >= 0) return 0; - if (NUMBERP (gnutls_log_level)) - max_log_level = XINT (gnutls_log_level); + if (NUMBERP (Vgnutls_log_level)) + max_log_level = XINT (Vgnutls_log_level); /* TODO: use gnutls-error-fatalp and gnutls-error-string. */ @@ -1118,7 +1115,6 @@ syms_of_gnutls (void) gnutls_global_initialized = 0; DEFSYM (Qgnutls_dll, "gnutls"); - DEFSYM (Qgnutls_log_level, "gnutls-log-level"); DEFSYM (Qgnutls_code, "gnutls-code"); DEFSYM (Qgnutls_anon, "gnutls-anon"); DEFSYM (Qgnutls_x509pki, "gnutls-x509pki"); @@ -1158,6 +1154,10 @@ syms_of_gnutls (void) defsubr (&Sgnutls_deinit); defsubr (&Sgnutls_bye); defsubr (&Sgnutls_available_p); + + DEFVAR_INT ("gnutls-log-level", Vgnutls_log_level, + doc: /* Logging level used by the GnuTLS functions. */); + Vgnutls_log_level = make_number (0); } #endif /* HAVE_GNUTLS */ From b56414357f0437381231bebf4c38baee9d7e86a8 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Sun, 17 Jul 2011 01:40:44 +0200 Subject: [PATCH 47/48] src/makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059). --- src/ChangeLog | 4 ++++ src/makefile.w32-in | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 27a375c978d..7f8717176b0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-07-16 Juanma Barranquero + + * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059). + 2011-07-16 Paul Eggert * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002) diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 88b53554925..fd29dec9096 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -221,7 +221,8 @@ GLOBAL_SOURCES = dosfns.c msdos.c \ syntax.c bytecode.c \ process.c callproc.c unexw32.c \ region-cache.c sound.c atimer.c \ - doprnt.c intervals.c textprop.c composite.c + doprnt.c intervals.c textprop.c composite.c \ + gnutls.c SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o obj = $(GLOBAL_SOURCES:.c=.o) From 64a465b2d97d00f27ed74513047ced07b798b9fd Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sun, 17 Jul 2011 00:11:27 +0000 Subject: [PATCH 48/48] Merge changes made in Gnus trunk. message.el (message-auto-save-directory): If the ~/Mail directory doesn't exist, use ~ as the auto-save directory (bug#4432). gnus-group.el (gnus-group-read-ephemeral-group): Start Gnus if it hasn't already been started. --- lisp/gnus/ChangeLog | 8 ++++++++ lisp/gnus/gnus-group.el | 2 ++ lisp/gnus/message.el | 4 +++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 9491612a883..32f5b702c6f 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,11 @@ +2011-07-16 Lars Magne Ingebrigtsen + + * message.el (message-auto-save-directory): If the ~/Mail directory + doesn't exist, use ~ as the auto-save directory (bug#4432). + + * gnus-group.el (gnus-group-read-ephemeral-group): Start Gnus if it + hasn't already been started. + 2011-07-15 Lars Magne Ingebrigtsen * gnus.el (debbugs-gnu): Renamed from debbugs-emacs. diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 2ea2a5c9bc7..b4dca3e1fc4 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el @@ -2282,6 +2282,8 @@ Return the name of the group if selection was successful." (gnus-group-completing-read) (gnus-read-method "From method"))) ;; Transform the select method into a unique server. + (unless (gnus-alive-p) + (gnus-no-server)) (when (stringp method) (setq method (gnus-server-to-method method))) (setq method diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index ffc6a680ef8..ff013e5b291 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -1310,7 +1310,9 @@ text and it replaces `self-insert-command' with the other command, e.g. :type '(repeat function)) (defcustom message-auto-save-directory - (file-name-as-directory (expand-file-name "drafts" message-directory)) + (if (file-exists-p message-directory) + (file-name-as-directory (expand-file-name "drafts" message-directory)) + "~/") "*Directory where Message auto-saves buffers if Gnus isn't running. If nil, Message won't auto-save." :group 'message-buffers