changeset 90118:e330fedc9152

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-24 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0 (patch 166-172) - Update from CVS - Tweak obsolete function/variable warning message - Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/gnus--rel--5.10 (patch 38) - Update from CVS
author Miles Bader <miles@gnu.org>
date Thu, 10 Mar 2005 23:36:47 +0000
parents 1913c17617fc (current diff) 003f15290687 (diff)
children 8395880305fe
files ChangeLog configure configure.in etc/ChangeLog etc/NEWS lisp/ChangeLog lisp/bindings.el lisp/calc/calc-embed.el lisp/calendar/calendar.el lisp/calendar/diary-lib.el lisp/emacs-lisp/bytecomp.el lisp/emacs-lisp/debug.el lisp/gnus/ChangeLog lisp/gnus/nnimap.el lisp/help.el lisp/net/browse-url.el lisp/play/animate.el lisp/progmodes/gdb-ui.el lisp/textmodes/ispell.el lisp/tooltip.el src/ChangeLog src/dispextern.h src/gtkutil.c src/keyboard.c src/xdisp.c src/xfns.c
diffstat 26 files changed, 289 insertions(+), 167 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Mar 09 07:54:53 2005 +0000
+++ b/ChangeLog	Thu Mar 10 23:36:47 2005 +0000
@@ -1,3 +1,8 @@
+2005-03-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* configure.in: Only add XASSERTS to cppflags.
+	* configure: Regenerate.
+
 2005-03-04  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* configure.in: Added --enable-asserts.
--- a/configure	Wed Mar 09 07:54:53 2005 +0000
+++ b/configure	Thu Mar 10 23:36:47 2005 +0000
@@ -21987,7 +21987,6 @@
 
 if test $USE_XASSERTS = yes; then
    echo "  Compiling with asserts turned on."
-   CFLAGS="$CFLAGS -DXASSERTS=1"
    CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
    echo
 fi
--- a/configure.in	Wed Mar 09 07:54:53 2005 +0000
+++ b/configure.in	Thu Mar 10 23:36:47 2005 +0000
@@ -3103,7 +3103,6 @@
 
 if test $USE_XASSERTS = yes; then
    echo "  Compiling with asserts turned on."
-   CFLAGS="$CFLAGS -DXASSERTS=1"
    CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
    echo
 fi
--- a/etc/ChangeLog	Wed Mar 09 07:54:53 2005 +0000
+++ b/etc/ChangeLog	Thu Mar 10 23:36:47 2005 +0000
@@ -1,7 +1,11 @@
+2005-03-10  Michael Albinus  <michael.albinus@gmx.de>
+
+	* NEWS: Explain how to default Tramp to FTP.
+
 2005-03-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* NEWS: Mention Carbon build on Mac OS 9.
-	
+
 2005-03-01  David Kastrup  <dak@gnu.org>
 
 	* DEBUG: Add information about `-fno-crossjumping' for GCC.
@@ -49,7 +53,7 @@
 2005-01-13  Cheng Gao  <chenggao@gmail.com>
 
 	* MORE.STUFF: Add entries of some well known and widely used packages.
-	
+
 2005-01-07  Lars Hansen  <larsh@math.ku.dk>
 
 	* NEWS: Describe desktop package lazy restore feature.
--- a/etc/NEWS	Wed Mar 09 07:54:53 2005 +0000
+++ b/etc/NEWS	Thu Mar 10 23:36:47 2005 +0000
@@ -2520,7 +2520,11 @@
 `rsync' to do the copying).
 
 Shell connections can be acquired via `rsh', `ssh', `telnet' and also
