home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
fish
/
telecom
/
uucp_442
/
src
/
dmail
/
compat.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-12-09
|
2KB
|
146 lines
/*
* COMPAT.C
*
* $Header: Beta:src/uucp/src/dmail/RCS/compat.c,v 1.1 90/02/02 12:03:31 dillon Exp Locker: dillon $
*
* (C) Copyright 1985-1990 by Matthew Dillon, All Rights Reserved.
*
*/
#include <stdio.h>
#include <pwd.h>
#include <sys/stat.h>
#include "config.h"
#ifdef AMIGA
#include <stdlib.h>
#include <exec/types.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>
getpid()
{
return((long)FindTask(NULL));
}
getuid()
{
return(0);
}
static struct passwd pas;
struct passwd *
getpwuid()
{
char *name = GetUserName();
if (name == NULL) {
puts("Warning, USER enviroment variable not set!");
name = "root";
}
pas.pw_name = malloc(strlen(name) + 1);
pas.pw_dir = malloc(16);
strcpy(pas.pw_name, name);
strcpy(pas.pw_dir, "sys:");
return(&pas);
}
void
bzero(d, n)
char *d;
{
setmem(d, n, 0);
}
void
bcopy(s, d, n)
char *s, *d;
{
movmem(s, d, n);
}
void
sleep(n)
{
if (n)
Delay(50 * n);
}
stat(file, st)
char *file;
struct stat *st;
{
struct FileLock *lock;
struct FileInfoBlock *fib = (struct FileInfoBlock *)malloc(sizeof(struct FileInfoBlock));
lock = (struct FileLock *)Lock(file, SHARED_LOCK);
if (lock == NULL)
return(-1);
Examine((BPTR)lock, fib);
lock = (struct FileLock *)((long)lock << 2);
st->st_ino = lock->fl_Key;
st->st_ctime = st->st_mtime = fib->fib_Date.ds_Tick / 50 + fib->fib_Date.ds_Minute * 60 + fib->fib_Date.ds_Days * 86400;
lock = (struct FileLock *)((long)lock >> 2);
UnLock((BPTR)lock);
free(fib);
return(0);
}
flock(fd, locktype)
{
return(0);
}
char *
gettmpenv(id)
char *id;
{
static char *buf;
static char *res = NULL;
long fh;
long len;
buf = malloc(strlen(id) + 8);
sprintf(buf, "ENV:%s", id);
fh = Open(buf, 1005);
free(buf);
if (fh) {
Seek(fh, 0L, 1);
len = Seek(fh, 0L, -1);
if (len < 0) {
Close(fh);
return(NULL);
}
if (res)
free(res);
res = malloc(len + 1);
Read(fh, res, len);
Close(fh);
res[len] = 0;
return(res);
}
return(NULL);
}
char *
getenv(id)
const char *id;
{
char *res = gettmpenv(id);
char *perm = NULL;
if (res) {
perm = malloc(strlen(res) + 1);
strcpy(perm, res);
}
return(perm);
}
#endif