Paul Eggert [Sun, 20 Nov 2011 03:19:22 +0000 (19:19 -0800)]
Standardize on VIRT_ADDR_VARIES behavior.
Otherwise, valgrind does not work on some platforms.
Problem reported by Andreas Schwab in
<http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
* puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
is set, removing the need for VIRT_ADDRESS_VARIES.
(PURE_P): Use a more-efficient implementation that needs just one
comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
to 4 (xorl, subq, cmpq, setbe).
* alloc.c (pure): Always extern now, since that's the
VIRT_ADDR_VARIES behavior.
(PURE_POINTER_P): Use a single comparison, not two, for
consistency with the new puresize.h.
* lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
* m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
Remove VIRT_ADDR_VARIES no longer needed.
Glenn Morris [Sun, 20 Nov 2011 02:23:48 +0000 (18:23 -0800)]
Small rmail fixes.
* lisp/mail/rmail.el (rmail-enable-mime-composing): Make it a defcustom.
(rmail-insert-mime-forwarded-message-function, rmail-mime-feature):
Doc fixes.
(rmail-decode-mime-charset): Mark as obsolete.
* lisp/mail/rmailsum.el (rmail-message-regexp-p-1):
* lisp/mail/rmail.el (rmail-search-message, rmail-forward, rmail-resend):
Before using mime functions, check they are set.
Juri Linkov [Sat, 19 Nov 2011 23:34:40 +0000 (01:34 +0200)]
* lisp/info.el (Info-finder-find-node): Use `package--builtins' instead
of `package-alist'. Use node names formed by the pattern "Keyword "
and the keyword name.
Juri Linkov [Sat, 19 Nov 2011 21:43:40 +0000 (23:43 +0200)]
Don't kill the *info* buffer in `Info-revert-find-node'.
Add `revert-buffer' to defcustom `Info-hide-node-references'.
* lisp/info.el (Info-hide-note-references): Add `:set' tag to `defcustom'
that calls `revert-buffer' on all Info buffers.
(Info-revert-find-node): Remove let-bindings `old-buffer-name',
`old-history', `old-history-forward'. Add let-binding
`window-selected'. Remove calls to `kill-buffer',
`switch-to-buffer' and `Info-mode'. Set `Info-current-file' to nil
before calling `Info-find-node', so `Info-find-node-2' will reread
the Info file. Restore window positions only when `window-selected'
is non-nil.
* lisp/misearch.el (multi-isearch-search-fun): Add condition
`(not bound)' to ignore lazy-highlighting search.
Add the search-failed message "end of multi" when the end of
multi-sequence is reached. Uncapitalize the search-failed
message "Repeat for next buffer".
* lisp/info.el (Info-search): Add the search-failed message
"end of the manual" when the end of the manual is reached
in Isearch mode.
Juri Linkov [Sat, 19 Nov 2011 20:14:56 +0000 (22:14 +0200)]
Replace `delete' with `remove' in info.el.
* lisp/info.el (Info-find-node-2, Info-select-node, Info-history-find-node):
Use non-destructive `remove' instead of `delete' because
`Info-history-list' stored to `Info-isearch-initial-history-list' in
`Info-isearch-start' might need to be restored in `Info-isearch-end'.
Eli Zaretskii [Sat, 19 Nov 2011 19:49:56 +0000 (21:49 +0200)]
Fix bug #10076 with vertical cursor motion in hscrolled windows.
lisp/simple.el (line-move): Force movement by logical lines for any
hscrolled window, not only when auto-hscroll-mode is on.
(line-move-visual): Update doc string to that effect.
Eli Zaretskii [Sat, 19 Nov 2011 15:50:23 +0000 (17:50 +0200)]
Fix bug #10075 with cursor drawing in an hscrolled window.
src/xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
(erase_phys_cursor, update_window_cursor, show_mouse_face)
(cursor_in_mouse_face_p): If the cursor position is out of bounds,
behave as if the cursor position were at the window margin.
src/window.c (get_phys_cursor_glyph): If the window is hscrolled,
and the cursor position is out of bounds, behave as if the cursor
position were at the window margin.
Eli Zaretskii [Sat, 19 Nov 2011 11:49:54 +0000 (13:49 +0200)]
Fix bug #9520 with MIME display toggling.
lisp/mail/rmailmm.el (rmail-mime-display-header)
(rmail-mime-display-tagline, rmail-mime-display-body): New defsubsts.
(rmail-mime-entity-segment, rmail-mime-toggle-raw)
(rmail-mime-toggle-hidden, rmail-mime-insert-text)
(rmail-mime-insert-bulk, rmail-mime-insert-multipart)
(rmail-mime-insert, rmail-mime-insert-tagline): Use them instead
of a raw aref.
(rmail-mime-entity-segment): To get past the tagline, move forward
2 more lines, to account for the 2 empty lines that precede and
follow the line with the buttons.
(rmail-mime-update-tagline): Move one more line, to get past the
empty line that follows the buttons in the tagline.
Stefan Monnier [Fri, 18 Nov 2011 16:30:43 +0000 (11:30 -0500)]
* lisp/emacs-lisp/smie.el: Improve warnings and conflict detection.
(smie-warning-count): New var.
(smie-set-prec2tab): Use it.
(smie-bnf->prec2): Improve warnings. Add docstring.
(smie-bnf--closer-alist): Rename from smie-bnf-closer-alist.
(smie-bnf--set-class): New function.
(smie-bnf--classify): Rename from smie-bnf-classify. Rewrite to fix
corner case.
Stefan Monnier [Fri, 18 Nov 2011 15:09:42 +0000 (10:09 -0500)]
* lisp/progmodes/compile.el: Obey compilation-first-column in dest buffer.
(compilation-error-properties, compilation-move-to-column):
Handle compilation-first-column while in the target buffer.
Eli Zaretskii [Fri, 18 Nov 2011 12:21:42 +0000 (14:21 +0200)]
Fix another crash due to incorrect hash value of glyph rows, bug #10035.
src/dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
hash values of the two rows.
(copy_row_except_pointers): Preserve the used[] arrays and the
hash values of the two rows.
src/xdisp.c (row_hash): New function, body extracted from
compute_line_metrics.
(compute_line_metrics): Call row_hash, instead of computing the
hash code inline.
src/dispnew.c (verify_row_hash): Call row_hash for computing the
hash code of a row, instead of duplicating code from xdisp.c.
src/dispextern.h (row_hash): Add prototype.
Martin Rudalics [Thu, 17 Nov 2011 10:27:56 +0000 (11:27 +0100)]
Rename window-splits to window-combination-resize.
* window.c (Vwindow_splits): Rename to
Vwindow_combination_resize. Suggested by Juri Linkov.
(Fsplit_window_internal): Use Vwindow_combination_resize instead
of Vwindow_splits.
* window.el (window-resize, delete-window, split-window):
Replace window-splits by window-combination-resize.
* cus-start.el (window-splits): Replace by
window-combination-resize.
* windows.texi (Resizing Windows, Splitting Windows)
(Deleting Windows): Use term window-combination-resize instead
of window-splits.
Ken Manheimer [Wed, 16 Nov 2011 16:47:28 +0000 (11:47 -0500)]
* python.el (python-pdbtrack-stack-entry-regexp)
(python-pdbtrack-input-prompt, python-pdbtrack-track-stack-file):
Adjust to recognize ipdb as well as regular python pdb prompts.
Adjustments shamelessly taken exactly as suggested in EmacsWiki
page: http://www.emacswiki.org/PythonProgrammingInEmacs#toc14
* allout-widgets.el: (file metadata): Attribute copyright to FSF
and collapse date sequence, obscure author/maintainer email
address better, remove extra version line, track relocation of
author's allout webpage.
* allout.el: (file metadata): Attribute copyright to FSF
and collapse date sequence, obscure author/maintainer email
address better, track relocation of author's allout webpage.
Ken Manheimer [Wed, 16 Nov 2011 16:37:48 +0000 (11:37 -0500)]
* python.el (python-pdbtrack-stack-entry-regexp)
(python-pdbtrack-input-prompt, python-pdbtrack-track-stack-file):
Adjust to recognize ipdb as well as regular python pdb prompts.
Adjustments shamelessly taken exactly as suggested in EmacsWiki
page: http://www.emacswiki.org/PythonProgrammingInEmacs#toc14
Stefan Monnier [Wed, 16 Nov 2011 02:26:00 +0000 (21:26 -0500)]
* lisp/tmm.el (tmm-prompt): Use minibuffer-with-setup-hook.
`completing-read' will remove *Completions* and will preserve
current-buffer for us.
(tmm-add-prompt): Users of *Completions* will always (re)set its
major mode.
(tmm-old-comp-map): Remove.
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.