scsh-checkins
[Top] [All Lists]

[Scsh-checkins] CVS: scx/c/xlib Makefile,1.1,1.2 display.c,1.5,1.6 event

To: scsh-checkins@lists.sourceforge.net
Subject: [Scsh-checkins] CVS: scx/c/xlib Makefile,1.1,1.2 display.c,1.5,1.6 event.c,1.2,1.3 main.c,1.2,1.3 pixmap.c,1.2,1.3 test,1.2,1.3 type.c,1.6,1.7 xlib.h,1.4,1.5
From: David Frese <frese@users.sourceforge.net>
Date: Mon, 09 Jul 2001 06:40:02 -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-serv16183

Modified Files:
        Makefile display.c event.c main.c pixmap.c test type.c xlib.h 
Log Message:
new: event.c, and some changes.


Index: Makefile
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** Makefile    2001/06/27 13:44:47     1.1
--- Makefile    2001/07/09 13:39:59     1.2
***************
*** 2,6 ****
        gcc -g -c -I /usr/X11R6/include/ -I /afs/wsi/home/dfreese/scsh-0.6/c/ 
-o $@ $<
  
! OBJECTS = main.o display.o window.o type.o color.o colormap.o pixel.o 
gcontext.o
  
  test: $(OBJECTS)
--- 2,6 ----
        gcc -g -c -I /usr/X11R6/include/ -I /afs/wsi/home/dfreese/scsh-0.6/c/ 
-o $@ $<
  
! OBJECTS = main.o display.o window.o type.o color.o colormap.o pixel.o 
gcontext.o event.o pixmap.o graphics.o
  
  test: $(OBJECTS)

Index: display.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/display.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** display.c   2001/06/27 13:44:47     1.5
--- display.c   2001/07/09 13:39:59     1.6
***************
*** 1,4 ****
--- 1,5 ----
  #include "xlib.h"
  #include "scheme48.h"
+ #include <sys/time.h>
  
  // Open_Display(name) name should be a string or S48_FALSE (=> Null)
***************
*** 18,21 ****
--- 19,42 ----
  }
  
+ // 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;
+ 
+   FD_ZERO(&fdset);
+   FD_SET(fd, &fdset);
+   timeout.tv_sec = 20; // 20 seconds
+   timeout.tv_usec = 0;
+   
+   if (select(1, &fdset, NULL, NULL, &timeout) != 0)
+     return S48_TRUE;
+   else
+     return S48_FALSE;
+   */
+   return s48_enter_integer(fd);
+ }
+ 
  // The following procedure mainly wrap a corresponding XLib macro without 
  // underscores...
***************
*** 197,200 ****
--- 218,222 ----
    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);

Index: event.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/event.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** event.c     2001/05/14 13:48:37     1.2
--- event.c     2001/07/09 13:39:59     1.3
***************
*** 1,4 ****
--- 1,370 ----
  #include "xlib.h"
+ #include "scheme48.h"
  
