diff options
Diffstat (limited to 'src/lib9')
-rw-r--r-- | src/lib9/_p9translate.c | 4 | ||||
-rw-r--r-- | src/lib9/access.c | 19 | ||||
-rw-r--r-- | src/lib9/announce.c | 5 | ||||
-rw-r--r-- | src/lib9/create.c | 10 | ||||
-rw-r--r-- | src/lib9/ctime.c | 7 | ||||
-rw-r--r-- | src/lib9/date.c | 12 | ||||
-rw-r--r-- | src/lib9/dirread.c | 4 | ||||
-rw-r--r-- | src/lib9/errstr.c | 3 | ||||
-rw-r--r-- | src/lib9/ffork-OpenBSD.c | 1 | ||||
-rw-r--r-- | src/lib9/getuser.c | 3 | ||||
-rw-r--r-- | src/lib9/lock.c | 3 | ||||
-rw-r--r-- | src/lib9/mallocz.c | 3 | ||||
-rw-r--r-- | src/lib9/mkfile | 4 | ||||
-rw-r--r-- | src/lib9/notify.c | 3 | ||||
-rw-r--r-- | src/lib9/open.c | 9 | ||||
-rw-r--r-- | src/lib9/rendez-Linux.c | 2 | ||||
-rw-r--r-- | src/lib9/rendez-OpenBSD.c | 1 | ||||
-rw-r--r-- | src/lib9/rendez-pthread.c | 3 | ||||
-rw-r--r-- | src/lib9/time.c | 4 |
19 files changed, 44 insertions, 56 deletions
diff --git a/src/lib9/_p9translate.c b/src/lib9/_p9translate.c index 4eb6eac9..84cd65ca 100644 --- a/src/lib9/_p9translate.c +++ b/src/lib9/_p9translate.c @@ -14,7 +14,7 @@ static struct { }; char* -_p9translate(char *old) +plan9translate(char *old) { char *new; int i, olen, nlen, len; @@ -36,7 +36,7 @@ _p9translate(char *old) len = strlen(old)+nlen-olen; new = malloc(len+1); if(new == nil) - return nil; + return "<out of memory>"; strcpy(new, replace[i].new); strcpy(new+nlen, old+olen); assert(strlen(new) == len); diff --git a/src/lib9/access.c b/src/lib9/access.c deleted file mode 100644 index 20b00c32..00000000 --- a/src/lib9/access.c +++ /dev/null @@ -1,19 +0,0 @@ -#include <u.h> -#define NOPLAN9DEFINES -#include <libc.h> - -char *_p9translate(char*); - -int -p9access(char *xname, int what) -{ - int ret; - char *name; - - if((name = _p9translate(xname)) == nil) - return -1; - ret = access(name, what); - if(name != xname) - free(name); - return ret; -} diff --git a/src/lib9/announce.c b/src/lib9/announce.c index 9f07bd22..8fdf1d40 100644 --- a/src/lib9/announce.c +++ b/src/lib9/announce.c @@ -40,7 +40,8 @@ p9announce(char *addr, char *dir) char *net; u32int host; int port, s; - int n, sn; + int n; + socklen_t sn; struct sockaddr_in sa; struct sockaddr_un sun; @@ -72,7 +73,7 @@ p9announce(char *addr, char *dir) if((s = socket(AF_INET, proto, 0)) < 0) return -1; sn = sizeof n; - if(port && getsockopt(s, SOL_SOCKET, SO_TYPE, (char*)&n, &sn) >= 0 + if(port && getsockopt(s, SOL_SOCKET, SO_TYPE, (void*)&n, &sn) >= 0 && n == SOCK_STREAM){ n = 1; setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char*)&n, sizeof n); diff --git a/src/lib9/create.c b/src/lib9/create.c index bdad5f6a..97f6e7e2 100644 --- a/src/lib9/create.c +++ b/src/lib9/create.c @@ -3,16 +3,10 @@ #include <libc.h> #include <sys/stat.h> -extern char *_p9translate(char*); - int -p9create(char *xpath, int mode, ulong perm) +p9create(char *path, int mode, ulong perm) { int fd, cexec, umode, rclose; - char *path; - - if((path = _p9translate(xpath)) == nil) - return -1; cexec = mode&OCEXEC; rclose = mode&ORCLOSE; @@ -48,7 +42,5 @@ out: if(rclose) remove(path); } - if(path != xpath) - free(path); return fd; } diff --git a/src/lib9/ctime.c b/src/lib9/ctime.c index e9d971bf..0782d099 100644 --- a/src/lib9/ctime.c +++ b/src/lib9/ctime.c @@ -15,6 +15,7 @@ ct_numb(char *cp, int n) char* asctime(Tm *t) { + int i; char *ncp; static char cbuf[30]; @@ -32,6 +33,12 @@ asctime(Tm *t) ct_numb(cbuf+14, t->min+100); ct_numb(cbuf+17, t->sec+100); ncp = t->zone; + for(i=0; i<3; i++) + if(ncp[i] == 0) + break; + for(; i<3; i++) + ncp[i] = '?'; + ncp = t->zone; cbuf[20] = *ncp++; cbuf[21] = *ncp++; cbuf[22] = *ncp; diff --git a/src/lib9/date.c b/src/lib9/date.c index 8ece0c68..8f852de2 100644 --- a/src/lib9/date.c +++ b/src/lib9/date.c @@ -1,6 +1,5 @@ -#include <stdlib.h> /* setenv etc. */ - #include <u.h> +#include <stdlib.h> /* setenv etc. */ #define NOPLAN9DEFINES #include <libc.h> #include <time.h> @@ -25,6 +24,8 @@ static Tm bigtm; static void tm2Tm(struct tm *tm, Tm *bigtm) { + char *s; + memset(bigtm, 0, sizeof *bigtm); bigtm->sec = tm->tm_sec; bigtm->min = tm->tm_min; @@ -39,6 +40,13 @@ tm2Tm(struct tm *tm, Tm *bigtm) #ifdef _HAVETZOFF bigtm->tzoff = tm->tm_gmtoff; #endif + if(bigtm->zone[0] == 0){ + s = getenv("TIMEZONE"); + if(s){ + strecpy(bigtm->zone, bigtm->zone+4, tm->tm_zone); + free(s); + } + } } static void diff --git a/src/lib9/dirread.c b/src/lib9/dirread.c index aef0102f..0a72d62e 100644 --- a/src/lib9/dirread.c +++ b/src/lib9/dirread.c @@ -18,7 +18,7 @@ mygetdents(int fd, struct dirent *buf, int n) nn = getdirentries(fd, (void*)buf, n, &off); return nn; } -#elif defined(__APPLE__) || defined(__FreeBSD__) +#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) static int mygetdents(int fd, struct dirent *buf, int n) { @@ -171,7 +171,7 @@ dirreadall(int fd, Dir **d) ts += n; } if(ts >= 0) - ts = dirpackage(fd, buf, ts, d); + ts = dirpackage(fd, (char*)buf, ts, d); free(buf); if(ts == 0 && n < 0) return -1; diff --git a/src/lib9/errstr.c b/src/lib9/errstr.c index 0c6ab315..578f4895 100644 --- a/src/lib9/errstr.c +++ b/src/lib9/errstr.c @@ -5,9 +5,10 @@ * okay. */ +#include <u.h> #include <errno.h> #include <string.h> -#include <lib9.h> +#include <libc.h> enum { diff --git a/src/lib9/ffork-OpenBSD.c b/src/lib9/ffork-OpenBSD.c new file mode 100644 index 00000000..5e677f72 --- /dev/null +++ b/src/lib9/ffork-OpenBSD.c @@ -0,0 +1 @@ +#include "ffork-pthread.c" diff --git a/src/lib9/getuser.c b/src/lib9/getuser.c index b53a3892..09c07041 100644 --- a/src/lib9/getuser.c +++ b/src/lib9/getuser.c @@ -1,6 +1,5 @@ -#include <pwd.h> - #include <u.h> +#include <pwd.h> #include <libc.h> char* diff --git a/src/lib9/lock.c b/src/lib9/lock.c index 5d6f2f3e..e97b967f 100644 --- a/src/lib9/lock.c +++ b/src/lib9/lock.c @@ -1,6 +1,7 @@ +#include <u.h> #include <unistd.h> #include <sched.h> -#include <lib9.h> +#include <libc.h> int _ntas; static int diff --git a/src/lib9/mallocz.c b/src/lib9/mallocz.c index c6313008..a3e91510 100644 --- a/src/lib9/mallocz.c +++ b/src/lib9/mallocz.c @@ -1,6 +1,7 @@ +#include <u.h> #include <unistd.h> #include <string.h> -#include <lib9.h> +#include <libc.h> void* mallocz(unsigned long n, int clr) diff --git a/src/lib9/mkfile b/src/lib9/mkfile index d388d224..4dda2e19 100644 --- a/src/lib9/mkfile +++ b/src/lib9/mkfile @@ -69,8 +69,6 @@ LIB9OFILES=\ _p9dialparse.$O\ _p9dir.$O\ _p9proc.$O\ - _p9translate.$O\ - access.$O\ announce.$O\ argv0.$O\ atexit.$O\ @@ -100,6 +98,7 @@ LIB9OFILES=\ exec.$O\ fcallfmt.$O\ ffork-$SYSNAME.$O\ + get9root.$O\ getcallerpc-$OBJTYPE.$O\ getenv.$O\ getfields.$O\ @@ -142,6 +141,7 @@ LIB9OFILES=\ u16.$O\ u32.$O\ u64.$O\ + unsharp.$O\ wait.$O\ waitpid.$O\ diff --git a/src/lib9/notify.c b/src/lib9/notify.c index 2e589de7..4d2a79ef 100644 --- a/src/lib9/notify.c +++ b/src/lib9/notify.c @@ -1,6 +1,5 @@ -#include <signal.h> - #include <u.h> +#include <signal.h> #define NOPLAN9DEFINES #include <libc.h> #include "9proc.h" diff --git a/src/lib9/open.c b/src/lib9/open.c index bb597e8f..0356a7da 100644 --- a/src/lib9/open.c +++ b/src/lib9/open.c @@ -2,12 +2,9 @@ #define NOPLAN9DEFINES #include <libc.h> -extern char* _p9translate(char*); - int -p9open(char *xname, int mode) +p9open(char *name, int mode) { - char *name; int cexec, rclose; int fd, umode; @@ -23,8 +20,6 @@ p9open(char *xname, int mode) werrstr("mode not supported"); return -1; } - if((name = _p9translate(xname)) == nil) - return -1; fd = open(name, umode); if(fd >= 0){ if(cexec) @@ -32,7 +27,5 @@ p9open(char *xname, int mode) if(rclose) remove(name); } - if(name != xname) - free(name); return fd; } diff --git a/src/lib9/rendez-Linux.c b/src/lib9/rendez-Linux.c index 05c52ae7..673818e0 100644 --- a/src/lib9/rendez-Linux.c +++ b/src/lib9/rendez-Linux.c @@ -1 +1,3 @@ +/* Could use futex(2) here instead of signals? */ + #include "rendez-signal.c" diff --git a/src/lib9/rendez-OpenBSD.c b/src/lib9/rendez-OpenBSD.c new file mode 100644 index 00000000..05c52ae7 --- /dev/null +++ b/src/lib9/rendez-OpenBSD.c @@ -0,0 +1 @@ +#include "rendez-signal.c" diff --git a/src/lib9/rendez-pthread.c b/src/lib9/rendez-pthread.c index b4b95f21..fe930cef 100644 --- a/src/lib9/rendez-pthread.c +++ b/src/lib9/rendez-pthread.c @@ -32,9 +32,10 @@ * shared memory and mutexes. */ +#include <u.h> #include <pthread.h> #include <signal.h> -#include <lib9.h> +#include <libc.h> enum { diff --git a/src/lib9/time.c b/src/lib9/time.c index 169a82f5..36706367 100644 --- a/src/lib9/time.c +++ b/src/lib9/time.c @@ -1,7 +1,7 @@ +#include <u.h> #include <sys/time.h> +#include <time.h> #include <sys/resource.h> - -#include <u.h> #define NOPLAN9DEFINES #include <libc.h> |