Kim F. Storm [Fri, 15 Sep 2006 21:04:39 +0000 (21:04 +0000)]
(line-move-partial): Use window-line-visiblity to
quickly check whether last line is partially visible, and only do
the hard (and slow) part in that case.
Kim F. Storm [Fri, 15 Sep 2006 21:04:28 +0000 (21:04 +0000)]
(Fwindow_line_visibility): New defun for line-move-partial.
(syms_of_window): Defsubr it.
(Fwindow_end): Use window's buffer rather than current buffer.
David Kastrup [Fri, 15 Sep 2006 08:53:18 +0000 (08:53 +0000)]
* mouse-sel.el (mouse-sel-follow-link-p): Use event position
instead of buffer position for `mouse-on-link-p'.
* mouse.el (mouse-posn-property): New function looking up the
properties at a click position in overlays and text properties in
either buffer or strings.
(mouse-on-link-p): Use `mouse-posn-property' to streamline lookup
of both `follow-link' as well as `mouse-face' properties.
(mouse-drag-track): Check `mouse-on-link-p' on event position, not
buffer position.
* help.el (describe-key-briefly): When reading a down-event on
mode lines or scroll bar, swallow the following up event, too.
Use the new mouse sensitity of `key-binding' for lookup.
(describe-key): The same here.
David Kastrup [Fri, 15 Sep 2006 07:19:15 +0000 (07:19 +0000)]
* NEWS: explain new behavior and arguments of `key-binding' and
`command-remapping'.
* keymaps.texi (Active Keymaps): Adapt description to use
`get-char-property' instead `get-text-property'. Explain how
mouse events change this. Explain the new optional argument of
`key-binding' and its mouse-dependent lookup.
(Searching Keymaps): Adapt description similarly. Explain the new
optional argument of `command-remapping'.
* Makefile.in (keymap.o): Add "keymap.h" and "window.h"
dependencies.
* keymap.c: include "window.h".
(Fcommand_remapping): New optional POSITION argument.
(Fkey_binding): New optional POSITION argument. Completely rework
handling of mouse clicks to get the same order of keymaps as
`read-key-sequence' and heed POSITION. Also temporarily switch
buffers to location of mouse click and back.
* keyboard.c (command_loop_1): Adjust call of `Fcommand_remapping'
for additional argument.
(parse_menu_item): Adjust call of `Fkey_binding' for additional
argument.
(read_key_sequence): If there are both `local-map' and `keymap'
text properties at some buffer position, heed both.
* keymap.h: Declare additional optional arguments of
`Fcommand_remapping' and `Fkey_binding'.
(fancy-splash-text): Change text to improve alignment.
(fancy-splash-screens): Don't set non-standard tab width.
Bind cursor-type temporarily, and make it easy to patch to
preserve the splash buffer.
(normal-splash-screen, fancy-splash-tail): Spell out "Meta-x".
(fancy-splash-screens): Display echo-area message explicitly.
Don't set fancy-splash-help-echo.
* allout.el (allout-regexp, allout-line-boundary-regexp)
(allout-bob-regexp): Correct grouping and boundaries to fix
backwards traversal.
(allout-depth-specific-regexp, allout-depth-one-regexp): New
versions that exploit \\{M\\} regexp syntax, to avoid geometric or
worse time in allout-ascend.
(allout-doublecheck-at-and-shallower): Identify depth threshold
below which topics are checked for and disqualified by containment
discontinuities.
(allout-hotspot-key-handler): Correctly handle multiple-key
strokes. Remove some unused variables.
(allout-mode-leaders): Clarify that mode-specific comment-start
will be used
(set-allout-regexp): Correctly regexp-quote allout regexps to
properly accept alternative header-leads and primary bullets with
regexp-specific characters (eg, C "/*", mathematica "(*").
Include new regular expressions among those configured.
(allout-infer-header-lead-and-primary-bullet): Rename
allout-infer-header-lead.
(allout-recent-depth): Manifest as a variable as well as a function.
(allout-prefix-data): Simplify into an inline instead of a macro,
assuming current match data rather than being explicitly passed it.
Establish allout-recent-depth value as well as
allout-recent-prefix-beginning and allout-recent-prefix-end.
(allout-aberrant-container-p): True when an item's immediate
offspring discontinuously contained. Useful for disqualifying
unintended topic prefixes, likely at low depths.
(allout-goto-prefix-doublechecked): Elaborated version of
allout-goto-prefix which disqualifies aberrant pseudo-items.
(allout-end-of-prefix, allout-pre-next-prefix)
(allout-end-of-subtree): Disqualify aberrant containers.
(allout-beginning-of-current-entry): Position at start of buffer
when in container (depth 0) entry.
(nullify-allout-prefix-data): Invalidate allout-recent-* prefix data.
(allout-current-bullet): Strip text properties.
(allout-get-prefix-bullet): Use right match groups.
(allout-beginning-of-line, allout-next-heading): Disqualify
aberrant containers.
(allout-previous-heading): Disqualify aberrant containers.
(allout-get-invisibility-overlay): Increment so progress is made
when the first overlay is not the sought one.
(allout-end-of-prefix): Disqualify aberrant containers.
(allout-end-of-line): Cycle something like allout-beginning-of-line.
(allout-mode): Make allout-old-style-prefixes (ie, enabling use with
outline.el outlines) functional again. Change the primary bullet
along with the header-lead - level 1 new-style bullets now work.
Engage allout-before-change-handler in mainline emacs, not just
xemacs, to do undo handling.
(allout-before-change-handler): Expose undo changes occurring in
hidden regions. Use allout-get-invisibility-overlay instead of
reimplementing it inline.
(allout-chart-subtree): Use start rather than end of prefix in
charts. Use allout-recent-depth variable.
(allout-chart-siblings): Disqualify aberrant topics.
(allout-beginning-of-current-entry): Position correctly.
(allout-ascend): Use new allout-depth-specific-regexp and
allout-depth-one-regexp for linear instead of O(N^2) or worse behavior.
(allout-ascend-to-depth, allout-up-current-level): Depend on
allout-ascend, rather than reimplementing an algorithm.
(allout-descend-to-depth): Use allout-recent-depth var instead of fun.
(allout-next-sibling): On traversal of numerous intervening
topics, resort to economical allout-next-sibling-leap.
(allout-next-sibling-leap): Specialized version of
allout-next-sibling that uses allout-ascend cleverly, to depend on
a regexp search to leap large numbers of contained topics, rather
than arbitrarily many one-by-one traversals.
(allout-next-visible-heading): Disqualify aberrant topics.
(allout-previous-visible-heading): Position consistently when interactive.
(allout-forward-current-level): Base on allout-previous-sibling
rather than reimplmenting the algorithm. Remove unused vars.
(allout-solicit-alternate-bullet): Present default choice stripped
of text properties.
(allout-rebullet-heading): Use bullet stripped of text properties.
Register changes using allout-exposure-change-hook. Disregard
aberrant topics.
(allout-shift-in): With universal-argument, make topic a peer of
it's former offspring. Simplify the code by separating out
allout-shift-out functionality.
(allout-shift-out): With universal-argument, make offspring peers
of their former container, and its siblings. Implement the
functionality here, rather than inappropriately muddling the
implementation of allout-shift-in.
(allout-rebullet-topic): Respect additional argument for new
parent-child separation function.
(allout-yank-processing): Use allout-ascend directly.
(allout-show-entry): Disqualify aberrant topics.
(allout-show-children): Handle discontinuous children gracefully,
extending the depth being revealed to expose them and posting a
message indicating the situation.
(allout-show-to-offshoot): Remove obsolete and incorrect comment.
Leave cursor in correct position.
(allout-hide-current-subtree): Use allout-ascend directly.
Disqualify aberrant topics.
(allout-kill-line, allout-kill-topic): Preserve exposure layout in
a way that the yanks can restore it, as used to happen.
(allout-yank-processing): Restore exposure layout as recorded by
allout-kill-*, as used to happen.
(allout-annotate-hidden, allout-hide-by-annotation): New routines
for preseving and restoring exposure layout across kills.
(allout-toggle-subtree-encryption): Run allout-exposure-change-hook.
(allout-encrypt-string): Strip text properties.
Rearranged order and outline-headings for some of the
miscellaneous functions.
(allout-resolve-xref): No need to quote the error name in the
condition-case handler section.
(allout-flatten): Classic recursive (and recursively intensive,
without tail-recursion) list-flattener, needed by allout-shift-out
when confronted with discontinuous children.
Kim F. Storm [Thu, 14 Sep 2006 09:37:44 +0000 (09:37 +0000)]
(produce_image_glyph): Automatically crop wide images at
right window edge so we can draw the cursor on the same row to
avoid confusing redisplay by placing the cursor outside the visible
window area.
(flyspell-word, flyspell-correct-word)
(flyspell-auto-correct-word): Make ispell-filter local to these functions.
Check that ispell-filter has new stuff before calling ispell-parse-output.
* xterm.c (x_initialize): Don't install Xt event timer here.
(x_timeout_atimer_activated_flag): New var.
(x_activate_timeout_atimer): New function to install Xt timer.
(x_send_scroll_bar_event, x_process_timeouts): Use it.
* xmenu.c (x_menu_set_in_use, popup_activate_callback)
(create_and_show_popup_menu, create_and_show_dialog): Use it.
(read_char): If end_time specified, don't put the
event into this_command_keys.
(read_key_sequence): If Voverriding_terminal_local_map is specified,
don't check Voverriding_local_map at all.
* net/rcirc.el (rcirc-scroll-show-maximum-output): Rename from
rcirc-show-maximum-output.
(rcirc-mode): Remove window-scroll-function hook.
(rcirc-scroll-to-bottom): Remove function.
(rcirc-print): Recenter so point stays at the bottom of the window
if point was already there.
* textprop.c (Fnext_property_change, Fnext_single_property_change)
(Fprevious_property_change, Fprevious_single_property_change):
Avoid changing limit, so we can correctly catch the case where the
property is constant up to limit.
Paul Eggert [Tue, 12 Sep 2006 16:43:25 +0000 (16:43 +0000)]
* etc/NEWS: In terminal-oriented subshells, the EMACS environment
variable now defaults to Emacs's absolute file name, instead of
to "t".
* etc/PROBLEMS: Adjust tcsh advice for this.
* make-dist (EMACS): Exit and fail if the EMACS environment
variable is set to something other than an absolute file name.
* lisp/comint.el (comint-exec-1): Set EMACS to the full name of Emacs,
not to "t".
* lisp/progmodes/compile.el (compilation-start): Likewise.
* lisp/progmodes/idlwave.el (idlwave-rescan-asynchronously):
Don't use expand-file-name on invocation-directory, since this
might mishandle special characters in invocation-directory.
* man/faq.texi (Escape sequences in shell output): EMACS is now set
to Emacs's absolute file name, not to "t".
(^M in the shell buffer): Likewise.
* man/misc.texi (Interactive Shell): Likewise.
Kim F. Storm [Mon, 11 Sep 2006 22:21:55 +0000 (22:21 +0000)]
(sit-for): Rework to use input-pending-p and cond.
Return nil input is pending on entry also for SECONDS <= 0.
(while-no-input): Use input-pending-p instead of sit-for.
Miles Bader [Mon, 11 Sep 2006 14:45:20 +0000 (14:45 +0000)]
Merge from gnus--rel--5.10
Patches applied:
* gnus--rel--5.10 (patch 136)
- Update from CVS
2006-09-09 Reiner Steib <Reiner.Steib@gmx.de>
* lisp/gnus/pop3.el (pop3-leave-mail-on-server): Mention problem of duplicate
mails in the doc string. Add some URLs in comment.
2006-09-07 Katsumi Yamaoka <yamaoka@jpl.org>
* lisp/gnus/rfc2047.el (rfc2047-quote-special-characters-in-quoted-strings): Fix
backslashes handling and the way to find boundaries of quoted strings.
2006-09-09 Reiner Steib <Reiner.Steib@gmx.de>
* man/gnus.texi (Mail Source Specifiers): Mention problem of duplicate
mails with pop3-leave-mail-on-server. Fix wording.
David Kastrup [Mon, 11 Sep 2006 09:47:43 +0000 (09:47 +0000)]
* help.el (string-key-binding, describe-key-briefly)
(describe-key): Remove `string-key-binding' and its callers since
`key-binding' already caters for the proper lookup now.
(string-key-binding, describe-key-briefly)
(describe-key): Remove `string-key-binding' and its callers since
`key-binding' already caters for the proper lookup now.