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)
|