+ SYMDESCR Event_Names[] = {
+   { "key-press",       KeyPress },
+   { "key-release",     KeyRelease },
+   { "button-press",    ButtonPress },
+   { "button-release",  ButtonRelease },
+   { "motion-notify",   MotionNotify },
+   { "enter-notify",    EnterNotify },
+   { "leave-notify",    LeaveNotify },
+   { "focus-in",        FocusIn },
+   { "focus-out",       FocusOut },
+   { "keymap-notify",   KeymapNotify },
+   { "expose",          Expose },
+   { "graphics-expose", GraphicsExpose },
+   { "no-expose",       NoExpose },
+   { "visibility-notify", VisibilityNotify },
+   { "create-notify",   CreateNotify },
+   { "destroy-notify",  DestroyNotify },
+   { "unmap-notify",    UnmapNotify },
+   { "map-notify",      MapNotify },
+   { "map-request",     MapRequest },
+   { "reparent-notify", ReparentNotify },
+   { "configure-notify", ConfigureNotify },
+   { "configure-request", ConfigureRequest },
+   { "gravity-notify",  GravityNotify },
+   { "resize-request",  ResizeRequest },
+   { "circulate-notify", CirculateNotify },
+   { "circulate-request", CirculateRequest },
+   { "property-notify", PropertyNotify },
+   { "selection-clear", SelectionClear },
+   { "selection-notify", SelectionNotify },
+   { "colormap-notify", ColormapNotify },
+   { "client-message",  ClientMessage },
+   { "mapping-notify",  MappingNotify }
+ };
+ 
+ #define ECAST(name, type) type* name = (type*)e
+ #define sidx 4
+ #define SET(i, v) S48_VECTOR_SET(r, i, v)
+ #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;
+   int i;
+   S48_DECLARE_GC_PROTECT(2);
+   S48_GC_PROTECT_2(r, temp);
+ 
+   switch (e->type) {
+ 
+   case KeyPress : case KeyRelease : 
+   case ButtonPress : case ButtonRelease :
+   case MotionNotify : {
+     ECAST(q, XKeyEvent);
+     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));
+     SET(sidx+5, s48_enter_integer(q->x_root));
+     SET(sidx+6, s48_enter_integer(q->y_root));
+     SET(sidx+7, Bits_To_Symbols(q->state, State_Syms));
+     // now they are different
+     switch (e->type) {
+     case KeyPress : case KeyRelease : {
+       SET(sidx+8, s48_enter_integer(q->keycode));
+       SET(sidx+9, S48_ENTER_BOOLEAN(q->same_screen));
+     } break;
+     case ButtonPress : case ButtonRelease : {
+       ECAST(q, XButtonEvent);
+       SET(sidx+8, Bit_To_Symbol(q->button, Button_Syms));
+       SET(sidx+9, S48_ENTER_BOOLEAN(q->same_screen));
+     } break;
+     case MotionNotify : {
+       ECAST(q, XMotionEvent);
+       SET(sidx+8, S48_ENTER_BOOLEAN(q->is_hint));
+       SET(sidx+9, S48_ENTER_BOOLEAN(q->same_screen));
+     } break;
+     }
+   } break;
+ 
+   case EnterNotify : case LeaveNotify : {
+     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));
+     SET(sidx+5, s48_enter_integer(q->x_root));
+     SET(sidx+6, s48_enter_integer(q->y_root));
+     SET(sidx+7, Bit_To_Symbol(q->mode, Cross_Mode_Syms));
+     SET(sidx+8, Bit_To_Symbol(q->detail, Cross_Detail_Syms));
+     SET(sidx+9, S48_ENTER_BOOLEAN(q->same_screen));
+     SET(sidx+10, S48_ENTER_BOOLEAN(q->focus));
+     // Elk does this; but why not State_Syms??
+     SET(sidx+11, Bit_To_Symbol(q->state, Button_Syms));
+   } break;
+ 
+   case FocusIn : case FocusOut : {
+     ECAST(q, XFocusChangeEvent);
+     SETSIZE(2);
+     SET(sidx+0, Bit_To_Symbol(q->mode, Cross_Mode_Syms));
+     SET(sidx+1, Bit_To_Symbol(q->detail, Focus_Detail_Syms));
+   } break;
+ 
+   case KeymapNotify : {
+     ECAST(q, XKeymapEvent);
+     SETSIZE(1);
+     temp = s48_make_string(32, (char)0);
+     for (i=0; i < 32; i++) 
+       S48_STRING_SET(temp, i, q->key_vector[i]);
+     SET(sidx+0, temp);
+   } break;
+ 
+   case Expose : {
+     ECAST(q, XExposeEvent);
+     SETSIZE(5);
+     SET(sidx+0, s48_enter_integer(q->x));
+     SET(sidx+1, s48_enter_integer(q->y));
+     SET(sidx+2, s48_enter_integer(q->width));
+     SET(sidx+3, s48_enter_integer(q->height));
+     SET(sidx+4, s48_enter_integer(q->count));
+   } break;
+     
+   case GraphicsExpose : {
+     ECAST(q, XGraphicsExposeEvent);
+     SETSIZE(7);
+     // the ->window member is only a drawable here! ??
+     SET(sidx+0, s48_enter_integer(q->x));
+     SET(sidx+1, s48_enter_integer(q->y));
+     SET(sidx+2, s48_enter_integer(q->width));
+     SET(sidx+3, s48_enter_integer(q->height));
+     SET(sidx+4, s48_enter_integer(q->count));
+     SET(sidx+5, s48_enter_integer(q->major_code));
+     SET(sidx+6, s48_enter_integer(q->minor_code));
+   } break;
+   
+   case NoExpose : {
+     ECAST(q, XNoExposeEvent);
+     SETSIZE(2);
+     SET(sidx+0, s48_enter_integer(q->major_code));
+     SET(sidx+1, s48_enter_integer(q->minor_code));
+   } break;
+   
+   case VisibilityNotify : {
+     ECAST(q, XVisibilityEvent);
+     SETSIZE(1);
+     SET(sidx+0, Bit_To_Symbol(q->state, Visibility_Syms));
+   } break;
+ 
+   case CreateNotify : {
+     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));
+     SET(sidx+3, s48_enter_integer(q->width));
+     SET(sidx+4, s48_enter_integer(q->height));
+     SET(sidx+5, s48_enter_integer(q->border_width));
+     SET(sidx+6, S48_ENTER_BOOLEAN(q->override_redirect));
+   } break;
+ 
+   case DestroyNotify : {
+     ECAST(q, XDestroyWindowEvent);
+     SETSIZE(1);
+     SET(sidx+0, ENTER_WINDOW(q->window));
+   } break;
+ 
+   case UnmapNotify : {
+     ECAST(q, XUnmapEvent);
+     SETSIZE(2);
+     SET(sidx+0, ENTER_WINDOW(q->window));
+     SET(sidx+1, S48_ENTER_BOOLEAN(q->from_configure));
+   } break;
+ 
+   case MapNotify : {
+     ECAST(q, XMapEvent);
+     SETSIZE(2);
+     SET(sidx+0, ENTER_WINDOW(q->window));
+     SET(sidx+1, S48_ENTER_BOOLEAN(q->override_redirect));
+   } break;
+ 
+   case MapRequest : {
+     ECAST(q, XMapRequestEvent);
+     SETSIZE(1);
+     SET(sidx+0, ENTER_WINDOW(q->window));
+   } break;
+   
+   case ReparentNotify : {
+     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));
+     SET(sidx+4, S48_ENTER_BOOLEAN(q->override_redirect));
+   } break;
+ 
+   case ConfigureNotify : {
+     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));
+     SET(sidx+3, s48_enter_integer(q->width));
+     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;
+ 
+   case ConfigureRequest : {
+     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));
+     SET(sidx+3, s48_enter_integer(q->width));
+     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));
+   } break;
+ 
+   case GravityNotify : {
+     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));
+   } break;
+     
+   case ResizeRequest : {
+     ECAST(q, XResizeRequestEvent);
+     SETSIZE(2);
+     SET(sidx+0, s48_enter_integer(q->width));
+     SET(sidx+1, s48_enter_integer(q->height));
+   } break;
+ 
+   case CirculateRequest : {
+     ECAST(q, XCirculateEvent);
+     SETSIZE(2);
+     SET(sidx+0, ENTER_WINDOW(q->window));
+     SET(sidx+1, Bit_To_Symbol(q->place, Place_Syms));
+   } break;
+ 
+   case PropertyNotify : {
+     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;
+ 
+   case SelectionClear : {
+     ECAST(q, XSelectionClearEvent);
+     SETSIZE(2);
+     SET(sidx+0, ENTER_ATOM(q->selection));
+     SET(sidx+1, ENTER_TIME(q->time));
+   } break;
+   
+   case SelectionRequest : {
+     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;
+ 
+   case SelectionNotify : {
+     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;
+ 
+   case ColormapNotify : {
+     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);
+   } break;
+   
+   case ClientMessage : {
+     ECAST(q, XClientMessageEvent);
+     SETSIZE(2);
+     SET(sidx+0, ENTER_ATOM(q->message_type));
+     switch (q->format) {
+     case 8 : {
+       temp = s48_make_string(20, (char)0);
+       for (i=0; i < 20; i++)
+       S48_STRING_SET(temp, i, q->data.b[i]);
+     } break;
+     case 16 : {
+       temp = s48_make_vector(10, S48_FALSE);
+       for (i=0; i < 10; i++)
+       S48_VECTOR_SET(temp, i, s48_enter_integer(q->data.s[i]));
+     } break;
+     case 32 : {
+       temp = s48_make_vector(5, S48_FALSE);
+       for (i=0; i < 5; i++)
+       S48_VECTOR_SET(temp, i, s48_enter_integer(q->data.l[i]));
+     } break;
+     default : temp = s48_enter_integer(q->format); //??
+     }
+ 
+     SET(sidx+1, temp);
+   }
+ 
+   case MappingNotify : {
+     ECAST(q, XMappingEvent);
+     SETSIZE(3);
+     SET(sidx+0, Bit_To_Symbol(q->request, Mapping_Syms));
+     SET(sidx+1, s48_enter_integer(q->first_keycode));
+     SET(sidx+2, s48_enter_integer(q->count));
+   } break;
+ 
+   } // switch end
+ 
+   // XAnyEvent entries
+   {
+     ECAST(q, XAnyEvent);
+     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??
+   
+   // And the Event-Name
+   r = s48_cons( Bit_To_Symbol(e->type, Event_Names), r );
+ 
+   S48_GC_UNPROTECT();
+   return r;
+ }
+ 
+ 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)));
+ }
+ 
+ 
+ /*
+ 
+ #include "xlib.h"
+ 
  #define MAX_ARGS 14
  
***************
*** 51,56 ****
      s48_value *ret;
  };
  
- /*ARGSUSED*/
  static Event_Predicate (dpy, ep, ptr) Display *dpy; XEvent *ep;
  #ifdef XLIB_RELEASE_5_OR_LATER
