Path: utzoo!attcan!uunet!husc6!mailrus!ames!sgi!jmb From: jmb@patton.SGI.COM (Jim Barton) Newsgroups: comp.sys.sgi Subject: 'expand.c' diffs for ksh-i under SGI UNIX Keywords: ksh 4D Message-ID: <18617@sgi.SGI.COM> Date: 7 Aug 88 21:51:47 GMT Sender: daemon@sgi.SGI.COM Organization: Silicon Graphics Inc, Mountain View, CA Lines: 140 Several people have asked for what I did to make ksh filename handling work under IRIX. Following is a context diff for 'expand.c' in the sh/ directory. Apply by hand or with 'patch' or other suitable tool. Note that this is for KSH-I. For older versions of ksh, the fix is essentially identical. (I've been involved with SIGGRAPH very heavily the last few weeks, and thus the delay ...). Also remember to add '-lsun -lbsd' in the link line to insure getting routines that cooperate with NFS and Yellow Pages. -- Jim Barton Silicon Graphics Computing Systems "UNIX: Live Free Or Die!" jmb@sgi.sgi.com, sgi!jmb@decwrl.dec.com, ...{decwrl,sun}!sgi!jmb "I used to be disgusted, now I'm just amused." - Elvis Costello, 'Red Shoes' -- ----------------------- cut here ------------------------------------ *** expand.c Sun Aug 7 14:35:27 1988 --- Oexpand.c Sun Aug 7 14:35:38 1988 *************** *** 22,27 #include #include #include "defs.h" #include "brkincr.h" #include "stak.h" --- 22,28 ----- #include #include + #include #include "defs.h" #include "brkincr.h" #include "stak.h" *************** *** 28,45 #include "sym.h" #include "shtype.h" - #ifdef mips - # define BSD_4_2 - # include - #else - # ifdef sgi - # define BSD_4_2 - # include - # else - # include - # endif - #endif - void rm_files(); int expand(); --- 29,34 ----- #include "sym.h" #include "shtype.h" void rm_files(); int expand(); *************** *** 83,92 /* this union forces enough space for the NULL byte */ union Dirent { - # ifdef mips - struct dirent entry; - char entrybuf[sizeof(struct dirent)+1]; /* room for null byte */ - # else struct direct entry; char entrybuf[sizeof(struct direct)+1]; /* room for null byte */ # endif --- 72,77 ----- /* this union forces enough space for the NULL byte */ union Dirent { struct direct entry; char entrybuf[sizeof(struct direct)+1]; /* room for null byte */ }; *************** *** 89,95 # else struct direct entry; char entrybuf[sizeof(struct direct)+1]; /* room for null byte */ - # endif }; union Dirent dirent; # ifdef mips --- 74,79 ----- { struct direct entry; char entrybuf[sizeof(struct direct)+1]; /* room for null byte */ }; union Dirent dirent; struct direct *entry = &dirent.entry; *************** *** 92,100 # endif }; union Dirent dirent; - # ifdef mips - struct dirent *entry = &dirent.entry; - # else struct direct *entry = &dirent.entry; # endif #ifndef BSD_4_2 --- 76,81 ----- char entrybuf[sizeof(struct direct)+1]; /* room for null byte */ }; union Dirent dirent; struct direct *entry = &dirent.entry; #ifndef BSD_4_2 char dirbuff[BUFSIZ]; *************** *** 96,102 struct dirent *entry = &dirent.entry; # else struct direct *entry = &dirent.entry; - # endif #ifndef BSD_4_2 char dirbuff[BUFSIZ]; #endif /* BSD_4_2 */ --- 77,82 ----- }; union Dirent dirent; struct direct *entry = &dirent.entry; #ifndef BSD_4_2 char dirbuff[BUFSIZ]; #endif /* BSD_4_2 */