From: Miles Bader Date: Wed, 18 Jul 2007 22:15:15 +0000 (+0000) Subject: Merge from emacs--devo--0 X-Git-Tag: emacs-pretest-23.0.90~8295^2~375 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4dacf5c59890f619e2285e6afae1061c763d87fa;p=emacs.git Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 814-815) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-232 --- 4dacf5c59890f619e2285e6afae1061c763d87fa diff --cc lisp/ChangeLog index 6a568afe055,f8a38266120..be77e72e924 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,3 -1,151 +1,120 @@@ -2007-07-18 Michael Albinus - - * progmodes/grep.el (grep-host-defaults-alist): New defvar. - (grep-compute-defaults): Use it. - -2007-07-18 Stefan Monnier - - * uniquify.el: Docstring fixes. - -2007-07-18 Eric S. Raymond - - * vc-hooks.el: Generalize stay-local-p to operate on lists of - files. Change two keybindings to point to new function names. - -2007-07-18 Juanma Barranquero - * follow.el (follow-mode-hook, follow-mode-off-hook, follow-mode) - (follow-delete-other-windows-and-split, follow-recenter) - (follow-windows-aligned-p, follow-point-visible-all-windows-p) - (follow-redisplay, follow-estimate-first-window-start) - (follow-xemacs-scrollbar-support, follow-intercept-process-output): - Fix typos in docstrings. - -2007-07-18 Martin Rudalics - - * add-log.el (change-log-mode): Use fill-nobreak-predicate to - avoid that filling introduces lines with a single asterisk. - - * kmacro.el (kmacro-end-macro): When ignoring empty macro - avoid incorrect kmacro-ring-empty-p messages. - Reported by Michael Schierl . - + 2007-07-17 Michael Albinus + + * files.el (file-remote-p): Introduce optional parameter + IDENTIFICATION. + + * recentf.el (recentf-keep-default-predicate): Adapt call of + `file-remote-p'. + + * progmodes/grep.el (grep-probe): Use `process-file'. + (grep-compute-defaults): Handle variables host specific. + - * net/ange-ftp.el (ange-ftp-file-remote-p): Handle optional ++ * net/ange-ftp.el: (ange-ftp-file-remote-p): Handle optional + parameter IDENTIFICATION. + + * net/tramp.el (tramp-handle-file-remote-p): Handle optional + parameter IDENTIFICATION. + (tramp-handle-set-file-times): New defun. Replaces `tramp-touch'. + (tramp-file-name-handler-alist, tramp-file-name-for-operation): + Add entry for `set-file-times'. + (tramp-do-copy-or-rename-file-via-buffer) + (tramp-do-copy-or-rename-file-out-of-band): Use `set-file-times'. + (tramp-handle-unhandled-file-name-directory): Rewrite. + (tramp-convert-file-attributes): Add error handling when inode is + extraordinary big. + (tramp-get-inode): Change parameter from FILE to VEC. - (tramp-handle-start-file-process): Use (current-buffer) if BUFFER - is nil. This is according to the specification. Goto (point-max) ++ (tramp-handle-start-file-process ): Use (current-buffer) if BUFFER ++ is NIL. This is according to the specification. Goto (point-max) + when ready. + (tramp-handle-shell-command): Rewrite completely, using + `process-file' and `start-file-process'. + (tramp-methods, tramp-find-shell) + (tramp-open-connection-setup-interactive-shell) + (tramp-maybe-open-connection): Guard against $PROMPT_COMMAND shell + var. Reported by Steve Youngs . + + * net/tramp-fish.el (tramp-fish-file-name-handler-alist): Add + entry for `set-file-times'. Rename `start-process' into + `start-file-process'. Remove `call-process' entry. + (tramp-fish-handle-set-file-times): New defun. + (tramp-fish-handle-executable-find): Use `process-file'. + (tramp-fish-handle-process-file): New defun. Replaces + `tramp-fish-handle-call-process'. + (tramp-fish-do-copy-or-rename-file-directly): Use + `set-file-times'. + (tramp-fish-get-file-entries): Change `tramp-get-inode' parameter. + + * net/tramp-smb.el (tramp-smb-handle-file-attributes): Change + `tramp-get-inode' parameter. + + 2007-07-17 Stefan Monnier + + * vc-bzr.el (vc-bzr-version, vc-bzr-at-least-version) + (vc-bzr-post-command-function): Remove. Version 0.8 is already old + nowadays, and by the time Emacs-23 comes out, nobody will even remember + it has ever existed. + + 2007-07-17 Dan Nicolaescu + + * vc.el: Undo previous change. + + 2007-07-16 Eli Zaretskii + + * makefile.w32-in (clean): Don't delete *~. + + 2007-07-16 Stefan Monnier + + * textmodes/tex-mode.el (tex-verbatim-environments): + Add safe-local-variable property. + (tex-font-lock-syntactic-keywords): Lookup tex-verbatim-environments + when starting font-lock rather than when loading tex-mode.el. + + * progmodes/sh-script.el (sh-font-lock-quoted-subshell): Skip over the + whole $( rather than just the $. Rename from sh-quoted-subshell. + (sh-font-lock-syntactic-keywords): Adjust call accordingly. + + 2007-07-16 Thien-Thi Nguyen + + * bookmark.el (bookmark-maybe-sort-alist): Don't modify + bookmark-alist. Instead, if not sorting, simply return it. + (bookmark-bmenu-list): Call bookmark-maybe-sort-alist + for its return value, not for its side effect. + + * emacs-lisp/lisp-mode.el (calculate-lisp-indent): In the + case of alignment under a constant symbol, find and consider + the sexp actually at indentation to be the "last sexp". + + 2007-07-16 Drew Adams + + * mouse.el (mouse-yank-secondary): Better error message if no + secondary selection. + + 2007-07-16 Dan Nicolaescu + + * vc-hooks.el (vc-handled-backends): Move BZR later in the list. + + * term/xterm.el (xterm-turn-on-modify-other-keys) + (xterm-turn-off-modify-other-keys): New functions. + (terminal-init-xterm): Enable the modifyOtherKeys feature if the + terminal supports it. + + 2007-07-16 Thien-Thi Nguyen + + * bookmark.el (bookmark-show-all-annotations): + Make sure each inserted annotation ends with newline. + + 2007-07-15 Juri Linkov + + * delsel.el (delete-selection-pre-hook): + * emulation/cua-base.el (cua-paste): Before a yank command, + check also whether last-command is one of mouse-save-then-kill, + mouse-secondary-save-then-kill, mouse-set-region, mouse-drag-region. + + 2007-07-15 Michael Albinus + + * recentf.el (recentf-keep-default-predicate): New defun. + (recentf-keep): Use it as initial value. + 2007-07-15 Karl Fogel * bookmark.el: Revert 2007-07-13T18:16:17Z!kfogel@red-bean.com, diff --cc lisp/emacs-lisp/cl-loaddefs.el index 1589e19cbb2,1589e19cbb2..12514b43534 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el @@@ -283,7 -283,7 +283,7 @@@ Not documente ;;;;;; do* do loop return-from return block etypecase typecase ecase ;;;;;; case load-time-value eval-when destructuring-bind function* ;;;;;; defmacro* defun* gentemp gensym cl-compile-time-init) "cl-macs" --;;;;;; "cl-macs.el" "7ccc827d272482ca276937ca18a7895a") ++;;;;;; "cl-macs.el" "6990af555f962480552cf0867f3d5bab") ;;; Generated autoloads from cl-macs.el (autoload (quote cl-compile-time-init) "cl-macs" "\ diff --cc lisp/progmodes/grep.el index 2c43abfd50c,669b469cded..24d5eababc6 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@@ -377,86 -383,141 +377,128 @@@ Set up `compilation-exit-message-functi ;;;###autoload (defun grep-compute-defaults () - (unless (or (not grep-use-null-device) (eq grep-use-null-device t)) - (setq grep-use-null-device - (with-temp-buffer - (let ((hello-file (expand-file-name "HELLO" data-directory))) - (not - (and (if grep-command - ;; `grep-command' is already set, so - ;; use that for testing. - (grep-probe grep-command - `(nil t nil "^English" ,hello-file) - #'call-process-shell-command) - ;; otherwise use `grep-program' - (grep-probe grep-program - `(nil t nil "-nH" "^English" ,hello-file))) - (progn - (goto-char (point-min)) - (looking-at - (concat (regexp-quote hello-file) - ":[0-9]+:English"))))))))) - (unless (and grep-command grep-find-command - grep-template grep-find-template) - (let ((grep-options - (concat (if grep-use-null-device "-n" "-nH") - (if (grep-probe grep-program - `(nil nil nil "-e" "foo" ,null-device) - nil 1) - " -e")))) - (unless grep-command - (setq grep-command - (format "%s %s " grep-program grep-options))) - (unless grep-template - (setq grep-template - (format "%s %s " grep-program grep-options))) - (unless grep-find-use-xargs - (setq grep-find-use-xargs - (cond - ((and - (grep-probe find-program `(nil nil nil ,null-device "-print0")) - (grep-probe "xargs" `(nil nil nil "-0" "-e" "echo"))) - 'gnu) - (t - 'exec)))) - (unless grep-find-command - (setq grep-find-command - (cond ((eq grep-find-use-xargs 'gnu) - (format "%s . -type f -print0 | xargs -0 -e %s" - find-program grep-command)) - ((eq grep-find-use-xargs 'exec) - (let ((cmd0 (format "%s . -type f -exec %s" - find-program grep-command))) - (cons - (format "%s {} %s %s" - cmd0 null-device - (shell-quote-argument ";")) - (1+ (length cmd0))))) - (t - (format "%s . -type f -print | xargs %s" - find-program grep-command))))) - (unless grep-find-template - (setq grep-find-template - (let ((gcmd (format "%s %s " - grep-program grep-options))) + (let ((host-id + (intern (or (file-remote-p default-directory 'host) "localhost")))) + ;; There are different defaults on different hosts. They must be + ;; computed for every host once, then they are kept in the + ;; variables' property host-id for reuse. + (setq grep-command - (or (cadr (assq 'grep-command - (assq host-id grep-host-defaults-alist))) ++ (or (get 'grep-command host-id) + (eval (car (get 'grep-command 'standard-value)))) + + grep-template - (or (cadr (assq 'grep-template - (assq host-id grep-host-defaults-alist))) ++ (or (get 'grep-template host-id) + (eval (car (get 'grep-template 'standard-value)))) + + grep-use-null-device - (or (cadr (assq 'grep-use-null-device - (assq host-id grep-host-defaults-alist))) ++ (or (get 'grep-use-null-device host-id) + (eval (car (get 'grep-use-null-device 'standard-value)))) + + grep-find-command - (or (cadr (assq 'grep-find-command - (assq host-id grep-host-defaults-alist))) ++ (or (get 'grep-find-command host-id) + (eval (car (get 'grep-find-command 'standard-value)))) + + grep-find-template - (or (cadr (assq 'grep-find-template - (assq host-id grep-host-defaults-alist))) ++ (or (get 'grep-find-template host-id) + (eval (car (get 'grep-find-template 'standard-value)))) + + grep-find-use-xargs - (or (cadr (assq 'grep-find-use-xargs - (assq host-id grep-host-defaults-alist))) ++ (or (get 'grep-find-use-xargs host-id) + (eval (car (get 'grep-find-use-xargs 'standard-value)))) + + grep-highlight-matches - (or (cadr (assq 'grep-highlight-matches - (assq host-id grep-host-defaults-alist))) ++ (or (get 'grep-highlight-matches host-id) + (eval (car (get 'grep-highlight-matches 'standard-value))))) + + (unless (or (not grep-use-null-device) (eq grep-use-null-device t)) + (setq grep-use-null-device + (with-temp-buffer + (let ((hello-file (expand-file-name "HELLO" data-directory))) + (not + (and (if grep-command + ;; `grep-command' is already set, so + ;; use that for testing. + (grep-probe grep-command + `(nil t nil "^English" ,hello-file) + #'call-process-shell-command) + ;; otherwise use `grep-program' + (grep-probe grep-program + `(nil t nil "-nH" "^English" ,hello-file))) + (progn + (goto-char (point-min)) + (looking-at + (concat (regexp-quote hello-file) + ":[0-9]+:English"))))))))) + (unless (and grep-command grep-find-command + grep-template grep-find-template) + (let ((grep-options + (concat (if grep-use-null-device "-n" "-nH") + (if (grep-probe grep-program + `(nil nil nil "-e" "foo" ,null-device) + nil 1) + " -e")))) + (unless grep-command + (setq grep-command + (format "%s %s " grep-program grep-options))) + (unless grep-template + (setq grep-template + (format "%s %s " grep-program grep-options))) + (unless grep-find-use-xargs + (setq grep-find-use-xargs + (cond + ((and + (grep-probe find-program `(nil nil nil ,null-device "-print0")) + (grep-probe "xargs" `(nil nil nil "-0" "-e" "echo"))) + 'gnu) + (t + 'exec)))) + (unless grep-find-command + (setq grep-find-command (cond ((eq grep-find-use-xargs 'gnu) - (format "%s . -type f -print0 | xargs -0 -e %s" - find-program gcmd)) + (format "%s . -type f -print0 | xargs -0 -e %s" + find-program grep-command)) ((eq grep-find-use-xargs 'exec) - (format "%s . -type f -exec %s {} %s %s" - find-program gcmd null-device - (shell-quote-argument ";"))) + (let ((cmd0 (format "%s . -type f -exec %s" + find-program grep-command))) + (cons + (format "%s {} %s %s" + cmd0 null-device + (shell-quote-argument ";")) + (1+ (length cmd0))))) (t - (format "%s . -type f -print | xargs %s" - find-program gcmd)))))))) - (unless (or (not grep-highlight-matches) (eq grep-highlight-matches t)) - (setq grep-highlight-matches - (with-temp-buffer - (and (grep-probe grep-program '(nil t nil "--help")) - (progn - (goto-char (point-min)) - (search-forward "--color" nil t)) - t))))) + (format "%s . -type f -print | xargs %s" + find-program grep-command))))) + (unless grep-find-template + (setq grep-find-template + (let ((gcmd (format "%s %s " + grep-program grep-options))) + (cond ((eq grep-find-use-xargs 'gnu) + (format "%s . -type f -print0 | xargs -0 -e %s" + find-program gcmd)) + ((eq grep-find-use-xargs 'exec) + (format "%s . -type f -exec %s {} %s %s" + find-program gcmd null-device + (shell-quote-argument ";"))) + (t + (format "%s . -type f -print | xargs %s" + find-program gcmd)))))))) + (unless (or (not grep-highlight-matches) (eq grep-highlight-matches t)) + (setq grep-highlight-matches + (with-temp-buffer + (and (grep-probe grep-program '(nil t nil "--help")) + (progn + (goto-char (point-min)) + (search-forward "--color" nil t)) + t)))) + + ;; Save defaults for this host. - (setq grep-host-defaults-alist - (delete (assq host-id grep-host-defaults-alist) - grep-host-defaults-alist)) - (add-to-list - 'grep-host-defaults-alist - (cons host-id - `((grep-command ,grep-command) - (grep-template ,grep-template) - (grep-use-null-device ,grep-use-null-device) - (grep-find-command ,grep-find-command) - (grep-find-template ,grep-find-template) - (grep-find-use-xargs ,grep-find-use-xargs) - (grep-highlight-matches ,grep-highlight-matches)))))) ++ (put 'grep-command host-id grep-command) ++ (put 'grep-template host-id grep-template) ++ (put 'grep-use-null-device host-id grep-use-null-device) ++ (put 'grep-find-command host-id grep-find-command) ++ (put 'grep-find-template host-id grep-find-template) ++ (put 'grep-find-use-xargs host-id grep-find-use-xargs) ++ (put 'grep-highlight-matches host-id grep-highlight-matches))) (defun grep-tag-default () (or (and transient-mark-mode mark-active diff --cc lisp/ps-print.el index b059d56b9c4,5aea27d655d..0e7d044a0a6 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el @@@ -6467,10 -7032,10 +6467,8 @@@ If FACE is not a valid face name, use d ;; To make this file smaller, some commands go in a separate file. ;; But autoload them here to make the separation invisible. --;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string --;;;;;; ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string --;;;;;; ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer) --;;;;;; "ps-mule" "ps-mule.el" "464a9fb9d59f7561a46bcd5ca87d85db") ++;;;### (autoloads (ps-mule-end-job ps-mule-begin-job ps-mule-initialize ++;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" "bb18668f99d691db470ec2a32753ba28") ;;; Generated autoloads from ps-mule.el (defvar ps-multibyte-buffer nil "\ @@@ -6518,69 -7083,69 +6516,19 @@@ Any other value is treated as nil." (custom-autoload (quote ps-multibyte-buffer) "ps-mule" t) --(autoload (quote ps-mule-prepare-ascii-font) "ps-mule" "\ --Setup special ASCII font for STRING. --STRING should contain only ASCII characters. -- --\(fn STRING)" nil nil) -- --(autoload (quote ps-mule-set-ascii-font) "ps-mule" "\ --Not documented -- --\(fn)" nil nil) -- --(autoload (quote ps-mule-plot-string) "ps-mule" "\ --Generate PostScript code for plotting characters in the region FROM and TO. -- --It is assumed that all characters in this region belong to the same charset. -- --Optional argument BG-COLOR specifies background color. -- --Returns the value: -- -- (ENDPOS . RUN-WIDTH) -- --Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of --the sequence. -- --\(fn FROM TO &optional BG-COLOR)" nil nil) -- --(autoload (quote ps-mule-plot-composition) "ps-mule" "\ --Generate PostScript code for plotting composition in the region FROM and TO. -- --It is assumed that all characters in this region belong to the same --composition. -- --Optional argument BG-COLOR specifies background color. -- --Returns the value: -- -- (ENDPOS . RUN-WIDTH) -- --Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of --the sequence. -- --\(fn FROM TO &optional BG-COLOR)" nil nil) -- (autoload (quote ps-mule-initialize) "ps-mule" "\ Initialize global data for printing multi-byte characters. \(fn)" nil nil) --(autoload (quote ps-mule-encode-header-string) "ps-mule" "\ --Generate PostScript code for ploting STRING by font FONTTAG. --FONTTAG should be a string \"/h0\" or \"/h1\". -- --\(fn STRING FONTTAG)" nil nil) -- (autoload (quote ps-mule-begin-job) "ps-mule" "\ Start printing job for multi-byte chars between FROM and TO. This checks if all multi-byte characters in the region are printable or not. \(fn FROM TO)" nil nil) --(autoload (quote ps-mule-begin-page) "ps-mule" "\ --Not documented ++(autoload (quote ps-mule-end-job) "ps-mule" "\ ++Finish printing job for multi-byte chars. \(fn)" nil nil) diff --cc lisp/vc-bzr.el index 23ce0d9c17a,e7a09450fd9..583816c4cf5 --- a/lisp/vc-bzr.el +++ b/lisp/vc-bzr.el @@@ -88,33 -88,9 +88,9 @@@ (repeat :tag "Argument List" :value ("") string)) :group 'vc-bzr) - (defvar vc-bzr-version nil - "Internal use.") - - ;; Could be used for compatibility checks if bzr changes. - (defun vc-bzr-version () - "Return a three-numeric element list with components of the bzr version. - This is of the form (X Y Z) for revision X.Y.Z. The elements are zero - if running `vc-bzr-program' doesn't produce the expected output." - (or vc-bzr-version - (setq vc-bzr-version - (let ((s (shell-command-to-string - (concat (shell-quote-argument vc-bzr-program) - " --version")))) - (if (string-match "\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" s) - (list (string-to-number (match-string 1 s)) - (string-to-number (match-string 2 s)) - (string-to-number (match-string 3 s))) - '(0 0 0)))))) - - (defun vc-bzr-at-least-version (vers) - "Return t if the bzr command reports being a least version VERS. - First argument VERS is a list of the form (X Y Z), as returned by `vc-bzr-version'." - (version-list-<= vers (vc-bzr-version))) - ;; since v0.9, bzr supports removing the progress indicators ;; by setting environment variable BZR_PROGRESS_BAR to "none". -(defun vc-bzr-command (bzr-command buffer okstatus file-or-list &rest args) +(defun vc-bzr-command (bzr-command buffer okstatus file &rest args) "Wrapper round `vc-do-command' using `vc-bzr-program' as COMMAND. Invoke the bzr command adding `BZR_PROGRESS_BAR=none' to the environment." (let ((process-environment @@@ -127,30 -103,8 +103,8 @@@ ;; This is redundant because vc-do-command does it already. --Stef (process-connection-type nil)) (apply 'vc-do-command buffer okstatus vc-bzr-program - file-or-list bzr-command (append vc-bzr-program-args args)))) + file bzr-command (append vc-bzr-program-args args)))) - - (unless (vc-bzr-at-least-version '(0 9)) - ;; For older versions, we fall back to washing the log buffer - ;; when all output has been gathered. - (defun vc-bzr-post-command-function (command file flags) - "`vc-post-command-functions' function to remove progress messages." - ;; Note that using this requires that the vc command is run - ;; synchronously. Otherwise, the ^Ms in the leading progress - ;; message on stdout cause the stream to be interpreted as having - ;; DOS line endings, losing the ^Ms, so the search fails. I don't - ;; know how this works under Windows. - (when (equal command vc-bzr-program) - (save-excursion - (goto-char (point-min)) - (if (looking-at "^\\(\r.*\r\\)[^\r]+$") - (replace-match "" nil nil nil 1))) - (save-excursion - (goto-char (point-min)) - ;; This is inserted by bzr 0.11 `log', at least - (while (looking-at "read knit.*\n") - (replace-match ""))))) - (add-hook 'vc-post-command-functions 'vc-bzr-post-command-function)) ;;;###autoload (defconst vc-bzr-admin-dirname ".bzr") ; FIXME: "_bzr" on w32? diff --cc src/ChangeLog index 76c8c8ef163,2c14c0e8eaf..af29937753c --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,3 -1,67 +1,46 @@@ -2007-07-18 Richard Stallman - - * data.c (Fsetq_default): Doc fix. - - * eval.c (Fsetq): Doc fix. - -2007-07-18 Juanma Barranquero - - * coding.c (Ffind_operation_coding_system): - * eval.c (For, Fand): Doc fixes. - Reported by Johan Bockg,Ae(Brd. - -2007-07-18 Jan Dj,Ad(Brv - - * xfns.c (Fx_focus_frame): Call x_ewmh_activate_frame. - - * xterm.h: Declare x_ewmh_activate_frame. - - * xterm.c (x_ewmh_activate_frame): New function. - (XTframe_raise_lower): Move code to x_ewmh_activate_frame. - + 2007-07-17 Martin Rudalics + + * window.c (Fdisplay_buffer): If largest or LRU window is the + only window, split it even if it is not eligible for splitting. + This restores the original behavior broken by the 2007-07-15 + change. + + 2007-07-17 Glenn Morris + + * abbrev.c (abbrev_check_chars): New function. + (Fdefine_global_abbrev, Fdefine_mode_abbrev): Call + abbrev_check_chars to check abbrev characters are word + constituents. Doc fix. + + 2007-07-17 Stefan Monnier + + * process.c (Fstart_process, Fmake_network_process) + (read_process_output): Fix up last changes. + + 2007-07-16 Eli Zaretskii + + * makefile.w32-in (clean): Don't delete *~. + + 2007-07-16 Andreas Schwab + + * window.c (Fdisplay_buffer): Use NILP. + (Fset_window_scroll_bars): Likewise. + + 2007-07-15 Martin Rudalics + + * window.c (window_min_size_2): New function. + (window_min_size_1, size_window, Fdisplay_buffer) + (Fsplit_window, adjust_window_trailing_edge): Use it to avoid + windows without mode- or header-lines when window-min-height is + too small. + (size_window): Reset nodelete_p after testing it, following an + earlier note by Kim F. Storm. + (display_buffer): Do not set split_height_threshold to twice the + value of window_min_height to avoid changing the value of a + customizable variable. Rather explicitly check whether the + height of the window that shall be splitted is at least as large + as split_height_threshold. + 2007-07-14 Jason Rumney * process.c [WINDOWSNT]: Don't undefine AF_INET6. diff --cc src/process.c index 5551c0610d0,e588b3bc3ab..30cc13cfb2c --- a/src/process.c +++ b/src/process.c @@@ -5167,16 -5167,21 +5167,16 @@@ read_process_output (proc, channel } } - carryover = nbytes - coding->consumed; - if (carryover < 0) - abort (); - - if (SCHARS (p->decoding_buf) < carryover) - p->decoding_buf = make_uninit_string (carryover); - bcopy (chars + coding->consumed, SDATA (p->decoding_buf), - carryover); - p->decoding_carryover = carryover; + if (coding->carryover_bytes > 0) + { + if (SCHARS (p->decoding_buf) < coding->carryover_bytes) + p->decoding_buf = make_uninit_string (coding->carryover_bytes); + bcopy (coding->carryover, SDATA (p->decoding_buf), + coding->carryover_bytes); + p->decoding_carryover = coding->carryover_bytes; + } /* Adjust the multibyteness of TEXT to that of the filter. */ - if (p->filter_multibyte != STRING_MULTIBYTE (text)) + if (!p->filter_multibyte != !STRING_MULTIBYTE (text)) text = (STRING_MULTIBYTE (text) ? Fstring_as_unibyte (text) : Fstring_to_multibyte (text)); diff --cc src/window.c index 42a33828d8d,8e75ef7f5d2..59b70152b09 --- a/src/window.c +++ b/src/window.c @@@ -3742,16 -3750,18 +3750,18 @@@ displayed. */ window = Fsplit_window (window, Qnil, Qnil); else { - Lisp_Object upper, lower, other; + Lisp_Object upper, other; window = Fget_lru_window (frames, Qt); - /* If the LRU window is selected, and big enough, - and can be split, split it. */ + /* If the LRU window is tall enough, and either eligible for splitting + and selected or the only window, split it. */ if (!NILP (window) && ! FRAME_NO_SPLIT_P (XFRAME (XWINDOW (window)->frame)) - && (EQ (window, selected_window) - || EQ (XWINDOW (window)->parent, Qnil)) - && window_height (window) >= window_min_height << 1) + && ((EQ (window, selected_window) + && window_height (window) >= split_height_threshold) + || (NILP (XWINDOW (window)->parent))) + && (window_height (window) + >= (2 * window_min_size_2 (XWINDOW (window), 0)))) window = Fsplit_window (window, Qnil, Qnil); else window = Fget_lru_window (frames, Qnil);