--- 417,423 ----
      s48_value *ret;
  };
+ 
+ //ARGSUSED
  
  static Event_Predicate (dpy, ep, ptr) Display *dpy; XEvent *ep;
  #ifdef XLIB_RELEASE_5_OR_LATER
***************
*** 74,83 ****
  }
  
! /* (handle-events display discard? peek? clause...)
!  * clause = (event function) or ((event...) function) or (else function)
!  * loops/blocks until a function returns x != #f, then returns x.
!  * discard?: discard unprocessed events.
!  * peek?: don't discard processed events.
!  */
  
  static s48_value P_Handle_Events (argl) s48_value argl; {
--- 441,450 ----
  }
  
! // (handle-events display discard? peek? clause...)
! // clause = (event function) or ((event...) function) or (else function)
! // loops/blocks until a function returns x != #f, then returns x.
! // discard?: discard unprocessed events.
! // peek?: don't discard processed events.
! //
  
  static s48_value P_Handle_Events (argl) s48_value argl; {
***************
*** 144,148 ****
            } else {
                if (peek)
!                   XNextEvent (dpy, &e);  /* discard it */
            }
        } else {
--- 511,515 ----
            } else {
                if (peek)
!                   XNextEvent (dpy, &e);  // discard it
            }
        } else {
***************
*** 412,416 ****
            break;
        default:
!           a[3] = s48_enter_integer (p->format);   /* ??? */
        }
      } break;
