# HG changeset patch # User Karoly Lorentey # Date 1107531367 0 # Node ID 86457de2420c677602a87e37350bd0f471dfc003 # Parent a257c9edb57bef039d9d7df1dfb05f3b91bbe678# Parent 81a7887c8c820e968de5cf33660e4235a83df7dc Merged from miles@gnu.org--gnu-2005 (patch 76-78) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-76 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-77 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-78 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-288 diff -r a257c9edb57b -r 86457de2420c lisp/ChangeLog --- a/lisp/ChangeLog Fri Feb 04 14:06:45 2005 +0000 +++ b/lisp/ChangeLog Fri Feb 04 15:36:07 2005 +0000 @@ -1,3 +1,27 @@ +2005-02-04 Jay Belanger + + * calc/calc-embed.el (calc-embedded-update): Don't put in + unnecessary newlines. Adjust the end of formula marker. + + * calc/calc-lang.el (math-latex-parse-frac): Don't use arguments. + (math-latex-parse-two-args): New function. + +2005-02-03 Lute Kamstra + + * help-fns.el (help-with-tutorial): Make sure that users cannot + remove the entire text of the tutorial by means of `undo'. + +2005-02-03 Stefan Monnier + + * textmodes/ispell.el (ispell-internal-change-dictionary): Fix problem + in recent changes, where the ispell process was repeatedly + killed & restarted. + + * international/mule-cmds.el (set-locale-environment): Set file-name + coding system to utf-8 on Darwin systems. + (set-default-coding-systems): Don't set default-file-name-coding-system + on Darwin systems. + 2005-02-03 Richard M. Stallman * hi-lock.el (hi-lock-mode): Turning on Hi-Lock turns on Font-Lock. diff -r a257c9edb57b -r 86457de2420c lisp/calc/calc-embed.el --- a/lisp/calc/calc-embed.el Fri Feb 04 14:06:45 2005 +0000 +++ b/lisp/calc/calc-embed.el Fri Feb 04 15:36:07 2005 +0000 @@ -967,19 +967,24 @@ (calc-embedded-original-buffer t info) (or (equal str (aref info 6)) (let ((delta (- (aref info 5) (aref info 3))) + (adjbot 0) (buffer-read-only nil)) (goto-char (aref info 2)) (delete-region (point) (aref info 3)) (and (> (nth 1 entry) (1+ extra)) (aref info 7) (progn - (aset info 7 nil) (delete-horizontal-space) - (insert "\n\n") - (delete-horizontal-space) - (backward-char 1))) + (if (looking-at "\n") + ;; If there's a newline there, don't add one + (insert "\n") + (insert "\n\n") + (delete-horizontal-space) + (setq adjbot 1) +; (setq delta (1+ delta)) + (backward-char 1)))) (insert str) - (set-marker (aref info 3) (point)) + (set-marker (aref info 3) (+ (point) adjbot)) (set-marker (aref info 5) (+ (point) delta)) (aset info 6 str)))))) (if (eq (car-safe val) 'calcFunc-evalto) diff -r a257c9edb57b -r 86457de2420c lisp/calc/calc-lang.el --- a/lisp/calc/calc-lang.el Fri Feb 04 14:06:45 2005 +0000 +++ b/lisp/calc/calc-lang.el Fri Feb 04 15:36:07 2005 +0000 @@ -469,12 +469,12 @@ (put 'latex 'math-function-table (append (get 'tex 'math-function-table) - '(( \\frac . (math-latex-parse-frac /)) - ( \\tfrac . (math-latex-parse-frac /)) - ( \\dfrac . (math-latex-parse-frac /)) - ( \\binom . (math-latex-parse-frac calcFunc-choose)) - ( \\tbinom . (math-latex-parse-frac calcFunc-choose)) - ( \\dbinom . (math-latex-parse-frac calcFunc-choose)) + '(( \\frac . (math-latex-parse-frac)) + ( \\tfrac . (math-latex-parse-frac)) + ( \\dfrac . (math-latex-parse-frac)) + ( \\binom . (math-latex-parse-two-args calcFunc-choose)) + ( \\tbinom . (math-latex-parse-two-args calcFunc-choose)) + ( \\dbinom . (math-latex-parse-two-args calcFunc-choose)) ( \\phi . calcFunc-totient ) ( \\mu . calcFunc-moebius )))) @@ -487,12 +487,23 @@ (put 'latex 'math-complex-format 'i) + (defun math-latex-parse-frac (f val) (let (numer denom) - (setq args (math-read-expr-list)) + (setq numer (car (math-read-expr-list))) (math-read-token) - (setq margs (math-read-factor)) - (list (nth 2 f) (car args) margs))) + (setq denom (math-read-factor)) + (if (and (Math-num-integerp numer) + (Math-num-integerp denom)) + (list 'frac numer denom) + (list '/ numer denom)))) + +(defun math-latex-parse-two-args (f val) + (let (first second) + (setq first (car (math-read-expr-list))) + (math-read-token) + (setq second (math-read-factor)) + (list (nth 2 f) first second))) (defun math-latex-print-frac (a fn) (list 'horiz (nth 1 fn) "{" (math-compose-expr (nth 1 a) -1) diff -r a257c9edb57b -r 86457de2420c lisp/help-fns.el --- a/lisp/help-fns.el Fri Feb 04 14:06:45 2005 +0000 +++ b/lisp/help-fns.el Fri Feb 04 15:36:07 2005 +0000 @@ -97,6 +97,7 @@ (forward-line 1) (newline (- n (/ n 2))))) (goto-char (point-min)) + (setq buffer-undo-list nil) (set-buffer-modified-p nil)))) ;;;###autoload diff -r a257c9edb57b -r 86457de2420c lisp/international/mule-cmds.el --- a/lisp/international/mule-cmds.el Fri Feb 04 14:06:45 2005 +0000 +++ b/lisp/international/mule-cmds.el Fri Feb 04 15:36:07 2005 +0000 @@ -327,7 +327,8 @@ (or (local-variable-p 'buffer-file-coding-system buffer) (ucs-set-table-for-input buffer)))) - (if default-enable-multibyte-characters + (if (and default-enable-multibyte-characters (not (eq system-type 'darwin))) + ;; The file-name coding system on Darwin systems is always utf-8. (setq default-file-name-coding-system coding-system)) ;; If coding-system is nil, honor that on MS-DOS as well, so ;; that they could reset the terminal coding system. @@ -1694,6 +1695,8 @@ (set-default-coding-systems nil) (setq default-sendmail-coding-system 'iso-latin-1) + ;; On Darwin systems, this should be utf-8, but when this file is loaded + ;; utf-8 is not yet defined, so we set it in set-locale-environment instead. (setq default-file-name-coding-system 'iso-latin-1) ;; Preserve eol-type from existing default-process-coding-systems. ;; On non-unix-like systems in particular, these may have been set @@ -2489,6 +2492,10 @@ (set-keyboard-coding-system code-page-coding) (set-terminal-coding-system code-page-coding)))) + ;; On Darwin, file names are always encoded in utf-8, no matter the locale. + (when (eq system-type 'darwin) + (setq default-file-name-coding-system 'utf-8)) + ;; Default to A4 paper if we're not in a C, POSIX or US locale. ;; (See comments in Flocale_info.) (let ((locale locale) diff -r a257c9edb57b -r 86457de2420c lisp/textmodes/ispell.el --- a/lisp/textmodes/ispell.el Fri Feb 04 14:06:45 2005 +0000 +++ b/lisp/textmodes/ispell.el Fri Feb 04 15:36:07 2005 +0000 @@ -1,6 +1,7 @@ ;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2 -;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 +;; Free Software Foundation, Inc. ;; Author: Ken Stevens ;; Maintainer: Ken Stevens @@ -2449,7 +2450,7 @@ "Update the dictionary actually used by Ispell. This may kill the Ispell process; if so, a new one will be started when needed." - (let ((dict (or ispell-local-dictionary ispell-dictionary "default"))) + (let ((dict (or ispell-local-dictionary ispell-dictionary))) (unless (equal ispell-current-dictionary dict) (setq ispell-current-dictionary dict) (ispell-kill-ispell t)))) diff -r a257c9edb57b -r 86457de2420c man/ChangeLog --- a/man/ChangeLog Fri Feb 04 14:06:45 2005 +0000 +++ b/man/ChangeLog Fri Feb 04 15:36:07 2005 +0000 @@ -1,3 +1,7 @@ +2005-02-03 Lute Kamstra + + * frames.texi (Frames, Drag and Drop): Fix typos. + 2005-02-03 Richard M. Stallman * windows.texi (Basic Window): Mention color-change in mode line. diff -r a257c9edb57b -r 86457de2420c man/frames.texi --- a/man/frames.texi Fri Feb 04 14:06:45 2005 +0000 +++ b/man/frames.texi Fri Feb 04 15:36:07 2005 +0000 @@ -813,12 +813,12 @@ @section Drag and Drop @cindex drag and drop - Emacs supports drag and drop using the mouse. For instance, dropping -text onto an Emacs frame inserts the text where it is dropped. Dropping -a file onto an Emacs frame visits that file. As a special case, -dropping the file on a Dired buffer moves or copies the file (according -to the conventions of the application it came from) into the directory -displayed in that buffer. + Emacs supports @dfn{drag and drop} using the mouse. For instance, +dropping text onto an Emacs frame inserts the text where it is dropped. +Dropping a file onto an Emacs frame visits that file. As a special +case, dropping the file on a Dired buffer moves or copies the file +(according to the conventions of the application it came from) into the +directory displayed in that buffer. @vindex x-dnd-open-file-other-window Dropping a file normally visits it in the window you drop it on. If diff -r a257c9edb57b -r 86457de2420c src/ChangeLog --- a/src/ChangeLog Fri Feb 04 14:06:45 2005 +0000 +++ b/src/ChangeLog Fri Feb 04 15:36:07 2005 +0000 @@ -1,3 +1,34 @@ +2005-02-03 Jan Dj,Ad(Brv + + * xmenu.c (menubar_selection_callback): Force out GTK buffered + events so the menu event comes after them. This is to prevent sit-for + from exiting on buffered events directly after a menu selection, + lisp code for Help => About Emacs uses sit-for. + + * gtkutil.c (create_menus): Connect selection-done event instead of + the deactivate event to deactivate_cb. This will make the last + leave event come before the call to deactivate_cb, so the leave + event does not make sit-for exit after a menu selection. + +2005-02-03 Kim F. Storm + + * dispnew.c (build_frame_matrix_from_leaf_window) + [!GLYPH_DEBUG]: Fix xassert. + + * xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert. + + * xfns.c (unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert. + +2005-02-03 YAMAMOTO Mitsuharu + + * mac.c: Use MAC_OS_X_VERSION_MAX_ALLOWED to conditionalize by + the compiling OS version. + + * macfns.c (x_create_tip_frame): Likewise. + + * macterm.c (mac_draw_string_common, x_make_frame_visible): + Likewise. + 2005-02-03 Richard M. Stallman * xterm.c (x_error_quitter): On GCC 3 and up, specify noinline. diff -r a257c9edb57b -r 86457de2420c src/dispnew.c --- a/src/dispnew.c Fri Feb 04 14:06:45 2005 +0000 +++ b/src/dispnew.c Fri Feb 04 15:36:07 2005 +0000 @@ -1,6 +1,6 @@ /* Updating of data structures for redisplay. - Copyright (C) 1985,86,87,88,93,94,95,97,98,1999,2000,01,02,03,04 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, 1998, 1999, + 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2775,7 +2775,6 @@ /* If rows are in sync, we don't have to copy glyphs because frame and window share glyphs. */ -#if GLYPH_DEBUG strcpy (w->current_matrix->method, w->desired_matrix->method); add_window_display_history (w, w->current_matrix->method, 0); #endif diff -r a257c9edb57b -r 86457de2420c src/gtkutil.c --- a/src/gtkutil.c Fri Feb 04 14:06:45 2005 +0000 +++ b/src/gtkutil.c Fri Feb 04 15:36:07 2005 +0000 @@ -1905,7 +1905,7 @@ if (deactivate_cb) g_signal_connect (G_OBJECT (wmenu), - "deactivate", deactivate_cb, 0); + "selection-done", deactivate_cb, 0); g_signal_connect (G_OBJECT (wmenu), "grab-notify", G_CALLBACK (menu_grab_callback), 0); diff -r a257c9edb57b -r 86457de2420c src/mac.c --- a/src/mac.c Fri Feb 04 14:06:45 2005 +0000 +++ b/src/mac.c Fri Feb 04 15:36:07 2005 +0000 @@ -2858,7 +2858,7 @@ return r; } -#ifndef MAC_OS_X_VERSION_10_2 +#if MAC_OS_X_VERSION_MAX_ALLOWED < 1020 #undef SELECT_INVALIDATE_CFSOCKET #endif diff -r a257c9edb57b -r 86457de2420c src/macfns.c --- a/src/macfns.c Fri Feb 04 14:06:45 2005 +0000 +++ b/src/macfns.c Fri Feb 04 15:36:07 2005 +0000 @@ -3882,7 +3882,7 @@ SetRect (&r, 0, 0, 1, 1); #if TARGET_API_MAC_CARBON if (CreateNewWindow (kHelpWindowClass, -#ifdef MAC_OS_X_VERSION_10_2 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 kWindowIgnoreClicksAttribute | #endif kWindowNoUpdatesAttribute | diff -r a257c9edb57b -r 86457de2420c src/macterm.c --- a/src/macterm.c Fri Feb 04 14:06:45 2005 +0000 +++ b/src/macterm.c Fri Feb 04 15:36:07 2005 +0000 @@ -729,7 +729,7 @@ int nchars, mode, bytes_per_char; { SetPortWindowPort (w); -#ifdef MAC_OS_X_VERSION_10_2 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 UInt32 textFlags, savedFlags; if (!NILP(Vmac_use_core_graphics)) { textFlags = kQDUseCGTextRendering; @@ -746,7 +746,7 @@ MoveTo (x, y); DrawText (buf, 0, nchars * bytes_per_char); -#ifdef MAC_OS_X_VERSION_10_2 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 if (!NILP(Vmac_use_core_graphics)) SwapQDTextFlags(savedFlags); #endif @@ -5451,7 +5451,7 @@ else RepositionWindow (FRAME_MAC_WINDOW (f), FRAME_MAC_WINDOW (sf), -#ifdef MAC_OS_X_VERSION_10_2 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 kWindowCascadeStartAtParentWindowScreen #else kWindowCascadeOnParentWindowScreen diff -r a257c9edb57b -r 86457de2420c src/xfaces.c --- a/src/xfaces.c Fri Feb 04 14:06:45 2005 +0000 +++ b/src/xfaces.c Fri Feb 04 15:36:07 2005 +0000 @@ -1,5 +1,5 @@ /* xfaces.c -- "Face" primitives. - Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation. This file is part of GNU Emacs. @@ -741,9 +741,7 @@ GC gc; { BLOCK_INPUT; -#if GLYPH_DEBUG - xassert (--ngcs >= 0); -#endif + IF_DEBUG (xassert (--ngcs >= 0)); XFreeGC (FRAME_X_DISPLAY (f), gc); UNBLOCK_INPUT; } @@ -776,7 +774,7 @@ GC gc; { BLOCK_INPUT; - xassert (--ngcs >= 0); + IF_DEBUG (xassert (--ngcs >= 0)); xfree (gc); UNBLOCK_INPUT; } diff -r a257c9edb57b -r 86457de2420c src/xfns.c --- a/src/xfns.c Fri Feb 04 14:06:45 2005 +0000 +++ b/src/xfns.c Fri Feb 04 15:36:07 2005 +0000 @@ -1,6 +1,6 @@ /* Functions for the X window system. - Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 99, 2000,01,02,03,04 - Free Software Foundation. + Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation. This file is part of GNU Emacs. @@ -4108,7 +4108,7 @@ if (! NILP (outer_p)) w = FRAME_OUTER_WINDOW (f); else w = FRAME_X_WINDOW (f); - + XChangeProperty (FRAME_X_DISPLAY (f), w, prop_atom, target_type, element_format, PropModeReplace, data, nelements); @@ -5293,7 +5293,7 @@ if (keysym == XK_g && (event.xkey.state & ControlMask) != 0) XtUnmanageChild (dialog); } - + (void) x_dispatch_event (&event, FRAME_X_DISPLAY (f)); } diff -r a257c9edb57b -r 86457de2420c src/xmenu.c --- a/src/xmenu.c Fri Feb 04 14:06:45 2005 +0000 +++ b/src/xmenu.c Fri Feb 04 15:36:07 2005 +0000 @@ -1445,9 +1445,9 @@ /* Find the menu selection and store it in the keyboard buffer. F is the frame the menu is on. MENU_BAR_ITEMS_USED is the length of VECTOR. - VECTOR is an array of menu events for the whole menu. - */ -void + VECTOR is an array of menu events for the whole menu. */ + +static void find_and_call_menu_selection (f, menu_bar_items_used, vector, client_data) FRAME_PTR f; int menu_bar_items_used; @@ -1554,6 +1554,17 @@ if (! cb_data || ! cb_data->cl_data || ! cb_data->cl_data->f) return; + /* When a menu is popped down, X generates a focus event (i.e. focus + goes back to the frame below the menu). Since GTK buffers events, + we force it out here before the menu selection event. Otherwise + sit-for will exit at once if the focus event follows the menu selection + event. */ + + BLOCK_INPUT; + while (gtk_events_pending ()) + gtk_main_iteration (); + UNBLOCK_INPUT; + find_and_call_menu_selection (cb_data->cl_data->f, cb_data->cl_data->menu_bar_items_used, cb_data->cl_data->menu_bar_vector,