Mercurial > hg > xemacs-beta
view man/lispref/mouse.texi @ 5307:c096d8051f89
Have NATNUMP give t for positive bignums; check limits appropriately.
src/ChangeLog addition:
2010-11-20 Aidan Kehoe <kehoea@parhasard.net>
* abbrev.c (Fexpand_abbrev):
* alloc.c:
* alloc.c (Fmake_list):
* alloc.c (Fmake_vector):
* alloc.c (Fmake_bit_vector):
* alloc.c (Fmake_byte_code):
* alloc.c (Fmake_string):
* alloc.c (vars_of_alloc):
* bytecode.c (UNUSED):
* bytecode.c (Fbyte_code):
* chartab.c (decode_char_table_range):
* cmds.c (Fself_insert_command):
* data.c (check_integer_range):
* data.c (Fnatnump):
* data.c (Fnonnegativep):
* data.c (Fstring_to_number):
* elhash.c (hash_table_size_validate):
* elhash.c (decode_hash_table_size):
* eval.c (Fbacktrace_frame):
* event-stream.c (lisp_number_to_milliseconds):
* event-stream.c (Faccept_process_output):
* event-stream.c (Frecent_keys):
* event-stream.c (Fdispatch_event):
* events.c (Fmake_event):
* events.c (Fevent_timestamp):
* events.c (Fevent_timestamp_lessp):
* events.h:
* events.h (struct command_builder):
* file-coding.c (gzip_putprop):
* fns.c:
* fns.c (check_sequence_range):
* fns.c (Frandom):
* fns.c (Fnthcdr):
* fns.c (Flast):
* fns.c (Fnbutlast):
* fns.c (Fbutlast):
* fns.c (Fmember):
* fns.c (Ffill):
* fns.c (Freduce):
* fns.c (replace_string_range_1):
* fns.c (Freplace):
* font-mgr.c (Ffc_pattern_get):
* frame-msw.c (msprinter_set_frame_properties):
* glyphs.c (check_valid_xbm_inline):
* indent.c (Fmove_to_column):
* intl-win32.c (mswindows_multibyte_to_unicode_putprop):
* lisp.h:
* lisp.h (ARRAY_DIMENSION_LIMIT):
* lread.c (decode_mode_1):
* mule-ccl.c (ccl_get_compiled_code):
* number.h:
* process-unix.c (unix_open_multicast_group):
* process.c (Fset_process_window_size):
* profile.c (Fstart_profiling):
* unicode.c (Funicode_to_char):
Change NATNUMP to return 1 for positive bignums; changes uses of
it and of CHECK_NATNUM appropriately, usually by checking for an
integer in an appropriate range.
Add array-dimension-limit and use it in #'make-vector,
#'make-string. Add array-total-size-limit, array-rank-limit while
we're at it, for the sake of any Common Lisp-oriented code that
uses these limits.
Rename check_int_range to check_integer_range, have it take
Lisp_Objects (and thus bignums) instead.
Remove bignum_butlast(), just set int_n to an appropriately large
integer if N is a bignum.
Accept bignums in check_sequence_range(), change the functions
that use check_sequence_range() appropriately.
Move the definition of NATNUMP() to number.h; document why it's a
reasonable name, contradicting an old comment.
tests/ChangeLog addition:
2010-11-20 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
* automated/lisp-tests.el (featurep):
* automated/lisp-tests.el (wrong-type-argument):
* automated/mule-tests.el (featurep):
Check for args-out-of-range errors instead of wrong-type-argument
errors in various places when code is handed a large bignum
instead of a fixnum.
Also check for the wrong-type-argument errors when giving the same
code a non-integer value.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sat, 20 Nov 2010 16:49:11 +0000 |
parents | 576fb035e263 |
children |
line wrap: on
line source
@c -*-texinfo-*- @c This is part of the XEmacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc. @c See the file lispref.texi for copying conditions. @setfilename ../../info/mouse.info @node Mouse @chapter The Mouse @cindex mouse * Mouse Position:: Asking where the mouse is, or moving it. @ignore @c Not in XEmacs. @node Mouse Tracking @section Mouse Tracking @cindex mouse tracking @cindex tracking the mouse (deleted) @end ignore @ignore @c These are not implemented yet. These functions change the screen appearance instantaneously. The effect is transient, only until the next ordinary XEmacs redisplay. That is ok for mouse tracking, since it doesn't make sense for mouse tracking to change the text, and the body of @code{track-mouse} normally reads the events itself and does not do redisplay. @defun x-contour-region window start end This function draws lines to make a box around the text from @var{start} to @var{end}, in window @var{window}. @end defun @defun x-uncontour-region window start end This function erases the lines that would make a box around the text from @var{start} to @var{end}, in window @var{window}. Use it to remove a contour that you previously made by calling @code{x-contour-region}. @end defun @defun x-draw-rectangle frame left top right bottom This function draws a hollow rectangle on frame @var{frame} with the specified edge coordinates, all measured in pixels from the inside top left corner. It uses the cursor color, the one used for indicating the location of point. @end defun @defun x-erase-rectangle frame left top right bottom This function erases a hollow rectangle on frame @var{frame} with the specified edge coordinates, all measured in pixels from the inside top left corner. Erasure means redrawing the text and background that normally belong in the specified rectangle. @end defun @end ignore @node Mouse Position @section Mouse Position @cindex mouse position @cindex position of mouse The functions @code{mouse-position}, @code{mouse-pixel-position}, @code{set-mouse-position} and @code{set-mouse-pixel-position} give access to the current position of the mouse. @defun mouse-position &optional device This function returns a list (@var{window} @var{x} . @var{y}) giving the current mouse window and position. The position is given in character cells, where @samp{(0, 0)} is the upper-left corner. @var{device} specifies the device on which to read the mouse position, and defaults to the selected device. If the device is a mouseless terminal or XEmacs hasn't been programmed to read its mouse position, it returns the device's selected window for @var{window} and @code{nil} for @var{x} and @var{y}. @end defun @defun mouse-pixel-position &optional device This function returns a list (@var{window} @var{x} . @var{y}) giving the current mouse window and position. The position is given in pixel units, where @samp{(0, 0)} is the upper-left corner. @var{device} specifies the device on which to read the mouse position, and defaults to the selected device. If the device is a mouseless terminal or XEmacs hasn't been programmed to read its mouse position, it returns the device's selected window for @var{window} and @code{nil} for @var{x} and @var{y}. @end defun @defun set-mouse-position window x y This function @dfn{warps the mouse} to the center of character position @var{x}, @var{y} in frame @var{window}. The arguments @var{x} and @var{y} are integers, giving the position in characters relative to the top left corner of @var{window}. @cindex warping the mouse @cindex mouse warping Warping the mouse means changing the screen position of the mouse as if the user had moved the physical mouse---thus simulating the effect of actual mouse motion. @end defun @defun set-mouse-pixel-position window x y This function @dfn{warps the mouse} to pixel position @var{x}, @var{y} in frame @var{window}. The arguments @var{x} and @var{y} are integers, giving the position in pixels relative to the top left corner of @var{window}. @end defun