Mercurial > emacs
view src/s/bsd4-2.h @ 5415:95882472f2da
(rotate_right, rotate_left): Simplify
total_length calculation. Minimize pointer dereferencing.
(balance_an_interval): Remove recursive rebalancing.
Rebalance precisely when imbalanced. If a rotation is done,
rebalance only the node which may have become unbalanced.
Iterate until the current node is balanced.
(balance_possible_root_interval): New function.
(balance_intervals): Move the interation into rebalance_an_interval.
(balance_intervals_internal): New subroutine of balance_intervals.
(split_interval_right, split_interval_left): Speed up by
not checking LEAF_INTERVAL_P.
(split_interval_right, split_interval_left, find_interval,
adjust_intervals_for_insertion, graft_intervals_into_buffer):
Add dynamic rebalancing anywhere a node may become unbalanced.
(graft_intervals_into_buffer, copy_intervals): No longer
any need to do a full rebalance as the tree stays balanced.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 02 Jan 1994 19:01:15 +0000 |
parents | 6e6fd9ff650f |
children | cef67aeae92b |
line wrap: on
line source
/* Definitions file for GNU Emacs running on bsd 4.2 Copyright (C) 1985, 1986 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * Define symbols to identify the version of Unix this is. * Define all the symbols that apply correctly. */ #ifndef BSD4_2 #define BSD4_2 #endif /* BSD4_2 */ #ifndef BSD #define BSD #endif /* BSD */ /* SYSTEM_TYPE should indicate the kind of system you are using. It sets the Lisp variable system-type. */ #define SYSTEM_TYPE "berkeley-unix" /* nomultiplejobs should be defined if your system's shell does not have "job control" (the ability to stop a program, run some other program, then continue the first one). */ /* #define NOMULTIPLEJOBS */ /* Default is to set interrupt_input to 1: do input buffering within Emacs */ #define INTERRUPT_INPUT /* First pty name is /dev/ptyp0. */ #define FIRST_PTY_LETTER 'p' /* * Define HAVE_TIMEVAL if the system supports the BSD style clock values. * Look in <sys/time.h> for a timeval structure. */ #define HAVE_TIMEVAL /* * Define HAVE_SELECT if the system supports the `select' system call. */ #define HAVE_SELECT /* * Define HAVE_PTYS if the system supports pty devices. */ #define HAVE_PTYS /* Define this macro if system defines a type `union wait'. */ #define HAVE_UNION_WAIT /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ #define HAVE_SOCKETS /* * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate * The 4.2 opendir, etc., library functions. */ /* #define NONSYSTEM_DIR_LIBRARY */ /* Define this symbol if your system has the functions bcopy, etc. */ #define BSTRING /* subprocesses should be defined if you want to have code for asynchronous subprocesses (as used in M-x compile and M-x shell). This is generally OS dependent, and not supported under most USG systems. */ #define subprocesses /* If your system uses COFF (Common Object File Format) then define the preprocessor symbol "COFF". */ /* #define COFF */ /* define MAIL_USE_FLOCK if the mailer uses flock to interlock access to /usr/spool/mail/$USER. The alternative is that a lock file named /usr/spool/mail/$USER.lock. */ /* #define MAIL_USE_FLOCK */ /* Define CLASH_DETECTION if you want lock files to be written so that Emacs can tell instantly when you try to modify a file that someone else has modified in his Emacs. */ #define CLASH_DETECTION /* We use the Berkeley (and usg5.2.2) interface to nlist. */ #define NLIST_STRUCT /* The file containing the kernel's symbol table is called /vmunix. */ #define KERNEL_FILE "/vmunix" /* The symbol in the kernel where the load average is found is named _avenrun. */ #define LDAV_SYMBOL "_avenrun" /* Send signals to subprocesses by "typing" special chars at them. */ #define SIGNALS_VIA_CHARACTERS /* We do have vfork. */ #define HAVE_VFORK