edmoy@violet.berkeley.edu (Edward Moy) (06/03/89)
[New Patches to CAP - part 1 of 2]
CAP is a set of UNIX programs from Columbia University that allow UNIX
machines to act as AppleShare file servers and LaserWriter spoolers.
It also provides a set of libraries for programmer to write their own
AppleTalk applications. CAP requires a Kinetic FastPath running the
KIP code from Stanford or the K-Star code from Kinetics, which both
encapsulate the AppleTalk packets in UDP before putting them on the
ethernet.
---
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#
# README
# Configure.diff
# abasp.c.diff
# abatp.c.diff
# abkip.c.diff
# afpc.c.diff
# afpcmd.h.diff
# afpdid.c.diff
# afpdir.c.diff
# afpdt.c.diff
# afposenum.c.diff
# afposfi.c.diff
# afps.h.diff
# afpserver.c.diff
# atalkdbm.c.diff
# atis.c.diff
# papof.c.diff
#
# This archive created: Sat Jun 3 07:29:27 1989
# By: Roger L. Long (bytebug@dhw68k.cts.com)
#
export PATH; PATH=/bin:$PATH
echo shar: extracting "'README'" '(1318 characters)'
if test -f 'README'
then
echo shar: will not over-write existing file "'README'"
else
sed 's/^X//' << \SHAR_EOF > 'README'
XThe patches included in this distribution contain the following:
X
X1) In AUFS, #ifdef SIZESERVER lines that allow 4.3BSD systems to show volume
Xinfo (previously distributed as sizeserver.shar; needs additional code to
Xuse this).
X
X2) In AUFS, #ifdef NOCASEMATCH lines that fixes the case sensitivity of UNIX
X(Mac filesystems are case-insensitive). There is some performance degradation,
Xespecially when the filename to search for has modified case, like the way
XHyperCard 1.2.1 changes the case of letters in a stack name.
X
X3) CAP now compilies under GCC. Various changes were made to fix incompatibil-
Xities with the preprocessors, as well as to silence various warning messages.
XThe -DGNUCC flags needs to be given to the compiler.
X
X4) On NeXT machines (with GCC), Configure has been modified so that "next" can
Xbe given as an OS type. It automatically adds -DGNUCC to the C compilier
Xflags. (I don't know how to detect a NeXT machine in the Configure script,
Xespecially since the entire filesystem may change between 0.8 and 0.9.)
X
X5) Various minor code enhancements, with no change in functionality.
X
XEdward Moy Principal Programmer - Macintosh & Unix
XWorkstation Support Services Workstation Software Support Group
XUniversity of California
XBerkeley, CA 94720
X
Xedmoy@violet.Berkeley.EDU
Xucbvax!violet!edmoy
SHAR_EOF
if test 1318 -ne "`wc -c < 'README'`"
then
echo shar: error transmitting "'README'" '(should have been 1318 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'Configure.diff'" '(2258 characters)'
if test -f 'Configure.diff'
then
echo shar: will not over-write existing file "'Configure.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'Configure.diff'
X*** Configure.orig Thu Feb 9 21:01:00 1989
X--- Configure Thu Feb 9 21:01:50 1989
X***************
X*** 141,146
X "aux") valid=1;;
X "pyr") valid=1;;
X "sunos") valid=1;;
X "?"|*)
X if [ "${os}" != "?" ]; then
X echo "unknown type ${os}, valid are:"
X
X--- 141,147 -----
X "aux") valid=1;;
X "pyr") valid=1;;
X "sunos") valid=1;;
X+ "next") valid=1;;
X "?"|*)
X if [ "${os}" != "?" ]; then
X echo "unknown type ${os}, valid are:"
X***************
X*** 152,157
X echo " aux - A/UX";
X echo " pyr - pyramid";
X echo " sunos - suns";
X ;;
X esac
X done
X
X--- 153,159 -----
X echo " aux - A/UX";
X echo " pyr - pyramid";
X echo " sunos - suns";
X+ echo " next - NeXT/MACH";
X ;;
X esac
X done
X***************
X*** 299,304
X # "aux" - A/UX
X # "pyr" - pyramid (in BSD universe)
X # "sunos" - SunOS
X # Warning: hpux, pyr are hardcoded in some of the makefiles (sorry)
X
X # MAJOR CONFIGURATION
X
X--- 301,307 -----
X # "aux" - A/UX
X # "pyr" - pyramid (in BSD universe)
X # "sunos" - SunOS
X+ # "next" - NeXT/MACH
X # Warning: hpux, pyr are hardcoded in some of the makefiles (sorry)
X
X # MAJOR CONFIGURATION
X***************
X*** 448,453
X os,[hpux],[HP-UX (for 9000 series)],
X os,[bsd],[Standard BSD],
X os,[pyr],[Pyramid in BSD universe],
X [Unknown]))
X define([cflags],ifdef([selfdefinetypes],[-O -D_TYPES],[-O]))
X define([bigcflags],ifelse(os,[hpux],[+Nd2000 +Ns2000]))
X
X--- 451,457 -----
X os,[hpux],[HP-UX (for 9000 series)],
X os,[bsd],[Standard BSD],
X os,[pyr],[Pyramid in BSD universe],
X+ os,[next],[NeXT/MACH],
X [Unknown]))
X define([cflags],ifdef([selfdefinetypes],[-O -D_TYPES],[-O]))
X define([bigcflags],ifelse(os,[hpux],[+Nd2000 +Ns2000]))
X***************
X*** 453,458
X define([bigcflags],ifelse(os,[hpux],[+Nd2000 +Ns2000]))
X ifelse(os,[pyr],[
X define([cflags],concat(cflags,[ -q]))])
X # was used for nbp, but found we needed more... leave in case
X define([nbpflags],[])
X
X
X--- 457,464 -----
X define([bigcflags],ifelse(os,[hpux],[+Nd2000 +Ns2000]))
X ifelse(os,[pyr],[
X define([cflags],concat(cflags,[ -q]))])
X+ ifelse(os,[next],[
X+ define([cflags],concat(cflags,[ -DGNUCC]))])
X # was used for nbp, but found we needed more... leave in case
X define([nbpflags],[])
X
SHAR_EOF
if test 2258 -ne "`wc -c < 'Configure.diff'`"
then
echo shar: error transmitting "'Configure.diff'" '(should have been 2258 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'abasp.c.diff'" '(2206 characters)'
if test -f 'abasp.c.diff'
then
echo shar: will not over-write existing file "'abasp.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'abasp.c.diff'
X*** lib/cap/abasp.c.orig Thu May 19 12:16:31 1988
X--- lib/cap/abasp.c Fri Jan 27 14:50:59 1989
X***************
X*** 25,33
X #include "abasp.h"
X
X int aspInit();
X! SPGetParms();
X! SPInit();
X! SPGetNetworkInfo();
X private void handle_aspserver();
X private void asp_doopensess();
X private void sessopenreply();
X
X--- 25,33 -----
X #include "abasp.h"
X
X int aspInit();
X! int SPGetParms();
X! int SPInit();
X! int SPGetNetworkInfo();
X private void handle_aspserver();
X private void asp_doopensess();
X private void sessopenreply();
X***************
X*** 31,41
X private void handle_aspserver();
X private void asp_doopensess();
X private void sessopenreply();
X! SPGetSession();
X! SPCloseSession();
X! SPGetRequest();
X! SPCmdReply();
X! SPWrtReply();
X private int spreply();
X SPWrtContinue();
X SPNewStatus();
X
X--- 31,41 -----
X private void handle_aspserver();
X private void asp_doopensess();
X private void sessopenreply();
X! int SPGetSession();
X! int SPCloseSession();
X! int SPGetRequest();
X! int SPCmdReply();
X! int SPWrtReply();
X private int spreply();
X int SPWrtContinue();
X int SPNewStatus();
X***************
X*** 37,45
X SPCmdReply();
X SPWrtReply();
X private int spreply();
X! SPWrtContinue();
X! SPNewStatus();
X! SPAttention();
X
X SPGetStatus();
X SPOpenSession();
X
X--- 37,45 -----
X int SPCmdReply();
X int SPWrtReply();
X private int spreply();
X! int SPWrtContinue();
X! int SPNewStatus();
X! int SPAttention();
X
X int SPGetStatus();
X int SPOpenSession();
X***************
X*** 41,48
X SPNewStatus();
X SPAttention();
X
X! SPGetStatus();
X! SPOpenSession();
X private void handle_aspclient();
X SPCommand();
X SPWrite();
X
X--- 41,48 -----
X int SPNewStatus();
X int SPAttention();
X
X! int SPGetStatus();
X! int SPOpenSession();
X private void handle_aspclient();
X int SPCommand();
X int SPWrite();
X***************
X*** 44,51
X SPGetStatus();
X SPOpenSession();
X private void handle_aspclient();
X! SPCommand();
X! SPWrite();
X private void asp_do_write();
X
X private void handle_asp_sndreq();
X
X--- 44,51 -----
X int SPGetStatus();
X int SPOpenSession();
X private void handle_aspclient();
X! int SPCommand();
X! int SPWrite();
X private void asp_do_write();
X
X private void handle_asp_sndreq();
SHAR_EOF
if test 2206 -ne "`wc -c < 'abasp.c.diff'`"
then
echo shar: error transmitting "'abasp.c.diff'" '(should have been 2206 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'abatp.c.diff'" '(448 characters)'
if test -f 'abatp.c.diff'
then
echo shar: will not over-write existing file "'abatp.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'abatp.c.diff'
X*** lib/cap/abatp.c.orig Thu May 19 12:16:35 1988
X--- lib/cap/abatp.c Fri Jan 27 14:49:11 1989
X***************
X*** 83,88
X {(caddr_t)&atph, atpSize}, /* atp */
X {(caddr_t)atpdata, atpMaxData} /* atp user data */
X };
X
X /*
X * ATPSndRequest
X
X--- 83,90 -----
X {(caddr_t)&atph, atpSize}, /* atp */
X {(caddr_t)atpdata, atpMaxData} /* atp user data */
X };
X+ private delete_tcb_skt();
X+ private int ATPWrite();
X
X /*
X * ATPSndRequest
SHAR_EOF
if test 448 -ne "`wc -c < 'abatp.c.diff'`"
then
echo shar: error transmitting "'abatp.c.diff'" '(should have been 448 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'abkip.c.diff'" '(710 characters)'
if test -f 'abkip.c.diff'
then
echo shar: will not over-write existing file "'abkip.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'abkip.c.diff'
X*** lib/cap/abkip.c.orig Thu May 19 12:16:50 1988
X--- lib/cap/abkip.c Fri Jan 27 14:55:42 1989
X***************
X*** 278,284
X return(ddpSktErr);
X for (i=0; i < 128; i++,ipskt++,(*skt)++) {
X lsin.sin_port = htons(ipskt);
X! if ((err = bind(fd, (caddr_t)&lsin, sizeof(lsin))) == 0)
X break;
X if (rskt != 0) /* bind failed and wanted exact? */
X return(err); /* yes... */
X
X--- 278,284 -----
X return(ddpSktErr);
X for (i=0; i < 128; i++,ipskt++,(*skt)++) {
X lsin.sin_port = htons(ipskt);
X! if ((err = bind(fd, (struct sockaddr *)&lsin, sizeof(lsin))) == 0)
X break;
X if (rskt != 0) /* bind failed and wanted exact? */
X return(err); /* yes... */
SHAR_EOF
if test 710 -ne "`wc -c < 'abkip.c.diff'`"
then
echo shar: error transmitting "'abkip.c.diff'" '(should have been 710 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afpc.c.diff'" '(1428 characters)'
if test -f 'afpc.c.diff'
then
echo shar: will not over-write existing file "'afpc.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afpc.c.diff'
X*** lib/afpc/afpc.c.orig Thu May 19 12:17:22 1988
X--- lib/afpc/afpc.c Thu Jan 26 15:36:31 1989
X***************
X*** 286,292
X {
X char lbuf[sizeof(FlushPkt)+1];
X int len;
X! extern PackEntry ProtoFVP[];
X
X len = htonPackX(ProtoCFP, fv, lbuf);
X
X
X--- 286,292 -----
X {
X char lbuf[sizeof(FlushPkt)+1];
X int len;
X! extern PackEntry ProtoCFP[];
X
X len = htonPackX(ProtoCFP, fv, lbuf);
X
X***************
X*** 319,325
X char lbuf[sizeof(GetAPPLPkt)+1];
X char buf[sizeof(GetAPPLReplyPkt)+1];
X int rlen, comp, len;
X! extern PackEntry ProtoGAP[], ProtoGAPR[];
X
X len = htonPackX(ProtoGAP, gap, lbuf);
X SPCommand(srn,lbuf,len,buf,sizeof(GetAPPLReplyPkt),cr,&rlen,-1,&comp);
X
X--- 319,325 -----
X char lbuf[sizeof(GetAPPLPkt)+1];
X char buf[sizeof(GetAPPLReplyPkt)+1];
X int rlen, comp, len;
X! extern PackEntry ProtoGAP[], ProtoGAPR[], ProtoFileAttr[];
X
X len = htonPackX(ProtoGAP, gap, lbuf);
X SPCommand(srn,lbuf,len,buf,sizeof(GetAPPLReplyPkt),cr,&rlen,-1,&comp);
X***************
X*** 714,720
X word *refnum;
X dword *cr;
X {
X! extern PackEntry ProtoOFkP[];
X byte lbuf[sizeof(OpenForkPkt)], buf[sizeof(FileDirParm)+20], *p;
X int rlen, comp, len;
X word bitmap;
X
X--- 714,720 -----
X word *refnum;
X dword *cr;
X {
X! extern PackEntry ProtoOFkP[], ProtoFileAttr[];
X byte lbuf[sizeof(OpenForkPkt)], buf[sizeof(FileDirParm)+20], *p;
X int rlen, comp, len;
X word bitmap;
SHAR_EOF
if test 1428 -ne "`wc -c < 'afpc.c.diff'`"
then
echo shar: error transmitting "'afpc.c.diff'" '(should have been 1428 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afpcmd.h.diff'" '(3235 characters)'
if test -f 'afpcmd.h.diff'
then
echo shar: will not over-write existing file "'afpcmd.h.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afpcmd.h.diff'
X*** netat/afpcmd.h.orig Thu May 19 12:16:16 1988
X--- netat/afpcmd.h Fri Jan 27 12:52:44 1989
X***************
X*** 624,629
X /* Pack(pointer, type of data, scalar result field) */
X #define PACK(pt,t,s) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),0}
X /* Paks(pointer, type of data, array result field) */
X #define PAKS(pt,t,s) {t,(int) ((pt) 0)->s,sizeof(((pt) 0)->s),0}
X /* Both require that a "type of data" field type P_BMAP be set first */
X /* pakb(pointer, type of data, scalar result field, bit of bitmap */
X
X--- 624,632 -----
X /* Pack(pointer, type of data, scalar result field) */
X #define PACK(pt,t,s) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),0}
X /* Paks(pointer, type of data, array result field) */
X+ #ifdef GNUCC
X+ #define PAKS(pt,t,s) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),0}
X+ #else GNUCC
X #define PAKS(pt,t,s) {t,(int) ((pt) 0)->s,sizeof(((pt) 0)->s),0}
X #endif GNUCC
X /* Both require that a "type of data" field type P_BMAP be set first */
X***************
X*** 625,630
X #define PACK(pt,t,s) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),0}
X /* Paks(pointer, type of data, array result field) */
X #define PAKS(pt,t,s) {t,(int) ((pt) 0)->s,sizeof(((pt) 0)->s),0}
X /* Both require that a "type of data" field type P_BMAP be set first */
X /* pakb(pointer, type of data, scalar result field, bit of bitmap */
X #define PAKB(pt,t,s,b) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),b}
X
X--- 628,634 -----
X #define PAKS(pt,t,s) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),0}
X #else GNUCC
X #define PAKS(pt,t,s) {t,(int) ((pt) 0)->s,sizeof(((pt) 0)->s),0}
X+ #endif GNUCC
X /* Both require that a "type of data" field type P_BMAP be set first */
X /* pakb(pointer, type of data, scalar result field, bit of bitmap */
X #define PAKB(pt,t,s,b) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),b}
X***************
X*** 629,634
X /* pakb(pointer, type of data, scalar result field, bit of bitmap */
X #define PAKB(pt,t,s,b) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),b}
X /* pksb(pointer, type of data, array result field, bit of bitmap */
X #define PKSB(pt,t,s,b) {t,(int) ((pt) 0)->s,sizeof(((pt) 0)->s),b}
X
X /* Pack even - to mark that we should be on even boundary */
X
X--- 633,641 -----
X /* pakb(pointer, type of data, scalar result field, bit of bitmap */
X #define PAKB(pt,t,s,b) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),b}
X /* pksb(pointer, type of data, array result field, bit of bitmap */
X+ #ifdef GNUCC
X+ #define PKSB(pt,t,s,b) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),b}
X+ #else GNUCC
X #define PKSB(pt,t,s,b) {t,(int) ((pt) 0)->s,sizeof(((pt) 0)->s),b}
X #endif GNUCC
X
X***************
X*** 630,635
X #define PAKB(pt,t,s,b) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),b}
X /* pksb(pointer, type of data, array result field, bit of bitmap */
X #define PKSB(pt,t,s,b) {t,(int) ((pt) 0)->s,sizeof(((pt) 0)->s),b}
X
X /* Pack even - to mark that we should be on even boundary */
X #define PACKEVEN() {P_EVEN, 0, 0, 0}
X
X--- 637,643 -----
X #define PKSB(pt,t,s,b) {t,(int) &((pt) 0)->s,sizeof(((pt) 0)->s),b}
X #else GNUCC
X #define PKSB(pt,t,s,b) {t,(int) ((pt) 0)->s,sizeof(((pt) 0)->s),b}
X+ #endif GNUCC
X
X /* Pack even - to mark that we should be on even boundary */
X #define PACKEVEN() {P_EVEN, 0, 0, 0}
SHAR_EOF
if test 3235 -ne "`wc -c < 'afpcmd.h.diff'`"
then
echo shar: error transmitting "'afpcmd.h.diff'" '(should have been 3235 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afpdid.c.diff'" '(1305 characters)'
if test -f 'afpdid.c.diff'
then
echo shar: will not over-write existing file "'afpdid.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afpdid.c.diff'
X*** applications/aufs/afpdid.c.orig Thu May 19 12:19:31 1988
X--- applications/aufs/afpdid.c Thu Jan 26 18:19:33 1989
X***************
X*** 85,90
X int xd_idsize; /* size of idirs array */
X } ExtDir;
X
X /*
X * nfind scans and finds whether a particular directory "dir" has a
X * subdirectory by the name "nam"
X
X--- 85,93 -----
X int xd_idsize; /* size of idirs array */
X } ExtDir;
X
X+ private char *ipathstr();
X+ private sdword NewEDirid();
X+
X /*
X * nfind scans and finds whether a particular directory "dir" has a
X * subdirectory by the name "nam"
X***************
X*** 112,118
X char *name;
X {
X IDirP dir;
X- sdword NewEDirid();
X
X dir = (IDirP) malloc(sizeof(IDir));
X dir->name = (char *) malloc((unsigned) strlen(name)+1);
X
X--- 115,120 -----
X char *name;
X {
X IDirP dir;
X
X dir = (IDirP) malloc(sizeof(IDir));
X dir->name = (char *) malloc((unsigned) strlen(name)+1);
X***************
X*** 162,168
X IDirP cd;
X {
X static char paths[MAXPATHLEN];
X- char *ipathstr();
X
X if (lastcd == cd) /* same as last request? */
X return(paths); /* yes.. just return old paths */
X
X--- 164,169 -----
X IDirP cd;
X {
X static char paths[MAXPATHLEN];
X
X if (lastcd == cd) /* same as last request? */
X return(paths); /* yes.. just return old paths */
SHAR_EOF
if test 1305 -ne "`wc -c < 'afpdid.c.diff'`"
then
echo shar: error transmitting "'afpdid.c.diff'" '(should have been 1305 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afpdir.c.diff'" '(459 characters)'
if test -f 'afpdir.c.diff'
then
echo shar: will not over-write existing file "'afpdir.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afpdir.c.diff'
X*** applications/aufs/afpdir.c.orig Thu May 19 12:19:33 1988
X--- applications/aufs/afpdir.c Thu Jan 26 18:17:19 1989
X***************
X*** 43,48
X #include "afpntoh.h"
X #include "afps.h" /* common server header */
X
X /*
X * OSErr FPGetDirParms(byte *p,byte *r,int *rl)
X *
X
X--- 43,50 -----
X #include "afpntoh.h"
X #include "afps.h" /* common server header */
X
X+ private int EnumPack();
X+
X /*
X * OSErr FPGetDirParms(byte *p,byte *r,int *rl)
X *
SHAR_EOF
if test 459 -ne "`wc -c < 'afpdir.c.diff'`"
then
echo shar: error transmitting "'afpdir.c.diff'" '(should have been 459 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afpdt.c.diff'" '(391 characters)'
if test -f 'afpdt.c.diff'
then
echo shar: will not over-write existing file "'afpdt.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afpdt.c.diff'
X*** applications/aufs/afpdt.c.orig Thu May 19 12:19:36 1988
X--- applications/aufs/afpdt.c Thu Jan 26 18:15:43 1989
X***************
X*** 81,86
X #define REMOVEAPPLIDB 0
X #define REMOVEICONIDB 1
X
X /*
X * PrintINode(AVLUData *node)
X *
X
X--- 81,88 -----
X #define REMOVEAPPLIDB 0
X #define REMOVEICONIDB 1
X
X+ private ReadIDesk(), ReadADesk();
X+
X /*
X * PrintINode(AVLUData *node)
X *
SHAR_EOF
if test 391 -ne "`wc -c < 'afpdt.c.diff'`"
then
echo shar: error transmitting "'afpdt.c.diff'" '(should have been 391 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afposenum.c.diff'" '(7261 characters)'
if test -f 'afposenum.c.diff'
then
echo shar: will not over-write existing file "'afposenum.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afposenum.c.diff'
X*** applications/aufs/afposenum.c.orig Thu May 19 12:19:54 1988
X--- applications/aufs/afposenum.c Fri Dec 9 11:13:30 1988
X***************
X*** 29,34
X #include <sys/time.h>
X #include <netat/appletalk.h>
X #include <netat/afp.h>
X #include "afps.h"
X #include "afpdt.h"
X #include "afpgc.h"
X
X--- 29,35 -----
X #include <sys/time.h>
X #include <netat/appletalk.h>
X #include <netat/afp.h>
X+ #include <strings.h>
X #include "afps.h"
X #include "afpdt.h"
X #include "afpgc.h"
X***************
X*** 57,62
X private void EC_Free();
X private iselect();
X
X /*
X * int iselect(struct direct *d)
X *
X
X--- 58,68 -----
X private void EC_Free();
X private iselect();
X
X+ #ifdef NOCASEMATCH
X+ private noCaseDir();
X+ private searchDirectory();
X+ #endif NOCASEMATCH
X+
X /*
X * int iselect(struct direct *d)
X *
X***************
X*** 426,433
X
X OSfname(r,idir,fn,typ)
X IDirP idir;
X! char *fn,*r;
X! int typ;
X {
X char *p;
X
X
X--- 432,439 -----
X
X OSfname(r,idir,fn,typ)
X IDirP idir;
X! register char *fn,*r;
X! register int typ;
X {
X register char *p;
X
X***************
X*** 429,435
X char *fn,*r;
X int typ;
X {
X! char *p;
X
X for (p = pathstr(idir); *p != '\0';) /* copy the directory */
X *r++ = *p++;
X
X--- 435,441 -----
X register char *fn,*r;
X register int typ;
X {
X! register char *p;
X
X for (p = pathstr(idir); *p != '\0';) /* copy the directory */
X *r++ = *p++;
X***************
X*** 434,442
X for (p = pathstr(idir); *p != '\0';) /* copy the directory */
X *r++ = *p++;
X
X- if (typ != F_DATA)
X- *r++ = '/';
X-
X if (typ == F_RSRC || typ == F_FNDR) /* append directory names */
X for (p = ((typ == F_RSRC) ? RFDIRFN : FIDIRFN); *p != '\0'; )
X *r++ = *p++;
X
X--- 440,445 -----
X for (p = pathstr(idir); *p != '\0';) /* copy the directory */
X *r++ = *p++;
X
X if (typ == F_RSRC || typ == F_FNDR) /* append directory names */
X for (p = ((typ == F_RSRC) ? RFDIR : FIDIR); *p != '\0'; )
X *r++ = *p++;
X***************
X*** 438,444
X *r++ = '/';
X
X if (typ == F_RSRC || typ == F_FNDR) /* append directory names */
X! for (p = ((typ == F_RSRC) ? RFDIRFN : FIDIRFN); *p != '\0'; )
X *r++ = *p++;
X
X if (*fn != '\0') /* add slash */
X
X--- 441,447 -----
X *r++ = *p++;
X
X if (typ == F_RSRC || typ == F_FNDR) /* append directory names */
X! for (p = ((typ == F_RSRC) ? RFDIR : FIDIR); *p != '\0'; )
X *r++ = *p++;
X
X if (*fn != '\0') { /* add slash */
X***************
X*** 441,447
X for (p = ((typ == F_RSRC) ? RFDIRFN : FIDIRFN); *p != '\0'; )
X *r++ = *p++;
X
X! if (*fn != '\0') /* add slash */
X *r++ = '/'; /* if not null file */
X while (*fn != '\0')
X *r++ = *fn++;
X
X--- 444,450 -----
X for (p = ((typ == F_RSRC) ? RFDIR : FIDIR); *p != '\0'; )
X *r++ = *p++;
X
X! if (*fn != '\0') { /* add slash */
X *r++ = '/'; /* if not null file */
X while (*fn != '\0')
X *r++ = *fn++;
X***************
X*** 443,450
X
X if (*fn != '\0') /* add slash */
X *r++ = '/'; /* if not null file */
X! while (*fn != '\0')
X! *r++ = *fn++;
X *r = '\0';
X }
X
X
X--- 446,454 -----
X
X if (*fn != '\0') { /* add slash */
X *r++ = '/'; /* if not null file */
X! while (*fn != '\0')
X! *r++ = *fn++;
X! }
X *r = '\0';
X }
X
X***************
X*** 447,452
X *r++ = *fn++;
X *r = '\0';
X }
X-
X
X
X
X--- 451,456 -----
X }
X *r = '\0';
X }
X
X toResFork(str, fn)
X register char *str;
X***************
X*** 449,452
X }
X
X
X
X
X--- 452,462 -----
X *r = '\0';
X }
X
X+ toResFork(str, fn)
X+ register char *str;
X+ char *fn;
X+ {
X+ register char *fp, *tp;
X
X if(*fn) { /* a real file */
X if(fp = rindex(str, '/')) /* skip over last slash */
X***************
X*** 450,452
X
X
X
X
X--- 458,617 -----
X {
X register char *fp, *tp;
X
X+ if(*fn) { /* a real file */
X+ if(fp = rindex(str, '/')) /* skip over last slash */
X+ fp++;
X+ else
X+ fp = str;
X+ str = fp;
X+ fp = str + strlen(str);
X+ tp = fp + DIRRFLEN;
X+ *tp = 0;
X+ while(fp > str) /* move filename, leaving space for .resource */
X+ *--tp = *--fp;
X+ fp = DIRRF;
X+ while(*fp)
X+ *str++ = *fp++;
X+ } else /* a directory */
X+ strcat(str,RFDIR); /* just append .resource */
X+ }
X+
X+ toFinderInfo(str, fn)
X+ register char *str;
X+ char *fn;
X+ {
X+ register char *fp, *tp;
X+
X+ if(*fn) { /* a real file */
X+ if(fp = rindex(str,'/')) /* skip over last slash */
X+ fp++;
X+ else
X+ fp = str;
X+ str = fp;
X+ fp = str + strlen(str);
X+ tp = fp + DIRFILEN;
X+ *tp = 0;
X+ while(fp > str) /* move filename, leaving space for .finderinfo */
X+ *--tp = *--fp;
X+ fp = DIRFI;
X+ while(*fp)
X+ *str++ = *fp++;
X+ } else /* a directory */
X+ strcat(str,FIDIR); /* just append .finderinfo */
X+ }
X+
X+ #ifdef NOCASEMATCH
X+ #include <sys/file.h>
X+ #include <ctype.h>
X+
X+ /*
X+ * searchDirectory(dir, name)
X+ * Do a case insensitive search for name in dir, and write the true name
X+ * of the file in name.
X+ */
X+
X+ private
X+ searchDirectory(dir, name)
X+ char *dir, *name;
X+ {
X+ register char *fp, *tp;
X+ register DIR *dp;
X+ register struct direct *d;
X+ register int len;
X+ char lname[BUFSIZ], dname[BUFSIZ];
X+
X+ if((dp = opendir(dir)) == NULL)
X+ return(0);
X+ len = 0;
X+ for(fp = name, tp = lname ; *fp ; fp++) {
X+ *tp++ = isupper(*fp) ? tolower(*fp) : *fp;
X+ len++;
X+ }
X+ *tp = 0;
X+ while(d = readdir(dp)) {
X+ if(d->d_namlen != len)
X+ continue;
X+ for(fp = d->d_name, tp = dname ; *fp ; fp++)
X+ *tp++ = isupper(*fp) ? tolower(*fp) : *fp;
X+ *tp = 0;
X+ if(strcmp(dname, lname) == 0) {
X+ strcpy(name, d->d_name);
X+ closedir(dp);
X+ return(1);
X+ }
X+ }
X+ closedir(dp);
X+ return(0);
X+ }
X+
X+ /*
X+ * noCaseDir(path)
X+ * Recursively verify the components of path.
X+ */
X+
X+ private
X+ noCaseDir(path)
X+ register char *path;
X+ {
X+ register char *last;
X+ register int status;
X+
X+ if(access(path, F_OK) >= 0)
X+ return(1);
X+ if(last = rindex(path, '/')) {
X+ if(last == path)
X+ return(searchDirectory("/", last + 1));
X+ else {
X+ *last++ = 0;
X+ status = 0;
X+ if(noCaseDir(path))
X+ status = searchDirectory(path, last);
X+ *--last = '/';
X+ return(status);
X+ }
X+ }
X+ return(searchDirectory(".", path));
X+ }
X+
X+ /*
X+ * noCaseFind(path)
X+ * noCaseFind() calls noCaseDir() and searchDirectory() recursively to
X+ * take path (case insensitive) and converts it to (case sensitive) newpath
X+ * corresponding to the true Unix filename. This is mainly to fix
X+ * HyperCard doing funny things to stack names.
X+ */
X+
X+ void
X+ noCaseFind(path)
X+ register char *path;
X+ {
X+ register char *last;
X+
X+ if(last = rindex(path, '/')) {
X+ if(last == path)
X+ searchDirectory("/", last + 1);
X+ else {
X+ *last++ = 0;
X+ if(noCaseDir(path))
X+ searchDirectory(path, last);
X+ *--last = '/';
X+ }
X+ } else
X+ searchDirectory(".", path);
X+ }
X+
X+ /*
X+ * noCaseMatch(path)
X+ * noCaseMatch() tests path first and will call noCaseFind() is path
X+ * doesn't exist.
X+ */
X+
X+ void
X+ noCaseMatch(path)
X+ register char *path;
X+ {
X+ if(access(path, F_OK) >= 0)
X+ return;
X+ noCaseFind(path);
X+ }
X+ #endif NOCASEMATCH
SHAR_EOF
if test 7261 -ne "`wc -c < 'afposenum.c.diff'`"
then
echo shar: error transmitting "'afposenum.c.diff'" '(should have been 7261 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afposfi.c.diff'" '(6644 characters)'
if test -f 'afposfi.c.diff'
then
echo shar: will not over-write existing file "'afposfi.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afposfi.c.diff'
X*** applications/aufs/afposfi.c.orig Thu May 19 12:19:56 1988
X--- applications/aufs/afposfi.c Thu Jan 26 18:22:52 1989
X***************
X*** 63,68
X private void fc_flush_start();
X private void fc_flush_end();
X private FileInfo *os_getfi();
X
X #define FICacheSize 128
X /* Each cache entry has a lifetime that it goes through before it must */
X
X--- 63,69 -----
X private void fc_flush_start();
X private void fc_flush_end();
X private FileInfo *os_getfi();
X+ private fc_readent();
X
X #define FICacheSize 128
X /* Each cache entry has a lifetime that it goes through before it must */
X***************
X*** 104,109
X
X OSfname(path, pdir, "", F_FNDR); /* get directory */
X if (stat(path, &stb) < 0) {
X fcf_val_dir = NILDIR;
X fcf_val_time = 0;
X return; /* nothing else we can do */
X
X--- 105,118 -----
X
X OSfname(path, pdir, "", F_FNDR); /* get directory */
X if (stat(path, &stb) < 0) {
X+ #ifdef NOCASEMATCH
X+ noCaseFind(path);
X+ if (stat(path, &stb) < 0) {
X+ fcf_val_dir = NILDIR;
X+ fcf_val_time = 0;
X+ return; /* nothing else we can do */
X+ }
X+ #else NOCASEMATCH
X fcf_val_dir = NILDIR;
X fcf_val_time = 0;
X return; /* nothing else we can do */
X***************
X*** 107,112
X fcf_val_dir = NILDIR;
X fcf_val_time = 0;
X return; /* nothing else we can do */
X }
X fcf_val_dir = pdir;
X fcf_val_time = stb.st_mtime; /* remember */
X
X--- 116,122 -----
X fcf_val_dir = NILDIR;
X fcf_val_time = 0;
X return; /* nothing else we can do */
X+ #endif NOCASEMATCH
X }
X fcf_val_dir = pdir;
X fcf_val_time = stb.st_mtime; /* remember */
X***************
X*** 142,147
X if (fcf_val_dir == fe->fe_pdir &&
X (fcf_val_time > fe->fe_mtime) &&
X (fcf_val_time > fe->fe_vtime)) {
X if (stat(path, &stb) < 0)
X return; /* nothing else we can do */
X if (stb.st_mtime != fe->fe_mtime) /* reload entry */
X
X--- 152,164 -----
X if (fcf_val_dir == fe->fe_pdir &&
X (fcf_val_time > fe->fe_mtime) &&
X (fcf_val_time > fe->fe_vtime)) {
X+ #ifdef NOCASEMATCH
X+ if (stat(path, &stb) < 0) {
X+ noCaseFind(path);
X+ if (stat(path, &stb) < 0)
X+ return; /* nothing else we can do */
X+ }
X+ #else NOCASEMATCH
X if (stat(path, &stb) < 0)
X return; /* nothing else we can do */
X #endif NOCASEMATCH
X***************
X*** 144,149
X (fcf_val_time > fe->fe_vtime)) {
X if (stat(path, &stb) < 0)
X return; /* nothing else we can do */
X if (stb.st_mtime != fe->fe_mtime) /* reload entry */
X fe->fe_okay = FALSE; /* make entry as bad */
X }
X
X--- 161,167 -----
X #else NOCASEMATCH
X if (stat(path, &stb) < 0)
X return; /* nothing else we can do */
X+ #endif NOCASEMATCH
X if (stb.st_mtime != fe->fe_mtime) /* reload entry */
X fe->fe_okay = FALSE; /* make entry as bad */
X }
X***************
X*** 167,172
X if ((fe->fe_pdir->flags & DID_FINDERINFO) == 0) /* always okay */
X return(fe->fe_okay);
X OSfname(path, fe->fe_pdir, fe->fe_fnam, F_FNDR);
X if (stat(path, &stb) < 0)
X return(fe->fe_okay); /* nothing else we can do */
X if (stb.st_mtime != fe->fe_mtime) /* reload entry */
X
X--- 185,197 -----
X if ((fe->fe_pdir->flags & DID_FINDERINFO) == 0) /* always okay */
X return(fe->fe_okay);
X OSfname(path, fe->fe_pdir, fe->fe_fnam, F_FNDR);
X+ #ifdef NOCASEMATCH
X+ if (stat(path, &stb) < 0) {
X+ noCaseFind(path);
X+ if (stat(path, &stb) < 0)
X+ return(fe->fe_okay); /* nothing else we can do */
X+ }
X+ #else NOCASEMATCH
X if (stat(path, &stb) < 0)
X return(fe->fe_okay); /* nothing else we can do */
X #endif NOCASEMATCH
X***************
X*** 169,174
X OSfname(path, fe->fe_pdir, fe->fe_fnam, F_FNDR);
X if (stat(path, &stb) < 0)
X return(fe->fe_okay); /* nothing else we can do */
X if (stb.st_mtime != fe->fe_mtime) /* reload entry */
X return(FALSE); /* bad entry */
X }
X
X--- 194,200 -----
X #else NOCASEMATCH
X if (stat(path, &stb) < 0)
X return(fe->fe_okay); /* nothing else we can do */
X+ #endif NOCASEMATCH
X if (stb.st_mtime != fe->fe_mtime) /* reload entry */
X return(FALSE); /* bad entry */
X }
X***************
X*** 253,258
X printf("fc_readent: reading %s\n",path);
X
X fd = open(path,O_RDONLY);
X if (fd >= 0) {
X OSLockFileforRead(fd);
X err = fstat(fd, &stb);
X
X--- 279,290 -----
X printf("fc_readent: reading %s\n",path);
X
X fd = open(path,O_RDONLY);
X+ #ifdef NOCASEMATCH
X+ if(fd < 0) {
X+ noCaseFind(path);
X+ fd = open(path,O_RDONLY);
X+ }
X+ #endif NOCASEMATCH
X if (fd >= 0) {
X OSLockFileforRead(fd);
X err = fstat(fd, &stb);
X***************
X*** 309,314
X
X /* convert name to internal name */
X OSfname(path,fe->fe_pdir,fe->fe_fnam,F_DATA); /* create plain name */
X if (stat(path,&stb) != 0) /* check if it exists */
X return(aeObjectNotFound); /* no... */
X if (S_ISDIR(stb.st_mode)) {
X
X--- 341,353 -----
X
X /* convert name to internal name */
X OSfname(path,fe->fe_pdir,fe->fe_fnam,F_DATA); /* create plain name */
X+ #ifdef NOCASEMATCH
X+ if (stat(path,&stb) != 0) { /* check if it exists */
X+ noCaseFind(path);
X+ if (stat(path,&stb) != 0) /* check if it exists */
X+ return(aeObjectNotFound); /* no... */
X+ }
X+ #else NOCASEMATCH
X if (stat(path,&stb) != 0) /* check if it exists */
X return(aeObjectNotFound); /* no... */
X #endif NOCASEMATCH
X***************
X*** 311,316
X OSfname(path,fe->fe_pdir,fe->fe_fnam,F_DATA); /* create plain name */
X if (stat(path,&stb) != 0) /* check if it exists */
X return(aeObjectNotFound); /* no... */
X if (S_ISDIR(stb.st_mode)) {
X fi->fi_comln = 0;
X } else {
X
X--- 350,356 -----
X #else NOCASEMATCH
X if (stat(path,&stb) != 0) /* check if it exists */
X return(aeObjectNotFound); /* no... */
X+ #endif NOCASEMATCH
X if (S_ISDIR(stb.st_mode)) {
X fi->fi_comln = 0;
X } else {
X***************
X*** 352,358
X printf("WriteFA: writing %s\n",path);
X
X needu++;
X! if ((fd = open(path,O_WRONLY)) < 0) { /* open for write */
X if (errno != ENOENT) {
X printf("WriteFA: error openning %s errno=%d\n",path,errno);
X return;
X
X--- 392,405 -----
X printf("WriteFA: writing %s\n",path);
X
X needu++;
X! fd = open(path,O_WRONLY);
X! #ifdef NOCASEMATCH
X! if(fd < 0) {
X! noCaseFind(path);
X! fd = open(path,O_WRONLY);
X! }
X! #endif NOCASEMATCH
X! if (fd < 0) { /* open for write */
X if (errno != ENOENT) {
X printf("WriteFA: error openning %s errno=%d\n",path,errno);
X return;
SHAR_EOF
if test 6644 -ne "`wc -c < 'afposfi.c.diff'`"
then
echo shar: error transmitting "'afposfi.c.diff'" '(should have been 6644 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afps.h.diff'" '(895 characters)'
if test -f 'afps.h.diff'
then
echo shar: will not over-write existing file "'afps.h.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afps.h.diff'
X*** applications/aufs/afps.h.orig Thu May 19 12:20:07 1988
X--- applications/aufs/afps.h Thu Dec 1 11:08:02 1988
X***************
X*** 182,187
X char *OSEnumGet();
X int OSEnumInit();
X void OSEnumDone();
X
X /* Portable library functions */
X
X
X--- 182,191 -----
X char *OSEnumGet();
X int OSEnumInit();
X void OSEnumDone();
X+ #ifdef NOCASEMATCH
X+ void noCaseFind();
X+ void noCaseMatch();
X+ #endif NOCASEMATCH
X
X /* Portable library functions */
X
X***************
X*** 197,202
X
X #define RFDIR "/.resource"
X #define FIDIR "/.finderinfo"
X
X /* Finder info bits */
X #define DEFCMNT "This is a Unix\252 created file."
X
X--- 201,211 -----
X
X #define RFDIR "/.resource"
X #define FIDIR "/.finderinfo"
X+
X+ #define DIRRF ".resource/"
X+ #define DIRFI ".finderinfo/"
X+ #define DIRRFLEN 10
X+ #define DIRFILEN 12
X
X /* Finder info bits */
X #define DEFCMNT "This is a Unix\252 created file."
SHAR_EOF
if test 895 -ne "`wc -c < 'afps.h.diff'`"
then
echo shar: error transmitting "'afps.h.diff'" '(should have been 895 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'afpserver.c.diff'" '(460 characters)'
if test -f 'afpserver.c.diff'
then
echo shar: will not over-write existing file "'afpserver.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afpserver.c.diff'
X*** applications/aufs/afpserver.c.orig Thu May 19 12:20:09 1988
X--- applications/aufs/afpserver.c Thu Jan 26 18:13:56 1989
X***************
X*** 167,172
X
X #define NumEntries (sizeof(Entries)/sizeof(AFPDispEntry))
X
X IniServer() /* ini disp entries */
X {
X int i;
X
X--- 167,174 -----
X
X #define NumEntries (sizeof(Entries)/sizeof(AFPDispEntry))
X
X+ private DumpBuf(), clockstart(), clockend();
X+
X IniServer() /* ini disp entries */
X {
X int i;
SHAR_EOF
if test 460 -ne "`wc -c < 'afpserver.c.diff'`"
then
echo shar: error transmitting "'afpserver.c.diff'" '(should have been 460 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'atalkdbm.c.diff'" '(557 characters)'
if test -f 'atalkdbm.c.diff'
then
echo shar: will not over-write existing file "'atalkdbm.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'atalkdbm.c.diff'
X*** lib/cap/atalkdbm.c.orig Thu May 19 12:17:05 1988
X--- lib/cap/atalkdbm.c Fri Jan 27 14:52:15 1989
X***************
X*** 37,42
X #define HAVE_ZONE -1 /* our zone was set */
X #define CONFIGURED 1 /* set when configured */
X
X /*
X * Set zone name - sets alternate atalk configuration file: atalk.<zonename>
X *
X
X--- 37,44 -----
X #define HAVE_ZONE -1 /* our zone was set */
X #define CONFIGURED 1 /* set when configured */
X
X+ static int name_toipaddr();
X+
X /*
X * Set zone name - sets alternate atalk configuration file: atalk.<zonename>
X *
SHAR_EOF
if test 557 -ne "`wc -c < 'atalkdbm.c.diff'`"
then
echo shar: error transmitting "'atalkdbm.c.diff'" '(should have been 557 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'atis.c.diff'" '(2688 characters)'
if test -f 'atis.c.diff'
then
echo shar: will not over-write existing file "'atis.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'atis.c.diff'
X*** etc/atis.c.orig Thu May 19 12:17:32 1988
X--- etc/atis.c Fri Jan 27 12:27:46 1989
X***************
X*** 103,108
X void atis_end();
X void atis_debuginc();
X void atis_undebug();
X
X void
X nbp_reload()
X
X--- 103,109 -----
X void atis_end();
X void atis_debuginc();
X void atis_undebug();
X+ private int nbpcpy(), c2pkt_ename(), pkt2c_ename();
X
X void
X nbp_reload()
X***************
X*** 121,127
X } else log(L_UERR|1, "dump file open failed");
X log(1, "loaded %d entries",cnt);
X sigsetmask(mask);
X! (void)signal(SIGHUP, nbp_reload);
X }
X
X void
X
X--- 122,128 -----
X } else log(L_UERR|1, "dump file open failed");
X log(1, "loaded %d entries",cnt);
X sigsetmask(mask);
X! (void)signal(SIGHUP, (int (*)())nbp_reload);
X }
X
X void
X***************
X*** 142,148
X } else log(L_UERR|1, "dump file (write) open failed");
X log(1, "Dumped %d entries",cnt);
X sigsetmask(mask);
X! (void)signal(SIGQUIT, nbp_dump);
X }
X
X void
X
X--- 143,149 -----
X } else log(L_UERR|1, "dump file (write) open failed");
X log(1, "Dumped %d entries",cnt);
X sigsetmask(mask);
X! (void)signal(SIGQUIT, (int (*)())nbp_dump);
X }
X
X void
X***************
X*** 161,167
X log(0, "DEBUGGING OFF");
X if (tempdebugfile)
X nologfile();
X! signal(SIGEMT, atis_debuginc);
X sigsetmask(mask);
X }
X
X
X--- 162,168 -----
X log(0, "DEBUGGING OFF");
X if (tempdebugfile)
X nologfile();
X! signal(SIGEMT, (int (*)())atis_debuginc);
X sigsetmask(mask);
X }
X
X***************
X*** 176,182
X if (dlevel < L_LVLMAX)
X dlevel++;
X log(0, "DEBUG LEVEL %d", dlevel);
X! signal(SIGIOT, atis_debuginc);
X sigsetmask(mask);
X }
X
X
X--- 177,183 -----
X if (dlevel < L_LVLMAX)
X dlevel++;
X log(0, "DEBUG LEVEL %d", dlevel);
X! signal(SIGIOT, (int (*)())atis_debuginc);
X sigsetmask(mask);
X }
X
X***************
X*** 354,364
X abInit(TRUE); /* init driver */
X nbpInit(); /* init NBP */
X nbptab_init();
X! (void)signal(SIGHUP, nbp_reload);
X! (void)signal(SIGQUIT, nbp_dump);
X! (void)signal(SIGTERM, atis_end);
X! (void)signal(SIGIOT, atis_debuginc);
X! (void)signal(SIGEMT, atis_undebug);
X
X log(0, "Reply num max for lkup reply is %d (based on %d)",
X NUMREPLYMAX, NBPTUPSIZE);
X
X--- 355,365 -----
X abInit(TRUE); /* init driver */
X nbpInit(); /* init NBP */
X nbptab_init();
X! (void)signal(SIGHUP, (int (*)())nbp_reload);
X! (void)signal(SIGQUIT, (int (*)())nbp_dump);
X! (void)signal(SIGTERM, (int (*)())atis_end);
X! (void)signal(SIGIOT, (int (*)())atis_debuginc);
X! (void)signal(SIGEMT, (int (*)())atis_undebug);
X
X log(0, "Reply num max for lkup reply is %d (based on %d)",
X NUMREPLYMAX, NBPTUPSIZE);
SHAR_EOF
if test 2688 -ne "`wc -c < 'atis.c.diff'`"
then
echo shar: error transmitting "'atis.c.diff'" '(should have been 2688 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'papof.c.diff'" '(470 characters)'
if test -f 'papof.c.diff'
then
echo shar: will not over-write existing file "'papof.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'papof.c.diff'
X*** applications/papif/papof.c.orig Thu May 19 12:18:50 1988
X--- applications/papif/papof.c Fri Jan 27 12:05:02 1989
X***************
X*** 54,60
X
X while (1) {
X #ifdef BANNER
X! if ((bannerfile = fopen(BANNERFILE, "w")) < 0) {
X perror("Can't open .banner");
X exit(8);
X }
X
X--- 54,60 -----
X
X while (1) {
X #ifdef BANNER
X! if ((bannerfile = fopen(BANNERFILE, "w")) == NULL) {
X perror("Can't open .banner");
X exit(8);
X }
SHAR_EOF
if test 470 -ne "`wc -c < 'papof.c.diff'`"
then
echo shar: error transmitting "'papof.c.diff'" '(should have been 470 characters)'
fi
fi # end of overwriting check
# End of shell archive
exit 0
--- end of part 1 ---edmoy@violet.berkeley.edu (Edward Moy) (06/05/89)
[New Patches to CAP - part 2 of 2]
---
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#
# afpos.c.diff
#
# This archive created: Sat Jun 3 07:29:31 1989
# By: Roger L. Long (bytebug@dhw68k.cts.com)
#
export PATH; PATH=/bin:$PATH
echo shar: extracting "'afpos.c.diff'" '(41043 characters)'
if test -f 'afpos.c.diff'
then
echo shar: will not over-write existing file "'afpos.c.diff'"
else
sed 's/^X//' << \SHAR_EOF > 'afpos.c.diff'
X*** applications/aufs/afpos.c.orig Mon Jun 27 12:26:51 1988
X--- applications/aufs/afpos.c Thu Jan 26 18:10:22 1989
X***************
X*** 112,118
X # ifdef Q_GETQUOTA
X # define Q_GETDLIM Q_GETQUOTA
X # else
X! You have turned on quotas and aren't using the bsd or sun quota system
X # endif /*Q_GETQUOTA*/
X # endif /* Q_GETDLIM */
X #endif /* USEQUOTA */
X
X--- 112,118 -----
X # ifdef Q_GETQUOTA
X # define Q_GETDLIM Q_GETQUOTA
X # else
X! /* You have turned on quotas and aren't using the bsd or sun quota system */
X # endif /*Q_GETQUOTA*/
X # endif /* Q_GETDLIM */
X #endif /* USEQUOTA */
X***************
X*** 135,140
X #include "afppasswd.h" /* in case we are using privates */
X #include "afposncs.h"
X #include "afpgc.h"
X
X #ifdef MAXBSIZE
X # define IOBSIZE MAXBSIZE /* set to max buf entry size by if there */
X
X--- 135,146 -----
X #include "afppasswd.h" /* in case we are using privates */
X #include "afposncs.h"
X #include "afpgc.h"
X+ #ifdef SIZESERVER
X+ #include <setjmp.h>
X+ #include <signal.h>
X+ #include <sys/socket.h>
X+ #include "sizeserver.h"
X+ #endif SIZESERVER
X
X #ifdef MAXBSIZE
X # define IOBSIZE MAXBSIZE /* set to max buf entry size by if there */
X***************
X*** 282,287
X private OSErr ItoEErr();
X private int filemode();
X private char *syserr();
X
X /*
X * Enable OS Dependent functions
X
X--- 288,296 -----
X private OSErr ItoEErr();
X private int filemode();
X private char *syserr();
X+ #ifdef SIZESERVER
X+ private void getvolsize();
X+ #endif SIZESERVER
X
X /*
X * Enable OS Dependent functions
X***************
X*** 545,550
X char path[MAXPATHLEN];
X
X OSfname(path,ipdir,file,F_DATA); /* create data fork name */
X
X if (DBOSI)
X printf("OSDelete file=%s\n",path);
X
X--- 554,562 -----
X char path[MAXPATHLEN];
X
X OSfname(path,ipdir,file,F_DATA); /* create data fork name */
X+ #ifdef NOCASEMATCH
X+ noCaseMatch(path);
X+ #endif NOCASEMATCH
X
X if (DBOSI)
X printf("OSDelete file=%s\n",path);
X***************
X*** 667,672
X int typ;
X {
X char path[MAXPATHLEN];
X
X OSfname(path,pdir,file,typ); /* build unix file name */
X return(unix_unlink(path)); /* do the work... */
X
X--- 679,687 -----
X int typ;
X {
X char path[MAXPATHLEN];
X+ #ifdef NOCASEMATCH
X+ register int i;
X+ #endif NOCASEMATCH
X
X OSfname(path,pdir,file,typ); /* build unix file name */
X #ifdef NOCASEMATCH
X***************
X*** 669,674
X char path[MAXPATHLEN];
X
X OSfname(path,pdir,file,typ); /* build unix file name */
X return(unix_unlink(path)); /* do the work... */
X }
X
X
X--- 684,696 -----
X #endif NOCASEMATCH
X
X OSfname(path,pdir,file,typ); /* build unix file name */
X+ #ifdef NOCASEMATCH
X+ if((i = unix_unlink(path)) != noErr) {
X+ noCaseMatch(path);
X+ i = unix_unlink(path);
X+ }
X+ return(i); /* do the work... */
X+ #else NOCASEMATCH
X return(unix_unlink(path)); /* do the work... */
X #endif NOCASEMATCH
X }
X***************
X*** 670,675
X
X OSfname(path,pdir,file,typ); /* build unix file name */
X return(unix_unlink(path)); /* do the work... */
X }
X
X
X
X--- 692,698 -----
X return(i); /* do the work... */
X #else NOCASEMATCH
X return(unix_unlink(path)); /* do the work... */
X+ #endif NOCASEMATCH
X }
X
X
X***************
X*** 743,748
X IDirP fpdir,tpdir; /* from and to parent dirs */
X char *from,*to; /* from and to file names */
X {
X char fpath[MAXPATHLEN];
X char tpath[MAXPATHLEN];
X struct stat stb;
X
X--- 766,773 -----
X IDirP fpdir,tpdir; /* from and to parent dirs */
X char *from,*to; /* from and to file names */
X {
X+ char f_path[MAXPATHLEN];
X+ char t_path[MAXPATHLEN];
X char fpath[MAXPATHLEN];
X char tpath[MAXPATHLEN];
X struct stat stb;
X***************
X*** 748,753
X struct stat stb;
X int err,cerr;
X int mo;
X
X OSfname(fpath,fpdir,from,F_DATA); /* build data file name */
X OSfname(tpath,tpdir,to,F_DATA); /* for from and to files */
X
X--- 773,781 -----
X struct stat stb;
X int err,cerr;
X int mo;
X+ #ifdef NOCASEMATCH
X+ register char *pp;
X+ #endif NOCASEMATCH
X
X OSfname(f_path,fpdir,from,F_DATA); /* build data file name */
X OSfname(t_path,tpdir,to,F_DATA); /* for from and to files */
X***************
X*** 749,756
X int err,cerr;
X int mo;
X
X! OSfname(fpath,fpdir,from,F_DATA); /* build data file name */
X! OSfname(tpath,tpdir,to,F_DATA); /* for from and to files */
X
X if (DBOSI)
X printf("OSRename from=%s, to=%s\n",fpath,tpath);
X
X--- 777,784 -----
X register char *pp;
X #endif NOCASEMATCH
X
X! OSfname(f_path,fpdir,from,F_DATA); /* build data file name */
X! OSfname(t_path,tpdir,to,F_DATA); /* for from and to files */
X
X if (DBOSI)
X printf("OSRename from=%s, to=%s\n",f_path,t_path);
X***************
X*** 753,759
X OSfname(tpath,tpdir,to,F_DATA); /* for from and to files */
X
X if (DBOSI)
X! printf("OSRename from=%s, to=%s\n",fpath,tpath);
X
X if ((fpdir->flags & DID_FINDERINFO) && (tpdir->flags & DID_FINDERINFO) == 0)
X return(aeCantMove);
X
X--- 781,787 -----
X OSfname(t_path,tpdir,to,F_DATA); /* for from and to files */
X
X if (DBOSI)
X! printf("OSRename from=%s, to=%s\n",f_path,t_path);
X
X if ((fpdir->flags & DID_FINDERINFO) && (tpdir->flags & DID_FINDERINFO) == 0)
X return(aeCantMove);
X***************
X*** 761,766
X return(aeCantMove);
X
X /* must be able to stat destination */
X if ((err = unix_stat(pathstr(tpdir), &stb)) != noErr)
X return(err);
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X
X--- 789,801 -----
X return(aeCantMove);
X
X /* must be able to stat destination */
X+ #ifdef NOCASEMATCH
X+ if ((err = unix_stat(pp = pathstr(tpdir), &stb)) != noErr) {
X+ noCaseFind(pp);
X+ if ((err = unix_stat(pp, &stb)) != noErr)
X+ return(err);
X+ }
X+ #else NOCASEMATCH
X if ((err = unix_stat(pathstr(tpdir), &stb)) != noErr)
X return(err);
X #endif NOCASEMATCH
X***************
X*** 763,768
X /* must be able to stat destination */
X if ((err = unix_stat(pathstr(tpdir), &stb)) != noErr)
X return(err);
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X
X if ((err = unix_stat(fpath,&stb)) != noErr)
X
X--- 798,804 -----
X #else NOCASEMATCH
X if ((err = unix_stat(pathstr(tpdir), &stb)) != noErr)
X return(err);
X+ #endif NOCASEMATCH
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X
X #ifdef NOCASEMATCH
X***************
X*** 765,771
X return(err);
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X
X! if ((err = unix_stat(fpath,&stb)) != noErr)
X return(err);
X
X err = unix_rename(fpath,tpath); /* give unix the args */
X
X--- 801,815 -----
X #endif NOCASEMATCH
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X
X! #ifdef NOCASEMATCH
X! if ((err = unix_stat(f_path,&stb)) != noErr) {
X! noCaseFind(f_path);
X! if ((err = unix_stat(f_path,&stb)) != noErr)
X! return(err);
X! }
X! noCaseMatch(t_path);
X! #else NOCASEMATCH
X! if ((err = unix_stat(f_path,&stb)) != noErr)
X return(err);
X #endif NOCASEMATCH
X
X***************
X*** 767,772
X
X if ((err = unix_stat(fpath,&stb)) != noErr)
X return(err);
X
X err = unix_rename(fpath,tpath); /* give unix the args */
X if (err != noErr) /* if an error on data files */
X
X--- 811,817 -----
X #else NOCASEMATCH
X if ((err = unix_stat(f_path,&stb)) != noErr)
X return(err);
X+ #endif NOCASEMATCH
X
X err = unix_rename(f_path,t_path); /* give unix the args */
X if (err != noErr) /* if an error on data files */
X***************
X*** 768,774
X if ((err = unix_stat(fpath,&stb)) != noErr)
X return(err);
X
X! err = unix_rename(fpath,tpath); /* give unix the args */
X if (err != noErr) /* if an error on data files */
X return(err); /* then give up */
X
X
X--- 813,819 -----
X return(err);
X #endif NOCASEMATCH
X
X! err = unix_rename(f_path,t_path); /* give unix the args */
X if (err != noErr) /* if an error on data files */
X return(err); /* then give up */
X
X***************
X*** 775,782
X if (!S_ISDIR(stb.st_mode)) { /* directories have no rsrc fork */
X unix_chmod(tpath, mo); /* file: try to reset protection */
X if (fpdir->flags & DID_RESOURCE) {
X! OSfname(fpath,fpdir,from,F_RSRC); /* build resource file names */
X! OSfname(tpath,tpdir,to,F_RSRC);
X err = unix_rename(fpath,tpath); /* give unix a shot at it */
X /* allow non-existant resource */
X if (err != noErr && err != aeObjectNotFound) { /* error on rename? */
X
X--- 820,829 -----
X if (!S_ISDIR(stb.st_mode)) { /* directories have no rsrc fork */
X unix_chmod(tpath, mo); /* file: try to reset protection */
X if (fpdir->flags & DID_RESOURCE) {
X! strcpy(fpath, f_path);
X! strcpy(tpath, t_path);
X! toResFork(fpath,from); /* build resource file names */
X! toResFork(tpath,to);
X err = unix_rename(fpath,tpath); /* give unix a shot at it */
X /* allow non-existant resource */
X if (err != noErr && err != aeObjectNotFound) { /* error on rename? */
X***************
X*** 783,791
X if (DBOSI)
X printf("os_rename: failed %s for %s -> %s\n",
X afperr(err),fpath,tpath);
X! OSfname(fpath,fpdir,from,F_DATA); /* try to rebuild */
X! OSfname(tpath,tpdir,to,F_DATA);
X! cerr = unix_rename(tpath,fpath); /* rename back to orignal */
X if (cerr != noErr && DBOSI)
X printf("os_rename: cleanup failed\n");
X unix_chmod(tpath, stb.st_mode&0777); /* file:try to reset protection */
X
X--- 830,836 -----
X if (DBOSI)
X printf("os_rename: failed %s for %s -> %s\n",
X afperr(err),fpath,tpath);
X! cerr = unix_rename(t_path,f_path); /* rename back to orignal */
X if (cerr != noErr && DBOSI)
X printf("os_rename: cleanup failed\n");
X unix_chmod(t_path, stb.st_mode&0777); /* file:try to reset protection */
X***************
X*** 788,794
X cerr = unix_rename(tpath,fpath); /* rename back to orignal */
X if (cerr != noErr && DBOSI)
X printf("os_rename: cleanup failed\n");
X! unix_chmod(tpath, stb.st_mode&0777); /* file:try to reset protection */
X return(err);
X }
X }
X
X--- 833,839 -----
X cerr = unix_rename(t_path,f_path); /* rename back to orignal */
X if (cerr != noErr && DBOSI)
X printf("os_rename: cleanup failed\n");
X! unix_chmod(t_path, stb.st_mode&0777); /* file:try to reset protection */
X return(err);
X }
X }
X***************
X*** 795,802
X }
X
X if (fpdir->flags & DID_FINDERINFO) {
X! OSfname(fpath,fpdir,from,F_FNDR); /* build finder info file names */
X! OSfname(tpath,tpdir,to,F_FNDR);
X err = unix_rename(fpath,tpath); /* give unix a shot at it */
X if (err != noErr && DBOSI) {
X printf("os_rename: failed %s for %s -> %s\n", afperr(err),fpath,tpath);
X
X--- 840,849 -----
X }
X
X if (fpdir->flags & DID_FINDERINFO) {
X! strcpy(fpath, f_path);
X! strcpy(tpath, t_path);
X! toFinderInfo(fpath,from); /* build finder info file names */
X! toFinderInfo(tpath,to);
X err = unix_rename(fpath,tpath); /* give unix a shot at it */
X if (err != noErr && DBOSI) {
X printf("os_rename: failed %s for %s -> %s\n", afperr(err),fpath,tpath);
X***************
X*** 1047,1052
X /* want path/name */
X
X OSfname(path, pdir, name, F_DATA); /* get path/name */
X switch (typ) {
X case F_RSRC:
X strcat(path, "/");
X
X--- 1094,1102 -----
X /* want path/name */
X
X OSfname(path, pdir, name, F_DATA); /* get path/name */
X+ #ifdef NOCASEMATCH
X+ noCaseMatch(path);
X+ #endif NOCASEMATCH
X switch (typ) {
X case F_RSRC:
X strcat(path, RFDIR);
X***************
X*** 1049,1056
X OSfname(path, pdir, name, F_DATA); /* get path/name */
X switch (typ) {
X case F_RSRC:
X! strcat(path, "/");
X! strcat(path, RFDIRFN);
X break;
X case F_FNDR:
X strcat(path, "/");
X
X--- 1099,1105 -----
X #endif NOCASEMATCH
X switch (typ) {
X case F_RSRC:
X! strcat(path, RFDIR);
X break;
X case F_FNDR:
X strcat(path, FIDIR);
X***************
X*** 1053,1060
X strcat(path, RFDIRFN);
X break;
X case F_FNDR:
X! strcat(path, "/");
X! strcat(path, FIDIRFN);
X break;
X }
X if (DBOSI)
X
X--- 1102,1108 -----
X strcat(path, RFDIR);
X break;
X case F_FNDR:
X! strcat(path, FIDIR);
X break;
X }
X if (DBOSI)
X***************
X*** 1090,1095
X
X if (pdir->flags & DID_FINDERINFO) {
X OSfname(path,pdir,name,F_FNDR); /* create finderinfo for folder */
X err = unix_create(path,TRUE,mo); /* do delete if exists... */
X os_mkdir(pdir,name,mo,F_FNDR); /* create the finderinfo directory */
X }
X
X--- 1138,1146 -----
X
X if (pdir->flags & DID_FINDERINFO) {
X OSfname(path,pdir,name,F_FNDR); /* create finderinfo for folder */
X+ #ifdef NOCASEMATCH
X+ noCaseMatch(path);
X+ #endif NOCASEMATCH
X err = unix_create(path,TRUE,mo); /* do delete if exists... */
X os_mkdir(pdir,name,mo,F_FNDR); /* create the finderinfo directory */
X }
X***************
X*** 1130,1135
X printf("OSFileDirInfo on %s\n",path);
X
X if (stat(path,&buf) != 0) { /* file exists? */
X if (idir) /* was in directory tree? */
X Idrdirid(ipdir, idir); /* invalidate the entry then */
X return(aeObjectNotFound); /* no... */
X
X--- 1181,1194 -----
X printf("OSFileDirInfo on %s\n",path);
X
X if (stat(path,&buf) != 0) { /* file exists? */
X+ #ifdef NOCASEMATCH
X+ noCaseFind(path); /* case-insensitive */
X+ if (stat(path,&buf) != 0) { /* file exists? */
X+ if (idir) /* was in directory tree? */
X+ Idrdirid(ipdir, idir); /* invalidate the entry then */
X+ return(aeObjectNotFound); /* no... */
X+ }
X+ #else NOCASEMATCH
X if (idir) /* was in directory tree? */
X Idrdirid(ipdir, idir); /* invalidate the entry then */
X return(aeObjectNotFound); /* no... */
X***************
X*** 1133,1138
X if (idir) /* was in directory tree? */
X Idrdirid(ipdir, idir); /* invalidate the entry then */
X return(aeObjectNotFound); /* no... */
X }
X
X /* pick out the earliest date for mac creation time */
X
X--- 1192,1198 -----
X if (idir) /* was in directory tree? */
X Idrdirid(ipdir, idir); /* invalidate the entry then */
X return(aeObjectNotFound); /* no... */
X+ #endif NOCASEMATCH
X }
X
X /* pick out the earliest date for mac creation time */
X***************
X*** 1155,1161
X return(OSDirInfo(ipdir,fn,fdp,&buf,volid)); /* fill in */
X }
X fdp->fdp_flg = 0; /* otherwise a file */
X! return(OSFileInfo(ipdir,fn,fdp,&buf)); /* fill in */
X }
X
X
X
X--- 1215,1221 -----
X return(OSDirInfo(ipdir,fn,fdp,&buf,volid)); /* fill in */
X }
X fdp->fdp_flg = 0; /* otherwise a file */
X! return(OSFileInfo(ipdir,fn,fdp,&buf,path)); /* fill in */
X }
X
X
X***************
X*** 1222,1227
X IDirP idirid;
X {
X char path[MAXPATHLEN];
X struct stat stb;
X IDirP pdir;
X int i;
X
X--- 1282,1288 -----
X IDirP idirid;
X {
X char path[MAXPATHLEN];
X+ char p_ath[MAXPATHLEN];
X struct stat stb;
X IDirP pdir;
X int i;
X***************
X*** 1226,1233
X IDirP pdir;
X int i;
X
X! OSfname(path,idirid,"",F_DATA);
X! if (stat(path, &stb) == 0) {
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_DATA;
X #ifndef NOLSTAT
X
X--- 1287,1301 -----
X IDirP pdir;
X int i;
X
X! OSfname(p_ath,idirid,"",F_DATA);
X! i = stat(p_ath, &stb);
X! #ifdef NOCASEMATCH
X! if(i != 0) {
X! noCaseFind(p_ath);
X! i = stat(p_ath, &stb);
X! }
X! #endif NOCASEMATCH
X! if (i == 0) {
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_DATA;
X #ifndef NOLSTAT
X***************
X*** 1231,1237
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_DATA;
X #ifndef NOLSTAT
X! if (lstat(path, &stb) != 0) { /* shouldn't fail! */
X idirid->flags = DID_VALID;
X return;
X }
X
X--- 1299,1305 -----
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_DATA;
X #ifndef NOLSTAT
X! if (lstat(p_ath, &stb) != 0) { /* shouldn't fail! */
X idirid->flags = DID_VALID;
X return;
X }
X***************
X*** 1249,1256
X idirid->flags |= ((i << DID_SYMLINKS_SHIFT) & DID_SYMLINKS);
X }
X /* don't follow symbolic links here! */
X! OSfname(path,idirid,"",F_FNDR);
X! if (lstat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_FINDERINFO;
X OSfname(path,idirid,"",F_RSRC);
X
X--- 1317,1325 -----
X idirid->flags |= ((i << DID_SYMLINKS_SHIFT) & DID_SYMLINKS);
X }
X /* don't follow symbolic links here! */
X! strcpy(path,p_ath);
X! toFinderInfo(path,"");
X! if (lstat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_FINDERINFO;
X strcpy(path,p_ath);
X***************
X*** 1253,1260
X if (lstat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_FINDERINFO;
X! OSfname(path,idirid,"",F_RSRC);
X! if (lstat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_RESOURCE;
X #else
X
X--- 1322,1330 -----
X if (lstat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_FINDERINFO;
X! strcpy(path,p_ath);
X! toResFork(path,"");
X! if (lstat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_RESOURCE;
X #else
X***************
X*** 1259,1266
X idirid->flags |= DID_RESOURCE;
X #else
X /* no symolic links then */
X! OSfname(path,idirid,"",F_FNDR);
X! if (stat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_FINDERINFO;
X OSfname(path,idirid,"",F_RSRC);
X
X--- 1329,1337 -----
X idirid->flags |= DID_RESOURCE;
X #else
X /* no symolic links then */
X! strcpy(path,p_ath);
X! toFinderInfo(path,"");
X! if (stat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_FINDERINFO;
X strcpy(path,p_ath);
X***************
X*** 1263,1270
X if (stat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_FINDERINFO;
X! OSfname(path,idirid,"",F_RSRC);
X! if (stat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_RESOURCE;
X #endif
X
X--- 1334,1342 -----
X if (stat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_FINDERINFO;
X! strcpy(path,p_ath);
X! toResFork(path,"");
X! if (stat(path, &stb) == 0)
X if (S_ISDIR(stb.st_mode))
X idirid->flags |= DID_RESOURCE;
X #endif
X***************
X*** 1273,1279
X }
X
X export OSErr
X! OSFileInfo(ipdir,fn,fdp,buf)
X IDirP ipdir;
X char *fn;
X FileDirParm *fdp;
X
X--- 1345,1351 -----
X }
X
X export OSErr
X! OSFileInfo(ipdir,fn,fdp,buf,rpath)
X IDirP ipdir;
X char *fn,*rpath;
X FileDirParm *fdp;
X***************
X*** 1275,1281
X export OSErr
X OSFileInfo(ipdir,fn,fdp,buf)
X IDirP ipdir;
X! char *fn;
X FileDirParm *fdp;
X struct stat *buf;
X {
X
X--- 1347,1353 -----
X export OSErr
X OSFileInfo(ipdir,fn,fdp,buf,rpath)
X IDirP ipdir;
X! char *fn,*rpath;
X FileDirParm *fdp;
X struct stat *buf;
X {
X***************
X*** 1280,1286
X struct stat *buf;
X {
X struct stat stb;
X- char rpath[MAXPATHLEN];
X word bm;
X
X fdp->fdp_fbitmap &= FP_AUFS_VALID; /* truncate to aufs supported */
X
X--- 1352,1357 -----
X struct stat *buf;
X {
X struct stat stb;
X word bm;
X
X fdp->fdp_fbitmap &= FP_AUFS_VALID; /* truncate to aufs supported */
X***************
X*** 1300,1306
X fdp->fdp_parms.fp_parms.fp_rflen = 0;
X
X if (bm & FP_RFLEN) {
X! OSfname(rpath,ipdir,fn,F_RSRC); /* convert to rsrc name */
X if (stat(rpath,&stb) != 0) /* to figure size of resource fork */
X return(noErr);
X if (DBFIL)
X
X--- 1371,1377 -----
X fdp->fdp_parms.fp_parms.fp_rflen = 0;
X
X if (bm & FP_RFLEN) {
X! toResFork(rpath,fn); /* convert to rsrc name */
X if (stat(rpath,&stb) != 0) /* to figure size of resource fork */
X return(noErr);
X if (DBFIL)
X***************
X*** 1322,1327
X {
X char path[MAXPATHLEN];
X struct stat stb;
X
X OSfname(path, ipdir, fn, type);
X return(unix_stat(path, &stb));
X
X--- 1393,1401 -----
X {
X char path[MAXPATHLEN];
X struct stat stb;
X+ #ifdef NOCASEMATCH
X+ register int i;
X+ #endif NOCASEMATCH
X
X OSfname(path, ipdir, fn, type);
X #ifdef NOCASEMATCH
X***************
X*** 1324,1329
X struct stat stb;
X
X OSfname(path, ipdir, fn, type);
X return(unix_stat(path, &stb));
X }
X
X
X--- 1398,1410 -----
X #endif NOCASEMATCH
X
X OSfname(path, ipdir, fn, type);
X+ #ifdef NOCASEMATCH
X+ if((i = unix_stat(path, &stb)) != noErr) {
X+ noCaseFind(path);
X+ i = unix_stat(path, &stb);
X+ }
X+ return(i);
X+ #else NOCASEMATCH
X return(unix_stat(path, &stb));
X #endif NOCASEMATCH
X }
X***************
X*** 1325,1330
X
X OSfname(path, ipdir, fn, type);
X return(unix_stat(path, &stb));
X }
X
X export OSErr
X
X--- 1406,1412 -----
X return(i);
X #else NOCASEMATCH
X return(unix_stat(path, &stb));
X+ #endif NOCASEMATCH
X }
X
X export OSErr
X***************
X*** 1340,1345
X
X OSfname(path,ipdir,fn,F_DATA); /* unix file name */
X if ((err = unix_stat(path,&stb)) != noErr) {
X /* can't find it !!! */
X if (idir)
X Idrdirid(ipdir, idir); /* remove from tree */
X
X--- 1422,1436 -----
X
X OSfname(path,ipdir,fn,F_DATA); /* unix file name */
X if ((err = unix_stat(path,&stb)) != noErr) {
X+ #ifdef NOCASEMATCH
X+ noCaseFind(path);
X+ if ((err = unix_stat(path,&stb)) != noErr) {
X+ /* can't find it !!! */
X+ if (idir)
X+ Idrdirid(ipdir, idir); /* remove from tree */
X+ return(err);
X+ }
X+ #else NOCASEMATCH
X /* can't find it !!! */
X if (idir)
X Idrdirid(ipdir, idir); /* remove from tree */
X***************
X*** 1344,1349
X if (idir)
X Idrdirid(ipdir, idir); /* remove from tree */
X return(err);
X }
X
X if (S_ISDIR(stb.st_mode)) /* if a directory */
X
X--- 1435,1441 -----
X if (idir)
X Idrdirid(ipdir, idir); /* remove from tree */
X return(err);
X+ #endif NOCASEMATCH
X }
X
X if (S_ISDIR(stb.st_mode)) /* if a directory */
X***************
X*** 1378,1383
X FileDirParm *fdp;
X {
X u_short EtoIAccess();
X char path[MAXPATHLEN];
X int own,grp,err; /* owner and group ids */
X DirParm *dp = &fdp->fdp_parms.dp_parms;
X
X--- 1470,1476 -----
X FileDirParm *fdp;
X {
X u_short EtoIAccess();
X+ char p_ath[MAXPATHLEN];
X char path[MAXPATHLEN];
X int own,grp,err; /* owner and group ids */
X DirParm *dp = &fdp->fdp_parms.dp_parms;
X***************
X*** 1395,1402
X flags = ipdir->flags; /* should use to prevent overworking */
X if (own != -1 || grp != -1) {
X /* error recovery? do all just in case */
X! OSfname(path,ipdir,fn,F_DATA); /* change unix name */
X! if ((err = unix_chown(path,own,grp)) != noErr)
X return(err);
X OSfname(path,ipdir,fn,F_RSRC); /* change unix name */
X if ((err = unix_chown(path,own,grp)) != noErr && err != aeObjectNotFound)
X
X--- 1488,1502 -----
X flags = ipdir->flags; /* should use to prevent overworking */
X if (own != -1 || grp != -1) {
X /* error recovery? do all just in case */
X! OSfname(p_ath,ipdir,fn,F_DATA); /* change unix name */
X! #ifdef NOCASEMATCH
X! if ((err = unix_chown(p_ath,own,grp)) != noErr) {
X! noCaseFind(p_ath);
X! if ((err = unix_chown(p_ath,own,grp)) != noErr)
X! return(err);
X! }
X! #else NOCASEMATCH
X! if ((err = unix_chown(p_ath,own,grp)) != noErr)
X return(err);
X #endif NOCASEMATCH
X strcpy(path,p_ath);
X***************
X*** 1398,1404
X OSfname(path,ipdir,fn,F_DATA); /* change unix name */
X if ((err = unix_chown(path,own,grp)) != noErr)
X return(err);
X! OSfname(path,ipdir,fn,F_RSRC); /* change unix name */
X if ((err = unix_chown(path,own,grp)) != noErr && err != aeObjectNotFound)
X return(err);
X OSfname(path,ipdir,fn,F_FNDR); /* create unix name */
X
X--- 1498,1506 -----
X #else NOCASEMATCH
X if ((err = unix_chown(p_ath,own,grp)) != noErr)
X return(err);
X! #endif NOCASEMATCH
X! strcpy(path,p_ath);
X! toResFork(path,fn);
X if ((err = unix_chown(path,own,grp)) != noErr && err != aeObjectNotFound)
X return(err);
X strcpy(path,p_ath);
X***************
X*** 1401,1407
X OSfname(path,ipdir,fn,F_RSRC); /* change unix name */
X if ((err = unix_chown(path,own,grp)) != noErr && err != aeObjectNotFound)
X return(err);
X! OSfname(path,ipdir,fn,F_FNDR); /* create unix name */
X if ((err = unix_chown(path,own,grp)) != noErr && err != aeObjectNotFound)
X return(err);
X EModified(ipdir);
X
X--- 1503,1510 -----
X toResFork(path,fn);
X if ((err = unix_chown(path,own,grp)) != noErr && err != aeObjectNotFound)
X return(err);
X! strcpy(path,p_ath);
X! toFinderInfo(path,fn);
X if ((err = unix_chown(path,own,grp)) != noErr && err != aeObjectNotFound)
X return(err);
X EModified(ipdir);
X***************
X*** 1473,1478
X printf("os_chmod: setting %o for %s\n",mode,path);
X
X err = unix_chmod(path,mode); /* and set for the directory */
X if (err != noErr)
X return(err);
X
X
X--- 1576,1588 -----
X printf("os_chmod: setting %o for %s\n",mode,path);
X
X err = unix_chmod(path,mode); /* and set for the directory */
X+ #ifdef NOCASEMATCH
X+ if (err != noErr) {
X+ noCaseFind(path);
X+ if((err = unix_chmod(path,mode)) != noErr)
X+ return(err);
X+ }
X+ #else NOCASEMATCH
X if (err != noErr)
X return(err);
X #endif NOCASEMATCH
X***************
X*** 1475,1480
X err = unix_chmod(path,mode); /* and set for the directory */
X if (err != noErr)
X return(err);
X
X EModified(idir);
X return(noErr);
X
X--- 1585,1591 -----
X #else NOCASEMATCH
X if (err != noErr)
X return(err);
X+ #endif NOCASEMATCH
X
X EModified(idir);
X return(noErr);
X***************
X*** 1510,1517
X case F_DATA:
X break;
X case F_RSRC:
X! path[pl] = '/';
X! strcpy(path+pl+1, RFDIRFN);
X break;
X case F_FNDR:
X path[pl] = '/';
X
X--- 1621,1627 -----
X case F_DATA:
X break;
X case F_RSRC:
X! strcpy(path+pl, RFDIR);
X break;
X case F_FNDR:
X strcpy(path+pl, FIDIR);
X***************
X*** 1514,1521
X strcpy(path+pl+1, RFDIRFN);
X break;
X case F_FNDR:
X! path[pl] = '/';
X! strcpy(path+pl+1, FIDIRFN);
X break;
X }
X if (DBOSI)
X
X--- 1624,1630 -----
X strcpy(path+pl, RFDIR);
X break;
X case F_FNDR:
X! strcpy(path+pl, FIDIR);
X break;
X }
X if (DBOSI)
X***************
X*** 1522,1527
X printf("os_chmod: setting %o for %s\n",mode,path);
X
X dirp = opendir(path);
X if (dirp == NULL) {
X if (DBOSI)
X printf("os_chmod: opendir failed on %s\n",path);
X
X--- 1631,1637 -----
X printf("os_chmod: setting %o for %s\n",mode,path);
X
X dirp = opendir(path);
X+ #ifdef NOCASEMATCH
X if (dirp == NULL) {
X noCaseFind(path);
X if((dirp = opendir(path)) == NULL) {
X***************
X*** 1523,1528
X
X dirp = opendir(path);
X if (dirp == NULL) {
X if (DBOSI)
X printf("os_chmod: opendir failed on %s\n",path);
X return;
X
X--- 1633,1647 -----
X dirp = opendir(path);
X #ifdef NOCASEMATCH
X if (dirp == NULL) {
X+ noCaseFind(path);
X+ if((dirp = opendir(path)) == NULL) {
X+ if (DBOSI)
X+ printf("os_chmod: opendir failed on %s\n",path);
X+ return;
X+ }
X+ }
X+ #else NOCASEMATCH
X+ if (dirp == NULL) {
X if (DBOSI)
X printf("os_chmod: opendir failed on %s\n",path);
X return;
X***************
X*** 1527,1532
X printf("os_chmod: opendir failed on %s\n",path);
X return;
X }
X
X pl = strlen(path); /* length of the path */
X path[pl++] = '/'; /* add component terminator */
X
X--- 1646,1652 -----
X printf("os_chmod: opendir failed on %s\n",path);
X return;
X }
X+ #endif NOCASEMATCH
X
X pl = strlen(path); /* length of the path */
X path[pl++] = '/'; /* add component terminator */
X***************
X*** 1706,1711
X err = access(path,imode);
X if (err == 0)
X return(noErr);
X switch (errno) {
X case ENOTDIR:
X return(aeDirNotFound);
X
X--- 1826,1836 -----
X err = access(path,imode);
X if (err == 0)
X return(noErr);
X+ #ifdef NOCASEMATCH
X+ noCaseFind(path);
X+ if(access(path,imode) == 0)
X+ return(noErr);
X+ #endif NOCASEMATCH
X switch (errno) {
X case ENOTDIR:
X return(aeDirNotFound);
X***************
X*** 1834,1839
X return(noErr);
X }
X #endif
X v->v_size = 0x1000000; /* some random number */
X v->v_free = 0x1000000; /* same random number */
X return(noErr); /* all ok */
X
X--- 1959,1967 -----
X return(noErr);
X }
X #endif
X+ #ifdef SIZESERVER
X+ getvolsize(path, &v->v_size, &v->v_free);
X+ #else SIZESERVER
X v->v_size = 0x1000000; /* some random number */
X v->v_free = 0x1000000; /* same random number */
X #endif SIZESERVER
X***************
X*** 1836,1841
X #endif
X v->v_size = 0x1000000; /* some random number */
X v->v_free = 0x1000000; /* same random number */
X return(noErr); /* all ok */
X }
X
X
X--- 1964,1970 -----
X #else SIZESERVER
X v->v_size = 0x1000000; /* some random number */
X v->v_free = 0x1000000; /* same random number */
X+ #endif SIZESERVER
X return(noErr); /* all ok */
X }
X
X***************
X*** 1839,1844
X return(noErr); /* all ok */
X }
X
X #ifdef USEGETMNT
X /* get info on path using buf when there is ambiguity (ultrix 2.0 or before) */
X /* fill in info on v */
X
X--- 1968,2043 -----
X return(noErr); /* all ok */
X }
X
X+ #ifdef SIZESERVER
X+ static jmp_buf gotpipe;
X+
X+ private void
X+ getvolsize(path, ntot, nfree)
X+ char *path;
X+ sdword *ntot, *nfree;
X+ {
X+ register int i;
X+ int mask, socket[2];
X+ struct volsize vs;
X+ static int server = -1, server1, servmask;
X+ static struct timeval servtimeout = {0, 500000L};
X+
X+ if(setjmp(gotpipe)) {
X+ if(server >= 0)
X+ close(server);
X+ server = -1;
X+ unknown:
X+ *ntot = 0x1000000;
X+ *nfree = 0x1000000;
X+ return;
X+ }
X+ if(server < 0) {
X+ register int pid;
X+ int catchsigpipe();
X+
X+ if(socketpair(AF_UNIX, SOCK_STREAM, 0, socket) < 0)
X+ goto unknown;
X+ if((pid = fork()) < 0) {
X+ close(socket[0]);
X+ close(socket[1]);
X+ goto unknown;
X+ }
X+ if(pid == 0) { /* the child */
X+ close(socket[0]);
X+ if(socket[1] != 0) {
X+ dup2(socket[1], 0);
X+ close(socket[1]);
X+ }
X+ execl(SIZESERVER, SIZESERVER, 0);
X+ _exit(1);
X+ }
X+ close(socket[1]);
X+ server = socket[0];
X+ server1 = server + 1;
X+ servmask = 1 << server;
X+ signal(SIGPIPE, catchsigpipe);
X+ }
X+ for(i = 3 ; ; ) {
X+ if(i-- <= 0)
X+ goto unknown;
X+ lseek(server, 0L, 2);
X+ write(server, path, strlen(path) + 1);
X+ mask = servmask;
X+ if(select(server1, &mask, NULL, NULL, &servtimeout) < 1)
X+ goto unknown;
X+ if(read(server, (char *)&vs, sizeof(vs)) == sizeof(vs))
X+ break;
X+ }
X+ *ntot = vs.total;
X+ *nfree = vs.free;
X+ }
X+
X+ catchsigpipe()
X+ {
X+ longjmp(gotpipe, 1);
X+ }
X+ #endif SIZESERVER
X+
X #ifdef USEGETMNT
X /* get info on path using buf when there is ambiguity (ultrix 2.0 or before) */
X /* fill in info on v */
X***************
X*** 2064,2069
X IDirP spdir,dpdir; /* source and destination parents */
X char *sfile,*dfile; /* source and destination file names */
X {
X char spath[MAXPATHLEN];
X char dpath[MAXPATHLEN];
X struct stat stb;
X
X--- 2263,2270 -----
X IDirP spdir,dpdir; /* source and destination parents */
X char *sfile,*dfile; /* source and destination file names */
X {
X+ char s_path[MAXPATHLEN];
X+ char d_path[MAXPATHLEN];
X char spath[MAXPATHLEN];
X char dpath[MAXPATHLEN];
X struct stat stb;
X***************
X*** 2070,2077
X int mo;
X int err;
X
X! OSfname(spath,spdir,sfile,F_DATA); /* create unix style name for data */
X! OSfname(dpath,dpdir,dfile,F_DATA); /* same for destination */
X
X if (DBOSI)
X printf("OSCopyFile: %s -> %s\n",spath,dpath);
X
X--- 2271,2284 -----
X int mo;
X int err;
X
X! OSfname(s_path,spdir,sfile,F_DATA); /* create unix style name for data */
X! #ifdef NOCASEMATCH
X! noCaseMatch(s_path);
X! #endif NOCASEMATCH
X! OSfname(d_path,dpdir,dfile,F_DATA); /* same for destination */
X! #ifdef NOCASEMATCH
X! noCaseMatch(d_path);
X! #endif NOCASEMATCH
X
X if (DBOSI)
X printf("OSCopyFile: %s -> %s\n",s_path,d_path);
X***************
X*** 2074,2080
X OSfname(dpath,dpdir,dfile,F_DATA); /* same for destination */
X
X if (DBOSI)
X! printf("OSCopyFile: %s -> %s\n",spath,dpath);
X
X err = unix_stat(dpath,&stb); /* see if destination exists... */
X if (err == noErr) /* yes... it does */
X
X--- 2281,2287 -----
X #endif NOCASEMATCH
X
X if (DBOSI)
X! printf("OSCopyFile: %s -> %s\n",s_path,d_path);
X
X err = unix_stat(d_path,&stb); /* see if destination exists... */
X if (err == noErr) /* yes... it does */
X***************
X*** 2076,2082
X if (DBOSI)
X printf("OSCopyFile: %s -> %s\n",spath,dpath);
X
X! err = unix_stat(dpath,&stb); /* see if destination exists... */
X if (err == noErr) /* yes... it does */
X return(aeObjectExists); /* return error... */
X
X
X--- 2283,2289 -----
X if (DBOSI)
X printf("OSCopyFile: %s -> %s\n",s_path,d_path);
X
X! err = unix_stat(d_path,&stb); /* see if destination exists... */
X if (err == noErr) /* yes... it does */
X return(aeObjectExists); /* return error... */
X
X***************
X*** 2084,2090
X if ((err = unix_stat(pathstr(dpdir), &stb)) != noErr)
X return(err);
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X! err = os_copy(spath,dpath, mo);
X
X if (err != noErr && DBOSI)
X printf("OSCopyFile: DATA copy failed %s\n",afperr(err));
X
X--- 2291,2297 -----
X if ((err = unix_stat(pathstr(dpdir), &stb)) != noErr)
X return(err);
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X! err = os_copy(s_path,d_path, mo);
X
X if (err != noErr && DBOSI)
X printf("OSCopyFile: DATA copy failed %s\n",afperr(err));
X***************
X*** 2092,2099
X if (err != noErr)
X return(err);
X
X! OSfname(spath,spdir,sfile,F_RSRC); /* create unix style name for rsrc */
X! OSfname(dpath,dpdir,dfile,F_RSRC); /* same for destination */
X err = os_copy(spath,dpath,mo); /* do the copy... */
X /* allow object not found */
X if (err != noErr && err != aeObjectNotFound) { /* if failure.... */
X
X--- 2299,2308 -----
X if (err != noErr)
X return(err);
X
X! strcpy(spath,s_path);
X! toResFork(spath,sfile); /* create unix style name for rsrc */
X! strcpy(dpath,d_path);
X! toResFork(dpath,dfile); /* same for destination */
X err = os_copy(spath,dpath,mo); /* do the copy... */
X /* allow object not found */
X if (err != noErr && err != aeObjectNotFound) { /* if failure.... */
X***************
X*** 2103,2110
X return(err);
X }
X
X! OSfname(spath,spdir,sfile,F_FNDR); /* create unix style name for fndr */
X! OSfname(dpath,dpdir,dfile,F_FNDR); /* same for destination */
X err = os_copy(spath,dpath,mo); /* do the copy... */
X /* allow object not found */
X if (err != noErr && err != aeObjectNotFound) {
X
X--- 2312,2321 -----
X return(err);
X }
X
X! strcpy(spath,s_path);
X! toFinderInfo(spath,sfile); /* create unix style name for fndr */
X! strcpy(dpath,d_path);
X! toFinderInfo(dpath,dfile); /* same for destination */
X err = os_copy(spath,dpath,mo); /* do the copy... */
X /* allow object not found */
X if (err != noErr && err != aeObjectNotFound) {
X***************
X*** 2210,2215
X char *file;
X int delf; /* if want to delete existing file */
X {
X char path[MAXPATHLEN];
X int err,derr,rerr,cerr,mo;
X struct stat stb;
X
X--- 2421,2427 -----
X char *file;
X int delf; /* if want to delete existing file */
X {
X+ char p_ath[MAXPATHLEN];
X char path[MAXPATHLEN];
X int err,derr,rerr,cerr,mo;
X struct stat stb;
X***************
X*** 2214,2220
X int err,derr,rerr,cerr,mo;
X struct stat stb;
X
X! OSfname(path,pdir,file,F_DATA); /* create data file name */
X
X if (DBOSI)
X printf("OSCreateFile: creating %s with %s\n",path,
X
X--- 2426,2435 -----
X int err,derr,rerr,cerr,mo;
X struct stat stb;
X
X! OSfname(p_ath,pdir,file,F_DATA); /* create data file name */
X! #ifdef NOCASEMATCH
X! noCaseMatch(p_ath);
X! #endif NOCASEMATCH
X
X if (DBOSI)
X printf("OSCreateFile: creating %s with %s\n",p_ath,
X***************
X*** 2217,2223
X OSfname(path,pdir,file,F_DATA); /* create data file name */
X
X if (DBOSI)
X! printf("OSCreateFile: creating %s with %s\n",path,
X (delf) ? "OverWrite" : "No OverWrite");
X
X err = unix_stat(pathstr(pdir),&stb);
X
X--- 2432,2438 -----
X #endif NOCASEMATCH
X
X if (DBOSI)
X! printf("OSCreateFile: creating %s with %s\n",p_ath,
X (delf) ? "OverWrite" : "No OverWrite");
X
X err = unix_stat(pathstr(pdir),&stb);
X***************
X*** 2226,2233
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X
X /* should never get aeObjectExists if delf was true */
X! OSfname(path,pdir,file,F_DATA); /* create data fork */
X! derr = unix_create(path,delf,mo); /* using user delete flag */
X if (derr != noErr && derr != aeObjectExists) {
X if (DBOSI)
X printf("OSCreateFile: DATA fork create failed\n");
X
X--- 2441,2447 -----
X mo = filemode(stb.st_mode, stb.st_uid, stb.st_gid);
X
X /* should never get aeObjectExists if delf was true */
X! derr = unix_create(p_ath,delf,mo); /* using user delete flag */
X if (derr != noErr && derr != aeObjectExists) {
X if (DBOSI)
X printf("OSCreateFile: DATA fork create failed\n");
X***************
X*** 2233,2240
X printf("OSCreateFile: DATA fork create failed\n");
X /* previously under a conditional on delf, but not necessary */
X /* anymore because we don't get here if the object was already there */
X! OSfname(path,pdir,file,F_DATA);
X! cerr = unix_unlink(path); /* clean up... */
X if (cerr != noErr && DBOSI)
X printf("OSCreateFile: cleanup failed\n");
X return(derr);
X
X--- 2447,2453 -----
X printf("OSCreateFile: DATA fork create failed\n");
X /* previously under a conditional on delf, but not necessary */
X /* anymore because we don't get here if the object was already there */
X! cerr = unix_unlink(p_ath); /* clean up... */
X if (cerr != noErr && DBOSI)
X printf("OSCreateFile: cleanup failed\n");
X return(derr);
X***************
X*** 2240,2246
X return(derr);
X }
X
X! OSfname(path,pdir,file,F_RSRC); /* try creating resource fork */
X rerr = unix_create(path,delf,mo); /* ... */
X if (rerr != noErr && rerr != aeObjectExists && rerr != aeObjectNotFound) {
X if (DBOSI)
X
X--- 2453,2460 -----
X return(derr);
X }
X
X! strcpy(path,p_ath);
X! toResFork(path,file); /* try creating resource fork */
X rerr = unix_create(path,delf,mo); /* ... */
X if (rerr != noErr && rerr != aeObjectExists && rerr != aeObjectNotFound) {
X if (DBOSI)
X***************
X*** 2247,2253
X printf("OSCreateFile: RSRC create failed\n");
X /* previously under a conditional on delf, but not necessary */
X /* anymore because we don't get here if the object was already there */
X- OSfname(path,pdir,file,F_RSRC);
X cerr = unix_unlink(path); /* clean up... */
X if (cerr != noErr && DBOSI)
X printf("OSCreateFile: cleanup failed\n");
X
X--- 2461,2466 -----
X printf("OSCreateFile: RSRC create failed\n");
X /* previously under a conditional on delf, but not necessary */
X /* anymore because we don't get here if the object was already there */
X cerr = unix_unlink(path); /* clean up... */
X if (cerr != noErr && DBOSI)
X printf("OSCreateFile: cleanup failed\n");
X***************
X*** 2255,2261
X return(rerr);
X }
X
X! OSfname(path,pdir,file,F_FNDR); /* create finder fork */
X err = unix_create(path,TRUE,mo);
X /* ignore error here - exactly what should be done? */
X
X
X--- 2468,2475 -----
X return(rerr);
X }
X
X! strcpy(path,p_ath);
X! toFinderInfo(path,file); /* create finder fork */
X err = unix_create(path,TRUE,mo);
X /* ignore error here - exactly what should be done? */
X
X***************
X*** 2277,2282
X char path[MAXPATHLEN];
X char *ms;
X int mo;
X
X OSfname(path,pdir,file,typ); /* expand name */
X
X
X--- 2491,2499 -----
X char path[MAXPATHLEN];
X char *ms;
X int mo;
X+ #ifdef NOCASEMATCH
X+ register int i;
X+ #endif NOCASEMATCH
X
X OSfname(path,pdir,file,typ); /* expand name */
X
X***************
X*** 2298,2303
X if (DBOSI)
X printf("OSOpenFork: Opening %s for %s\n",path,ms);
X
X return(unix_open(path,mo,fhdl));
X }
X
X
X--- 2515,2527 -----
X if (DBOSI)
X printf("OSOpenFork: Opening %s for %s\n",path,ms);
X
X+ #ifdef NOCASEMATCH
X+ if((i = unix_open(path,mo,fhdl)) != noErr) {
X+ noCaseFind(path);
X+ i = unix_open(path,mo,fhdl);
X+ }
X+ return(i);
X+ #else NOCASEMATCH
X return(unix_open(path,mo,fhdl));
X #endif NOCASEMATCH
X }
X***************
X*** 2299,2304
X printf("OSOpenFork: Opening %s for %s\n",path,ms);
X
X return(unix_open(path,mo,fhdl));
X }
X
X
X
X--- 2523,2529 -----
X return(i);
X #else NOCASEMATCH
X return(unix_open(path,mo,fhdl));
X+ #endif NOCASEMATCH
X }
X
X
SHAR_EOF
if test 41043 -ne "`wc -c < 'afpos.c.diff'`"
then
echo shar: error transmitting "'afpos.c.diff'" '(should have been 41043 characters)'
fi
fi # end of overwriting check
# End of shell archive
exit 0
--- end of part 2 ---