aboutsummaryrefslogtreecommitdiff
path: root/shells/v7sh/files/patch-defs.h
diff options
context:
space:
mode:
Diffstat (limited to 'shells/v7sh/files/patch-defs.h')
-rw-r--r--shells/v7sh/files/patch-defs.h563
1 files changed, 563 insertions, 0 deletions
diff --git a/shells/v7sh/files/patch-defs.h b/shells/v7sh/files/patch-defs.h
new file mode 100644
index 000000000000..b6822e623f03
--- /dev/null
+++ b/shells/v7sh/files/patch-defs.h
@@ -0,0 +1,563 @@
+diff -u -x CVS -x work -x core -x *.core -x #* -x *~ -x *.orig -x *.rej -I $Id.*$ -I $.+BSD.*$ defs.h.orig defs.h
+--- defs.h.orig Tue Jun 22 01:43:19 2004
++++ defs.h Tue Jun 22 01:55:49 2004
+@@ -1,8 +1,32 @@
+ #
+ /*
+ * UNIX shell
++ *
++ * S. R. Bourne
++ * Bell Telephone Laboratories
++ *
+ */
+
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <sys/times.h>
++#include <sys/wait.h>
++#include <dirent.h>
++#include <errno.h>
++#include <fcntl.h>
++#include <setjmp.h>
++#include <signal.h>
++#include <stdlib.h>
++#include <string.h>
++#if defined(ULTRIX)
++#if (__FreeBSD_version - 0) >= 500005
++#include <ulimit.h>
++#else
++#include "ulimit.h"
++#endif
++#endif
++#include <unistd.h>
++
+ /* error exits from various parts of shell */
+ #define ERROR 1
+ #define SYNBAD 2
+@@ -51,11 +75,22 @@
+ #define SYSNULL 16
+ #define SYSREAD 17
+ #define SYSTST 18
+-#define SYSUMASK 19
++#define SYSUMASK 19
++#if defined(SYSIII)
++#define SYSNEWGRP 20
++#endif
++#if defined(ULTRIX)
++#define SYSULIMIT 21
++#endif
++
++#if defined(SYSIII)
++/* builtin table */
++#define TEST 127
++#endif
+
+ /* used for input and output of shell */
+-#define INIO 10
+-#define OTIO 11
++#define INIO 18 /* V7 - 10 */
++#define OTIO 19 /* V7 - 11 */
+
+ /*io nodes*/
+ #define USERIO 10
+@@ -77,35 +112,145 @@
+
+
+ /* result type declarations */
+-#define alloc malloc
+-ADDRESS alloc();
+-VOID addblok();
+-STRING make();
+-STRING movstr();
+-TREPTR cmd();
+-TREPTR makefork();
+-NAMPTR lookup();
+-VOID setname();
+-VOID setargs();
+-DOLPTR useargs();
+-REAL expr();
+-STRING catpath();
+-STRING getpath();
+-STRING *scan();
+-STRING mactrim();
+-STRING macro();
+-STRING execs();
+-VOID await();
+-VOID post();
+-STRING copyto();
+-VOID exname();
+-STRING staknam();
+-VOID printnam();
+-VOID printflg();
+-VOID prs();
+-VOID prc();
+-VOID getenv();
+-STRING *setenv();
++/* args.c */
++PROC INT options(INT, STRING *);
++PROC VOID setargs(STRING *);
++PROC DOLPTR freeargs(DOLPTR);
++PROC VOID clearup(VOID);
++PROC DOLPTR useargs(VOID);
++/* blok.c */
++PROC ADDRESS alloc(POS);
++PROC VOID addblok(POS);
++#define free free_
++PROC VOID free(BLKPTR);
++/* builtin.c */
++#if defined(SYSIII)
++PROC VOID builtin(INT, INT, STRING *);
++#else /* V7 */
++PROC INT builtin(INT, STRING *);
++#endif
++PROC VOID bfailed(CSTRING, CSTRING, CSTRING);
++/* cmd.c */
++PROC TREPTR makefork(INT, TREPTR);
++PROC TREPTR cmd(INT, INT);
++/* error.c */
++PROC VOID exitset(VOID);
++PROC VOID sigchk(VOID);
++PROC VOID failed(CSTRING, CSTRING);
++PROC VOID error(CSTRING);
++PROC VOID exitsh(INT);
++PROC VOID done(VOID);
++PROC VOID rmtemp(IOPTR);
++/* expand.c */
++PROC INT expand(STRING, INT);
++PROC INT gmatch(STRING, STRING);
++PROC VOID makearg(ARGPTR);
++/* expr.c */
++/* PROC REAL expr(); */
++/* fault.c */
++PROC VOID fault(INT);
++PROC VOID stdsigs(VOID);
++PROC SIGPTR ignsig(INT);
++PROC VOID getsig(INT);
++PROC VOID oldsigs(VOID);
++PROC VOID clrsig(INT);
++PROC VOID chktrap(VOID);
++/* io.c */
++PROC VOID initf(UFD);
++PROC INT estabf(STRING);
++PROC VOID push(FILEPTR);
++PROC INT pop(VOID);
++PROC VOID chkpipe(INT *);
++PROC INT chkopen(CSTRING);
++#define rename rename_
++PROC VOID rename(INT, INT);
++PROC INT create(STRING);
++PROC INT tmpfil(VOID);
++PROC VOID copy(IOPTR);
++/* macro.c */
++PROC STRING macro(STRING);
++PROC VOID subst(INT, INT);
++/* main.c */
++PROC VOID chkpr(INT);
++PROC VOID settmp(VOID);
++/* name.c */
++PROC INT syslook(STRING, SYSTAB);
++PROC VOID setlist(ARGPTR, INT);
++#if defined(SYSIII)
++PROC INT setname(STRING, INT);
++#else /* V7 */
++PROC VOID setname(STRING, INT);
++#endif
++PROC VOID replace(STRING *, CSTRING);
++PROC VOID dfault(NAMPTR, CSTRING);
++PROC VOID assign(NAMPTR, CSTRING);
++PROC INT readvar(STRING *);
++PROC VOID assnum(STRING *, INT);
++PROC STRING make(CSTRING);
++PROC NAMPTR lookup(CSTRING);
++PROC VOID namscan(VOID(*)(NAMPTR));
++PROC VOID printnam(NAMPTR);
++PROC VOID exname(NAMPTR);
++PROC VOID printflg(NAMPTR);
++#define getenv getenv_
++#if defined(SYSIII)
++PROC INT getenv(VOID);
++#else /* V7 */
++PROC VOID getenv(VOID);
++#endif
++#define setenv setenv_
++PROC STRING *setenv(VOID);
++/* print.c */
++PROC VOID newline(VOID);
++PROC VOID blank(VOID);
++PROC VOID prp(VOID);
++PROC VOID prs(CSTRING);
++PROC VOID prc(INT);
++PROC VOID prt(CLOCK);
++PROC VOID prn(INT);
++PROC VOID prl(LONG);
++PROC VOID itos(INT);
++PROC VOID ltos(LONG);
++PROC INT stoi(CSTRING);
++/* service.c */
++PROC VOID initio(IOPTR);
++#if defined(SYSIII)
++PROC CSTRING simple(CSTRING);
++#endif
++PROC CSTRING getpath(CSTRING);
++PROC INT pathopen(CSTRING, CSTRING);
++PROC CSTRING catpath(CSTRING, CSTRING);
++PROC VOID execa(STRING *);
++PROC VOID postclr(VOID);
++PROC VOID post(INT);
++#if defined(SYSIII)
++PROC VOID await(INT, INT);
++#else /* V7 */
++PROC VOID await(INT);
++#endif
++PROC VOID trim(STRING);
++PROC STRING mactrim(STRING);
++PROC STRING *scan(INT);
++PROC INT getarg(COMPTR);
++/* setbrk.c */
++PROC BYTPTR setbrk(INT);
++/* stak.c -> stak.h */
++/* string.c */
++PROC STRING movstr(CSTRING, STRING);
++PROC INT any(INT, CSTRING);
++PROC INT cf(CSTRING, CSTRING);
++PROC INT length(CSTRING);
++/* test.c */
++#if defined(SYSIII)
++PROC INT test(INT, STRING *);
++#endif
++/* word.c */
++PROC INT word(VOID);
++PROC INT nextc(INT);
++PROC INT readc(VOID);
++/* xec.c */
++PROC INT execute(TREPTR, INT, INT *, INT *);
++PROC VOID execexp(STRING, UFD);
+
+ #define attrib(n,f) (n->namflg |= f)
+ #define round(a,b) (((int)((ADR(a)+b)-1))&~((b)-1))
+@@ -115,16 +260,20 @@
+ #define assert(x) ;
+
+ /* temp files and io */
+-UFD output;
+-INT ioset;
+-IOPTR iotemp; /* files to be deleted sometime */
+-IOPTR iopend; /* documents waiting to be read at NL */
++EXTERN UFD output;
++EXTERN INT ioset;
++EXTERN IOPTR iotemp; /* files to be deleted sometime */
++EXTERN IOPTR iopend; /* documents waiting to be read at NL */
++#if defined(SYSIII)
++EXTERN INT stripflg;
++#endif
++EXTERN BOOL nosubst;
+
+ /* substitution */
+-INT dolc;
+-STRING *dolv;
+-DOLPTR argfor;
+-ARGPTR gchain;
++EXTERN INT dolc;
++EXTERN STRING *dolv;
++EXTERN DOLPTR argfor;
++EXTERN ARGPTR gchain;
+
+ /* stack */
+ #define BLK(x) ((BLKPTR)(x))
+@@ -136,68 +285,77 @@
+ #include "stak.h"
+
+ /* string constants */
+-MSG atline;
+-MSG readmsg;
+-MSG colon;
+-MSG minus;
+-MSG nullstr;
+-MSG sptbnl;
+-MSG unexpected;
+-MSG endoffile;
+-MSG synmsg;
++EXTERN CMSG atline;
++EXTERN CMSG readmsg;
++EXTERN CMSG colon;
++EXTERN CMSG minus;
++EXTERN CMSG nullstr;
++EXTERN CMSG sptbnl;
++EXTERN CMSG unexpected;
++EXTERN CMSG endoffile;
++EXTERN CMSG endofline;
++EXTERN CMSG synmsg;
+
+ /* name tree and words */
+-SYSTAB reserved;
+-INT wdval;
+-INT wdnum;
+-ARGPTR wdarg;
+-INT wdset;
+-BOOL reserv;
++EXTERN SYSTAB reserved;
++EXTERN SYSTAB commands;
++#if defined(SYSIII)
++EXTERN SYSTAB builtins;
++#endif
++EXTERN INT wdval;
++EXTERN INT wdnum;
++EXTERN ARGPTR wdarg;
++EXTERN INT wdset;
++EXTERN BOOL reserv;
+
+ /* prompting */
+-MSG stdprompt;
+-MSG supprompt;
+-MSG profile;
++EXTERN CMSG stdprompt;
++EXTERN CMSG supprompt;
++EXTERN CMSG profile;
++#if defined(SYSIII)
++EXTERN CMSG sysprofile;
++#endif
+
+ /* built in names */
+-NAMNOD fngnod;
+-NAMNOD ifsnod;
+-NAMNOD homenod;
+-NAMNOD mailnod;
+-NAMNOD pathnod;
+-NAMNOD ps1nod;
+-NAMNOD ps2nod;
++EXTERN NAMNOD fngnod;
++EXTERN NAMNOD ifsnod;
++EXTERN NAMNOD homenod;
++EXTERN NAMNOD mailnod;
++EXTERN NAMNOD pathnod;
++EXTERN NAMNOD ps1nod;
++EXTERN NAMNOD ps2nod;
+
+ /* special names */
+-MSG flagadr;
+-STRING cmdadr;
+-STRING exitadr;
+-STRING dolladr;
+-STRING pcsadr;
+-STRING pidadr;
++EXTERN MSG flagadr;
++EXTERN STRING cmdadr;
++EXTERN STRING exitadr;
++EXTERN STRING dolladr;
++EXTERN STRING pcsadr;
++EXTERN STRING pidadr;
+
+-MSG defpath;
++EXTERN CMSG defpath;
+
+ /* names always present */
+-MSG mailname;
+-MSG homename;
+-MSG pathname;
+-MSG fngname;
+-MSG ifsname;
+-MSG ps1name;
+-MSG ps2name;
++EXTERN CMSG mailname;
++EXTERN CMSG homename;
++EXTERN CMSG pathname;
++EXTERN CMSG fngname;
++EXTERN CMSG ifsname;
++EXTERN CMSG ps1name;
++EXTERN CMSG ps2name;
+
+ /* transput */
+-CHAR tmpout[];
+-STRING tmpnam;
+-INT serial;
++EXTERN CHAR tmpout[];
++#define tmpnam tmpnam_
++EXTERN STRING tmpnam;
++EXTERN INT serial;
+ #define TMPNAM 7
+-FILE standin;
++EXTERN FILEPTR standin;
+ #define input (standin->fdes)
+ #define eof (standin->feof)
+-INT peekc;
+-STRING comdiv;
+-MSG devnull;
++EXTERN INT peekc;
++EXTERN STRING comdiv;
++EXTERN CMSG devnull;
+
+ /* flags */
+ #define noexec 01
+@@ -211,77 +369,122 @@
+ #define rshflg 0400
+ #define waiting 01000
+ #define stdflg 02000
++#define STDFLG 's'
++#define STDFLGLOC 4
+ #define execpr 04000
+ #define readpr 010000
+ #define keyflg 020000
+-INT flags;
++EXTERN INT flags;
++#if defined(SYSIII)
++EXTERN BOOL rwait;
++EXTERN BOOL wasintr; /* used to tell if break or delete is hit
++ while executing a wait */
++#endif
+
+ /* error exits from various parts of shell */
+-#include <setjmp.h>
+-jmp_buf subshell;
+-jmp_buf errshell;
++EXTERN jmp_buf subshell;
++EXTERN jmp_buf errshell;
++#if defined(RENO)
++EXTERN jmp_buf INTbuf;
++#endif
+
+ /* fault handling */
+ #include "brkincr.h"
+-POS brkincr;
++EXTERN INT brkincr;
+
+ #define MINTRAP 0
+-#define MAXTRAP 17
++#define MAXTRAP 33
+
+-#define INTR 2
+-#define QUIT 3
+-#define MEMF 11
+-#define ALARM 14
+-#define KILL 15
++#define INTR SIGINT
++#define QUIT SIGQUIT
++#define MEMF SIGSEGV
++#define ALARM SIGALRM
++#define KILL SIGTERM
+ #define TRAPSET 2
+ #define SIGSET 4
+ #define SIGMOD 8
+-
+-VOID fault();
+-BOOL trapnote;
+-STRING trapcom[];
+-BOOL trapflg[];
++#if defined(SYSIII)
++#define SIGCAUGHT 16
++#endif
++
++EXTERN BOOL trapnote;
++EXTERN STRING trapcom[];
++EXTERN BOOL trapflg[];
++#if defined(RENO)
++EXTERN BOOL trapjmp[];
++#endif
+
+ /* name tree and words */
+-STRING *environ;
+-CHAR numbuf[];
+-MSG export;
+-MSG readonly;
++EXTERN STRING *environ;
++EXTERN CHAR numbuf[];
++EXTERN CMSG export;
++EXTERN CMSG readonly;
+
+ /* execflgs */
+-INT exitval;
+-BOOL execbrk;
+-INT loopcnt;
+-INT breakcnt;
++EXTERN INT exitval;
++EXTERN BOOL execbrk;
++EXTERN INT loopcnt;
++EXTERN INT breakcnt;
+
+ /* messages */
+-MSG mailmsg;
+-MSG coredump;
+-MSG badopt;
+-MSG badparam;
+-MSG badsub;
+-MSG nospace;
+-MSG notfound;
+-MSG badtrap;
+-MSG baddir;
+-MSG badshift;
+-MSG illegal;
+-MSG restricted;
+-MSG execpmsg;
+-MSG notid;
+-MSG wtfailed;
+-MSG badcreate;
+-MSG piperr;
+-MSG badopen;
+-MSG badnum;
+-MSG arglist;
+-MSG txtbsy;
+-MSG toobig;
+-MSG badexec;
+-MSG notfound;
+-MSG badfile;
++EXTERN CMSG mailmsg;
++EXTERN CMSG coredump;
++EXTERN CMSG badopt;
++EXTERN CMSG badparam;
++#if defined(SYSIII)
++EXTERN CMSG unset;
++#endif
++EXTERN CMSG badsub;
++EXTERN CMSG nospace;
++EXTERN CMSG badtrap;
++EXTERN CMSG memfault;
++EXTERN CMSG baddir;
++EXTERN CMSG badshift;
++EXTERN CMSG illegal;
++EXTERN CMSG restricted;
++EXTERN CMSG execpmsg;
++EXTERN CMSG notid;
++EXTERN CMSG badulimit;
++EXTERN CMSG wtfailed;
++EXTERN CMSG badcreate;
++#if defined(SYSIII)
++EXTERN CMSG nofork;
++EXTERN CMSG noswap;
++#endif
++EXTERN CMSG piperr;
++EXTERN CMSG badopen;
++EXTERN CMSG badnum;
++EXTERN CMSG arglist;
++#if defined(SYSIII)
++EXTERN CMSG argcount;
++#endif
++EXTERN CMSG txtbsy;
++EXTERN CMSG toobig;
++EXTERN CMSG badexec;
++EXTERN CMSG notfound;
++EXTERN CMSG badfile;
++EXTERN CSTRING sysmsg[];
++#if defined(RENO)
++EXTERN INT num_sysmsg;
++#endif
++
++#if defined(SYSIII)
++/* 'builtin' error messages */
++EXTERN CMSG btest;
++EXTERN CMSG badop;
++#endif
++
++#if defined(SYSIII)
++/* fork constant */
++#define FORKLIM 32
++#endif
++
++#if defined(SYSIII) || defined(RENO)
++/* comment delimeter */
++#define COMCHAR '#'
++#endif
+
+-address end[];
++EXTERN address end[];
+
+ #include "ctype.h"
+