update
diff --git a/CHANGES b/CHANGES
index 48f8519..52050ff 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
+January 18, 2005
+ make src/libthread/pthread.c compile
+ add threadspawnl, fsseek.
+ add link to web interface in cvs(1).
+ remove hard-coded path in fixurls
+
January 17, 2005
thread.c tries to warn about bad pthreads on Linux
vacfs posts vacfs.basename
diff --git a/man/man3/9pclient.3 b/man/man3/9pclient.3
index cb2725a..4db3349 100644
--- a/man/man3/9pclient.3
+++ b/man/man3/9pclient.3
@@ -30,10 +30,10 @@
int fsversion(CFsys *fsys, int msize, char *version, int nversion)
.PP
.B
-CFid *fsauth(CFsys *fsys, char *uname, char *aname)
+CFid* fsauth(CFsys *fsys, char *uname, char *aname)
.PP
.B
-CFid *fsattach(CFsys *fsys, CFid *afid, char *uname, char *aname)
+CFid* fsattach(CFsys *fsys, CFid *afid, char *uname, char *aname)
.PP
.B
void fssetroot(CFsys *fsys, CFid *fid)
@@ -42,7 +42,7 @@
void fsclose(CFid *fid)
.PP
.B
-CFid *fscreate(CFsys *fs, char *path, int mode, ulong perm)
+CFid* fscreate(CFsys *fs, char *path, int mode, ulong perm)
.PP
.B
CFid* fsopen(CFsys *fs, char *path, int mode)
@@ -63,6 +63,9 @@
long fswrite(CFid *fid, void *buf, long n)
.PP
.B
+vlong fsseek(CFid *Fid, vlong n, int type)
+.PP
+.B
long fsdirread(CFid *fid, Dir **d)
.PP
.B
@@ -234,6 +237,13 @@
and
.I fswrite
read and write from this offset, and update it after successful calls.
+.I Fsseek
+sets the offset; the
+.I n
+and
+.I type
+arguments are used as in
+.IR seek (3).
Calling
.I fspread
or
@@ -337,6 +347,3 @@
and
.I create
on already-established fids.
-.PP
-There is no
-.IR fsseek .
diff --git a/man/man3/thread.3 b/man/man3/thread.3
index 39fa53a..4212c6f 100644
--- a/man/man3/thread.3
+++ b/man/man3/thread.3
@@ -41,6 +41,7 @@
threadsetname,
threadsetstate,
threadspawn,
+threadspawnl,
threadwaitchan,
yield \- thread and proc management
.SH SYNOPSIS
@@ -119,6 +120,7 @@
int nbsendul(Channel *c, ulong v)
int chanprint(Channel *c, char *fmt, ...)
.XX
+int threadspawnl(int fd[3], char *file, ...)
int threadspawn(int fd[3], char *file, char *args[])
int threadexecl(Channel *cpid, int fd[3], char *file, ...)
int threadexec(Channel *cpid, int fd[3], char *file, char *args[])
@@ -391,11 +393,15 @@
fd[2] = dup(2, -1);
.EE
.PP
-.I Threadspawn
-is like
+.I Threadspawnl
+and
+.I threadspawn
+are like
+.I threadexecl
+and
.I threadexec
-but does not replace the current thread.
-It returns the pid of the invoked program on success, or
+but do not replace the current thread.
+They return the pid of the invoked program on success, or
\-1 on error.
.PP
.I Threadwaitchan