Chong Yidong [Sun, 26 Aug 2012 09:16:48 +0000 (17:16 +0800)]
Clean up gdb-mi's usage of display-buffer.
* progmodes/gdb-mi.el (gdb-display-buffer-other-frame-action): New
variable, replacing gdb-frame-parameters.
(gdb-frame-io-buffer, gdb-frame-breakpoints-buffer)
(gdb-frame-threads-buffer, gdb-frame-memory-buffer)
(gdb-frame-disassembly-buffer, gdb-frame-stack-buffer)
(gdb-frame-locals-buffer, gdb-frame-registers-buffer): Use it.
(def-gdb-frame-for-buffer): Macro deleted. It is easier to define
the functions directly with gdb-display-buffer-other-frame-action.
(gdb-display-breakpoints-buffer, gdb-display-threads-buffer)
(gdb-display-memory-buffer, gdb-display-disassembly-buffer)
(gdb-display-stack-buffer, gdb-display-locals-buffer)
(gdb-display-registers-buffer): Define directly.
(def-gdb-display-buffer): Macro deleted.
(gdb-display-buffer): Remove second and third args, callers don't
use them. Defer to the default display-buffer behavior, apart
from making windows dedicated.
(gdb-setup-windows): Don't call display-buffer unnecessarily.
* window.el (display-buffer-pop-up-frame): Handle a
pop-up-frame-parameters alist entry.
(display-buffer): Document it.
* progmodes/gud.el (gud-display-line): Just use display-buffer.
Paul Eggert [Sun, 26 Aug 2012 05:21:04 +0000 (22:21 -0700)]
* lisp.h (ASET): Remove attempt to detect side effects.
It was meant to be temporary and it often doesn't work,
because when IDX has side effects the behavior of IDX==IDX
is undefined. See Stefan Monnier in
<http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
Chong Yidong [Sun, 26 Aug 2012 03:57:55 +0000 (11:57 +0800)]
Make ordinary isearch obey search-whitespace-regexp too.
* lisp/isearch.el (search-whitespace-regexp): Make string and nil
values apply to both ordinary and regexp search. Allow a cons
cell value to distinguish between the two.
(isearch-whitespace-regexp, isearch-search-forward)
(isearch-search-backward): New functions.
(isearch-occur, isearch-search-fun-default, isearch-search)
(isearch-lazy-highlight-new-loop): Use them.
(isearch-forward, isearch-forward-regexp): Doc fix.
Paul Eggert [Sat, 25 Aug 2012 20:31:04 +0000 (13:31 -0700)]
* xgselect.c (xg_select): Use auto storage for the GPollFD buffer
as that's faster and simpler than static storage. Don't bother
with the g_main_context_query overhead if g_main_context_pending
says no events are pending.
(gfds, gfds_size): Remove these static vars.
(xgselect_initialize): Remove; no longer needed.
All uses and decls removed.
Martin Rudalics [Sat, 25 Aug 2012 14:52:02 +0000 (16:52 +0200)]
Handle evening window heights more correctly (Bug#11880) and (Bug#12091).
* window.el (window--even-window-heights): Even heights when
WINDOW and the selected window form a vertical combination.
(display-buffer-use-some-window): Provide that window used gets
sized back by quit-window. (Bug#11880) and (Bug#12091)
Paul Eggert [Sat, 25 Aug 2012 04:04:08 +0000 (21:04 -0700)]
On assertion failure, print backtrace if available.
Merge from gnulib, incorporating:
2012-08-24 execinfo: port to FreeBSD
2012-08-22 execinfo: new module
* admin/merge-gnulib (GNULIB_MODULES): Add execinfo.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4: New files.
* src/alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
(die) [ENABLE_CHECKING]: Print a backtrace if available.
* src/Makefile.in (LIB_EXECINFO): New macro.
(LIBES): Use it.
Paul Eggert [Thu, 23 Aug 2012 20:31:52 +0000 (13:31 -0700)]
* bidi.c: Use bool for boolean.
This is a bit more readable, and makes the text segment of bidi.o
0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
Presumably it's faster too.
(bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
Now bool.
(bidi_cache_find_level_change, bidi_cache_iterator_state)
(bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
(bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
(bidi_explicit_dir_char, bidi_level_of_next_char)
(bidi_find_other_level_edge, bidi_move_to_visually_next):
Use bool for booleans, instead of int.
* dispextern.h (bidi_init_it, bidi_paragraph_init)
(bidi_unshelve_cache): Adjust decls to match code.
Dan Nicolaescu [Wed, 22 Aug 2012 16:05:04 +0000 (12:05 -0400)]
* frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
compile time tests instead of run time tests on systems that do
not use them.
(FRAME_MAC_P): Remove leftover from deleted code.
* frame.c (syms_of_frame): Remove leftover from deleted code.
Martin Rudalics [Wed, 22 Aug 2012 09:22:08 +0000 (11:22 +0200)]
Rewrite handling of side and atomic windows.
* window.el (display-buffer-in-atom-window, window--major-non-side-window)
(window--major-side-window, display-buffer-in-major-side-window)
(delete-side-window, display-buffer-in-side-window): New
functions.
(window--side-check, window-deletable-p, delete-window)
(delete-other-windows, split-window): Handle side windows and
atomic windows appropriately.
(window--display-buffer): Call display-buffer-record-window also
when the window buffer did not change.
Martin Rudalics [Wed, 22 Aug 2012 08:30:54 +0000 (10:30 +0200)]
Let walk-window-tree and window-with-parameter operate on minibuffer windows too.
* window.el (walk-window-tree, window-with-parameter): New
optional argument MINIBUF to control whether these functions
should run on the minibuffer window.
(window-at-side-list): Don't operate on minibuffer window.
(window-in-direction): Simplify and rewrite doc-string.
Paul Eggert [Wed, 22 Aug 2012 07:20:42 +0000 (00:20 -0700)]
* fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
Otherwise, the compiler complains about (A?B:C) where B is void
and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
(fontset_add): Return void, for FONTSET_ADD.
Paul Eggert [Tue, 21 Aug 2012 23:09:01 +0000 (16:09 -0700)]
Make recently-introduced setters macros.
* fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
(set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
(set_fontset_default, set_fontset_fallback): Rename from their
upper-case counterparts, and make them functions rather than macros.
This is more consistent with the other recently-introduced setters.
These don't need to be inline, since they're local.
Paul Eggert [Tue, 21 Aug 2012 17:18:21 +0000 (10:18 -0700)]
* lisp.h (vcopy): Use memcpy rather than our own loop.
This fixes a performance regression introduced by the recent
addition of vcopy. This means 'vcopy' will need to be modified
for a copying collector, but that's OK. Also, tighten the
checking in the assertion.
Eli Zaretskii [Tue, 21 Aug 2012 17:14:08 +0000 (20:14 +0300)]
Fix bug #11860 with displaying composite RTL characters on MS-Windows.
src/w32uniscribe.c (uniscribe_shape): Fix producing gstring
components for RTL text. Adjust X-OFFSET of each non-base glyph
for the width of the base character, according to what
x_draw_composite_glyph_string_foreground expects. Generate
WADJUST value according to composition_gstring_width's
expectations, to produce correct width of the composed character.
Reverse the sign of the DU offset produced by ScriptPlace.
Dmitry Antipov [Tue, 21 Aug 2012 10:21:04 +0000 (14:21 +0400)]
Avoid direct writes to contents member of struct Lisp_Vector.
* lisp.h (vcopy): New function to copy data into vector.
* dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
* fns.c (Ffillarray): Use ASET.
* keyboard.c (timer_check_2): Use AREF and ASET.
(append_tool_bar_item, Frecent_keys): Use vcopy.
* lread.c (read_vector): Use ASET.
* msdos.c (Frecent_doskeys): Use vcopy.
* xface.c (Finternal_copy_lisp_face): Use vcopy.
(Finternal_merge_in_global_face): Use ASET and vcopy.
* xfont.c (xfont_list_pattern): Likewise.
Martin Rudalics [Tue, 21 Aug 2012 09:27:07 +0000 (11:27 +0200)]
For selected window have (set-)window-point always operate on buffer's point.
* window.c (Fwindow_point): For the selected window always return
the position of its buffer's point.
(Fset_window_point): For the selected window always go in its
buffer to the specified position.
* window.el (window-point-1, set-window-point-1): Remove.
(window-in-direction, record-window-buffer)
(set-window-buffer-start-and-point, split-window-below)
(window--state-get-1, display-buffer-record-window): Replace
calls to window-point-1 and set-window-point-1 by calls to
window-point and set-window-point respectively.
Glenn Morris [Tue, 21 Aug 2012 02:29:25 +0000 (22:29 -0400)]
Reduce some cal-tex code duplication
* lisp/calendar/cal-tex.el (cal-tex-filofax-paper): New function.
(cal-tex-cursor-filofax-year, cal-tex-cursor-filofax-2week)
(cal-tex-cursor-filofax-week, cal-tex-cursor-filofax-daily): Use it.
(cal-tex-weekly-paper): New function.
(cal-tex-cursor-week, cal-tex-cursor-week2)
(cal-tex-cursor-week-iso, cal-tex-cursor-week-monday)
(cal-tex-cursor-day): Use it.
Glenn Morris [Tue, 21 Aug 2012 01:36:27 +0000 (21:36 -0400)]
Remove some blank pages from cal-tex output
* lisp/calendar/cal-tex.el (cal-tex-cursor-week-at-a-glance)
(cal-tex-cursor-filofax-week): Remove leading blank page.
(Were these supposed to serve some purpose? Printing?)
Glenn Morris [Tue, 21 Aug 2012 01:32:26 +0000 (21:32 -0400)]
cal-tex-cursor-week-at-a-glance small fixes
* lisp/calendar/cal-tex.el (cal-tex-cursor-week-at-a-glance):
Add autoload cookie.
For now at least, don't use color, since no other cal-tex function does.
Juri Linkov [Tue, 21 Aug 2012 00:12:42 +0000 (03:12 +0300)]
* lisp/info.el (Info-file-attributes): New variable.
(info-insert-file-contents): Add file attributes to
`Info-file-attributes'. Clear the caches `Info-index-nodes' and
`Info-toc-nodes' when previous modtime of the Info file is less
than new modtime.
(Info-toc-nodes, Info-index-nodes): Move definitions up to the top
of info.el.
Glenn Morris [Mon, 20 Aug 2012 23:57:35 +0000 (19:57 -0400)]
* src/Makefile.in: Don't assume that `ln -f' works.
Presumably it does work fine on all platforms currently building
Emacs, but the autoconf manual says not to rely on it.
Glenn Morris [Mon, 20 Aug 2012 18:13:03 +0000 (14:13 -0400)]
Use display-warning in a few places in calendar
* lisp/calendar/diary-lib.el (diary-include-files, diary-sexp-entry):
* lisp/calendar/holidays.el (calendar-holiday-list):
Report errors with display-warning rather than beep'n'sleep.
Eli Zaretskii [Mon, 20 Aug 2012 17:32:31 +0000 (20:32 +0300)]
Avoid GDB 7.5 warnings about "set main" in src/.gdbinit.
src/.gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
and later about non-assignments with no effect. See discussion at
http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
details.
Josh Feinstein [Mon, 20 Aug 2012 16:08:51 +0000 (09:08 -0700)]
Hide specified message types sent by lurkers
* erc.el (erc-display-message): Abstract message hiding decision
to new function erc-hide-current-message-p.
(erc-lurker): New customization group.
(erc-lurker-state, erc-lurker-trim-nicks, erc-lurker-ignore-chars)
(erc-lurker-hide-list, erc-lurker-cleanup-interval)
(erc-lurker-threshold-time): New variables.
(erc-lurker-maybe-trim, erc-lurker-initialize, erc-lurker-cleanup)
(erc-hide-current-message-p, erc-canonicalize-server-name)
(erc-lurker-update-status, erc-lurker-p): New functions. Together
they maintain state about which users have spoken in the last
erc-lurker-threshold-time, with all other users being considered
lurkers whose messages of types in erc-lurker-hide-list will not
be displayed by erc-display-message.
Dmitry Antipov [Mon, 20 Aug 2012 08:20:25 +0000 (12:20 +0400)]
Use AREF and ASET for docstrings of category tables.
* category.h (CATEGORY_DOCSTRING): Use AREF.
(SET_CATEGORY_DOCSTRING): Use ASET.
* category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
Edward Reingold [Mon, 20 Aug 2012 07:23:51 +0000 (00:23 -0700)]
* calendar/cal-tex.el (cal-tex-cursor-week-at-a-glance): New function.
(This is basically cal-tex-cursor-filofax-week with a different
papersize, mini-calendars, and color.)