view src/puresize.h @ 4871:30a614eb52f7

(shell-after-partial-filename): Renamed from shell-after-partial-pathname. Commented out shell-load-hooks. (shell-after-partial-pathname): New subroutine. Renamed shell-command-execonly to shell-completion-execonly for consistency. (shell-read-input-ring, shell-input-ring-file-name): Moved to, and renamed in, comint.el. (shell-dynamic-complete-command): Make sure local completion-ignore-case is nil. (shell-mode): Set buffer-local variable paragraph-start to comint-prompt-regexp so paragraph motion/mark commands work on output groups. Set comint-after-partial-pathname to it. (shell-read-input-ring): Use find-file-noselect. (shell-match-cmd-w/optional-arg): Removed. (shell-delimiter-argument-list): New variable. (shell-input-ring-file-name): New variable. (shell-mode-map): Changed file name completions listing binding to new name comint-dynamic-list-filename-completions. (shell-mode): Call new function shell-read-input-ring and shell-dirstack on start up. Doc fix for new functionality. (shell-mode): Set shell-input-ring-file-name depending on the command that was invoked for the inferior shell. Set comint-delimiter-argument-list to shell-delimiter-argument-list. (shell-read-input-ring): New function. (shell-directory-tracker): Use comint-arguments. (shell-front-match): Removed. (shell-match-cmd-w/optional-arg): Removed. (shell-process-popd): Fixed bug when numeric argument equal to length of stack including current directory. (shell-process-pushd): Fixed missing ()s in cond. (shell-dynamic-complete-command): Uses exec-path minus trailing emacs library path. Uses "." for nil elements in exec-path. Uses string-match rather than funcall to test candidate extensions. Uses member on completions list rather than file-exists-p to test for existence. Uses file-directory-p rather than funcall to test for directory. Uses directories only if in current directory. Uses comint-dynamic-list-completions. (shell-command-regexp, shell-command-execonly) (shell-pushd-tohome, shell-pushd-dextract) (shell-pushd-dunique): New variables. (shell-mode-map): Bound shell-forward/backward-command to C-c C-f and C-c C-b. (shell-mode): Set comint variables for which shells have different values: comint-get-current-command, comint-dynamic-complete-command. (shell-directory-tracker): Parse through command sequences for directory commands. (shell-process-popd): Signal error if can't process argument/stack. Fixed bug when no argument and no stack. (shell-process-cd): Signal error if can't process argument. (shell-process-pushd): Signal error if can't process argument/stack. Handle shell-pushd-tohome, shell-pushd-dextract, and shell-pushd-dunique. (shell-forward-command, shell-backward-command) (shell-dynamic-complete-command): New commands.
author Richard M. Stallman <rms@gnu.org>
date Fri, 22 Oct 1993 02:53:24 +0000
parents 409e4e3dcd4e
children b7172feaf0b9
line wrap: on
line source

/* How much read-only Lisp storage a dumped Emacs needs.
   Copyright (C) 1993 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 1, 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.  */

/* # bytes of pure Lisp code to leave space for.

   At one point, this was defined in config.h, meaning that changing
   PURESIZE would make Make recompile all of Emacs.  But only a few
   files actually use PURESIZE, so we split it out to its own .h file.

   Make sure to include this file after config.h, since that tells us
   whether we are running X windows, which tells us how much pure
   storage to allocate.  */

#ifndef PURESIZE
#ifdef MULTI_FRAME
#define PURESIZE 220000
#else
#define PURESIZE 190000
#endif
#endif

#ifdef VIRT_ADDR_VARIES

/* For machines like APOLLO where text and data can go anywhere
   in virtual memory.  */
#define CHECK_IMPURE(obj) \
  { extern int pure[]; \
    if ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) ((char *) pure + PURESIZE) \
	&& (PNTR_COMPARISON_TYPE) XPNTR (obj) >= (PNTR_COMPARISON_TYPE) pure) \
      pure_write_error (); }

#else /* not VIRT_ADDR_VARIES */
#ifdef PNTR_COMPARISON_TYPE

/* when PNTR_COMPARISON_TYPE is not the default (unsigned int) */
#define CHECK_IMPURE(obj) \
  { extern int my_edata; \
    if ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) &my_edata) \
      pure_write_error (); }

#else /* not VIRT_ADDRESS_VARIES, not PNTR_COMPARISON_TYPE */

#define CHECK_IMPURE(obj) \
  { extern int my_edata; \
    if (XPNTR (obj) < (unsigned int) &my_edata) \
      pure_write_error (); }

#endif /* PNTR_COMPARISON_TYPE */
#endif /* VIRT_ADDRESS_VARIES */