changeset 90364:494bf720eaf0

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-42 Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 144-147) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 56) - Update from CVS
author Miles Bader <miles@gnu.org>
date Fri, 10 Mar 2006 23:46:54 +0000
parents ec0a46fadd7e (current diff) 29fe34ec2296 (diff)
children a802c5505156
files etc/ChangeLog etc/TODO etc/TUTORIAL.de lisp/ChangeLog lisp/calendar/calendar.el lisp/calendar/holidays.el lisp/gnus/ChangeLog lisp/gnus/gnus-group.el lisp/gnus/gnus-nocem.el lisp/gnus/gnus-start.el lisp/gnus/gnus.el lisp/image.el lisp/mh-e/ChangeLog lisp/mh-e/mh-e.el lisp/progmodes/gdb-ui.el man/ChangeLog man/gnus.texi src/ChangeLog src/alloc.c
diffstat 20 files changed, 323 insertions(+), 78 deletions(-) [+]
line wrap: on
line diff
--- a/etc/ChangeLog	Fri Mar 10 04:37:43 2006 +0000
+++ b/etc/ChangeLog	Fri Mar 10 23:46:54 2006 +0000
@@ -1,3 +1,7 @@
+2006-03-09  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* TUTORIAL.de: Replace "Schreiben" by "Dr,A|(Bcken" where appropriate.
+
 2006-03-07  Carsten Dominik  <dominik@science.uva.nl>
 
 	* orgcard.tex: Version number change only.
--- a/etc/TODO	Fri Mar 10 04:37:43 2006 +0000
+++ b/etc/TODO	Fri Mar 10 23:46:54 2006 +0000
@@ -437,11 +437,16 @@
    e.g auto-mode-alist, the right face. [nickrob@snap.net.nz has a patch
    for this for inclusion after 22.1].
 
+** Possibly make `list-holidays' eval items in the calendar-holidays variable.
+   See thread
+   <http://lists.gnu.org/archive/html/emacs-devel/2006-02/msg01034.html>.
+   [rgm@gnu.org will look at this after 22.1]
+
 * Internal changes
 
 ** Replace gmalloc.c with the modified Doug Lea code from the current
   GNU libc so that the special mmapping of buffers can be removed --
-  that apparently loses under Solaris, at least.  [fx has mostly done
+  that apparently loses under Solaris, at least. [fx has mostly done
   this.]
 
 ** Rewrite make-docfile to be clean and maintainable.
--- a/etc/TUTORIAL.de	Fri Mar 10 04:37:43 2006 +0000
+++ b/etc/TUTORIAL.de	Fri Mar 10 23:46:54 2006 +0000
@@ -1090,9 +1090,9 @@
 
 >> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-u 0 C-l ein.
 
->> Schreiben Sie nun C-x 2, um den Bildschirm in zwei Fenster zu
-   teilen.  Beide Fenster zeigen diese Einführung an, und der Cursor
-   bleibt im oberen.
+>> Drücken Sie nun C-x 2, um den Bildschirm in zwei Fenster zu teilen.
+   Beide Fenster zeigen diese Einführung an, und der Cursor bleibt im
+   oberen.
 
 >> Verwenden Sie C-M-v, um im unteren Fenster zu blättern (Sie können
    statt dessen auch ESC C-v verwenden, falls Sie keine META-Taste
@@ -1355,8 +1355,8 @@
 Fall beim Systemadministrator zu beschweren.  Alternativen zu C-h sind
 die F1-Taste und der lange Befehl M-x help <Return>.)
 
-Die elementarste Hilfestellung gibt C-h c.  Schreiben Sie C-h, dann
-das Zeichen c, und dann einen Befehl: Emacs zeigt daraufhin eine kurze
+Die elementarste Hilfestellung gibt C-h c.  Drücken Sie C-h, dann das
+Zeichen c, und dann einen Befehl: Emacs zeigt daraufhin eine kurze
 Beschreibung des Befehls an.
 
 >> Geben Sie C-h c C-p ein.
--- a/lisp/ChangeLog	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/ChangeLog	Fri Mar 10 23:46:54 2006 +0000
@@ -1,3 +1,32 @@
+2006-03-10  Bill Wohler  <wohler@newt.com>
+
+	* image.el (image-load-path-for-library): Merge at least three
+	functions from Gnus and MH-E into this one function that can now
+	be shared.
+
+2006-03-11  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdb-remove-text-properties): Rename from
+	gdb-remove-mouse-face and remove help-echo too.
+	(gdb-enqueue-input): Correct conditional clause.
+	
+2006-03-10  Glenn Morris  <rgm@gnu.org>
+
+	* calendar/calendar.el (calendar-holidays): Doc fix.
+	* calendar/holidays.el (list-holidays): Doc fix.
+
+2006-03-10  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdba): Don't call gdb-init-1 explicitly as
+	it gets called in gdb-prompt anyway.
+	(gdb-use-separate-io-buffer): Only restore window arrangement for
+	gdb-many-windows.
+	(gdb-enqueue-input): Make it harder to send GDB input when program
+	is running.
+	(gdb-buffer-list): New variable.
+	(gdb-remove-mouse-face): New function.
+	(gdb-starting): Use it when GDB input won't get sent.
+
 2006-03-08  Juanma Barranquero  <lekktu@gmail.com>
 
 	* help.el (view-lossage): Remove trailing whitespace before
--- a/lisp/calendar/calendar.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/calendar/calendar.el	Fri Mar 10 23:46:54 2006 +0000
@@ -1192,10 +1192,14 @@
 `oriental-holidays', or `solar-holidays' to nil in your .emacs file,
 you can eliminate unwanted categories of holidays.
 
