changeset 108946:d418516def73

Merge from emacs-23
author Andreas Schwab <schwab@linux-m68k.org>
date Thu, 10 Jun 2010 00:08:50 +0200
parents 2dc99219d813 (current diff) 998fccafba7a (diff)
children ca556d6b7c7a
files doc/lispref/ChangeLog lisp/ChangeLog lisp/desktop.el lisp/emulation/cua-rect.el lisp/net/rcirc.el lisp/vc-dispatcher.el lisp/vc-hooks.el src/ChangeLog src/character.h src/dbusbind.c src/fns.c src/fringe.c src/lisp.h src/process.c src/regex.c
diffstat 26 files changed, 229 insertions(+), 136 deletions(-) [+]
line wrap: on
line diff
--- a/doc/lispref/ChangeLog	Wed Jun 09 11:36:58 2010 -0700
+++ b/doc/lispref/ChangeLog	Thu Jun 10 00:08:50 2010 +0200
@@ -1,3 +1,9 @@
+2010-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+	* searching.texi (Regexp Special): Remove obsolete information
+	about matching non-ASCII characters, and suggest using char
+	classes (Bug#6283).
+
 2010-05-30  Juanma Barranquero  <lekktu@gmail.com>
 
 	* minibuf.texi (Basic Completion): Add missing "@end defun".
--- a/doc/lispref/searching.texi	Wed Jun 09 11:36:58 2010 -0700
+++ b/doc/lispref/searching.texi	Thu Jun 10 00:08:50 2010 +0200
@@ -362,7 +362,7 @@
 
 Thus, @samp{[ad]} matches either one @samp{a} or one @samp{d}, and
 @samp{[ad]*} matches any string composed of just @samp{a}s and @samp{d}s
-(including the empty string), from which it follows that @samp{c[ad]*r}
+(including the empty string).  It follows that @samp{c[ad]*r}
 matches @samp{cr}, @samp{car}, @samp{cdr}, @samp{caddaar}, etc.
 
 You can also include character ranges in a character alternative, by
@@ -400,20 +400,11 @@
 @var{c1} is the first character of the charset to which @var{c2}
 belongs.
 
-You cannot always match all non-@acronym{ASCII} characters with the regular
-expression @code{"[\200-\377]"}.  This works when searching a unibyte
-buffer or string (@pxref{Text Representations}), but not in a multibyte
-buffer or string, because many non-@acronym{ASCII} characters have codes
-above octal 0377.  However, the regular expression @code{"[^\000-\177]"}
-does match all non-@acronym{ASCII} characters (see below regarding @samp{^}),
-in both multibyte and unibyte representations, because only the
-@acronym{ASCII} characters are excluded.
-
-A character alternative can also specify named
-character classes (@pxref{Char Classes}).  This is a POSIX feature whose
-syntax is @samp{[:@var{class}:]}.  Using a character class is equivalent
-to mentioning each of the characters in that class; but the latter is
-not feasible in practice, since some classes include thousands of
+A character alternative can also specify named character classes
+(@pxref{Char Classes}).  This is a POSIX feature whose syntax is
+@samp{[:@var{class}:]}.  Using a character class is equivalent to
+mentioning each of the characters in that class; but the latter is not
+feasible in practice, since some classes include thousands of
 different characters.
 
 @item @samp{[^ @dots{} ]}
@@ -431,6 +422,10 @@
 mentioned as one of the characters not to match.  This is in contrast to
 the handling of regexps in programs such as @code{grep}.
 
+You can specify named character classes, just like in character
+alternatives.  For instance, @samp{[^[:ascii:]]} matches any
+non-@acronym{ASCII} character.  @xref{Char Classes}.
+
 @item @samp{^}
 @cindex beginning of line in regexp
 When matching a buffer, @samp{^} matches the empty string, but only at the
--- a/lisp/ChangeLog	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/ChangeLog	Thu Jun 10 00:08:50 2010 +0200
@@ -1,3 +1,13 @@
+2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* emacs-lisp/advice.el (ad-compile-function):
+	Define warning-suppress-types before we let-bind it (bug#6275).
+
+	* vc-dispatcher.el: Rename mode-line-hook to vc-mode-line-hook;
+	declare it, make it buffer-local and permanent-local (bug#6324).
+	(vc-resynch-window): Adjust name.
+	* vc-hooks.el (vc-find-file-hook): Adjust name.
+
 2010-06-09  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/notifications.el (notifications-notify): Fix docstring.
@@ -66,6 +76,13 @@
 	* emacs-lisp/smie.el (smie-indent-keyword): Remove special case that
 	can be handled with a ((:before "fn") (:prev "=>" parent)) rule.
 
+2010-06-07  Jonathan Rockway  <jon@jrock.us>
+
+	* net/rcirc.el: Add support for password authentication.
+	(rcirc-server-alist): Add :password keyword.
+	(rcirc): Ask for a password, or get it from the server's alist.
+	(rcirc-connect): Add password argument.  Pass it to server.
+
 2010-06-07  Martin Pohlack  <mp26@os.inf.tu-dresden.de>
 
 	* iimage.el: Remove images as soon as the underlying text is modified.
@@ -103,6 +120,14 @@
 	by checking for empty match.  This syncs this loop with the
 	similar loop in `isearch-search'.  (Bug#6362)
 
+2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
+
+	* net/dbus.el (dbus-register-method): Declare function.
+	(dbus-handle-event, dbus-property-handler): Fix typos in docstrings.
+	(dbus-introspect): Doc fix.
+	(dbus-event-bus-name, dbus-introspect-get-interface)
+	(dbus-introspect-get-argument): Reflow docstrings.
+
 2010-06-05  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	vc-log-incoming/vc-log-outgoing fixes for Git.
@@ -112,6 +137,11 @@
 	instead of vc-git-compute-remote.
 	(vc-git-compute-remote): Remove.
 
+2010-06-04  Chong Yidong  <cyd@stupidchicken.com>
+
+	* term/common-win.el (x-colors): Add "dark green" and "dark
+	turquoise" (Bug#6332).
+
 2010-06-04  Juri Linkov  <juri@jurta.org>
 
 	* simple.el (kill-new): Fix logic of kill-do-not-save-duplicates.
@@ -143,6 +173,17 @@
 
 	* international/mule.el (make-translation-table-from-vector): Doc fix.
 
+2010-06-03  Eric Ludlam  <zappo@gnu.org>
+
+	* cedet/semantic/lex-spp.el
+	(semantic-lex-spp-table-write-slot-value): Instead of erroring on
+	invalid values during save, just save a nil (Bug#6324).
+
+2010-06-03  Glenn Morris  <rgm@gnu.org>
+
+	* desktop.el (desktop-clear-preserve-buffers):
+	Add "*Warnings*" buffer.  (Bug#6336)
+
 2010-06-03  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	vc-log-incoming/vc-log-outgoing improvements for Git.
--- a/lisp/cedet/semantic/lex-spp.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/cedet/semantic/lex-spp.el	Thu Jun 10 00:08:50 2010 +0200
@@ -1121,37 +1121,31 @@
       (prin1 (car sym))
       (let* ((first (car (cdr sym)))
 	     (rest (cdr sym)))
-	(when (not (listp first))
-	  (error "Error in macro \"%s\"" (car sym)))
-	(when (eq (car first) 'spp-arg-list)
-	  (princ " ")
-	  (prin1 first)
-	  (setq rest (cdr rest))
-	  )
+	(if (not (listp first))
+	    (insert "nil ;; bogus macro found.\n")
+	  (when (eq (car first) 'spp-arg-list)
+	    (princ " ")
+	    (prin1 first)
+	    (setq rest (cdr rest)))
 
-	(when rest
-	  (princ " . ")
-	  (let ((len (length (cdr rest))))
-	    (cond ((< len 2)
-		   (condition-case nil
-		       (prin1 rest)
-		     (error
-		      (princ "nil ;; Error writing macro\n"))))
-		  ((< len semantic-lex-spp-macro-max-length-to-save)
-		   (princ "\n              ")
-		   (condition-case nil
-		       (prin1 rest)
-		     (error
-		      (princ "nil ;; Error writing macro\n          ")))
-		   )
-		  (t ;; Too Long!
-		   (princ "nil ;; Too Long!\n          ")
-		   ))))
-	)
-      (princ ")\n          ")
-      )
-    (princ ")\n"))
-)
+	  (when rest
+	    (princ " . ")
+	    (let ((len (length (cdr rest))))
+	      (cond ((< len 2)
+		     (condition-case nil
+			 (prin1 rest)
+		       (error
+			(princ "nil ;; Error writing macro\n"))))
+		    ((< len semantic-lex-spp-macro-max-length-to-save)
+		     (princ "\n              ")
+		     (condition-case nil
+			 (prin1 rest)
+		       (error
+			(princ "nil ;; Error writing macro\n          "))))
+		    (t ;; Too Long!
+		     (princ "nil ;; Too Long!\n          ")))))))
+      (princ ")\n          "))
+    (princ ")\n")))
 
 ;;; MACRO TABLE DEBUG
 ;;
--- a/lisp/descr-text.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/descr-text.el	Thu Jun 10 00:08:50 2010 +0200
@@ -426,7 +426,7 @@
         ;; When the composition is trivial (i.e. composed only with the
         ;; current character itself without any alternate characters),
         ;; we don't show the composition information.  Otherwise, store
-        ;; two descriptive strings in the first two elments of
+        ;; two descriptive strings in the first two elements of
         ;; COMPOSITION.
         (or (catch 'tag
               (let ((from (car composition))
--- a/lisp/desktop.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/desktop.el	Thu Jun 10 00:08:50 2010 +0200
@@ -303,10 +303,12 @@
   :version "22.1")
 
 (defcustom desktop-clear-preserve-buffers
-  '("\\*scratch\\*" "\\*Messages\\*" "\\*server\\*" "\\*tramp/.+\\*")
+  '("\\*scratch\\*" "\\*Messages\\*" "\\*server\\*" "\\*tramp/.+\\*"
+    "\\*Warnings\\*")
   "List of buffers that `desktop-clear' should not delete.
 Each element is a regular expression.  Buffers with a name matched by any of
 these won't be deleted."
+  :version "23.3"                       ; added Warnings - bug#6336
   :type '(repeat string)
   :group 'desktop)
 
--- a/lisp/emacs-lisp/advice.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/emacs-lisp/advice.el	Thu Jun 10 00:08:50 2010 +0200
@@ -2684,6 +2684,8 @@
       ;; because `byte-compile' uses `fset':
       (ad-with-auto-activation-disabled
        (require 'bytecomp)
+       (require 'warnings)              ;To define warning-suppress-types
+                                        ;before we let-bind it.
        (let ((symbol (make-symbol "advice-compilation"))
 	     (byte-compile-warnings byte-compile-warnings)
              ;; Don't pop up windows showing byte-compiler warnings.
--- a/lisp/emulation/cua-rect.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/emulation/cua-rect.el	Thu Jun 10 00:08:50 2010 +0200
@@ -231,7 +231,7 @@
     (move-to-column mc)
     (set-mark (point))
     (goto-char pp)
-    ;; Move cursor inside rectangle, except if char at rigth edge is a tab.
+    ;; Move cursor inside rectangle, except if char at right edge is a tab.
     (if (and (if (cua--rectangle-right-side)
 		 (and (= (move-to-column pc) (- pc tab-width))
 		      (not (eolp)))
--- a/lisp/international/mule-util.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/international/mule-util.el	Thu Jun 10 00:08:50 2010 +0200
@@ -1,4 +1,4 @@
-;;; mule-util.el --- utility functions for mulitilingual environment (mule)
+;;; mule-util.el --- utility functions for multilingual environment (mule)
 
 ;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
--- a/lisp/mail/rmail-spam-filter.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/mail/rmail-spam-filter.el	Thu Jun 10 00:08:50 2010 +0200
@@ -414,7 +414,7 @@
     ;; to make sure message-subject is actually evaluated and its value
     ;; substituted.
     (add-to-list 'rsf-definitions-alist
-		 ;; Note that an empty elment is treated the same as
+		 ;; Note that an empty element is treated the same as
 		 ;; an absent one, so why does it bother to add them?
 		 (list '(from . "")
 		       '(to . "")
--- a/lisp/net/dbus.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/net/dbus.el	Thu Jun 10 00:08:50 2010 +0200
@@ -38,6 +38,7 @@
 (declare-function dbus-method-return-internal "dbusbind.c")
 (declare-function dbus-method-error-internal "dbusbind.c")
 (declare-function dbus-register-signal "dbusbind.c")
+(declare-function dbus-register-method "dbusbind.c")
 (defvar dbus-debug)
 (defvar dbus-registered-objects-table)
 
@@ -398,7 +399,7 @@
   "Handle events from the D-Bus.
 EVENT is a D-Bus event, see `dbus-check-event'.  HANDLER, being
 part of the event, is called with arguments ARGS.
-If the HANDLER returns an `dbus-error', it is propagated as return message."
+If the HANDLER returns a `dbus-error', it is propagated as return message."
   (interactive "e")
   (condition-case err
       (let (result)
@@ -434,8 +435,7 @@
   "Return the bus name the event is coming from.
 The result is either the symbol `:system' or the symbol `:session'.
 EVENT is a D-Bus event, see `dbus-check-event'.  This function
-raises a `dbus-error' signal in case the event is not well
-formed."
+raises a `dbus-error' signal in case the event is not well formed."
   (dbus-check-event event)
   (nth 1 event))
 
@@ -562,7 +562,7 @@
 ;;; D-Bus introspection.
 
 (defun dbus-introspect (bus service path)
-  "This function returns all interfaces and sub-nodes of SERVICE,
+  "Return all interfaces and sub-nodes of SERVICE,
 registered at object path PATH at bus BUS.
 
 BUS must be either the symbol `:system' or the symbol `:session'.
@@ -634,9 +634,8 @@
 (defun dbus-introspect-get-interface (bus service path interface)
   "Return the INTERFACE of SERVICE in D-Bus BUS at object path PATH.
 The return value is an XML object.  INTERFACE must be a string,
-element of the list returned by
-`dbus-introspect-get-interface-names'.  The resulting
-\"interface\" object can contain \"method\", \"signal\",
+element of the list returned by `dbus-introspect-get-interface-names'.
+The resulting \"interface\" object can contain \"method\", \"signal\",
 \"property\" and \"annotation\" children."
   (let ((elt (xml-get-children
 	      (dbus-introspect-xml bus service path) 'interface)))
@@ -776,8 +775,8 @@
 
 (defun dbus-introspect-get-argument (bus service path interface name arg)
   "Return argument ARG as XML object.
-NAME must be a \"method\" or \"signal\" object.  ARG must be a
-string, element of the list returned by `dbus-introspect-get-argument-names'."
+NAME must be a \"method\" or \"signal\" object.  ARG must be a string,
+element of the list returned by `dbus-introspect-get-argument-names'."
   (let ((elt (xml-get-children
 	      (or (dbus-introspect-get-method bus service path interface name)
 		  (dbus-introspect-get-signal bus service path interface name))
@@ -922,7 +921,7 @@
     (list key (list service path))))
 
 (defun dbus-property-handler (&rest args)
-  "Default Handler for the \"org.freedesktop.DBus.Properties\" interface.
+  "Default handler for the \"org.freedesktop.DBus.Properties\" interface.
 It will be registered for all objects created by `dbus-register-object'."
   (let ((bus (dbus-event-bus-name last-input-event))
 	(path (dbus-event-path-name last-input-event))
--- a/lisp/net/rcirc.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/net/rcirc.el	Thu Jun 10 00:08:50 2010 +0200
@@ -81,6 +81,11 @@
 VALUE must be a string.  If absent, `rcirc-default-user-name' is
 used.
 
+`:password'
+
+VALUE must be a string.  If absent, no PASS command will be sent
+to the server.
+
 `:full-name'
 
 VALUE must be a string.  If absent, `rcirc-default-full-name' is
@@ -99,6 +104,7 @@
 		:value-type (plist :options ((:nick string)
 					     (:port integer)
 					     (:user-name string)
+					     (:password string)
 					     (:full-name string)
 					     (:pass string)
 					     (:channels (repeat string)))))
@@ -429,7 +435,8 @@
               (pass (plist-get (cdr c) :pass))
 	      (full-name (or (plist-get (cdr c) :full-name)
 			     rcirc-default-full-name))
-	      (channels (plist-get (cdr c) :channels)))
+	      (channels (plist-get (cdr c) :channels))
+              (password (plist-get (cdr c) :password)))
 	  (when server
 	    (let (connected)
 	      (dolist (p (rcirc-process-list))
@@ -438,7 +445,7 @@
 	      (if (not connected)
 		  (condition-case e
 		      (rcirc-connect server port nick user-name pass
-				     full-name channels)
+				     full-name channels password)
 		    (quit (message "Quit connecting to %s" server)))
 		(with-current-buffer (process-buffer connected)
 		  (setq connected-servers
--- a/lisp/term/common-win.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/term/common-win.el	Thu Jun 10 00:08:50 2010 +0200
@@ -275,10 +275,11 @@
     "medium slate blue" "slate blue" "dark slate blue" "midnight blue" "navy"
     "dark blue" "light steel blue" "cornflower blue" "dodger blue" "royal blue"
     "light slate gray" "slate gray" "dark slate gray" "steel blue" "cadet blue"
-    "light sky blue" "sky blue" "light blue" "powder blue" "pale turquoise" "turquoise"
-    "medium turquoise" "dark cyan" "aquamarine" "medium aquamarine" "light sea green"
+    "light sky blue" "sky blue" "light blue" "powder blue" "pale turquoise"
+    "turquoise" "medium turquoise" "dark turquoise"  "dark cyan" "aquamarine"
+    "medium aquamarine" "light sea green"
     "medium sea green" "sea green" "dark sea green" "pale green" "lime green"
-    "forest green" "light green" "green yellow" "yellow green" "olive drab"
+    "dark green" "forest green" "light green" "green yellow" "yellow green" "olive drab"
     "dark olive green" "lemon chiffon" "khaki" "dark khaki" "cornsilk"
     "pale goldenrod" "light goldenrod" "goldenrod" "dark goldenrod" "wheat"
     "navajo white" "tan" "burlywood" "sandy brown" "peru" "chocolate" "saddle brown"
@@ -287,7 +288,7 @@
     "dark magenta" "dark violet" "medium blue" "blue" "deep sky blue"
     "cyan" "medium spring green" "spring green" "green" "lawn green" "chartreuse"
     "yellow" "gold" "orange" "dark orange" "orange red" "red" "white" "white smoke"
-    "gainsboro" "light grey" "gray" "dark grey" "dim gray" "black" ))
+    "gainsboro" "light gray" "gray" "dark gray" "dim gray" "black" ))
   "List of basic colors available on color displays.
 For X, the list comes from the `rgb.txt' file,v 10.41 94/02/20.
 For Nextstep, this is a list of non-PANTONE colors returned by
--- a/lisp/vc-dispatcher.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/vc-dispatcher.el	Thu Jun 10 00:08:50 2010 +0200
@@ -101,7 +101,7 @@
 ;; that on-disk files and the contents of their visiting Emacs buffers
 ;; coincide.
 ;;
-;; When the client mode adds a local mode-line-hook to a buffer, it
+;; When the client mode adds a local vc-mode-line-hook to a buffer, it
 ;; will be called with the buffer file name as argument whenever the
 ;; dispatcher resynchs the buffer.
 
@@ -446,6 +446,10 @@
       (revert-buffer arg no-confirm t))
     (vc-restore-buffer-context context)))
 
+(defvar vc-mode-line-hook nil)
+(make-variable-buffer-local 'vc-mode-line-hook)
+(put 'vc-mode-line-hook 'permanent-local t)
+
 (defun vc-resynch-window (file &optional keep noquery reset-vc-info)
   "If FILE is in the current buffer, either revert or unvisit it.
 The choice between revert (to see expanded keywords) and unvisit
@@ -473,7 +477,8 @@
                          (not (eq (get major-mode 'mode-class) 'special))
                          (view-mode-enter))))
 
-	     (run-hook-with-args 'mode-line-hook buffer-file-name))
+             ;; FIXME: Why use a hook?  Why pass it buffer-file-name?
+	     (run-hook-with-args 'vc-mode-line-hook buffer-file-name))
 	 (kill-buffer (current-buffer)))))
 
 (declare-function vc-dir-resynch-file "vc-dir" (&optional fname))
--- a/lisp/vc-hooks.el	Wed Jun 09 11:36:58 2010 -0700
+++ b/lisp/vc-hooks.el	Thu Jun 10 00:08:50 2010 +0200
@@ -876,7 +876,8 @@
     (setq vc-mode nil))
   (when buffer-file-name
     (vc-file-clearprops buffer-file-name)
-    (add-hook 'mode-line-hook 'vc-mode-line nil t)
+    ;; FIXME: Why use a hook?  Why pass it buffer-file-name?
+    (add-hook 'vc-mode-line-hook 'vc-mode-line nil t)
     (let (backend)
       (cond
        ((setq backend (with-demoted-errors (vc-backend buffer-file-name)))
--- a/src/ChangeLog	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/ChangeLog	Thu Jun 10 00:08:50 2010 +0200
@@ -1,8 +1,21 @@
+2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
+	Check `object's type before accessing its guts.
+
 2010-06-09  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* s/usg5-4.h: Fix previous change.
 	Suggested by Lawrence Mitchell <wence@gmx.li>
 
+2010-06-08  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* minibuf.c (Fall_completions): Add more checks.
+
+2010-06-08  Juanma Barranquero  <lekktu@gmail.com>
+
+	* minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
+
 2010-06-08  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* lread.c (X_OK): Remove, unused.
@@ -74,6 +87,15 @@
 	* w32proc.c (CORRECT_DIR_SEPS): Remove.
 	(Fw32_short_file_name, Fw32_long_file_name): Use dostounix_filename.
 
+2010-06-03  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4
+	address.  (Bug#6346)
+
+2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
+
+	* ccl.c (Fccl_program_p): Fix typo in docstring.
+
 2010-06-03  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	Move UNEXEC definition to autoconf.
--- a/src/ccl.c	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/ccl.c	Thu Jun 10 00:08:50 2010 +0200
@@ -1362,7 +1362,7 @@
 		    if (point >= size) continue;
 		    map = AREF (Vcode_conversion_map_vector, point);
 
-		    /* Check map varidity.  */
+		    /* Check map validity.  */
 		    if (!CONSP (map)) continue;
 		    map = XCDR (map);
 		    if (!VECTORP (map)) continue;
@@ -1373,7 +1373,7 @@
 
 		    /* check map type,
 		       [STARTPOINT VAL1 VAL2 ...] or
-		       [t ELELMENT STARTPOINT ENDPOINT]  */
+		       [t ELEMENT STARTPOINT ENDPOINT]  */
 		    if (NUMBERP (content))
 		      {
 			point = XUINT (content);
@@ -1535,7 +1535,7 @@
 		      if (point >= map_vector_size) continue;
 		      map = AREF (Vcode_conversion_map_vector, point);
 
-		      /* Check map varidity.  */
+		      /* Check map validity.  */
 		      if (!CONSP (map)) continue;
 		      map = XCDR (map);
 		      if (!VECTORP (map)) continue;
@@ -1977,7 +1977,7 @@
 
 DEFUN ("ccl-program-p", Fccl_program_p, Sccl_program_p, 1, 1, 0,
        doc: /* Return t if OBJECT is a CCL program name or a compiled CCL program code.
-See the documentation of  `define-ccl-program' for the detail of CCL program.  */)
+See the documentation of `define-ccl-program' for the detail of CCL program.  */)
      (object)
      Lisp_Object object;
 {
@@ -2229,7 +2229,7 @@
 
       slot = AREF (Vccl_program_table, idx);
       if (!VECTORP (slot))
-	/* This is the first unsed slot.  Register NAME here.  */
+	/* This is the first unused slot.  Register NAME here.  */
 	break;
 
       if (EQ (name, AREF (slot, 0)))
--- a/src/character.h	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/character.h	Thu Jun 10 00:08:50 2010 +0200
@@ -264,7 +264,7 @@
 
 /* If P is before LIMIT, advance P to the next character boundary.
    Assumes that P is already at a character boundary of the same
-   mulitbyte form whose end address is LIMIT.  */
+   multibyte form whose end address is LIMIT.  */
 
 #define NEXT_CHAR_BOUNDARY(p, limit)	\
   do {					\
--- a/src/dbusbind.c	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/dbusbind.c	Thu Jun 10 00:08:50 2010 +0200
@@ -405,6 +405,7 @@
     switch (dtype)
       {
       case DBUS_TYPE_BYTE:
+	CHECK_NUMBER (object);
 	{
 	  unsigned char val = XUINT (object) & 0xFF;
 	  XD_DEBUG_MESSAGE ("%c %d", dtype, val);
@@ -423,6 +424,7 @@
 	}
 
       case DBUS_TYPE_INT16:
+	CHECK_NUMBER (object);
 	{
 	  dbus_int16_t val = XINT (object);
 	  XD_DEBUG_MESSAGE ("%c %d", dtype, (int) val);
@@ -432,6 +434,7 @@
 	}
 
       case DBUS_TYPE_UINT16:
+	CHECK_NUMBER (object);
 	{
 	  dbus_uint16_t val = XUINT (object);
 	  XD_DEBUG_MESSAGE ("%c %u", dtype, (unsigned int) val);
@@ -441,6 +444,7 @@
 	}
 
       case DBUS_TYPE_INT32:
+	CHECK_NUMBER (object);
 	{
 	  dbus_int32_t val = XINT (object);
 	  XD_DEBUG_MESSAGE ("%c %d", dtype, val);
@@ -450,6 +454,7 @@
 	}
 
       case DBUS_TYPE_UINT32:
+	CHECK_NUMBER (object);
 	{
 	  dbus_uint32_t val = XUINT (object);
 	  XD_DEBUG_MESSAGE ("%c %u", dtype, val);
@@ -459,6 +464,7 @@
 	}
 
       case DBUS_TYPE_INT64:
+	CHECK_NUMBER (object);
 	{
 	  dbus_int64_t val = XINT (object);
 	  XD_DEBUG_MESSAGE ("%c %d", dtype, (int) val);
@@ -468,6 +474,7 @@
 	}
 
       case DBUS_TYPE_UINT64:
+	CHECK_NUMBER (object);
 	{
 	  dbus_uint64_t val = XUINT (object);
 	  XD_DEBUG_MESSAGE ("%c %u", dtype, (unsigned int) val);
@@ -477,6 +484,7 @@
 	}
 
       case DBUS_TYPE_DOUBLE:
+	CHECK_FLOAT (object);
 	{
 	  double val = XFLOAT_DATA (object);
 	  XD_DEBUG_MESSAGE ("%c %f", dtype, val);
@@ -488,8 +496,13 @@
       case DBUS_TYPE_STRING:
       case DBUS_TYPE_OBJECT_PATH:
       case DBUS_TYPE_SIGNATURE:
+	CHECK_STRING (object);
 	{
-	  char *val = SDATA (Fstring_make_unibyte (object));
+	  /* We need to send a valid UTF-8 string.  We could encode `object'
+	     but by not encoding it, we guarantee it's valid utf-8, even if
+	     it contains eight-bit-bytes.  Of course, you can still send
+	     manually-crafted junk by passing a unibyte string.  */
+	  char *val = SDATA (object);
 	  XD_DEBUG_MESSAGE ("%c %s", dtype, val);
 	  if (!dbus_message_iter_append_basic (iter, dtype, &val))
 	    XD_SIGNAL2 (build_string ("Unable to append argument"), object);
--- a/src/fns.c	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/fns.c	Thu Jun 10 00:08:50 2010 +0200
@@ -1,7 +1,8 @@
 /* Random utility Lisp functions.
    Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997,
                  1998, 1999, 2000, 2001, 2002, 2003, 2004,
-                 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+                 2005, 2006, 2007, 2008, 2009, 2010
+		 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -514,7 +515,7 @@
      So, we record strings that have text properties to be copied
      here, and copy the text properties after the concatination.  */
   struct textprop_rec  *textprops = NULL;
-  /* Number of elments in textprops.  */
+  /* Number of elements in textprops.  */
   int num_textprops = 0;
   USE_SAFE_ALLOCA;
 
--- a/src/fringe.c	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/fringe.c	Thu Jun 10 00:08:50 2010 +0200
@@ -730,7 +730,7 @@
      Elements are:
 	BITMAP		-- use for all
 	(L R)		-- use for left right (whether partial or not)
-	(L R PL PR)	-- use for left rigth partial-left partial-right
+	(L R PL PR)	-- use for left right partial-left partial-right
 	If any value in local binding is not present or t, use global value.
 
      If partial, lookup partial bitmap in default value if not found here.
--- a/src/lisp.h	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/lisp.h	Thu Jun 10 00:08:50 2010 +0200
@@ -932,7 +932,7 @@
     struct Lisp_Vector *next;
 
     /* Depth of this sub char-table.  It should be 1, 2, or 3.  A sub
-       char-table of depth 1 contains 16 elments, and each element
+       char-table of depth 1 contains 16 elements, and each element
        covers 4096 (128*32) characters.  A sub char-table of depth 2
        contains 32 elements, and each element covers 128 characters.  A
        sub char-table of depth 3 contains 128 elements, and each element
@@ -1139,7 +1139,7 @@
   Lisp_Object user_cmp_function;
 
   /* Only the fields above are traced normally by the GC.  The ones below
-     `count'.  are special and are either ignored by the GC or traced in
+     `count' are special and are either ignored by the GC or traced in
      a special way (e.g. because of weakness).  */
 
   /* Number of key/value entries in the table.  */
@@ -1326,9 +1326,9 @@
    binding into `realvalue' (or through it).  Also update
    LOADED-BINDING to point to the newly loaded binding.
 
-   `local_if_set' indicates that merely setting the variable creates a local
-   binding for the current buffer.  Otherwise the latter, setting the
-   variable does not do that; only make-local-variable does that.  */
+   `local_if_set' indicates that merely setting the variable creates a
+   local binding for the current buffer.  Otherwise the latter, setting
+   the variable does not do that; only make-local-variable does that.  */
 
 struct Lisp_Buffer_Local_Value
   {
@@ -1649,7 +1649,7 @@
 #define CHECK_VECTOR_OR_STRING(x) \
   CHECK_TYPE (VECTORP (x) || STRINGP (x), Qarrayp, x)
 
-#define CHECK_ARRAY(x, Qxxxp)							\
+#define CHECK_ARRAY(x, Qxxxp) \
   CHECK_TYPE (ARRAYP (x), Qxxxp, x)
 
 #define CHECK_VECTOR_OR_CHAR_TABLE(x) \
@@ -1695,14 +1695,14 @@
 
 #define XFLOATINT(n) extract_float((n))
 
-#define CHECK_FLOAT(x)		\
+#define CHECK_FLOAT(x) \
   CHECK_TYPE (FLOATP (x), Qfloatp, x)
 
-#define CHECK_NUMBER_OR_FLOAT(x)	\
+#define CHECK_NUMBER_OR_FLOAT(x) \
   CHECK_TYPE (FLOATP (x) || INTEGERP (x), Qnumberp, x)
 
 #define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(x) \
-  do { if (MARKERP (x)) XSETFASTINT (x, marker_position (x));	\
+  do { if (MARKERP (x)) XSETFASTINT (x, marker_position (x)); \
     else CHECK_TYPE (INTEGERP (x) || FLOATP (x), Qnumber_or_marker_p, x); } while (0)
 
 #define CHECK_OVERLAY(x) \
@@ -1792,8 +1792,8 @@
 			 Lisp_Object, Lisp_Object, Lisp_Object)
 #define DEFUN_ARGS_8	(Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, \
 			 Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object)
+
 /* Non-zero if OBJ is a Lisp function.  */
-
 #define FUNCTIONP(OBJ)					\
      ((CONSP (OBJ) && EQ (XCAR (OBJ), Qlambda))		\
       || (SYMBOLP (OBJ) && !NILP (Ffboundp (OBJ)))	\
@@ -1862,12 +1862,11 @@
 
    If the symbol field is a symbol, it is an ordinary variable binding.
 
-   Otherwise, it should be a structure (SYMBOL WHERE
-   . CURRENT-BUFFER), which means having bound a local value while
-   CURRENT-BUFFER was active.  If WHERE is nil this means we saw the
-   default value when binding SYMBOL.  WHERE being a buffer or frame
-   means we saw a buffer-local or frame-local value.  Other values of
-   WHERE mean an internal error.  */
+   Otherwise, it should be a structure (SYMBOL WHERE . CURRENT-BUFFER),
+   which means having bound a local value while CURRENT-BUFFER was active.
+   If WHERE is nil this means we saw the default value when binding SYMBOL.
+   WHERE being a buffer or frame means we saw a buffer-local or frame-local
+   value.  Other values of WHERE mean an internal error.  */
 
 typedef Lisp_Object (*specbinding_func) P_ ((Lisp_Object));
 
@@ -2057,16 +2056,16 @@
 
 /* Structure for recording stack slots that need marking.  */
 
-/* This is a chain of structures, each of which points at a Lisp_Object variable
- whose value should be marked in garbage collection.
- Normally every link of the chain is an automatic variable of a function,
- and its `val' points to some argument or local variable of the function.
- On exit to the function, the chain is set back to the value it had on entry.
- This way, no link remains in the chain when the stack frame containing the
- link disappears.
-
- Every function that can call Feval must protect in this fashion all
- Lisp_Object variables whose contents will be used again.  */
+/* This is a chain of structures, each of which points at a Lisp_Object
+   variable whose value should be marked in garbage collection.
+   Normally every link of the chain is an automatic variable of a function,
+   and its `val' points to some argument or local variable of the function.
+   On exit to the function, the chain is set back to the value it had on entry.
+   This way, no link remains in the chain when the stack frame containing the
+   link disappears.
+
+   Every function that can call Feval must protect in this fashion all
+   Lisp_Object variables whose contents will be used again.  */
 
 extern struct gcpro *gcprolist;
 
@@ -2972,7 +2971,7 @@
 EXFUN (Ffield_string_no_properties, 1);
 extern void set_time_zone_rule P_ ((char *));
 
-/* defined in buffer.c */
+/* Defined in buffer.c */
 extern int mouse_face_overlay_overlaps P_ ((Lisp_Object));
 extern void nsberror P_ ((Lisp_Object)) NO_RETURN;
 EXFUN (Fset_buffer_multibyte, 1);
@@ -3015,7 +3014,7 @@
 extern void syms_of_buffer P_ ((void));
 extern void keys_of_buffer P_ ((void));
 
-/* defined in marker.c */
+/* Defined in marker.c */
 
 EXFUN (Fmarker_position, 1);
 EXFUN (Fmarker_buffer, 1);
@@ -3070,7 +3069,7 @@
 
 extern void syms_of_abbrev P_ ((void));
 
-/* defined in search.c */
+/* Defined in search.c */
 extern void shrink_regexp_cache P_ ((void));
 EXFUN (Fstring_match, 3);
 extern void restore_search_regs P_ ((void));
@@ -3094,7 +3093,7 @@
 extern void syms_of_search P_ ((void));
 extern void clear_regexp_cache P_ ((void));
 
-/* defined in minibuf.c */
+/* Defined in minibuf.c */
 
 extern Lisp_Object last_minibuf_string;
 extern void choose_minibuf_frame P_ ((void));
@@ -3121,7 +3120,7 @@
 EXFUN (Fprefix_numeric_value, 1);
 extern void syms_of_callint P_ ((void));
 
-/* defined in casefiddle.c */
+/* Defined in casefiddle.c */
 
 EXFUN (Fdowncase, 1);
 EXFUN (Fupcase, 1);
@@ -3132,14 +3131,14 @@
 extern void syms_of_casefiddle P_ ((void));
 extern void keys_of_casefiddle P_ ((void));
 
-/* defined in casetab.c */
+/* Defined in casetab.c */
 
 EXFUN (Fset_case_table, 1);
 EXFUN (Fset_standard_case_table, 1);
 extern void init_casetab_once P_ ((void));
 extern void syms_of_casetab P_ ((void));
 
-/* defined in keyboard.c */
+/* Defined in keyboard.c */
 
 extern int echoing;
 extern Lisp_Object echo_message_buffer;
@@ -3180,7 +3179,7 @@
 extern char *push_key_description P_ ((unsigned int, char *, int));
 
 
-/* defined in indent.c */
+/* Defined in indent.c */
 EXFUN (Fvertical_motion, 2);
 EXFUN (Findent_to, 2);
 EXFUN (Fcurrent_column, 0);
@@ -3190,7 +3189,7 @@
 extern int indented_beyond_p P_ ((int, int, double));
 extern void syms_of_indent P_ ((void));
 
-/* defined in frame.c */
+/* Defined in frame.c */
 #ifdef HAVE_WINDOW_SYSTEM
 extern Lisp_Object Vx_resource_name;
 extern Lisp_Object Vx_resource_class;
@@ -3233,7 +3232,7 @@
 extern void frames_bury_buffer P_ ((Lisp_Object));
 extern void syms_of_frame P_ ((void));
 
-/* defined in emacs.c */
+/* Defined in emacs.c */
 extern Lisp_Object decode_env_path P_ ((char *, char *));
 extern Lisp_Object Vinvocation_name, Vinvocation_directory;
 extern Lisp_Object Vbefore_init_time, Vafter_init_time;
@@ -3251,7 +3250,7 @@
 #define synchronize_system_time_locale()
 #endif
 void shut_down_emacs P_ ((int, int, Lisp_Object));
-/* Nonzero means don't do interactive redisplay and don't change tty modes */
+/* Nonzero means don't do interactive redisplay and don't change tty modes.  */
 extern int noninteractive;
 
 /* Nonzero means don't load X resources or Windows Registry settings.  */
@@ -3262,12 +3261,12 @@
 extern int daemon_pipe[2];
 #define IS_DAEMON (daemon_pipe[1] != 0)
 
-/* Nonzero means don't do use window-system-specific display code */
+/* Nonzero means don't do use window-system-specific display code.  */
 extern int inhibit_window_system;
 /* Nonzero means that a filter or a sentinel is running.  */
 extern int running_asynch_code;
 
-/* defined in process.c */
+/* Defined in process.c */
 EXFUN (Fget_process, 1);
 EXFUN (Fget_buffer_process, 1);
 EXFUN (Fprocessp, 1);
@@ -3290,7 +3289,7 @@
 extern void syms_of_process P_ ((void));
 extern void setup_process_coding_systems P_ ((Lisp_Object));
 
-/* defined in callproc.c */
+/* Defined in callproc.c */
 extern Lisp_Object Vexec_path, Vexec_suffixes,
                    Vexec_directory, Vdata_directory;
 extern Lisp_Object Vdoc_directory;
@@ -3301,7 +3300,7 @@
 extern void set_initial_environment P_ ((void));
 extern void syms_of_callproc P_ ((void));
 
-/* defined in doc.c */
+/* Defined in doc.c */
 extern Lisp_Object Vdoc_file_name;
 EXFUN (Fsubstitute_command_keys, 1);
 EXFUN (Fdocumentation, 2);
@@ -3311,7 +3310,7 @@
 extern void syms_of_doc P_ ((void));
 extern int read_bytecode_char P_ ((int));
 
-/* defined in bytecode.c */
+/* Defined in bytecode.c */
 extern Lisp_Object Qbytecode;
 EXFUN (Fbyte_code, 3);
 extern void syms_of_bytecode P_ ((void));
@@ -3319,14 +3318,14 @@
 extern void mark_byte_stack P_ ((void));
 extern void unmark_byte_stack P_ ((void));
 
-/* defined in macros.c */
+/* Defined in macros.c */
 extern Lisp_Object Qexecute_kbd_macro;
 EXFUN (Fexecute_kbd_macro, 3);
 EXFUN (Fcancel_kbd_macro_events, 0);
 extern void init_macros P_ ((void));
 extern void syms_of_macros P_ ((void));
 
-/* defined in undo.c */
+/* Defined in undo.c */
 extern Lisp_Object Qinhibit_read_only;
 EXFUN (Fundo_boundary, 0);
 extern void truncate_undo_list P_ ((struct buffer *));
@@ -3340,7 +3339,7 @@
 extern void syms_of_undo P_ ((void));
 extern Lisp_Object Vundo_outer_limit;
 
-/* defined in textprop.c */
+/* Defined in textprop.c */
 extern Lisp_Object Qfont, Qmouse_face;
 extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
 EXFUN (Fnext_single_property_change, 4);
@@ -3357,21 +3356,21 @@
 							 Lisp_Object,
 							 Lisp_Object));
 
-/* defined in menu.c */
+/* Defined in menu.c */
 extern void syms_of_menu P_ ((void));
 
-/* defined in xmenu.c */
+/* Defined in xmenu.c */
 EXFUN (Fx_popup_menu, 2);
 EXFUN (Fx_popup_dialog, 3);
 extern void syms_of_xmenu P_ ((void));
 
-/* defined in termchar.h */
+/* Defined in termchar.h */
 struct tty_display_info;
 
-/* defined in termhooks.h */
+/* Defined in termhooks.h */
 struct terminal;
 
-/* defined in sysdep.c */
+/* Defined in sysdep.c */
 #ifndef HAVE_GET_CURRENT_DIR_NAME
 extern char *get_current_dir_name P_ ((void));
 #endif
@@ -3395,7 +3394,7 @@
 extern int emacs_read P_ ((int, char *, unsigned int));
 extern int emacs_write P_ ((int, const char *, unsigned int));
 
-/* defined in filelock.c */
+/* Defined in filelock.c */
 EXFUN (Funlock_buffer, 0);
 EXFUN (Ffile_locked_p, 1);
 extern void unlock_all_files P_ ((void));
--- a/src/minibuf.c	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/minibuf.c	Thu Jun 10 00:08:50 2010 +0200
@@ -1589,6 +1589,7 @@
   tail = collection;
   if (type == 2)
     {
+      collection = check_obarray (collection);
       obsize = XVECTOR (collection)->size;
       bucket = XVECTOR (collection)->contents[index];
     }
@@ -1612,6 +1613,8 @@
 	{
 	  if (!EQ (bucket, zero))
 	    {
+	      if (!SYMBOLP (bucket))
+		error ("Bad data in guts of obarray");
 	      elt = bucket;
 	      eltstring = elt;
 	      if (XSYMBOL (bucket)->next)
--- a/src/process.c	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/process.c	Thu Jun 10 00:08:50 2010 +0200
@@ -2487,9 +2487,11 @@
 		ip6[i] = ntohs (j);
 	      }
 	  sa->sa_family = family;
+	  return;
 	}
 #endif
-      return;
+      else
+	return;
     }
   else if (STRINGP (address))
     {
--- a/src/regex.c	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/regex.c	Thu Jun 10 00:08:50 2010 +0200
@@ -2085,7 +2085,7 @@
   } while (0)
 
 
-/* Both FROM and TO are mulitbyte characters.  */
+/* Both FROM and TO are multibyte characters.  */
 
 #define SETUP_MULTIBYTE_RANGE(work_area, FROM, TO)			   \
   do {									   \
--- a/src/search.c	Wed Jun 09 11:36:58 2010 -0700
+++ b/src/search.c	Thu Jun 10 00:08:50 2010 +0200
@@ -100,10 +100,10 @@
 
 static void set_search_regs P_ ((EMACS_INT, EMACS_INT));
 static void save_search_regs P_ ((void));
-static EMACS_INT simple_search P_ ((int, unsigned char *, int, int, 
+static EMACS_INT simple_search P_ ((int, unsigned char *, int, int,
 				    Lisp_Object, EMACS_INT, EMACS_INT,
 				    EMACS_INT, EMACS_INT));
-static EMACS_INT boyer_moore P_ ((int, unsigned char *, int, int, 
+static EMACS_INT boyer_moore P_ ((int, unsigned char *, int, int,
 				  Lisp_Object, Lisp_Object,
 				  EMACS_INT, EMACS_INT,
 				  EMACS_INT, EMACS_INT, int));
@@ -281,7 +281,7 @@
   if (regp)
     re_set_registers (&cp->buf, regp, regp->num_regs, regp->start, regp->end);
 
-  /* The compiled pattern can be used both for mulitbyte and unibyte
+  /* The compiled pattern can be used both for multibyte and unibyte
      target.  But, we have to tell which the pattern is used for. */
   cp->buf.target_multibyte = multibyte;
 
@@ -582,7 +582,7 @@
   unsigned char *p1, *p2;
   EMACS_INT s1, s2;
   EMACS_INT len;
-  
+
   if (STRINGP (string))
     {
       if (pos_byte < 0)