-`su' and `sudo'.
+`su' and `sudo'.  Ange-FTP is still supported via the `ftp' method.
+
+If you want to disable Tramp you should set
+
+  (setq tramp-default-method "ftp")
 
 ---
 ** The new global minor mode `file-name-shadow-mode' modifies the way
--- a/lisp/ChangeLog	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/ChangeLog	Thu Mar 10 23:36:47 2005 +0000
@@ -1,3 +1,80 @@
+2005-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* help.el (describe-mode): Properly handle non-trivial lighters.
+	Don't ignore minor modes that are not listed in minor-mode-list.
+
+	* tooltip.el (tooltip-mode): Don't complain that you can't turn the
+	feature ON when the user requests to turn it OFF.
+
+2005-03-10  Lute Kamstra  <lute@gnu.org>
+
+	* emacs-lisp/debug.el (debug-entry-code): Delete it.
+	(implement-debug-on-entry): New function to replace debug-entry-code.
+	(debug-on-entry-1): Use implement-debug-on-entry.  Delete the
+	second argument as the 2005-03-07 change makes it obsolete.
+	(debug-on-entry, cancel-debug-on-entry): Update call to
+	debug-on-entry-1.
+	(debug, debugger-setup-buffer): Comment update.
+	(debugger-frame-number): Update to work with implement-debug-on-entry.
+
+2005-03-10  Jay Belanger  <belanger@truman.edu>
+
+	* calc/calc-embed.el (math-ms-args): Declare it.
+	(calc-embedded-eval-expr, calc-embedded-eval-get-var): Use variable
+	math-ms-args.
+	(calc-embedded-subst): Use math-multi-subst-rec to substitute
+	variables.
+
+2005-03-10  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdb-var-create-handler, gdb-get-location):
+	Use message-box.
+
+	* tooltip.el (tooltip-mode): Use define-minor-mode and simplify.
+	(tooltip-activate-mouse-motions-if-enabled): Use dolist.
+	(tooltip-gud-tips): Simplify.
+	(tooltip-gud-tips-p): Remove superflouous :set.
+	(tooltip-gud-modes): Add fortran-mode.
+	(gdb-tooltip-print): Remove newline for tooltip-use-echo-area.
+
+	* bindings.el (mode-line-mode-menu): Add tooltip-mode to mode-line.
+
+2005-03-09  Kim F. Storm  <storm@cua.dk>
+
+	* play/animate.el (animate-place-char): Use forward-line instead
+	of next-line to improve performance.
+
+2005-03-09  Simon Josefsson  <jas@extundo.com>
+
+	* net/browse-url.el (browse-url-default-browser): Doc fix.
+
+2005-03-09  Miles Bader  <miles@gnu.org>
+
+	* emacs-lisp/bytecomp.el (byte-compile-variable-ref)
+	(byte-compile-obsolete): Change " since VER" to " (as of Emacs VER)".
+
+2005-03-09  Kenichi Handa  <handa@m17n.org>
+
+	* international/latin-1.el: Set case and syntax for 255 only if
+	set-case-syntax-set-multibyte is nil.
+
+	* textmodes/ispell.el (ispell-insert-word): New function.
+	(ispell-word): Use ispell-insert-word to insert a new word.
+	(ispell-process-line): Likewise.
+	(ispell-complete-word): Likewise.
+
+2005-03-09  Glenn Morris  <gmorris@ast.cam.ac.uk>
+
+	* calendar/calendar.el (redraw-calendar): Preserve point.
+	Reported by Matt Hodges <MPHodges@member.fsf.org>.
+	(calendar-week-start-day): Move after definition of
+	redraw-calendar.  Delete buffer test, since redraw-calendar has
+	that now.
+
+	* calendar/diary-lib.el (mark-diary-entries): Only call
+	redraw-calendar in the first of any recursive calls.
+	Reported by Alan Shutko <ats@acm.org>.
+
 2005-03-08  Juri Linkov  <juri@jurta.org>
 
 	* textmodes/sgml-mode.el (sgml-tag, html-tag-alist)
@@ -249,8 +326,7 @@
 	that debug-entry-code can be safely removed from a function while
 	this code is being evaluated.  Revert the 2005-02-27 change as the
 	new implementation no longer requires it.  Make sure that a
-	function body containing just a string is not mistaken for a
-	docstring.
+	function body containing just a string is not mistaken for a docstring.
 	(debug): Skip one more frame in case of debug on entry.
 	(debugger-setup-buffer): Delete one more frame line in case of
 	debug on entry.
--- a/lisp/bindings.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/bindings.el	Thu Mar 10 23:36:47 2005 +0000
@@ -392,6 +392,9 @@
   "Return the value of symbol VAR if it is bound, else nil."
   `(and (boundp (quote ,var)) ,var))
 
+(define-key mode-line-mode-menu [tooltip-mode]
+  `(menu-item ,(purecopy "Tooltip") tooltip-mode
+	      :button (:toggle . tooltip-mode)))
 (define-key mode-line-mode-menu [overwrite-mode]
   `(menu-item ,(purecopy "Overwrite (Ovwrt)") overwrite-mode
 	      :button (:toggle . overwrite-mode)))
--- a/lisp/calc/calc-embed.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/calc/calc-embed.el	Thu Mar 10 23:36:47 2005 +0000
@@ -881,13 +881,13 @@
 	 (while (setq x (cdr x))
 	   (calc-embedded-find-vars (car x))))))
 
-
+(defvar math-ms-args)
 (defun calc-embedded-evaluate-expr (x)
   (let ((calc-embed-vars-used (aref calc-embedded-info 10)))
     (or calc-embed-vars-used (calc-embedded-find-vars x))
     (if calc-embed-vars-used
 	(let ((active (assq (aref calc-embedded-info 0) calc-embedded-active))
-	      (args nil))
+	      (math-ms-args nil))
 	  (save-excursion
 	    (calc-embedded-original-buffer t)
 	    (or active
@@ -911,7 +911,7 @@
 	(list 'calcFunc-assign
 	      (nth 1 x)
 	      (calc-embedded-subst (nth 2 x)))
-      (calc-normalize (math-evaluate-expr-rec (math-multi-subst x nil nil))))))
+      (calc-normalize (math-evaluate-expr-rec (math-multi-subst-rec x))))))
 
 (defun calc-embedded-eval-get-var (var base)
   (let ((entry base)
@@ -938,7 +938,7 @@
 		    (setq val (nth 2 val)))
 		(if (eq (car-safe val) 'calcFunc-assign)
 		    (setq val (nth 2 val)))
-		(setq args (cons (cons var val) args)))
+		(setq math-ms-args (cons (cons var val) math-ms-args)))
 	    (calc-embedded-activate)
 	    (calc-embedded-eval-get-var var base))))))
 
--- a/lisp/calendar/calendar.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/calendar/calendar.el	Thu Mar 10 23:36:47 2005 +0000
@@ -145,24 +145,6 @@
   "Name of the buffer used for the calendar.")
 
 ;;;###autoload
