Glenn Morris [Wed, 16 Nov 2011 02:06:06 +0000 (21:06 -0500)]
Try to stop rmailedit destroying mime messages (bug#9840)
* lisp/mail/rmailedit.el: Require rmailmm when compiling.
(rmail-old-mime-state): New declaration.
(rmail-edit-current-message): If editing a mime message,
edit the "raw" message from the mbox buffer.
(rmail-cease-edit): Handle mime messages.
Glenn Morris [Tue, 15 Nov 2011 23:36:54 +0000 (18:36 -0500)]
Add optional arguments to rmailmm to force state, not just toggle.
* lisp/mail/rmailmm.el (rmail-mime-toggle-raw): Remove entity arg,
which wasn't being used. Add optional arg to force given state.
(rmail-mime): Add optional arg to force given state.
Glenn Morris [Tue, 15 Nov 2011 08:23:03 +0000 (00:23 -0800)]
Small rmail and rmailmm changes, many doc fixes.
* lisp/mail/rmail.el (rmail-file-coding-system): It's only ever used
in a boolean sense, so just make it a boolean, and fix the doc.
(rmail-show-mime-function, rmail-mime-feature)
(rmail-require-mime-maybe): Doc fixes.
(rmail-show-message-1): Check rmail-show-mime-function is non-nil.
Eli Zaretskii [Mon, 14 Nov 2011 20:15:38 +0000 (22:15 +0200)]
Fix bug #10035 with assertion violation in row_equal_p.
src/xdisp.c (display_line): Move the call to
highlight_trailing_whitespace before the call to
compute_line_metrics, since the latter needs to see the final
faces of all the glyphs to compute ROW's hash value. Fixes
assertion violations in row_equal_p.
Glenn Morris [Mon, 14 Nov 2011 09:22:45 +0000 (01:22 -0800)]
rmail-summary fix.
* lisp/mail/rmailsum.el (rmail-summary): Remove movement to beginning
of message - not necessary, and causes problems.
I believe the call to rmail-summary-beginning-of-message was only
thought to be necessary due to a couple of bugs in rmail-new-summary
that are hopefully fixed now (`mesg' not being set,
rmail-summary-buffer's buffer locality not being considered).
Eli Zaretskii [Sat, 12 Nov 2011 12:11:54 +0000 (14:11 +0200)]
Allow building temacs with a larger heap on MS-Windows.
src/makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
with user-defined heap size. Bump the default size of the temacs
heap to 27MB, to avoid memory warning when running temacs.
($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
Eli Zaretskii [Sat, 12 Nov 2011 11:56:57 +0000 (13:56 +0200)]
Verify glyph row's hash values.
src/dispnew.c (verify_row_hash) [XASSERTS]: New function.
(adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
that the hash value of glyph rows is correct.
Stefan Monnier [Fri, 11 Nov 2011 15:55:24 +0000 (10:55 -0500)]
* lisp/electric.el: Make electric-indent-mode better behaved.
* lisp/electric.el (electric-indent-post-self-insert-function): Make it
possible for a char to only indent in some circumstances.
(electric-indent-mode): Simplify.
Glenn Morris [Thu, 10 Nov 2011 02:36:48 +0000 (21:36 -0500)]
Always use svn --non-interactive in vc-svn.el (bug#9993)
* lisp/vc/vc-svn.el (vc-svn-create-repo, vc-svn-modify-change-comment):
Call svn via vc-svn-command rather than vc-do-command.
(vc-svn-command): Add --non-interactive.
(vc-svn-update, vc-svn-merge-news): No need for --non-interactive.
Martin Rudalics [Wed, 9 Nov 2011 09:36:05 +0000 (10:36 +0100)]
Rewrite window-resizable.
* window.el (window-size-fixed-p): Rewrite doc-string.
(window-resizable-p): Rename to window--resizable-p. Update
callers.
(window--resizable): New function. Make all callers of
window-resizable call window--resizable instead.
(window-resizable): Rewrite in terms of window--resizable.
* windows.texi (Resizing Windows): Rewrite documentation of
window-resizable.
Chong Yidong [Tue, 8 Nov 2011 15:34:21 +0000 (23:34 +0800)]
* doc/lispref/windows.texi (Resizing Windows): Simplify introduction.
Don't document enlarge-window, shrink-window, enlarge-window-horizontally,
and shrink-window-horizontally; they are no longer preferred for calling
from Lisp, and are already documented in the Emacs manual.
Martin Rudalics [Tue, 8 Nov 2011 09:33:22 +0000 (10:33 +0100)]
Remove stale references to help-setup parameter in doc-strings.
* window.el (display-buffer-function, special-display-function):
Mention display-buffer-record-window but do not mention
help-setup parameter in doc-strings.
Chong Yidong [Tue, 8 Nov 2011 07:25:56 +0000 (15:25 +0800)]
Move low-level window width/height functions to C, and high-level functions to Lisp.
* lisp/window.el (window-total-height, window-total-width): Doc fix.
(window-body-size): Move from C.
(window-body-height, window-body-width): Move to C.
* src/window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
(Fwindow_body_height, Fwindow_body_width): Move from Lisp. Signal
an error if not a live window.
(Fwindow_total_width, Fwindow_total_height): Move from Lisp.
(Fwindow_total_size, Fwindow_body_size): Move to Lisp.
Stefan Monnier [Tue, 8 Nov 2011 02:57:59 +0000 (21:57 -0500)]
* lisp/window.el: Make special-display like display-buffer-alist.
(display-buffer--special-action): New function, morphed
from display-buffer--special.
(display-buffer): Use it to handle special-display-buffers at higher
priority (just after display-buffer-alist).
(display-buffer-fallback-action, display-buffer--other-frame-action)
(pop-to-buffer-same-window): Remove display-buffer--special.
Eli Zaretskii [Mon, 7 Nov 2011 16:42:34 +0000 (18:42 +0200)]
Allow to run temacs.exe on MS-Windows in GUI mode.
src/w32.c (check_windows_init_file): Don't look for term/w32-win.el
if Vpurify_flag is non-nil. Fixes a crash when running w32 build
of temacs in GUI mode.
Martin Rudalics [Mon, 7 Nov 2011 09:51:08 +0000 (10:51 +0100)]
Remove term "subwindow" from code and documentation.
* window.h: Declare delete_all_child_windows instead of
delete_all_subwindows.
* window.c (Fwindow_nest, Fset_window_nest)
(Fset_window_new_total, Fset_window_new_normal)
(Fwindow_resize_apply): Don't use term subwindow in doc-strings.
(delete_all_subwindows): Rename to delete_all_child_windows.
(Fdelete_other_windows_internal, Fset_window_configuration):
Call delete_all_child_windows instead of delete_all_subwindows.
* frame.c (delete_frame): Call delete_all_child_windows instead
of delete_all_subwindows.
* window.el (window-combinations): Make WINDOW argument
mandatory. Rewrite doc-string.
(walk-window-subtree, window-atom-check, window-min-delta)
(window-max-delta, window--resize-this-window)
(window--resize-root-window-vertically, window-tree)
(balance-windows, window-state-put): Rewrite doc-strings as to
not mention the term "subwindow".
(window--resize-subwindows-skip-p): Rename to
window--resize-child-windows-skip-p.
(window--resize-subwindows-normal): Rename to
window--resize-child-windows-normal.
(window--resize-subwindows): Rename to
window--resize-child-windows.
(window-or-subwindow-p): Rename to window--in-subtree-p.
* windows.texi (Resizing Windows, Splitting Windows)
(Window Configurations): Use "child window" instead of
"subwindow".
Paul Eggert [Sun, 6 Nov 2011 21:12:10 +0000 (13:12 -0800)]
Fix some portability problems with 'inline'.
* dispextern.h (window_box, window_box_height, window_text_bottom_y)
(window_box_width, window_box_left, window_box_left_offset)
(window_box_right, window_box_right_offset): Declare extern.
Otherwise, these inline functions do not conform to C99 and
are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
<http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
* intervals.c (adjust_intervals_for_insertion)
(adjust_intervals_for_deletion): Now extern, because otherwise the
extern inline functions 'offset_intervals' couldn't refer to it.
(static_offset_intervals): Remove.
(offset_intervals): Rewrite using the old contents of
static_offset_intervals. The old version didn't conform to C99
because an extern inline function contained a reference to an
identifier with static linkage.
Eli Zaretskii [Sun, 6 Nov 2011 18:21:52 +0000 (20:21 +0200)]
Fix bug #9963 with abort in "temacs -nw".
src/xdisp.c (init_iterator, reseat_to_string): Don't set the
iterator's bidi_p flag if Vpurify_flag is non-nil.
(Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
return Qleft_to_right.
Chong Yidong [Sun, 6 Nov 2011 06:14:01 +0000 (14:14 +0800)]
Manual updates for window changes.
* doc/emacs/windows.texi (Basic Window): Add xref to Cursor Display.
(Split Window): Document negative arg for splitting commands.
(Other Window): Document mouse-1 in text area of window.
(Change Window): Don't mention window attributes, since they
aren't defined. C-x 1 can't be used with minibuffer windows.
Windows are no longer auto-deleted.
(Window Choice): Add xref to Choosing Window in Lisp manual.
(Window Convenience): Note that windmove disables shift-selection.
Move M-x compare-windows here from Other Window node.
* doc/emacs/custom.texi (Mouse Buttons):
* doc/emacs/search.texi (Isearch Scroll):
* doc/emacs/windows.texi (Split Window): Use new names split-window-below
and split-window-right.
* doc/lispref/windows.texi (Basic Windows): Clarify various definitions.
Treat window-normalize-* as internal; don't document them.
(Windows and Frames): Various clarifications, e.g. non-live
windows also belong to frames. Fix window-list description.
Simplify window nesting example.
(Splitting Windows, Window Configurations): Use
split-window-below.
Chong Yidong [Sun, 6 Nov 2011 03:59:53 +0000 (11:59 +0800)]
Delete window-combination-p; tweaks to window-top-child and window-left-child.
* lisp/window.el (window-combination-p): Function deleted; its
side-effect is not used in any existing code.
(window-combinations, window-combined-p): Call window-*-child
directly.
* window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
(Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
(Fset_window_splits, Fwindow_nest, Fset_window_nest)
(Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
(Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
(Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
(Fwindow_vscroll): Doc fix.
(Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
argument, since it makes no sense to pass a live window and for
consistency with window-child.
Jason Rumney [Sat, 5 Nov 2011 18:50:59 +0000 (02:50 +0800)]
* src/w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
(add_font_entity_to_list): Filter out non-Japanese Shift-JIS
fonts.
(add_font_entity_to_list): Fix logic errors in mixed boolean and
bitwise arithmetic preventing use of unicode-sip and non-truetype
opentype fonts.
Jan Djärv [Sat, 5 Nov 2011 12:25:01 +0000 (13:25 +0100)]
* nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
(unwind_create_frame): New function.
(Fx_create_frame): Restructure code to be more similar to the one in
xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
Move terminal->reference_count++ just before making the frame official
(Bug#9943).
* nsterm.m (x_free_frame_resources): New function.
(x_destroy_window): Move code to x_free_frame_resources.
Jan Djärv [Sat, 5 Nov 2011 12:04:34 +0000 (13:04 +0100)]
* xfns.c (unwind_create_frame): Fix comment.
(Fx_create_frame, x_create_tip_frame): Move
terminal->reference_count++ just before making the frame
official. Move initialization of image_cache_refcount and
dpyinfo_refcount before calling init_frame_faces.
Eli Zaretskii [Sat, 5 Nov 2011 11:34:56 +0000 (13:34 +0200)]
Support MSVC build with newer versions of Visual Studio.
Small portions of the changes by Fabrice Popineau <fabrice.popineau@supelec.fr>.
src/makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
nt/gmake.defs.
src/lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
which are not supported by MSVC.
(Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
(Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
bitfields.
(Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
types in bitfields.
(DEFUN) [_MSC_VER]: Define in a different way for MSVC.
src/w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
src/w32.c: Don't include w32api.h for MSVC.
(init_environment) [_MSC_VER]: Call sys_access, not _access.
src/s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
[_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
(fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
(malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
e_* cousins.
(alloca) [_MSC_VER]: Define to _alloca.
src/lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
src/regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
nt/makefile.w32-in (clean-other-dirs-nmake)
(distclean-other-dirs-nmake, maintainer-clean-other-dirs-nmake):
Update for current structure of doc/ subdirectories.
nt/gmake.defs (OBJ0_c, OBJ1_c, OBJ2_c): New variables.
nt/INSTALL: Update for newer versions of MSVC.
lib/makefile.w32-in (FRC): New dummy target.
(TAGS): Depend on FRC.