scsh-checkins
[Top] [All Lists]

[Scsh-checkins] CVS: scx/c/xlib Makefile,1.3,1.4 color.c,1.5,1.6 colorma

To: scsh-checkins@lists.sourceforge.net
Subject: [Scsh-checkins] CVS: scx/c/xlib Makefile,1.3,1.4 color.c,1.5,1.6 colormap.c,1.4,1.5 cursor.c,1.3,1.4 display.c,1.7,1.8 event.c,1.5,1.6 font.c,1.3,1.4 gcontext.c,1.6,1.7 graphics.c,1.4,1.5 main.c,1.4,1.5 pixel.c,1.3,1.4 pixmap.c,1.4,1.5 property.c,1.5,1.6 test,1.3,1.4 text.c,1.3,1.4 type.c,1.10,1.11 window.c,1.8,1.9 wm.c,1.3,1.4 xlib.h,1.7,1.8
From: David Frese <frese@users.sourceforge.net>
Date: Tue, 31 Jul 2001 07:51:24 -0700
List-id: <scsh-checkins.lists.sourceforge.net>
Sender: scsh-checkins-admin@lists.sourceforge.net
Update of /cvsroot/scsh/scx/c/xlib
In directory usw-pr-cvs1:/tmp/cvs-serv20951

Modified Files:
        Makefile color.c colormap.c cursor.c display.c event.c font.c 
        gcontext.c graphics.c main.c pixel.c pixmap.c property.c test 
        text.c type.c window.c wm.c xlib.h 
Log Message:
Added suffix "scx_" to all functions and macros. Added initialization
for all GC_PROTECTed variables.


Index: Makefile
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** Makefile    2001/07/19 15:29:18     1.3
--- Makefile    2001/07/31 14:51:21     1.4
***************
*** 1,3 ****
! OBJECTS = main.o display.o window.o type.o color.o colormap.o pixel.o 
gcontext.o event.o pixmap.o graphics.o font.o
  
  $(OBJECTS): xlib.h
--- 1,3 ----
! OBJECTS = main.o display.o window.o type.o color.o colormap.o pixel.o 
gcontext.o event.o pixmap.o graphics.o font.o cursor.o text.o property.o wm.o
  
  $(OBJECTS): xlib.h

Index: color.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/color.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** color.c     2001/06/27 13:44:47     1.5
--- color.c     2001/07/31 14:51:21     1.6
***************
*** 2,6 ****
  #include "scheme48.h"
  
! s48_value Create_Color(s48_value r, s48_value g, s48_value b) {
    s48_value col = S48_MAKE_VALUE(XColor);
    XColor* c = S48_EXTRACT_VALUE_POINTER(col, XColor);
--- 2,6 ----
  #include "scheme48.h"
  
! s48_value scx_Create_Color(s48_value r, s48_value g, s48_value b) {
    s48_value col = S48_MAKE_VALUE(XColor);
    XColor* c = S48_EXTRACT_VALUE_POINTER(col, XColor);
***************
*** 12,16 ****
  }
  
! s48_value Int_Extract_RGB_Values(XColor col) {
    s48_value res = S48_NULL;
    S48_DECLARE_GC_PROTECT(1);
--- 12,16 ----
  }
  
! s48_value scx_Int_Extract_RGB_Values(XColor col) {
    s48_value res = S48_NULL;
    S48_DECLARE_GC_PROTECT(1);
***************
*** 25,46 ****
  }
  
! s48_value Extract_RGB_Values(s48_value Xcolor) {
!   return Int_Extract_RGB_Values(*EXTRACT_COLOR(Xcolor));
  }
  
! s48_value Query_Color (s48_value Xcolormap, s48_value Xpixel, 
!                      s48_value Xdisplay) {
    XColor c;
    
!   c.pixel = EXTRACT_PIXEL(Xpixel);
!   XQueryColor(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap), &c);
    
!   return Int_Extract_RGB_Values(c);
  }
  
  
! s48_value Query_Colors(s48_value Xcolormap, s48_value Xpixels,
!                      s48_value Xdisplay) {
!   s48_value result;
    S48_DECLARE_GC_PROTECT(1);
  
--- 25,48 ----
  }
  
! s48_value scx_Extract_RGB_Values(s48_value Xcolor) {
!   return scx_Int_Extract_RGB_Values(*SCX_EXTRACT_COLOR(Xcolor));
  }
  
! s48_value scx_Query_Color (s48_value Xcolormap, s48_value Xpixel, 
!                          s48_value Xdisplay) {
    XColor c;
    
!   c.pixel = SCX_EXTRACT_PIXEL(Xpixel);
!   XQueryColor(SCX_EXTRACT_DISPLAY(Xdisplay), 
!             SCX_EXTRACT_COLORMAP(Xcolormap), 
!             &c);
    
!   return scx_Int_Extract_RGB_Values(c);
  }
  
  
! s48_value scx_Query_Colors(s48_value Xcolormap, s48_value Xpixels,
!                          s48_value Xdisplay) {
!   s48_value result = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
  
***************
*** 50,61 ****
  
    for (i=0; i < n; i++)
!     p[i].pixel = EXTRACT_PIXEL(S48_VECTOR_REF(Xpixels, i));
  
!   XQueryColors( EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap), p, n 
);
  
    S48_GC_PROTECT_1(result);
    result = s48_make_vector(n, S48_FALSE);
    for (i=0; i < n; i++)
!     S48_VECTOR_SET(result, i, Int_Extract_RGB_Values(p[i]));
  
    S48_GC_UNPROTECT();
--- 52,64 ----
  
    for (i=0; i < n; i++)
!     p[i].pixel = SCX_EXTRACT_PIXEL(S48_VECTOR_REF(Xpixels, i));
  
!   XQueryColors( SCX_EXTRACT_DISPLAY(Xdisplay), 
!               SCX_EXTRACT_COLORMAP(Xcolormap), p, n );
  
    S48_GC_PROTECT_1(result);
    result = s48_make_vector(n, S48_FALSE);
    for (i=0; i < n; i++)
!     S48_VECTOR_SET(result, i, scx_Int_Extract_RGB_Values(p[i]));
  
    S48_GC_UNPROTECT();
***************
*** 63,68 ****
  }
  
! s48_value Lookup_Color(s48_value Xcolormap, s48_value Xdisplay,
!                      s48_value color_name) {
    XColor visual, exact;
    
--- 66,71 ----
  }
  
! s48_value scx_Lookup_Color(s48_value Xcolormap, s48_value Xdisplay,
!                          s48_value color_name) {
    XColor visual, exact;
    
***************
*** 70,78 ****
    S48_DECLARE_GC_PROTECT(1);
  
!   if (XLookupColor( EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap), 
                    s48_extract_string(color_name), &visual, &exact )) {
      S48_GC_PROTECT_1(res);
!     res = s48_cons( Int_Extract_RGB_Values( visual ),
!                   Int_Extract_RGB_Values( exact ) );
    }
  
--- 73,82 ----
    S48_DECLARE_GC_PROTECT(1);
  
!   if (XLookupColor( SCX_EXTRACT_DISPLAY(Xdisplay), 
!                   SCX_EXTRACT_COLORMAP(Xcolormap), 
                    s48_extract_string(color_name), &visual, &exact )) {
      S48_GC_PROTECT_1(res);
!     res = s48_cons( scx_Int_Extract_RGB_Values( visual ),
!                   scx_Int_Extract_RGB_Values( exact ) );
    }
  
***************
*** 81,89 ****
  }
  
! void s48_init_color(void) {
!   S48_EXPORT_FUNCTION(Create_Color);
!   S48_EXPORT_FUNCTION(Extract_RGB_Values);
!   S48_EXPORT_FUNCTION(Query_Color);
!   S48_EXPORT_FUNCTION(Query_Colors);
!   S48_EXPORT_FUNCTION(Lookup_Color);
  }
--- 85,93 ----
  }
  
! void scx_init_color(void) {
!   S48_EXPORT_FUNCTION(scx_Create_Color);
!   S48_EXPORT_FUNCTION(scx_Extract_RGB_Values);
!   S48_EXPORT_FUNCTION(scx_Query_Color);
!   S48_EXPORT_FUNCTION(scx_Query_Colors);
!   S48_EXPORT_FUNCTION(scx_Lookup_Color);
  }

Index: colormap.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/colormap.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** colormap.c  2001/06/27 13:44:47     1.4
--- colormap.c  2001/07/31 14:51:21     1.5
***************
*** 2,38 ****
  #include "scheme48.h"
  
! s48_value Free_Colormap (s48_value Xcolormap, s48_value Xdisplay) {
!   XFreeColormap(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap));
    return S48_UNSPECIFIC;
  }
  
! s48_value Alloc_Color(s48_value Xcolormap, s48_value Xcolor, 
!                     s48_value Xdisplay) {
!   XColor* cp = EXTRACT_COLOR(Xcolor);
  
!   if (!XAllocColor(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap), 
cp))
      return S48_FALSE;
    else 
!     return ENTER_PIXEL(cp->pixel);
  }
  
