summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Mac/Compat/chdir.c42
-rw-r--r--Mac/Compat/dirent.h23
-rw-r--r--Mac/Compat/getbootvol.c18
-rw-r--r--Mac/Compat/getwd.c102
-rw-r--r--Mac/Compat/macgetmtime.c44
-rw-r--r--Mac/Compat/macstat.c63
-rw-r--r--Mac/Compat/macstat.h34
-rw-r--r--Mac/Compat/mkdir.c28
-rw-r--r--Mac/Compat/nfullpath.c75
-rw-r--r--Mac/Compat/nfullpath.h1
-rw-r--r--Mac/Compat/opendir.c132
-rw-r--r--Mac/Compat/rmdir.c20
12 files changed, 0 insertions, 582 deletions
diff --git a/Mac/Compat/chdir.c b/Mac/Compat/chdir.c
deleted file mode 100644
index 0560800..0000000
--- a/Mac/Compat/chdir.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Chdir for the Macintosh.
- Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
- Pathnames must be Macintosh paths, with colons as separators. */
-
-#include "macdefs.h"
-
-#ifdef __MWERKS__
-/* XXXX All compilers should use this, really */
-#include <LowMem.h>
-#else
-/* Last directory used by Standard File */
-#define SFSaveDisk (*(short *)0x214)
-#define CurDirStore (*(long *)0x398)
-#endif
-
-/* Change current directory. */
-
-int
-chdir(path)
- char *path;
-{
- WDPBRec pb;
-
- pb.ioNamePtr= (StringPtr) Pstring(path);
- pb.ioVRefNum= 0;
- pb.ioWDDirID= 0;
- if (PBHSetVol(&pb, FALSE) != noErr) {
- errno= ENOENT;
- return -1;
- }
- if (PBHGetVol(&pb, FALSE) == noErr) {
- /* Set the Standard File directory */
-#ifdef __MWERKS__
- LMSetSFSaveDisk(-pb.ioWDVRefNum);
- LMSetCurDirStore(pb.ioWDDirID);
-#else
- SFSaveDisk= -pb.ioWDVRefNum;
- CurDirStore= pb.ioWDDirID;
-#endif
- }
- return 0;
-}
diff --git a/Mac/Compat/dirent.h b/Mac/Compat/dirent.h
deleted file mode 100644
index 7cfe404..0000000
--- a/Mac/Compat/dirent.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * "Dir.h" for the Macintosh.
- * Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
- */
-
-#define MAXNAMLEN 31
-#define MAXPATH 256
-
-#define DIR struct _dir
-
-struct _dir {
- short vrefnum;
- long dirid;
- int nextfile;
-};
-
-struct dirent {
- char d_name[MAXPATH];
-};
-
-extern DIR *opendir(char *);
-extern struct dirent *readdir(DIR *);
-extern void closedir(DIR *);
diff --git a/Mac/Compat/getbootvol.c b/Mac/Compat/getbootvol.c
deleted file mode 100644
index df450c6..0000000
--- a/Mac/Compat/getbootvol.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Return the name of the boot volume (not the current directory).
- Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
-*/
-
-#include "macdefs.h"
-
-char *
-getbootvol(void)
-{
- short vrefnum;
- static unsigned char name[32];
-
- (void) GetVol(name, &vrefnum);
- p2cstr(name);
- /* Shouldn't fail; return ":" if it does */
- strcat((char *)name, ":");
- return (char *)name;
-}
diff --git a/Mac/Compat/getwd.c b/Mac/Compat/getwd.c
deleted file mode 100644
index 738d756..0000000
--- a/Mac/Compat/getwd.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Get full pathname of current working directory. The pathname is
- copied to the parameter array 'cwd', and a pointer to this array
- is also returned as function result. If an error occurred, however,
- the return value is NULL but 'cwd' is filled with an error message.
-
- BUG: expect spectacular crashes when called from a directory whose
- path would be over MAXPATH bytes long (files in such directories are
- not reachable by full pathname).
-
- Starting with the dir ID returned by PBHGetVol, we do successive
- PBGetCatInfo's to get a component of the path until we reach the
- root (recognized by a dir ID of 2). We move up along the path
- using the dir ID of the parent directory returned by PBGetCatInfo.
-
- Then we catenate the components found in reverse order with the volume
- name (already gotten from PBHGetVol), with intervening and trailing
- colons
-
- The code works correctly on MFS disks (where it always returns the
- volume name) by simply skipping the PBGetCatinfo calls in that case.
- There is a 'bug' in PBGetCatInfo when called for an MFS disk (with
- HFS running): it then seems to call PBHGetVInfo, which returns a
- larger parameter block. But we won't run into this problem because
- we never call PBGetCatInfo for the root (assuming that PBHGetVol
- still sets the root ID in this case).
-
- Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
-*/
-
-#include "macdefs.h"
-#include <stdio.h>
-
-#define ROOTID 2 /* Root directory ID */
-
-char *
-getwd(char *cwd)
-{
- /* Universal parameter block. */
- union {
- struct HFileInfo f;
- struct DirInfo d;
- struct WDPBRec w;
- } pb;
- char buf[MAXPATH]; /* Buffer to store the name components */
- char *ecwd, *ebuf; /* Pointers to end of used part of cwd and buf */
- int err; /* Error code of last I/O call */
-
- /* First, get the default volume name and working directory ID. */
-
- pb.w.ioNamePtr= (unsigned char *)cwd;
- err= PBHGetVolSync(&pb.w);
- if (err != noErr) {
- sprintf(cwd, "I/O error %d in PBHGetVolSync", err);
- return NULL;
- }
- p2cstrcpy(cwd, (StringPtr)cwd);
- ecwd = strchr(cwd, EOS);
- ebuf= buf;
- *ebuf = EOS;
-
- /* Next, if at least we're running HFS, walk up the path. */
-
- {
- long dirid= pb.w.ioWDDirID;
- pb.d.ioVRefNum= pb.w.ioWDVRefNum;
- while (dirid != ROOTID) {
- pb.d.ioNamePtr= (unsigned char *) ++ebuf;
- pb.d.ioFDirIndex= -1;
- pb.d.ioDrDirID= dirid;
- err= PBGetCatInfoSync((CInfoPBPtr)&pb.d);
- if (err != noErr) {
- sprintf(cwd, "I/O error %d in PBGetCatInfoSync", err);
- return NULL;
- }
- dirid= pb.d.ioDrParID;
- p2cstrcpy(ebuf, (StringPtr)ebuf);
- ebuf += strlen(ebuf);
- /* Should check for buf overflow */
- }
- }
-
- /* Finally, reverse the list of components and append it to cwd.
- Ebuf points at the EOS after last component,
- and there is an EOS before the first component.
- If there are no components, ebuf equals buf (but there
- is still an EOS where it points).
- Ecwd points at the EOS after the path built up so far,
- initially the volume name.
- We break out of the loop in the middle, thus
- appending a colon at the end in all cases. */
-
- for (;;) {
- *ecwd++ = ':';
- if (ebuf == buf)
- break;
- do { } while (*--ebuf != EOS); /* Find component start */
- strcpy(ecwd, ebuf+1);
- ecwd= strchr(ecwd, EOS);
- }
- *ecwd= EOS;
- return cwd;
-}
diff --git a/Mac/Compat/macgetmtime.c b/Mac/Compat/macgetmtime.c
deleted file mode 100644
index c270834..0000000
--- a/Mac/Compat/macgetmtime.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI or Corporation for National Research Initiatives or
-CNRI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-While CWI is the initial source for this software, a modified version
-is made available by the Corporation for National Research Initiatives
-(CNRI) at the Internet address ftp://ftp.python.org.
-
-STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
-CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include "macstat.h"
-
-/* Interfaced used by import.c */
-
-long
-getmtime(path)
- char *path;
-{
- struct macstat st;
- if (macstat(path, &st) != 0)
- return -1L;
- return st.st_mtime;
-}
diff --git a/Mac/Compat/macstat.c b/Mac/Compat/macstat.c
deleted file mode 100644
index ee2c099..0000000
--- a/Mac/Compat/macstat.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Minimal 'stat' emulation: tells directories from files and
- gives length and mtime.
- Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
- Updated to give more info, August 1994.
-*/
-
-#include "macstat.h"
-#include "macdefs.h"
-
-/* Bits in ioFlAttrib: */
-#define LOCKBIT (1<<0) /* File locked */
-#define DIRBIT (1<<4) /* It's a directory */
-
-int
-macstat(path, buf)
- char *path;
- struct macstat *buf;
-{
- union {
- DirInfo d;
- FileParam f;
- HFileInfo hf;
- } pb;
- short err;
-
- pb.d.ioNamePtr = (unsigned char *)Pstring(path);
- pb.d.ioVRefNum = 0;
- pb.d.ioFDirIndex = 0;
- pb.d.ioDrDirID = 0;
- pb.f.ioFVersNum = 0; /* Fix found by Timo! See Tech Note 102 */
- err = PBGetCatInfoSync((CInfoPBPtr)&pb);
- if (err != noErr) {
- errno = ENOENT;
- return -1;
- }
- if (pb.d.ioFlAttrib & LOCKBIT)
- buf->st_mode = 0444;
- else
- buf->st_mode = 0666;
- if (pb.d.ioFlAttrib & DIRBIT) {
- buf->st_mode |= 0111 | S_IFDIR;
- buf->st_size = pb.d.ioDrNmFls;
- buf->st_rsize = 0;
- }
- else {
- buf->st_mode |= S_IFREG;
- if (pb.f.ioFlFndrInfo.fdType == 'APPL')
- buf->st_mode |= 0111;
- }
- buf->st_ino = pb.hf.ioDirID;
- buf->st_nlink = 1;
- buf->st_uid = 1;
- buf->st_gid = 1;
- buf->st_size = (buf->st_mode & S_IFDIR) ? 0 : pb.f.ioFlLgLen;
- buf->st_mtime = buf->st_atime = pb.f.ioFlMdDat;
- buf->st_ctime = pb.f.ioFlCrDat;
- buf->st_rsize = (buf->st_mode & S_IFDIR) ? 0 : pb.f.ioFlRLgLen;
- *(unsigned long *)buf->st_type =
- (buf->st_mode & S_IFDIR) ? 0 : pb.f.ioFlFndrInfo.fdType;
- *(unsigned long *)buf->st_creator =
- (buf->st_mode & S_IFDIR) ? 0 : pb.f.ioFlFndrInfo.fdCreator;
- return 0;
-}
diff --git a/Mac/Compat/macstat.h b/Mac/Compat/macstat.h
deleted file mode 100644
index 10d9653..0000000
--- a/Mac/Compat/macstat.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Include file belonging to stat emulator.
- Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
- Updated August 1994. */
-
-struct macstat {
- unsigned short st_dev;
- unsigned long st_ino;
- unsigned short st_mode;
- unsigned short st_nlink;
- unsigned short st_uid;
- unsigned short st_gid;
- unsigned short st_rdev;
- unsigned long st_size;
- unsigned long st_atime;
- unsigned long st_mtime;
- unsigned long st_ctime;
- /* Non-standard additions */
- unsigned long st_rsize; /* Resource size */
- char st_type[4]; /* File type, e.g. 'APPL' or 'TEXT' */
- char st_creator[4]; /* File creator, e.g. 'PYTH' */
-};
-
-#define S_IFMT 0170000
-#define S_IFDIR 0040000
-#define S_IFREG 0100000
-#define S_IREAD 0400
-#define S_IWRITE 0200
-#define S_IEXEC 0100
-
-extern int macstat(char *, struct macstat *);
-/* To stop inclusion of MWerks header: */
-#ifndef _STAT
-#define _STAT
-#endif
diff --git a/Mac/Compat/mkdir.c b/Mac/Compat/mkdir.c
deleted file mode 100644
index 3c35eb0..0000000
--- a/Mac/Compat/mkdir.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Mkdir for the Macintosh.
- Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
- Pathnames must be Macintosh paths, with colons as separators. */
-
-#include "macdefs.h"
-
-/* Create a directory. */
-
-int
-mkdir(path, mode)
- char *path;
- int mode; /* Ignored */
-{
- HFileParam pb;
-
- if (!hfsrunning()) {
- errno= ENODEV;
- return -1;
- }
- pb.ioNamePtr= (StringPtr) Pstring(path);
- pb.ioVRefNum= 0;
- pb.ioDirID= 0;
- if (PBDirCreate((HParmBlkPtr)&pb, FALSE) != noErr) {
- errno= EACCES;
- return -1;
- }
- return 0;
-}
diff --git a/Mac/Compat/nfullpath.c b/Mac/Compat/nfullpath.c
deleted file mode 100644
index ca027c8..0000000
--- a/Mac/Compat/nfullpath.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* GET FULL PATHNAME OF A FILE.
-** Original by Guido, modified by Jack to handle FSSpecs
-*/
-
-#include <string.h>
-
-#include <Files.h>
-
-#include "nfullpath.h"
-
-/* Mac file system parameters */
-#define MAXPATH 256 /* Max path name length+1 */
-#define SEP ':' /* Separator in path names */
-
-/* Macro to find out whether we can do HFS-only calls: */
-#define FSFCBLen (* (short *) 0x3f6)
-#define hfsrunning() (FSFCBLen > 0)
-
-int
-nfullpath(fsp, retbuf)
- FSSpec *fsp;
- char *retbuf;
-{
- union {
- HFileInfo f;
- DirInfo d;
- WDPBRec w;
- VolumeParam v;
- } pb;
- char cwd[2*MAXPATH];
- unsigned char namebuf[MAXPATH];
- short err;
- int dir;
- long dirid;
- char *next = cwd + sizeof cwd - 1;
- int len;
- int need_sep = 1;
-
- if (!hfsrunning())
- return -1;
-
- dir = fsp->vRefNum;
- dirid = fsp->parID;
- /* Stuff the filename into the buffer */
- len = fsp->name[0];
- *next = '\0';
- next -= len;
- memcpy(next, fsp->name+1, len);
-
- while (dirid != fsRtParID) {
- pb.d.ioNamePtr = namebuf;
- pb.d.ioVRefNum = dir;
- pb.d.ioFDirIndex = -1;
- pb.d.ioDrDirID = dirid;
- err= PBGetCatInfo((CInfoPBPtr)&pb.d, 0);
- if (err != noErr)
- return err;
- *--next = SEP;
- len = namebuf[0];
- if ( len + strlen(next) >= MAXPATH )
- return -1;
- next -= len;
- memcpy(next, (char *)namebuf+1, len);
- dirid = pb.d.ioDrParID;
- need_sep = 0;
- }
-
- strcpy(retbuf, next);
- if (need_sep) {
- next = strchr(retbuf, '\0');
- *next++ = SEP;
- *next++ = '\0';
- }
- return 0;
-}
diff --git a/Mac/Compat/nfullpath.h b/Mac/Compat/nfullpath.h
deleted file mode 100644
index 65ae5f3..0000000
--- a/Mac/Compat/nfullpath.h
+++ /dev/null
@@ -1 +0,0 @@
-int nfullpath(FSSpec *, char *); /* Generate full path from fsspec */
diff --git a/Mac/Compat/opendir.c b/Mac/Compat/opendir.c
deleted file mode 100644
index a015609..0000000
--- a/Mac/Compat/opendir.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Macintosh version of UNIX directory access package
- * (opendir, readdir, closedir).
- * Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
- */
-
-#include "dirent.h"
-#include "macdefs.h"
-
-static DIR opened;
-
-/*
- * Open a directory. This means calling PBOpenWD.
- * The value returned is always the address of opened, or NULL.
- * (I have as yet no use for multiple open directories; this could
- * be implemented by allocating memory dynamically.)
- */
-
-DIR *
-opendir(path)
- char *path;
-{
-#if TARGET_API_MAC_CARBON
- Str255 ppath;
- FSSpec fss;
- int plen;
- OSErr err;
-
- if (opened.nextfile != 0) {
- errno = EBUSY;
- return NULL; /* A directory is already open. */
- }
- plen = strlen(path);
- c2pstrcpy(ppath, path);
- if ( ppath[plen] != ':' )
- ppath[++plen] = ':';
- ppath[++plen] = 'x';
- ppath[0] = plen;
- if( (err = FSMakeFSSpec(0, 0, ppath, &fss)) < 0 && err != fnfErr ) {
- errno = EIO;
- return NULL;
- }
- opened.dirid = fss.parID;
- opened.vrefnum = fss.vRefNum;
- opened.nextfile = 1;
- return &opened;
-#else
- union {
- WDPBRec d;
- VolumeParam v;
- } pb;
- char ppath[MAXPATH];
- short err;
-
- if (opened.nextfile != 0) {
- errno = EBUSY;
- return NULL; /* A directory is already open. */
- }
- strncpy(ppath+1, path, ppath[0]= strlen(path));
- pb.d.ioNamePtr= (unsigned char *)ppath;
- pb.d.ioVRefNum= 0;
- pb.d.ioWDProcID= 0;
- pb.d.ioWDDirID= 0;
- err= PBOpenWD((WDPBPtr)&pb, 0);
- if (err != noErr) {
- errno = ENOENT;
- return NULL;
- }
- opened.dirid= pb.d.ioVRefNum;
- opened.nextfile= 1;
- return &opened;
-#endif
-}
-
-/*
- * Close a directory.
- */
-
-void
-closedir(dirp)
- DIR *dirp;
-{
-#if TARGET_API_MAC_CARBON
- dirp->nextfile = 0;
-#else
- WDPBRec pb;
-
- pb.ioVRefNum= dirp->dirid;
- (void) PBCloseWD(&pb, 0);
- dirp->dirid= 0;
- dirp->nextfile= 0;
-#endif
-}
-
-/*
- * Read the next directory entry.
- */
-
-struct dirent *
-readdir(dp)
- DIR *dp;
-{
- union {
- DirInfo d;
- FileParam f;
- HFileInfo hf;
- } pb;
- short err;
- static struct dirent dir;
-
- dir.d_name[0]= 0;
- pb.d.ioNamePtr= (unsigned char *)dir.d_name;
-#if TARGET_API_MAC_CARBON
- pb.d.ioVRefNum= dp->vrefnum;
- pb.d.ioDrDirID= dp->dirid;
-#else
- pb.d.ioVRefNum= dp->dirid;
- pb.d.ioDrDirID= 0;
-#endif
- pb.d.ioFDirIndex= dp->nextfile++;
- err= PBGetCatInfo((CInfoPBPtr)&pb, 0);
- if (err != noErr) {
- errno = EIO;
- return NULL;
- }
-#if TARGET_API_MAC_CARBON
- p2cstrcpy(dir.d_name, (StringPtr)dir.d_name);
-#else
- (void) p2cstr((unsigned char *)dir.d_name);
-#endif
- return &dir;
-}
diff --git a/Mac/Compat/rmdir.c b/Mac/Compat/rmdir.c
deleted file mode 100644
index 2e406c2..0000000
--- a/Mac/Compat/rmdir.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Rmdir for the Macintosh.
- Public domain by Guido van Rossum, CWI, Amsterdam (July 1987).
- Pathnames must be Macintosh paths, with colons as separators. */
-
-#include "macdefs.h"
-
-int
-rmdir(path)
- char *path;
-{
- IOParam pb;
-
- pb.ioNamePtr= (StringPtr) Pstring(path);
- pb.ioVRefNum= 0;
- if (PBDelete((ParmBlkPtr)&pb, FALSE) != noErr) {
- errno= EACCES;
- return -1;
- }
- return 0;
-}