mcgrew@dartagnan.rutgers.edu (Charles Mcgrew) (08/25/89)
Submitted-by: P{r Emanuelsson <pell@isy.liu.se> Posting-number: Volume 1, Issue 56 Archive-name: ansi-sunview/part01 This is a submission for comp.sources.sun in three parts. Here are patches for SunView header files under SunOS 4.0.1 to make them ANSI compliant. Works fine with e.g. GCC or G++ from the FSF. See the README file for more information. #!/bin/sh # shar: Shell Archiver (v1.22) # # This is part 1 of a multipart archive # do not concatenate these parts, unpack them in order with /bin/sh # # Run the following text with /bin/sh to create: # README-sunviewpatches # build-sunview-4.0.1 # PATCH-pixrect # PATCH-suntool # PATCH-sunwindow # if test -r s2_seq_.tmp then echo "Must unpack archives in sequence!" next=`cat s2_seq_.tmp`; echo "Please unpack part $next next" exit 1; fi echo "x - extracting README-sunviewpatches (Text)" sed 's/^X//' << 'SHAR_EOF' > README-sunviewpatches && X ANSI SunView X ------------ X XThis is a patch set for making certain SunView (tm SUN Microsystems) header Xfiles ANSI compliant, e.g. real function prototypes. X XThese should work with SunOS 4.0.1 and probably 4.0. Don't know about 4.0.3. XI'm still waiting for the tapes. :-( Let me know if 4.0.3 is different! X XSince SUN doesn't have an ANSI compiler (yet) I imagine that most people will Xuse the GCC or G++ compilers from the Free Software Foundation. I have myself Xtested these new header files successfully on a Sun386i with G++. Of course, XI may have introduced some bugs, but they should be very simple to correct, Xif they exist at all. X XNaturally, I couldn't come up with prototypes for some strange, unknown Xfunctions but I think that no one uses these anyway. If I'm wrong, though, XI'd like to hear about it. X XNote that newer versions of G++ have the -fno-strict-prototype flag as well Xas the 'EXTERN "C"' construct, making this work almost unnecessary. But I Xthink it would feel good not having to use these features. One other problem Xwith G++ is that it insists on complaining about lazy function declarations, Xi.e. "void func(...)". Sometimes this was necessary due to sloppy/strange XSUN code. There is no way to shut it up short of editing the parser, which XI did... X XINSTALLATION X------------ X XIf you have both GCC and G++ installed there are two places where this could Xbe installed; either in gcc-include or in g++-include. Choose one of them Xand make symbolic links in the other to the directories "suntool", X"sunwindow" and "pixrect", created by the build-script. X X1. cd to your chosen directory and unpack this archive, or move the files X "build-sunview-<version>" and "PATCH-*" to this directory. You should X delete them when the installation is finished. X X2. Do "sh build-sunview-<version>". This will create the directories "suntool", X "sunwindow" and "pixrect", copy include files from /usr/include and, X finally, patch the files in each directory. X X3. Look for any *.rej files, e.g. "ls */*.rej". These means failed patches! X Problems! Try to find out! X But NOTE that on a Sun386i you will get two failed patches, X suntool/panel.h and X pixrect/memvar.h X This is because SUN has already fixed some things in those files for the X 386i! No need to worry! X X4. Delete all the *.orig files. And that's it! X XSome problems that might arise: X X- You don't have the "patch" program: Get it from e.g. uunet. X- Some patches fail: Dont know what could cause this, besides applying them X on the wrong SunOS version or the 386i peculiarity above. Please find out X and tell me! X- Directories could not be created: You don't have write access to the X GCC (or G++) include directory! This you must have. X XI make no promises or take no responsibilities, but I will gladly answer Xquestions by mail, if time permits. X XTHANKS to the FSF for writing a great C++ compiler! X X-- XP{r Emanuelsson, pell@isy.liu.se, ...!uunet!isy.liu.se!pell SHAR_EOF chmod 0644 README-sunviewpatches || echo "restore of README-sunviewpatches fails" echo "x - extracting build-sunview-4.0.1 (Text)" sed 's/^X//' << 'SHAR_EOF' > build-sunview-4.0.1 && X#!/bin/sh X Xecho 'Making directories...' Xmkdir suntool sunwindow pixrect X Xecho 'Copying suntool files...' Xfor file in alert.h canvas.h emptysw.h frame.h fullscreen.h gfxsw.h \ X icon.h icon_load.h image.h menu.h msgsw.h panel.h scrollbar.h \ X selection.h selection_svc.h tek.h teksw.h textsw.h tool_struct.h \ X tty.h ttysw.h ttytlsw.h walkmenu.h window.h Xdo X cp /usr/include/suntool/$file suntool/ Xdone X Xecho 'Copying sunwindow files...' Xfor file in attr.h hashfn.h io_stream.h notify.h pixwin.h \ X pw_dblbuf.h pw_util.h rect.h rectlist.h string_utils.h win_cursor.h \ X win_environ.h win_input.h win_keymap.h win_notify.h win_struct.h Xdo X cp /usr/include/sunwindow/$file sunwindow/ Xdone X Xecho 'Copying pixrect files...' Xfor file in memvar.h pixfont.h pixrect.h pr_io.h pr_planegroups.h Xdo X cp /usr/include/pixrect/$file pixrect/ Xdone X Xecho 'Patching suntool files...' Xpatch -p < PATCH-suntool X Xecho 'Patching sunwindow files...' Xpatch -p < PATCH-sunwindow X Xecho 'Patching pixrect files...' Xpatch -p < PATCH-pixrect SHAR_EOF chmod 0644 build-sunview-4.0.1 || echo "restore of build-sunview-4.0.1 fails" echo "x - extracting PATCH-pixrect (Text)" sed 's/^X//' << 'SHAR_EOF' > PATCH-pixrect && Xdiff -rc2 /usr/include/pixrect/memvar.h pixrect/memvar.h X*** /usr/include/pixrect/memvar.h Sat Apr 9 10:36:41 1988 X--- pixrect/memvar.h Fri Jul 28 20:07:12 1989 X*************** X*** 81,89 **** X #define mprs_skew(mprs) _mprs_skew((struct pr_prpos *)&(mprs)) X X! #if !defined lint || !defined KERNEL || defined(sun2) X! short *_mprs_addr(); X u_char *_mprs8_addr(); X int _mprs_skew(); X- #endif X X /* X--- 81,87 ---- X #define mprs_skew(mprs) _mprs_skew((struct pr_prpos *)&(mprs)) X X! short *_mprs_addr(); /* What are these? /Pell */ X u_char *_mprs8_addr(); X int _mprs_skew(); X X /* X*************** X*** 97,119 **** X */ X X- /* First a pair of utility macros that allow concatenation in a fashion that X- * won't annoy lint (These belong in a standard header file!): X- */ X- #ifndef CAT X- #undef IDENT X- #define IDENT(x) x X- #define CAT(a,b) IDENT(a)b X- #endif X- X #define mpr_static(name, w, h, d, image) \ X! struct mpr_data CAT(name,_data) = \ X {mpr_linebytes(w,d), (short *)(image), {0, 0}, 0, 0}; \ X! Pixrect name = {&mem_ops, w, h, d, (caddr_t)&CAT(name,_data)} X X /* static pixrect with variables declared "static" */ X #define mpr_static_static(name, w, h, d, image) \ X! static struct mpr_data CAT(name,_data) = \ X {mpr_linebytes(w,d), (short *)(image), {0, 0}, 0, 0}; \ X! static Pixrect name = {&mem_ops, w, h, d, (caddr_t)&CAT(name,_data)} X X /* X--- 95,108 ---- X */ X X #define mpr_static(name, w, h, d, image) \ X! struct mpr_data name ## _data = \ X {mpr_linebytes(w,d), (short *)(image), {0, 0}, 0, 0}; \ X! Pixrect name = {&mem_ops, w, h, d, (void *)& name ## _data } X X /* static pixrect with variables declared "static" */ X #define mpr_static_static(name, w, h, d, image) \ X! static struct mpr_data name ## _data = \ X {mpr_linebytes(w,d), (short *)(image), {0, 0}, 0, 0}; \ X! static Pixrect name = {&mem_ops, w, h, d, (void *)& name ## _data } X X /* X*************** X*** 125,134 **** X extern struct pixrectops mem_ops; X X int mem_rop(); X- #ifndef KERNEL X int mem_stencil(); X int mem_batchrop(); X! Pixrect *mem_create(); /* General mpr create routine */ X! Pixrect *mem_point(); /* Even more general mpr create */ X int mem_destroy(); X int mem_get(); X--- 114,127 ---- X extern struct pixrectops mem_ops; X X+ /* I don't know much about these. When are they used?! X+ Probably internally in the pixrect library... /Pell */ X+ X int mem_rop(); X int mem_stencil(); X int mem_batchrop(); X! /* Unfortunately, sometimes this is called with parameters cast as a X! structure. Lose, lose /Pell */ X! Pixrect *mem_create(...); /* General mpr create routine */ X! Pixrect *mem_point(int, int, int, short *); /* Even more general mpr create */ X int mem_destroy(); X int mem_get(); X*************** X*** 136,146 **** X int mem_vector(); X Pixrect *mem_region(); X- #endif KERNEL X int mem_putcolormap(); X int mem_putattributes(); X- #ifndef KERNEL X int mem_getcolormap(); X int mem_getattributes(); X- #endif KERNEL X X #endif !memvar_DEFINED X--- 129,136 ---- Xdiff -rc2 /usr/include/pixrect/pixfont.h pixrect/pixfont.h X*** /usr/include/pixrect/pixfont.h Sat Apr 9 10:36:41 1988 X--- pixrect/pixfont.h Fri Jul 28 19:21:52 1989 X*************** X*** 38,42 **** X X /* structured text macros */ X- #ifndef lint X #define prs_text(prpos, op, pf, str) \ X pr_text((prpos).pr, (prpos).pos.x, (prpos).pos.y, pf, str) X--- 38,41 ---- X*************** X*** 44,54 **** X #define prs_ttext(prpos, op, pf, str) \ X pr_ttext((prpos).pr, (prpos).pos.x, (prpos).pos.y, pf, str) X- #endif lint X X! Pixfont *pf_open(); X! Pixfont *pf_open_private(); X Pixfont *pf_default(); X! struct pr_size pf_textbatch(); X! struct pr_size pf_textwidth(); X X #define PIXFONT Pixfont X--- 43,53 ---- X #define prs_ttext(prpos, op, pf, str) \ X pr_ttext((prpos).pr, (prpos).pos.x, (prpos).pos.y, pf, str) X X! Pixfont *pf_open(const char *); X! Pixfont *pf_open_private(const char *); X Pixfont *pf_default(); X! int pf_close(Pixfont *); X! struct pr_size pf_textbatch(struct pr_prpos *, int *, Pixfont *, char *); X! struct pr_size pf_textwidth(int, Pixfont *, char *); X X #define PIXFONT Pixfont Xdiff -rc2 /usr/include/pixrect/pixrect.h pixrect/pixrect.h X*** /usr/include/pixrect/pixrect.h Sat Apr 9 10:36:42 1988 X--- pixrect/pixrect.h Fri Jul 28 20:10:51 1989 X*************** X*** 64,68 **** X struct pr_size pr_size; /* pixels per dimension */ X int pr_depth; /* bits per pixel */ X! caddr_t pr_data; /* device-dependent data */ X } Pixrect; X #define pr_width pr_size.x X--- 64,68 ---- X struct pr_size pr_size; /* pixels per dimension */ X int pr_depth; /* bits per pixel */ X! void * pr_data; /* device-dependent data */ X } Pixrect; X #define pr_width pr_size.x X*************** X*** 101,110 **** X #endif X X- #ifndef KERNEL X /* X * Takes device file name. This is how a screen pixrect is created. X */ X! extern Pixrect *pr_open(); X! #endif !KERNEL X X /* X--- 101,108 ---- X #endif X X /* X * Takes device file name. This is how a screen pixrect is created. X */ X! extern Pixrect *pr_open(char *); X X /* X*************** X*** 112,139 **** X * device dependent function for the destination pixrect. X */ X struct pixrectops { X! int (*pro_rop)(); X! #ifndef KERNEL X! int (*pro_stencil)(); X! int (*pro_batchrop)(); X! int (*pro_nop)(); /* place holder */ X! int (*pro_destroy)(); X! int (*pro_get)(); X! int (*pro_put)(); X! int (*pro_vector)(); X! Pixrect * (*pro_region)(); X! #endif !KERNEL X! int (*pro_putcolormap)(); X! #ifndef KERNEL X! int (*pro_getcolormap)(); X! #endif !KERNEL X! int (*pro_putattributes)(); X! #ifndef KERNEL X! int (*pro_getattributes)(); X! #endif !KERNEL X }; X X- #if !defined(lint) || defined(KERNEL) X- X #define pr_rop(dpr, dx, dy, w, h, op, spr, sx, sy) \ X (*(dpr)->pr_ops->pro_rop)(dpr, dx, dy, w, h, op, spr, sx, sy) X--- 110,133 ---- X * device dependent function for the destination pixrect. X */ X+ /* Unfortunately, this is also used for all pixwin calls, so we have to X+ * declare things as losing void* /Pell X+ */ X struct pixrectops { X! int (*pro_rop)(void *, int, int, int, int, int, void *, int, int); X! int (*pro_stencil)(void *, int, int, int, int, int, X! void *, int, int, void *, int, int); X! int (*pro_batchrop)(void *, int, int, int, struct pr_prpos *, int); X! int (*pro_nop)(); /* place holder. (What to do with this? /Pell) */ X! int (*pro_destroy)(void *); X! int (*pro_get)(void *, int, int); X! int (*pro_put)(void *, int, int, int); X! int (*pro_vector)(void *, int, int, int, int, int, int); X! void * (*pro_region)(void *, int, int, int, int); X! int (*pro_putcolormap)(void *, int, int, u_char *, u_char *, u_char *); X! int (*pro_getcolormap)(void *, int, int, u_char *, u_char *, u_char *); X! int (*pro_putattributes)(void *, int *); X! int (*pro_getattributes)(void *, int *); X }; X X #define pr_rop(dpr, dx, dy, w, h, op, spr, sx, sy) \ X (*(dpr)->pr_ops->pro_rop)(dpr, dx, dy, w, h, op, spr, sx, sy) X*************** X*** 143,148 **** X (*(pr)->pr_ops->pro_putattributes)(pr, planes) X X- #ifndef KERNEL X- X #define pr_stencil(dpr, dx, dy, w, h, op, stpr, stx, sty, spr, sx, sy) \ X (*(dpr)->pr_ops->pro_stencil)(dpr,dx,dy,w,h,op,stpr,stx,sty,spr,sx,sy) X--- 137,140 ---- X*************** X*** 164,186 **** X (*(pr)->pr_ops->pro_getattributes)(pr, planes) X X- #endif !KERNEL X X- #else !lint || KERNEL X- X- extern pr_rop(); X- extern pr_stencil(); X- extern pr_batchrop(); X- extern pr_destroy(); X- extern pr_get(); X- extern pr_put(); X- extern pr_vector(); X- extern Pixrect *pr_region(); X- extern pr_putcolormap(); X- extern pr_getcolormap(); X- extern pr_putattributes(); X- extern pr_getattributes(); X- X- #endif lint X- X /* X * Several of the above operations return a common, distinguished value when X--- 156,160 ---- X*************** X*** 226,231 **** X */ X X- #if !defined(lint) || defined(KERNEL) X- X #define prs_rop(dstreg, op, srcprpos) \ X pr_rop((dstreg).pr, (dstreg).pos.x, (dstreg).pos.y, \ X--- 200,203 ---- X*************** X*** 269,293 **** X #define pr_line(pr, x0, y0, x1, y1, brush, tex, op) \ X pro_line(pr, x0, y0, x1, y1, brush, tex, op, 0) X- X- #else !lint || KERNEL X- X- extern prs_rop(); X- extern prs_stencil(); X- extern prs_batchrop(); X- extern prs_destroy(); X- extern prs_get(); X- extern prs_put(); X- extern prs_vector(); X- extern Pixrect *prs_region(); X- extern prs_putcolormap(); X- extern prs_getcolormap(); X- extern prs_putattributes(); X- extern prs_getattributes(); X- X- extern prs_replrop(); X- extern pr_close(); X- extern pr_line(); X- X- #endif lint X X #endif pixrect_DEFINED X--- 241,244 ---- Xdiff -rc2 /usr/include/pixrect/pr_io.h pixrect/pr_io.h X*** /usr/include/pixrect/pr_io.h Sat Apr 9 10:36:44 1988 X--- pixrect/pr_io.h Fri Jul 28 19:17:22 1989 X*************** X*** 43,55 **** X X /* declarations */ X! extern int pr_dump(); X! extern int pr_dump_header(); X! extern int pr_dump_image(); X! extern Pixrect * pr_dump_init(); X! extern Pixrect * pr_load(); X! extern int pr_load_colormap(); X! extern int pr_load_header(); X! extern Pixrect * pr_load_image(); X! extern Pixrect * pr_load_std_image(); X X #endif pr_io_DEFINED X--- 43,58 ---- X X /* declarations */ X! /* All these void * should really be FILE *. Unfortunately there's no guarantee X! that the user really wants stdio and includes it. /Pell */ X! X! extern int pr_dump(Pixrect *, void *, colormap_t *, int, int); X! extern int pr_dump_header(void *, struct rasterfile *, colormap_t *); X! extern int pr_dump_image(Pixrect *, void *, struct rasterfile *); X! extern Pixrect * pr_dump_init(Pixrect *, struct rasterfile *); X! extern Pixrect * pr_load(void *, colormap_t *); X! extern int pr_load_colormap(void *, struct rasterfile *, colormap_t *); X! extern int pr_load_header(void *, struct rasterfile *); X! extern Pixrect * pr_load_image(void *, struct rasterfile *, colormap_t *); X! extern Pixrect * pr_load_std_image(void *, struct rasterfile *); X X #endif pr_io_DEFINED Xdiff -rc2 /usr/include/pixrect/pr_planegroups.h pixrect/pr_planegroups.h X*** /usr/include/pixrect/pr_planegroups.h Sat Apr 9 10:36:45 1988 X--- pixrect/pr_planegroups.h Fri Jul 28 19:08:40 1989 X*************** X*** 28,35 **** X X /* Plane groups functions */ X! extern int pr_available_plane_groups(); X! extern int pr_get_plane_group(); X! extern void pr_set_plane_group(); X! extern void pr_set_planes(); X X #endif pr_planegroups_DEFINED X--- 28,35 ---- X X /* Plane groups functions */ X! extern int pr_available_plane_groups(Pixrect *, int, char *); X! extern int pr_get_plane_group(Pixrect *); X! extern void pr_set_plane_group(Pixrect *, int); X! extern void pr_set_planes(Pixrect *, int, int); X X #endif pr_planegroups_DEFINED SHAR_EOF chmod 0644 PATCH-pixrect || echo "restore of PATCH-pixrect fails" echo "x - extracting PATCH-suntool (Text)" sed 's/^X//' << 'SHAR_EOF' > PATCH-suntool && Xdiff -rc2 /usr/include/suntool/alert.h suntool/alert.h X*** /usr/include/suntool/alert.h Sat Apr 9 10:01:31 1988 X--- suntool/alert.h Fri Jul 28 18:04:23 1989 X*************** X*** 36,40 **** X } Alert_attribute; X X! #define alert_attr_next(attr) (Alert_attribute *)attr_next((caddr_t *)attr) X X /* ------------------------------------------------------------------ */ X--- 36,40 ---- X } Alert_attribute; X X! #define alert_attr_next(attr) (Alert_attribute *)attr_next((void **)attr) X X /* ------------------------------------------------------------------ */ X*************** X*** 68,72 **** X X extern int X! alert_prompt(/*client_frame, event, attr_list*/); X X #endif ~alert_DEFINED X--- 68,72 ---- X X extern int X! alert_prompt(Frame, Event * ...); X X #endif ~alert_DEFINED Xdiff -rc2 /usr/include/suntool/canvas.h suntool/canvas.h X*** /usr/include/suntool/canvas.h Sat Apr 9 09:59:33 1988 X--- suntool/canvas.h Fri Jul 28 18:04:41 1989 X*************** X*** 10,14 **** X #include <sunwindow/attr.h> X X! typedef caddr_t Canvas; X X #define CANVAS_ATTR(type, ordinal) ATTR(ATTR_PKG_CANVAS, type, ordinal) X--- 10,14 ---- X #include <sunwindow/attr.h> X X! typedef void * Canvas; X X #define CANVAS_ATTR(type, ordinal) ATTR(ATTR_PKG_CANVAS, type, ordinal) X*************** X*** 34,47 **** X /* useful macros X */ X! #define canvas_pixwin(canvas) (Pixwin *) (LINT_CAST(window_get(canvas, CANVAS_PIXWIN))) X X /* useful functions X */ X! extern Event *canvas_event(); X! extern Event *canvas_window_event(); X X /* canvas creation routine */ X #define CANVAS canvas_window_object X! extern caddr_t canvas_window_object(); X X /* canvas window type */ X--- 34,47 ---- X /* useful macros X */ X! #define canvas_pixwin(canvas) (Pixwin *) (window_get(canvas, CANVAS_PIXWIN)) X X /* useful functions X */ X! extern Event *canvas_event(Canvas, struct inputevent *); X! extern Event *canvas_window_event(Canvas, struct inputevent *); X X /* canvas creation routine */ X #define CANVAS canvas_window_object X! extern void * canvas_window_object(Window ...); X X /* canvas window type */ Xdiff -rc2 /usr/include/suntool/emptysw.h suntool/emptysw.h X*** /usr/include/suntool/emptysw.h Sat Apr 9 10:00:06 1988 X--- suntool/emptysw.h Sat Jan 21 15:04:10 1989 X*************** X*** 17,27 **** X typedef struct emptysubwindow Emptysw; X X- extern Emptysw *esw_begin(); X- X- extern Emptysw *esw_init(); X- extern int esw_handlesigwinch(); X- extern struct toolsw *esw_createtoolsubwindow(); X- X- #ifdef cplus X /* X * C Library routines specifically related to empty subwindow functions. X--- 17,20 ---- X*************** X*** 34,43 **** X * subwindow. X */ X! Emptysw *esw_begin(Tool *tool, char *name, short width, height); X X X! Emptysw *esw_init(int windowfd); X! void esw_handlesigwinch(struct emptysubwindow *esw); X! void esw_done(struct emptysubwindow *esw); X X /* X--- 27,36 ---- X * subwindow. X */ X! Emptysw *esw_begin(Tool *, char *, short, short); X X X! Emptysw *esw_init(int); X! void esw_handlesigwinch(struct emptysubwindow *); X! void esw_done(struct emptysubwindow *); X X /* X*************** X*** 44,49 **** X * Utility for initializing toolsw as empty subwindow in suntool environment X */ X! struct toolsw *esw_createtoolsubwindow( X! Tool *tool, char *name, short width, height); X! #endif X! X--- 37,39 ---- X * Utility for initializing toolsw as empty subwindow in suntool environment X */ X! struct toolsw *esw_createtoolsubwindow(Tool *, char *, short, short); Xdiff -rc2 /usr/include/suntool/frame.h suntool/frame.h X*** /usr/include/suntool/frame.h Sat Apr 9 09:59:27 1988 X--- suntool/frame.h Fri Jul 28 18:04:46 1989 X*************** X*** 17,25 **** X #define FRAME_TYPE ATTR_PKG_FRAME X X! typedef caddr_t Frame; X #define FRAME frame_window_object X #define ROOT_FRAME ((Frame)0) X X! extern caddr_t frame_window_object(); X X /***********************************************************************/ X--- 17,25 ---- X #define FRAME_TYPE ATTR_PKG_FRAME X X! typedef void * Frame; X #define FRAME frame_window_object X #define ROOT_FRAME ((Frame)0) X X! extern void * frame_window_object(Window ...); X X /***********************************************************************/ X*************** X*** 94,97 **** X--- 94,105 ---- X X /***********************************************************************/ X+ /* external declarations */ X+ /***********************************************************************/ X+ /* Added by Pell, moved from window.h */ X+ X+ extern void window_main_loop(Frame); X+ extern void * window_loop(Frame); X+ X+ /***********************************************************************/ X /* macros */ X /***********************************************************************/ X*************** X*** 107,116 **** X X #define frame_done_proc(frame) \ X! (((void (*)())(LINT_CAST(window_get(frame, FRAME_DONE_PROC))))(frame)) X X X #define frame_default_done_proc(frame) \ X! (((void (*)())(LINT_CAST(window_get(frame, FRAME_DEFAULT_PROC))))(frame)) X X /***********************************************************************/ X! #endif ~frame_DEFINED X--- 115,124 ---- X X #define frame_done_proc(frame) \ X! (((void (*)())(window_get(frame, FRAME_DONE_PROC)))(frame)) X X X #define frame_default_done_proc(frame) \ X! (((void (*)())(window_get(frame, FRAME_DEFAULT_PROC)))(frame)) X X /***********************************************************************/ X! #endif /* ~frame_DEFINED */ Xdiff -rc2 /usr/include/suntool/fullscreen.h suntool/fullscreen.h X*** /usr/include/suntool/fullscreen.h Sat Apr 9 10:00:07 1988 X--- suntool/fullscreen.h Sat Jan 21 14:59:29 1989 X*************** X*** 37,43 **** X }; X X! extern struct fullscreen *fullscreen_init(), *fsglobal; X X- #ifdef cplus X /* X * C Library routines specifically related to full screen functions. X--- 37,42 ---- X }; X X! extern struct fullscreen *fsglobal; X X /* X * C Library routines specifically related to full screen functions. X*************** X*** 47,52 **** X * Full screen operations. X */ X! struct fullscreen *fullscreen_init(int windowfd); X! void fullscreen_destroy(struct fullscreen *fs); X! #endif X! X--- 46,49 ---- X * Full screen operations. X */ X! struct fullscreen *fullscreen_init(int); X! void fullscreen_destroy(struct fullscreen *); Xdiff -rc2 /usr/include/suntool/gfxsw.h suntool/gfxsw.h X*** /usr/include/suntool/gfxsw.h Sat Apr 9 09:59:39 1988 X--- suntool/gfxsw.h Fri Jul 28 18:04:48 1989 X*************** X*** 30,42 **** X struct pixwin *gfx_pixwin; X struct rect gfx_rect; X! caddr_t gfx_takeoverdata; X }; X X- extern struct gfxsubwindow *gfxsw_init(); X- #ifdef TOOL_DONE X- extern struct toolsw *gfxsw_createtoolsubwindow(); X- #endif X- X- #ifdef cplus X /* X * C Library routines specifically related to gfx subwindow functions. X--- 30,36 ---- X struct pixwin *gfx_pixwin; X struct rect gfx_rect; X! void * gfx_takeoverdata; X }; X X /* X * C Library routines specifically related to gfx subwindow functions. X*************** X*** 46,52 **** X * Empty subwindow operations. X */ X! struct gfxsubwindow *gfxsw_init(int windowfd, char **argv); X! void gfxsw_handlesigwinch(struct gfxsubwindow *gfxsw); X! void gfxsw_done(struct gfxsubwindow *gfxsw); X X /* X--- 40,46 ---- X * Empty subwindow operations. X */ X! struct gfxsubwindow *gfxsw_init(int, char **); X! void gfxsw_handlesigwinch(struct gfxsubwindow *); X! void gfxsw_done(struct gfxsubwindow *); X X /* X*************** X*** 53,58 **** X * Utility for initializing toolsw as gfx subwindow in suntool environment X */ X! struct toolsw *gfxsw_createtoolsubwindow( X! struct tool *tool, char *name, short width, height, char **argv); X X /* X--- 47,54 ---- X * Utility for initializing toolsw as gfx subwindow in suntool environment X */ X! #ifdef TOOL_DONE X! struct toolsw *gfxsw_createtoolsubwindow(struct tool *, char *, X! short, short, char **); X! #endif X X /* X*************** X*** 59,63 **** X * Utility used by client that wants to explicitly have a retained window. X */ X! gfxsw_getretained(struct gfxsubwindow *gfx); X X /* X--- 55,59 ---- X * Utility used by client that wants to explicitly have a retained window. X */ X! int gfxsw_getretained(struct gfxsubwindow *); X X /* X*************** X*** 64,68 **** X * Called by "non-takeover" graphics programs when recieve SIGWINCH. X */ X! void gfxsw_interpretesigwinch(struct gfxsubwindow *gfx); X /* X * Used implicitly by "takeover" programs as SIGWINCH signal handler instead X--- 60,64 ---- X * Called by "non-takeover" graphics programs when recieve SIGWINCH. X */ X! void gfxsw_interpretesigwinch(struct gfxsubwindow *); X /* X * Used implicitly by "takeover" programs as SIGWINCH signal handler instead X*************** X*** 77,82 **** X * Used explicitely by "takeover" programs as substitute for tool_select call. X */ X! void gfxsw_select(struct gfxsubwindow *gfx, int (*selected)(), X! int inputmask, outputmask, exceptmask, struct timeval *timer); X /* X * When in selected routine (see gfxsw_select) call this if want to return from X--- 73,78 ---- X * Used explicitely by "takeover" programs as substitute for tool_select call. X */ X! void gfxsw_select(struct gfxsubwindow *, int (*)(), X! int, int, int, struct timeval *); X /* X * When in selected routine (see gfxsw_select) call this if want to return from X*************** X*** 83,87 **** X * gfxsw_select call. X */ X! void gfxsw_selectdone(struct gfxsubwindow *gfx); X /* X * Calling sequence of selected routine (see gfxsw_select). X--- 79,83 ---- X * gfxsw_select call. X */ X! void gfxsw_selectdone(struct gfxsubwindow *); X /* X * Calling sequence of selected routine (see gfxsw_select). X*************** X*** 88,97 **** X * Can be called only if gfx->gfx_flags has GFX_RESTART bit set. X */ X! gfxsw_selected(struct gfxsubwindow *gfx; int *ibits, *obits, *ebits; X! struct timeval **timer); X { X- #endif X- X- X- X- X--- 84,88 ---- X * Can be called only if gfx->gfx_flags has GFX_RESTART bit set. X */ X! gfxsw_selected(struct gfxsubwindow *, int *, int *, int *, X! struct timeval **); X { Xdiff -rc2 /usr/include/suntool/icon.h suntool/icon.h X*** /usr/include/suntool/icon.h Sat Apr 9 10:00:28 1988 X--- suntool/icon.h Fri Jul 28 18:05:30 1989 X*************** X*** 31,35 **** X } Icon_attribute; X X! #define icon_attr_next(attr) (Icon_attribute *)attr_next((caddr_t *)attr) X X /*****************************************************************************/ X--- 31,35 ---- X } Icon_attribute; X X! #define icon_attr_next(attr) (Icon_attribute *)attr_next((void **)attr) X X /*****************************************************************************/ X*************** X*** 63,67 **** X /*****************************************************************************/ X X! typedef caddr_t Icon; X typedef struct icon *icon_handle; X X--- 63,67 ---- X /*****************************************************************************/ X X! typedef void * Icon; X typedef struct icon *icon_handle; X X*************** X*** 70,78 **** X /*****************************************************************************/ X X! extern Icon icon_create(); X! extern caddr_t icon_get(); X! extern int icon_set(); X! extern int icon_destroy(); X! extern void icon_display(); /* how are icons undisplayed? */ X X /*****************************************************************************/ X--- 70,79 ---- X /*****************************************************************************/ X X! extern Icon icon_create(...); X! extern void * icon_get(Icon, Icon_attribute); X! extern int icon_set(Icon ...); X! extern int icon_destroy(Icon); X! extern void icon_display(struct icon *, struct pixwin *, int, int); X! /* how are icons undisplayed? */ X X /*****************************************************************************/ X*************** X*** 87,91 **** X static struct pixrect CAT(name,_mpr) = { \ X &mem_ops, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, 1, \ X! (caddr_t)&CAT(name,_data)}; \ X static struct icon name = { \ X ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, \ X--- 88,92 ---- X static struct pixrect CAT(name,_mpr) = { \ X &mem_ops, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, 1, \ X! (void *)&CAT(name,_data)}; \ X static struct icon name = { \ X ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, \ X*************** X*** 105,109 **** X static struct pixrect CAT(name,_mpr) = { \ X &mem_ops, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, 1, \ X! (caddr_t)&CAT(name,_data)}; \ X static struct icon name = { \ X ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, \ X--- 106,110 ---- X static struct pixrect CAT(name,_mpr) = { \ X &mem_ops, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, 1, \ X! (void *)&CAT(name,_data)}; \ X static struct icon name = { \ X ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, \ Xdiff -rc2 /usr/include/suntool/icon_load.h suntool/icon_load.h X*** /usr/include/suntool/icon_load.h Sat Apr 9 10:00:29 1988 X--- suntool/icon_load.h Sat Jan 21 14:44:17 1989 X*************** X*** 130,138 **** X typedef icon_header_object *icon_header_handle; X X! extern int icon_load(); X! extern int icon_init_from_pr(); X! extern struct pixrect *icon_load_mpr(); X! extern int icon_read_pr(); X! extern FILE *icon_open_header(); X X #endif X--- 130,139 ---- X typedef icon_header_object *icon_header_handle; X X! extern int icon_load(struct icon *, char *, char *); X! extern int icon_init_from_pr(struct icon *, struct pixrect *); X! extern struct pixrect *icon_load_mpr(char *, char *); X! extern int icon_read_pr(FILE *, icon_header_handle, X! struct pixrect *); X! extern FILE *icon_open_header(char *, char *, icon_header_handle); X X #endif Xdiff -rc2 /usr/include/suntool/image.h suntool/image.h X*** /usr/include/suntool/image.h Sat Apr 9 10:01:13 1988 X--- suntool/image.h Fri Jul 28 18:05:36 1989 X*************** X*** 65,69 **** X /***********************************************************************/ X X! typedef caddr_t Image; X X #define IMAGE_NULL ((Image)0) X--- 65,69 ---- X /***********************************************************************/ X X! typedef void * Image; X X #define IMAGE_NULL ((Image)0) X*************** X*** 75,79 **** X /* X extern Image image_create(av_list); X! extern caddr_t image_get(image|image_item, attr{, data}); X extern int image_set(image|image_item, attr{, data}, value); X extern void image_destroy(image|image_item); X--- 75,79 ---- X /* X extern Image image_create(av_list); X! extern void * image_get(image|image_item, attr{, data}); X extern int image_set(image|image_item, attr{, data}, value); X extern void image_destroy(image|image_item); X*************** X*** 81,89 **** X */ X X! extern Image image_create(); X! extern caddr_t image_get(); X! extern int image_set(); X! extern void image_destroy(); X! extern void image_render(); X X /***********************************************************************/ X--- 81,89 ---- X */ X X! extern Image image_create(...); X! extern void * image_get(struct image *, struct image * ...); X! extern int image_set(struct image * ...); X! extern void image_destroy(struct image *); X! extern void image_render(struct image *, struct image * ...); X X /***********************************************************************/ Xdiff -rc2 /usr/include/suntool/menu.h suntool/menu.h X*** /usr/include/suntool/menu.h Sat Apr 9 10:00:08 1988 X--- suntool/menu.h Fri Jul 28 18:05:45 1989 X*************** X*** 47,55 **** X #define MENU_IMAGESTRING 0x00 /* imagedata is char * */ X #define MENU_GRAPHIC 0x01 /* imagedata is pixrect * */ X! caddr_t m_imagedata; /* pointer to display data for header */ X int m_itemcount; /* number of menuitems in m_items */ X struct menuitem *m_items; /* array of menuitems */ X struct menu *m_next; /* link to another menu */ X! caddr_t m_data; /* menu private data (initialize to 0)*/ X }; X X--- 47,55 ---- X #define MENU_IMAGESTRING 0x00 /* imagedata is char * */ X #define MENU_GRAPHIC 0x01 /* imagedata is pixrect * */ X! void * m_imagedata; /* pointer to display data for header */ X int m_itemcount; /* number of menuitems in m_items */ X struct menuitem *m_items; /* array of menuitems */ X struct menu *m_next; /* link to another menu */ X! void * m_data; /* menu private data (initialize to 0)*/ X }; X X*************** X*** 56,61 **** X struct menuitem { X int mi_imagetype; /* interpretation of mi_imagedata */ X! caddr_t mi_imagedata; /* pointer to display data for item */ X! caddr_t mi_data; /* item specific data */ X }; X X--- 56,61 ---- X struct menuitem { X int mi_imagetype; /* interpretation of mi_imagedata */ X! void * mi_imagedata; /* pointer to display data for item */ X! void * mi_data; /* item specific data */ X }; X X*************** X*** 68,74 **** X }; X X- extern struct menuitem *menu_display(); X- X- #ifdef cplus X /* X * C Library routines that implement this menu interface. X--- 68,71 ---- X*************** X*** 75,83 **** X */ X X! struct menuitem *menu_display(struct menu **menuptr, X! struct inputevent *event, int iowindowfd); X! void menu_prompt(struct prompt *prompt, X! struct inputevent *event, int iowindowfd); X! X! #endif X! X--- 72,75 ---- X */ X X! struct menuitem *menu_display(struct menu **, struct inputevent *, int); X! void menu_prompt(struct prompt *, struct inputevent *, int); Xdiff -rc2 /usr/include/suntool/msgsw.h suntool/msgsw.h X*** /usr/include/suntool/msgsw.h Sat Apr 9 10:00:08 1988 X--- suntool/msgsw.h Fri Jan 20 21:52:32 1989 X*************** X*** 23,29 **** X #define MSGSW_NULL ((Msgsw *)0) X X- extern Msgsw *msgsw_create(); X- X- #ifdef cplus X /* X * C Library routines specifically related to msg subwindow functions. X--- 23,26 ---- X*************** X*** 33,52 **** X * Empty subwindow operations. X */ X- Msgsw *msgsw_create(struct tool *tool, char *name, short width, height, X- char *string, struct pixfont *font); X- void msgsw_setstring(Msgsw *msgsw, char *string); X- void msgsw_display(Msgsw *msgsw); X- void msgsw_done(Msgsw *msgsw); X X! /* X! * Obsolete (but implemented) operations: X! */ X! struct msgsubwindow *msgsw_init( X! int windowfd, char *string, struct pixfont *font); X! struct toolsw *msgsw_createtoolsubwindow( X! struct tool *tool, char *name, short width, height, X! char *string, struct pixfont *font); X! void msgsw_handlesigwinch(struct msgsubwindow *msgsw); X! #endif X X /* X--- 30,39 ---- X * Empty subwindow operations. X */ X X! extern Msgsw *msgsw_create(struct tool *, char *, short, short, char *, X! struct pixfont *); X! void msgsw_setstring(Msgsw *, char *); X! void msgsw_display(Msgsw *); X! void msgsw_done(Msgsw *); X X /* X*************** X*** 53,58 **** X * Obsolete (but implemented) operations: X */ X! extern struct msgsubwindow *msgsw_init(); X! extern int msgsw_handlesigwinch(); X! extern struct toolsw *msgsw_createtoolsubwindow(); X! X--- 40,45 ---- X * Obsolete (but implemented) operations: X */ X! struct msgsubwindow *msgsw_init(int, char *, struct pixfont *); X! struct toolsw *msgsw_createtoolsubwindow(struct tool *, char *, short, short, X! char *, struct pixfont *); X! void msgsw_handlesigwinch(struct msgsubwindow *); Xdiff -rc2 /usr/include/suntool/panel.h suntool/panel.h X*** /usr/include/suntool/panel.h Sat Apr 9 10:01:24 1988 X--- suntool/panel.h Fri Jul 28 21:56:21 1989 X*************** X*** 11,14 **** X--- 11,17 ---- X X #include <sunwindow/attr.h> X+ # ifndef tool_struct_DEFINED X+ #include <suntool/tool_struct.h> X+ # endif X X /***********************************************************************/ X*************** X*** 33,41 **** X X /* new attributes should start at PANEL_LAST_ATTR + 1 */ X- #ifdef ecd.color X #define PANEL_LAST_ATTR 127 X- #else X- #define PANEL_LAST_ATTR 125 X- #endif X X typedef enum { X--- 36,40 ---- X*************** X*** 183,191 **** X /* pixwin pointers */ X PANEL_PIXWIN = PANEL_ATTR(ATTR_PIXWIN_PTR, 111), X- #ifdef ecd.color X /* color panel item attributes */ X PANEL_ITEM_COLOR = PANEL_ATTR(ATTR_INT,126), X PANEL_PAINT_PIXWIN = PANEL_ATTR(ATTR_PIXWIN_PTR,127), X- #endif X X /* opaque pointers */ X--- 182,188 ---- X*************** X*** 236,242 **** X /***********************************************************************/ X X! typedef caddr_t Panel; X! typedef caddr_t Panel_item; X! typedef caddr_t Panel_attribute_value; X X /***********************************************************************/ X--- 233,239 ---- X /***********************************************************************/ X X! typedef void * Panel; X! typedef void * Panel_item; X! typedef void * Panel_attribute_value; X X /***********************************************************************/ X*************** X*** 247,251 **** X #define PANEL panel_window_object X #define PANEL_TYPE ATTR_PKG_PANEL X! extern caddr_t panel_window_object(); X X /* for PANEL_CYCLE choice item */ X--- 244,248 ---- X #define PANEL panel_window_object X #define PANEL_TYPE ATTR_PKG_PANEL X! extern void * panel_window_object(Window); X X /* for PANEL_CYCLE choice item */ X*************** X*** 253,283 **** X X /* Panel routines */ X! extern Panel panel_begin(); X! extern caddr_t panel_advance_caret(); X! extern caddr_t panel_backup_caret(); X X /* Panel & Panel_item routines */ X! extern Panel_attribute_value panel_get(); X! extern int panel_set(); X! extern panel_paint(); X! extern panel_free(); X! extern panel_destroy_item(); X X /* event mapping routines */ X! extern panel_handle_event(); X! extern panel_default_handle_event(); X! extern panel_cancel(); X X /* Panel_item action routines */ X! extern panel_begin_preview(); X! extern panel_update_preview(); X! extern panel_accept_preview(); X! extern panel_cancel_preview(); X! extern panel_accept_menu(); X! extern panel_accept_key(); X X /* utilities */ X! extern Panel_setting panel_text_notify(); X! extern struct pixrect *panel_button_image(); X X /* routines to translate event coordinates X--- 250,280 ---- X X /* Panel routines */ X! extern Panel panel_begin(Tool *); X! extern void * panel_advance_caret(Panel_item); X! extern void * panel_backup_caret(Panel_item); X X /* Panel & Panel_item routines */ X! extern Panel_attribute_value panel_get(Panel, Panel_attribute); X! extern int panel_set(Panel ...); X! extern panel_paint(Panel, Panel_setting); X! extern panel_free(Panel); X! extern panel_destroy_item(Panel_item); X X /* event mapping routines */ X! extern panel_handle_event(Panel_item, Event *); X! extern panel_default_handle_event(Panel_item, Event *); X! extern panel_cancel(Panel_item, Event *); X X /* Panel_item action routines */ X! extern panel_begin_preview(Panel_item, Event *); X! extern panel_update_preview(Panel_item, Event *); X! extern panel_accept_preview(Panel_item, Event *); X! extern panel_cancel_preview(Panel_item, Event *); X! extern panel_accept_menu(Panel_item, Event *); X! extern panel_accept_key(Panel_item, Event *); X X /* utilities */ X! extern Panel_setting panel_text_notify(Panel_item, Event *); X! extern struct pixrect *panel_button_image(Panel, char *, int, Pixfont *); X X /* routines to translate event coordinates X*************** X*** 286,291 **** X * releases. X */ X! extern struct inputevent *panel_window_event(); X! extern struct inputevent *panel_event(); X X X--- 283,288 ---- X * releases. X */ X! extern struct inputevent *panel_window_event(Panel_item, Event *); X! extern struct inputevent *panel_event(Panel_item, Event *); X X X*************** X*** 294,305 **** X /***********************************************************************/ X X! extern Panel_item panel_create_item(); X! extern Panel_item panel_button(); X! extern Panel_item panel_choice(); X! extern Panel_item panel_message(); X! extern Panel_item panel_slider(); X! extern Panel_item panel_text(); X! extern Panel_item panel_line(); X X /***********************************************************************/ X /* Values for type argument to panel_create_item() */ X--- 291,305 ---- X /***********************************************************************/ X X! typedef void *panel_item_handle; X X+ extern Panel_item panel_create_item(Panel, X+ Panel_item (*)(panel_item_handle ...) ...); X+ extern Panel_item panel_button(panel_item_handle ...); X+ extern Panel_item panel_choice(panel_item_handle ...); X+ extern Panel_item panel_message(panel_item_handle ...); X+ extern Panel_item panel_slider(panel_item_handle ...); X+ extern Panel_item panel_text(panel_item_handle ...); X+ extern Panel_item panel_line(panel_item_handle ...); X+ X /***********************************************************************/ X /* Values for type argument to panel_create_item() */ X*************** X*** 342,347 **** X X /* functions for backward compatability */ X! extern struct toolsw *panel_create(); X! extern caddr_t *panel_make_list(); X X /* PANEL_CU() is provided for backward X--- 342,347 ---- X X /* functions for backward compatability */ X! extern struct toolsw *panel_create(Tool * ...); X! extern void * *panel_make_list(); X X /* PANEL_CU() is provided for backward Xdiff -rc2 /usr/include/suntool/scrollbar.h suntool/scrollbar.h X*** /usr/include/suntool/scrollbar.h Sat Apr 9 09:59:46 1988 X--- suntool/scrollbar.h Thu Jul 27 23:13:00 1989 X*************** X*** 95,99 **** X #define SCROLL_EAST SCROLL_MAX X X! typedef caddr_t Scrollbar; X X /****************************************************************************/ X--- 95,99 ---- X #define SCROLL_EAST SCROLL_MAX X X! typedef void * Scrollbar; X X /****************************************************************************/ X*************** X*** 137,141 **** X long unsigned bar_length; X long unsigned bar_offset; X! caddr_t object; X Scrollbar_setting direction; X Scroll_motion motion; X--- 137,141 ---- X long unsigned bar_length; X long unsigned bar_offset; X! void * object; X Scrollbar_setting direction; X Scroll_motion motion; X*************** X*** 146,163 **** X /****************************************************************************/ X X! extern Scrollbar scrollbar_build(); /*old style: should remove */ X! extern Scrollbar scrollbar_create(); X! extern int scrollbar_destroy(); X! extern caddr_t scrollbar_get(); X! extern int scrollbar_set(); X X! extern int scrollbar_paint(); X! extern int scrollbar_paint_clear(); X! extern int scrollbar_paint_all(); X! extern int scrollbar_paint_all_clear(); X! extern int scrollbar_paint_bubble(); X! extern int scrollbar_clear_bubble(); X X! extern void scrollbar_scroll_to(); X X #endif X--- 146,163 ---- X /****************************************************************************/ X X! extern Scrollbar scrollbar_build(...); /*old style: should remove */ X! extern Scrollbar scrollbar_create(...); X! extern int scrollbar_destroy(Scrollbar); X! extern void * scrollbar_get(Scrollbar, Scrollbar_attribute); X! extern int scrollbar_set(Scrollbar ...); X X! extern int scrollbar_paint(Scrollbar); X! extern int scrollbar_paint_clear(Scrollbar); X! extern int scrollbar_paint_all(struct pixwin *); X! extern int scrollbar_paint_all_clear(struct pixwin *); X! extern int scrollbar_paint_bubble(Scrollbar); X! extern int scrollbar_clear_bubble(Scrollbar); X X! extern void scrollbar_scroll_to(Scrollbar, long); X X #endif Xdiff -rc2 /usr/include/suntool/selection.h suntool/selection.h X*** /usr/include/suntool/selection.h Sat Apr 9 10:00:19 1988 X--- suntool/selection.h Fri Jul 28 18:06:00 1989 X*************** X*** 10,14 **** X sel_itembytes, X sel_pubflags; X! caddr_t sel_privdata; X }; X X--- 10,14 ---- X sel_itembytes, X sel_pubflags; X! void * sel_privdata; X }; X X*************** X*** 32,57 **** X #define SEL_SECONDARY 0X02 /* Secondary selection */ X X- #ifdef cplus X /* X * Create the selection X */ X! void selection_set(struct selection *sel, int (*sel_write)(), (*sel_clear)(), X! windowfd); X /* X * Fetch the selection X */ X! void selection_get(int (*sel_read)(), windowfd); X /* X * Clear the selection X */ X! void selection_clear(windowfd); X /* X * Write the bits of the selection X */ X! void sel_write(struct selection *sel, FILE *file); X /* X * Read the bits of the selection X */ X! void sel_read(struct selection *sel, FILE *file); X /* X * As the owner of the selection you should clear your hiliting because X--- 32,55 ---- X #define SEL_SECONDARY 0X02 /* Secondary selection */ X X /* X * Create the selection X */ X! void selection_set(struct selection *, int (*)(...), int (*)(...), int); X /* X * Fetch the selection X */ X! void selection_get(int (*)(...), int); X /* X * Clear the selection X */ X! void selection_clear(int); X /* X * Write the bits of the selection X */ X! void sel_write(struct selection *, FILE *); X /* X * Read the bits of the selection X */ X! void sel_read(struct selection *, FILE *); X /* X * As the owner of the selection you should clear your hiliting because X*************** X*** 58,62 **** X * you are no longer the selection owner. X */ X! void sel_clear(struct selection *sel, int windowfd); X! #endif cplus X! X--- 56,58 ---- X * you are no longer the selection owner. X */ X! void sel_clear(struct selection *, int); Xdiff -rc2 /usr/include/suntool/selection_svc.h suntool/selection_svc.h X*** /usr/include/suntool/selection_svc.h Sat Apr 9 10:00:20 1988 X--- suntool/selection_svc.h Fri Jul 28 18:03:20 1989 X*************** X*** 129,133 **** X X typedef struct { X! Seln_result (*consume)(); X char *context; X } Seln_requester; X--- 129,133 ---- X X typedef struct { X! Seln_result (*consume)(...); X char *context; X } Seln_requester; X*************** X*** 157,168 **** X X X! Seln_client seln_create(); X! void seln_destroy(); X X Seln_function_buffer X! seln_inform(); X X X! Seln_holder seln_inquire(); X X Seln_holders_all X--- 157,168 ---- X X X! Seln_client seln_create(void (*)(...), Seln_result (*)(...), char *); X! void seln_destroy(char *); X X Seln_function_buffer X! seln_inform(Seln_client, Seln_function, int); X X X! Seln_holder seln_inquire(Seln_rank); X X Seln_holders_all X*************** X*** 169,186 **** X seln_inquire_all(); X X! Seln_rank seln_acquire(); X X! Seln_request *seln_ask(); X X! Seln_response seln_figure_response(); X X! Seln_result seln_done(), X! seln_functions_state(), X! seln_hold_file(), X! seln_query(), X! seln_request(), X! seln_stop(); X X! void seln_report_event(), X seln_yield_all(); X X--- 169,186 ---- X seln_inquire_all(); X X! Seln_rank seln_acquire(Seln_client, Seln_rank); X X! Seln_request *seln_ask(Seln_holder ...); X X! Seln_response seln_figure_response(Seln_function_buffer *, Seln_holder **); X X! Seln_result seln_done(Seln_client, Seln_rank), X! seln_functions_state(Seln_functions_state), X! seln_hold_file(Seln_rank, char *), X! seln_query(Seln_holder *, Seln_result (*)(...), char * ...), X! seln_request(Seln_holder *, Seln_request *), X! seln_stop(int); X X! void seln_report_event(Seln_client, struct inputevent *), X seln_yield_all(); X X*************** X*** 187,201 **** X /* possibly useful predicates */ X X! int seln_get_function_state(); X X #define seln_holder_is_me(client, holder) \ X (seln_holder_same_client(client, holder)) X! int seln_holder_same_client(), X! seln_holder_same_process(), X! seln_secondary_made(), X! seln_secondary_exists(), SHAR_EOF echo "End of part 1" echo "File PATCH-suntool is continued in part 2" echo "2" > s2_seq_.tmp exit 0