aboutsummaryrefslogtreecommitdiff
path: root/shells/sash/files
diff options
context:
space:
mode:
authorOliver Eikemeier <eik@FreeBSD.org>2004-09-03 14:46:59 +0000
committerOliver Eikemeier <eik@FreeBSD.org>2004-09-03 14:46:59 +0000
commit86cbd1f021d06a4c8239a651427d617aa20b3df8 (patch)
tree1c2c808fb432c3c097c652de6698177bfba12e81 /shells/sash/files
parentcf815ad2285b79bbde591eee99d76e08040a74e0 (diff)
downloadports-86cbd1f021d06a4c8239a651427d617aa20b3df8.tar.gz
ports-86cbd1f021d06a4c8239a651427d617aa20b3df8.zip
Notes
Diffstat (limited to 'shells/sash/files')
-rw-r--r--shells/sash/files/patch-Makefile38
-rw-r--r--shells/sash/files/patch-aa41
-rw-r--r--shells/sash/files/patch-ab33
-rw-r--r--shells/sash/files/patch-ac19
-rw-r--r--shells/sash/files/patch-ad20
-rw-r--r--shells/sash/files/patch-ae20
-rw-r--r--shells/sash/files/patch-af20
-rw-r--r--shells/sash/files/patch-ag20
-rw-r--r--shells/sash/files/patch-ah20
-rw-r--r--shells/sash/files/patch-ai11
-rw-r--r--shells/sash/files/patch-aj20
-rw-r--r--shells/sash/files/patch-ak20
-rw-r--r--shells/sash/files/patch-al141
-rw-r--r--shells/sash/files/patch-am115
-rw-r--r--shells/sash/files/patch-an13
-rw-r--r--shells/sash/files/patch-cmd_ls.c20
-rw-r--r--shells/sash/files/patch-cmds.c93
-rw-r--r--shells/sash/files/patch-sash.h11
18 files changed, 162 insertions, 513 deletions
diff --git a/shells/sash/files/patch-Makefile b/shells/sash/files/patch-Makefile
new file mode 100644
index 000000000000..6c4067133819
--- /dev/null
+++ b/shells/sash/files/patch-Makefile
@@ -0,0 +1,38 @@
+--- Makefile.orig Mon Jul 22 01:24:47 2002
++++ Makefile Fri Sep 3 14:53:40 2004
+@@ -8,13 +8,13 @@
+ # The MOUNT_TYPE definition sets the default file system type for -mount.
+ #
+ HAVE_GZIP = 1
+-HAVE_LINUX_ATTR = 1
+-HAVE_LINUX_MOUNT = 1
+-HAVE_BSD_MOUNT = 0
+-MOUNT_TYPE = '"ext3"'
++HAVE_LINUX_ATTR = 0
++HAVE_LINUX_MOUNT = 0
++HAVE_BSD_MOUNT = 1
++MOUNT_TYPE = '"ufs"'
+
+
+-CFLAGS = -O3 -Wall -Wmissing-prototypes \
++CFLAGS += -Wall -Wmissing-prototypes \
+ -DHAVE_GZIP=$(HAVE_GZIP) \
+ -DHAVE_LINUX_ATTR=$(HAVE_LINUX_ATTR) \
+ -DHAVE_LINUX_MOUNT=$(HAVE_LINUX_MOUNT) \
+@@ -25,13 +25,14 @@
+ LIBS = -lz
+
+
+-BINDIR = /bin
+-MANDIR = /usr/man/man1
++BINDIR = $(PREFIX)/bin
++MANDIR = $(MANPREFIX)/man/man1
+
+
+ OBJS = sash.o cmds.o cmd_dd.o cmd_ed.o cmd_grep.o cmd_ls.o cmd_tar.o \
+ cmd_gzip.o cmd_find.o cmd_file.o cmd_chattr.o cmd_ar.o utils.o
+
++all: sash
+
+ sash: $(OBJS)
+ $(CC) $(LDFLAGS) -o sash $(OBJS) $(LIBS)
diff --git a/shells/sash/files/patch-aa b/shells/sash/files/patch-aa
deleted file mode 100644
index c2e45aebc9fb..000000000000
--- a/shells/sash/files/patch-aa
+++ /dev/null
@@ -1,41 +0,0 @@
---- Makefile.orig Sat Sep 25 01:21:56 1999
-+++ Makefile Sat Jan 22 21:52:23 2000
-@@ -5,13 +5,26 @@
- # The HAVE_EXT2 definition adds the -chattr and -lsattr comamnds.
- #
-
--CFLAGS = -O3 -Wall -Wmissing-prototypes -DHAVE_GZIP -DHAVE_EXT2
-+CFLAGS += -Wall -Wmissing-prototypes $(OPTS)
- LDFLAGS = -static -s
- LIBS = -lz
-
-
--BINDIR = /bin
--MANDIR = /usr/man/man1
-+## FreeBSD: add/remove components as needed. HAVE_EXT2 doesn't work
-+## for us...
-+OPTS+=-DHAVE_AR
-+OPTS+=-DHAVE_DD
-+OPTS+=-DHAVE_ED
-+OPTS+=-DHAVE_FILE
-+OPTS+=-DHAVE_FIND
-+OPTS+=-DHAVE_GREP
-+OPTS+=-DHAVE_GZIP
-+OPTS+=-DHAVE_LS
-+OPTS+=-DHAVE_TAR
-+
-+
-+BINDIR = $(PREFIX)/bin
-+MANDIR = $(PREFIX)/man/man1
-
-
- OBJS = sash.o cmds.o cmd_dd.o cmd_ed.o cmd_grep.o cmd_ls.o cmd_tar.o \
-@@ -20,6 +33,8 @@
-
- sash: $(OBJS)
- $(CC) $(LDFLAGS) -o sash $(OBJS) $(LIBS)
-+
-+all: sash
-
- clean:
- rm -f $(OBJS) sash
diff --git a/shells/sash/files/patch-ab b/shells/sash/files/patch-ab
deleted file mode 100644
index 9642d29ca91a..000000000000
--- a/shells/sash/files/patch-ab
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -NPru README.FreeBSD.orig README.FreeBSD
---- README.FreeBSD.orig Thu Jan 1 01:00:00 1970
-+++ README.FreeBSD Sun Jan 23 00:03:20 2000
-@@ -0,0 +1,29 @@
-+This is a port of SASH to FreeBSD 4.0. Here are the differences to
-+the original version:
-+
-+* The Makefile was rewritten to make use of standard BSD makefiles.
-+ This helps integrating SASH into binaries built with crunchgen.
-+
-+* This port contains only a subset of 'mount -t type' commands. The
-+ types that are supported are:
-+
-+ ufs,msdos,ext2fs,cd9660
-+
-+ (the naming follows standard mount(8) command in FreeBSD).
-+
-+ However, the only supported options for mounting are either read/write
-+ (default, except for cd9660), read-only, or updating the mount
-+ (NOTE: the original code uses '-m', but I changed it to '-u'
-+ to be consistent with standard FreeBSD mount(8) ).
-+
-+ Also, the built-in mount command doesn't even attempt to autoload
-+ requested vfs KLD, if it's not present in the kernel. In such
-+ case, the mount operation will fail.
-+
-+* The code has been modularized (in similar way it was done for ELKS
-+ version), so you can easier select which parts you want to include.
-+ See the Makefile for the options.
-+
-+Andrzej Bialecki
-+<abial@FreeBSD.org>
-+Stockholm, 22.01.2000
diff --git a/shells/sash/files/patch-ac b/shells/sash/files/patch-ac
deleted file mode 100644
index fb53eb8cb4d3..000000000000
--- a/shells/sash/files/patch-ac
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -NPru cmd_ar.c.orig cmd_ar.c
---- cmd_ar.c.orig Sat Oct 2 12:09:04 1999
-+++ cmd_ar.c Sat Jan 22 23:45:10 2000
-@@ -13,6 +13,8 @@
- * This allows extraction and listing of ar files.
- */
-
-+#ifdef HAVE_AR
-+
- #include <ar.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -1007,5 +1009,6 @@
- arch->name);
- }
-
-+#endif /* HAVE_AR */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-ad b/shells/sash/files/patch-ad
deleted file mode 100644
index 4f4c79fb5cb2..000000000000
--- a/shells/sash/files/patch-ad
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -NPru cmd_dd.c.orig cmd_dd.c
---- cmd_dd.c.orig Sun Apr 11 09:31:39 1999
-+++ cmd_dd.c Sat Jan 22 23:45:39 2000
-@@ -6,6 +6,8 @@
- * The "dd" built-in command.
- */
-
-+#ifdef HAVE_DD
-+
- #include "sash.h"
-
-
-@@ -346,5 +348,7 @@
-
- return value;
- }
-+
-+#endif /* HAVE_DD */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-ae b/shells/sash/files/patch-ae
deleted file mode 100644
index 1c24c699cffa..000000000000
--- a/shells/sash/files/patch-ae
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -NPru cmd_ed.c.orig cmd_ed.c
---- cmd_ed.c.orig Mon Apr 19 16:57:32 1999
-+++ cmd_ed.c Sat Jan 22 23:46:01 2000
-@@ -6,6 +6,8 @@
- * The "ed" built-in command (much simplified)
- */
-
-+#ifdef HAVE_ED
-+
- #include "sash.h"
-
- #define USERSIZE 1024 /* max line length typed in by user */
-@@ -1432,5 +1434,7 @@
-
- return TRUE;
- }
-+
-+#endif /* HAVE_ED */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-af b/shells/sash/files/patch-af
deleted file mode 100644
index 2711ce3e7a9d..000000000000
--- a/shells/sash/files/patch-af
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -NPru cmd_file.c.orig cmd_file.c
---- cmd_file.c.orig Sun Apr 11 09:31:39 1999
-+++ cmd_file.c Sat Jan 22 23:46:23 2000
-@@ -6,6 +6,8 @@
- * The "file" built-in command.
- */
-
-+#ifdef HAVE_FILE
-+
- #include <ctype.h>
- #include <errno.h>
- #include <sys/types.h>
-@@ -229,5 +231,7 @@
-
- return info;
- }
-+
-+#endif /* HAVE_FILE */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-ag b/shells/sash/files/patch-ag
deleted file mode 100644
index 597821218173..000000000000
--- a/shells/sash/files/patch-ag
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -NPru cmd_find.c.orig cmd_find.c
---- cmd_find.c.orig Tue Apr 20 00:48:45 1999
-+++ cmd_find.c Sat Jan 22 23:47:12 2000
-@@ -6,6 +6,8 @@
- * The "find" built-in command.
- */
-
-+#ifdef HAVE_FIND
-+
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <dirent.h>
-@@ -370,5 +372,7 @@
- */
- return TRUE;
- }
-+
-+#endif /* HAVE_FIND */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-ah b/shells/sash/files/patch-ah
deleted file mode 100644
index 35c42def7f9c..000000000000
--- a/shells/sash/files/patch-ah
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -NPru cmd_grep.c.orig cmd_grep.c
---- cmd_grep.c.orig Sun Apr 11 09:31:39 1999
-+++ cmd_grep.c Sat Jan 22 23:47:32 2000
-@@ -6,6 +6,8 @@
- * The "grep" built-in command.
- */
-
-+#ifdef HAVE_GREP
-+
- #include <ctype.h>
-
- #include "sash.h"
-@@ -187,5 +189,7 @@
- string++;
- }
- }
-+
-+#endif /* HAVE_GREP */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-ai b/shells/sash/files/patch-ai
deleted file mode 100644
index be055c41e205..000000000000
--- a/shells/sash/files/patch-ai
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -NPru cmd_gzip.c.orig cmd_gzip.c
---- cmd_gzip.c.orig Tue Apr 20 13:46:17 1999
-+++ cmd_gzip.c Sat Jan 22 23:47:44 2000
-@@ -666,6 +666,6 @@
- }
-
-
--#endif
-+#endif /* HAVE_GZIP */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-aj b/shells/sash/files/patch-aj
deleted file mode 100644
index 3ce7001f10ac..000000000000
--- a/shells/sash/files/patch-aj
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -NPru cmd_ls.c.orig cmd_ls.c
---- cmd_ls.c.orig Wed Jun 16 13:01:43 1999
-+++ cmd_ls.c Sat Jan 22 23:48:06 2000
-@@ -6,6 +6,8 @@
- * The "ls" built-in command.
- */
-
-+#ifdef HAVE_LS
-+
- #include "sash.h"
-
- #include <sys/types.h>
-@@ -574,5 +576,7 @@
- free(list[listUsed]);
- }
- }
-+
-+#endif /* HAVE_LS */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-ak b/shells/sash/files/patch-ak
deleted file mode 100644
index a6c0a16e8e07..000000000000
--- a/shells/sash/files/patch-ak
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -NPru cmd_tar.c.orig cmd_tar.c
---- cmd_tar.c.orig Sun Apr 18 14:33:59 1999
-+++ cmd_tar.c Sat Jan 22 23:48:24 2000
-@@ -7,6 +7,8 @@
- * This allows creation, extraction, and listing of tar files.
- */
-
-+#ifdef HAVE_TAR
-+
- #include "sash.h"
-
- #include <sys/types.h>
-@@ -1229,5 +1231,7 @@
-
- return FALSE;
- }
-+
-+#endif /* HAVE_TAR */
-
- /* END CODE */
diff --git a/shells/sash/files/patch-al b/shells/sash/files/patch-al
deleted file mode 100644
index 457e24725bb2..000000000000
--- a/shells/sash/files/patch-al
+++ /dev/null
@@ -1,141 +0,0 @@
---- cmds.c.orig Thu Jun 3 14:42:39 1999
-+++ cmds.c Sat Nov 30 14:55:20 2002
-@@ -6,17 +6,22 @@
- * Most simple built-in commands are here.
- */
-
--#include "sash.h"
--
- #include <sys/types.h>
- #include <sys/stat.h>
-+#ifdef __FreeBSD__
-+#include <sys/param.h>
-+#endif
- #include <sys/mount.h>
- #include <signal.h>
- #include <pwd.h>
- #include <grp.h>
- #include <utime.h>
- #include <errno.h>
-+#ifdef linux
- #include <linux/fs.h>
-+#endif
-+
-+#include "sash.h"
-
-
- void
-@@ -501,19 +506,38 @@
- }
- }
-
-+#ifdef __FreeBSD__
-+#include <ufs/ufs/ufsmount.h>
-+#include <isofs/cd9660/cd9660_mount.h>
-+#if __FreeBSD_version >= 500019
-+#include <fs/msdosfs/msdosfsmount.h>
-+#else
-+#include <msdosfs/msdosfsmount.h>
-+#endif
-+#endif
-
- void
- do_mount(int argc, const char ** argv)
- {
-- const char * str;
-- const char * type;
-- int flags;
-+ const char * str;
-+ const char * type;
-+#ifdef __FreeBSD__
-+ u_long flags=0;
-+ struct ufs_args ufs;
-+ struct msdosfs_args msdos;
-+ struct iso_args iso;
-+ void *args;
-+#else
-+ int flags=MS_MGC_VAL;
-+#endif
-
- argc--;
- argv++;
-+#ifdef linux
- type = "ext2";
-- flags = MS_MGC_VAL;
--
-+#else
-+ type = "ufs";
-+#endif
- while ((argc > 0) && (**argv == '-'))
- {
- argc--;
-@@ -533,6 +557,7 @@
- argc--;
- break;
-
-+#ifdef linux
- case 'r':
- flags |= MS_RDONLY;
- break;
-@@ -540,6 +565,16 @@
- case 'm':
- flags |= MS_REMOUNT;
- break;
-+#endif
-+#ifdef __FreeBSD__
-+ case 'r':
-+ flags |= MNT_RDONLY;
-+ break;
-+
-+ case 'u':
-+ flags |= MNT_UPDATE;
-+ break;
-+#endif
-
- default:
- fprintf(stderr, "Unknown option\n");
-@@ -555,15 +590,44 @@
- return;
- }
-
-+#ifdef linux
- if (mount(argv[0], argv[1], type, flags, 0) < 0)
- perror("mount failed");
-+#endif
-+#ifdef __FreeBSD__
-+ /* Select type of struct args */
-+ if(strcmp(type,"ufs")==0) {
-+ ufs.fspec=argv[0];
-+ args=&ufs;
-+ } else if(strcmp(type,"msdos")==0) {
-+ msdos.fspec=argv[0];
-+ args=&msdos;
-+ } else if(strcmp(type,"ext2fs")==0) {
-+ ufs.fspec=argv[0];
-+ args=&ufs;
-+ } else if(strcmp(type,"cd9660")==0) {
-+ iso.fspec=argv[0];
-+ flags|=MNT_RDONLY;
-+ args=&iso;
-+ } else {
-+ fprintf(stderr,"Unsupported FS type %s\n",type);
-+ return;
-+ }
-+ if(mount(type,argv[1],flags,args)!=0) {
-+ perror("mount failed");
-+ }
-+#endif
- }
-
-
- void
- do_umount(int argc, const char ** argv)
- {
-+#ifdef __FreeBSD__
-+ if (unmount(argv[1],0) < 0)
-+#else
- if (umount(argv[1]) < 0)
-+#endif
- perror(argv[1]);
- }
-
diff --git a/shells/sash/files/patch-am b/shells/sash/files/patch-am
deleted file mode 100644
index ae299ebf9490..000000000000
--- a/shells/sash/files/patch-am
+++ /dev/null
@@ -1,115 +0,0 @@
-diff -NPru sash.c.orig sash.c
---- sash.c.orig Sat Sep 25 06:03:51 1999
-+++ sash.c Sat Jan 22 23:50:57 2000
-@@ -57,11 +57,13 @@
- ""
- },
-
-+#ifdef HAVE_AR
- {
- "-ar", do_ar, 3, INFINITE_ARGS,
- "Extract or list files from an AR file",
- "[txp]v arFileName fileName ..."
- },
-+#endif
-
- {
- "cd", do_cd, 1, 2,
-@@ -107,11 +109,13 @@
- "srcName ... destName"
- },
-
-+#ifdef HAVE_DD
- {
- "-dd", do_dd, 3, INFINITE_ARGS,
- "Copy data between two files",
- "if=name of=name [bs=n] [count=n] [skip=n] [seek=n]"
- },
-+#endif
-
- {
- "-echo", do_echo, 1, INFINITE_ARGS,
-@@ -119,11 +123,13 @@
- "[args] ..."
- },
-
-+#ifdef HAVE_ED
- {
- "-ed", do_ed, 1, 2,
- "Edit a fileName using simple line mode commands",
- "[fileName]"
- },
-+#endif
-
- {
- "exec", do_exec, 2, INFINITE_ARGS,
-@@ -137,23 +143,29 @@
- ""
- },
-
-+#ifdef HAVE_FILE
- {
- "-file", do_file, 1, INFINITE_ARGS,
- "Describe information about files",
- "fileName ..."
- },
-+#endif
-
-+#ifdef HAVE_FIND
- {
- "-find", do_find, 2, INFINITE_ARGS,
- "Find files in a directory tree meeting some conditions",
- "dirName [-xdev] [-type chars] [-name pattern] [-size minSize]"
- },
-+#endif
-
-+#ifdef HAVE_GREP
- {
- "-grep", do_grep, 3, INFINITE_ARGS,
- "Look for lines containing a word in some files",
- "[-in] word fileName ..."
- },
-+#endif
-
- #ifdef HAVE_GZIP
- {
-@@ -187,11 +199,13 @@
- "[-s] srcName ... destName"
- },
-
-+#ifdef HAVE_LS
- {
- "-ls", do_ls, 1, INFINITE_ARGS,
- "List information about files or directories",
- "[-lidFC] fileName ..."
- },
-+#endif
-
- #ifdef HAVE_EXT2
- {
-@@ -222,7 +236,11 @@
- {
- "-mount", do_mount, 3, INFINITE_ARGS,
- "Mount or remount a filesystem on a directory",
-+#ifdef __FreeBSD__
-+ "[-t type] [-r] [-u] devName dirName"
-+#else
- "[-t type] [-r] [-m] devName dirName"
-+#endif
- },
-
- {
-@@ -291,11 +309,13 @@
- ""
- },
-
-+#ifdef HAVE_TAR
- {
- "-tar", do_tar, 2, INFINITE_ARGS,
- "Create, extract, or list files from a TAR file",
- "[cxtv]f tarFileName fileName ..."
- },
-+#endif
-
- {
- "-touch", do_touch, 2, INFINITE_ARGS,
diff --git a/shells/sash/files/patch-an b/shells/sash/files/patch-an
deleted file mode 100644
index 4e827a9e587e..000000000000
--- a/shells/sash/files/patch-an
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -NPru sash.h.orig sash.h
---- sash.h.orig Sat Sep 25 06:03:51 1999
-+++ sash.h Sat Jan 22 19:38:16 2000
-@@ -16,7 +16,9 @@
- #include <fcntl.h>
- #include <string.h>
- #include <memory.h>
-+#ifndef __FreeBSD__
- #include <malloc.h>
-+#endif
- #include <time.h>
- #include <ctype.h>
-
diff --git a/shells/sash/files/patch-cmd_ls.c b/shells/sash/files/patch-cmd_ls.c
new file mode 100644
index 000000000000..28b244364c49
--- /dev/null
+++ b/shells/sash/files/patch-cmd_ls.c
@@ -0,0 +1,20 @@
+--- cmd_ls.c.orig Fri Sep 3 15:18:46 2004
++++ cmd_ls.c Fri Sep 3 15:19:18 2004
+@@ -380,7 +380,7 @@
+ */
+ if (flags & LSF_INODE)
+ {
+- sprintf(cp, "%7ld ", statBuf->st_ino);
++ sprintf(cp, "%7d ", statBuf->st_ino);
+ cp += strlen(cp);
+ }
+
+@@ -434,7 +434,7 @@
+ ((unsigned long) statBuf->st_rdev) & 0xff);
+ }
+ else
+- sprintf(cp, "%8ld ", statBuf->st_size);
++ sprintf(cp, "%8lld ", statBuf->st_size);
+
+ cp += strlen(cp);
+
diff --git a/shells/sash/files/patch-cmds.c b/shells/sash/files/patch-cmds.c
new file mode 100644
index 000000000000..dd4d50092d8f
--- /dev/null
+++ b/shells/sash/files/patch-cmds.c
@@ -0,0 +1,93 @@
+--- cmds.c.orig Mon Jul 22 00:28:19 2002
++++ cmds.c Fri Sep 3 16:35:01 2004
+@@ -17,6 +17,18 @@
+ #include <utime.h>
+ #include <errno.h>
+
++#if __FreeBSD__
++#include <ufs/ufs/ufsmount.h>
++#include <isofs/cd9660/cd9660_mount.h>
++#if __FreeBSD_version >= 500019
++#include <fs/msdosfs/msdosfsmount.h>
++#include <fs/ntfs/ntfsmount.h>
++#else
++#include <msdosfs/msdosfsmount.h>
++#include <ntfs/ntfsmount.h>
++#endif
++#endif
++
+ #if HAVE_LINUX_MOUNT
+ #include <linux/fs.h>
+ #endif
+@@ -564,6 +576,10 @@
+ flags |= MNT_RDONLY;
+ break;
+
++ case 'u':
++ flags |= MNT_UPDATE;
++ break;
++
+ case 's':
+ flags |= MNT_NOSUID;
+ break;
+@@ -594,35 +610,47 @@
+ #elif HAVE_BSD_MOUNT
+ {
+ struct ufs_args ufs;
+- struct adosfs_args adosfs;
+ struct iso_args iso;
+- struct mfs_args mfs;
+ struct msdosfs_args msdosfs;
++ struct ntfs_args ntfs;
+ void * args;
+
+ if(!strcmp(type, "ffs") || !strcmp(type, "ufs")) {
++ memset(&ufs, 0, sizeof(ufs));
+ ufs.fspec = (char*) argv[0];
+ args = &ufs;
+- } else if(!strcmp(type, "adosfs")) {
+- adosfs.fspec = (char*) argv[0];
+- adosfs.uid = 0;
+- adosfs.gid = 0;
+- args = &adosfs;
+ } else if(!strcmp(type, "cd9660")) {
++ memset(&iso, 0, sizeof(iso));
+ iso.fspec = (char*) argv[0];
+ args = &iso;
+- } else if(!strcmp(type, "mfs")) {
+- mfs.fspec = (char*) argv[0];
+- args = &mfs;
++ } else if(!strcmp(type, "ext2fs")) {
++ memset(&ufs, 0, sizeof(ufs));
++ ufs.fspec = (char*) argv[0];
++ args = &ufs;
+ } else if(!strcmp(type, "msdos")) {
++ memset(&msdosfs, 0, sizeof(msdosfs));
+ msdosfs.fspec = (char*) argv[0];
+- msdosfs.uid = 0;
+- msdosfs.gid = 0;
++ if (flags & MNT_RDONLY) {
++ msdosfs.export.ex_flags = MNT_EXRDONLY;
++ msdosfs.mask = msdosfs.dirmask = 0555;
++ } else {
++ msdosfs.mask = msdosfs.dirmask = 7555;
++ }
+ args = &msdosfs;
++ } else if(!strcmp(type, "ntfs")) {
++ memset(&ntfs, 0, sizeof(ntfs));
++ ntfs.fspec = (char*) argv[0];
++ if (flags & MNT_RDONLY) {
++ ntfs.export.ex_flags = MNT_EXRDONLY;
++ ntfs.mode = 0555;
++ } else {
++ ntfs.mode = 0755;
++ }
++ args = &ntfs;
+ } else {
+ fprintf(stderr, "Unknown filesystem type: %s", type);
+ fprintf(stderr,
+- "Supported: ffs ufs adosfs cd9660 mfs msdos\n");
++ "Supported: ffs ufs cd9660 ext2fs msdos ntfs\n");
+ return;
+ }
+
diff --git a/shells/sash/files/patch-sash.h b/shells/sash/files/patch-sash.h
new file mode 100644
index 000000000000..bc59eb6cea16
--- /dev/null
+++ b/shells/sash/files/patch-sash.h
@@ -0,0 +1,11 @@
+--- sash.h.orig Mon Jul 22 00:05:17 2002
++++ sash.h Fri Sep 3 15:27:16 2004
+@@ -18,7 +18,7 @@
+ #include <time.h>
+ #include <ctype.h>
+
+-#if __OpenBSD__
++#if __FreeBSD__ || __OpenBSD__
+ #include <sys/param.h>
+ #endif
+