-Note that these variables are only used to initialize the default
-value of `calendar-holidays'.  In other words, they only have an
-effect on the displayed holidays if set before the calendar is
-loaded.  After the calendar has been loaded, you must customize
+The aforementioned variables control the holiday choices offered
+by the function `list-holidays' when it is called interactively.
+
+They also initialize the default value of `calendar-holidays',
+which is the default list of holidays used by the function
+`list-holidays' in the non-interactive case.  Note that these
+variables have no effect on `calendar-holidays' after it has been
+set (e.g. after the calendar is loaded).  In that case, customize
 `calendar-holidays' directly.
 
 The intention is that (in the US) `local-holidays' be set in
--- a/lisp/calendar/holidays.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/calendar/holidays.el	Fri Mar 10 23:46:54 2006 +0000
@@ -119,8 +119,12 @@
 (defun list-holidays (y1 y2 &optional l label)
   "Display holidays for years Y1 to Y2 (inclusive).
 
-The optional list of holidays L defaults to `calendar-holidays'.  See the
-documentation for that variable for a description of holiday lists.
+The optional list of holidays L defaults to `calendar-holidays'.
+When called interactively, this command offers a choice of
+holidays, based on the variables `solar-holidays' etc.  See the
+documentation of `calendar-holidays' for a list of the variables
+that control the choices, as well as a description of the format
+of a holiday list.
 
 The optional LABEL is used to label the buffer created."
   (interactive
--- a/lisp/gnus/ChangeLog	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/gnus/ChangeLog	Fri Mar 10 23:46:54 2006 +0000
@@ -1,3 +1,27 @@
+2006-03-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* smiley.el: Add more test smileys.
+	(smiley-data-directory, smiley-regexp-alist)
+	(gnus-smiley-file-types): Fix doc strings.
+	(smiley-update-cache): Clear smiley-cached-regexp-alist before
+	adding new elements.
+	(smiley-mouse-map): Unused code.  Make it a comment.
+
+2006-03-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-nocem.el (gnus-nocem-scan-groups): Add autoload cookie;
+	scan latest NoCeM messages instead of old ones.
+	(gnus-nocem-check-article): Fix regexps so as to match to PGP
+	delimiters that are recently used.
+	(gnus-nocem-load-cache): Add autoload cookie.
+
+	* gnus.el (gnus-use-nocem): Enable it to be set to also a number.
+
+	* gnus-start.el (gnus-setup-news): Scan NoCeM messages if a group
+	level which is larger than gnus-use-nocem is specified.
+
+	* gnus-group.el (gnus-group-get-new-news): Ditto.
+
 2006-03-08  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* gnus-util.el (gnus-tool-bar-update): New function.
--- a/lisp/gnus/gnus-group.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/gnus/gnus-group.el	Fri Mar 10 23:46:54 2006 +0000
@@ -3622,7 +3622,10 @@
 
     ;; We might read in new NoCeM messages here.
     (when (and gnus-use-nocem
-	       (null arg))
+	       (or (and (numberp gnus-use-nocem)
+			(numberp arg)
+			(>= arg gnus-use-nocem))
+		   (not arg)))
       (gnus-nocem-scan-groups))
     ;; If ARG is not a number, then we read the active file.
     (when (and arg (not (numberp arg)))
--- a/lisp/gnus/gnus-nocem.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/gnus/gnus-nocem.el	Fri Mar 10 23:46:54 2006 +0000
@@ -136,6 +136,7 @@
 	    (gnus-sethash group t gnus-nocem-real-group-hashtb))
 	  gnus-newsrc-alist))
 
+;;;###autoload
 (defun gnus-nocem-scan-groups ()
   "Scan all NoCeM groups for new NoCeM messages."
   (interactive)
@@ -206,10 +207,10 @@
 				(not (member (mail-header-message-id header)
 					     gnus-nocem-seen-message-ids))))
 		       (push header check-headers)))
-		(let* ((i 0)
-		       (check-headers
-			(last check-headers gnus-nocem-check-article-limit))
-		       (len (length check-headers)))
+		(setq check-headers (last (nreverse check-headers)
+					  gnus-nocem-check-article-limit))
+		(let ((i 0)
+		      (len (length check-headers)))
 		  (dolist (h check-headers)
 		    (gnus-message
 		     7 "Checking article %d in %s for NoCeM (%d of %d)..."
@@ -235,9 +236,13 @@
 	       (days-to-time gnus-nocem-expiry-wait)))
       (gnus-request-article-this-buffer (mail-header-number header) group)
       (goto-char (point-min))
-      (when (re-search-forward "-----BEGIN PGP MESSAGE-----" nil t)
+      (when (re-search-forward
+	     "-----BEGIN PGP\\( SIGNED\\)? MESSAGE-----"
+	     nil t)
 	(delete-region (point-min) (match-beginning 0)))
-      (when (re-search-forward "-----END PGP MESSAGE-----\n?" nil t)
+      (when (re-search-forward
+	     "-----END PGP \\(MESSAGE\\|SIGNATURE\\)-----\n?"
+	     nil t)
 	(delete-region (match-end 0) (point-max)))
       (goto-char (point-min))
       ;; The article has to have proper NoCeM headers.
@@ -334,6 +339,7 @@
 	      gnus-nocem-alist))
       t)))
 
+;;;###autoload
 (defun gnus-nocem-load-cache ()
   "Load the NoCeM cache."
   (interactive)
--- a/lisp/gnus/gnus-start.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/gnus/gnus-start.el	Fri Mar 10 23:46:54 2006 +0000
@@ -1049,9 +1049,12 @@
       (gnus-check-bogus-newsgroups))
 
     ;; We might read in new NoCeM messages here.
-    (when (and gnus-use-nocem
-	       (not level)
-	       (not dont-connect))
+    (when (and (not dont-connect)
+	       gnus-use-nocem
+	       (or (and (numberp gnus-use-nocem)
+			(numberp level)
+			(>= level gnus-use-nocem))
+		   (not level)))
       (gnus-nocem-scan-groups))
 
     ;; Read any slave files.
--- a/lisp/gnus/gnus.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/gnus/gnus.el	Fri Mar 10 23:46:54 2006 +0000
@@ -1580,9 +1580,23 @@
 		       :value t)))
 
 (defcustom gnus-use-nocem nil
-  "*If non-nil, Gnus will read NoCeM cancel messages."
+  "*If non-nil, Gnus will read NoCeM cancel messages.
+You can also set this variable to a positive number as a group level.
+In that case, Gnus scans NoCeM messages when checking new news if this
+value is not exceeding a group level that you specify as the prefix
+argument to some commands, e.g. `gnus', `gnus-group-get-new-news', etc.
+Otherwise, Gnus does not scan NoCeM messages if you specify a group
+level to those commands."
   :group 'gnus-meta
