view man/lispref/range-tables.texi @ 930:eaedf30d9d76

[xemacs-hg @ 2002-07-23 08:34:59 by youngs] 2002-07-15 Jerry James <james@xemacs.org> * make-docfile.c: Change whitespace and organization to reduce the size of the diff against FSF Emacs sources and synch to Emacs 21.2. Remove unused DO_REALLOC. Mark XEmacs changes and additions more clearly. Reintroduce previously deleted Emacs code inside #if 0 ... #endif. * make-docfile.c (next_extra_elc): Replace goto with do-while. * make-docfile.c (main): Put XEmacs-only args in one place. * make-docfile.c (write_c_args): Change buff to buf to match Emacs. Replace pointer arithmetic with simpler array syntax. * make-docfile.c (scan_c_file): Note that DEFSIMPLE and DEFPRED no longer exist. Correct the "name too long" test (off by one). Die with message if a DEFUN has no docstring instead of hanging. * make-docfile.c (scan_lisp_file): Introduce while loops used in Emacs sources to skip consecutive blank lines. 2002-07-21 John Paul Wallington <jpw@xemacs.org> * process.el (substitute-env-vars): New function; sync with GNU Emacs 21.1.50. (setenv): Add optional arg SUBSTITUTE-ENV-VARS; sync with GNU Emacs 21.1.50. 2002-07-20 Mike Sperber <mike@xemacs.org> * eval.c (run_post_gc_hook): Use more correct flags when running post-gc-hook. 2002-07-20 Mike Sperber <mike@xemacs.org> * process-unix.c (child_setup): Don't try to close file descriptors for chid process once again---it's already being done in close_process_descs. (unix_create_process): Call begin_dont_check_for_quit to inhibit unwanted interaction (and thus breaking of X event synchronicity) in the child. 2002-07-15 Jerry James <james@xemacs.org> * lisp.h: Make Qdll_error visible globally. * symbols.c (check_sane_subr): Revert 2002-06-26 change. Check only if !initialized. * symbols.c (check_module_subr): Add parameter. Duplicate check_sane_subr checks, but signal an error instead of asserting. * symbols.c (defsubr): Use check_module_subr parameter. * symbols.c (defsubr_macro): Ditto.
author youngs
date Tue, 23 Jul 2002 08:35:11 +0000
parents 576fb035e263
children ab71ad6ff3dd
line wrap: on
line source

@c -*-texinfo-*-
@c This is part of the XEmacs Lisp Reference Manual.
@c Copyright (C) 1996 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/range-tables.info
@node Range Tables, Databases, Hash Tables, top
@chapter Range Tables
@cindex Range Tables

A range table is a table that efficiently associated values with
ranges of integers.

Note that range tables have a read syntax, like this:

@example
#s(range-table data ((-3 2) foo (5 20) bar))
@end example

This maps integers in the range (-3, 2) to @code{foo} and integers
in the range (5, 20) to @code{bar}.

@defun range-table-p object
Return non-@code{nil} if @var{object} is a range table.
@end defun

@menu
* Introduction to Range Tables:: Range tables efficiently map ranges of
                                 integers to values.
* Working With Range Tables::    Range table functions.
@end menu

@node Introduction to Range Tables
@section Introduction to Range Tables

@defun make-range-table
Make a new, empty range table.
@end defun

@defun copy-range-table range-table
This function returns a new range table which contains the same values
for the same ranges as @var{range-table}.  The values will not
themselves be copied.
@end defun

@node Working With Range Tables
@section Working With Range Tables

@defun get-range-table pos range-table &optional default
This function finds value for position @var{pos} in @var{range-table}.
If there is no corresponding value, return @var{default} (defaults to
@code{nil}).
@end defun

@defun put-range-table start end value range-table
This function sets the value for range (@var{start}, @var{end}) to be
@var{value} in @var{range-table}.
@end defun

@defun remove-range-table start end range-table
This function removes the value for range (@var{start}, @var{end}) in
@var{range-table}.
@end defun

@defun clear-range-table range-table
This function flushes @var{range-table}.
@end defun

@defun map-range-table function range-table
This function maps @var{function} over entries in @var{range-table},
calling it with three args, the beginning and end of the range and the
corresponding value.
@end defun