Juri Linkov [Wed, 7 Sep 2011 12:17:54 +0000 (15:17 +0300)]
* lisp/progmodes/compile.el (compilation-start): Let-bind `thisenv' to
`compilation-environment'. Set buffer-local
`compilation-environment' to `thisenv' later after (funcall mode).
(Bug#8340)
* lisp/vc/vc-git.el (vc-git-grep): Remove --no-color. (Bug#9408)
(vc-git-grep): Prepend "PAGER=" to `compilation-environment'
instead of replacing its value. (Bug#8340)
Juri Linkov [Wed, 7 Sep 2011 12:00:52 +0000 (15:00 +0300)]
* lisp/progmodes/grep.el (grep-regexp-alist): Calculate column positions
based on text properties put by `grep-filter' instead of matching
escape sequences.
(grep-mode): Set buffer-local `compilation-error-screen-columns'
to the value of `grep-error-screen-columns'.
Paul Eggert [Tue, 6 Sep 2011 20:47:45 +0000 (13:47 -0700)]
isnan: Fix porting problem to Solaris 10 with bundled gcc.
Without this fix, the command to link temacs failed due to an
undefined symbol __builtin_isnan. This is because
/usr/include/iso/math_c99.h #defines isnan(x) to
__builtin_isnan(x), but the bundled gcc, which identifies itself
as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
a __builtin_isnan.
* configure.in (isnan): Remove now-unnecessary check.
* src/floatfns.c (isnan): #undef, and then #define to a clone of
what's in data.c.
(Fisnan): Always define, since it's always available now.
(syms_of_floatfns): Always define isnan at the Lisp level.
Juri Linkov [Mon, 5 Sep 2011 08:20:02 +0000 (11:20 +0300)]
Grep related fixes.
* etc/grep.txt: Add `eval' to the Local Variables section that
emulates `grep-filter'.
* lisp/progmodes/grep.el (grep-filter): Avoid incomplete processing by
keeping point where processing of grep matches begins, and
continue to delete remaining escape sequences from the same point.
(grep-filter): Make leading zero optional in "0?1;31m" because
git-grep emits "\033[1;31m" escape sequences unlike expected
"\033[01;31m" as GNU Grep does.
(grep-process-setup): Replace obsolete "ml=" with newer "sl=".
gnus.el (gnus-home-directory): Add warning about setting in .gnus.el (bug#9405).
gnus-score.el (gnus-summary-increase-score): Doc clarification (bug#9421).
gnus-spec.el (gnus-face-0): Make all the face specs into defcustoms (bug#9425).
gnus-art.el (gnus-treatment-function-alist): Remove CRs as the first thing (bug#9426).
Paul Eggert [Sun, 4 Sep 2011 18:46:51 +0000 (11:46 -0700)]
* window.c: Integer overflow fixes.
(window_scroll_line_based, Frecenter):
Check that an Emacs fixnum is in range before assigning it to 'int'.
(Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
values converted from Emacs fixnums.
(Frecenter): Don't wrap around a line count if it is out of 'int'
range; instead, treat it as an extreme value.
(Fset_window_configuration, compare_window_configurations):
Use ptrdiff_t, not int, for index that might exceed 2 GiB.
Michael Albinus [Sun, 4 Sep 2011 18:14:34 +0000 (20:14 +0200)]
* net/tramp.el (top): Require 'shell. Use `tramp-unload-hook' but
`tramp-cache-unload-hook' where appropriate.
(tramp-methods): Rename `tramp-remote-sh' to
`tramp-remote-shell'. Add `tramp-remote-shell-args'.
(tramp-handle-shell-command): New defun, moved from tramp-sh.el.
* net/tramp-sh.el (top): Don't require 'shell.
(tramp-methods): Add `tramp-remote-shell' and
`tramp-remote-shell-args' entries.
(tramp-sh-file-name-handler-alist): Use `tramp-handle-shell-command'.
(tramp-sh-handle-shell-command): Remove.
(tramp-find-shell, tramp-open-connection-setup-interactive-shell):
Use `tramp-remote-shell'.
Paul Eggert [Sun, 4 Sep 2011 17:27:38 +0000 (10:27 -0700)]
* search.c: Integer overflow fixes
(Freplace_match): Use ptrdiff_t, not int, for indexes that can
exceed INT_MAX. Check that EMACS_INT value is in range before
assigning it to the (possibly-narrower) index.
(match_limit): Don't assume that a fixnum can fit in 'int'.
Paul Eggert [Sun, 4 Sep 2011 17:24:12 +0000 (10:24 -0700)]
* indent.c: Integer overflow fixes.
(position_indentation): Now takes ptrdiff_t, not int.
(Fvertical_motion): Don't wrap around LINES values that don't fit
in 'int'. Instead, treat them as extreme values. This is good
enough for windows, which can't have more than INT_MAX lines anyway.
* progmodes/python.el (python-mode-map): Use correct function to
start python interpreter from menu-bar (as reported by Geert
Kloosterman).
(inferior-python-mode-map): Fix typo.
(python-shell-map): Removed.
Deniz Dogan [Sat, 3 Sep 2011 17:40:08 +0000 (19:40 +0200)]
* lisp/net/rcirc.el (rcirc-print): Simplify code for rcirc-scroll-show-maximum-output. There is no need to walk through all windows to find the right one.
Martin Rudalics [Sat, 3 Sep 2011 10:55:37 +0000 (12:55 +0200)]
Don't delete frame when there's a previous buffer to show (Bug#9419).
* window.el (window-deletable-p): Don't return a non-nil value
when there's a buffer that was shown in the window before.
(Bug#9419)
(display-buffer-pop-up-frame, display-buffer-pop-up-window): Set
window's previous buffers to nil.
Eli Zaretskii [Sat, 3 Sep 2011 08:44:16 +0000 (11:44 +0300)]
Fix display by Rmail of bidirectional text in MIME email messages.
lisp/mail/rmailmm.el (rmail-mime-insert-tagline): Insert an extra
newline before and after the tag line, so it doesn't interfere
with determining the paragraph direction of bidirectional text.
Paul Eggert [Sat, 3 Sep 2011 05:23:17 +0000 (22:23 -0700)]
* fileio.c: Fix bugs with large file offsets.
The previous code assumed that file offsets (off_t values) fit in
EMACS_INT variables, which is not true on typical 32-bit hosts.
The code messed up by falsely reporting buffer overflow in cases
such as (insert-file-contents "big" nil 1 2) into an empty buffer
when "big" contains more than 2**29 bytes, even though this
inserts just one byte and does not overflow the buffer.
(Finsert_file_contents): Store file offsets as off_t
values, not as EMACS_INT values. Check for overflow when
converting between EMACS_INT and off_t. When checking for
buffer overflow or for overlap, take the offsets into account.
Don't use EMACS_INT for small values where int suffices.
When checking for overlap, fix a typo: ZV was used where
ZV_BYTE was intended.
(Fwrite_region): Don't assume off_t fits into 'long'.
* buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
* lisp/window.el (pop-to-buffer-1, pop-to-buffer-same-window): Deleted.
(pop-to-buffer): Change interactive spec. Pass second argument
directly to display-buffer.
(display-buffer): Fix interactive spec. Use functionp to
distinguish between a function and a list of functions.
Fix display-buffer interactive spec, and fixes for pop-to-buffer*.
* lisp/window.el (display-buffer): Restore interactive spec.
(display-buffer-same-window, display-buffer-other-window): New
functions.
(pop-to-buffer-1): New function. Use the above.
(pop-to-buffer, pop-to-buffer-same-window): Use it.
(pop-to-buffer-other-window, pop-to-buffer-other-frame): Deleted.
* lisp/view.el (view-buffer-other-window, view-buffer-other-frame):
Just use pop-to-buffer.
Michael Albinus [Wed, 31 Aug 2011 08:18:20 +0000 (10:18 +0200)]
* net/tramp.el (tramp-root-regexp): Remove.
(tramp-completion-file-name-regexp-unified)
(tramp-completion-file-name-regexp-separate)
(tramp-completion-file-name-regexp-url): Don't use leading volume
letter on win32 systems. (Bug#5303, Bug#9311)
(tramp-drop-volume-letter): Simplify definition. Suggested by
Stefan Monnier <monnier@iro.umontreal.ca>.
Paul Eggert [Wed, 31 Aug 2011 05:50:49 +0000 (22:50 -0700)]
Avoid the use of snprintf.
* font.c (APPEND_SNPRINTF): Remove.
(font_unparse_xlfd):
* xterm.c (x_io_error_quitter):
Use esnprintf, not snprintf. That way, we don't have to worry
about porting to ancient platforms that lack snprintf.
(x_term_init): Use sprintf, not snprintf.
Paul Eggert [Tue, 30 Aug 2011 20:46:59 +0000 (13:46 -0700)]
* configure.in: Remove no-longer used HP patterns.
(opsys): Remove unreachable pattern hppa*-*-linux-gnu*.
Also, remove ia64*-hp-hpux1[1-9]*, as it also sets machine=hp800,
and that can't possibly work now that src/m/hp800.h no longer exists.
Eli Zaretskii [Tue, 30 Aug 2011 17:32:44 +0000 (20:32 +0300)]
Fix bug #9402 with :align-to on TTY frames.
src/xdisp.c (produce_stretch_glyph): No longer static, compiled also
when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
frames. Call tty_append_glyph in the TTY case. (Bug#9402)
src/term.c (tty_append_glyph): New function.
(produce_stretch_glyph): Static function and its prototype deleted.
src/dispextern.h (produce_stretch_glyph, tty_append_glyph): Add
prototypes.
Chong Yidong [Mon, 29 Aug 2011 22:02:21 +0000 (18:02 -0400)]
Update and edit manual sections on major modes.
* doc/emacs/modes.texi (Choosing Modes): auto-mode-case-fold is now t.
* doc/lispref/modes.texi (Basic Major Modes): New node. Callers updated.
(Major Modes): Document fundamental-mode and major-mode.
(Major Mode Basics): Node deleted; text moved to Major Modes.
(Derived Modes): Document derived-mode-p.