-  :type 'boolean)
+  :type '(choice
+	  (const :tag "off" nil)
+	  (const :tag "on" t)
+	  (list :convert-widget
+		(lambda (widget)
+		  (list 'integer :tag "group level"
+			:value (if (boundp 'gnus-level-default-subscribed)
+				   gnus-level-default-subscribed
+				 3))))))
 
 (defcustom gnus-suppress-duplicates nil
   "*If non-nil, Gnus will mark duplicate copies of the same article as read."
--- a/lisp/gnus/smiley.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/gnus/smiley.el	Fri Mar 10 23:46:54 2006 +0000
@@ -31,8 +31,21 @@
 ;; I'm not sure we need that degree of rococoness and defaults like a
 ;; yellow background.  Also, using PBM means we can display the images
 ;; more generally.  -- fx
+;; `smiley.el' was replaced by `smiley-ems.el' on 2002-01-26 (after fx'
+;; comment).
 
-;;; Test smileys:  :-) :-\ :-( :-/
+;; Test smileys:
+;; smile             ^:-) ^:)
+;; blink             ;-)  ;)
+;; forced            :-]
+;; braindamaged      8-)
+;; indifferent       :-|
+;; wry               :-/  :-\
+;; sad               :-(
+;; evil              >:-)
+;; cry               ;-(
+;; dead              X-)
+;; grin              :-D
 
 ;;; Code:
 