-(defcustom calendar-week-start-day 0
-  "*The day of the week on which a week in the calendar begins.
-0 means Sunday (default), 1 means Monday, and so on.
-
-If you change this variable directly (without using customize)
-after starting `calendar', you should call `redraw-calendar' to
-update the calendar display to reflect the change, otherwise
-movement commands will not work correctly."
-  :type 'integer
-  :set (lambda (sym val)
-         (set sym val)
-         (let ((buffer (get-buffer calendar-buffer)))
-           (when (buffer-live-p buffer)
-             (with-current-buffer buffer
-               (redraw-calendar)))))
-  :group 'calendar)
-
-;;;###autoload
 (defcustom calendar-offset 0
   "*The offset of the principal month from the center of the calendar window.
 0 means the principal month is in the center (default), -1 means on the left,
@@ -2172,10 +2154,26 @@
   "Redraw the calendar display, if `calendar-buffer' is live."
   (interactive)
   (if (get-buffer calendar-buffer)
-      (with-current-buffer calendar-buffer
-        (let ((cursor-date (calendar-cursor-to-nearest-date)))
-          (generate-calendar-window displayed-month displayed-year)
-          (calendar-cursor-to-visible-date cursor-date)))))
+      (save-excursion
+        (with-current-buffer calendar-buffer
+          (let ((cursor-date (calendar-cursor-to-nearest-date)))
+            (generate-calendar-window displayed-month displayed-year)
+            (calendar-cursor-to-visible-date cursor-date))))))
+
+;;;###autoload
+(defcustom calendar-week-start-day 0
+  "*The day of the week on which a week in the calendar begins.
+0 means Sunday (default), 1 means Monday, and so on.
+
+If you change this variable directly (without using customize)
+after starting `calendar', you should call `redraw-calendar' to
+update the calendar display to reflect the change, otherwise
+movement commands will not work correctly."
+  :type 'integer
+  :set (lambda (sym val)
+         (set sym val)
+         (redraw-calendar))
+  :group 'calendar)
 
 (defcustom calendar-debug-sexp nil
   "*Turn debugging on when evaluating a sexp in the diary or holiday list."
--- a/lisp/calendar/diary-lib.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/calendar/diary-lib.el	Thu Mar 10 23:36:47 2005 +0000
@@ -842,7 +842,11 @@
 `mark-diary-entries-hook' are run."
   (interactive)
   ;; To remove any deleted diary entries.
-  (when mark-diary-entries-in-calendar
+  (when (and mark-diary-entries-in-calendar
+             ;; Avoid redrawing when called recursively, eg through
+             ;; mark-diary-entries-hook for #include's, else only get
+             ;; the last set of diary marks.
+             (not marking-diary-entries))
     (setq mark-diary-entries-in-calendar nil)
     (redraw-calendar))
   (let ((marking-diary-entries t)
--- a/lisp/emacs-lisp/bytecomp.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Thu Mar 10 23:36:47 2005 +0000
@@ -1039,7 +1039,7 @@
     (byte-compile-set-symbol-position (car form))
     (if (memq 'obsolete byte-compile-warnings)
 	(byte-compile-warn "`%s' is an obsolete function%s; %s" (car form)
-			   (if when (concat " since " when) "")
+			   (if when (concat " (as of Emacs " when ")") "")
 			   (if (stringp (car new))
 			       (car new)
 			     (format "use `%s' instead." (car new)))))
