Add the #goo to allow use in C++. Silence a few more warnings. Strip down the mkfiles more. Fix bug in X11 mouse handling, note groups.
diff --git a/include/bin.h b/include/bin.h index 6b9f2bd..dc738f1 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 @@ 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 600f094..473389a 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 @@ long Bgetrune(Biobuf*); int Bputrune(Biobuf*, long); +#if defined(__cplusplus) +} +#endif #endif
diff --git a/include/cursor.h b/include/cursor.h index 105cd0e..d53baf8 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 @@ uchar clr[2*16]; uchar set[2*16]; }; + +#if defined(__cplusplus) +} +#endif +#endif
diff --git a/include/draw.h b/include/draw.h index 029f0ae..54a566a 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 @@ 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 e74183d..56c1b1c 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 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 93f46d4..20ffe38 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 @@ #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 79c888c..bbd0b3d 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 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 c913e14..befea2e 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 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 9b8194b..47d808c 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 @@ #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 d75c580..03b48ad 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 @@ #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 af82c99..6fbf394 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 @@ #define CLASS(p) ((*(uchar*)(p))>>6) +#if defined(__cplusplus) +} +#endif +#endif
diff --git a/include/keyboard.h b/include/keyboard.h index a6d99bf..588600a 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 @@ Kshift= KF|0x16, Kctl= KF|0x17, }; + +#if defined(__cplusplus) +} +#endif +#endif
diff --git a/include/lib9.h b/include/lib9.h index 8f15ce6..21490e6 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 @@ #if defined(__cplusplus) } #endif - -#endif /* _LIB9H_ */ +#endif /* _LIB9_H_ */
diff --git a/include/libsec.h b/include/libsec.h index 17b2b65..e65b7f9 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 @@ // 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 2d4f54f..93f34a0 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 @@ 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 36d8776..f0b01d0 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 _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 f0a0f69..2c190b2 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 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 e0b1132..4a31546 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 @@ 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 745a6d7..382d246 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 @@ #define rregsub rregsub9 #endif +#if defined(__cplusplus) +} +#endif #endif
diff --git a/include/thread.h b/include/thread.h index 10aac28..9c5d2d0 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 @@ 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 623bfda..11b016d 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 istitlerune(Rune); extern int isupperrune(Rune); +#if defined(__cplusplus) +} +#endif #endif
diff --git a/include/venti.h b/include/venti.h index 5f8ef0a..a828101 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 vtfilelock2(VtFile*, VtFile*, int); int vtfileflushbefore(VtFile*, u64int); +#if defined(__cplusplus) +} +#endif +#endif