@@ -45,8 +58,9 @@
   :group 'gnus-visual)
 
 ;; Maybe this should go.
-(defcustom smiley-data-directory (nnheader-find-etc-directory "images/smilies")
-  "*Location of the smiley faces files."
+(defcustom smiley-data-directory
+  (nnheader-find-etc-directory "images/smilies")
+  "Location of the smiley faces files."
   :type 'directory
   :group 'smiley)
 
@@ -61,8 +75,8 @@
     ("\\(:-(\\)\\W" 1 "sad")
     ("\\(:-{\\)\\W" 1 "frown"))
   "*A list of regexps to map smilies to images.
-The elements are (REGEXP MATCH FILE), where MATCH is the submatch in
-regexp to replace with IMAGE.  IMAGE is the name of a PBM file in
+The elements are (REGEXP MATCH IMAGE), where MATCH is the submatch in
+regexp to replace with IMAGE.  IMAGE is the name of an image file in
 `smiley-data-directory'."
   :type '(repeat (list regexp
 		       (integer :tag "Regexp match number")
@@ -78,7 +92,7 @@
     (when (gnus-image-type-available-p 'xpm)
       (push "xpm" types))
     types)
-  "*List of suffixes on picon file names to try."
+  "*List of suffixes on smiley file names to try."
   :version "22.1"
   :type '(repeat string)
   :group 'smiley)
@@ -86,6 +100,7 @@
 (defvar smiley-cached-regexp-alist nil)
 
 (defun smiley-update-cache ()
+  (setq smiley-cached-regexp-alist nil)
   (dolist (elt (if (symbolp smiley-regexp-alist)
 		   (symbol-value smiley-regexp-alist)
 		 smiley-regexp-alist))
@@ -104,12 +119,13 @@
 	    (push (list (car elt) (cadr elt) image)
 		  smiley-cached-regexp-alist)))))))
 
-(defvar smiley-mouse-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map [down-mouse-2] 'ignore) ; override widget
-    (define-key map [mouse-2]
-      'smiley-mouse-toggle-buffer)
-    map))
+;; Not implemented:
+;; (defvar smiley-mouse-map
+;;   (let ((map (make-sparse-keymap)))
+;;     (define-key map [down-mouse-2] 'ignore) ; override widget
+;;     (define-key map [mouse-2]
+;;       'smiley-mouse-toggle-buffer)
+;;     map))
 
 ;;;###autoload
 (defun smiley-region (start end)
--- a/lisp/image.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/image.el	Fri Mar 10 23:46:54 2006 +0000
@@ -77,6 +77,80 @@
        (list (file-name-as-directory (expand-file-name "images" data-directory))
 	     'data-directory 'load-path)))
 
+(defun image-load-path-for-library (library image &optional path)
+  "Return a suitable search path for images relative to LIBRARY.
+
+Images for LIBRARY are searched for in \"../../etc/images\" and
+\"../etc/images\" relative to the files in \"lisp/LIBRARY\" as
+well as in `image-load-path' and `load-path'.
+
+This function returns the value of `load-path' augmented with the
+path to IMAGE. If PATH is given, it is used instead of
+`load-path'.
+
+Here is an example that uses a common idiom to provide
+compatibility with versions of Emacs that lack the variable
+`image-load-path':
+
+  (let ((load-path
+         (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\"))
+        (image-load-path
+         (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\" 'image-load-path)))
+    (mh-tool-bar-folder-buttons-init))"
+  (unless library (error "No library specified"))
+  (unless image   (error "No image specified"))
+  (let ((image-directory))
+    (cond
+     ;; Try relative setting.
+     ((let (library-name d1ei d2ei)
+        ;; First, find library in the load-path.
+        (setq library-name (locate-library library))
+        (if (not library-name)
+            (error "Cannot find library %s in load-path" library))
+        ;; And then set image-directory relative to that.
+        (setq
+         ;; Go down 2 levels.
+         d2ei (expand-file-name
+               (concat (file-name-directory library-name) "../../etc/images"))
+         ;; Go down 1 level.
+         d1ei (expand-file-name
+               (concat (file-name-directory library-name) "../etc/images")))
+        (setq image-directory
+              ;; Set it to nil if image is not found.
+              (cond ((file-exists-p (expand-file-name image d2ei)) d2ei)
+                    ((file-exists-p (expand-file-name image d1ei)) d1ei)))))
+     ;; Check for images in image-load-path or load-path.
+     ((let ((img image)
+            (dir (or
+                  ;; Images in image-load-path.
+                  (image-search-load-path image)
+                  ;; Images in load-path.
+                  (locate-library image)))
+            parent)
+        ;; Since the image might be in a nested directory (for
+        ;; example, mail/attach.pbm), adjust `image-directory'
+        ;; accordingly.
+        (and dir
+             (setq dir (file-name-directory dir))
+             (progn
+               (while (setq parent (file-name-directory img))
+                 (setq img (directory-file-name parent)
+                       dir (expand-file-name "../" dir)))
+               (setq image-directory dir)))))
+     (t
+      (error "Could not find image %s for library %s" image library)))
+
+    ;; Return augmented `image-load-path' or `load-path'.
+    (cond ((and path (symbolp path))
+           (nconc (list image-directory)
+                  (delete image-directory
+                          (if (boundp path)
+                              (copy-sequence (symbol-value path))
+                            nil))))
+          (t
+           (nconc (list image-directory)
+                  (delete image-directory (copy-sequence load-path)))))))
+
 (defun image-jpeg-p (data)
   "Value is non-nil if DATA, a string, consists of JFIF image data.
 We accept the tag Exif because that is the same format."
--- a/lisp/mh-e/ChangeLog	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/mh-e/ChangeLog	Fri Mar 10 23:46:54 2006 +0000
@@ -1,3 +1,8 @@
+2006-03-10  Bill Wohler  <wohler@newt.com>
+
+	* mh-e.el (mh-profile-component): Drop `s' from mhparam
+	-components for Mailutils compatibility (closes SF #1446985).
+
 2006-03-06  Bill Wohler  <wohler@newt.com>
 
 	* mh-e.el (Version, mh-version): Add +cvs to version.
--- a/lisp/mh-e/mh-e.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/mh-e/mh-e.el	Fri Mar 10 23:46:54 2006 +0000
@@ -808,7 +808,9 @@
 (defun mh-profile-component (component)
   "Return COMPONENT value from mhparam, or nil if unset."
   (save-excursion
-    (mh-exec-cmd-quiet nil "mhparam" "-components" component)
+    ;; MH and nmh use -components, Mailutils uses -component. Since MH
+    ;; and nmh work with an unambiguous prefix, the `s' is dropped here.
+    (mh-exec-cmd-quiet nil "mhparam" "-component" component)
     (mh-profile-component-value component)))
 
 (defun mh-profile-component-value (component)
--- a/lisp/progmodes/gdb-ui.el	Fri Mar 10 04:37:43 2006 +0000
+++ b/lisp/progmodes/gdb-ui.el	Fri Mar 10 23:46:54 2006 +0000
@@ -257,8 +257,7 @@
   (interactive (list (gud-query-cmdline 'gdba)))
   ;;
   ;; Let's start with a basic gud-gdb buffer and then modify it a bit.
-  (gdb command-line)
-  (gdb-init-1))
+  (gdb command-line))
 
 (defcustom gdb-debug-ring-max 128
   "Maximum size of `gdb-debug-ring'."
@@ -322,7 +321,7 @@
 	   (buffer-name gud-comint-buffer))
       (condition-case nil
 	  (if gdb-use-separate-io-buffer
-	      (gdb-restore-windows)
+	      (if gdb-many-windows (gdb-restore-windows))
 	    (kill-buffer (gdb-inferior-io-name)))
 	(error nil))))
 
