1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-01 11:14:55 +00:00
This commit is contained in:
Dave Love 1999-10-01 11:44:30 +00:00
parent a08cb76c5a
commit 33682909de
6 changed files with 410 additions and 0 deletions

15
src/.dbxinit Normal file
View File

@ -0,0 +1,15 @@
ignore 14
catch 18
ignore 20
ignore 23
alias s step
alias n next
alias c cont
alias st status
alias r run
alias l list
alias f file
alias q quit
alias w where
alias d delete
alias p print

31
src/README Normal file
View File

@ -0,0 +1,31 @@
This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs (on Unix systems) or the Emacs
executable and map files (on VMS systems) are copied elsewhere.
See the files ../README and then ../INSTALL for installation instructions.
Under GNU and Unix systems, the file `Makefile.in' is used as a
template by the script `../configure' to produce `Makefile.c'. The
same script then uses `cpp' to produce the machine-dependent
`Makefile' from `Makefile.c'; `Makefile' is the file which actually
controls the compilation of Emacs. Most of this should work
transparently to the user; you should only need to run `../configure',
and then type `make'.
See the file VMSBUILD in this directory for instructions on compiling,
linking and building Emacs on VMS.
The files `*.com' and `temacs.opt' are used on VMS only.
The files `vlimit.h', `ioclt.h' and `param.h' are stubs to
allow compilation on VMS with the minimum amount of #ifdefs.
`uaf.h' contains VMS uaf structure definitions. This is only needed if
you define READ_SYSUAF. This should only be done for single-user
systems where you are not overly concerned with security, since it
either requires that you install Emacs with SYSPRV or make SYSUAF.DAT
world readable. Otherwise, Emacs can determine information about the
current user, but no one else.
`pwd.h' contains definitions for VMS to be able to correctly simulate
`getpwdnam' and `getpwduid'.

38
src/cxux-crt0.s Normal file
View File

@ -0,0 +1,38 @@
/*
* External symbol setup file for GNU Emacs on CX/UX
* Copyright (C) 1990 Free Software Foundation, Inc.
*
* This file is part of GNU Emacs.
*
* GNU Emacs is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY. No author or distributor
* accepts responsibility to anyone for the consequences of using it
* or for whether it serves any particular purpose or works at all,
* unless he says so in writing. Refer to the GNU Emacs General Public
* License for full details.
*
* Everyone is granted permission to copy, modify and redistribute
* GNU Emacs, but only under the conditions described in the
* GNU Emacs General Public License. A copy of this license is
* supposed to have been given to you along with GNU Emacs so you
* can know your rights and responsibilities. It should be in a
* file named COPYING. Among other things, the copyright notice
* and this notice must be preserved on all copies.
*/
/*
* This file makes the start of the text and data regions of the program
* clearly visible to the GNU Emacs C source code, without any dependencies
* on any changes made to the standard C runtime startup module, crt0.o.
* It depends, however, on this file being passed down to the linker (ld)
* before any others, and the linker's behavior of assigning increasing
* addresses as it finds symbols.
*/
/* C symbol _start marks beginning of text region. */
.text
.globl __start
__start:
/* C symbol data_start marks beginning of data region. */
.data
.globl _data_start
_data_start: .space 4

256
src/filemode.c Normal file
View File