@@ -2779,7 +2779,7 @@
 	(let* ((ob (get var 'byte-obsolete-variable))
 	       (when (cdr ob)))
 	  (byte-compile-warn "`%s' is an obsolete variable%s; %s" var
-			     (if when (concat " since " when) "")
+			     (if when (concat " (as of Emacs " when ")") "")
 			     (if (stringp (car ob))
 				 (car ob)
 			       (format "use `%s' instead." (car ob))))))
--- a/lisp/emacs-lisp/debug.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/emacs-lisp/debug.el	Thu Mar 10 23:36:47 2005 +0000
@@ -97,14 +97,6 @@
 This variable is used by `debugger-jump', `debugger-step-through',
 and `debugger-reenable' to temporarily disable debug-on-entry.")
 
-;; When you change this, you may also need to change the number of
-;; frames that the debugger skips.
-(defconst debug-entry-code
-  '(if (or inhibit-debug-on-entry debugger-jumping-flag)
-       nil
-     (debug 'debug))
-  "Code added to a function to cause it to call the debugger upon entry.")
-
 ;;;###autoload
 (setq debugger 'debug)
 ;;;###autoload
@@ -200,7 +192,7 @@
 		  (kill-emacs))
 		(if (eq (car debugger-args) 'debug)
 		    ;; Skip the frames for backtrace-debug, byte-code,
-		    ;; and debug-entry-code.
+		    ;; and implement-debug-on-entry.
 		    (backtrace-debug 4 t))
 		(message "")
 		(let ((standard-output nil)
@@ -264,7 +256,7 @@
 		 (progn
 		   (search-forward "\n  debug(")
 		   (forward-line (if (eq (car debugger-args) 'debug)
-				     2	; Remove debug-entry-code frame.
+				     2	; Remove implement-debug-on-entry frame.
 				   1))
 		   (point)))
   (insert "Debugger entered")
@@ -432,8 +424,8 @@
 	  (count 0))
       (while (not (eq (cadr (backtrace-frame count)) 'debug))
 	(setq count (1+ count)))
-      ;; Skip debug-entry-code frame.
-      (when (member '(debug (quote debug)) (cdr (backtrace-frame (1+ count))))
+      ;; Skip implement-debug-on-entry frame.
+      (when (eq 'implement-debug-on-entry (cadr (backtrace-frame (1+ count))))
 	(setq count (1+ count)))
       (goto-char (point-min))
       (when (looking-at "Debugger entered--\\(Lisp error\\|returning value\\):")
@@ -623,6 +615,16 @@
   (use-local-map debugger-mode-map)
   (run-mode-hooks 'debugger-mode-hook))
 
+;; When you change this, you may also need to change the number of
+;; frames that the debugger skips.
+(defun implement-debug-on-entry ()
+  "Conditionally call the debugger.
+A call to this function is inserted by `debug-on-entry' to cause
+functions to break on entry."
+  (if (or inhibit-debug-on-entry debugger-jumping-flag)
+      nil
+    (funcall debugger 'debug)))
+
 ;;;###autoload
 (defun debug-on-entry (function)
   "Request FUNCTION to invoke debugger each time it is called.
@@ -647,7 +649,7 @@
       (debug-convert-byte-code function))
   (or (consp (symbol-function function))
       (error "Definition of %s is not a list" function))
-  (fset function (debug-on-entry-1 function (symbol-function function) t))
+  (fset function (debug-on-entry-1 function t))
   (or (memq function debug-function-list)
       (push function debug-function-list))
   function)
@@ -664,7 +666,7 @@
 	   (if name (intern name)))))
   (if (and function (not (string= function "")))
       (progn
-	(let ((f (debug-on-entry-1 function (symbol-function function) nil)))
+	(let ((f (debug-on-entry-1 function nil)))
 	  (condition-case nil
 	      (if (and (equal (nth 1 f) '(&rest debug-on-entry-args))
 		       (eq (car (nth 3 f)) 'apply))
@@ -695,8 +697,9 @@
 	      (setq body (cons (documentation function) body)))
 	  (fset function (cons 'lambda (cons (car contents) body)))))))
 
-(defun debug-on-entry-1 (function defn flag)
-  (let ((tail defn))
+(defun debug-on-entry-1 (function flag)
+  (let* ((defn (symbol-function function))
+	 (tail defn))
     (if (subrp tail)
 	(error "%s is a built-in function" function)
       (if (eq (car tail) 'macro) (setq tail (cdr tail)))
@@ -708,10 +711,10 @@
       ;; Skip the interactive form.
       (when (eq 'interactive (car-safe (cadr tail)))
 	(setq tail (cdr tail)))
-      (unless (eq flag (equal (cadr tail) debug-entry-code))
+      (unless (eq flag (equal (cadr tail) '(implement-debug-on-entry)))
 	;; Add/remove debug statement as needed.
 	(if flag
-	    (setcdr tail (cons debug-entry-code (cdr tail)))
+	    (setcdr tail (cons '(implement-debug-on-entry) (cdr tail)))
 	  (setcdr tail (cddr tail))))
       defn)))
 
--- a/lisp/gnus/ChangeLog	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/gnus/ChangeLog	Thu Mar 10 23:36:47 2005 +0000
@@ -1,3 +1,12 @@
+2005-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* nnimap.el (nnimap-retrieve-headers-from-server): Fix last change.
+
+2005-03-10  Arne J,Ax(Brgensen <arne@arnested.dk>  (tiny change)
+
+	* nnimap.el (nnimap-retrieve-headers-from-server): Fix off-by-one
+	flaw.
+
 2005-03-08  Bjorn Solberg <bjorn_ding@hekneby.org>  (tiny change)
 
 	* nnimap.el (nnimap-retrieve-headers-from-server): Sort NOV
@@ -7,14 +16,13 @@
 2005-03-04  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* message.el: Don't autoload former message-utils variables.
-	(message-strip-subject-trailing-was): Changed doc string.
+	(message-strip-subject-trailing-was): Change doc string.
 
 	* nnweb.el: Fixes for `gnus-group-make-web-group'.
-	(nnweb-type-definition): Don't add "hl=en" in `address'.  Added
-	`base'.
+	(nnweb-type-definition): Don't add "hl=en" in `address'.  Add `base'.
 	(nnweb-google-search): Add "hl=en" here.
-	(nnweb-google-parse-1, nnweb-google-create-mapping): Don't
-	hardcode URL.
+	(nnweb-google-parse-1, nnweb-google-create-mapping):
+	Don't hardcode URL.
 
 2005-03-03  Reiner Steib  <Reiner.Steib@gmx.de>
 
--- a/lisp/gnus/nnimap.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/gnus/nnimap.el	Thu Mar 10 23:36:47 2005 +0000
@@ -666,7 +666,7 @@
 				(format "BODY.PEEK[HEADER.FIELDS %s])" headers)
 			      (format "RFC822.HEADER.LINES %s)" headers)))))
       (with-current-buffer nntp-server-buffer
-	(sort-numeric-fields 1 1 (buffer-size)))
+	(sort-numeric-fields 1 (point-min) (point-max)))
       (and (numberp nnmail-large-newsgroup)
 	   (> nnimap-length nnmail-large-newsgroup)
 	   (nnheader-message 6 "nnimap: Retrieving headers...done")))))
--- a/lisp/help.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/help.el	Thu Mar 10 23:36:47 2005 +0000
@@ -1,7 +1,7 @@
 ;;; help.el --- help commands for Emacs
 
-;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2004
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2004,
+;;   2005  Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: help, internal
@@ -685,34 +685,35 @@
 variable \(listed in `minor-mode-alist') must also be a function
 whose documentation describes the minor mode."
   (interactive)
-  (help-setup-xref (list #'describe-mode (or buffer (current-buffer)))
+  (unless buffer (setq buffer (current-buffer)))
+  (help-setup-xref (list #'describe-mode buffer)
 		   (interactive-p))
   ;; For the sake of help-do-xref and help-xref-go-back,
   ;; don't switch buffers before calling `help-buffer'.
   (with-output-to-temp-buffer (help-buffer)
-    (save-excursion
-      (when buffer (set-buffer buffer))
+    (with-current-buffer buffer
       (let (minor-modes)
+	;; Older packages do not register in minor-mode-list but only in
+	;; minor-mode-alist.
+	(dolist (x minor-mode-alist)
+	  (setq x (car x))
+	  (unless (memq x minor-mode-list)
+	    (push x minor-mode-list)))
 	;; Find enabled minor mode we will want to mention.
 	(dolist (mode minor-mode-list)
 	  ;; Document a minor mode if it is listed in minor-mode-alist,
 	  ;; non-nil, and has a function definition.
 	  (and (boundp mode) (symbol-value mode)
 	       (fboundp mode)
-	       (let ((pretty-minor-mode mode)
-		     indicator)
+	       (let ((pretty-minor-mode mode))
 		 (if (string-match "\\(-minor\\)?-mode\\'"
 				   (symbol-name mode))
 		     (setq pretty-minor-mode
 			   (capitalize
 			    (substring (symbol-name mode)
 				       0 (match-beginning 0)))))
-		 (setq indicator (cadr (assq mode minor-mode-alist)))
-		 (while (and indicator (symbolp indicator)
-			     (boundp indicator)
-			     (not (eq indicator (symbol-value indicator))))
-		   (setq indicator (symbol-value indicator)))
-		 (push (list pretty-minor-mode mode indicator)
+		 (push (list pretty-minor-mode mode
+			     (format-mode-line (assq mode minor-mode-alist)))
 		       minor-modes))))
 	(if auto-fill-function
 	    ;; copy pure string so we can add face property to it below.
@@ -729,6 +730,9 @@
 	      (let ((pretty-minor-mode (nth 0 mode))
 		    (mode-function (nth 1 mode))
 		    (indicator (nth 2 mode)))
+		(setq indicator (if (zerop (length indicator))
+				    "no indicator"
+				  (format "indicator%s" indicator)))
 		(add-text-properties 0 (length pretty-minor-mode)
 				     '(face bold) pretty-minor-mode)
 		(save-excursion
@@ -737,20 +741,14 @@
 		  (push (point-marker) help-button-cache)
 		  ;; Document the minor modes fully.
 		  (insert pretty-minor-mode)
-		  (princ (format " minor mode (%s):\n"
-				 (if indicator
-				     (format "indicator%s" indicator)
-				   "no indicator")))
+		  (princ (format " minor mode (%s):\n" indicator))
 		  (princ (documentation mode-function)))
 		(princ "  ")
 		(insert-button pretty-minor-mode
 			       'action (car help-button-cache)
 			       'follow-link t
 			       'help-echo "mouse-2, RET: show full information")
-		(princ (format " minor mode (%s):\n"
-			       (if indicator
-				   (format "indicator%s" indicator)
-				 "no indicator"))))))
+		(princ (format " minor mode (%s):\n" indicator)))))
 	  (princ "\n(Full information about these minor modes
 follows the description of the major mode.)\n\n"))
 	;; Document the major mode.
@@ -896,5 +894,5 @@
 ;; defcustoms which require 'help'.
 (provide 'help)
 
-;;; arch-tag: cf427352-27e9-49b7-9a6f-741ebab02423
+;; arch-tag: cf427352-27e9-49b7-9a6f-741ebab02423
 ;;; help.el ends here
--- a/lisp/net/browse-url.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/net/browse-url.el	Thu Mar 10 23:36:47 2005 +0000
@@ -815,8 +815,9 @@
 When called non-interactively, optional second argument NEW-WINDOW is
 used instead of `browse-url-new-window-flag'.
 
-The order attempted is gnome-moz-remote, Mozilla, Galeon, Netscape,
-Mosaic, IXI Mosaic, Lynx in an xterm, MMM, Konqueror, and then W3."
+The order attempted is gnome-moz-remote, Mozilla, Galeon,
+Konqueror, Netscape, Mosaic, IXI Mosaic, Lynx in an xterm, MMM,
+and then W3."
   (apply
     (cond
      ((executable-find browse-url-gnome-moz-program) 'browse-url-gnome-moz)
--- a/lisp/play/animate.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/play/animate.el	Thu Mar 10 23:36:47 2005 +0000
@@ -80,9 +80,11 @@
 ;;; Place the character CHAR at position VPOS, HPOS in the current buffer.
 (defun animate-place-char (char vpos hpos)
   (goto-char (window-start))
-  (let ((next-line-add-newlines t))
+  (let (abbrev-mode)
     (dotimes (i vpos)
-      (next-line 1)))
+      (end-of-line)
+      (if (= (forward-line 1) 1)
+	  (insert "\n"))))
   (beginning-of-line)
   (move-to-column (floor hpos) t)
   (unless (eolp) (delete-char 1))
--- a/lisp/progmodes/gdb-ui.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/progmodes/gdb-ui.el	Thu Mar 10 23:36:47 2005 +0000
@@ -351,7 +351,7 @@
 				  ,(nth 1 var) nil))))
 	    (setq gdb-var-changed t)))
       (if (re-search-forward "Undefined command" nil t)
-	  (message "Watching expressions requires gdb 6.0 onwards")
+	  (message-box "Watching expressions requires gdb 6.0 onwards")
 	(message "No symbol %s in current context." expr)))))
 
 (defun gdb-var-evaluate-expression-handler (varnum changed)
@@ -2119,13 +2119,8 @@
 	    (push (cons bptno (match-string 0)) gdb-location-list))
       (gdb-resync)
       (push (cons bptno "File not found") gdb-location-list)
-      (if (eq window-system 'x)
-	  (x-popup-dialog
-	   t '("Cannot find source file for breakpoint location.\n\
-Add directory to search path for source files using the GDB command, dir."
-	       ("Ok" . nil)))
-	(message "Cannot find source file for breakpoint location.\n\
-Add directory to search path for source files using the GDB command, dir."))
+      (message-box "Cannot find source file for breakpoint location.\n\
+Add directory to search path for source files using the GDB command, dir.")
       (throw 'file-not-found nil))
     (with-current-buffer
 	(find-file-noselect (match-string 0))
--- a/lisp/textmodes/ispell.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/textmodes/ispell.el	Thu Mar 10 23:36:47 2005 +0000
@@ -1376,6 +1376,14 @@
 			  (setq more-lines (= 0 (forward-line))))))))))))))
 
 
+;; Insert WORD while translating Latin characters to the equivalent
+;; characters that is supported by buffer-file-coding-system.
+
+(defun ispell-insert-word (word)
+  (let ((pos (point)))
+    (insert word)
+    (if (char-table-p translation-table-for-input)
+	(translate-region pos (point) translation-table-for-input))))
 
 ;;;###autoload
 (defun ispell-word (&optional following quietly continue)
@@ -1474,7 +1482,7 @@
 			  (progn
 			    (delete-region start end)
 			    (setq start (point))
-			    (insert new-word)
+			    (ispell-insert-word new-word)
 			    (setq end (point))))
 		      (if (not (atom replace)) ;recheck spelling of replacement
 			  (progn
@@ -2853,7 +2861,7 @@
 	      (delete-region (point) (+ word-len (point)))
 	      (if (not (listp replace))
 		  (progn
-		    (insert replace)	; insert dictionary word
+		    (ispell-insert-word replace) ; insert dictionary word
 		    (ispell-send-replacement (car poss) replace)
 		    (setq accept-list (cons replace accept-list)))
 		(let ((replace-word (car replace)))
@@ -3022,7 +3030,7 @@
 	     (setq word (if (atom replacement) replacement (car replacement))
 		   cursor-location (+ (- (length word) (- end start))
 				      cursor-location))
-	     (insert word)
+	     (ispell-insert-word word)
 	     (if (not (atom replacement)) ; recheck spelling of replacement.
 		 (progn
 		   (goto-char cursor-location)
--- a/lisp/tooltip.el	Wed Mar 09 07:54:53 2005 +0000
+++ b/lisp/tooltip.el	Thu Mar 10 23:36:47 2005 +0000
@@ -1,6 +1,6 @@
 ;;; tooltip.el --- show tooltip windows
 
-;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Gerd Moellmann <gerd@acm.org>
@@ -41,8 +41,6 @@
   :version "21.1"
   :tag "Tool Tips")
 
-(defvar tooltip-mode)
-
 (defcustom tooltip-delay 0.7
   "Seconds to wait before displaying a tooltip the first time."
   :tag "Delay"
@@ -122,11 +120,9 @@
   "*Non-nil means show tooltips in GUD sessions."
   :type 'boolean
   :tag "GUD"
-  :set #'(lambda (symbol on)
-	   (setq tooltip-gud-tips-p on))
   :group 'tooltip)
 
-(defcustom tooltip-gud-modes '(gud-mode c-mode c++-mode)
+(defcustom tooltip-gud-modes '(gud-mode c-mode c++-mode fortran-mode)
   "List of modes for which to enable GUD tips."
   :type 'sexp
   :tag "GUD modes"
@@ -187,26 +183,23 @@
 ;; would be accompanied by a full redisplay.
 
 ;;;###autoload
-(defun tooltip-mode (&optional arg)
-  "Mode for tooltip display.
+(define-minor-mode tooltip-mode
+  "Toggle Tooltip display.
 With ARG, turn tooltip mode on if and only if ARG is positive."
-  (interactive "P")
-  (unless (fboundp 'x-show-tip)
+  :global t
+  :group 'tooltip
+  (unless (or (null tooltip-mode) (fboundp 'x-show-tip))
     (error "Sorry, tooltips are not yet available on this system"))
-  (let* ((on (if arg
-		 (> (prefix-numeric-value arg) 0)
-	       (not tooltip-mode)))
-	 (hook-fn (if on 'add-hook 'remove-hook)))
-    (setq tooltip-mode on)
+  (let ((hook-fn (if tooltip-mode 'add-hook 'remove-hook)))
     (funcall hook-fn 'change-major-mode-hook 'tooltip-change-major-mode)
     (tooltip-activate-mouse-motions-if-enabled)
     (funcall hook-fn 'pre-command-hook 'tooltip-hide)
     (funcall hook-fn 'tooltip-hook 'tooltip-gud-tips)
     (funcall hook-fn 'tooltip-hook 'tooltip-help-tips)
-    (setq show-help-function (if on 'tooltip-show-help-function nil))
+    (setq show-help-function (if tooltip-mode 'tooltip-show-help-function nil))
     ;; `ignore' is the default binding for mouse movements.
     (define-key global-map [mouse-movement]
-      (if on 'tooltip-mouse-motion 'ignore))))
+      (if tooltip-mode 'tooltip-mouse-motion 'ignore))))
 
 
 ;;; Timeout for tooltip display
@@ -246,16 +239,14 @@
 (defun tooltip-activate-mouse-motions-if-enabled ()
   "Reconsider for all buffers whether mouse motion events are desired."
   (remove-hook 'post-command-hook 'tooltip-activate-mouse-motions-if-enabled)
-  (let ((buffers (buffer-list)))
+  (dolist (buffer (buffer-list))
     (save-excursion
-      (while buffers
-	(set-buffer (car buffers))
-	(if (and tooltip-mode
-		 tooltip-gud-tips-p
-		 (memq major-mode tooltip-gud-modes))
-	    (tooltip-activate-mouse-motions t)
-	  (tooltip-activate-mouse-motions nil))
-	(setq buffers (cdr buffers))))))
+      (set-buffer buffer)
+      (if (and tooltip-mode
+	       tooltip-gud-tips-p
+	       (memq major-mode tooltip-gud-modes))
+	  (tooltip-activate-mouse-motions t)
+	(tooltip-activate-mouse-motions nil)))))
 
 (defvar tooltip-mouse-motions-active nil
   "Locally t in a buffer if tooltip processing of mouse motion is enabled.")
@@ -441,12 +432,11 @@
 add a `*' in front of the printed expression.
 
 This function must return nil if it doesn't handle EVENT."
-  (let (gud-buffer process)
+  (let (process)
     (when (and (eventp event)
 	       tooltip-gud-tips-p
 	       (boundp 'gud-comint-buffer)
-	       (setq gud-buffer gud-comint-buffer)
-	       (setq process (get-buffer-process gud-buffer))
+	       (setq process (get-buffer-process gud-comint-buffer))
 	       (posn-point (event-end event))
 	       (progn (setq tooltip-gud-event event)
 		      (eval (cons 'and tooltip-gud-display))))
@@ -464,9 +454,11 @@
 		    expr)))))))
 
 (defun gdb-tooltip-print ()
-  (tooltip-show
+  (tooltip-show 
    (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
-     (buffer-string))))
+     (let ((string (buffer-string)))
+       ;; remove newline for tooltip-use-echo-area
+       (substring string 0 (- (length string) 1))))))
 
 
 ;;; Tooltip help.
@@ -520,23 +512,6 @@
     (tooltip-show tooltip-help-message)
     t))
 
-
-;;; Do this after all functions have been defined that are called from
-;;; `tooltip-mode'.  The actual default value of `tooltip-mode' is set
-;;; in startup.el.
-
-;;;###autoload
-(defcustom tooltip-mode nil
-  "Non-nil if Tooltip mode is enabled.
-Setting this variable directly does not take effect;
-use either \\[customize] or the function `tooltip-mode'."
-  :set (lambda (symbol value)
-	 (tooltip-mode (or value 0)))
-  :initialize 'custom-initialize-default
-  :type 'boolean
-  :require 'tooltip
-  :group 'tooltip)
-
 (provide 'tooltip)
 
 ;; arch-tag: 3d61135e-4618-4a78-af28-183f6df5636f
--- a/src/ChangeLog	Wed Mar 09 07:54:53 2005 +0000
+++ b/src/ChangeLog	Thu Mar 10 23:36:47 2005 +0000
@@ -1,3 +1,19 @@
+2005-03-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xfns.c (hourglass_started): New function.
+
+	* dispextern.h: Declare hourglass_started.
+
+	* keyboard.c (Fexecute_extended_command): Restart hourglass
+	after call to Fcompleting_read if already started.
+
+	* gtkutil.c (xg_update_scrollbar_pos): Call x_sync so that the
+	GTK main loop is entered in xterm.c, thus doing the redraw.
+
+2005-03-10  Kim F. Storm  <storm@cua.dk>
+
+	* xdisp.c (pos_visible_p): Fix X value in last line of buffer.
+
 2005-03-08  Kenichi Handa  <handa@m17n.org>
 
 	* frame.c (x_set_font): Call set_default_ascii_font if an
--- a/src/dispextern.h	Wed Mar 09 07:54:53 2005 +0000
+++ b/src/dispextern.h	Thu Mar 10 23:36:47 2005 +0000
@@ -2817,6 +2817,7 @@
 EXFUN (Fx_hide_tip, 0);
 extern void start_hourglass P_ ((void));
 extern void cancel_hourglass P_ ((void));
+extern int hourglass_started P_ ((void));
 extern int display_hourglass_p;
 
 /* Returns the background color of IMG, calculating one heuristically if
--- a/src/gtkutil.c	Wed Mar 09 07:54:53 2005 +0000
+++ b/src/gtkutil.c	Thu Mar 10 23:36:47 2005 +0000
@@ -2999,9 +2999,14 @@
       GtkWidget *wparent = gtk_widget_get_parent (wscroll);
 
       /* Move and resize to new values.  */
+      gtk_fixed_move (GTK_FIXED (wfixed), wparent, left, top);
       gtk_widget_set_size_request (wscroll, width, height);
-      gtk_fixed_move (GTK_FIXED (wfixed), wparent, left, top);
-
+      gtk_widget_queue_draw (wparent);
+      gdk_window_process_all_updates ();
+      /* GTK does not redraw until the main loop is entered again, but
+         if there are no X events pending we will not enter it.  So we sync
+         here to get some events.  */
+      x_sync (f);
       SET_FRAME_GARBAGED (f);
       cancel_mouse_face (f);
     }
--- a/src/keyboard.c	Wed Mar 09 07:54:53 2005 +0000
+++ b/src/keyboard.c	Thu Mar 10 23:36:47 2005 +0000
@@ -1350,6 +1350,11 @@
     cancel_hourglass ();
 #endif
 
+  /* Unblock input if we enter with input blocked.  This may happen if
+     redisplay traps e.g. during tool-bar update with input blocked.  */
+  while (INPUT_BLOCKED_P)
+    UNBLOCK_INPUT;
+
   return Fthrow (Qtop_level, Qnil);
 }
 
@@ -9709,6 +9714,15 @@
   Lisp_Object saved_keys, saved_last_point_position_buffer;
   Lisp_Object bindings, value;
   struct gcpro gcpro1, gcpro2, gcpro3;
+#ifdef HAVE_X_WINDOWS
+  /* The call to Fcompleting_read wil start and cancel the hourglass,
+     but if the hourglass was already scheduled, this means that no
+     hourglass will be shown for the actual M-x command itself.
+     So we restart it if it is already scheduled.  Note that checking
+     hourglass_shown_p is not enough,  normally the hourglass is not shown,
+     just scheduled to be shown.  */
+  int hstarted = hourglass_started ();
+#endif
 
   saved_keys = Fvector (this_command_key_count,
 			XVECTOR (this_command_keys)->contents);
@@ -9740,6 +9754,10 @@
 			       Qt, Qnil, Qextended_command_history, Qnil,
 			       Qnil);
 
+#ifdef HAVE_X_WINDOWS
+  if (hstarted) start_hourglass ();
+#endif
+
   if (STRINGP (function) && SCHARS (function) == 0)
     error ("No command name given");
 
--- a/src/xdisp.c	Wed Mar 09 07:54:53 2005 +0000
+++ b/src/xdisp.c	Thu Mar 10 23:36:47 2005 +0000
@@ -1301,6 +1301,7 @@
   /* Note that we may overshoot because of invisible text.  */
   if (IT_CHARPOS (it) >= charpos)
     {
+      int top_x = it.current_x;
       int top_y = it.current_y;
       int bottom_y = (last_height = 0, line_bottom_y (&it));
       int window_top_y = WINDOW_HEADER_LINE_HEIGHT (w);
@@ -1309,15 +1310,12 @@
 	visible_p = bottom_y > window_top_y;
       else if (top_y < it.last_visible_y)
 	  visible_p = 1;
-      if (visible_p && x)
-	{
-	  *x = it.current_x;
+      if (visible_p)
+	{
+	  *x = top_x;
 	  *y = max (top_y + max (0, it.max_ascent - it.ascent), window_top_y);
-	  if (rtop)
-	    {
-	      *rtop = max (0, window_top_y - top_y);
-	      *rbot = max (0, bottom_y - it.last_visible_y);
-	    }
+	  *rtop = max (0, window_top_y - top_y);
+	  *rbot = max (0, bottom_y - it.last_visible_y);
 	}
     }
   else
@@ -1330,18 +1328,12 @@
       if (charpos < IT_CHARPOS (it))
 	{
 	  visible_p = 1;
-	  if (x)
-	    {
-	      move_it_to (&it2, charpos, -1, -1, -1, MOVE_TO_POS);
-	      *x = it2.current_x;
-	      *y = it2.current_y + it2.max_ascent - it2.ascent;
-	      if (rtop)
-		{
-		  *rtop = max (0, -it2.current_y);
-		  *rbot = max (0, ((it2.current_y + it2.max_ascent + it2.max_descent)
-				   - it.last_visible_y));
-		}
-	    }
+	  move_it_to (&it2, charpos, -1, -1, -1, MOVE_TO_POS);
+	  *x = it2.current_x;
+	  *y = it2.current_y + it2.max_ascent - it2.ascent;
+	  *rtop = max (0, -it2.current_y);
+	  *rbot = max (0, ((it2.current_y + it2.max_ascent + it2.max_descent)
+			   - it.last_visible_y));
 	}
     }
 
--- a/src/xfns.c	Wed Mar 09 07:54:53 2005 +0000
+++ b/src/xfns.c	Thu Mar 10 23:36:47 2005 +0000
@@ -4275,6 +4275,14 @@
 static void show_hourglass P_ ((struct atimer *));
 static void hide_hourglass P_ ((void));
 
+/* Return non-zero if houglass timer has been started or hourglass is shown.  */
+
+int
+hourglass_started ()
+{
+  return hourglass_shown_p || hourglass_atimer != NULL;
+}
+
 
 /* Cancel a currently active hourglass timer, and start a new one.  */