! s48_value Alloc_Named_Color(s48_value Xcolormap, s48_value color_name,
!                           s48_value Xdisplay) {
    XColor screen, exact;
    int r;
!   s48_value ret;
  
    S48_DECLARE_GC_PROTECT(1);
  
!   r = XAllocNamedColor (EXTRACT_DISPLAY(Xdisplay), 
EXTRACT_COLORMAP(Xcolormap), 
                        s48_extract_string(color_name),
                        &screen, &exact);
  
!   if (!r) ret = S48_FALSE;
!   else {
      S48_GC_PROTECT_1(ret);
!     ret = s48_cons(Int_Extract_RGB_Values(exact), S48_NULL);
!     ret = s48_cons(Int_Extract_RGB_Values(screen), ret);
!     ret = s48_cons(ENTER_PIXEL(screen.pixel), ret);
    }
  
--- 2,40 ----
  #include "scheme48.h"
  
! s48_value scx_Free_Colormap (s48_value Xcolormap, s48_value Xdisplay) {
!   XFreeColormap(SCX_EXTRACT_DISPLAY(Xdisplay), 
!               SCX_EXTRACT_COLORMAP(Xcolormap));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Alloc_Color(s48_value Xcolormap, s48_value Xcolor, 
!                         s48_value Xdisplay) {
!   XColor* cp = SCX_EXTRACT_COLOR(Xcolor);
  
!   if (!XAllocColor(SCX_EXTRACT_DISPLAY(Xdisplay), 
!                  SCX_EXTRACT_COLORMAP(Xcolormap), cp))
      return S48_FALSE;
    else 
!     return SCX_ENTER_PIXEL(cp->pixel);
  }
  
! s48_value scx_Alloc_Named_Color(s48_value Xcolormap, s48_value color_name,
!                               s48_value Xdisplay) {
    XColor screen, exact;
    int r;
!   s48_value ret = S48_FALSE;
  
    S48_DECLARE_GC_PROTECT(1);
  
!   r = XAllocNamedColor (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                       SCX_EXTRACT_COLORMAP(Xcolormap), 
                        s48_extract_string(color_name),
                        &screen, &exact);
  
!   if (r) {
      S48_GC_PROTECT_1(ret);
!     ret = s48_cons(scx_Int_Extract_RGB_Values(exact), S48_NULL);
!     ret = s48_cons(scx_Int_Extract_RGB_Values(screen), ret);
!     ret = s48_cons(SCX_ENTER_PIXEL(screen.pixel), ret);
    }
  
***************
*** 42,48 ****
  
  
! void s48_init_colormap(void) {
!   S48_EXPORT_FUNCTION(Free_Colormap);
!   S48_EXPORT_FUNCTION(Alloc_Color);
!   S48_EXPORT_FUNCTION(Alloc_Named_Color);
  }
--- 44,50 ----
  
  
! void scx_init_colormap(void) {
!   S48_EXPORT_FUNCTION(scx_Free_Colormap);
!   S48_EXPORT_FUNCTION(scx_Alloc_Color);
!   S48_EXPORT_FUNCTION(scx_Alloc_Named_Color);
  }

Index: cursor.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/cursor.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** cursor.c    2001/07/30 14:11:41     1.3
--- cursor.c    2001/07/31 14:51:21     1.4
***************
*** 2,52 ****
  #include "scheme48.h"
  
! s48_value Free_Cursor(s48_value Xdisplay, s48_value Xcursor) {
!   XFreeCursor(EXTRACT_DISPLAY(Xdisplay),
!             EXTRACT_CURSOR(Xcursor));
    return S48_UNSPECIFIC;
  }
  
! s48_value Create_Pixmap_Cursor(s48_value Xdisplay,
                                   s48_value src, s48_value mask, s48_value x,
                                   s48_value y, s48_value foreground, 
                                   s48_value background) {
!   Cursor xc = XCreatePixmapCursor(EXTRACT_DISPLAY(Xdisplay),
!                                 EXTRACT_PIXMAP(src),
!                                 EXTRACT_PIXMAP(mask),
!                                 EXTRACT_COLOR(foreground),
!                                 EXTRACT_COLOR(background),
                                  s48_extract_integer(x),
                                  s48_extract_integer(y));
!   return ENTER_CURSOR(xc);
  }
  
! s48_value Create_Glyph_Cursor(s48_value Xdisplay,
                                  s48_value src, s48_value srcc,
                                  s48_value mask, s48_value maskc,
                                  s48_value foreground, s48_value background) {
!   Cursor xc = XCreateGlyphCursor(EXTRACT_DISPLAY(Xdisplay),
!                                EXTRACT_FONT(src),
!                                EXTRACT_FONT(mask),
                                 s48_extract_integer(srcc),
                                 s48_extract_integer(maskc),
!                                EXTRACT_COLOR(foreground),
!                                EXTRACT_COLOR(background));
!   return ENTER_CURSOR(xc);
  }
  
! s48_value Recolor_Cursor(s48_value Xdisplay, s48_value Xcursor,
                             s48_value f, s48_value b) {
!   XRecolorCursor(EXTRACT_DISPLAY(Xdisplay),
!                EXTRACT_CURSOR(Xcursor),
!                EXTRACT_COLOR(f),
!                EXTRACT_COLOR(b));
    return S48_UNSPECIFIC;
  }
  
! s48_init_cursor() {
!   S48_EXPORT_FUNCTION(Free_Cursor);
!   S48_EXPORT_FUNCTION(Create_Pixmap_Cursor);
!   S48_EXPORT_FUNCTION(Create_Glyph_Cursor);
!   S48_EXPORT_FUNCTION(Recolor_Cursor);
  }
--- 2,52 ----
  #include "scheme48.h"
  
! s48_value scx_Free_Cursor(s48_value Xdisplay, s48_value Xcursor) {
!   XFreeCursor(SCX_EXTRACT_DISPLAY(Xdisplay),
!             SCX_EXTRACT_CURSOR(Xcursor));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Create_Pixmap_Cursor(s48_value Xdisplay,
                                   s48_value src, s48_value mask, s48_value x,
                                   s48_value y, s48_value foreground, 
                                   s48_value background) {
!   Cursor xc = XCreatePixmapCursor(SCX_EXTRACT_DISPLAY(Xdisplay),
!                                 SCX_EXTRACT_PIXMAP(src),
!                                 SCX_EXTRACT_PIXMAP(mask),
!                                 SCX_EXTRACT_COLOR(foreground),
!                                 SCX_EXTRACT_COLOR(background),
                                  s48_extract_integer(x),
                                  s48_extract_integer(y));
!   return SCX_ENTER_CURSOR(xc);
  }
  
! s48_value scx_Create_Glyph_Cursor(s48_value Xdisplay,
                                  s48_value src, s48_value srcc,
                                  s48_value mask, s48_value maskc,
                                  s48_value foreground, s48_value background) {
!   Cursor xc = XCreateGlyphCursor(SCX_EXTRACT_DISPLAY(Xdisplay),
!                                SCX_EXTRACT_FONT(src),
!                                SCX_EXTRACT_FONT(mask),
                                 s48_extract_integer(srcc),
                                 s48_extract_integer(maskc),
!                                SCX_EXTRACT_COLOR(foreground),
!                                SCX_EXTRACT_COLOR(background));
!   return SCX_ENTER_CURSOR(xc);
  }
  
! s48_value scx_Recolor_Cursor(s48_value Xdisplay, s48_value Xcursor,
                             s48_value f, s48_value b) {
!   XRecolorCursor(SCX_EXTRACT_DISPLAY(Xdisplay),
!                SCX_EXTRACT_CURSOR(Xcursor),
!                SCX_EXTRACT_COLOR(f),
!                SCX_EXTRACT_COLOR(b));
    return S48_UNSPECIFIC;
  }
  
! void scx_init_cursor(void) {
!   S48_EXPORT_FUNCTION(scx_Free_Cursor);
!   S48_EXPORT_FUNCTION(scx_Create_Pixmap_Cursor);
!   S48_EXPORT_FUNCTION(scx_Create_Glyph_Cursor);
!   S48_EXPORT_FUNCTION(scx_Recolor_Cursor);
  }

Index: display.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/display.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** display.c   2001/07/30 14:13:03     1.7
--- display.c   2001/07/31 14:51:21     1.8
***************
*** 4,26 ****
  
  // Open_Display(name) name should be a string or S48_FALSE (=> Null)
! s48_value Open_Display (s48_value name) {
    char* cname = (char*)0;
    if (!S48_FALSE_P(name))
      cname = s48_extract_string(name);
  
!   return ENTER_DISPLAY(XOpenDisplay(cname));
  }
  
  // Close_Display( Xdisplay ) Xdisplay should be a pointer to the X-lib struct 
  // cast into a Scheme-Integer.
! s48_value Close_Display(s48_value Xdisplay) {
!   XCloseDisplay(EXTRACT_DISPLAY(Xdisplay));
    return S48_UNSPECIFIC;
  }
  
! // This funktion selects the fd field of the Display-struct. One shouldn't do
! // that usually, but we need it.
! s48_value Display_Message_fd(s48_value Xdisplay) {
!   int fd = ConnectionNumber(EXTRACT_DISPLAY(Xdisplay));
    /*  struct timeval timeout;
    fd_set fdset;
--- 4,25 ----
  
  // Open_Display(name) name should be a string or S48_FALSE (=> Null)
! s48_value scx_Open_Display (s48_value name) {
    char* cname = (char*)0;
    if (!S48_FALSE_P(name))
      cname = s48_extract_string(name);
  
!   return SCX_ENTER_DISPLAY(XOpenDisplay(cname));
  }
  
  // Close_Display( Xdisplay ) Xdisplay should be a pointer to the X-lib struct 
  // cast into a Scheme-Integer.
! s48_value scx_Close_Display(s48_value Xdisplay) {
!   XCloseDisplay(SCX_EXTRACT_DISPLAY(Xdisplay));
    return S48_UNSPECIFIC;
  }
  
! // This function returns the file destriptor of the message-channel.
! s48_value scx_Display_Message_fd(s48_value Xdisplay) {
!   int fd = ConnectionNumber(SCX_EXTRACT_DISPLAY(Xdisplay));
    /*  struct timeval timeout;
    fd_set fdset;
***************
*** 41,88 ****
  // The following procedure mainly wrap a corresponding XLib macro without 
  // underscores...
! s48_value Display_Default_Root_Window(s48_value Xdisplay) {
!   Window wnd = DefaultRootWindow(EXTRACT_DISPLAY(Xdisplay));
!   return ENTER_WINDOW(wnd);
  }
  
! s48_value Display_Default_Colormap(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    Colormap cmp = DefaultColormap(dpy, DefaultScreen(dpy));
!   return ENTER_COLORMAP(cmp);
  }
  
! s48_value Display_Default_Gcontext(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    GC gc = DefaultGC(dpy, DefaultScreen(dpy));
!   return ENTER_GCONTEXT(gc);
  }
  
! s48_value Display_Default_Depth(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    int depth = DefaultDepth(dpy, DefaultScreen(dpy));
    return s48_enter_integer(depth);
  }
  
! s48_value Display_Default_Screen_Number(s48_value Xdisplay) {
!   return s48_enter_integer(DefaultScreen(EXTRACT_DISPLAY(Xdisplay)));
  }
  
! s48_value Display_Cells(s48_value Xdisplay, s48_value ScrNum) {
    int num = (int)s48_extract_integer(ScrNum);
!   return s48_enter_integer(DisplayCells(EXTRACT_DISPLAY(Xdisplay), num));
  }
  
! s48_value Display_Planes(s48_value Xdisplay, s48_value ScrNum) {
    int num = (int)s48_extract_integer(ScrNum);
!   return s48_enter_integer(DisplayPlanes(EXTRACT_DISPLAY(Xdisplay), num));
  }
  
! s48_value Display_String(s48_value Xdisplay) {
!   char* s = DisplayString(EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_string(s);
  }
  
! s48_value Display_Vendor(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    char* s = ServerVendor(dpy);
    int i = VendorRelease(dpy);
--- 40,87 ----
  // The following procedure mainly wrap a corresponding XLib macro without 
  // underscores...
! s48_value scx_Display_Default_Root_Window(s48_value Xdisplay) {
!   Window wnd = DefaultRootWindow(SCX_EXTRACT_DISPLAY(Xdisplay));
!   return SCX_ENTER_WINDOW(wnd);
  }
  
! s48_value scx_Display_Default_Colormap(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    Colormap cmp = DefaultColormap(dpy, DefaultScreen(dpy));
!   return SCX_ENTER_COLORMAP(cmp);
  }
  
! s48_value scx_Display_Default_Gcontext(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    GC gc = DefaultGC(dpy, DefaultScreen(dpy));
!   return SCX_ENTER_GCONTEXT(gc);
  }
  
! s48_value scx_Display_Default_Depth(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    int depth = DefaultDepth(dpy, DefaultScreen(dpy));
    return s48_enter_integer(depth);
  }
  
! s48_value scx_Display_Default_Screen_Number(s48_value Xdisplay) {
!   return s48_enter_integer(DefaultScreen(SCX_EXTRACT_DISPLAY(Xdisplay)));
  }
  
! s48_value scx_Display_Cells(s48_value Xdisplay, s48_value ScrNum) {
    int num = (int)s48_extract_integer(ScrNum);
!   return s48_enter_integer(DisplayCells(SCX_EXTRACT_DISPLAY(Xdisplay), num));
  }
  
! s48_value scx_Display_Planes(s48_value Xdisplay, s48_value ScrNum) {
    int num = (int)s48_extract_integer(ScrNum);
!   return s48_enter_integer(DisplayPlanes(SCX_EXTRACT_DISPLAY(Xdisplay), num));
  }
  
! s48_value scx_Display_String(s48_value Xdisplay) {
!   char* s = DisplayString(SCX_EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_string(s);
  }
  
! s48_value scx_Display_Vendor(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    char* s = ServerVendor(dpy);
    int i = VendorRelease(dpy);
***************
*** 91,96 ****
  }
  
! s48_value Display_Protocol_Version(s48_value Xdisplay) {
! Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    int maj = ProtocolVersion(dpy);
    int min = ProtocolRevision(dpy);
--- 90,95 ----
  }
  
! s48_value scx_Display_Protocol_Version(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    int maj = ProtocolVersion(dpy);
    int min = ProtocolRevision(dpy);
***************
*** 99,180 ****
  }
  
! s48_value Display_Screen_Count(s48_value Xdisplay) {
!   int cnt = ScreenCount(EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_integer(cnt);
  }
  
  
! s48_value Display_Image_Byte_Order(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    return Bits_To_Symbols( (unsigned long)ImageByteOrder(dpy),
                          Byte_Order_Syms );
  }
  
! s48_value Display_Bitmap_Unit(s48_value Xdisplay) {
!   int bu = BitmapUnit(EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_integer(bu);
  }
  
! s48_value Display_Bitmap_Bit_Order(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    return Bits_To_Symbols( (unsigned long)BitmapBitOrder(dpy),
                          Byte_Order_Syms );
  }
  
! s48_value Display_Bitmap_Pad(s48_value Xdisplay) {
!   int bp = BitmapPad(EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_integer(bp);
  }
  
! s48_value Display_Width(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    return s48_enter_integer(DisplayWidth(dpy, DefaultScreen(dpy)));
  }
  
! s48_value Display_Height(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    return s48_enter_integer(DisplayHeight(dpy, DefaultScreen(dpy)));
  }
  
! s48_value Display_Width_Mm (s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    return s48_enter_integer(DisplayWidthMM(dpy, DefaultScreen(dpy)));
  }
  
! s48_value Display_Height_Mm (s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
    return s48_enter_integer(DisplayHeightMM(dpy, DefaultScreen(dpy)));
  }
  
! s48_value Display_Motion_Buffer_Size(s48_value Xdisplay) {
!   int mbs = XDisplayMotionBufferSize(EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_integer(mbs);
  }
  
! s48_value Display_Flush_Output (s48_value Xdisplay) {
!   XFlush (EXTRACT_DISPLAY(Xdisplay));
    return S48_UNSPECIFIC;
  }
  
! s48_value Display_Wait_Output (s48_value Xdisplay, s48_value discard) {
!   XSync (EXTRACT_DISPLAY(Xdisplay), !S48_FALSE_P(discard));
    return S48_UNSPECIFIC;
  }
  
! s48_value No_Op (s48_value Xdisplay) {
!   XNoOp(EXTRACT_DISPLAY(Xdisplay));
    return S48_UNSPECIFIC;
  }
  
! s48_value List_Depths (s48_value Xdisplay, s48_value scr) {
    int i, num;
    int* p;
!   s48_value ret;
    S48_DECLARE_GC_PROTECT(1);
  
!   p = XListDepths(EXTRACT_DISPLAY(Xdisplay), s48_extract_integer(scr), &num);
!   if (!p) 
!     ret = S48_FALSE;
!   else {
      S48_GC_PROTECT_1(ret);
      ret = s48_make_vector(num, S48_NULL);
--- 98,178 ----
  }
  
! s48_value scx_Display_Screen_Count(s48_value Xdisplay) {
!   int cnt = ScreenCount(SCX_EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_integer(cnt);
  }
  
  
! s48_value scx_Display_Image_Byte_Order(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    return Bits_To_Symbols( (unsigned long)ImageByteOrder(dpy),
                          Byte_Order_Syms );
  }
  
! s48_value scx_Display_Bitmap_Unit(s48_value Xdisplay) {
!   int bu = BitmapUnit(SCX_EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_integer(bu);
  }
  
! s48_value scx_Display_Bitmap_Bit_Order(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    return Bits_To_Symbols( (unsigned long)BitmapBitOrder(dpy),
                          Byte_Order_Syms );
  }
  
! s48_value scx_Display_Bitmap_Pad(s48_value Xdisplay) {
!   int bp = BitmapPad(SCX_EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_integer(bp);
  }
  
! s48_value scx_Display_Width(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    return s48_enter_integer(DisplayWidth(dpy, DefaultScreen(dpy)));
  }
  
! s48_value scx_Display_Height(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    return s48_enter_integer(DisplayHeight(dpy, DefaultScreen(dpy)));
  }
  
! s48_value scx_Display_Width_Mm (s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    return s48_enter_integer(DisplayWidthMM(dpy, DefaultScreen(dpy)));
  }
  
! s48_value scx_Display_Height_Mm (s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
    return s48_enter_integer(DisplayHeightMM(dpy, DefaultScreen(dpy)));
  }
  
! s48_value scx_Display_Motion_Buffer_Size(s48_value Xdisplay) {
!   int mbs = XDisplayMotionBufferSize(SCX_EXTRACT_DISPLAY(Xdisplay));
    return s48_enter_integer(mbs);
  }
  
! s48_value scx_Display_Flush_Output (s48_value Xdisplay) {
!   XFlush (SCX_EXTRACT_DISPLAY(Xdisplay));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Display_Wait_Output (s48_value Xdisplay, s48_value discard) {
!   XSync (SCX_EXTRACT_DISPLAY(Xdisplay), !S48_FALSE_P(discard));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_No_Op (s48_value Xdisplay) {
!   XNoOp(SCX_EXTRACT_DISPLAY(Xdisplay));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_List_Depths (s48_value Xdisplay, s48_value scr) {
    int i, num;
    int* p;
!   s48_value ret = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
  
!   p = XListDepths(SCX_EXTRACT_DISPLAY(Xdisplay), 
!                 s48_extract_integer(scr), &num);
!   if (p) {
      S48_GC_PROTECT_1(ret);
      ret = s48_make_vector(num, S48_NULL);
***************
*** 188,202 ****
  }
  
! s48_value List_Pixmap_Formats (s48_value Xdisplay) {
    int num, i;
    XPixmapFormatValues* p;
!   s48_value ret, t;
    S48_DECLARE_GC_PROTECT(2);
  
!   p = XListPixmapFormats(EXTRACT_DISPLAY(Xdisplay), &num);
   
!   if (!p) 
!     ret = S48_FALSE;
!   else {
      S48_GC_PROTECT_2(ret, t);
      ret = s48_make_vector (num, S48_FALSE);
--- 186,198 ----
  }
  
! s48_value scx_List_Pixmap_Formats (s48_value Xdisplay) {
    int num, i;
    XPixmapFormatValues* p;
!   s48_value ret = S48_FALSE, t = S48_FALSE;
    S48_DECLARE_GC_PROTECT(2);
  
!   p = XListPixmapFormats(SCX_EXTRACT_DISPLAY(Xdisplay), &num);
   
!   if (p) {
      S48_GC_PROTECT_2(ret, t);
      ret = s48_make_vector (num, S48_FALSE);
***************
*** 215,246 ****
  }
  
! void s48_init_display(void) {
!   S48_EXPORT_FUNCTION(Open_Display);
!   S48_EXPORT_FUNCTION(Close_Display);
!   S48_EXPORT_FUNCTION(Display_Message_fd);
!   S48_EXPORT_FUNCTION(Display_Default_Root_Window);
!   S48_EXPORT_FUNCTION(Display_Default_Colormap);
!   S48_EXPORT_FUNCTION(Display_Default_Gcontext);
!   S48_EXPORT_FUNCTION(Display_Default_Depth);
!   S48_EXPORT_FUNCTION(Display_Default_Screen_Number);
!   S48_EXPORT_FUNCTION(Display_Cells);
!   S48_EXPORT_FUNCTION(Display_Planes);
!   S48_EXPORT_FUNCTION(Display_String);
!   S48_EXPORT_FUNCTION(Display_Vendor);
!   S48_EXPORT_FUNCTION(Display_Protocol_Version);
!   S48_EXPORT_FUNCTION(Display_Screen_Count);
!   S48_EXPORT_FUNCTION(Display_Image_Byte_Order);
!   S48_EXPORT_FUNCTION(Display_Bitmap_Unit);
!   S48_EXPORT_FUNCTION(Display_Bitmap_Bit_Order);
!   S48_EXPORT_FUNCTION(Display_Bitmap_Pad);
!   S48_EXPORT_FUNCTION(Display_Width);
!   S48_EXPORT_FUNCTION(Display_Height);
!   S48_EXPORT_FUNCTION(Display_Width_Mm);
!   S48_EXPORT_FUNCTION(Display_Height_Mm);
!   S48_EXPORT_FUNCTION(Display_Motion_Buffer_Size);
!   S48_EXPORT_FUNCTION(Display_Flush_Output);
!   S48_EXPORT_FUNCTION(Display_Wait_Output);
!   S48_EXPORT_FUNCTION(No_Op);
!   S48_EXPORT_FUNCTION(List_Depths);
!   S48_EXPORT_FUNCTION(List_Pixmap_Formats);
  }
--- 211,242 ----
  }
  
! void scx_init_display(void) {
!   S48_EXPORT_FUNCTION(scx_Open_Display);
!   S48_EXPORT_FUNCTION(scx_Close_Display);
!   S48_EXPORT_FUNCTION(scx_Display_Message_fd);
!   S48_EXPORT_FUNCTION(scx_Display_Default_Root_Window);
!   S48_EXPORT_FUNCTION(scx_Display_Default_Colormap);
!   S48_EXPORT_FUNCTION(scx_Display_Default_Gcontext);
!   S48_EXPORT_FUNCTION(scx_Display_Default_Depth);
!   S48_EXPORT_FUNCTION(scx_Display_Default_Screen_Number);
!   S48_EXPORT_FUNCTION(scx_Display_Cells);
!   S48_EXPORT_FUNCTION(scx_Display_Planes);
!   S48_EXPORT_FUNCTION(scx_Display_String);
!   S48_EXPORT_FUNCTION(scx_Display_Vendor);
!   S48_EXPORT_FUNCTION(scx_Display_Protocol_Version);
!   S48_EXPORT_FUNCTION(scx_Display_Screen_Count);
!   S48_EXPORT_FUNCTION(scx_Display_Image_Byte_Order);
!   S48_EXPORT_FUNCTION(scx_Display_Bitmap_Unit);
!   S48_EXPORT_FUNCTION(scx_Display_Bitmap_Bit_Order);
!   S48_EXPORT_FUNCTION(scx_Display_Bitmap_Pad);
!   S48_EXPORT_FUNCTION(scx_Display_Width);
!   S48_EXPORT_FUNCTION(scx_Display_Height);
!   S48_EXPORT_FUNCTION(scx_Display_Width_Mm);
!   S48_EXPORT_FUNCTION(scx_Display_Height_Mm);
!   S48_EXPORT_FUNCTION(scx_Display_Motion_Buffer_Size);
!   S48_EXPORT_FUNCTION(scx_Display_Flush_Output);
!   S48_EXPORT_FUNCTION(scx_Display_Wait_Output);
!   S48_EXPORT_FUNCTION(scx_No_Op);
!   S48_EXPORT_FUNCTION(scx_List_Depths);
!   S48_EXPORT_FUNCTION(scx_List_Pixmap_Formats);
  }

Index: event.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/event.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** event.c     2001/07/19 15:32:59     1.5
--- event.c     2001/07/31 14:51:21     1.6
***************
*** 7,11 ****
  #define SETSIZE(i) r = s48_make_vector(sidx+i, S48_FALSE)
  
! s48_value enter_event(XEvent* e) {
    s48_value r = S48_FALSE;
    s48_value temp = S48_FALSE;
--- 7,11 ----
  #define SETSIZE(i) r = s48_make_vector(sidx+i, S48_FALSE)
  
! s48_value scx_enter_event(XEvent* e) {
    s48_value r = S48_FALSE;
    s48_value temp = S48_FALSE;
***************
*** 22,28 ****
      SETSIZE(10);
      // all equal in the beginning
!     SET(sidx+0, ENTER_WINDOW(q->root));
!     SET(sidx+1, ENTER_WINDOW(q->subwindow));
!     SET(sidx+2, ENTER_TIME(q->time));
      SET(sidx+3, s48_enter_integer(q->x));
      SET(sidx+4, s48_enter_integer(q->y));
--- 22,28 ----
      SETSIZE(10);
      // all equal in the beginning
!     SET(sidx+0, SCX_ENTER_WINDOW(q->root));
!     SET(sidx+1, SCX_ENTER_WINDOW(q->subwindow));
!     SET(sidx+2, SCX_ENTER_TIME(q->time));
      SET(sidx+3, s48_enter_integer(q->x));
      SET(sidx+4, s48_enter_integer(q->y));
***************
*** 52,58 ****
      ECAST(q, XCrossingEvent);
      SETSIZE(12);
!     SET(sidx+0, ENTER_WINDOW(q->root));
!     SET(sidx+1, ENTER_WINDOW(q->subwindow));
!     SET(sidx+2, ENTER_TIME(q->time));
      SET(sidx+3, s48_enter_integer(q->x));
      SET(sidx+4, s48_enter_integer(q->y));
--- 52,58 ----
      ECAST(q, XCrossingEvent);
      SETSIZE(12);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->root));
!     SET(sidx+1, SCX_ENTER_WINDOW(q->subwindow));
!     SET(sidx+2, SCX_ENTER_TIME(q->time));
      SET(sidx+3, s48_enter_integer(q->x));
      SET(sidx+4, s48_enter_integer(q->y));
***************
*** 122,126 ****
      ECAST(q, XCreateWindowEvent);
      SETSIZE(7);
!     SET(sidx+0, ENTER_WINDOW(q->window));
      SET(sidx+1, s48_enter_integer(q->x));
      SET(sidx+2, s48_enter_integer(q->y));
--- 122,126 ----
      ECAST(q, XCreateWindowEvent);
      SETSIZE(7);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
      SET(sidx+1, s48_enter_integer(q->x));
      SET(sidx+2, s48_enter_integer(q->y));
***************
*** 134,138 ****
      ECAST(q, XDestroyWindowEvent);
      SETSIZE(1);
!     SET(sidx+0, ENTER_WINDOW(q->window));
    } break;
  
--- 134,138 ----
      ECAST(q, XDestroyWindowEvent);
      SETSIZE(1);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
    } break;
  
***************
*** 140,144 ****
      ECAST(q, XUnmapEvent);
      SETSIZE(2);
!     SET(sidx+0, ENTER_WINDOW(q->window));
      SET(sidx+1, S48_ENTER_BOOLEAN(q->from_configure));
    } break;
--- 140,144 ----
      ECAST(q, XUnmapEvent);
      SETSIZE(2);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
      SET(sidx+1, S48_ENTER_BOOLEAN(q->from_configure));
    } break;
***************
*** 147,151 ****
      ECAST(q, XMapEvent);
      SETSIZE(2);
!     SET(sidx+0, ENTER_WINDOW(q->window));
      SET(sidx+1, S48_ENTER_BOOLEAN(q->override_redirect));
    } break;
--- 147,151 ----
      ECAST(q, XMapEvent);
      SETSIZE(2);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
      SET(sidx+1, S48_ENTER_BOOLEAN(q->override_redirect));
    } break;
***************
*** 154,158 ****
      ECAST(q, XMapRequestEvent);
      SETSIZE(1);
!     SET(sidx+0, ENTER_WINDOW(q->window));
    } break;
    
--- 154,158 ----
      ECAST(q, XMapRequestEvent);
      SETSIZE(1);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
    } break;
    
***************
*** 160,165 ****
      ECAST(q, XReparentEvent);
      SETSIZE(5);
!     SET(sidx+0, ENTER_WINDOW(q->window));
!     SET(sidx+1, ENTER_WINDOW(q->parent));
      SET(sidx+2, s48_enter_integer(q->x));
      SET(sidx+3, s48_enter_integer(q->y));
--- 160,165 ----
      ECAST(q, XReparentEvent);
      SETSIZE(5);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
!     SET(sidx+1, SCX_ENTER_WINDOW(q->parent));
      SET(sidx+2, s48_enter_integer(q->x));
      SET(sidx+3, s48_enter_integer(q->y));
***************
*** 170,174 ****
      ECAST(q, XConfigureEvent);
      SETSIZE(8);
!     SET(sidx+0, ENTER_WINDOW(q->window));
      SET(sidx+1, s48_enter_integer(q->x));
      SET(sidx+2, s48_enter_integer(q->y));
--- 170,174 ----
      ECAST(q, XConfigureEvent);
      SETSIZE(8);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
      SET(sidx+1, s48_enter_integer(q->x));
      SET(sidx+2, s48_enter_integer(q->y));
***************
*** 176,180 ****
      SET(sidx+4, s48_enter_integer(q->height));
      SET(sidx+5, s48_enter_integer(q->border_width));
!     SET(sidx+6, ENTER_WINDOW(q->above));
      SET(sidx+7, S48_ENTER_BOOLEAN(q->override_redirect));
    } break;
--- 176,180 ----
      SET(sidx+4, s48_enter_integer(q->height));
      SET(sidx+5, s48_enter_integer(q->border_width));
!     SET(sidx+6, SCX_ENTER_WINDOW(q->above));
      SET(sidx+7, S48_ENTER_BOOLEAN(q->override_redirect));
    } break;
***************
*** 183,187 ****
      ECAST(q, XConfigureRequestEvent);
      SETSIZE(9);
!     SET(sidx+0, ENTER_WINDOW(q->window));
      SET(sidx+1, s48_enter_integer(q->x));
      SET(sidx+2, s48_enter_integer(q->y));
--- 183,187 ----
      ECAST(q, XConfigureRequestEvent);
      SETSIZE(9);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
      SET(sidx+1, s48_enter_integer(q->x));
      SET(sidx+2, s48_enter_integer(q->y));
***************
*** 189,193 ****
      SET(sidx+4, s48_enter_integer(q->height));
      SET(sidx+5, s48_enter_integer(q->border_width));
!     SET(sidx+6, ENTER_WINDOW(q->above));
      SET(sidx+7, Bit_To_Symbol(q->detail, Stack_Mode_Syms));
      SET(sidx+8, s48_enter_integer(q->value_mask));
--- 189,193 ----
      SET(sidx+4, s48_enter_integer(q->height));
      SET(sidx+5, s48_enter_integer(q->border_width));
!     SET(sidx+6, SCX_ENTER_WINDOW(q->above));
      SET(sidx+7, Bit_To_Symbol(q->detail, Stack_Mode_Syms));
      SET(sidx+8, s48_enter_integer(q->value_mask));
***************
*** 197,201 ****
      ECAST(q, XGravityEvent);
      SETSIZE(3);
!     SET(sidx+0, ENTER_WINDOW(q->window));
      SET(sidx+1, s48_enter_integer(q->x));
      SET(sidx+2, s48_enter_integer(q->y));
--- 197,201 ----
      ECAST(q, XGravityEvent);
      SETSIZE(3);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
      SET(sidx+1, s48_enter_integer(q->x));
      SET(sidx+2, s48_enter_integer(q->y));
***************
*** 212,216 ****
      ECAST(q, XCirculateEvent);
      SETSIZE(2);
!     SET(sidx+0, ENTER_WINDOW(q->window));
      SET(sidx+1, Bit_To_Symbol(q->place, Place_Syms));
    } break;
--- 212,216 ----
      ECAST(q, XCirculateEvent);
      SETSIZE(2);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->window));
      SET(sidx+1, Bit_To_Symbol(q->place, Place_Syms));
    } break;
***************
*** 219,224 ****
      ECAST(q, XPropertyEvent);
      SETSIZE(3);
!     SET(sidx+0, ENTER_ATOM(q->atom));
!     SET(sidx+1, ENTER_TIME(q->time));
      SET(sidx+2, Bit_To_Symbol(q->state, Prop_Syms));
    } break;
--- 219,224 ----
      ECAST(q, XPropertyEvent);
      SETSIZE(3);
!     SET(sidx+0, SCX_ENTER_ATOM(q->atom));
!     SET(sidx+1, SCX_ENTER_TIME(q->time));
      SET(sidx+2, Bit_To_Symbol(q->state, Prop_Syms));
    } break;
***************
*** 227,232 ****
      ECAST(q, XSelectionClearEvent);
      SETSIZE(2);
!     SET(sidx+0, ENTER_ATOM(q->selection));
!     SET(sidx+1, ENTER_TIME(q->time));
    } break;
    
--- 227,232 ----
      ECAST(q, XSelectionClearEvent);
      SETSIZE(2);
!     SET(sidx+0, SCX_ENTER_ATOM(q->selection));
!     SET(sidx+1, SCX_ENTER_TIME(q->time));
    } break;
    
***************
*** 234,242 ****
      ECAST(q, XSelectionRequestEvent);
      SETSIZE(5);
!     SET(sidx+0, ENTER_WINDOW(q->requestor));
!     SET(sidx+1, ENTER_ATOM(q->selection));
!     SET(sidx+2, ENTER_ATOM(q->target));
!     SET(sidx+3, ENTER_ATOM(q->property));
!     SET(sidx+4, ENTER_TIME(q->time));
    } break;
  
--- 234,242 ----
      ECAST(q, XSelectionRequestEvent);
      SETSIZE(5);
!     SET(sidx+0, SCX_ENTER_WINDOW(q->requestor));
!     SET(sidx+1, SCX_ENTER_ATOM(q->selection));
!     SET(sidx+2, SCX_ENTER_ATOM(q->target));
!     SET(sidx+3, SCX_ENTER_ATOM(q->property));
!     SET(sidx+4, SCX_ENTER_TIME(q->time));
    } break;
  
***************
*** 244,251 ****
      ECAST(q, XSelectionEvent);
      SETSIZE(4);
!     SET(sidx+0, ENTER_ATOM(q->selection));
!     SET(sidx+1, ENTER_ATOM(q->target));
!     SET(sidx+2, ENTER_ATOM(q->property));
!     SET(sidx+3, ENTER_TIME(q->time));
    } break;
  
--- 244,251 ----
      ECAST(q, XSelectionEvent);
      SETSIZE(4);
!     SET(sidx+0, SCX_ENTER_ATOM(q->selection));
!     SET(sidx+1, SCX_ENTER_ATOM(q->target));
!     SET(sidx+2, SCX_ENTER_ATOM(q->property));
!     SET(sidx+3, SCX_ENTER_TIME(q->time));
    } break;
  
***************
*** 253,257 ****
      ECAST(q, XColormapEvent);
      SETSIZE(3);
!     SET(sidx+0, ENTER_COLORMAP(q->colormap));
      SET(sidx+1, S48_ENTER_BOOLEAN(q->new));
      SET(sidx+2, q->state == ColormapInstalled ? S48_TRUE : S48_FALSE);
--- 253,257 ----
      ECAST(q, XColormapEvent);
      SETSIZE(3);
!     SET(sidx+0, SCX_ENTER_COLORMAP(q->colormap));
      SET(sidx+1, S48_ENTER_BOOLEAN(q->new));
      SET(sidx+2, q->state == ColormapInstalled ? S48_TRUE : S48_FALSE);
***************
*** 261,265 ****
      ECAST(q, XClientMessageEvent);
      SETSIZE(2);
!     SET(sidx+0, ENTER_ATOM(q->message_type));
      switch (q->format) {
      case 8 : {
--- 261,265 ----
      ECAST(q, XClientMessageEvent);
      SETSIZE(2);
!     SET(sidx+0, SCX_ENTER_ATOM(q->message_type));
      switch (q->format) {
      case 8 : {
***************
*** 299,304 ****
      SET(0, s48_enter_integer(q->serial));
      SET(1, S48_ENTER_BOOLEAN(q->send_event));
!     SET(2, ENTER_DISPLAY(q->display));
!     SET(3, ENTER_WINDOW(q->window));
    }
    // more??
--- 299,304 ----
      SET(0, s48_enter_integer(q->serial));
      SET(1, S48_ENTER_BOOLEAN(q->send_event));
!     SET(2, SCX_ENTER_DISPLAY(q->display));
!     SET(3, SCX_ENTER_WINDOW(q->window));
    }
    // more??
***************
*** 311,337 ****
  }
  
! s48_value Next_Event(s48_value Xdisplay) {
    XEvent e;
!   XNextEvent(EXTRACT_DISPLAY(Xdisplay), &e);
!   return enter_event(&e);
  }
  
! s48_value Peek_Event(s48_value Xdisplay) {
    XEvent e;
!   XPeekEvent(EXTRACT_DISPLAY(Xdisplay), &e);
!   return enter_event(&e);
  }
  
! s48_value Events_Pending(s48_value Xdisplay) {
!   return s48_enter_integer(XPending(EXTRACT_DISPLAY(Xdisplay)));
  }
  
! s48_value Get_Motion_Events(s48_value Xdisplay, s48_value Xwindow,
                            s48_value from, s48_value to) {
    int n,i;
!   XTimeCoord *p = XGetMotionEvents(EXTRACT_DISPLAY(Xdisplay),
!                                  EXTRACT_WINDOW(Xwindow),
!                                  EXTRACT_TIME(from),
!                                  EXTRACT_TIME(to),
                                   &n);
    s48_value v = s48_make_vector(n, S48_FALSE);
--- 311,337 ----
  }
  
! s48_value scx_Next_Event(s48_value Xdisplay) {
    XEvent e;
!   XNextEvent(SCX_EXTRACT_DISPLAY(Xdisplay), &e);
!   return scx_enter_event(&e);
  }
  
! s48_value scx_Peek_Event(s48_value Xdisplay) {
    XEvent e;
!   XPeekEvent(SCX_EXTRACT_DISPLAY(Xdisplay), &e);
!   return scx_enter_event(&e);
  }
  
! s48_value scx_Events_Pending(s48_value Xdisplay) {
!   return s48_enter_integer(XPending(SCX_EXTRACT_DISPLAY(Xdisplay)));
  }
  
! s48_value scx_Get_Motion_Events(s48_value Xdisplay, s48_value Xwindow,
                            s48_value from, s48_value to) {
    int n,i;
!   XTimeCoord *p = XGetMotionEvents(SCX_EXTRACT_DISPLAY(Xdisplay),
!                                  SCX_EXTRACT_WINDOW(Xwindow),
!                                  SCX_EXTRACT_TIME(from),
!                                  SCX_EXTRACT_TIME(to),
                                   &n);
    s48_value v = s48_make_vector(n, S48_FALSE);
***************
*** 340,344 ****
    S48_GC_PROTECT_2(v,l);
    for (i = 0; i < n; i++) {
!     l = s48_cons(ENTER_TIME(p[i].time),
                 s48_cons(s48_enter_integer(p[i].x),
                          s48_cons(s48_enter_integer(p[i].y), S48_NULL)));
--- 340,344 ----
    S48_GC_PROTECT_2(v,l);
    for (i = 0; i < n; i++) {
!     l = s48_cons(SCX_ENTER_TIME(p[i].time),
                 s48_cons(s48_enter_integer(p[i].x),
                          s48_cons(s48_enter_integer(p[i].y), S48_NULL)));
***************
*** 350,358 ****
  }
  
! void s48_init_event(void) {
!   S48_EXPORT_FUNCTION(Next_Event);
!   S48_EXPORT_FUNCTION(Peek_Event);
!   S48_EXPORT_FUNCTION(Events_Pending);
!   S48_EXPORT_FUNCTION(Get_Motion_Events);
  }
    
--- 350,358 ----
  }
  
! void scx_init_event(void) {
!   S48_EXPORT_FUNCTION(scx_Next_Event);
!   S48_EXPORT_FUNCTION(scx_Peek_Event);
!   S48_EXPORT_FUNCTION(scx_Events_Pending);
!   S48_EXPORT_FUNCTION(scx_Get_Motion_Events);
  }
    

Index: font.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/font.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** font.c      2001/07/18 15:44:41     1.3
--- font.c      2001/07/31 14:51:21     1.4
***************
*** 3,35 ****
  
  
! s48_value Load_Font(s48_value Xdisplay, s48_value font_name) {
!   return ENTER_FONTSTRUCT(XLoadQueryFont(EXTRACT_DISPLAY(Xdisplay),
                                         s48_extract_string(font_name)));
  }
  
! s48_value Free_Font(s48_value Xdisplay, s48_value Xfontstruct) {
!   XFreeFont(EXTRACT_DISPLAY(Xdisplay),
!           EXTRACT_FONTSTRUCT(Xfontstruct));
    return S48_UNSPECIFIC;
  }
  
! s48_value Get_Xfont(s48_value Xfontstruct) {
!   return ENTER_FONT((EXTRACT_FONTSTRUCT(Xfontstruct))->fid);
  }
  
! s48_value GContext_Font(s48_value Xdisplay, s48_value Xgcontext) {
!   GContext gc = XGContextFromGC(EXTRACT_GCONTEXT(Xgcontext));
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
!   return ENTER_FONTSTRUCT(XQueryFont(dpy, gc));
  }
  
! s48_value Font_Path(s48_value Xdisplay) {
    int n, i;
    char** sa;
!   s48_value ret;
    S48_DECLARE_GC_PROTECT(1);  
  
    // Enable/Disable Interrupts ??
!   sa = XGetFontPath(EXTRACT_DISPLAY(Xdisplay), &n);
    ret = s48_make_vector(n, S48_FALSE);
    S48_GC_PROTECT_1(ret);
--- 3,35 ----
  
  
! s48_value scx_Load_Font(s48_value Xdisplay, s48_value font_name) {
!   return SCX_ENTER_FONTSTRUCT(XLoadQueryFont(SCX_EXTRACT_DISPLAY(Xdisplay),
                                         s48_extract_string(font_name)));
  }
  
! s48_value scx_Free_Font(s48_value Xdisplay, s48_value Xfontstruct) {
!   XFreeFont(SCX_EXTRACT_DISPLAY(Xdisplay),
!           SCX_EXTRACT_FONTSTRUCT(Xfontstruct));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Get_Xfont(s48_value Xfontstruct) {
!   return SCX_ENTER_FONT((SCX_EXTRACT_FONTSTRUCT(Xfontstruct))->fid);
  }
  
! s48_value scx_GContext_Font(s48_value Xdisplay, s48_value Xgcontext) {
!   GContext gc = XGContextFromGC(SCX_EXTRACT_GCONTEXT(Xgcontext));
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
!   return SCX_ENTER_FONTSTRUCT(XQueryFont(dpy, gc));
  }
  
! s48_value scx_Font_Path(s48_value Xdisplay) {
    int n, i;
    char** sa;
!   s48_value ret = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);  
  
    // Enable/Disable Interrupts ??
!   sa = XGetFontPath(SCX_EXTRACT_DISPLAY(Xdisplay), &n);
    ret = s48_make_vector(n, S48_FALSE);
    S48_GC_PROTECT_1(ret);
***************
*** 43,47 ****
  }
  
! s48_value Set_Font_Path(s48_value Xdisplay, s48_value path) {
    int i, n = S48_VECTOR_LENGTH(path);
    char* sa[n];
--- 43,47 ----
  }
  
! s48_value scx_Set_Font_Path(s48_value Xdisplay, s48_value path) {
    int i, n = S48_VECTOR_LENGTH(path);
    char* sa[n];
***************
*** 50,65 ****
      sa[i] = s48_extract_string(S48_VECTOR_REF(path, i));
    }
!   XSetFontPath(EXTRACT_DISPLAY(Xdisplay), sa, n);
  
    return S48_UNSPECIFIC;
  }
               
! s48_value List_Font_Names(s48_value Xdisplay, s48_value pattern) {
    char** sa;
    int i,n;
!   s48_value v;
    S48_DECLARE_GC_PROTECT(1);
  
!   XListFonts(EXTRACT_DISPLAY(Xdisplay), 
             s48_extract_string(pattern),
             65535,
--- 50,65 ----
      sa[i] = s48_extract_string(S48_VECTOR_REF(path, i));
    }
!   XSetFontPath(SCX_EXTRACT_DISPLAY(Xdisplay), sa, n);
  
    return S48_UNSPECIFIC;
  }
               
! s48_value scx_List_Font_Names(s48_value Xdisplay, s48_value pattern) {
    char** sa;
    int i,n;
!   s48_value v = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
  
!   XListFonts(SCX_EXTRACT_DISPLAY(Xdisplay), 
             s48_extract_string(pattern),
             65535,
***************
*** 77,88 ****
  }
  
! s48_value List_Fonts(s48_value Xdisplay, s48_value pattern) {
    char** sa;
    XFontStruct* fsa;
    int i,n;
!   s48_value v;
    S48_DECLARE_GC_PROTECT(1);
  
!   XListFontsWithInfo(EXTRACT_DISPLAY(Xdisplay), 
                     s48_extract_string(pattern),
                     65535,
--- 77,88 ----
  }
  
! s48_value scx_List_Fonts(s48_value Xdisplay, s48_value pattern) {
    char** sa;
    XFontStruct* fsa;
    int i,n;
!   s48_value v = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
  
!   XListFontsWithInfo(SCX_EXTRACT_DISPLAY(Xdisplay), 
                     s48_extract_string(pattern),
                     65535,
***************
*** 94,98 ****
    for (i = 0; i < n; i++) {
      S48_VECTOR_SET(v, i, s48_cons(s48_enter_string(sa[i]),
!                                 ENTER_FONTSTRUCT(&fsa[i])));
    }
    S48_GC_UNPROTECT();
--- 94,98 ----
    for (i = 0; i < n; i++) {
      S48_VECTOR_SET(v, i, s48_cons(s48_enter_string(sa[i]),
!                                 SCX_ENTER_FONTSTRUCT(&fsa[i])));
    }
    S48_GC_UNPROTECT();
***************
*** 102,109 ****
  }
  
! s48_value Font_Properties(s48_value Xfontstruct) {
!   s48_value v;
    int i,n;
!   XFontStruct* fs = EXTRACT_FONTSTRUCT(Xfontstruct);
    XFontProp* p;
    S48_DECLARE_GC_PROTECT(1);
--- 102,109 ----
  }
  
! s48_value scx_Font_Properties(s48_value Xfontstruct) {
!   s48_value v = S48_FALSE;
    int i,n;
!   XFontStruct* fs = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
    XFontProp* p;
    S48_DECLARE_GC_PROTECT(1);
***************
*** 115,119 ****
    for (i = 0; i < n; i++) {
      p = fs->properties+i;
!     S48_VECTOR_SET(v, i, s48_cons( ENTER_ATOM(p->name),
                                   s48_enter_integer(p->card32) ));
    }
--- 115,119 ----
    for (i = 0; i < n; i++) {
      p = fs->properties+i;
!     S48_VECTOR_SET(v, i, s48_cons( SCX_ENTER_ATOM(p->name),
                                   s48_enter_integer(p->card32) ));
    }
***************
*** 122,129 ****
  }
  
! s48_value Font_Property(s48_value Xfontstruct, s48_value Xatom) {
    unsigned long val;
!   if (XGetFontProperty(EXTRACT_FONTSTRUCT(Xfontstruct),
!                      EXTRACT_ATOM(Xatom),
                       &val))
      return s48_enter_integer(val);
--- 122,129 ----
  }
  
! s48_value scx_Font_Property(s48_value Xfontstruct, s48_value Xatom) {
    unsigned long val;
!   if (XGetFontProperty(SCX_EXTRACT_FONTSTRUCT(Xfontstruct),
!                      SCX_EXTRACT_ATOM(Xatom),
                       &val))
      return s48_enter_integer(val);
***************
*** 132,137 ****
  }
  
! s48_value Font_Info(s48_value Xfontstruct) {
!   XFontStruct* fs = EXTRACT_FONTSTRUCT(Xfontstruct);
    s48_value v = s48_make_vector(9, S48_FALSE);
    S48_DECLARE_GC_PROTECT(1);
--- 132,137 ----
  }
  
! s48_value scx_Font_Info(s48_value Xfontstruct) {
!   XFontStruct* fs = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
    s48_value v = s48_make_vector(9, S48_FALSE);
    S48_DECLARE_GC_PROTECT(1);
***************
*** 152,160 ****
  }
  
! static s48_value Char_Info(s48_value Xfontstruct, s48_value index) {
    // index must be an integer, #f for 'min or #t for 'max
    XCharStruct* cp;
!   XFontStruct* p = EXTRACT_FONTSTRUCT(Xfontstruct);
!   s48_value v;
    S48_DECLARE_GC_PROTECT(1);
  
--- 152,160 ----
  }
  
! s48_value scx_Char_Info(s48_value Xfontstruct, s48_value index) {
    // index must be an integer, #f for 'min or #t for 'max
    XCharStruct* cp;
!   XFontStruct* p = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
!   s48_value v = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
  
***************
*** 179,194 ****
  }
  
! s48_init_font() {
!   S48_EXPORT_FUNCTION(Load_Font);
!   S48_EXPORT_FUNCTION(Free_Font);
!   S48_EXPORT_FUNCTION(Get_Xfont);
!   S48_EXPORT_FUNCTION(GContext_Font);
!   S48_EXPORT_FUNCTION(Font_Path);
!   S48_EXPORT_FUNCTION(Set_Font_Path);
!   S48_EXPORT_FUNCTION(Font_Property);
!   S48_EXPORT_FUNCTION(Font_Properties);
!   S48_EXPORT_FUNCTION(List_Fonts);
!   S48_EXPORT_FUNCTION(List_Font_Names);
!   S48_EXPORT_FUNCTION(Font_Info);
!   S48_EXPORT_FUNCTION(Char_Info);
  }
--- 179,194 ----
  }
  
! void scx_init_font(void) {
!   S48_EXPORT_FUNCTION(scx_Load_Font);
!   S48_EXPORT_FUNCTION(scx_Free_Font);
!   S48_EXPORT_FUNCTION(scx_Get_Xfont);
!   S48_EXPORT_FUNCTION(scx_GContext_Font);
!   S48_EXPORT_FUNCTION(scx_Font_Path);
!   S48_EXPORT_FUNCTION(scx_Set_Font_Path);
!   S48_EXPORT_FUNCTION(scx_Font_Property);
!   S48_EXPORT_FUNCTION(scx_Font_Properties);
!   S48_EXPORT_FUNCTION(scx_List_Fonts);
!   S48_EXPORT_FUNCTION(scx_List_Font_Names);
!   S48_EXPORT_FUNCTION(scx_Font_Info);
!   S48_EXPORT_FUNCTION(scx_Char_Info);
  }

Index: gcontext.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/gcontext.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** gcontext.c  2001/07/30 14:15:34     1.6
--- gcontext.c  2001/07/31 14:51:21     1.7
***************
*** 18,28 ****
        mask |= GCFunction;
      } else if (strcmp(cname, "plane-mask") == 0) {
!       GCV->plane_mask = EXTRACT_PIXEL(value);
        mask |= GCPlaneMask;
      } else if (strcmp(cname, "foreground") == 0) {
!       GCV->foreground = EXTRACT_PIXEL(value);
        mask |= GCForeground;
      } else if (strcmp(cname, "background") == 0) {
!       GCV->background = EXTRACT_PIXEL(value);
        mask |= GCBackground;
      } else if (strcmp(cname, "line-width") == 0) {
--- 18,28 ----
        mask |= GCFunction;
      } else if (strcmp(cname, "plane-mask") == 0) {
!       GCV->plane_mask = SCX_EXTRACT_PIXEL(value);
        mask |= GCPlaneMask;
      } else if (strcmp(cname, "foreground") == 0) {
!       GCV->foreground = SCX_EXTRACT_PIXEL(value);
        mask |= GCForeground;
      } else if (strcmp(cname, "background") == 0) {
!       GCV->background = SCX_EXTRACT_PIXEL(value);
        mask |= GCBackground;
      } else if (strcmp(cname, "line-width") == 0) {
***************
*** 48,55 ****
        mask |= GCArcMode;
      } else if (strcmp(cname, "tile") == 0) {
!       GCV->tile = EXTRACT_PIXMAP(value);
        mask |= GCTile;
      } else if (strcmp(cname, "stipple") == 0) {
!       GCV->stipple = EXTRACT_PIXMAP(value);
        mask |= GCStipple;
      } else if (strcmp(cname, "ts-x") == 0) {
--- 48,55 ----
        mask |= GCArcMode;
      } else if (strcmp(cname, "tile") == 0) {
!       GCV->tile = SCX_EXTRACT_PIXMAP(value);
        mask |= GCTile;
      } else if (strcmp(cname, "stipple") == 0) {
!       GCV->stipple = SCX_EXTRACT_PIXMAP(value);
        mask |= GCStipple;
      } else if (strcmp(cname, "ts-x") == 0) {
***************
*** 60,64 ****
        mask |= GCTileStipYOrigin;
      } else if (strcmp(cname, "font") == 0) {
!       GCV->font = EXTRACT_FONT(value);
        mask |= GCFont;
      } else if (strcmp(cname, "subwindow-mode") == 0) {
--- 60,64 ----
        mask |= GCTileStipYOrigin;
      } else if (strcmp(cname, "font") == 0) {
!       GCV->font = SCX_EXTRACT_FONT(value);
        mask |= GCFont;
      } else if (strcmp(cname, "subwindow-mode") == 0) {
***************
*** 75,79 ****
        mask |= GCClipYOrigin;
      } else if (strcmp(cname, "clip-mask") == 0) {
!       GCV->clip_mask = EXTRACT_PIXMAP(value);
        mask |= GCClipMask;
      } else if (strcmp(cname, "dash-offset") == 0) {
--- 75,79 ----
        mask |= GCClipYOrigin;
      } else if (strcmp(cname, "clip-mask") == 0) {
!       GCV->clip_mask = SCX_EXTRACT_PIXMAP(value);
        mask |= GCClipMask;
      } else if (strcmp(cname, "dash-offset") == 0) {
***************
*** 90,112 ****
  }  
  
! s48_value Create_Gc(s48_value Xdisplay, s48_value Xdrawable, s48_value args) {
    XGCValues GCV;
    unsigned long mask = AList_To_GCValues(args, &GCV);
  
!   GC Xgcontext = XCreateGC(EXTRACT_DISPLAY(Xdisplay), 
!                          EXTRACT_DRAWABLE(Xdrawable), 
                           mask, &GCV);
  
!   return ENTER_GCONTEXT(Xgcontext);
  }
  
! s48_value Copy_Gc(s48_value Xdisplay, s48_value Xsource, s48_value Xdest) {
!   XCopyGC(EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xsource), 
!         ~0L, EXTRACT_GCONTEXT(Xdest));
    return S48_UNSPECIFIC;
  }
  
! s48_value Free_Gc(s48_value Xgcontext, s48_value Xdisplay) {
!   XFreeGC(EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext));
    return S48_UNSPECIFIC;
  }
--- 90,112 ----
  }  
  
! s48_value scx_Create_Gc(s48_value Xdisplay, s48_value Xdrawable, s48_value 
args) {
    XGCValues GCV;
    unsigned long mask = AList_To_GCValues(args, &GCV);
  
!   GC Xgcontext = XCreateGC(SCX_EXTRACT_DISPLAY(Xdisplay), 
!                          SCX_EXTRACT_DRAWABLE(Xdrawable), 
                           mask, &GCV);
  
!   return SCX_ENTER_GCONTEXT(Xgcontext);
  }
  
! s48_value scx_Copy_Gc(s48_value Xdisplay, s48_value Xsource, s48_value Xdest) 
{
!   XCopyGC(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_GCONTEXT(Xsource), 
!         ~0L, SCX_EXTRACT_GCONTEXT(Xdest));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Free_Gc(s48_value Xgcontext, s48_value Xdisplay) {
!   XFreeGC(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_GCONTEXT(Xgcontext));
    return S48_UNSPECIFIC;
  }
***************
*** 119,130 ****
      GCDashOffset | GCArcMode)
  
! s48_value Get_Gc_Values (s48_value Xgcontext, s48_value Xdisplay) {
    unsigned long mask = ValidGCValuesBits;
  
    XGCValues GCV;
!   s48_value res;
    S48_DECLARE_GC_PROTECT(1);
    
!   if (!XGetGCValues (EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext), 
                     mask, &GCV))
      res = S48_FALSE;
--- 119,131 ----
      GCDashOffset | GCArcMode)
  
! s48_value scx_Get_Gc_Values (s48_value Xgcontext, s48_value Xdisplay) {
    unsigned long mask = ValidGCValuesBits;
  
    XGCValues GCV;
!   s48_value res = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
    
!   if (!XGetGCValues (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                    SCX_EXTRACT_GCONTEXT(Xgcontext), 
                     mask, &GCV))
      res = S48_FALSE;
***************
*** 134,140 ****
  
      S48_VECTOR_SET(res, 0, Bit_To_Symbol(GCV.function, Func_Syms));
!     S48_VECTOR_SET(res, 1, ENTER_PIXEL(GCV.plane_mask));
!     S48_VECTOR_SET(res, 2, ENTER_PIXEL(GCV.foreground));
!     S48_VECTOR_SET(res, 3, ENTER_PIXEL(GCV.background));
      S48_VECTOR_SET(res, 4, s48_enter_integer(GCV.line_width));
      S48_VECTOR_SET(res, 5, Bit_To_Symbol(GCV.line_style, Line_Style_Syms));
--- 135,141 ----
  
      S48_VECTOR_SET(res, 0, Bit_To_Symbol(GCV.function, Func_Syms));
!     S48_VECTOR_SET(res, 1, SCX_ENTER_PIXEL(GCV.plane_mask));
!     S48_VECTOR_SET(res, 2, SCX_ENTER_PIXEL(GCV.foreground));
!     S48_VECTOR_SET(res, 3, SCX_ENTER_PIXEL(GCV.background));
      S48_VECTOR_SET(res, 4, s48_enter_integer(GCV.line_width));
      S48_VECTOR_SET(res, 5, Bit_To_Symbol(GCV.line_style, Line_Style_Syms));
***************
*** 144,152 ****
      S48_VECTOR_SET(res, 9, Bit_To_Symbol(GCV.fill_rule, Fill_Rule_Syms));
      S48_VECTOR_SET(res, 10, Bit_To_Symbol(GCV.arc_mode, Arc_Mode_Syms));
!     S48_VECTOR_SET(res, 11, ENTER_PIXMAP(GCV.tile));
!     S48_VECTOR_SET(res, 12, ENTER_PIXMAP(GCV.stipple));
      S48_VECTOR_SET(res, 13, s48_enter_integer(GCV.ts_x_origin));
      S48_VECTOR_SET(res, 14, s48_enter_integer(GCV.ts_y_origin));
!     S48_VECTOR_SET(res, 15, ENTER_FONT(GCV.font));
      S48_VECTOR_SET(res, 16, Bit_To_Symbol(GCV.subwindow_mode, 
                                          Subwin_Mode_Syms));
--- 145,153 ----
      S48_VECTOR_SET(res, 9, Bit_To_Symbol(GCV.fill_rule, Fill_Rule_Syms));
      S48_VECTOR_SET(res, 10, Bit_To_Symbol(GCV.arc_mode, Arc_Mode_Syms));
!     S48_VECTOR_SET(res, 11, SCX_ENTER_PIXMAP(GCV.tile));
!     S48_VECTOR_SET(res, 12, SCX_ENTER_PIXMAP(GCV.stipple));
      S48_VECTOR_SET(res, 13, s48_enter_integer(GCV.ts_x_origin));
      S48_VECTOR_SET(res, 14, s48_enter_integer(GCV.ts_y_origin));
!     S48_VECTOR_SET(res, 15, SCX_ENTER_FONT(GCV.font));
      S48_VECTOR_SET(res, 16, Bit_To_Symbol(GCV.subwindow_mode, 
                                          Subwin_Mode_Syms));
***************
*** 154,158 ****
      S48_VECTOR_SET(res, 18, s48_enter_integer(GCV.clip_x_origin));
      S48_VECTOR_SET(res, 19, s48_enter_integer(GCV.clip_y_origin));
!     S48_VECTOR_SET(res, 20, ENTER_PIXMAP(GCV.clip_mask));
      S48_VECTOR_SET(res, 21, s48_enter_integer(GCV.dash_offset));
      S48_VECTOR_SET(res, 22, s48_enter_integer(GCV.dashes));
--- 155,159 ----
      S48_VECTOR_SET(res, 18, s48_enter_integer(GCV.clip_x_origin));
      S48_VECTOR_SET(res, 19, s48_enter_integer(GCV.clip_y_origin));
!     S48_VECTOR_SET(res, 20, SCX_ENTER_PIXMAP(GCV.clip_mask));
      S48_VECTOR_SET(res, 21, s48_enter_integer(GCV.dash_offset));
      S48_VECTOR_SET(res, 22, s48_enter_integer(GCV.dashes));
***************
*** 162,170 ****
  }
  
! s48_value Change_Gc (s48_value Xgcontext, s48_value Xdisplay, s48_value args) 
{
    XGCValues GCV;
    unsigned long mask = AList_To_GCValues(args, &GCV);
    
!   XChangeGC(EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext), 
            mask, &GCV);
  
--- 163,171 ----
  }
  
! s48_value scx_Change_Gc (s48_value Xgcontext, s48_value Xdisplay, s48_value 
args) {
    XGCValues GCV;
    unsigned long mask = AList_To_GCValues(args, &GCV);
    
!   XChangeGC(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_GCONTEXT(Xgcontext), 
            mask, &GCV);
  
***************
*** 172,176 ****
  }
  
! s48_value Set_Gcontext_Dashlist(s48_value Xgcontext, s48_value Xdisplay, 
                                s48_value dashoffset, s48_value dashlist) {
    int n = S48_VECTOR_LENGTH(dashlist);
--- 173,177 ----
  }
  
! s48_value scx_Set_Gcontext_Dashlist(s48_value Xgcontext, s48_value Xdisplay, 
                                s48_value dashoffset, s48_value dashlist) {
    int n = S48_VECTOR_LENGTH(dashlist);
***************
*** 181,185 ****
    }
  
!   XSetDashes( EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext), 
              s48_extract_integer(dashoffset), v, n);
  
--- 182,186 ----
    }
  
!   XSetDashes( SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_GCONTEXT(Xgcontext), 
              s48_extract_integer(dashoffset), v, n);
  
***************
*** 187,191 ****
  }
  
! s48_value Set_Gcontext_Clip_Rectangles (s48_value Xgcontext, 
                                        s48_value Xdisplay, s48_value x, 
                                        s48_value y, s48_value v, 
--- 188,192 ----
  }
  
! s48_value scx_Set_Gcontext_Clip_Rectangles (s48_value Xgcontext, 
                                        s48_value Xdisplay, s48_value x, 
                                        s48_value y, s48_value v, 
***************
*** 210,214 ****
    }
     
!   XSetClipRectangles (EXTRACT_DISPLAY(Xdisplay), EXTRACT_GCONTEXT(Xgcontext), 
                      (int)s48_extract_integer (x),
                      (int)s48_extract_integer (y), p, n, 
--- 211,216 ----
    }
     
!   XSetClipRectangles (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                     SCX_EXTRACT_GCONTEXT(Xgcontext), 
                      (int)s48_extract_integer (x),
                      (int)s48_extract_integer (y), p, n, 
***************
*** 218,226 ****
  }
  
! s48_value Query_Best_Size (s48_value Xdisplay, s48_value width, 
                           s48_value height, s48_value shape) {
  
    unsigned int rw, rh;
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
  
    if (!XQueryBestSize (dpy, 
--- 220,228 ----
  }
  
! s48_value scx_Query_Best_Size (s48_value Xdisplay, s48_value width, 
                           s48_value height, s48_value shape) {
  
    unsigned int rw, rh;
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
  
    if (!XQueryBestSize (dpy, 
***************
*** 236,247 ****
  
  
! void s48_init_gcontext(void) {
!   S48_EXPORT_FUNCTION(Create_Gc);
!   S48_EXPORT_FUNCTION(Free_Gc);
!   S48_EXPORT_FUNCTION(Copy_Gc);
!   S48_EXPORT_FUNCTION(Get_Gc_Values);
!   S48_EXPORT_FUNCTION(Change_Gc);
!   S48_EXPORT_FUNCTION(Set_Gcontext_Dashlist);
!   S48_EXPORT_FUNCTION(Set_Gcontext_Clip_Rectangles);
!   S48_EXPORT_FUNCTION(Query_Best_Size);
  }
--- 238,249 ----
  
  
! void scx_init_gcontext(void) {
!   S48_EXPORT_FUNCTION(scx_Create_Gc);
!   S48_EXPORT_FUNCTION(scx_Free_Gc);
!   S48_EXPORT_FUNCTION(scx_Copy_Gc);
!   S48_EXPORT_FUNCTION(scx_Get_Gc_Values);
!   S48_EXPORT_FUNCTION(scx_Change_Gc);
!   S48_EXPORT_FUNCTION(scx_Set_Gcontext_Dashlist);
!   S48_EXPORT_FUNCTION(scx_Set_Gcontext_Clip_Rectangles);
!   S48_EXPORT_FUNCTION(scx_Query_Best_Size);
  }

Index: graphics.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/graphics.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** graphics.c  2001/07/09 13:39:15     1.4
--- graphics.c  2001/07/31 14:51:21     1.5
***************
*** 9,16 ****
  
  
! s48_value Clear_Area(s48_value Xwindow, s48_value Xdisplay, s48_value x, 
                     s48_value y, s48_value w, s48_value h, s48_value e){
!   Window win = EXTRACT_WINDOW(Xwindow);
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
  
    XClearArea (dpy, win, (int)s48_extract_integer (x),
--- 9,16 ----
  
  
! s48_value scx_Clear_Area(s48_value Xwindow, s48_value Xdisplay, s48_value x, 
                     s48_value y, s48_value w, s48_value h, s48_value e){
!   Window win = SCX_EXTRACT_WINDOW(Xwindow);
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
  
    XClearArea (dpy, win, (int)s48_extract_integer (x),
***************
*** 23,33 ****
  
  
! s48_value Copy_Area(s48_value Xdisplay,
                    s48_value srcXdrawable,s48_value Xgcontext,s48_value srcx,
                    s48_value srcy, s48_value width, s48_value height,
                    s48_value destXdrawable, s48_value destx,s48_value desty){
  
!   XCopyArea (EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(srcXdrawable),
!            EXTRACT_DRAWABLE(destXdrawable), EXTRACT_GCONTEXT(Xgcontext),
             (int)s48_extract_integer(srcx), (int)s48_extract_integer(srcy),
             (int)s48_extract_integer(width), (int)s48_extract_integer(height), 
--- 23,33 ----
  
  
! s48_value scx_Copy_Area(s48_value Xdisplay,
                    s48_value srcXdrawable,s48_value Xgcontext,s48_value srcx,
                    s48_value srcy, s48_value width, s48_value height,
                    s48_value destXdrawable, s48_value destx,s48_value desty){
  
!   XCopyArea (SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(srcXdrawable),
!            SCX_EXTRACT_DRAWABLE(destXdrawable), 
SCX_EXTRACT_GCONTEXT(Xgcontext),
             (int)s48_extract_integer(srcx), (int)s48_extract_integer(srcy),
             (int)s48_extract_integer(width), (int)s48_extract_integer(height), 
***************
*** 46,50 ****
  */
  
! s48_value Copy_Plane(s48_value Xdisplay, s48_value srcXdrawable,
                     s48_value Xgcontext, s48_value plane, s48_value srcx,
                     s48_value srcy, s48_value width, s48_value height,
--- 46,50 ----
  */
  
! s48_value scx_Copy_Plane(s48_value Xdisplay, s48_value srcXdrawable,
                     s48_value Xgcontext, s48_value plane, s48_value srcx,
                     s48_value srcy, s48_value width, s48_value height,
***************
*** 54,59 ****
    // For further details, see the man-page.
    unsigned long p = (unsigned long)s48_extract_integer(plane);
!   XCopyPlane(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(srcXdrawable),
!            EXTRACT_DRAWABLE(destXdrawable), EXTRACT_GCONTEXT(Xgcontext),
             (int)s48_extract_integer(srcx), (int)s48_extract_integer(srcy),
             (int)s48_extract_integer(width), (int)s48_extract_integer(height),
--- 54,59 ----
    // For further details, see the man-page.
    unsigned long p = (unsigned long)s48_extract_integer(plane);
!   XCopyPlane(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(srcXdrawable),
!            SCX_EXTRACT_DRAWABLE(destXdrawable), 
SCX_EXTRACT_GCONTEXT(Xgcontext),
             (int)s48_extract_integer(srcx), (int)s48_extract_integer(srcy),
             (int)s48_extract_integer(width), (int)s48_extract_integer(height),
***************
*** 66,74 ****
  
  
! s48_value Draw_Point(s48_value Xdisplay, s48_value Xdrawable,
                     s48_value Xgcontext, s48_value x, s48_value y){
  
!     XDrawPoint(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!              EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
               (int)s48_extract_integer (y));
  
--- 66,74 ----
  
  
! s48_value scx_Draw_Point(s48_value Xdisplay, s48_value Xdrawable,
                     s48_value Xgcontext, s48_value x, s48_value y){
  
!     XDrawPoint(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
!              SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
               (int)s48_extract_integer (y));
  
***************
*** 88,92 ****
    
  
! s48_value Draw_Points (s48_value Xdisplay, s48_value Xdrawable,
                       s48_value Xgcontext, s48_value vec, s48_value relative){
  
--- 88,92 ----
    
  
! s48_value scx_Draw_Points (s48_value Xdisplay, s48_value Xdrawable,
                       s48_value Xgcontext, s48_value vec, s48_value relative){
  
***************
*** 97,102 ****
    Vector_To_XPoints(vec, p, n);
    mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
!   XDrawPoints(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!             EXTRACT_GCONTEXT(Xgcontext), p, n, mode);
  
    return S48_UNSPECIFIC;
--- 97,102 ----
    Vector_To_XPoints(vec, p, n);
    mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
!   XDrawPoints(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
!             SCX_EXTRACT_GCONTEXT(Xgcontext), p, n, mode);
  
    return S48_UNSPECIFIC;
***************
*** 104,113 ****
  
  
! s48_value Draw_Line (s48_value Xdisplay,s48_value Xdrawable,
                     s48_value Xgcontext, s48_value x1, s48_value y1,
                     s48_value x2, s48_value y2){
      
!     XDrawLine (EXTRACT_DISPLAY(Xdisplay),EXTRACT_DRAWABLE(Xdrawable),
!              EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x1),
               (int)s48_extract_integer (y1), (int)s48_extract_integer (x2),
               (int)s48_extract_integer (y2));
--- 104,113 ----
  
  
! s48_value scx_Draw_Line (s48_value Xdisplay,s48_value Xdrawable,
                     s48_value Xgcontext, s48_value x1, s48_value y1,
                     s48_value x2, s48_value y2){
      
!     XDrawLine (SCX_EXTRACT_DISPLAY(Xdisplay),SCX_EXTRACT_DRAWABLE(Xdrawable),
!              SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x1),
               (int)s48_extract_integer (y1), (int)s48_extract_integer (x2),
               (int)s48_extract_integer (y2));
***************
*** 116,120 ****
  
  
! s48_value Draw_Lines(s48_value Xdisplay, s48_value Xdrawalbe,
                     s48_value Xgcontext, s48_value vec, s48_value relative){
    int n = S48_VECTOR_LENGTH(vec);
--- 116,120 ----
  
  
! s48_value scx_Draw_Lines(s48_value Xdisplay, s48_value Xdrawalbe,
                     s48_value Xgcontext, s48_value vec, s48_value relative){
    int n = S48_VECTOR_LENGTH(vec);
***************
*** 123,128 ****
    Vector_To_XPoints(vec, p, n);
    mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
!   XDrawLines(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawalbe),
!            EXTRACT_GCONTEXT(Xgcontext), p, n, mode);
  
    return S48_UNSPECIFIC;
--- 123,128 ----
    Vector_To_XPoints(vec, p, n);
    mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
!   XDrawLines(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawalbe),
!            SCX_EXTRACT_GCONTEXT(Xgcontext), p, n, mode);
  
    return S48_UNSPECIFIC;
***************
*** 130,134 ****
  
  
! s48_value Draw_Segments (s48_value Xdisplay, s48_value Xdrawable,
                         s48_value Xgcontext, s48_value vec){
    int i;
--- 130,134 ----
  
  
! s48_value scx_Draw_Segments (s48_value Xdisplay, s48_value Xdrawable,
                         s48_value Xgcontext, s48_value vec){
    int i;
***************
*** 142,147 ****
      p[i].y2 = (int)s48_extract_integer (S48_CAR (seg));
    }
!   XDrawSegments (EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!                EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
--- 142,147 ----
      p[i].y2 = (int)s48_extract_integer (S48_CAR (seg));
    }
!   XDrawSegments (SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!                SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
***************
*** 149,157 ****
  
  
! s48_value Draw_Rectangle(s48_value Xdisplay, s48_value Xdrawable, 
                         s48_value Xgcontext, s48_value x, s48_value y,
                         s48_value w, s48_value h){
!   XDrawRectangle (EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!                 EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
                  (int)s48_extract_integer(y), (int)s48_extract_integer(w),
                  (int)s48_extract_integer(h));
--- 149,157 ----
  
  
! s48_value scx_Draw_Rectangle(s48_value Xdisplay, s48_value Xdrawable, 
                         s48_value Xgcontext, s48_value x, s48_value y,
                         s48_value w, s48_value h){
!   XDrawRectangle (SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!                 SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
                  (int)s48_extract_integer(y), (int)s48_extract_integer(w),
                  (int)s48_extract_integer(h));
***************
*** 161,169 ****
  
  
! s48_value Fill_Rectangle (s48_value Xdisplay, s48_value Xdrawable, 
                          s48_value Xgcontext, s48_value  x, s48_value y,
                          s48_value w, s48_value h){
!   XFillRectangle(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!                EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
                 (int)s48_extract_integer(y), (int)s48_extract_integer(w),
                 (int)s48_extract_integer(h));
--- 161,169 ----
  
  
! s48_value scx_Fill_Rectangle (s48_value Xdisplay, s48_value Xdrawable, 
                          s48_value Xgcontext, s48_value  x, s48_value y,
                          s48_value w, s48_value h){
!   XFillRectangle(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!                SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
                 (int)s48_extract_integer(y), (int)s48_extract_integer(w),
                 (int)s48_extract_integer(h));
***************
*** 189,199 ****
      
  
! s48_value Draw_Rectangles (s48_value Xdisplay, s48_value Xdrawable,
                           s48_value Xgcontext, s48_value vec){
    int n = S48_VECTOR_LENGTH(vec);
    XRectangle p[n];
    Vector_To_XRectangle(vec, p, n);
!   XDrawRectangles(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!                 EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
--- 189,199 ----
      
  
! s48_value scx_Draw_Rectangles (s48_value Xdisplay, s48_value Xdrawable,
                           s48_value Xgcontext, s48_value vec){
    int n = S48_VECTOR_LENGTH(vec);
    XRectangle p[n];
    Vector_To_XRectangle(vec, p, n);
!   XDrawRectangles(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!                 SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
***************
*** 201,211 ****
  
  
! s48_value Fill_Rectangles (s48_value Xdisplay, s48_value Xdrawable,
                           s48_value Xgcontext, s48_value vec){
    int n = S48_VECTOR_LENGTH(vec);
    XRectangle p[n];
    Vector_To_XRectangle(vec, p, n);
!   XFillRectangles(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!                 EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
--- 201,211 ----
  
  
! s48_value scx_Fill_Rectangles (s48_value Xdisplay, s48_value Xdrawable,
                           s48_value Xgcontext, s48_value vec){
    int n = S48_VECTOR_LENGTH(vec);
    XRectangle p[n];
    Vector_To_XRectangle(vec, p, n);
!   XFillRectangles(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!                 SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
***************
*** 213,221 ****
  
  
! s48_value Draw_Arc (s48_value Xdisplay, s48_value Xdrawable,
                    s48_value Xgcontext, s48_value x,s48_value y, s48_value w,
                    s48_value h, s48_value a1, s48_value a2){
!   XDrawArc(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!          EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
           (int)s48_extract_integer(y), (int)s48_extract_integer(w),
           (int)s48_extract_integer(h), (int)s48_extract_integer(a1),
--- 213,221 ----
  
  
! s48_value scx_Draw_Arc (s48_value Xdisplay, s48_value Xdrawable,
                    s48_value Xgcontext, s48_value x,s48_value y, s48_value w,
                    s48_value h, s48_value a1, s48_value a2){
!   XDrawArc(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
!          SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
           (int)s48_extract_integer(y), (int)s48_extract_integer(w),
           (int)s48_extract_integer(h), (int)s48_extract_integer(a1),
***************
*** 226,234 ****
  
  
! s48_value Fill_Arc (s48_value Xdisplay, s48_value Xdrawable,
                    s48_value Xgcontext, s48_value x,s48_value y, s48_value w,
                    s48_value h, s48_value a1, s48_value a2){
!   XFillArc(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!          EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
           (int)s48_extract_integer(y), (int)s48_extract_integer(w),
           (int)s48_extract_integer(h), (int)s48_extract_integer(a1),
--- 226,234 ----
  
  
! s48_value scx_Fill_Arc (s48_value Xdisplay, s48_value Xdrawable,
                    s48_value Xgcontext, s48_value x,s48_value y, s48_value w,
                    s48_value h, s48_value a1, s48_value a2){
!   XFillArc(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
!          SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
           (int)s48_extract_integer(y), (int)s48_extract_integer(w),
           (int)s48_extract_integer(h), (int)s48_extract_integer(a1),
***************
*** 258,268 ****
  
  
! s48_value Draw_Arcs (s48_value Xdisplay, s48_value Xdrawable,
                     s48_value Xgcontext, s48_value  vec){
    int n = S48_VECTOR_LENGTH(vec);
    XArc p[n];
    Vector_To_XArc(vec, p, n);
!   XDrawArcs(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!           EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
--- 258,268 ----
  
  
! s48_value scx_Draw_Arcs (s48_value Xdisplay, s48_value Xdrawable,
                     s48_value Xgcontext, s48_value  vec){
    int n = S48_VECTOR_LENGTH(vec);
    XArc p[n];
    Vector_To_XArc(vec, p, n);
!   XDrawArcs(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
!           SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
***************
*** 270,280 ****
  
  
! s48_value Fill_Arcs (s48_value Xdisplay, s48_value Xdrawable,
                     s48_value Xgcontext, s48_value  vec){
    int n = S48_VECTOR_LENGTH(vec);
    XArc p[n];
    Vector_To_XArc(vec, p, n);
!   XFillArcs(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!           EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
--- 270,280 ----
  
  
! s48_value scx_Fill_Arcs (s48_value Xdisplay, s48_value Xdrawable,
                     s48_value Xgcontext, s48_value  vec){
    int n = S48_VECTOR_LENGTH(vec);
    XArc p[n];
    Vector_To_XArc(vec, p, n);
!   XFillArcs(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
!           SCX_EXTRACT_GCONTEXT(Xgcontext), p, n);
  
    return S48_UNSPECIFIC;
***************
*** 282,286 ****
  
  
! s48_value Fill_Polygon (s48_value Xdisplay, s48_value Xdrawable,
                        s48_value Xgcontext, s48_value vec,
                        s48_value relative, s48_value shape){
--- 282,286 ----
  
  
! s48_value scx_Fill_Polygon (s48_value Xdisplay, s48_value Xdrawable,
                        s48_value Xgcontext, s48_value vec,
                        s48_value relative, s48_value shape){
***************
*** 291,296 ****
    Vector_To_XPoints(vec, p, n);
    mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
!   XFillPolygon(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!              EXTRACT_GCONTEXT(Xgcontext), p, n, sh, mode);
  
    return S48_UNSPECIFIC;
--- 291,296 ----
    Vector_To_XPoints(vec, p, n);
    mode = !S48_FALSE_P(relative) ? CoordModePrevious : CoordModeOrigin;
!   XFillPolygon(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
!              SCX_EXTRACT_GCONTEXT(Xgcontext), p, n, sh, mode);
  
    return S48_UNSPECIFIC;
***************
*** 298,318 ****
  
  
! void s48_init_graphics(void) {
!   S48_EXPORT_FUNCTION(Clear_Area);
!   S48_EXPORT_FUNCTION(Copy_Area);
!   S48_EXPORT_FUNCTION(Copy_Plane);
!   S48_EXPORT_FUNCTION(Draw_Point);
!   S48_EXPORT_FUNCTION(Draw_Points);
!   S48_EXPORT_FUNCTION(Draw_Line);
!   S48_EXPORT_FUNCTION(Draw_Lines);
!   S48_EXPORT_FUNCTION(Draw_Segments);
!   S48_EXPORT_FUNCTION(Draw_Rectangle);
!   S48_EXPORT_FUNCTION(Fill_Rectangle);
!   S48_EXPORT_FUNCTION(Draw_Rectangles);
!   S48_EXPORT_FUNCTION(Fill_Rectangles);
!   S48_EXPORT_FUNCTION(Draw_Arc);
!   S48_EXPORT_FUNCTION(Fill_Arc);
!   S48_EXPORT_FUNCTION(Draw_Arcs);
!   S48_EXPORT_FUNCTION(Fill_Arcs);
!   S48_EXPORT_FUNCTION(Fill_Polygon);
  }
--- 298,318 ----
  
  
! void scx_init_graphics(void) {
!   S48_EXPORT_FUNCTION(scx_Clear_Area);
!   S48_EXPORT_FUNCTION(scx_Copy_Area);
!   S48_EXPORT_FUNCTION(scx_Copy_Plane);
!   S48_EXPORT_FUNCTION(scx_Draw_Point);
!   S48_EXPORT_FUNCTION(scx_Draw_Points);
!   S48_EXPORT_FUNCTION(scx_Draw_Line);
!   S48_EXPORT_FUNCTION(scx_Draw_Lines);
!   S48_EXPORT_FUNCTION(scx_Draw_Segments);
!   S48_EXPORT_FUNCTION(scx_Draw_Rectangle);
!   S48_EXPORT_FUNCTION(scx_Fill_Rectangle);
!   S48_EXPORT_FUNCTION(scx_Draw_Rectangles);
!   S48_EXPORT_FUNCTION(scx_Fill_Rectangles);
!   S48_EXPORT_FUNCTION(scx_Draw_Arc);
!   S48_EXPORT_FUNCTION(scx_Fill_Arc);
!   S48_EXPORT_FUNCTION(scx_Draw_Arcs);
!   S48_EXPORT_FUNCTION(scx_Fill_Arcs);
!   S48_EXPORT_FUNCTION(scx_Fill_Polygon);
  }

Index: main.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/main.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** main.c      2001/07/19 15:29:18     1.4
--- main.c      2001/07/31 14:51:21     1.5
***************
*** 1,29 ****
  #include "scheme48.h"
  
! extern void s48_init_window();
! extern void s48_init_display();
! extern void s48_init_type();
! extern void s48_init_color();
! extern void s48_init_colormap();
! extern void s48_init_pixel();
! extern void s48_init_gcontext();
! extern void s48_init_event();
! extern void s48_init_pixmap();
! extern void s48_init_graphics();
! extern void s48_init_font();
  
  int main(){
!   s48_add_external_init(s48_init_window);
!   s48_add_external_init(s48_init_display); 
!   s48_add_external_init(s48_init_type);
!   s48_add_external_init(s48_init_color);
!   s48_add_external_init(s48_init_color);
!   s48_add_external_init(s48_init_colormap);
!   s48_add_external_init(s48_init_pixel);
!   s48_add_external_init(s48_init_gcontext);
!   s48_add_external_init(s48_init_event);
!   s48_add_external_init(s48_init_pixmap);
!   s48_add_external_init(s48_init_graphics);
!   s48_add_external_init(s48_init_font);
  
    s48_main(8000000, 64000, 
--- 1,37 ----
  #include "scheme48.h"
  
! extern void scx_init_window();
! extern void scx_init_display();
! extern void scx_init_type();
! extern void scx_init_color();
! extern void scx_init_colormap();
! extern void scx_init_pixel();
! extern void scx_init_gcontext();
! extern void scx_init_event();
! extern void scx_init_pixmap();
! extern void scx_init_graphics();
! extern void scx_init_font();
! extern void scx_init_cursor();
! extern void scx_init_text();
! extern void scx_init_property();
! extern void scx_init_wm();
  
  int main(){
!   s48_add_external_init(scx_init_window);
!   s48_add_external_init(scx_init_display); 
!   s48_add_external_init(scx_init_type);
!   s48_add_external_init(scx_init_color);
!   s48_add_external_init(scx_init_color);
!   s48_add_external_init(scx_init_colormap);
!   s48_add_external_init(scx_init_pixel);
!   s48_add_external_init(scx_init_gcontext);
!   s48_add_external_init(scx_init_event);
!   s48_add_external_init(scx_init_pixmap);
!   s48_add_external_init(scx_init_graphics);
!   s48_add_external_init(scx_init_font);
!   s48_add_external_init(scx_init_text);
!   s48_add_external_init(scx_init_property);
!   s48_add_external_init(scx_init_cursor);
!   s48_add_external_init(scx_init_wm);
  
    s48_main(8000000, 64000, 

Index: pixel.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/pixel.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** pixel.c     2001/06/11 15:25:39     1.3
--- pixel.c     2001/07/31 14:51:21     1.4
***************
*** 2,17 ****
  #include "scheme48.h"
  
! s48_value Black_Pixel(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
!   return ENTER_PIXEL( BlackPixel(dpy, DefaultScreen(dpy)) );
  }
  
! s48_value White_Pixel(s48_value Xdisplay) {
!   Display* dpy = EXTRACT_DISPLAY(Xdisplay);
!   return ENTER_PIXEL( WhitePixel(dpy, DefaultScreen(dpy)) );
  }
  
! void s48_init_pixel(void) {
!   S48_EXPORT_FUNCTION(Black_Pixel);
!   S48_EXPORT_FUNCTION(White_Pixel);
  }
--- 2,17 ----
  #include "scheme48.h"
  
! s48_value scx_Black_Pixel(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
!   return SCX_ENTER_PIXEL( BlackPixel(dpy, DefaultScreen(dpy)) );
  }
  
! s48_value scx_White_Pixel(s48_value Xdisplay) {
!   Display* dpy = SCX_EXTRACT_DISPLAY(Xdisplay);
!   return SCX_ENTER_PIXEL( WhitePixel(dpy, DefaultScreen(dpy)) );
  }
  
! void scx_init_pixel(void) {
!   S48_EXPORT_FUNCTION(scx_Black_Pixel);
!   S48_EXPORT_FUNCTION(scx_White_Pixel);
  }

Index: pixmap.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/pixmap.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** pixmap.c    2001/07/16 13:22:50     1.4
--- pixmap.c    2001/07/31 14:51:21     1.5
***************
*** 3,56 ****
  
  
! 
! s48_value Free_Pixmap (s48_value Xdisplay, s48_value Xpixmap){
!   XFreePixmap (EXTRACT_DISPLAY(Xdisplay), EXTRACT_PIXMAP(Xpixmap));
    return S48_UNSPECIFIC;
  }
  
! s48_value Create_Pixmap (s48_value Xdisplay, s48_value Xdrawable, s48_value w,
                         s48_value h, s48_value depth){
!     Pixmap pm = XCreatePixmap (EXTRACT_DISPLAY(Xdisplay), 
!                              EXTRACT_DRAWABLE(Xdrawable), 
                               (int)s48_extract_integer (w), 
                               (int)s48_extract_integer (h),
                               (int)s48_extract_integer (depth));
!     return S48_ENTER_PIXMAP(pm);
  }
  
! s48_value Create_Bitmap_From_Data (s48_value Xdisplay, s48_value Xdrawable, 
                                   s48_value data, s48_value w, s48_value h){
!   Pixmap pm = XCreateBitmapFromData (EXTRACT_DISPLAY(Xdisplay), 
!                                    EXTRACT_DRAWABLE(Xdrawable),
                                     s48_extract_string(data), 
                                     s48_extract_integer(w),
                                     s48_extract_integer(h));
!   return S48_ENTER_PIXMAP(pm);
  }
  
  
! s48_value Create_Pixmap_From_Bitmap_Data (s48_value Xdisplay, 
                                          s48_value Xdrawable, s48_value data,
                                          s48_value w,s48_value h, s48_value f,
                                          s48_value b, s48_value d){
!   Pixmap pm = XCreatePixmapFromBitmapData (EXTRACT_DISPLAY(Xdisplay),
!                                          EXTRACT_DRAWABLE(Xdrawable),
                                           s48_extract_string(data), 
                                           (int)s48_extract_integer(w),
                                           (int)s48_extract_integer(h),
                                           s48_extract_integer(f),
!                                          s48_extract_intgeger(b),
                                           (int)s48_extract_integer(d));
!   return S48_ENTER_PIXMAP(pm);
  }
  
! s48_value Read_Bitmap_File (s48_value Xdisplay, s48_value Xdrawable, 
s48_value file){
    unsigned width, height;
    int res, xhot, yhot;
    Pixmap bitmap;
!   s48_value ret;
    S48_DECLARE_GC_PROTECT(1);
    // Not used: Disable_Interrupts;
!   res = XReadBitmapFile (EXTRACT_DISPLAY(Xdisplay), 
EXTRACT_DRAWABLE(Xdrawable),
                         s48_extract_string(file), &width, &height, &bitmap,
                         &xhot, &yhot);
--- 3,56 ----
  
  
! s48_value scx_Free_Pixmap (s48_value Xdisplay, s48_value Xpixmap){
!   XFreePixmap (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_PIXMAP(Xpixmap));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Create_Pixmap (s48_value Xdisplay, s48_value Xdrawable, 
s48_value w,
                         s48_value h, s48_value depth){
!     Pixmap pm = XCreatePixmap (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                              SCX_EXTRACT_DRAWABLE(Xdrawable), 
                               (int)s48_extract_integer (w), 
                               (int)s48_extract_integer (h),
                               (int)s48_extract_integer (depth));
!     return SCX_ENTER_PIXMAP(pm);
  }
  
! s48_value scx_Create_Bitmap_From_Data (s48_value Xdisplay, s48_value 
Xdrawable, 
                                   s48_value data, s48_value w, s48_value h){
!   Pixmap pm = XCreateBitmapFromData (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                                    SCX_EXTRACT_DRAWABLE(Xdrawable),
                                     s48_extract_string(data), 
                                     s48_extract_integer(w),
                                     s48_extract_integer(h));
!   return SCX_ENTER_PIXMAP(pm);
  }
  
  
! s48_value scx_Create_Pixmap_From_Bitmap_Data (s48_value Xdisplay, 
                                          s48_value Xdrawable, s48_value data,
                                          s48_value w,s48_value h, s48_value f,
                                          s48_value b, s48_value d){
!   Pixmap pm = XCreatePixmapFromBitmapData (SCX_EXTRACT_DISPLAY(Xdisplay),
!                                          SCX_EXTRACT_DRAWABLE(Xdrawable),
                                           s48_extract_string(data), 
                                           (int)s48_extract_integer(w),
                                           (int)s48_extract_integer(h),
                                           s48_extract_integer(f),
!                                          s48_extract_integer(b),
                                           (int)s48_extract_integer(d));
!   return SCX_ENTER_PIXMAP(pm);
  }
  
! s48_value scx_Read_Bitmap_File (s48_value Xdisplay, s48_value Xdrawable, 
!                           s48_value file){
    unsigned width, height;
    int res, xhot, yhot;
    Pixmap bitmap;
!   s48_value ret = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
    // Not used: Disable_Interrupts;
!   res = XReadBitmapFile (SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
                         s48_extract_string(file), &width, &height, &bitmap,
                         &xhot, &yhot);
***************
*** 64,68 ****
    ret = s48_cons (s48_enter_integer(height), ret);
    ret = s48_cons (s48_enter_integer(width), ret);
!   ret = s48_cons (S48_ENTER_PIXMAP(bitmap), ret);
    S48_GC_UNPROTECT();
    return ret;
--- 64,68 ----
    ret = s48_cons (s48_enter_integer(height), ret);
    ret = s48_cons (s48_enter_integer(width), ret);
!   ret = s48_cons (SCX_ENTER_PIXMAP(bitmap), ret);
    S48_GC_UNPROTECT();
    return ret;
***************
*** 71,81 ****
  
  
! s48_value Write_Bitmap_File (s48_value Xdisplay, s48_value file, 
                             s48_value Xbitmap, s48_value w, s48_value h,
                             s48_value x, s48_value y){
    int ret;
    // Not used: Disable_Interrupts;
!   ret = XWriteBitmapFile (EXTRACT_DISPLAY(Xdisplay), s48_extract_string(file),
!                         EXTRACT_PIXMAP(Xbitmap), (int)s48_extract_integer(w),
                          (int)s48_extract_integer(h),
                          (int)s48_extract_integer(x), 
--- 71,83 ----
  
  
! s48_value scx_Write_Bitmap_File (s48_value Xdisplay, s48_value file, 
                             s48_value Xbitmap, s48_value w, s48_value h,
                             s48_value x, s48_value y){
    int ret;
    // Not used: Disable_Interrupts;
!   ret = XWriteBitmapFile (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                         s48_extract_string(file),
!                         SCX_EXTRACT_PIXMAP(Xbitmap), 
!                         (int)s48_extract_integer(w),
                          (int)s48_extract_integer(h),
                          (int)s48_extract_integer(x), 
***************
*** 86,96 ****
  
  
! void s48_init_pixmap(void) {
!   S48_EXPORT_FUNCTION(Free_Pixmap);
!   S48_EXPORT_FUNCTION(Create_Pixmap);
!   S48_EXPORT_FUNCTION(Create_Bitmap_From_Data);
!   S48_EXPORT_FUNCTION(Create_Pixmap_From_Bitmap_Data);
!   S48_EXPORT_FUNCTION(Read_Bitmap_File);
!   S48_EXPORT_FUNCTION(Write_Bitmap_File);
  }
  
--- 88,98 ----
  
  
! void scx_init_pixmap(void) {
!   S48_EXPORT_FUNCTION(scx_Free_Pixmap);
!   S48_EXPORT_FUNCTION(scx_Create_Pixmap);
!   S48_EXPORT_FUNCTION(scx_Create_Bitmap_From_Data);
!   S48_EXPORT_FUNCTION(scx_Create_Pixmap_From_Bitmap_Data);
!   S48_EXPORT_FUNCTION(scx_Read_Bitmap_File);
!   S48_EXPORT_FUNCTION(scx_Write_Bitmap_File);
  }
  

Index: property.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/property.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** property.c  2001/07/11 14:59:28     1.5
--- property.c  2001/07/31 14:51:21     1.6
***************
*** 2,36 ****
  #include "scheme48.h"
  
- s48_value Sym_Now;
  
- 
  /* Should be used with care */
  
! s48_value Intern_Atom (s48_value Xdisplay, s48_value name){
!   Atom a = XInternAtom(EXTRACT_DISPLAY(Xdisplay), s48_extract_string(name), 
0);
!   return ENTER_ATOM(a);
  }
  
! s48_value Find_Atom (s48_value Xdisplay, s48_value name){
!   Atom a = XInternAtom (EXTRACT_DISPLAY(Xdisplay), s48_extract_string(name), 
1);
!   return ENTER_ATOM(a);
  }
  
! s48_value Atom_Name (s48_value Xdisplay, s48_value a) {
      register char *s;
      // not used: Disalbe_Interrupts
!     s = XGetAtomName (EXTRACT_DISPLAY(Xdisplay), a);
      // not used: Enable_Interrupts
      return s48_enter_string (s);
  }
  
! s48_value List_Properties (s48_value Xwindow, s48_value Xdisplay){
      int n, i;
      Atom *ap;
!     s48_value v;
      S48_DECLARE_GC_PROTECT(1);
      //not used: Disable_Interrupts
!     ap = XListProperties (EXTRACT_DISPLAY(Xdisplay), 
!                         EXTRACT_WINDOW(Xwindow), &n);
      //not used: Enable_Interrupts
      v = s48_make_vector (n, S48_NULL);
--- 2,36 ----
  #include "scheme48.h"
  
  
  /* Should be used with care */
  
! s48_value scx_Intern_Atom (s48_value Xdisplay, s48_value name){
!   Atom a = XInternAtom(SCX_EXTRACT_DISPLAY(Xdisplay), 
!                      s48_extract_string(name), 0);
!   return SCX_ENTER_ATOM(a);
  }
  
! s48_value scx_Find_Atom (s48_value Xdisplay, s48_value name){
!   Atom a = XInternAtom (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                       s48_extract_string(name), 1);
!   return SCX_ENTER_ATOM(a);
  }
  
! s48_value scx_Atom_Name (s48_value Xdisplay, s48_value a) {
      register char *s;
      // not used: Disalbe_Interrupts
!     s = XGetAtomName (SCX_EXTRACT_DISPLAY(Xdisplay), a);
      // not used: Enable_Interrupts
      return s48_enter_string (s);
  }
  
! s48_value scx_List_Properties (s48_value Xwindow, s48_value Xdisplay){
      int n, i;
      Atom *ap;
!     s48_value v = S48_FALSE;
      S48_DECLARE_GC_PROTECT(1);
      //not used: Disable_Interrupts
!     ap = XListProperties (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                         SCX_EXTRACT_WINDOW(Xwindow), &n);
      //not used: Enable_Interrupts
      v = s48_make_vector (n, S48_NULL);
***************
*** 45,49 ****
  
  
! s48_value Get_Property(s48_value Xwindow, s48_value Xdisplay, s48_value 
Xatom_prop,
                       s48_value Xatom_type, s48_value start, s48_value len,
                       s48_value deletep) {
--- 45,50 ----
  
  
! s48_value scx_Get_Property(s48_value Xwindow, s48_value Xdisplay, 
!                      s48_value Xatom_prop,
                       s48_value Xatom_type, s48_value start, s48_value len,
                       s48_value deletep) {
***************
*** 52,65 ****
    unsigned long nitems_ret, bytes_left_ret;
    unsigned char* prop_ret;
!   s48_value ret, x, v;
  
    S48_DECLARE_GC_PROTECT(2);
  
!   if (!S48_EQ_P(Xatom_type, S48_FALSE)){
      req_type = s48_extract_integer(Xatom_type);
    }
    //not used: Disable_Interrupts
!   XGetWindowProperty (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
!                     s48_extract_integer(Xatom_prop), s48_extract_integer 
(start),
                      s48_extract_integer (len), S48_EXTRACT_BOOLEAN(deletep), 
                      req_type, &actual_type_ret, &format_ret, &nitems_ret,
--- 53,68 ----
    unsigned long nitems_ret, bytes_left_ret;
    unsigned char* prop_ret;
!   s48_value ret = S48_FALSE, x, v = S48_FALSE;
  
    S48_DECLARE_GC_PROTECT(2);
  
!   if (!S48_FALSE_P(Xatom_type)){
      req_type = s48_extract_integer(Xatom_type);
    }
    //not used: Disable_Interrupts
!   XGetWindowProperty (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                     SCX_EXTRACT_WINDOW(Xwindow),
!                     s48_extract_integer(Xatom_prop), 
!                     s48_extract_integer (start),
                      s48_extract_integer (len), S48_EXTRACT_BOOLEAN(deletep), 
                      req_type, &actual_type_ret, &format_ret, &nitems_ret,
***************
*** 94,98 ****
  
  
! s48_value Change_Property(s48_value Xdisplay, s48_value Xwindow,
                          s48_value Xatom_prop,  s48_value Xatom_type,
                          s48_value format, s48_value mode, 
--- 97,101 ----
  
  
! s48_value scx_Change_Property(s48_value Xdisplay, s48_value Xwindow,
                          s48_value Xatom_prop,  s48_value Xatom_type,
                          s48_value format, s48_value mode, 
***************
*** 111,115 ****
      // Alloca (buf, char*, nitems * (f / sizeof (char)));
      for (i = 0; i < nitems; i++) {
!       x = (int)s48_extract_integer(s48_VECTOR_REF(data, nitems));
        if (f == 16) {
        *((short *)buf + i) = x;     /* Assumes short is 16 bits */
--- 114,118 ----
      // Alloca (buf, char*, nitems * (f / sizeof (char)));
      for (i = 0; i < nitems; i++) {
!       x = (int)s48_extract_integer(S48_VECTOR_REF(data, nitems));
        if (f == 16) {
        *((short *)buf + i) = x;     /* Assumes short is 16 bits */
***************
*** 118,123 ****
        break;
    }
!   XChangeProperty (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
!                  EXTRACT_ATOM(Xatom_prop), EXTRACT_ATOM(Xatom_type),
                   f, m, (unsigned char *)buf, nitems);
    return S48_UNSPECIFIC;
--- 121,126 ----
        break;
    }
!   XChangeProperty (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow),
!                  SCX_EXTRACT_ATOM(Xatom_prop), SCX_EXTRACT_ATOM(Xatom_type),
                   f, m, (unsigned char *)buf, nitems);
    return S48_UNSPECIFIC;
***************
*** 125,137 ****
  
  
! s48_value Delete_Property (s48_value Xdisplay, s48_value Xwindow,
                             s48_value Xatom_prop){
!   XDeleteProperty (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
!                  EXTRACT_ATOM(Xatom_prop));
    return S48_UNSPECIFIC;
  }
  
  
! s48_value Rotate_Properties (s48_value Xdisplay, s48_value Xwindow,
                             s48_value Xatom_vec, s48_value delta){
    int n = S48_VECTOR_LENGTH(Xatom_vec), i;
--- 128,140 ----
  
  
! s48_value scx_Delete_Property (s48_value Xdisplay, s48_value Xwindow,
                             s48_value Xatom_prop){
!   XDeleteProperty (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow),
!                  SCX_EXTRACT_ATOM(Xatom_prop));
    return S48_UNSPECIFIC;
  }
  
  
! s48_value scx_Rotate_Properties (s48_value Xdisplay, s48_value Xwindow,
                             s48_value Xatom_vec, s48_value delta){
    int n = S48_VECTOR_LENGTH(Xatom_vec), i;
***************
*** 140,184 ****
        p[i] = s48_extract_integer(S48_VECTOR_REF(Xatom_vec, i));
    }
!   XRotateWindowProperties(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow),
                          p, n, (int)s48_extract_integer(delta));
    return S48_UNSPECIFIC;
  }
  
! s48_value Set_Selection_Owner (s48_value Xdisplay, s48_value Xatom_s,
                               s48_value Xwindow_owner, s48_value time){
    
!   XSetSelectionOwner (EXTRACT_DISPLAY(Xdisplay), EXTRACT_ATOM(Xatom_s),
!                     EXTRACT_WINDOW(Xwindow_owner), EXTRACT_TIME(time));
    return S48_UNSPECIFIC;
  }
  
  
! s48_value Get_Selection_Owner (s48_value Xdisplay, s48_value Xatom_s){
!     return ENTER_WINDOW (XGetSelectionOwner (EXTRACT_DISPLAY(Xdisplay), 
!                                            EXTRACT_ATOM(Xatom_s)));
  }
  
  
! s48_value Convert_Selection (s48_value Xdisplay, s48_value Xatom_s, 
                             s48_value Xatom_t, s48_value Xatom_p,
                             s48_value Xwindow, s48_value time){
     
!  XConvertSelection(EXTRACT_DISPLAY(Xdisplay), EXTRACT_ATOM(Xatom_s),
!                  EXTRACT_ATOM(Xatom_t), EXTRACT_ATOM(Xatom_p),
!                  EXTRACT_WINDOW(Xwindow), EXTRACT_TIME(time));
   return S48_UNSPECIFIC;
  }
  
! void s48_init_property(void) {
!   S48_EXPORT_FUNCTION(Intern_Atom);
!   S48_EXPORT_FUNCTION(Find_Atom);
!   S48_EXPORT_FUNCTION(Atom_Name);
!   S48_EXPORT_FUNCTION(List_Properties);
!   S48_EXPORT_FUNCTION(Get_Property);
!   S48_EXPORT_FUNCTION(Change_Property);
!   S48_EXPORT_FUNCTION(Delete_Property);
!   S48_EXPORT_FUNCTION(Rotate_Properties);
!   S48_EXPORT_FUNCTION(Set_Selection_Owner);
!   S48_EXPORT_FUNCTION(Get_Selection_Owner);
!   S48_EXPORT_FUNCTION(Convert_Selection);
  }
--- 143,188 ----
        p[i] = s48_extract_integer(S48_VECTOR_REF(Xatom_vec, i));
    }
!   XRotateWindowProperties(SCX_EXTRACT_DISPLAY(Xdisplay), 
!                         SCX_EXTRACT_WINDOW(Xwindow),
                          p, n, (int)s48_extract_integer(delta));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Set_Selection_Owner (s48_value Xdisplay, s48_value Xatom_s,
                               s48_value Xwindow_owner, s48_value time){
    
!   XSetSelectionOwner (SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_ATOM(Xatom_s),
!                     SCX_EXTRACT_WINDOW(Xwindow_owner), 
SCX_EXTRACT_TIME(time));
    return S48_UNSPECIFIC;
  }
  
  
! s48_value scx_Get_Selection_Owner (s48_value Xdisplay, s48_value Xatom_s){
!     return SCX_ENTER_WINDOW (XGetSelectionOwner 
(SCX_EXTRACT_DISPLAY(Xdisplay), 
!                                            SCX_EXTRACT_ATOM(Xatom_s)));
  }
  
  
! s48_value scx_Convert_Selection (s48_value Xdisplay, s48_value Xatom_s, 
                             s48_value Xatom_t, s48_value Xatom_p,
                             s48_value Xwindow, s48_value time){
     
!  XConvertSelection(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_ATOM(Xatom_s),
!                  SCX_EXTRACT_ATOM(Xatom_t), SCX_EXTRACT_ATOM(Xatom_p),
!                  SCX_EXTRACT_WINDOW(Xwindow), SCX_EXTRACT_TIME(time));
   return S48_UNSPECIFIC;
  }
  
! void scx_init_property(void) {
!   S48_EXPORT_FUNCTION(scx_Intern_Atom);
!   S48_EXPORT_FUNCTION(scx_Find_Atom);
!   S48_EXPORT_FUNCTION(scx_Atom_Name);
!   S48_EXPORT_FUNCTION(scx_List_Properties);
!   S48_EXPORT_FUNCTION(scx_Get_Property);
!   S48_EXPORT_FUNCTION(scx_Change_Property);
!   S48_EXPORT_FUNCTION(scx_Delete_Property);
!   S48_EXPORT_FUNCTION(scx_Rotate_Properties);
!   S48_EXPORT_FUNCTION(scx_Set_Selection_Owner);
!   S48_EXPORT_FUNCTION(scx_Get_Selection_Owner);
!   S48_EXPORT_FUNCTION(scx_Convert_Selection);
  }

Index: test
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/test,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
Binary files /tmp/cvsLAza2k and /tmp/cvsen8AGB differ

Index: text.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/text.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** text.c      2001/07/19 13:59:42     1.3
--- text.c      2001/07/31 14:51:21     1.4
***************
*** 4,10 ****
  extern XDrawText(), XDrawText16();
  
- 
- 
- 
  /* Calculation of text widths and extents should not be done using
   * the Xlib functions.  For instance, the values returned by
--- 4,7 ----
***************
*** 17,22 ****
    char* s;
    XChar2b* s2;
!   XFontStruct* font = EXTRACT_XFONTSTRUCT(Xfontstruct);
!   int len = (int)S48_VECTOR_LENGHT(text), i, tmp;
    if (s48_extract_integer(format) == 2){
      for (i = 0; i < len; i++){
--- 14,19 ----
    char* s;
    XChar2b* s2;
!   XFontStruct* font = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
!   int len = (int)S48_VECTOR_LENGTH(text), i, tmp;
    if (s48_extract_integer(format) == 2){
      for (i = 0; i < len; i++){
***************
*** 29,33 ****
    else{
      for (i = 0; i < len; i++){
!       s[i] = (int)S48_extract_integer(S48_VECTOR_REF(text, i));
      }
      i = XTextWidth(font, s, len);
--- 26,30 ----
    else{
      for (i = 0; i < len; i++){
!       s[i] = (int)s48_extract_integer(S48_VECTOR_REF(text, i));
      }
      i = XTextWidth(font, s, len);
***************
*** 41,47 ****
    char* s;
    XChar2b* s2;
!   XFontStruct* font = EXTRACT_XFONTSTRUCT(Xfontstruct);
    XCharStruct CI;
!   int len = (int)S48_VECTOR_LENGHT(text), i, tmp,  dir, fasc, fdesc;
    if (s48_extract_integer(format) == 2){
      for (i = 0; i < len; i++){
--- 38,44 ----
    char* s;
    XChar2b* s2;
!   XFontStruct* font = SCX_EXTRACT_FONTSTRUCT(Xfontstruct);
    XCharStruct CI;
!   int len = (int)S48_VECTOR_LENGTH(text), i, tmp,  dir, fasc, fdesc;
    if (s48_extract_integer(format) == 2){
      for (i = 0; i < len; i++){
***************
*** 87,92 ****
        s2[i].byte2 = tmp & 0xff;
      }
!     XDrawImageString16 (EXTRACT_DISPLAY(Xdisplay), 
EXTRACT_DRAWABLE(Xdrawable),
!                       EXTRACT_GCONTEXT(Xgcontext), 
                        (int)s48_extract_integer(x),
                        (int)s48_extract_integer(y), s2, len);
--- 84,89 ----
        s2[i].byte2 = tmp & 0xff;
      }
!     XDrawImageString16 (SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!                       SCX_EXTRACT_GCONTEXT(Xgcontext), 
                        (int)s48_extract_integer(x),
                        (int)s48_extract_integer(y), s2, len);
***************
*** 95,100 ****
        s[i] = (int)s48_extract_integer(S48_VECTOR_REF(text, i));
      }
!     XDrawImageString (EXTRACT_DISPLAY(Xdisplay), EXTRACT_INTEGER(Xdrawable),
!                     EXTRACT_GCONTEXT(Xgcontext),
                      (int)s48_extract_integer(x),
                      (int)s48_extract_integer(y), s, len);
--- 92,97 ----
        s[i] = (int)s48_extract_integer(S48_VECTOR_REF(text, i));
      }
!     XDrawImageString (SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!                     SCX_EXTRACT_GCONTEXT(Xgcontext),
                      (int)s48_extract_integer(x),
                      (int)s48_extract_integer(y), s, len);
***************
*** 113,120 ****
      len = S48_VECTOR_LENGTH(text);
  
!     if (!len){
        return S48_UNSPECIFIC;
      }
      // count the strings in text:
      for (i = 0; i < len; i++){
        if (S48_VECTOR_P(S48_VECTOR_REF(text, i))){
--- 110,118 ----
      len = S48_VECTOR_LENGTH(text);
  
!     if (len == 0){
        return S48_UNSPECIFIC;
      }
      // count the strings in text:
+ 
      for (i = 0; i < len; i++){
        if (S48_VECTOR_P(S48_VECTOR_REF(text, i))){
***************
*** 150,164 ****
        set++;
        }else{
!       item[set].font = EXTRACT_XFONT(S48_VECTOR_REF(text, i));
        item[set].delta = 0;
        }
      }
      if (twobyte){
!       XDrawText16(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!                 EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
                  (int)s48_extract_integer(y), (XTextItem16*) item, nitems);
      }else{
!       XDrawText(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
!               EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
                (int)s48_extract_integer(y), item, nitems);
      }
--- 148,162 ----
        set++;
        }else{
!       item[set].font = SCX_EXTRACT_FONT(S48_VECTOR_REF(text, i));
        item[set].delta = 0;
        }
      }
      if (twobyte){
!       XDrawText16(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!                 SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
                  (int)s48_extract_integer(y), (XTextItem16*) item, nitems);
      }else{
!       XDrawText(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_DRAWABLE(Xdrawable),
!               SCX_EXTRACT_GCONTEXT(Xgcontext), (int)s48_extract_integer(x),
                (int)s48_extract_integer(y), item, nitems);
      }
***************
*** 168,172 ****
            
            
! void s48_init_text(void) {
    S48_EXPORT_FUNCTION(Text_Width);
    S48_EXPORT_FUNCTION(Extents_Text);
--- 166,170 ----
            
            
! void scx_init_text(void) {
    S48_EXPORT_FUNCTION(Text_Width);
    S48_EXPORT_FUNCTION(Extents_Text);

Index: type.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/type.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** type.c      2001/07/30 14:18:32     1.10
--- type.c      2001/07/31 14:51:21     1.11
***************
*** 12,16 ****
  
  
! s48_value string_to_symbol_binding;
  
  s48_value s48_enter_symbol(char* name) {
--- 12,16 ----
  
  
! s48_value string_to_symbol_binding = S48_FALSE;
  
  s48_value s48_enter_symbol(char* name) {
***************
*** 928,932 ****
  */
  
! void s48_init_type(void) {
    S48_GC_PROTECT_GLOBAL(string_to_symbol_binding);
    string_to_symbol_binding = s48_get_imported_binding("string->symbol");
--- 928,932 ----
  */
  
! void scx_init_type(void) {
    S48_GC_PROTECT_GLOBAL(string_to_symbol_binding);
    string_to_symbol_binding = s48_get_imported_binding("string->symbol");

Index: window.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/window.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** window.c    2001/07/30 14:22:22     1.8
--- window.c    2001/07/31 14:51:21     1.9
***************
*** 75,79 ****
      //else // error ...
    }
!   return EXTRACT_PIXMAP(value);
  }
  
--- 75,79 ----
      //else // error ...
    }
!   return SCX_EXTRACT_PIXMAP(value);
  }
  
***************
*** 88,92 ****
  }
      
! s48_value Create_Window (s48_value Xdisplay, s48_value Xparent, s48_value x, 
                         s48_value y, s48_value width, s48_value height, 
                         s48_value border_width, s48_value attrAlist) {
--- 88,92 ----
  }
      
! s48_value scx_Create_Window (s48_value Xdisplay, s48_value Xparent, s48_value 
x, 
                         s48_value y, s48_value width, s48_value height, 
                         s48_value border_width, s48_value attrAlist) {
***************
*** 96,100 ****
    
    Window win;
!   win = XCreateWindow( EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xparent), 
                       (int)s48_extract_integer(x),
                       (int)s48_extract_integer(y),
--- 96,100 ----
    
    Window win;
!   win = XCreateWindow( SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_WINDOW(Xparent), 
                       (int)s48_extract_integer(x),
                       (int)s48_extract_integer(y),
***************
*** 107,119 ****
                       mask,
                       &Xattrs );
!   return ENTER_WINDOW(win);
  }
  
! s48_value Destroy_Window (s48_value Xdisplay, s48_value Xwindow) {
!   XDestroyWindow (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value Change_Window_Attributes(s48_value Xwindow, s48_value Xdisplay,
    s48_value attrAlist) {
  
--- 107,119 ----
                       mask,
                       &Xattrs );
!   return SCX_ENTER_WINDOW(win);
  }
  
! s48_value scx_Destroy_Window (s48_value Xdisplay, s48_value Xwindow) {
!   XDestroyWindow (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Change_Window_Attributes(s48_value Xwindow, s48_value Xdisplay,
    s48_value attrAlist) {
  
***************
*** 121,130 ****
    unsigned long mask = AList_To_XSetWindowAttributes( attrAlist, &Xattrs );
  
!   XChangeWindowAttributes(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow), 
                          mask, &Xattrs);
    return S48_UNSPECIFIC;
  }
  
! s48_value Get_Window_Attributes(s48_value Xdisplay, s48_value Xwindow) {
    XWindowAttributes WA;
  
--- 121,130 ----
    unsigned long mask = AList_To_XSetWindowAttributes( attrAlist, &Xattrs );
  
!   XChangeWindowAttributes(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_WINDOW(Xwindow), 
                          mask, &Xattrs);
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Get_Window_Attributes(s48_value Xdisplay, s48_value Xwindow) {
    XWindowAttributes WA;
  
***************
*** 133,137 ****
    s48_value res = S48_NULL;
  
!   if (!XGetWindowAttributes(EXTRACT_DISPLAY(Xdisplay),EXTRACT_WINDOW(Xwindow),
                            &WA))
      res = S48_FALSE;
--- 133,137 ----
    s48_value res = S48_NULL;
  
!   if 
(!XGetWindowAttributes(SCX_EXTRACT_DISPLAY(Xdisplay),SCX_EXTRACT_WINDOW(Xwindow),
                            &WA))
      res = S48_FALSE;
***************
*** 147,152 ****
      S48_VECTOR_SET(res, 4, s48_enter_integer(WA.border_width));
      S48_VECTOR_SET(res, 5, s48_enter_integer(WA.depth));
!     S48_VECTOR_SET(res, 6, ENTER_VISUAL(WA.visual));
!     S48_VECTOR_SET(res, 7, ENTER_WINDOW(WA.root));
      S48_VECTOR_SET(res, 8, Bit_To_Symbol(WA.class, Class_Syms));
      S48_VECTOR_SET(res, 9, Bit_To_Symbol(WA.bit_gravity, Bit_Grav_Syms));
--- 147,152 ----
      S48_VECTOR_SET(res, 4, s48_enter_integer(WA.border_width));
      S48_VECTOR_SET(res, 5, s48_enter_integer(WA.depth));
!     S48_VECTOR_SET(res, 6, SCX_ENTER_VISUAL(WA.visual));
!     S48_VECTOR_SET(res, 7, SCX_ENTER_WINDOW(WA.root));
      S48_VECTOR_SET(res, 8, Bit_To_Symbol(WA.class, Class_Syms));
      S48_VECTOR_SET(res, 9, Bit_To_Symbol(WA.bit_gravity, Bit_Grav_Syms));
***************
*** 155,161 ****
                                          Backing_Store_Syms));
      S48_VECTOR_SET(res, 12, s48_enter_integer(WA.backing_planes));
!     S48_VECTOR_SET(res, 13, ENTER_PIXEL(WA.backing_pixel));
      S48_VECTOR_SET(res, 14, WA.save_under ? S48_TRUE : S48_FALSE );
!     S48_VECTOR_SET(res, 15, ENTER_COLORMAP( WA.colormap ));
      S48_VECTOR_SET(res, 16, WA.map_installed ? S48_TRUE : S48_FALSE);
      S48_VECTOR_SET(res, 17, Bit_To_Symbol( WA.map_state, Map_State_Syms));
--- 155,161 ----
                                          Backing_Store_Syms));
      S48_VECTOR_SET(res, 12, s48_enter_integer(WA.backing_planes));
!     S48_VECTOR_SET(res, 13, SCX_ENTER_PIXEL(WA.backing_pixel));
      S48_VECTOR_SET(res, 14, WA.save_under ? S48_TRUE : S48_FALSE );
!     S48_VECTOR_SET(res, 15, SCX_ENTER_COLORMAP( WA.colormap ));
      S48_VECTOR_SET(res, 16, WA.map_installed ? S48_TRUE : S48_FALSE);
      S48_VECTOR_SET(res, 17, Bit_To_Symbol( WA.map_state, Map_State_Syms));
***************
*** 175,179 ****
  }
  
! s48_value Configure_Window (s48_value Xwindow, s48_value Xdisplay, 
                            s48_value alist) {
    unsigned long mask = 0;
--- 175,179 ----
  }
  
! s48_value scx_Configure_Window (s48_value Xwindow, s48_value Xdisplay, 
                            s48_value alist) {
    unsigned long mask = 0;
***************
*** 215,251 ****
    } // for
  
!   XConfigureWindow (EXTRACT_DISPLAY(Xdisplay),EXTRACT_WINDOW(Xwindow), 
                    mask, &WC);
    return S48_UNSPECIFIC;
  }
  
! s48_value Map_Window(s48_value Xwindow, s48_value Xdisplay) {
!   XMapWindow(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
    
! s48_value Unmap_Window(s48_value Xwindow, s48_value Xdisplay) {
!   XUnmapWindow(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value Destroy_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
!   XDestroySubwindows(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value Map_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
!   XMapSubwindows(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value Unmap_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
!   XUnmapSubwindows(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value Circulate_Subwindows(s48_value Xwindow, s48_value Xdisplay,
                               s48_value dir) {
!   XCirculateSubwindows(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow), 
                       S48_FALSE_P(dir) ? RaiseLowest : LowerHighest);
    return S48_UNSPECIFIC;
--- 215,251 ----
    } // for
  
!   XConfigureWindow 
(SCX_EXTRACT_DISPLAY(Xdisplay),SCX_EXTRACT_WINDOW(Xwindow), 
                    mask, &WC);
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Map_Window(s48_value Xwindow, s48_value Xdisplay) {
!   XMapWindow(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
    
! s48_value scx_Unmap_Window(s48_value Xwindow, s48_value Xdisplay) {
!   XUnmapWindow(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Destroy_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
!   XDestroySubwindows(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Map_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
!   XMapSubwindows(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Unmap_Subwindows (s48_value Xwindow, s48_value Xdisplay) {
!   XUnmapSubwindows(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_WINDOW(Xwindow));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Circulate_Subwindows(s48_value Xwindow, s48_value Xdisplay,
                               s48_value dir) {
!   XCirculateSubwindows(SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_WINDOW(Xwindow), 
                       S48_FALSE_P(dir) ? RaiseLowest : LowerHighest);
    return S48_UNSPECIFIC;
***************
*** 268,280 ****
  */
  
! s48_value Query_Tree (s48_value Xwindow, s48_value Xdisplay) {
    Window root, parent, *children;
    int i;
    unsigned n;
  
!   s48_value v, ret;
    S48_DECLARE_GC_PROTECT(2);
    
!   XQueryTree (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow), 
              &root, &parent, &children, &n);
  
--- 268,280 ----
  */
  
! s48_value scx_Query_Tree (s48_value Xwindow, s48_value Xdisplay) {
    Window root, parent, *children;
    int i;
    unsigned n;
  
!   s48_value v = S48_FALSE, ret = S48_FALSE;
    S48_DECLARE_GC_PROTECT(2);
    
!   XQueryTree (SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(Xwindow), 
              &root, &parent, &children, &n);
  
***************
*** 287,295 ****
    v = s48_make_vector (n, S48_FALSE);
    for (i = 0; i < n; i++) {
!     S48_VECTOR_SET(v, i, ENTER_WINDOW(children[i]));
    }
  
!   S48_VECTOR_SET(ret, 0, ENTER_WINDOW(root));
!   S48_VECTOR_SET(ret, 1, ENTER_WINDOW(parent));
    S48_VECTOR_SET(ret, 2, v);
  
--- 287,295 ----
    v = s48_make_vector (n, S48_FALSE);
    for (i = 0; i < n; i++) {
!     S48_VECTOR_SET(v, i, SCX_ENTER_WINDOW(children[i]));
    }
  
!   S48_VECTOR_SET(ret, 0, SCX_ENTER_WINDOW(root));
!   S48_VECTOR_SET(ret, 1, SCX_ENTER_WINDOW(parent));
    S48_VECTOR_SET(ret, 2, v);
  
***************
*** 298,302 ****
  }
  
! s48_value Translate_Coordinates (s48_value Xdisplay, s48_value srcXwindow, 
                                 s48_value x, s48_value y, 
                                 s48_value dstXwindow) {
--- 298,302 ----
  }
  
! s48_value scx_Translate_Coordinates (s48_value Xdisplay, s48_value 
srcXwindow, 
                                 s48_value x, s48_value y, 
                                 s48_value dstXwindow) {
***************
*** 307,313 ****
    S48_DECLARE_GC_PROTECT(1);
  
!   if (!XTranslateCoordinates (EXTRACT_DISPLAY(Xdisplay), 
!                             EXTRACT_WINDOW(srcXwindow), 
!                             EXTRACT_WINDOW(dstXwindow),
                              (int)s48_extract_integer (x), 
                              (int)s48_extract_integer (y), 
--- 307,313 ----
    S48_DECLARE_GC_PROTECT(1);
  
!   if (!XTranslateCoordinates (SCX_EXTRACT_DISPLAY(Xdisplay), 
!                             SCX_EXTRACT_WINDOW(srcXwindow), 
!                             SCX_EXTRACT_WINDOW(dstXwindow),
                              (int)s48_extract_integer (x), 
                              (int)s48_extract_integer (y), 
***************
*** 320,324 ****
    S48_VECTOR_SET(v, 0, s48_enter_integer(rx));
    S48_VECTOR_SET(v, 1, s48_enter_integer(ry));
!   S48_VECTOR_SET(v, 2, ENTER_WINDOW(child));
  
    S48_GC_UNPROTECT();
--- 320,324 ----
    S48_VECTOR_SET(v, 0, s48_enter_integer(rx));
    S48_VECTOR_SET(v, 1, s48_enter_integer(ry));
!   S48_VECTOR_SET(v, 2, SCX_ENTER_WINDOW(child));
  
    S48_GC_UNPROTECT();
***************
*** 326,332 ****
  }
  
! s48_value Query_Pointer (s48_value Xdisplay, s48_value Xwindow) {
  
!   s48_value v;
    Bool ret;
    Window root, child;
--- 326,332 ----
  }
  
! s48_value scx_Query_Pointer (s48_value Xdisplay, s48_value Xwindow) {
  
!   s48_value v = S48_FALSE;
    Bool ret;
    Window root, child;
***************
*** 335,339 ****
    S48_DECLARE_GC_PROTECT(1);
    
!   ret = XQueryPointer (EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(Xwindow), 
                       &root, &child, &r_x, &r_y, &x, &y, &mask);
  
--- 335,339 ----
    S48_DECLARE_GC_PROTECT(1);
    
!   ret = XQueryPointer (SCX_EXTRACT_DISPLAY(Xdisplay), 
SCX_EXTRACT_WINDOW(Xwindow), 
                       &root, &child, &r_x, &r_y, &x, &y, &mask);
  
***************
*** 344,351 ****
    S48_VECTOR_SET(v, 1, s48_enter_integer(y));
    S48_VECTOR_SET(v, 2, ret ? S48_TRUE : S48_FALSE);
!   S48_VECTOR_SET(v, 3, ENTER_WINDOW(root));
    S48_VECTOR_SET(v, 4, s48_enter_integer(r_x));
    S48_VECTOR_SET(v, 5, s48_enter_integer(r_y));
!   S48_VECTOR_SET(v, 6, ENTER_WINDOW(child));
    S48_VECTOR_SET(v, 7, Bits_To_Symbols ((unsigned long)mask, State_Syms));
  
--- 344,351 ----
    S48_VECTOR_SET(v, 1, s48_enter_integer(y));
    S48_VECTOR_SET(v, 2, ret ? S48_TRUE : S48_FALSE);
!   S48_VECTOR_SET(v, 3, SCX_ENTER_WINDOW(root));
    S48_VECTOR_SET(v, 4, s48_enter_integer(r_x));
    S48_VECTOR_SET(v, 5, s48_enter_integer(r_y));
!   S48_VECTOR_SET(v, 6, SCX_ENTER_WINDOW(child));
    S48_VECTOR_SET(v, 7, Bits_To_Symbols ((unsigned long)mask, State_Syms));
  
***************
*** 354,369 ****
  }
  
! s48_value Get_Geometry(s48_value Xdisplay, s48_value Xdrawable) {
!   s48_value v;
    Window root;
    unsigned int x,y,width,height,border_width,depth;
    S48_DECLARE_GC_PROTECT(1);
  
!   XGetGeometry(EXTRACT_DISPLAY(Xdisplay), EXTRACT_DRAWABLE(Xdrawable),
               &root, &x, &y, &width, &height, &border_width, &depth);
  
    v = s48_make_vector(7, S48_FALSE);
    S48_GC_PROTECT_1(v);
!   S48_VECTOR_SET(v, 0, ENTER_WINDOW(root));
    S48_VECTOR_SET(v, 1, s48_enter_integer(x));
    S48_VECTOR_SET(v, 2, s48_enter_integer(y));
--- 354,369 ----
  }
  
! s48_value scx_Get_Geometry(s48_value Xdisplay, s48_value Xdrawable) {
!   s48_value v = S48_FALSE;
    Window root;
    unsigned int x,y,width,height,border_width,depth;
    S48_DECLARE_GC_PROTECT(1);
  
!   XGetGeometry(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_DRAWABLE(Xdrawable),
               &root, &x, &y, &width, &height, &border_width, &depth);
  
    v = s48_make_vector(7, S48_FALSE);
    S48_GC_PROTECT_1(v);
!   S48_VECTOR_SET(v, 0, SCX_ENTER_WINDOW(root));
    S48_VECTOR_SET(v, 1, s48_enter_integer(x));
    S48_VECTOR_SET(v, 2, s48_enter_integer(y));
***************
*** 375,395 ****
    return v;
  }
- 
- void s48_init_window(void) {
-   S48_EXPORT_FUNCTION(Create_Window);
-   S48_EXPORT_FUNCTION(Destroy_Window);
-   S48_EXPORT_FUNCTION(Change_Window_Attributes);
-   S48_EXPORT_FUNCTION(Get_Window_Attributes);
-   S48_EXPORT_FUNCTION(Configure_Window);
-   S48_EXPORT_FUNCTION(Map_Window);
-   S48_EXPORT_FUNCTION(Unmap_Window);
-   S48_EXPORT_FUNCTION(Destroy_Subwindows);
-   S48_EXPORT_FUNCTION(Map_Subwindows);
-   S48_EXPORT_FUNCTION(Unmap_Subwindows);  
-   S48_EXPORT_FUNCTION(Circulate_Subwindows);
-   S48_EXPORT_FUNCTION(Query_Tree);
-   S48_EXPORT_FUNCTION(Translate_Coordinates);
-   S48_EXPORT_FUNCTION(Query_Pointer);
-   S48_EXPORT_FUNCTION(Get_Geometry);
  
  }
--- 375,394 ----
    return v;
  }
  
+ void scx_init_window(void) {
+   S48_EXPORT_FUNCTION(scx_Create_Window);
+   S48_EXPORT_FUNCTION(scx_Destroy_Window);
+   S48_EXPORT_FUNCTION(scx_Change_Window_Attributes);
+   S48_EXPORT_FUNCTION(scx_Get_Window_Attributes);
+   S48_EXPORT_FUNCTION(scx_Configure_Window);
+   S48_EXPORT_FUNCTION(scx_Map_Window);
+   S48_EXPORT_FUNCTION(scx_Unmap_Window);
+   S48_EXPORT_FUNCTION(scx_Destroy_Subwindows);
+   S48_EXPORT_FUNCTION(scx_Map_Subwindows);
+   S48_EXPORT_FUNCTION(scx_Unmap_Subwindows);  
+   S48_EXPORT_FUNCTION(scx_Circulate_Subwindows);
+   S48_EXPORT_FUNCTION(scx_Query_Tree);
+   S48_EXPORT_FUNCTION(scx_Translate_Coordinates);
+   S48_EXPORT_FUNCTION(scx_Query_Pointer);
+   S48_EXPORT_FUNCTION(scx_Get_Geometry);
  }

Index: wm.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/wm.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** wm.c        2001/07/31 13:15:32     1.3
--- wm.c        2001/07/31 14:51:21     1.4
***************
*** 2,38 ****
  #include "scheme48.h"
  
! s48_value Reparent_Window(s48_value Xdisplay, s48_value Xwindow, 
                          s48_value Xwindow_parent, s48_value x,
                          s48_value y) {
!   XReparentWindow(EXTRACT_DISPLAY(Xdisplay),
!                 EXTRACT_WINDOW(Xwindow),
!                 EXTRACT_WINDOW(Xwindow_parent),
                  (int)s48_extract_integer (x), (int)s48_extract_integer (y));
    return S48_UNSPECIFIC;
  }
  
! s48_value Install_Colormap(s48_value Xdisplay, s48_value Xcolormap) {
!   XInstallColormap(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap));
    return S48_UNSPECIFIC;
  }
  
! s48_value Uninstall_Colormap(s48_value Xdisplay, s48_value Xcolormap) {
!   XUninstallColormap(EXTRACT_DISPLAY(Xdisplay), EXTRACT_COLORMAP(Xcolormap));
    return S48_UNSPECIFIC;
  }
  
! s48_value List_Installed_Colormaps(s48_value Xdisplay, s48_value Xwindow) {
    int i, n;
    Colormap *ret;
!   s48_value v;
    S48_DECLARE_GC_PROTECT(1);
  
!   ret = XListInstalledColormaps(EXTRACT_DISPLAY(Xdisplay),
!                               EXTRACT_WINDOW(Xwindow),
                                &n);
    v = s48_make_vector (n, S48_FALSE);
    S48_GC_PROTECT_1 (v);
    for (i = 0; i < n; i++) {
!     S48_VECTOR_SET(v, i, ENTER_COLORMAP(ret[i]));
    }
    XFree ((char *)ret);
--- 2,40 ----
  #include "scheme48.h"
  
! s48_value scx_Reparent_Window(s48_value Xdisplay, s48_value Xwindow, 
                          s48_value Xwindow_parent, s48_value x,
                          s48_value y) {
!   XReparentWindow(SCX_EXTRACT_DISPLAY(Xdisplay),
!                 SCX_EXTRACT_WINDOW(Xwindow),
!                 SCX_EXTRACT_WINDOW(Xwindow_parent),
                  (int)s48_extract_integer (x), (int)s48_extract_integer (y));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Install_Colormap(s48_value Xdisplay, s48_value Xcolormap) {
!   XInstallColormap(SCX_EXTRACT_DISPLAY(Xdisplay), 
!                  SCX_EXTRACT_COLORMAP(Xcolormap));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Uninstall_Colormap(s48_value Xdisplay, s48_value Xcolormap) {
!   XUninstallColormap(SCX_EXTRACT_DISPLAY(Xdisplay), 
!                    SCX_EXTRACT_COLORMAP(Xcolormap));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_List_Installed_Colormaps(s48_value Xdisplay, s48_value Xwindow) 
{
    int i, n;
    Colormap *ret;
!   s48_value v = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
  
!   ret = XListInstalledColormaps(SCX_EXTRACT_DISPLAY(Xdisplay),
!                               SCX_EXTRACT_WINDOW(Xwindow),
                                &n);
    v = s48_make_vector (n, S48_FALSE);
    S48_GC_PROTECT_1 (v);
    for (i = 0; i < n; i++) {
!     S48_VECTOR_SET(v, i, SCX_ENTER_COLORMAP(ret[i]));
    }
    XFree ((char *)ret);
***************
*** 41,69 ****
  }
  
! s48_value Set_Input_Focus(s48_value Xdisplay, s48_value Xwindow, 
                          s48_value revert_to, s48_value time) {
    Window focus = PointerRoot;
    
    if (!S48_SYMBOL_P(Xwindow))
!     focus = EXTRACT_WINDOW(Xwindow);
    
!   XSetInputFocus (EXTRACT_DISPLAY(Xdisplay), focus, 
                  Symbol_To_Bit (revert_to, Revert_Syms), 
!                 EXTRACT_TIME(time));
    return S48_UNSPECIFIC;
  }
  
! s48_value Input_Focus (s48_value Xdisplay) {
    Window win;
    int revert_to;
!   s48_value ret, x;
    S48_DECLARE_GC_PROTECT(1);
  
!   XGetInputFocus (EXTRACT_DISPLAY(Xdisplay), &win, &revert_to);
    ret = s48_cons (S48_NULL, S48_NULL);
    S48_GC_PROTECT_1 (ret);
!   x = ENTER_WINDOW(win);  S48_SET_CAR(ret, x);
!   x = Bit_To_Symbol((unsigned long)revert_to, Revert_Syms);
!   S48_SET_CDR(ret, x);
  
    S48_GC_UNPROTECT();
--- 43,70 ----
  }
  
! s48_value scx_Set_Input_Focus(s48_value Xdisplay, s48_value Xwindow, 
                          s48_value revert_to, s48_value time) {
    Window focus = PointerRoot;
    
    if (!S48_SYMBOL_P(Xwindow))
!     focus = SCX_EXTRACT_WINDOW(Xwindow);
    
!   XSetInputFocus (SCX_EXTRACT_DISPLAY(Xdisplay), focus, 
                  Symbol_To_Bit (revert_to, Revert_Syms), 
!                 SCX_EXTRACT_TIME(time));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Input_Focus (s48_value Xdisplay) {
    Window win;
    int revert_to;
!   s48_value ret = S48_FALSE;
    S48_DECLARE_GC_PROTECT(1);
  
!   XGetInputFocus (SCX_EXTRACT_DISPLAY(Xdisplay), &win, &revert_to);
    ret = s48_cons (S48_NULL, S48_NULL);
    S48_GC_PROTECT_1 (ret);
!   S48_SET_CAR(ret, SCX_ENTER_WINDOW(win));
!   S48_SET_CDR(ret, Bit_To_Symbol((unsigned long)revert_to, Revert_Syms));
  
    S48_GC_UNPROTECT();
***************
*** 71,79 ****
  }
  
! s48_value General_Warp_Pointer(s48_value dpy, s48_value dst, s48_value dstx, 
                               s48_value dsty, s48_value src, s48_value srcx, 
                               s48_value srcy, s48_value srcw, s48_value srch) {
!   XWarpPointer (EXTRACT_DISPLAY(dpy), 
!               EXTRACT_WINDOW(src), EXTRACT_WINDOW(dst),
                (int)s48_extract_integer (srcx), 
                (int)s48_extract_integer (srcy), 
--- 72,80 ----
  }
  
! s48_value scx_General_Warp_Pointer(s48_value dpy, s48_value dst, s48_value 
dstx, 
                               s48_value dsty, s48_value src, s48_value srcx, 
                               s48_value srcy, s48_value srcw, s48_value srch) {
!   XWarpPointer (SCX_EXTRACT_DISPLAY(dpy), 
!               SCX_EXTRACT_WINDOW(src), SCX_EXTRACT_WINDOW(dst),
                (int)s48_extract_integer (srcx), 
                (int)s48_extract_integer (srcy), 
***************
*** 85,117 ****
  }
  
! s48_value Bell(s48_value Xdisplay, s48_value percent) {
    int p = (int)s48_extract_integer(percent);
!   XBell (EXTRACT_DISPLAY(Xdisplay), p);
    return S48_UNSPECIFIC;
  }
  
! s48_value Set_Access_Control(s48_value Xdisplay, s48_value on) {
!   XSetAccessControl (EXTRACT_DISPLAY(Xdisplay), !S48_FALSE_P(on));
    return S48_UNSPECIFIC;
  }
  
! s48_value Change_Save_Set(s48_value Xdisplay, s48_value win, s48_value mode) {
!   XChangeSaveSet(EXTRACT_DISPLAY(Xdisplay), EXTRACT_WINDOW(win),
                 Symbol_To_Bit(mode, Saveset_Syms));
    return S48_UNSPECIFIC;
  }
  
! s48_value Set_Close_Down_Mode(s48_value Xdisplay, s48_value mode) {
!   XSetCloseDownMode(EXTRACT_DISPLAY(Xdisplay),
                    Symbol_To_Bit (mode, Closemode_Syms));
    return S48_UNSPECIFIC;
  }
  
! static s48_value Get_Pointer_Mapping(s48_value Xdisplay) {
    unsigned char map[256];
    int i, n;
    s48_value ret;
  
!   n = XGetPointerMapping (EXTRACT_DISPLAY(Xdisplay), map, 256);
    ret = s48_make_vector (n, S48_NULL);
    for (i = 0; i < n; i++)
--- 86,119 ----
  }
  
! s48_value scx_Bell(s48_value Xdisplay, s48_value percent) {
    int p = (int)s48_extract_integer(percent);
!   XBell (SCX_EXTRACT_DISPLAY(Xdisplay), p);
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Set_Access_Control(s48_value Xdisplay, s48_value on) {
!   XSetAccessControl (SCX_EXTRACT_DISPLAY(Xdisplay), !S48_FALSE_P(on));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Change_Save_Set(s48_value Xdisplay, s48_value win, 
!                             s48_value mode) {
!   XChangeSaveSet(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_WINDOW(win),
                 Symbol_To_Bit(mode, Saveset_Syms));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Set_Close_Down_Mode(s48_value Xdisplay, s48_value mode) {
!   XSetCloseDownMode(SCX_EXTRACT_DISPLAY(Xdisplay),
                    Symbol_To_Bit (mode, Closemode_Syms));
    return S48_UNSPECIFIC;
  }
  
! s48_value scx_Get_Pointer_Mapping(s48_value Xdisplay) {
    unsigned char map[256];
    int i, n;
    s48_value ret;
  
!   n = XGetPointerMapping (SCX_EXTRACT_DISPLAY(Xdisplay), map, 256);
    ret = s48_make_vector (n, S48_NULL);
    for (i = 0; i < n; i++)
***************
*** 120,124 ****
  }
  
! s48_value Set_Pointer_Mapping (s48_value Xdisplay, s48_value map) {
    int i, n = S48_VECTOR_LENGTH(map);
    unsigned char p[n];
--- 122,126 ----
  }
  
! s48_value scx_Set_Pointer_Mapping (s48_value Xdisplay, s48_value map) {
    int i, n = S48_VECTOR_LENGTH(map);
    unsigned char p[n];
***************
*** 128,148 ****
      p[i] = (int)s48_extract_integer(S48_VECTOR_REF(map, i));
  
!   ret = XSetPointerMapping (EXTRACT_DISPLAY(Xdisplay), p, n);
    return (ret == MappingSuccess) ? S48_TRUE : S48_FALSE;
  }
  
! void s48_init_wm(void) { 
!   S48_EXPORT_FUNCTION(Reparent_Window);
!   S48_EXPORT_FUNCTION(Install_Colormap);
!   S48_EXPORT_FUNCTION(Uninstall_Colormap);
!   S48_EXPORT_FUNCTION(List_Installed_Colormaps);
!   S48_EXPORT_FUNCTION(Set_Input_Focus);
!   S48_EXPORT_FUNCTION(Input_Focus);
!   S48_EXPORT_FUNCTION(General_Warp_Pointer);
!   S48_EXPORT_FUNCTION(Bell);
!   S48_EXPORT_FUNCTION(Set_Access_Control);
!   S48_EXPORT_FUNCTION(Change_Save_Set);
!   S48_EXPORT_FUNCTION(Set_Close_Down_Mode);
!   S48_EXPORT_FUNCTION(Get_Pointer_Mapping);
!   S48_EXPORT_FUNCTION(Set_Pointer_Mapping);
  }
--- 130,150 ----
      p[i] = (int)s48_extract_integer(S48_VECTOR_REF(map, i));
  
!   ret = XSetPointerMapping (SCX_EXTRACT_DISPLAY(Xdisplay), p, n);
    return (ret == MappingSuccess) ? S48_TRUE : S48_FALSE;
  }
  
! void scx_init_wm(void) { 
!   S48_EXPORT_FUNCTION(scx_Reparent_Window);
!   S48_EXPORT_FUNCTION(scx_Install_Colormap);
!   S48_EXPORT_FUNCTION(scx_Uninstall_Colormap);
!   S48_EXPORT_FUNCTION(scx_List_Installed_Colormaps);
!   S48_EXPORT_FUNCTION(scx_Set_Input_Focus);
!   S48_EXPORT_FUNCTION(scx_Input_Focus);
!   S48_EXPORT_FUNCTION(scx_General_Warp_Pointer);
!   S48_EXPORT_FUNCTION(scx_Bell);
!   S48_EXPORT_FUNCTION(scx_Set_Access_Control);
!   S48_EXPORT_FUNCTION(scx_Change_Save_Set);
!   S48_EXPORT_FUNCTION(scx_Set_Close_Down_Mode);
!   S48_EXPORT_FUNCTION(scx_Get_Pointer_Mapping);
!   S48_EXPORT_FUNCTION(scx_Set_Pointer_Mapping);
  }

Index: xlib.h
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/xlib.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** xlib.h      2001/07/19 15:29:18     1.7
--- xlib.h      2001/07/31 14:51:21     1.8
***************
*** 30,57 ****
   */
  
! #define EXTRACT_DISPLAY(x) (Display*)s48_extract_integer(x)
! #define ENTER_DISPLAY(x) s48_enter_integer((long)x)
! #define EXTRACT_WINDOW(x) (Window)s48_extract_integer(x)
! #define ENTER_WINDOW(x) s48_enter_integer((long)x)
! #define EXTRACT_COLOR(x) (XColor*)S48_EXTRACT_VALUE_POINTER(x, XColor)
! #define EXTRACT_COLORMAP(x) (Colormap)s48_extract_integer(x)
! #define ENTER_COLORMAP(x) s48_enter_integer((long)x)
! #define EXTRACT_PIXEL(x) (unsigned long)s48_extract_integer(x)
! #define ENTER_PIXEL(x) s48_enter_integer((long)x)
! #define EXTRACT_GCONTEXT(x) (GC)s48_extract_integer(x)
! #define ENTER_GCONTEXT(x) s48_enter_integer((long)x)
! #define EXTRACT_PIXMAP(x) (Pixmap)s48_extract_integer(x)
! #define ENTER_PIXMAP(x) s48_enter_integer((long)x)
! #define EXTRACT_DRAWABLE(x) (Drawable)s48_extract_integer(x)
! #define ENTER_ATOM(x) s48_enter_integer((long)x)
! #define EXTRACT_ATOM(x) (Atom)s48_extract_integer(x)
! #define ENTER_TIME(x) x == CurrentTime ? s48_enter_symbol("now") : 
s48_enter_integer(x)
! #define EXTRACT_TIME(x) S48_SYMBOL_P(x) ? CurrentTime : 
(int)s48_extract_integer(x)
  // TODO:
! #define ENTER_VISUAL(x) S48_FALSE
! #define ENTER_FONT(x) s48_enter_integer((long)x)
! #define EXTRACT_FONT(x) (Font)s48_extract_integer(x)
! #define ENTER_FONTSTRUCT(x) s48_enter_integer((long)x)
! #define EXTRACT_FONTSTRUCT(x) (XFontStruct*)s48_extract_integer(x)
  
  
--- 30,59 ----
   */
  
! #define SCX_EXTRACT_DISPLAY(x) (Display*)s48_extract_integer(x)
! #define SCX_ENTER_DISPLAY(x) s48_enter_integer((long)x)
! #define SCX_EXTRACT_WINDOW(x) (Window)s48_extract_integer(x)
! #define SCX_ENTER_WINDOW(x) s48_enter_integer((long)x)
! #define SCX_EXTRACT_COLOR(x) (XColor*)S48_EXTRACT_VALUE_POINTER(x, XColor)
! #define SCX_EXTRACT_COLORMAP(x) (Colormap)s48_extract_integer(x)
! #define SCX_ENTER_COLORMAP(x) s48_enter_integer((long)x)
! #define SCX_EXTRACT_PIXEL(x) (unsigned long)s48_extract_integer(x)
! #define SCX_ENTER_PIXEL(x) s48_enter_integer((long)x)
! #define SCX_EXTRACT_GCONTEXT(x) (GC)s48_extract_integer(x)
! #define SCX_ENTER_GCONTEXT(x) s48_enter_integer((long)x)
! #define SCX_ENTER_PIXMAP(x) s48_enter_integer((long)x)
! #define SCX_EXTRACT_PIXMAP(x) (Pixmap)s48_extract_integer(x)
! #define SCX_EXTRACT_DRAWABLE(x) (Drawable)s48_extract_integer(x)
! #define SCX_ENTER_ATOM(x) s48_enter_integer((long)x)
! #define SCX_EXTRACT_ATOM(x) (Atom)s48_extract_integer(x)
! #define SCX_ENTER_TIME(x) x == CurrentTime ? s48_enter_symbol("now") : 
s48_enter_integer(x)
! #define SCX_EXTRACT_TIME(x) S48_SYMBOL_P(x) ? CurrentTime : 
(int)s48_extract_integer(x)
! #define SCX_EXTRACT_CURSOR(x) (Cursor)s48_extract_integer(x)
! #define SCX_ENTER_CURSOR(x) s48_enter_integer((long)x)
! #define SCX_ENTER_FONT(x) s48_enter_integer((long)x)
! #define SCX_EXTRACT_FONT(x) (Font)s48_extract_integer(x)
! #define SCX_ENTER_FONTSTRUCT(x) s48_enter_integer((long)x)
! #define SCX_EXTRACT_FONTSTRUCT(x) (XFontStruct*)s48_extract_integer(x)
  // TODO:
! #define SCX_ENTER_VISUAL(x) S48_FALSE
  
  



<Prev in Thread] Current Thread [Next in Thread>
  • [Scsh-checkins] CVS: scx/c/xlib Makefile,1.3,1.4 color.c,1.5,1.6 colormap.c,1.4,1.5 cursor.c,1.3,1.4 display.c,1.7,1.8 event.c,1.5,1.6 font.c,1.3,1.4 gcontext.c,1.6,1.7 graphics.c,1.4,1.5 main.c,1.4,1.5 pixel.c,1.3,1.4 pixmap.c,1.4,1.5 property.c,1.5,1.6 test,1.3,1.4 text.c,1.3,1.4 type.c,1.10,1.11 window.c,1.8,1.9 wm.c,1.3,1.4 xlib.h,1.7,1.8, David Frese <=