@ -0,0 +1,256 @@
/* filemode.c -- make a string describing file modes
Copyright (C) 1985, 1990, 1993 Free Software Foundation, Inc.
This program 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.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#if !S_IRUSR
# if S_IREAD
# define S_IRUSR S_IREAD
# else
# define S_IRUSR 00400
# endif
#endif
#if !S_IWUSR
# if S_IWRITE
# define S_IWUSR S_IWRITE
# else
# define S_IWUSR 00200
# endif
#endif
#if !S_IXUSR
# if S_IEXEC
# define S_IXUSR S_IEXEC
# else
# define S_IXUSR 00100
# endif
#endif
#ifdef STAT_MACROS_BROKEN
#undef S_ISBLK
#undef S_ISCHR
#undef S_ISDIR
#undef S_ISFIFO
#undef S_ISLNK
#undef S_ISMPB
#undef S_ISMPC
#undef S_ISNWK
#undef S_ISREG
#undef S_ISSOCK
#endif /* STAT_MACROS_BROKEN. */
#if !defined(S_ISBLK) && defined(S_IFBLK)
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
#endif
#if !defined(S_ISCHR) && defined(S_IFCHR)
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
#if !defined(S_ISREG) && defined(S_IFREG)
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#endif
#if !defined(S_ISFIFO) && defined(S_IFIFO)
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
#endif
#if !defined(S_ISLNK) && defined(S_IFLNK)
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
#endif
#if !defined(S_ISSOCK) && defined(S_IFSOCK)
#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
#endif
#if !defined(S_ISMPB) && defined(S_IFMPB) /* V7 */
#define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
#define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
#endif
#if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */
#define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
#endif
void mode_string ();
static char ftypelet ();
static void rwx ();
static void setst ();
/* filemodestring - fill in string STR with an ls-style ASCII
representation of the st_mode field of file stats block STATP.
10 characters are stored in STR; no terminating null is added.
The characters stored in STR are:
0 File type. 'd' for directory, 'c' for character
special, 'b' for block special, 'm' for multiplex,
'l' for symbolic link, 's' for socket, 'p' for fifo,
'-' for regular, '?' for any other file type
1 'r' if the owner may read, '-' otherwise.
2 'w' if the owner may write, '-' otherwise.
3 'x' if the owner may execute, 's' if the file is
set-user-id, '-' otherwise.
'S' if the file is set-user-id, but the execute
bit isn't set.
4 'r' if group members may read, '-' otherwise.
5 'w' if group members may write, '-' otherwise.
6 'x' if group members may execute, 's' if the file is
set-group-id, '-' otherwise.
'S' if it is set-group-id but not executable.
7 'r' if any user may read, '-' otherwise.
8 'w' if any user may write, '-' otherwise.
9 'x' if any user may execute, 't' if the file is "sticky"
(will be retained in swap space after execution), '-'
otherwise.
'T' if the file is sticky but not executable. */
void
filemodestring (statp, str)
struct stat *statp;
char *str;
{
mode_string (statp->st_mode, str);
}
/* Like filemodestring, but only the relevant part of the `struct stat'
is given as an argument. */
void
mode_string (mode, str)
unsigned short mode;
char *str;
{
str[0] = ftypelet ((long) mode);
rwx ((mode & 0700) << 0, &str[1]);
rwx ((mode & 0070) << 3, &str[4]);
rwx ((mode & 0007) << 6, &str[7]);
setst (mode, str);
}
/* Return a character indicating the type of file described by
file mode BITS:
'd' for directories
'b' for block special files
'c' for character special files
'm' for multiplexor files
'l' for symbolic links
's' for sockets
'p' for fifos
'-' for regular files
'?' for any other file type. */
static char
ftypelet (bits)
long bits;
{
#ifdef S_ISBLK
if (S_ISBLK (bits))
return 'b';
#endif
if (S_ISCHR (bits))
return 'c';
if (S_ISDIR (bits))
return 'd';
if (S_ISREG (bits))
return '-';
#ifdef S_ISFIFO
if (S_ISFIFO (bits))
return 'p';
#endif
#ifdef S_ISLNK
if (S_ISLNK (bits))
return 'l';
#endif
#ifdef S_ISSOCK
if (S_ISSOCK (bits))
return 's';
#endif
#ifdef S_ISMPC
if (S_ISMPC (bits))
return 'm';
#endif
#ifdef S_ISNWK
if (S_ISNWK (bits))
return 'n';
#endif
return '?';
}
/* Look at read, write, and execute bits in BITS and set
flags in CHARS accordingly. */
static void
rwx (bits, chars)
unsigned short bits;
char *chars;
{
chars[0] = (bits & S_IRUSR) ? 'r' : '-';
chars[1] = (bits & S_IWUSR) ? 'w' : '-';
chars[2] = (bits & S_IXUSR) ? 'x' : '-';
}
/* Set the 's' and 't' flags in file attributes string CHARS,
according to the file mode BITS. */
static void
setst (bits, chars)
unsigned short bits;
char *chars;
{
#ifdef S_ISUID
if (bits & S_ISUID)
{
if (chars[3] != 'x')
/* Set-uid, but not executable by owner. */
chars[3] = 'S';
else
chars[3] = 's';
}
#endif
#ifdef S_ISGID
if (bits & S_ISGID)
{
if (chars[6] != 'x')
/* Set-gid, but not executable by group. */
chars[6] = 'S';
else
chars[6] = 's';
}
#endif
#ifdef S_ISVTX
if (bits & S_ISVTX)
{
if (chars[9] != 'x')
/* Sticky, but not executable by others. */
chars[9] = 'T';
else
chars[9] = 't';
}
#endif
}

60
src/temacs.opt Normal file
View File

@ -0,0 +1,60 @@
cluster=emacs,,,-
DISPNEW.OBJ,-
SCROLL.OBJ,-
XDISP.OBJ,-
WINDOW.OBJ,-
TERM.OBJ,-
CM.OBJ,-
EMACS.OBJ,-
KEYBOARD.OBJ,-
MACROS.OBJ,-
KEYMAP.OBJ,-
SYSDEP.OBJ,-
BUFFER.OBJ,-
FILELOCK.OBJ,-
INSDEL.OBJ,-
MARKER.OBJ,-
MINIBUF.OBJ,-
FILEIO.OBJ,-
DIRED.OBJ,-
FILEMODE.OBJ,-
CMDS.OBJ,-
CASEFIDDLE.OBJ,-
INDENT.OBJ,-
SEARCH.OBJ,-
REGEX.OBJ,-
UNDO.OBJ,-
ALLOC.OBJ,-
DATA.OBJ,-
DOC.OBJ,-
EDITFNS.OBJ,-
CALLINT.OBJ,-
EVAL.OBJ,-
FNS.OBJ,-
PRINT.OBJ,-
LREAD.OBJ,-
ABBREV.OBJ,-
SYNTAX.OBJ,-
MOCKLISP.OBJ,-
BYTECODE.OBJ,-
PROCESS.OBJ,-
CALLPROC.OBJ,-
VMSFNS.OBJ,-
VMSPROC.OBJ,-
DOPRNT.OBJ,-
vmsmap.obj,-
termcap.obj,-
tparam.obj,-
lastfile.obj,-
alloca.obj,-
malloc.obj
collect=non_saved_data,-
stdin,-
stdout,-
stderr,-
errno,-
vaxc$errno,-
sys_errlist,-
sys_nerr,-
environ
sys$library:vaxcrtl/library

10
src/vms-pp.trans Normal file
View File

@ -0,0 +1,10 @@
! translations for extra long variable names
!234567890123456789012345678901 1234567890123456789012345678901
Vminibuffer_local_completion_map Vminibuf_local_completion_map
Vminibuffer_local_must_match_map Vminibuf_local_must_match
Finsert_abbrev_table_description Finsert_abbrev_table_descrip
Sinsert_abbrev_table_description Sinsert_abbrev_table_descrip
internal_with_output_to_temp_buffer internal_with_out_to_temp_buf
Vminibuffer_completion_predicate Vminibuf_completion_predicate
Qminibuffer_completion_predicate Qminibuf_completion_predicate