This is atari.c in view mode; [Download] [Up]
/* * ATARI.C * * Necessary interface functions, mostly for conversion * of path names. */ #ifdef ATARI_ST #include <stdio.h> #include <stdlib.h> #include <tos.h> #include <ext.h> #define FNMAX 256 #define OF(sig) sig char *st_fn OF((char *)); char *st_fn(s) char *s; { static char tosname [ FNMAX ]; char *t = tosname; while ( *t=*s++ ) { if ( *t == '/' ) *t = '\\'; t++; } return(tosname); } int st_unlink(f) char *f; { return(unlink(st_fn(f))); } /* Fake chmod with minimalistic functionality. * [ anyway people will be in trouble with the readonly files * produces by this, since 'normal' users don't own the * 'tools' to manipulate these. ] */ int st_chmod(f, a) char *f; /* file path */ int a; /* attributes returned by getfileattr() */ /* Give the file f the attributes a, return non-zero on failure */ { if ( ! ( a & S_IWRITE ) ) if (Fattrib(st_fn(f), 1, FA_READONLY) < 0 ) return(-1); return 0; } /* * mktemp is not part of the Turbo C library. */ char *st_mktemp(s) char *s; { char *t; long i; for(t=s; *t; t++) if ( *t == '/' ) *t = '\\'; t -= 6; i = (unsigned long)s % 1000000L; do { sprintf(t, "%06ld", i++); } while ( Fsfirst(s, 0x21) == 0 ); return(s); } FILE *st_fopen(f,m) char *f; char *m; { return(fopen(st_fn(f),m)); } int st_open(f,m) char *f; int m; { return(open(st_fn(f),m)); } int st_stat(f, b) char *f; struct stat *b; { return(stat(st_fn(f),b)); } int st_findfirst(n,d,a) char *n; struct ffblk *d; int a; { return(findfirst( st_fn(n),(struct ffblk *)d,a)); } int st_rename(s, d) char *s, *d; { char tosname [ FNMAX ]; char *t = tosname; while ( *t=*s++ ) { if ( *t == '/' ) *t = '\\'; t++; } return(rename(tosname, st_fn(d))); } int st_rmdir(d) char *d; { return(Ddelete(st_fn(d))); } #endif /* ?ATARI_ST */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.