summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-08-21 10:51:47 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2001-08-21 10:51:47 (GMT)
commit404e0b7c1e2b63d853f883794acc971249a15178 (patch)
treea0434cc678bc2d0c2268c292f218cd75ff333e7c /Mac
parent0e53685d1061a0a0de8ac595ef2723307fa595c3 (diff)
downloadcpython-404e0b7c1e2b63d853f883794acc971249a15178.zip
cpython-404e0b7c1e2b63d853f883794acc971249a15178.tar.gz
cpython-404e0b7c1e2b63d853f883794acc971249a15178.tar.bz2
These long dead files somehow got revived. Killed them (but for how
long? :-).
Diffstat (limited to 'Mac')
-rw-r--r--Mac/errno_unix.h18
-rw-r--r--Mac/fopenRF.c336
-rw-r--r--Mac/mkapplet.py257
-rw-r--r--Mac/mwerksglue.c43
4 files changed, 0 insertions, 654 deletions
diff --git a/Mac/errno_unix.h b/Mac/errno_unix.h
deleted file mode 100644
index 00fbe5a..0000000
--- a/Mac/errno_unix.h
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#define ENOTDIR (-120)
-#define EACCES (-54)
-#define EEXIST (-48)
-#define EBUSY (-47)
-#define EROFS (-44)
-#define ENOENT (-43)
-#define ENFILE (-42)
-#define EIO (-36)
-#define ENOSPC (-34)
-
-#define ESRCH 3
-#define EINTR 4
-#define EBADF 9
-#define ENODEV 19
-#define EINVAL 22
-#define EMFILE 24
-
diff --git a/Mac/fopenRF.c b/Mac/fopenRF.c
deleted file mode 100644
index 04f192e..0000000
--- a/Mac/fopenRF.c
+++ /dev/null
@@ -1,336 +0,0 @@
-
-/*
- * fopen.c
- *
- * Copyright (c) 1991 Symantec Corporation. All rights reserved.
- *
- */
-
-#include <MacHeaders>
-
-#include "stdio.h"
-#include "errno.h"
-#include "string.h"
-#include "ansi_private.h"
-
-extern long _ftype, _fcreator;
-
-#define fcbVPtr(fcb) (* (VCB **) (fcb + 20))
-#define fcbDirID(fcb) (* (long *) (fcb + 58))
-#define fcbCName(fcb) (fcb + 62)
-
-static void setfiletype(StringPtr, int);
-static void stdio_exit(void);
-static int fileio(FILE *, int);
-static int close(FILE *);
-static void replace(unsigned char *, size_t, int, int);
-
-FILE *freopenRF();
-FILE *__openRF();
-
-FILE *
-fopenRF(const char *filename, const char *mode)
-{
- return(freopenRF(filename, mode, __getfile()));
-}
-
-
-FILE *
-freopenRF(const char *filename, const char *mode, FILE *fp)
-{
- int omode, oflag;
-
- /* interpret "rwa" */
-
- if (mode[0] == 'r') {
- omode = fsRdPerm;
- oflag = 0;
- }
- else if (mode[0] == 'w') {
- omode = fsWrPerm;
- oflag = F_CREAT+F_TRUNC;
- }
- else if (mode[0] == 'a') {
- omode = fsWrPerm;
- oflag = F_CREAT+F_APPEND;
- }
- else {
- errno = EINVAL;
- return(NULL);
- }
-
- /* interpret "b+" */
-
- if (mode[1] == 'b') {
- oflag |= F_BINARY;
- if (mode[2] == '+')
- omode = fsRdWrPerm;
- }
- else if (mode[1] == '+') {
- omode = fsRdWrPerm;
- if (mode[2] == 'b')
- oflag |= F_BINARY;
- }
-
- /* open the file */
-
- return(__openRF(filename, omode, oflag, fp));
-}
-
-
-FILE *
-__openRF(const char *filename, int omode, int oflag, FILE *fp)
-{
- IOParam pb;
- char pname[FILENAME_MAX];
-
- if (fp == NULL)
- return(NULL);
- fclose(fp);
-
- /* set up pb */
-
- pb.ioNamePtr = __c2p(filename, pname);
- pb.ioVRefNum = 0;
- pb.ioVersNum = 0;
- pb.ioPermssn = omode;
- pb.ioMisc = 0;
-
- /* create file */
-
- if (oflag & F_CREAT) {
- PBCreateSync((ParmBlkPtr)&pb);
- if (pb.ioResult == noErr)
- oflag &= ~F_TRUNC;
- else if (pb.ioResult == dupFNErr && !(oflag & F_EXCL))
- oflag &= ~F_CREAT;
- else {
- errno = pb.ioResult;
- return(NULL);
- }
- }
-
- /* open file */
-
- PBOpenRFSync((ParmBlkPtr)&pb);
- if (pb.ioResult) {
- errno = pb.ioResult;
- if (oflag & F_CREAT)
- PBDeleteSync((ParmBlkPtr)&pb);
- return(NULL);
- }
- fp->refnum = pb.ioRefNum;
-
- /* get/set file length */
-
- if (oflag & F_TRUNC)
- PBSetEOFSync((ParmBlkPtr)&pb);
- else if (!(oflag & F_CREAT))
- PBGetEOFSync((ParmBlkPtr)&pb);
- fp->len = (fpos_t) pb.ioMisc;
-
- /* initialize rest of FILE structure */
-
- if (oflag & F_APPEND) {
- fp->append = 1;
- fp->pos = fp->len;
- }
- if (oflag & F_BINARY)
- fp->binary = 1;
- setvbuf(fp, NULL, _IOFBF, BUFSIZ);
- fp->proc = fileio;
-
- /* set file type */
-
- if (oflag & (F_CREAT|F_TRUNC))
- setfiletype(pb.ioNamePtr, oflag);
-
- /* done */
-
- __atexit_stdio(stdio_exit);
- return(fp);
-}
-
-
-/*
- * setfiletype - set type/creator of new file
- *
- */
-
-static void
-setfiletype(StringPtr name, int oflag)
-{
- FileParam pb;
-
- pb.ioNamePtr = name;
- pb.ioVRefNum = 0;
- pb.ioFVersNum = 0;
- pb.ioFDirIndex = 0;
- if (PBGetFInfoSync((ParmBlkPtr)&pb) == noErr) {
- if (oflag & F_BINARY)
- pb.ioFlFndrInfo.fdType = _ftype;
- else
- pb.ioFlFndrInfo.fdType = 'TEXT';
- pb.ioFlFndrInfo.fdCreator = _fcreator;
- PBSetFInfoSync((ParmBlkPtr)&pb);
- }
-}
-
-
-/*
- * stdio_exit - stdio shutdown routine
- *
- */
-
-static void
-stdio_exit(void)
-{
- register FILE *fp;
- int n;
-
- for (fp = &__file[0], n = FOPEN_MAX; n--; fp++)
- fclose(fp);
-}
-
-
-/*
- * fileio - I/O handler proc for files and devices
- *
- */
-
-static int
-fileio(FILE *fp, int i)
-{
- IOParam pb;
-
- pb.ioRefNum = fp->refnum;
- switch (i) {
-
- /* read */
-
- case 0:
- pb.ioBuffer = (Ptr) fp->ptr;
- pb.ioReqCount = fp->cnt;
- pb.ioPosMode = fp->refnum > 0 ? fsFromStart : fsAtMark;
- pb.ioPosOffset = fp->pos - fp->cnt;
- PBReadSync((ParmBlkPtr)&pb);
- if (pb.ioResult == eofErr) {
- fp->pos = pb.ioPosOffset;
- if (fp->cnt = pb.ioActCount)
- pb.ioResult = 0;
- else {
- fp->eof = 1;
- return(EOF);
- }
- }
- if (!pb.ioResult && !fp->binary)
- replace(fp->ptr, fp->cnt, '\r', '\n');
- break;
-
- /* write */
-
- case 1:
- pb.ioBuffer = (Ptr) fp->ptr;
- pb.ioReqCount = fp->cnt;
- pb.ioPosMode = fp->refnum > 0 ? fsFromStart : fsAtMark;
- if ((pb.ioPosOffset = fp->pos - fp->cnt) > fp->len) {
- pb.ioMisc = (Ptr) pb.ioPosOffset;
- if (PBSetEOFSync((ParmBlkPtr)&pb) != noErr)
- break;
- }
- if (!fp->binary)
- replace(fp->ptr, fp->cnt, '\n', '\r');
- PBWriteSync((ParmBlkPtr)&pb);
- if (!pb.ioResult && pb.ioPosOffset > fp->len)
- fp->len = pb.ioPosOffset;
- break;
-
- /* close */
-
- case 2:
- pb.ioResult = close(fp);
- break;
- }
-
- /* done */
-
- if (pb.ioResult) {
- if (i < 2) {
- fp->pos -= fp->cnt;
- fp->cnt = 0;
- }
- fp->err = 1;
- errno = pb.ioResult;
- return(EOF);
- }
- return(0);
-}
-
-
-static int
-close(FILE *fp)
-{
- HFileParam pb;
- Str255 buf;
- register char *fcb = FCBSPtr + fp->refnum;
- VCB *vcb = fcbVPtr(fcb);
- register char *s;
- enum { none, MFS, HFS } del = none;
-
- pb.ioVRefNum = vcb->vcbVRefNum;
- if (fp->remove) {
- pb.ioNamePtr = buf;
- pb.ioFVersNum = 0;
-
- /* close temporary file - HFS */
-
- if (vcb->vcbSigWord == 0x4244) {
- pb.ioDirID = fcbDirID(fcb);
- s = fcbCName(fcb);
- memcpy(buf, s, Length(s) + 1);
- del = HFS;
- }
-
- /* close temporary file - MFS */
-
- else if (vcb->vcbSigWord == 0xD2D7) {
- for (pb.ioFDirIndex = 1; PBGetFInfoSync((ParmBlkPtr)&pb) == noErr; pb.ioFDirIndex++) {
- if (pb.ioFRefNum == fp->refnum) {
- del = MFS;
- break;
- }
- }
- }
- }
-
- /* close file and flush volume buffer */
-
- pb.ioFRefNum = fp->refnum;
- if (PBCloseSync((ParmBlkPtr)&pb) == noErr) {
- if (del == MFS)
- PBDeleteSync((ParmBlkPtr)&pb);
- else if (del == HFS)
- PBHDeleteSync((HParmBlkPtr)&pb);
- pb.ioNamePtr = 0;
- PBFlushVolSync((ParmBlkPtr)&pb);
- }
- return(pb.ioResult);
-}
-
-
-/*
- * replace - routine for doing CR/LF conversion
- *
- */
-
-static void
-replace(register unsigned char *s, register size_t n, register int c1, register int c2)
-{
-#pragma options(honor_register)
- register unsigned char *t;
-
- for (; n && (t = memchr(s, c1, n)); s = t) {
- *t++ = c2;
- n -= t - s;
- }
-}
diff --git a/Mac/mkapplet.py b/Mac/mkapplet.py
deleted file mode 100644
index 99486d4..0000000
--- a/Mac/mkapplet.py
+++ /dev/null
@@ -1,257 +0,0 @@
-"""Create an applet from a Python script.
-
-This puts up a dialog asking for a Python source file ('TEXT').
-The output is a file with the same name but its ".py" suffix dropped.
-It is created by copying an applet template and then adding a 'PYC '
-resource named __main__ containing the compiled, marshalled script.
-"""
-
-import sys
-sys.stdout = sys.stderr
-
-import string
-import os
-import marshal
-import imp
-import macfs
-import MacOS
-from Res import *
-
-# .pyc file (and 'PYC ' resource magic number)
-MAGIC = imp.get_magic()
-
-# Template file (searched on sys.path)
-TEMPLATE = "PythonApplet"
-
-# Specification of our resource
-RESTYPE = 'PYC '
-RESNAME = '__main__'
-
-# A resource with this name sets the "owner" (creator) of the destination
-OWNERNAME = "owner resource"
-
-# OpenResFile mode parameters
-READ = 1
-WRITE = 2
-
-def main():
-
- # Find the template
- # (there's no point in proceeding if we can't find it)
-
- for p in sys.path:
- template = os.path.join(p, TEMPLATE)
- try:
- tmpl = open(template, "rb")
- tmpl.close()
- break
- except IOError:
- continue
- else:
- die("Template %s not found" % `template`)
- return
-
- # Ask for source text if not specified in sys.argv[1:]
-
- if not sys.argv[1:]:
- srcfss, ok = macfs.StandardGetFile('TEXT')
- if not ok:
- return
- filename = srcfss.as_pathname()
- tp, tf = os.path.split(filename)
- if tf[-3:] == '.py':
- tf = tf[:-3]
- else:
- tf = tf + '.applet'
- dstfss, ok = macfs.StandardPutFile('Save application as:', tf)
- if not ok: return
- process(template, filename, dstfss.as_pathname())
- else:
-
- # Loop over all files to be processed
- for filename in sys.argv[1:]:
- process(template, filename, '')
-
-undefs = ('????', ' ', '\0\0\0\0', 'BINA')
-
-def process(template, filename, output):
-
- print "Processing", `filename`, "..."
-
- # Read the source and compile it
- # (there's no point overwriting the destination if it has a syntax error)
-
- fp = open(filename)
- text = fp.read()
- fp.close()
- try:
- code = compile(text, filename, "exec")
- except (SyntaxError, EOFError):
- die("Syntax error in script %s" % `filename`)
- return
-
- # Set the destination file name
-
- if string.lower(filename[-3:]) == ".py":
- destname = filename[:-3]
- rsrcname = destname + '.rsrc'
- else:
- destname = filename + ".applet"
- rsrcname = filename + '.rsrc'
-
- if output:
- destname = output
- # Copy the data from the template (creating the file as well)
-
- tmpl = open(template, "rb")
- dest = open(destname, "wb")
- data = tmpl.read()
- if data:
- dest.write(data)
- dest.close()
- tmpl.close()
-
- # Copy the creator of the template to the destination
- # unless it already got one. Set type to APPL
-
- tctor, ttype = MacOS.GetCreatorAndType(template)
- ctor, type = MacOS.GetCreatorAndType(destname)
- if type in undefs: type = 'APPL'
- if ctor in undefs: ctor = tctor
-
- # Open the output resource fork
-
- try:
- output = FSpOpenResFile(destname, WRITE)
- except MacOS.Error:
- print "Creating resource fork..."
- CreateResFile(destname)
- output = FSpOpenResFile(destname, WRITE)
-
- # Copy the resources from the template
-
- input = FSpOpenResFile(template, READ)
- newctor = copyres(input, output)
- CloseResFile(input)
- if newctor: ctor = newctor
-
- # Copy the resources from the target specific resource template, if any
-
- try:
- input = FSpOpenResFile(rsrcname, READ)
- except MacOS.Error:
- pass
- else:
- newctor = copyres(input, output)
- CloseResFile(input)
- if newctor: ctor = newctor
-
- # Now set the creator and type of the destination
-
- MacOS.SetCreatorAndType(destname, ctor, type)
-
- # Make sure we're manipulating the output resource file now
-
- UseResFile(output)
-
- # Delete any existing 'PYC 'resource named __main__
-
- try:
- res = Get1NamedResource(RESTYPE, RESNAME)
- res.RmveResource()
- except Error:
- pass
-
- # Create the raw data for the resource from the code object
-
- data = marshal.dumps(code)
- del code
- data = (MAGIC + '\0\0\0\0') + data
-
- # Create the resource and write it
-
- id = 0
- while id < 128:
- id = Unique1ID(RESTYPE)
- res = Resource(data)
- res.AddResource(RESTYPE, id, RESNAME)
- res.WriteResource()
- res.ReleaseResource()
-
- # Close the output file
-
- CloseResFile(output)
-
- # Give positive feedback
-
- message("Applet %s created." % `destname`)
-
-
-# Copy resources between two resource file descriptors.
-# Exception: don't copy a __main__ resource.
-# If a resource's name is "owner resource", its type is returned
-# (so the caller can use it to set the destination's creator)
-
-def copyres(input, output):
- ctor = None
- UseResFile(input)
- ntypes = Count1Types()
- for itype in range(1, 1+ntypes):
- type = Get1IndType(itype)
- nresources = Count1Resources(type)
- for ires in range(1, 1+nresources):
- res = Get1IndResource(type, ires)
- id, type, name = res.GetResInfo()
- lcname = string.lower(name)
- if (type, lcname) == (RESTYPE, RESNAME):
- continue # Don't copy __main__ from template
- if lcname == OWNERNAME: ctor = type
- size = res.SizeResource()
- attrs = res.GetResAttrs()
- print id, type, name, size, hex(attrs)
- res.LoadResource()
- res.DetachResource()
- UseResFile(output)
- try:
- res2 = Get1Resource(type, id)
- except MacOS.Error:
- res2 = None
- if res2:
- print "Overwriting..."
- res2.RmveResource()
- res.AddResource(type, id, name)
- res.WriteResource()
- attrs = attrs | res.GetResAttrs()
- print "New attrs =", hex(attrs)
- res.SetResAttrs(attrs)
- UseResFile(input)
- return ctor
-
-
-# Show a message and exit
-
-def die(str):
- message(str)
- sys.exit(1)
-
-
-# Show a message
-
-def message(str, id = 256):
- from Dlg import *
- d = GetNewDialog(id, -1)
- if not d:
- print "Error:", `str`
- print "DLOG id =", id, "not found."
- return
- tp, h, rect = d.GetDItem(2)
- SetIText(h, str)
- while 1:
- n = ModalDialog(None)
- if n == 1: break
- del d
-
-
-if __name__ == '__main__':
- main()
-
diff --git a/Mac/mwerksglue.c b/Mac/mwerksglue.c
deleted file mode 100644
index 37e3a81..0000000
--- a/Mac/mwerksglue.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-** Glue code for MetroWerks CodeWarrior, which misses
-** unix-like routines for file-access.
-*/
-
-#ifdef __MWERKS__
-#include <Types.h>
-#include <Files.h>
-#include <Strings.h>
-
-#include <stdio.h>
-#include <errno.h>
-
-int
-fileno(fp)
- FILE *fp;
-{
- if (fp==stdin) return 0;
- else if (fp==stdout) return 1;
- else if (fp==stderr) return 2;
- else return 3;
-}
-
-int
-isatty(fd)
- int fd;
-{
- return (fd >= 0 && fd <= 2);
-}
-
-int
-unlink(old)
- char *old;
-{
- OSErr err;
-
- if ((err=FSDelete(c2pstr(old), 0)) == noErr)
- return 0;
- errno= err;
- return -1;
-}
-
-#endif /* __MWERKS__ */ \ No newline at end of file