aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/bin.h11
-rw-r--r--include/bio.h10
-rw-r--r--include/cursor.h11
-rw-r--r--include/draw.h11
-rw-r--r--include/event.h11
-rw-r--r--include/fcall.h9
-rw-r--r--include/flate.h9
-rw-r--r--include/fmt.h14
-rw-r--r--include/frame.h10
-rw-r--r--include/httpd.h10
-rw-r--r--include/ip.h9
-rw-r--r--include/keyboard.h10
-rw-r--r--include/lib9.h8
-rw-r--r--include/libsec.h10
-rw-r--r--include/memdraw.h10
-rw-r--r--include/memlayer.h12
-rw-r--r--include/mouse.h11
-rw-r--r--include/plumb.h10
-rw-r--r--include/regexp9.h10
-rw-r--r--include/thread.h10
-rw-r--r--include/utf.h10
-rw-r--r--include/venti.h9
-rw-r--r--src/cmd/idiff.c5
-rw-r--r--src/cmd/mkfile2
-rw-r--r--src/cmd/sam/sam.c6
-rw-r--r--src/cmd/sam/sam.h1
-rw-r--r--src/cmd/sam/unix.c4
-rw-r--r--src/cmd/unutf.c4
-rw-r--r--src/lib9/dirfwstat.c23
-rw-r--r--src/lib9/dirread.c17
-rw-r--r--src/libdraw/BOT0
-rw-r--r--src/libdraw/x11-init.c9
-rw-r--r--src/libdraw/x11-itrans.c11
-rw-r--r--src/libhttpd/parsereq.c1
-rw-r--r--src/libthread/sched.c2
-rw-r--r--src/mkcommon20
-rw-r--r--src/mkhdr23
-rw-r--r--src/mkmany57
-rw-r--r--src/mkmk.sh10
-rw-r--r--src/mkone35
-rw-r--r--src/mksyslib2
41 files changed, 297 insertions, 160 deletions
diff --git a/include/bin.h b/include/bin.h
index 6b9f2bd4..dc738f14 100644
--- a/include/bin.h
+++ b/include/bin.h
@@ -1,3 +1,9 @@
+#ifndef _BIN_H_
+#define _BIN_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
/*
#pragma lib "libbin.a"
#pragma src "/sys/src/libbin"
@@ -11,3 +17,8 @@ typedef struct Bin Bin;
void *binalloc(Bin **, ulong size, int zero);
void *bingrow(Bin **, void *op, ulong osize, ulong size, int zero);
void binfree(Bin **);
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/bio.h b/include/bio.h
index 600f0948..473389a7 100644
--- a/include/bio.h
+++ b/include/bio.h
@@ -1,5 +1,8 @@
-#ifndef _BIOH_
-#define _BIOH_ 1
+#ifndef _BIO_H_
+#define _BIO_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
#include <sys/types.h> /* for off_t */
#include <fcntl.h> /* for O_RDONLY, O_WRONLY */
@@ -78,4 +81,7 @@ char* Brdstr(Biobuf*, int, int);
long Bgetrune(Biobuf*);
int Bputrune(Biobuf*, long);
+#if defined(__cplusplus)
+}
+#endif
#endif
diff --git a/include/cursor.h b/include/cursor.h
index 105cd0ef..d53baf81 100644
--- a/include/cursor.h
+++ b/include/cursor.h
@@ -1,3 +1,9 @@
+#ifndef _CURSOR_H_
+#define _CURSOR_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
typedef struct Cursor Cursor;
struct Cursor
{
@@ -5,3 +11,8 @@ struct Cursor
uchar clr[2*16];
uchar set[2*16];
};
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/draw.h b/include/draw.h
index 029f0aed..54a566ac 100644
--- a/include/draw.h
+++ b/include/draw.h
@@ -1,3 +1,9 @@
+#ifndef _DRAW_H_
+#define _DRAW_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
typedef struct Cachefont Cachefont;
typedef struct Cacheinfo Cacheinfo;
typedef struct Cachesubf Cachesubf;
@@ -531,3 +537,8 @@ void drawtopwindow(void);
int _drawmsgread(Display*, void*, int);
int _drawmsgwrite(Display*, void*, int);
int _latin1(Rune*, int);
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/event.h b/include/event.h
index e74183d4..56c1b1c3 100644
--- a/include/event.h
+++ b/include/event.h
@@ -1,3 +1,9 @@
+#ifndef _EVENT_H_
+#define _EVENT_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
typedef struct Event Event;
typedef struct Menu Menu;
@@ -61,3 +67,8 @@ extern Rectangle egetrect(int, Mouse*);
extern void edrawgetrect(Rectangle, int);
extern int ereadmouse(Mouse*);
extern int eatomouse(Mouse*, char*, int);
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/fcall.h b/include/fcall.h
index 93f46d4c..20ffe386 100644
--- a/include/fcall.h
+++ b/include/fcall.h
@@ -1,3 +1,8 @@
+#ifndef _FCALL_H_
+#define _FCALL_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/*
#pragma src "/sys/src/libc/9sys"
#pragma lib "libc.a"
@@ -118,3 +123,7 @@ int read9pmsg(int, void*, uint);
#pragma varargck type "M" ulong
#pragma varargck type "D" Dir*
*/
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/flate.h b/include/flate.h
index 79c888c2..bbd0b3d7 100644
--- a/include/flate.h
+++ b/include/flate.h
@@ -1,3 +1,8 @@
+#ifndef _FLATE_H_
+#define _FLATE_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/*
#pragma lib "libflate.a"
#pragma src "/sys/src/libflate"
@@ -39,3 +44,7 @@ ulong *mkcrctab(ulong);
ulong blockcrc(ulong *tab, ulong crc, void *buf, int n);
ulong adler32(ulong adler, void *buf, int n);
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/fmt.h b/include/fmt.h
index c913e14a..befea2e3 100644
--- a/include/fmt.h
+++ b/include/fmt.h
@@ -1,3 +1,8 @@
+#ifndef _FMT_H_
+#define _FMT_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/*
* The authors of this software are Rob Pike and Ken Thompson.
@@ -13,14 +18,8 @@
* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
*/
-#ifndef _FMTH_
-#define _FMTH_ 1
-
#include <stdarg.h>
-
-#ifndef _UTFH_
#include <utf.h>
-#endif
typedef struct Fmt Fmt;
struct Fmt{
@@ -97,4 +96,7 @@ extern int fmtstrcpy(Fmt*, char*);
extern double fmtstrtod(const char *, char **);
extern double fmtcharstod(int(*)(void*), void*);
+#if defined(__cplusplus)
+}
+#endif
#endif
diff --git a/include/frame.h b/include/frame.h
index 9b8194b7..47d808ca 100644
--- a/include/frame.h
+++ b/include/frame.h
@@ -1,3 +1,9 @@
+#ifndef _FRAME_H_
+#define _FRAME_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
typedef struct Frbox Frbox;
typedef struct Frame Frame;
@@ -83,3 +89,7 @@ void frinittick(Frame*);
#define NRUNE(b) ((b)->nrune<0? 1 : (b)->nrune)
#define NBYTE(b) strlen((char*)(b)->ptr)
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/httpd.h b/include/httpd.h
index d75c5801..03b48adc 100644
--- a/include/httpd.h
+++ b/include/httpd.h
@@ -1,3 +1,8 @@
+#ifndef _HTTPD_H_
+#define _HTTPD_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/*
#pragma lib "libhttpd.a"
#pragma src "/sys/src/libhttpd"
@@ -278,3 +283,8 @@ int hxferenc(Hio*, int);
#pragma varargck type "U" char*
#pragma varargck type "H" char*
*/
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/ip.h b/include/ip.h
index af82c993..6fbf3946 100644
--- a/include/ip.h
+++ b/include/ip.h
@@ -1,3 +1,8 @@
+#ifndef _IP_H_
+#define _IP_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/*
#pragma src "/sys/src/libip"
#pragma lib "libip.a"
@@ -121,3 +126,7 @@ extern uchar IPallbits[IPaddrlen];
#define CLASS(p) ((*(uchar*)(p))>>6)
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/keyboard.h b/include/keyboard.h
index a6d99bf6..588600a7 100644
--- a/include/keyboard.h
+++ b/include/keyboard.h
@@ -1,3 +1,8 @@
+#ifndef _KEYBOARD_H_
+#define _KEYBOARD_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
typedef struct Keyboardctl Keyboardctl;
struct Keyboardctl
@@ -34,3 +39,8 @@ enum {
Kshift= KF|0x16,
Kctl= KF|0x17,
};
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/lib9.h b/include/lib9.h
index 8f15ce6e..21490e65 100644
--- a/include/lib9.h
+++ b/include/lib9.h
@@ -3,9 +3,8 @@
* fit into libutf or into libfmt, but is still missing from traditional
* Unix C libraries.
*/
-#ifndef _LIB9H_
-#define _LIB9H_ 1
-
+#ifndef _LIB9_H_
+#define _LIB9_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
@@ -861,5 +860,4 @@ extern void __fixargv0(void);
#if defined(__cplusplus)
}
#endif
-
-#endif /* _LIB9H_ */
+#endif /* _LIB9_H_ */
diff --git a/include/libsec.h b/include/libsec.h
index 17b2b651..e65b7f97 100644
--- a/include/libsec.h
+++ b/include/libsec.h
@@ -1,3 +1,8 @@
+#ifndef _LIBSEC_H_
+#define _LIBSEC_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/*
#pragma lib "libsec.a"
#pragma src "/sys/src/libsec"
@@ -338,3 +343,8 @@ extern int okThumbprint(uchar *sha1, Thumbprint *ok);
// readcert.c
extern uchar *readcert(char *filename, int *pcertlen);
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/memdraw.h b/include/memdraw.h
index 2d4f54f5..93f34a0a 100644
--- a/include/memdraw.h
+++ b/include/memdraw.h
@@ -1,3 +1,8 @@
+#ifndef _MEMDRAW_H_
+#define _MEMDRAW_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
typedef struct Memimage Memimage;
typedef struct Memdata Memdata;
typedef struct Memsubfont Memsubfont;
@@ -208,3 +213,8 @@ extern Memdrawparam* _memimagedrawsetup(Memimage*,
Point, int);
extern void _memimagedraw(Memdrawparam*);
extern void _drawreplacescreenimage(Memimage*);
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/memlayer.h b/include/memlayer.h
index 36d87767..f0b01d05 100644
--- a/include/memlayer.h
+++ b/include/memlayer.h
@@ -1,3 +1,9 @@
+#ifndef _MEMLAYER_H_
+#define _MEMLAYER_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
typedef struct Memscreen Memscreen;
typedef void (*Refreshfn)(Memimage*, Rectangle, void*);
@@ -46,3 +52,9 @@ void memlexpose(Memimage*, Rectangle);
void _memlsetclear(Memscreen*);
int memlorigin(Memimage*, Point, Point);
void memlnorefresh(Memimage*, Rectangle, void*);
+
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/mouse.h b/include/mouse.h
index f0a0f697..2c190b23 100644
--- a/include/mouse.h
+++ b/include/mouse.h
@@ -1,3 +1,8 @@
+#ifndef _MOUSE_H_
+#define _MOUSE_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
typedef struct Menu Menu;
typedef struct Mousectl Mousectl;
@@ -42,3 +47,9 @@ extern void setcursor(Mousectl*, struct Cursor*);
extern void drawgetrect(Rectangle, int);
extern Rectangle getrect(int, Mousectl*);
extern int menuhit(int, Mousectl*, Menu*, Screen*);
+
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/plumb.h b/include/plumb.h
index e0b1132f..4a315467 100644
--- a/include/plumb.h
+++ b/include/plumb.h
@@ -1,3 +1,8 @@
+#ifndef _LIBPLUMB_H_
+#define _LIBPLUMB_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/*
#pragma lib "libplumb.a"
#pragma src "/sys/src/libplumb"
@@ -48,3 +53,8 @@ void plumbfree(Plumbmsg*);
char* plumblookup(Plumbattr*, char*);
int plumbopen(char*, int);
int eplumb(int, char*);
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/include/regexp9.h b/include/regexp9.h
index 745a6d77..382d246f 100644
--- a/include/regexp9.h
+++ b/include/regexp9.h
@@ -1,6 +1,9 @@
-#ifndef _REGEXP9H_
+#ifndef _REGEXP9_H_
+#define _REGEXP9_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
-#define _REGEXP9H_ 1
#include <utf.h>
typedef struct Resub Resub;
@@ -83,4 +86,7 @@ extern void rregsub9(Rune*, Rune*, Resub*, int);
#define rregsub rregsub9
#endif
+#if defined(__cplusplus)
+}
+#endif
#endif
diff --git a/include/thread.h b/include/thread.h
index 10aac284..9c5d2d09 100644
--- a/include/thread.h
+++ b/include/thread.h
@@ -1,5 +1,8 @@
-#ifndef _THREADH_
-#define _THREADH_ 1
+#ifndef _THREAD_H_
+#define _THREAD_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/* avoid conflicts with socket library */
#undef send
@@ -129,4 +132,7 @@ int iosleep(Ioproc*, long);
long iocall(Ioproc*, long (*)(va_list*), ...);
void ioret(Ioproc*, int);
+#if defined(__cplusplus)
+}
+#endif
#endif /* _THREADH_ */
diff --git a/include/utf.h b/include/utf.h
index 623bfda9..11b016d7 100644
--- a/include/utf.h
+++ b/include/utf.h
@@ -1,5 +1,8 @@
-#ifndef _UTFH_
-#define _UTFH_ 1
+#ifndef _UTF_H_
+#define _UTF_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
typedef unsigned short Rune; /* 16 bits */
@@ -48,4 +51,7 @@ extern int isspacerune(Rune);
extern int istitlerune(Rune);
extern int isupperrune(Rune);
+#if defined(__cplusplus)
+}
+#endif
#endif
diff --git a/include/venti.h b/include/venti.h
index 5f8ef0a8..a828101a 100644
--- a/include/venti.h
+++ b/include/venti.h
@@ -1,3 +1,8 @@
+#ifndef _VENTI_H_
+#define _VENTI_H_ 1
+#if defined(__cplusplus)
+extern "C" {
+#endif
/* XXX should be own library? */
/*
* Packets
@@ -413,3 +418,7 @@ int vtfilelock(VtFile*, int);
int vtfilelock2(VtFile*, VtFile*, int);
int vtfileflushbefore(VtFile*, u64int);
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/src/cmd/idiff.c b/src/cmd/idiff.c
index c3f207fe..1dc49cff 100644
--- a/src/cmd/idiff.c
+++ b/src/cmd/idiff.c
@@ -82,11 +82,14 @@ int
opentemp(char *template, int mode, long perm)
{
int fd;
+ Dir d;
fd = mkstemp(template);
if(fd < 0)
sysfatal("could not create temporary file");
- fchmod(fd, perm);
+ nulldir(&d);
+ d.mode = perm;
+ dirfwstat(fd, &d);
return fd;
}
diff --git a/src/cmd/mkfile b/src/cmd/mkfile
index b34a61b3..0f0ab112 100644
--- a/src/cmd/mkfile
+++ b/src/cmd/mkfile
@@ -6,7 +6,7 @@ LDFLAGS=$LDFLAGS -lsec -lregexp9 -l9 -lbio -lfmt -lutf
<$PLAN9/src/mkmany
-BUGGERED='CVS|oplumb|plumb|plumb2|mk|vac|9term'
+BUGGERED='CVS|oplumb|plumb|plumb2|mk|vac|9term|venti'
DIRS=`ls -l |sed -n 's/^d.* //p' |egrep -v "$BUGGERED"`
<$PLAN9/src/mkdirs
diff --git a/src/cmd/sam/sam.c b/src/cmd/sam/sam.c
index 4f774a9e..078d9439 100644
--- a/src/cmd/sam/sam.c
+++ b/src/cmd/sam/sam.c
@@ -141,6 +141,7 @@ rescue(void)
File *f;
char *c;
char buf[256];
+ char *root;
if(rescuing++)
return;
@@ -162,7 +163,10 @@ rescue(void)
free(c);
}else
sprint(buf, "nameless.%d", nblank++);
- fprint(io, "#!%s '%s' $* <<'---%s'\n", SAMSAVECMD, buf, buf);
+ root = getenv("PLAN9");
+ if(root == nil)
+ root = "/usr/local/plan9";
+ fprint(io, "#!/bin/sh\n%s/bin/samsave '%s' $* <<'---%s'\n", root, buf, buf);
addr.r.p1 = 0, addr.r.p2 = f->b.nc;
writeio(f);
fprint(io, "\n---%s\n", (char *)buf);
diff --git a/src/cmd/sam/sam.h b/src/cmd/sam/sam.h
index 7e824da1..1e92c73e 100644
--- a/src/cmd/sam/sam.h
+++ b/src/cmd/sam/sam.h
@@ -345,7 +345,6 @@ extern char SH[];
extern char SHPATH[];
extern char RX[];
extern char RXPATH[];
-extern char SAMSAVECMD[];
/*
* acme globals
diff --git a/src/cmd/sam/unix.c b/src/cmd/sam/unix.c
index 024d3081..45cfc3bc 100644
--- a/src/cmd/sam/unix.c
+++ b/src/cmd/sam/unix.c
@@ -38,9 +38,6 @@ Rune *right[]= { r1, r2, r3, 0};
#ifndef RXPATHNAME
#define RXPATHNAME "ssh"
#endif
-#ifndef SAMSAVECMDNAME
-#define SAMSAVECMDNAME "/bin/sh\n/usr/local/plan9/bin/samsave"
-#endif
char RSAM[] = "sam";
char SAMTERM[] = SAMTERMNAME;
@@ -50,7 +47,6 @@ char SH[] = SHNAME;
char SHPATH[] = SHPATHNAME;
char RX[] = RXNAME;
char RXPATH[] = RXPATHNAME;
-char SAMSAVECMD[] = SAMSAVECMDNAME;
void
diff --git a/src/cmd/unutf.c b/src/cmd/unutf.c
index c1617315..0be7aa8e 100644
--- a/src/cmd/unutf.c
+++ b/src/cmd/unutf.c
@@ -1,3 +1,7 @@
+/*
+ * stupid little program to pipe unicode chars through
+ * when converting to non-utf compilers.
+ */
#include <u.h>
#include <libc.h>
#include <bio.h>
diff --git a/src/lib9/dirfwstat.c b/src/lib9/dirfwstat.c
index 9f0d485c..c7cf64d6 100644
--- a/src/lib9/dirfwstat.c
+++ b/src/lib9/dirfwstat.c
@@ -22,16 +22,21 @@ futimes(int fd, struct timeval *tv)
int
dirfwstat(int fd, Dir *dir)
{
+ int ret;
struct timeval tv[2];
- /* BUG handle more */
- if(dir->mtime == ~0ULL)
- return 0;
-
- tv[0].tv_sec = dir->mtime;
- tv[0].tv_usec = 0;
- tv[1].tv_sec = dir->mtime;
- tv[1].tv_usec = 0;
- return futimes(fd, tv);
+ if(~dir->mode != 0){
+ if(fchmod(fd, dir->mode) < 0)
+ ret = -1;
+ }
+ if(~dir->mtime != 0){
+ tv[0].tv_sec = dir->mtime;
+ tv[0].tv_usec = 0;
+ tv[1].tv_sec = dir->mtime;
+ tv[1].tv_usec = 0;
+ if(futimes(fd, tv) < 0)
+ ret = -1;
+ }
+ return ret;
}
diff --git a/src/lib9/dirread.c b/src/lib9/dirread.c
index 2e1ce886..ab9ec7f5 100644
--- a/src/lib9/dirread.c
+++ b/src/lib9/dirread.c
@@ -1,31 +1,22 @@
#include <u.h>
+#define NOPLAN9DEFINES
#include <libc.h>
-
-#undef asctime
-#undef ctime
-#undef gmtime
-#undef localtime
-
#include <sys/stat.h>
#include <dirent.h>
extern int _p9dir(struct stat*, char*, Dir*, char**, char*);
-/* everyone has getdirentries, just use that */
+/* almost everyone has getdirentries, just use that */
static int
mygetdents(int fd, char *buf, int n)
{
ssize_t nn;
-#if _GETDIRENTRIES_TAKES_LONG
long off;
-#else
- off_t off;
-#endif
- off = seek(fd, 0, 1);
+ off = p9seek(fd, 0, 1);
nn = getdirentries(fd, buf, n, &off);
if(nn > 0)
- seek(fd, off, 0);
+ p9seek(fd, off, 0);
return nn;
}
diff --git a/src/libdraw/BOT b/src/libdraw/BOT
deleted file mode 100644
index e69de29b..00000000
--- a/src/libdraw/BOT
+++ /dev/null
diff --git a/src/libdraw/x11-init.c b/src/libdraw/x11-init.c
index e402dee2..73df170f 100644
--- a/src/libdraw/x11-init.c
+++ b/src/libdraw/x11-init.c
@@ -26,6 +26,15 @@ _initdisplay(void (*error)(Display*, char*), char *label)
Display *d;
Memimage *m;
+ /*
+ * This rfork(RFNOTEG) isn't exactly right,
+ * but we need some way to signal window
+ * closes. Right now we post a hangup
+ * note to the note group, which kills a whole
+ * lot more than just the current program
+ * if we don't do this.
+ */
+ rfork(RFNOTEG);
memimageinit();
d = mallocz(sizeof(Display), 1);
diff --git a/src/libdraw/x11-itrans.c b/src/libdraw/x11-itrans.c
index b4d9e689..337bf5b6 100644
--- a/src/libdraw/x11-itrans.c
+++ b/src/libdraw/x11-itrans.c
@@ -190,8 +190,15 @@ xtoplan9mouse(XDisplay *xd, XEvent *e, Mouse *m)
switch(e->type){
case ButtonPress:
be = (XButtonEvent*)e;
- /* Fake message, just sent to make us announce snarf. */
- if(be->send_event && be->state==~0 && be->button==~0)
+ /*
+ * Fake message, just sent to make us announce snarf.
+ * Apparently state and button are 16 and 8 bits on
+ * the wire, since they are truncated by the time they
+ * get to us.
+ */
+ if(be->send_event
+ && (~be->state&0xFFFF)==0
+ && (~be->button&0xFF)==0)
return -1;
/* BUG? on mac need to inherit these from elsewhere? */
m->xy.x = be->x;
diff --git a/src/libhttpd/parsereq.c b/src/libhttpd/parsereq.c
index 19f03172..7ef63413 100644
--- a/src/libhttpd/parsereq.c
+++ b/src/libhttpd/parsereq.c
@@ -15,7 +15,6 @@ static char* abspath(HConnect *cc, char *origpath, char *curdir);
static int getc(HConnect*);
static char* getword(HConnect*);
static Strings parseuri(HConnect *c, char*);
-static Strings stripmagic(char*);
static Strings stripsearch(char*);
/*
diff --git a/src/libthread/sched.c b/src/libthread/sched.c
index d33587fc..b9e646e3 100644
--- a/src/libthread/sched.c
+++ b/src/libthread/sched.c
@@ -3,12 +3,14 @@
//static Thread *runthread(Proc*);
+#if 0
static char *_psstate[] = {
"Dead",
"Running",
"Ready",
"Rendezvous",
};
+#endif
static char*
psstate(int s)
diff --git a/src/mkcommon b/src/mkcommon
index 506cd438..90131bce 100644
--- a/src/mkcommon
+++ b/src/mkcommon
@@ -6,16 +6,20 @@
%.$O: %.s
$AS $AFLAGS $stem.s
-clean:V:
+y.tab.h y.tab.c: $YFILES
+ $YACC $YFLAGS $prereq
+
+nuke:V: nuke-common
+clean:V: clean-common
+%.clean:V: %.clean-common
+
+nuke-common:V:
+ rm -f *.[$OS] [$OS].out $CLEANFILES $NUKEFILES
+
+clean-common:
rm -f *.[$OS] [$OS].out $CLEANFILES
-%.clean:V:
+%.clean-common:V:
rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem
-nuke:V:
- rm -f *.[$OS] [$OS].out $CLEANFILES
-Makefile:D: mkfile
- rm -f Makefile
- sh $PLAN9/src/mk2make mkfile >Makefile
- chmod 444 Makefile
diff --git a/src/mkhdr b/src/mkhdr
index cbb0569f..8172845d 100644
--- a/src/mkhdr
+++ b/src/mkhdr
@@ -1,26 +1,25 @@
SYSNAME=`uname`
OBJTYPE=`uname -m | sed 's;i.86;386;; s;/.*;;; s; ;;g'`
+BIN=$PLAN9/bin
+LIBDIR=$PLAN9/lib
+
+# BUG - figure this out automatically
X11=/usr/X11R6
+
+O=o
+OS=$O
+
CC=9c
LD=9l
AS=9a
AR=9ar
+INSTALL=install -c
CFLAGS=
LDFLAGS=
AFLAGS=
-O=o
-
-BIN=$PLAN9/bin
-LIBDIR=$PLAN9/lib
+CLEANFILES=
+NUKEFILES=
<|cat $PLAN9/src/mk.$SYSNAME-$OBJTYPE 2>/dev/null || true
-OS=$O
-LD=9l
-LDFLAGS=$LDFLAGS -L$LIBDIR
-
-CLEANFILES=*.$O
-NUKEFILES=
-
-INSTALL=install -c
diff --git a/src/mkmany b/src/mkmany
index 5b254dbf..b648e881 100644
--- a/src/mkmany
+++ b/src/mkmany
@@ -1,73 +1,26 @@
-PROGS=${TARG:%=$O.%}
-
none:VQ:
echo usage: mk all, install, installall, '$O'.cmd, cmd.install, or cmd.installall
+PROGS=${TARG:%=$O.%}
+
all:V: $PROGS
$O.%: %.$O $OFILES $LIB
$LD -o $target $prereq $LDFLAGS
-%.$O: $HFILES # don't combine with following %.$O rules
-
-%.$O: %.c
- $CC $CFLAGS $stem.c
-
-%.$O: %.s
- $AS $AFLAGS $stem.s
-
-y.tab.h y.tab.c: $YFILES
- $YACC $YFLAGS $prereq
-
%.install:V: $BIN/%
$BIN/%: $O.%
$INSTALL $O.$stem $BIN/$stem
-%.installall:V:
- for (objtype in $CPUS)
- mk $stem.install
-
install:V:
- # for (i in $TARG)
- # mk $MKFLAGS $i.install
for i in $TARG
do
mk $MKFLAGS $i.install
done
-installall:V:
- for(objtype in $CPUS)
- mk $MKFLAGS install
-
-%.safeinstall:V:
- mk $O.$stem
- test -e $BIN/$stem && mv $BIN/$stem $BIN/_$stem
- mk $stem.install
-
-%.safeinstallall:V:
- for(objtype in $CPUS)
- mk $MKFLAGS $stem.safeinstall
-
-safeinstall:V:
- for(i in $TARG)
- mk $MKFLAGS $i.safeinstall
-
-safeinstallall:V:
- for (objtype in $CPUS)
- mk safeinstall
-
-update:V:
- update $UPDATEFLAGS $UPDATE
-
-nuke:V:
- rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* *.acid $TARG $NUKEFILES
-
-clean:V:
- rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* $TARG $CLEANFILES
+CLEANFILES=$CLEANFILES $PROGS
+NUKEFILES=$NUKEFILES ${TARG:%=$BIN/%}
-%.clean:V:
- rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem
+<$PLAN9/src/mkcommon
-%.acid: %.$O $HFILES
- $CC $CFLAGS -a $stem.c >$target
diff --git a/src/mkmk.sh b/src/mkmk.sh
index a52fb4af..196a10d7 100644
--- a/src/mkmk.sh
+++ b/src/mkmk.sh
@@ -19,7 +19,7 @@ cd libutf
9c utfrrune.c
9c utfrune.c
9c utfutf.c
-ar rvc ../../lib/libutf.a rune.o runestrcat.o runestrchr.o runestrcmp.o runestrcpy.o runestrdup.o runestrlen.o runestrecpy.o runestrncat.o runestrncmp.o runestrncpy.o runestrrchr.o runestrstr.o runetype.o utfecpy.o utflen.o utfnlen.o utfrrune.o utfrune.o utfutf.o
+9ar rvc ../../lib/libutf.a rune.o runestrcat.o runestrchr.o runestrcmp.o runestrcpy.o runestrdup.o runestrlen.o runestrecpy.o runestrncat.o runestrncmp.o runestrncpy.o runestrrchr.o runestrstr.o runetype.o utfecpy.o utflen.o utfnlen.o utfrrune.o utfrune.o utfutf.o
cd ..
cd libfmt
9c dofmt.c
@@ -56,7 +56,7 @@ cd libfmt
9c vsnprint.c
9c charstod.c
9c pow10.c
-ar rvc ../../lib/libfmt.a dofmt.o errfmt.o fltfmt.o fmt.o fmtfd.o fmtfdflush.o fmtlock.o fmtprint.o fmtquote.o fmtrune.o fmtstr.o fmtvprint.o fprint.o nan64.o print.o runefmtstr.o runeseprint.o runesmprint.o runesnprint.o runesprint.o runevseprint.o runevsmprint.o runevsnprint.o seprint.o smprint.o snprint.o sprint.o strtod.o vfprint.o vseprint.o vsmprint.o vsnprint.o charstod.o pow10.o
+9ar rvc ../../lib/libfmt.a dofmt.o errfmt.o fltfmt.o fmt.o fmtfd.o fmtfdflush.o fmtlock.o fmtprint.o fmtquote.o fmtrune.o fmtstr.o fmtvprint.o fprint.o nan64.o print.o runefmtstr.o runeseprint.o runesmprint.o runesnprint.o runesprint.o runevseprint.o runevsmprint.o runevsnprint.o seprint.o smprint.o snprint.o sprint.o strtod.o vfprint.o vseprint.o vsmprint.o vsnprint.o charstod.o pow10.o
cd ..
cd libbio
9c bbuffered.c
@@ -75,7 +75,7 @@ cd libbio
9c bwrite.c
9c bgetrune.c
9c bputrune.c
-ar rvc ../../lib/libbio.a bbuffered.o bfildes.o bflush.o bgetc.o bgetd.o binit.o boffset.o bprint.o bputc.o brdline.o brdstr.o bread.o bseek.o bwrite.o bgetrune.o bputrune.o
+9ar rvc ../../lib/libbio.a bbuffered.o bfildes.o bflush.o bgetc.o bgetd.o binit.o boffset.o bprint.o bputc.o brdline.o brdstr.o bread.o bseek.o bwrite.o bgetrune.o bputrune.o
cd ..
cd libregexp
9c regcomp.c
@@ -86,7 +86,7 @@ cd libregexp
9c rregaux.c
9c rregexec.c
9c rregsub.c
-ar rvc ../../lib/libregexp9.a regcomp.o regerror.o regexec.o regsub.o regaux.o rregaux.o rregexec.o rregsub.o
+9ar rvc ../../lib/libregexp9.a regcomp.o regerror.o regexec.o regsub.o regaux.o rregaux.o rregexec.o rregsub.o
cd ..
cd cmd/mk
9c arc.c
@@ -111,6 +111,6 @@ cd cmd/mk
9c varsub.c
9c word.c
9c unix.c
-9l -o o.mk arc.o archive.o bufblock.o env.o file.o graph.o job.o lex.o main.o match.o mk.o parse.o recipe.o rule.o run.o sh.o shprint.o symtab.o var.o varsub.o word.o unix.o -L../../../lib -lregexp9 -lbio -lfmt -lutf
+9l -o o.mk arc.o archive.o bufblock.o env.o file.o graph.o job.o lex.o main.o match.o mk.o parse.o recipe.o rule.o run.o sh.o shprint.o symtab.o var.o varsub.o word.o unix.o -lregexp9 -lbio -lfmt -lutf
install -c o.mk ../../../bin/mk
cd ..
diff --git a/src/mkone b/src/mkone
index 316bca93..8885b1eb 100644
--- a/src/mkone
+++ b/src/mkone
@@ -2,43 +2,16 @@ PROG=$O.$TARG
all:V: $PROG
-$O.$TARG: $OFILES $LIB
+$PROG: $OFILES $LIB
$LD -o $target $prereq $LDFLAGS
-%.$O: $HFILES # don't combine with following %.$O rules
-
-%.$O: %.c
- $CC $CFLAGS $stem.c
-
-%.$O: %.s
- $AS $AFLAGS $stem.s
-
-y.tab.h y.tab.c: $YFILES
- $YACC $YFLAGS $prereq
-
+install:V: $TARG.install
%.install:V: $BIN/%
$BIN/%: $O.%
$INSTALL $O.$stem $BIN/$stem
-%.installall:V:
- for (objtype in $CPUS)
- mk $stem.install
-
-install:V: $TARG.install
-
-installall:V:
- for(objtype in $CPUS)
- mk $MKFLAGS install
-
-nuke:V:
- rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* *.acid $TARG $NUKEFILES
-
-clean:V:
- rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* $TARG $CLEANFILES
+NUKEFILES=$NUKEFILES $BIN/$TARG
-%.clean:V:
- rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem
+<$PLAN9/src/mkcommon
-%.acid: %.$O $HFILES
- $CC $CFLAGS -a $stem.c >$target
diff --git a/src/mksyslib b/src/mksyslib
index fab443d3..fe412abd 100644
--- a/src/mksyslib
+++ b/src/mksyslib
@@ -8,4 +8,6 @@ $PLAN9/lib/$LIB:V: $OFILES # force archive even when not needed
all install:V: $PLAN9/lib/$LIB
+NUKEFILES=$NUKEFILES $PLAN9/lib/$LIB
+
<$PLAN9/src/mkcommon