--- 779,783 ----
            break;
        default:
!           a[3] = s48_enter_integer (p->format);   // ???
        }
      } break;
***************
*** 423,426 ****
--- 790,794 ----
      } break;
      }
+ 
      a[0] = Intern (Event_Table[e].name);
      for (vp = VECTOR(Argv)->data, i = 0; i < Event_Table[e].argc; i++) {
***************
*** 441,444 ****
--- 809,817 ----
  }
  
+ */
+ 
+ 
+ /*
+ 
  Encode_Event (e) s48_value e; {
      s48_value s;
***************
*** 513,514 ****
--- 886,898 ----
      Define_Primitive (P_Event_Listen,    "event-listen",      2, 2, EVAL);
  }
+ 
+ */
+ 
+ void s48_init_event(void) {
+   S48_EXPORT_FUNCTION(Next_Event);
+   S48_EXPORT_FUNCTION(Peek_Event);
+   S48_EXPORT_FUNCTION(Events_Pending);
+   // Encode_Event
+   // Get_Motion_Events ??
+ }
+   

Index: main.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/main.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** main.c      2001/06/27 13:44:47     1.2
--- main.c      2001/07/09 13:39:59     1.3
***************
*** 8,11 ****
--- 8,14 ----
  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();
  
  int main(){
***************
*** 18,21 ****
--- 21,27 ----
    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_main(8000000, 64000, 

Index: pixmap.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/pixmap.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** pixmap.c    2001/05/14 13:48:37     1.2
--- pixmap.c    2001/07/09 13:39:59     1.3
***************
*** 1,4 ****
--- 1,15 ----
  #include "xlib.h"
+ #include "scheme48.h"
  
+ 
+ s48_value Free_Pixmap(s48_value Xpixmap, s48_value Xdisplay) {
+   XFreePixmap(EXTRACT_DISPLAY(Xdisplay),
+             EXTRACT_PIXMAP(Xpixmap));
+   return S48_UNSPECIFIC;
+ }
+   
+ 
+ /*
+ 
  Generic_Predicate (Pixmap)
  
***************
*** 28,32 ****
  }
  
! /* Backwards compatibility: */
  s48_value Make_Pixmap (dpy, pix) Display *dpy; Pixmap pix; {
      return Internal_Make_Pixmap (1, dpy, pix);
--- 39,43 ----
  }
  
! // Backwards compatibility:
  s48_value Make_Pixmap (dpy, pix) Display *dpy; Pixmap pix; {
      return Internal_Make_Pixmap (1, dpy, pix);
***************
*** 146,148 ****
--- 157,165 ----
      Define_Primitive (P_Read_Bitmap_File,  "read-bitmap-file",  2, 2, EVAL);
      Define_Primitive (P_Write_Bitmap_File, "write-bitmap-file", 4, 6, 
VARARGS);
+ }
+ 
+ */
+ 
+ void s48_init_pixmap(void) {
+   S48_EXPORT_FUNCTION(Free_Pixmap);
  }

Index: test
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/test,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
Binary files /tmp/cvsifsdUa and /tmp/cvsSotcjg differ

Index: type.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/type.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** type.c      2001/06/27 13:44:48     1.6
--- type.c      2001/07/09 13:39:59     1.7
***************
*** 49,57 ****
  
  s48_value Bit_To_Symbol(unsigned long bits, SYMDESCR* table) {
!   s48_value res = Bits_To_Symbols(bits, table);
!   if (S48_NULL_P(res))
!     return s48_enter_integer(bits);
!   else
!     return S48_CAR(res);
  }
  
--- 49,59 ----
  
  s48_value Bit_To_Symbol(unsigned long bits, SYMDESCR* table) {
!   int i = 0;
!   while (table[i].name != (char*)0) {
!     if ((table[i].val & bits) != 0)
!       return s48_enter_symbol(table[i].name);
!     else i++;
!   }
!   return s48_enter_integer(bits); // or what??
  }
  

Index: xlib.h
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/xlib.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** xlib.h      2001/06/27 13:44:48     1.4
--- xlib.h      2001/07/09 13:39:59     1.5
***************
*** 48,51 ****
--- 48,53 ----
  #define ENTER_FONT(x) S48_FALSE
  #define EXTRACT_FONT(x) (Font)0
+ #define ENTER_ATOM(x) S48_FALSE
+ #define ENTER_TIME(x) x == CurrentTime ? s48_enter_symbol("now") : 
s48_enter_integer(x)
  
  



<Prev in Thread] Current Thread [Next in Thread>
  • [Scsh-checkins] CVS: scx/c/xlib Makefile,1.1,1.2 display.c,1.5,1.6 event.c,1.2,1.3 main.c,1.2,1.3 pixmap.c,1.2,1.3 test,1.2,1.3 type.c,1.6,1.7 xlib.h,1.4,1.5, David Frese <=