@@ -1037,11 +1036,12 @@
 ;; is a query, or other non-top-level prompt.
 
 (defun gdb-enqueue-input (item)
-  (if gdb-prompting
-      (progn
-	(gdb-send-item item)
+  (if (not gud-running)
+      (if gdb-prompting
+	  (progn
+	    (gdb-send-item item)
 	(setq gdb-prompting nil))
-    (push item gdb-input-queue)))
+	(push item gdb-input-queue))))
 
 (defun gdb-dequeue-input ()
   (let ((queue gdb-input-queue))
@@ -1192,6 +1192,7 @@
      ((eq sink 'user)
       (progn
 	(setq gud-running t)
+	(gdb-remove-text-properties)
 	(if gdb-use-separate-io-buffer
 	    (setq gdb-output-sink 'inferior))))
      (t
@@ -1299,6 +1300,18 @@
       (gdb-resync)
       (error "Phase error in gdb-post-prompt (got %s)" sink)))))
 
+(defconst gdb-buffer-list
+'(gdb-stack-buffer gdb-locals-buffer gdb-registers-buffer gdb-threads-buffer))
+
+(defun gdb-remove-text-properties ()
+  (dolist (buffertype gdb-buffer-list)
+    (let ((buffer (gdb-get-buffer buffertype)))
+      (if buffer
+	  (with-current-buffer buffer
+	    (let ((inhibit-read-only t))
+	      (remove-text-properties
+	       (point-min) (point-max) '(mouse-face nil help-echo nil))))))))
+
 ;; GUD displays the selected GDB frame.  This might might not be the current
 ;; GDB frame (after up, down etc).  If no GDB frame is visible but the last
 ;; visited breakpoint is, use that window.
--- a/man/ChangeLog	Fri Mar 10 04:37:43 2006 +0000
+++ b/man/ChangeLog	Fri Mar 10 23:46:54 2006 +0000
@@ -1,3 +1,12 @@
+2006-03-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (NoCeM): Mention gnus-use-nocem can also be a number.
+
+2006-03-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (Fancy Mail Splitting): Improve sentences so as to be
+	easy to understand.
+
 2006-03-09  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus.texi: Markup fix.
--- a/man/gnus.texi	Fri Mar 10 04:37:43 2006 +0000
+++ b/man/gnus.texi	Fri Mar 10 23:46:54 2006 +0000
@@ -14007,18 +14007,21 @@
 regexp match expansion will be done.  See below for examples.
 
 @c Don't fold this line.
-@item (@var{field} @var{value} [- @var{restrict} [@dots{}] ] @var{split} [@var{invert-match-partial-words}])
-If the split is a list, the first element of which is a string, then
-store the message as specified by @var{split}, if header @var{field}
-(a regexp) contains @var{value} (also a regexp).  If @var{restrict}
-(yet another regexp) matches some string after @var{field} and before
-the end of the matched @var{value}, the @var{split} is ignored.  If
-none of the @var{restrict} clauses match, @var{split} is processed.
-
-The last element @var{invert-match-partial-words} is optional.  If it is
-not omitted and the value is non-@code{nil}, the match-partial-words
-behavior controlled by the @code{nnmail-split-fancy-match-partial-words}
-variable (see below) will be inverted.  (New in Gnus 5.10.7)
+@item (@var{field} @var{value} [- @var{restrict} [@dots{}] ] @var{split} [@var{invert-partial}])
+The split can be a list containing at least three elements.  If the
+first element @var{field} (a regexp matching a header) contains
+@var{value} (also a regexp) then store the message as specified by
+@var{split}.
+
+If @var{restrict} (yet another regexp) matches some string after
+@var{field} and before the end of the matched @var{value}, the
+@var{split} is ignored.  If none of the @var{restrict} clauses match,
+@var{split} is processed.
+
+The last element @var{invert-partial} is optional.  If it is
+non-@code{nil}, the match-partial-words behavior controlled by the
+variable @code{nnmail-split-fancy-match-partial-words} (see below) is
+be inverted.  (New in Gnus 5.10.7)
 
 @item (| @var{split} @dots{})
 If the split is a list, and the first element is @code{|} (vertical
@@ -14108,14 +14111,13 @@
 @code{".*@@example\\.com"} does.
 
 @item
-You can set the @var{invert-match-partial-words} flag in your split
-rules of the @samp{(@var{field} @var{value} @dots{})} types,
-aforementioned in this section.  If the flag is set, word boundaries on
-both sides of a word are ignored even if
-@code{nnmail-split-fancy-match-partial-words} is @code{nil}.
-Contrarily, if the flag is set, word boundaries are not ignored even if
-@code{nnmail-split-fancy-match-partial-words} is non-@code{nil}.  (New
-in Gnus 5.10.7)
+You can set the @var{invert-partial} flag in your split rules of the
+@samp{(@var{field} @var{value} @dots{})} types, aforementioned in this
+section.  If the flag is set, word boundaries on both sides of a word
+are ignored even if @code{nnmail-split-fancy-match-partial-words} is
+@code{nil}.  Contrarily, if the flag is set, word boundaries are not
+ignored even if @code{nnmail-split-fancy-match-partial-words} is
+non-@code{nil}.  (New in Gnus 5.10.7)
 @end enumerate
 
 @vindex nnmail-split-abbrev-alist
@@ -21793,6 +21795,15 @@
 Set this variable to @code{t} to set the ball rolling.  It is @code{nil}
 by default.
 
+You can also set this variable to a positive number as a group level.
+In that case, Gnus scans NoCeM messages when checking new news if this
+value is not exceeding a group level that you specify as the prefix
+argument to some commands, e.g. @code{gnus},
+@code{gnus-group-get-new-news}, etc.  Otherwise, Gnus does not scan
+NoCeM messages if you specify a group level to those commands.  For
+example, if you use 1 or 2 on the mail groups and the levels on the news
+groups remain the default, 3 is the best choice.
+
 @item gnus-nocem-groups
 @vindex gnus-nocem-groups
 Gnus will look for NoCeM messages in the groups in this list.  The
--- a/src/ChangeLog	Fri Mar 10 04:37:43 2006 +0000
+++ b/src/ChangeLog	Fri Mar 10 23:46:54 2006 +0000
@@ -1,9 +1,23 @@
+2006-03-10  Kim F. Storm  <storm@cua.dk>
+
+	* alloc.c (USE_POSIX_MEMALIGN): Fix last change.
+
+2006-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* alloc.c (USE_POSIX_MEMALIGN): New macro.
+	(ABLOCKS_BASE, lisp_align_malloc, lisp_align_free): Use it.
+
+2006-03-09  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (DECODE_EMACS_MULE_COMPOSITION_CHAR): Fix decoding
+	ASCII component of a composition.
+
 2006-03-08  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* window.c: Declare preserve_y as a static global variable.
 	(window_scroll_pixel_based): No longer declare preserve_y;
 	it is global now.
-	(syms_of_window): set preserve_y to -1.
+	(syms_of_window): Set preserve_y to -1.
 
 2006-03-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
@@ -23,10 +37,10 @@
 	(MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH): New defines.
 
 	* macfns.c (x_default_scroll_bar_color_parameter)
-	(x_set_scroll_bar_foreground, x_set_scroll_bar_background): Remove
-	unnecessary prototypes.
-	(x_set_scroll_bar_default_width): Use
-	MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH.
+	(x_set_scroll_bar_foreground, x_set_scroll_bar_background):
+	Remove unnecessary prototypes.
+	(x_set_scroll_bar_default_width):
+	Use MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH.
 	(mac_set_scroll_bar_width): New function.
 	(mac_frame_parm_handlers): Set it as handler for scroll-bar-width.
 
@@ -38,7 +52,7 @@
 	(mac_handle_command_event, mac_handle_window_event)
 	(mac_handle_mouse_event): Check error code of GetEventParameter.
 	(convert_fn_keycode) [MAC_OSX]: Likewise.
-	
+
 2006-03-05  Andreas Schwab  <schwab@suse.de>
 
 	* xselect.c (x_catch_errors_unwind): Fix missing return value.
@@ -52,9 +66,9 @@
 	lines, by distributing the rows evenly over the tool-bar screen	area.
 	(Vtool_bar_border): New variable.
 	(syms_of_xdisp): DEFVAR_LISP it.
-	(display_tool_bar_line): Add HEIGHT arg for desired row height.  Make
-	tool-bar row the desired height.  Use default face for border below
-	tool-bar.
+	(display_tool_bar_line): Add HEIGHT arg for desired row height.
+	Make tool-bar row the desired height.  Use default face for border
+	below tool-bar.
 	(tool_bar_lines_needed): Add N_ROWS arg.  Use it to return number of
 	actual tool-bar rows.
 	(redisplay_tool_bar): Calculate f->n_tool_bar_rows initially.
@@ -81,8 +95,7 @@
 
 2006-02-26  Chong Yidong  <cyd@stupidchicken.com>
 
-	* xterm.h, xterm.c (x_uncatch_errors): Delete unneccessary
-	argument.
+	* xterm.h, xterm.c (x_uncatch_errors): Delete unneccessary argument.
 
 	* xterm.c: (x_load_font, x_term_init, XTmouse_position)
 	(handle_one_xevent, x_connection_closed, x_list_fonts): No arg for
--- a/src/alloc.c	Fri Mar 10 04:37:43 2006 +0000
+++ b/src/alloc.c	Fri Mar 10 23:46:54 2006 +0000
@@ -883,6 +883,12 @@
 /* The entry point is lisp_align_malloc which returns blocks of at most    */
 /* BLOCK_BYTES and guarantees they are aligned on a BLOCK_ALIGN boundary.  */
 
+/* Use posix_memalloc if the system has it and we're using the system's
+   malloc (because our gmalloc.c routines don't have posix_memalign although
+   its memalloc could be used).  */
+#if defined (HAVE_POSIX_MEMALIGN) && defined (SYSTEM_MALLOC)
+#define USE_POSIX_MEMALIGN 1
+#endif
 
 /* BLOCK_ALIGN has to be a power of 2.  */
 #define BLOCK_ALIGN (1 << 10)
@@ -948,7 +954,7 @@
 #define ABLOCKS_BUSY(abase) ((abase)->blocks[0].abase)
 
 /* Pointer to the (not necessarily aligned) malloc block.  */
-#ifdef HAVE_POSIX_MEMALIGN
+#ifdef USE_POSIX_MEMALIGN
 #define ABLOCKS_BASE(abase) (abase)
 #else
 #define ABLOCKS_BASE(abase) \
@@ -989,7 +995,7 @@
       mallopt (M_MMAP_MAX, 0);
 #endif
 
-#ifdef HAVE_POSIX_MEMALIGN
+#ifdef USE_POSIX_MEMALIGN
       {
 	int err = posix_memalign (&base, BLOCK_ALIGN, ABLOCKS_BYTES);
 	if (err)
@@ -1105,7 +1111,7 @@
 	}
       eassert ((aligned & 1) == aligned);
       eassert (i == (aligned ? ABLOCKS_SIZE : ABLOCKS_SIZE - 1));
-#ifdef HAVE_POSIX_MEMALIGN
+#ifdef USE_POSIX_MEMALIGN
       eassert ((unsigned long)ABLOCKS_BASE (abase) % BLOCK_ALIGN == 0);
 #endif
       free (ABLOCKS_BASE (abase));