1 diff -urN netbsd-sh/error.c ash-0.3.7.orig/error.c
2 --- netbsd-sh/error.c Fri Jan 12 17:50:35 2001
3 +++ ash-0.3.7.orig/error.c Mon Apr 23 22:16:46 2001
5 { ENOTDIR, E_CREAT,"directory nonexistent" },
6 { ENOTDIR, E_EXEC, "not found" },
7 { EISDIR, ALL, "is a directory" },
8 + { EEXIST, E_CREAT,"file exists" },
10 { EMFILE, ALL, "too many open files" },
12 diff -urN netbsd-sh/error.h ash-0.3.7.orig/error.h
13 --- netbsd-sh/error.h Fri Jul 9 13:02:05 1999
14 +++ ash-0.3.7.orig/error.h Mon Apr 23 22:16:46 2001
16 * so we use _setjmp instead.
19 -#if defined(BSD) && !defined(__SVR4)
20 +#if defined(BSD) && !defined(__SVR4) && !defined(__GLIBC__)
21 #define setjmp(jmploc) _setjmp(jmploc)
22 #define longjmp(jmploc, val) _longjmp(jmploc, val)
24 diff -urN netbsd-sh/bltin/bltin.h ash-0.3.7.orig/bltin/bltin.h
25 --- netbsd-sh/bltin/bltin.h Sat Jul 5 13:12:37 1997
26 +++ ash-0.3.7.orig/bltin/bltin.h Mon Apr 23 22:16:46 2001
30 #include "../mystring.h"
31 +#include "../memalloc.h"
33 #include "../output.h"
37 #define printf out1fmt
39 #define fprintf outfmt
41 #define fflush flushout
42 -#define INITARGS(argv)
43 #define warnx(a, b, c) { \
45 (void)snprintf(buf, sizeof(buf), a, b, c); \
49 +#define INITARGS(argv)
53 diff -urN netbsd-sh/main.c ash-0.3.7.orig/main.c
54 --- netbsd-sh/main.c Fri Jan 12 17:50:36 2001
55 +++ ash-0.3.7.orig/main.c Mon Apr 23 22:16:46 2001
58 monitor(4, etext, profile_buf, sizeof profile_buf, 50);
60 +#if defined(linux) || defined(__GNU__)
61 + signal(SIGCHLD, SIG_DFL);
64 if (setjmp(jmploc.loc)) {
66 diff -urN netbsd-sh/var.c ash-0.3.7.orig/var.c
67 --- netbsd-sh/var.c Fri Jan 12 17:50:40 2001
68 +++ ash-0.3.7.orig/var.c Mon Apr 23 22:19:54 2001
71 { &vmpath, VSTRFIXED|VTEXTFIXED|VUNSET, "MAILPATH=",
73 - { &vpath, VSTRFIXED|VTEXTFIXED, "PATH=" _PATH_DEFPATH,
74 + { &vpath, VSTRFIXED|VTEXTFIXED, "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
81 * Initialize the varable symbol tables and import the environment
82 + * Setting PWD added by herbert
90 extern char **environ;
91 + extern char *curdir;
94 for (envp = environ ; *envp ; envp++) {
96 setvareq(*envp, VEXPORT|VTEXTFIXED);
101 + setvar("PWD", curdir, VEXPORT|VTEXTFIXED);
106 struct var *vp, **vpp;
109 + flags |= (VEXPORT & (((unsigned) (1 - aflag)) - 1));
110 for (vp = *vpp ; vp ; vp = vp->next) {
111 if (varequal(s, vp->text)) {
112 if (vp->flags & VREADONLY) {
114 * We could roll this to a function, to handle it as
115 * a regular variable function callback, but why bother?
117 - if (vp == &vmpath || (vp == &vmail && ! mpathset()))
119 + (vp == &vmpath || (vp == &vmail && ! mpathset())))