more work
This commit is contained in:
parent
1479559afb
commit
c98cf1e6df
|
|
@ -20,6 +20,5 @@ stfl.o ???
|
|||
swap.o swap.c C
|
||||
symscan.o symscan.c C
|
||||
tmpfile.o tmpfile.c C
|
||||
tmpnam.o tmpnam.c C
|
||||
tolower.o tolower.c C
|
||||
toupper.o toupper.c C
|
||||
|
|
|
|||
|
|
@ -153,3 +153,4 @@ setbuf.o setbuf.c C
|
|||
strout.o strout.c C
|
||||
system.o system.c C
|
||||
ungetc.o ungetc.c C
|
||||
tmpnam.o tmpnam.c C
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
ctime.o /z/src/libc/orig_obj/ctime.o differ: char 6, line 1
|
||||
execvp.o /z/src/libc/orig_obj/execvp.o differ: char 6, line 1
|
||||
malloc.o /z/src/libc/orig_obj/malloc.o differ: char 5, line 1
|
||||
nlist.o /z/src/libc/orig_obj/nlist.o differ: char 5, line 1
|
||||
|
|
|
|||
|
|
@ -153,9 +153,11 @@ gmtime(tim)
|
|||
long *tim;
|
||||
{
|
||||
register int d0, d1;
|
||||
int foo1;
|
||||
long hms, day;
|
||||
register int *tp;
|
||||
static struct tm xtime;
|
||||
int foo2;
|
||||
|
||||
/*
|
||||
* break initial number into days
|
||||
|
|
@ -216,6 +218,7 @@ struct tm *t;
|
|||
{
|
||||
register char *cp, *ncp;
|
||||
register int *tp;
|
||||
int foo;
|
||||
|
||||
cp = cbuf;
|
||||
for(ncp = "Day Mon 00 00:00:00 1900\n"; *cp++ = *ncp++;);
|
||||
|
|
@ -267,6 +270,7 @@ tzset()
|
|||
{
|
||||
register char *p, *q;
|
||||
register int n;
|
||||
int foo;
|
||||
int sign;
|
||||
char *getenv();
|
||||
|
||||
|
|
@ -275,7 +279,7 @@ tzset()
|
|||
q = tzname[0];
|
||||
do *q++ = *p? *p++: ' ';
|
||||
while(--n);
|
||||
if(sign = *p == '-')
|
||||
if(sign = (char)(p[0] == '-'))
|
||||
p++;
|
||||
n = 0;
|
||||
while(*p >= '0' && *p <= '9')
|
||||
|
|
@ -283,7 +287,7 @@ tzset()
|
|||
if(sign)
|
||||
n = -n;
|
||||
timezone = ((long) (n * 60)) * 60;
|
||||
if(daylight = *p != '\0') {
|
||||
if(daylight = (char)(*p != '\0')) {
|
||||
q = tzname[1];
|
||||
n = 3;
|
||||
do *q++ = *p? *p++: ' ';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
doscan.o /z/src/libc/orig_obj/doscan.o differ: char 5, line 1
|
||||
endopen.o /z/src/libc/orig_obj/endopen.o differ: char 6, line 1
|
||||
flsbuf.o /z/src/libc/orig_obj/flsbuf.o differ: char 6, line 1
|
||||
getgrent.o /z/src/libc/orig_obj/getgrent.o differ: char 132, line 1
|
||||
getpass.o /z/src/libc/orig_obj/getpass.o differ: char 6, line 1
|
||||
|
|
|
|||
|
|
@ -4,67 +4,81 @@
|
|||
#include <errno.h>
|
||||
|
||||
FILE *
|
||||
_endopen(file, mode, iop)
|
||||
char *file, *mode;
|
||||
register FILE *iop;
|
||||
_endopen (file, mode, iop)
|
||||
char *file, *mode;
|
||||
register FILE *iop;
|
||||
{
|
||||
extern int errno;
|
||||
register int rw, f;
|
||||
register int rw;
|
||||
register int f;
|
||||
|
||||
if (iop == NULL)
|
||||
return(NULL);
|
||||
return NULL;
|
||||
|
||||
rw = mode[1] == '+';
|
||||
if ((mode[0] == 'r' && mode[1] == 'w') ||
|
||||
(mode[0] == 'w' && mode[1] == 'r')) {
|
||||
mode[0]='r';
|
||||
mode[1]='+';
|
||||
}
|
||||
|
||||
rw = (char)(mode[1] == '+');
|
||||
|
||||
switch (*mode) {
|
||||
|
||||
case 'w':
|
||||
f = create(file, rw);
|
||||
f = create (file, rw);
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
if ((f = open(file, rw? 2: 1)) < 0) {
|
||||
if ((f = open (file, rw? 2: 1)) < 0) {
|
||||
if (errno == ENOENT)
|
||||
f = create(file, rw);
|
||||
f = create (file, rw);
|
||||
}
|
||||
lseek(f, 0L, 2);
|
||||
lseek (f, 0L, 2);
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
f = open(file, rw? 2: 0);
|
||||
f = open (file, rw? 2: 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
return(NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (f < 0)
|
||||
return(NULL);
|
||||
return NULL;
|
||||
|
||||
iop->_cnt = 0;
|
||||
iop->_file = f;
|
||||
|
||||
if (rw)
|
||||
iop->_flag |= _IORW;
|
||||
else if(*mode == 'r')
|
||||
else if (*mode == 'r')
|
||||
iop->_flag |= _IOREAD;
|
||||
else
|
||||
iop->_flag |= _IOWRT;
|
||||
|
||||
return(iop);
|
||||
return iop;
|
||||
}
|
||||
|
||||
static int
|
||||
create(file, rw)
|
||||
register char *file;
|
||||
int rw;
|
||||
create (file, rw)
|
||||
register char *file;
|
||||
int rw;
|
||||
{
|
||||
register int f;
|
||||
register int m, f;
|
||||
|
||||
f = creat(file, 0666);
|
||||
if (rw && f>=0) {
|
||||
close(f);
|
||||
f = open(file, 2);
|
||||
}
|
||||
return(f);
|
||||
if (rw) {
|
||||
m = umask (0);
|
||||
f = creat (file, 0666);
|
||||
if (f >= 0) {
|
||||
close (f);
|
||||
f = open (file, 2);
|
||||
chmod (file, 0666 & ~m);
|
||||
}
|
||||
umask (m);
|
||||
} else
|
||||
f = creat (file, 0666);
|
||||
|
||||
return f;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
/* @[$] tmpnam.c 2.1 09/12/83 11:18:21 - 87wega3.2 */
|
||||
|
||||
/*LINTLIBRARY*/
|
||||
#include <stdio.h>
|
||||
|
||||
char *tmpnam(s)
|
||||
char *s;
|
||||
{
|
||||
static char str[L_tmpnam];
|
||||
static char seed[] = { 'a', 'a', 'a', '\0' };
|
||||
register char *p, *q;
|
||||
|
||||
p = s==NULL? str: s;
|
||||
strcpy(p, "/usr/tmp/");
|
||||
strcat(p, seed);
|
||||
strcat(p, "XXXXXX");
|
||||
|
||||
q = seed;
|
||||
while(*q == 'z')
|
||||
*q++ = 'a';
|
||||
++*q;
|
||||
|
||||
mktemp(p);
|
||||
return(p);
|
||||
}
|
||||
Loading…
Reference in New Issue