Minor changes.

This commit is contained in:
frese 2001-05-21 15:33:59 +00:00
parent ce53a9ebd9
commit 54bc366be8
1 changed files with 410 additions and 365 deletions

View File

@ -1,5 +1,415 @@
#include "xlib.h"
/* Types, functions and variables for the conversion between XLib constants
and the scheme symbols:
*/
s48_value Bits_To_Symbols(unsigned long bits, int mask_flag, SYMDESCR* table) {
S48_DECLARE_GC_PROTECT(1);
s48_value res = S48_NULL;
S48_GC_PROTECT_1(res);
char* name;
int val;
int i = 0;
while (table[i].name != (char*)0) {
name = table[i].name;
val = table[i].val;
if ((val & bits) != 0) {
if (mask_flag == 0) {
res = s48_enter_symbol(name);
break;
} else {
res = s48_cons(s48_enter_symbol(name), res);
}
}
i++;
}
if ((mask_flag == 0) && S48_NULL_P(res))
res = s48_enter_integer(bits); // or an exception??
S48_GC_UNPROTECT();
return res;
}
typedef struct {
char *name;
unsigned long val;
} SYMDESCR;
SYMDESCR Func_Syms[] = {
{ "clear", GXclear },
{ "and", GXand },
{ "and-reverse", GXandReverse },
{ "copy", GXcopy },
{ "and-inverted", GXandInverted },
{ "no-op", GXnoop },
{ "xor", GXxor },
{ "or", GXor },
{ "nor", GXnor },
{ "equiv", GXequiv },
{ "invert", GXinvert },
{ "or-reverse", GXorReverse },
{ "copy-inverted", GXcopyInverted },
{ "or-inverted", GXorInverted },
{ "nand", GXnand },
{ "set", GXset },
{ 0, 0 }
};
SYMDESCR Bit_Grav_Syms[] = {
{ "forget", ForgetGravity },
{ "north-west", NorthWestGravity },
{ "north", NorthGravity },
{ "north-east", NorthEastGravity },
{ "west", WestGravity },
{ "center", CenterGravity },
{ "east", EastGravity },
{ "south-west", SouthWestGravity },
{ "south", SouthGravity },
{ "south-east", SouthEastGravity },
{ "static", StaticGravity },
{ 0, 0 }
};
SYMDESCR Grav_Syms[] = {
{ "unmap", UnmapGravity },
{ "north-west", NorthWestGravity },
{ "north", NorthGravity },
{ "north-east", NorthEastGravity },
{ "west", WestGravity },
{ "center", CenterGravity },
{ "east", EastGravity },
{ "south-west", SouthWestGravity },
{ "south", SouthGravity },
{ "south-east", SouthEastGravity },
{ "static", StaticGravity },
{ 0, 0 }
};
SYMDESCR Backing_Store_Syms[] = {
{ "not-useful", NotUseful },
{ "when-mapped", WhenMapped },
{ "always", Always },
{ 0, 0 }
};
SYMDESCR Stack_Mode_Syms[] = {
{ "above", Above },
{ "below", Below },
{ "top-if", TopIf },
{ "bottom-if", BottomIf },
{ "opposite", Opposite },
{ 0, 0 }
};
SYMDESCR Line_Style_Syms[] = {
{ "solid", LineSolid },
{ "dash", LineOnOffDash },
{ "double-dash", LineDoubleDash },
{ 0, 0 }
};
SYMDESCR Cap_Style_Syms[] = {
{ "not-last", CapNotLast },
{ "butt", CapButt },
{ "round", CapRound },
{ "projecting", CapProjecting },
{ 0, 0 }
};
SYMDESCR Join_Style_Syms[] = {
{ "miter", JoinMiter },
{ "round", JoinRound },
{ "bevel", JoinBevel },
{ 0, 0 }
};
SYMDESCR Fill_Style_Syms[] = {
{ "solid", FillSolid },
{ "tiled", FillTiled },
{ "stippled", FillStippled },
{ "opaque-stippled", FillOpaqueStippled },
{ 0, 0 }
};
SYMDESCR Fill_Rule_Syms[] = {
{ "even-odd", EvenOddRule },
{ "winding", WindingRule },
{ 0, 0 }
};
SYMDESCR Arc_Mode_Syms[] = {
{ "chord", ArcChord },
{ "pie-slice", ArcPieSlice },
{ 0, 0 }
};
SYMDESCR Subwin_Mode_Syms[] = {
{ "clip-by-children", ClipByChildren },
{ "include-inferiors", IncludeInferiors },
{ 0, 0 }
};
SYMDESCR Class_Syms[] = {
{ "input-output", InputOutput },
{ "input-only", InputOnly },
{ 0, 0 }
};
SYMDESCR Map_State_Syms[] = {
{ "unmapped", IsUnmapped },
{ "unviewable", IsUnviewable },
{ "viewable", IsViewable },
{ 0, 0 }
};
SYMDESCR State_Syms[] = {
{ "shift", ShiftMask },
{ "lock", LockMask },
{ "control", ControlMask },
{ "mod1", Mod1Mask },
{ "mod2", Mod2Mask },
{ "mod3", Mod3Mask },
{ "mod4", Mod4Mask },
{ "mod5", Mod5Mask },
{ "button1", Button1Mask },
{ "button2", Button2Mask },
{ "button3", Button3Mask },
{ "button4", Button4Mask },
{ "button5", Button5Mask },
{ "any-modifier", AnyModifier },
{ 0, 0 }
};
SYMDESCR Button_Syms[] = {
{ "any-button", AnyButton },
{ "button1", Button1 },
{ "button2", Button2 },
{ "button3", Button3 },
{ "button4", Button4 },
{ "button5", Button5 },
{ 0, 0 }
};
SYMDESCR Cross_Mode_Syms[] = {
{ "normal", NotifyNormal },
{ "grab", NotifyGrab },
{ "ungrab", NotifyUngrab },
{ 0, 0 }
};
SYMDESCR Cross_Detail_Syms[] = {
{ "ancestor", NotifyAncestor },
{ "virtual", NotifyVirtual },
{ "inferior", NotifyInferior },
{ "nonlinear", NotifyNonlinear },
{ "nonlinear-virtual", NotifyNonlinearVirtual },
{ 0, 0 }
};
SYMDESCR Focus_Detail_Syms[] = {
{ "ancestor", NotifyAncestor },
{ "virtual", NotifyVirtual },
{ "inferior", NotifyInferior },
{ "nonlinear", NotifyNonlinear },
{ "nonlinear-virtual", NotifyNonlinearVirtual },
{ "pointer", NotifyPointer },
{ "pointer-root", NotifyPointerRoot },
{ "none", NotifyDetailNone },
{ 0, 0 }
};
SYMDESCR Visibility_Syms[] = {
{ "unobscured", VisibilityUnobscured },
{ "partially-obscured", VisibilityPartiallyObscured },
{ "fully-obscured", VisibilityFullyObscured },
{ 0, 0 }
};
SYMDESCR Place_Syms[] = {
{ "top", PlaceOnTop },
{ "bottom", PlaceOnBottom },
{ 0, 0 }
};
SYMDESCR Prop_Syms[] = {
{ "new-value", PropertyNewValue },
{ "deleted", PropertyDelete },
{ 0, 0 }
};
SYMDESCR Mapping_Syms[] = {
{ "modifier", MappingModifier },
{ "keyboard", MappingKeyboard },
{ "pointer", MappingPointer },
{ 0, 0 }
};
SYMDESCR Direction_Syms[] = {
{ "left-to-right", FontLeftToRight },
{ "right-to-left", FontRightToLeft },
{ 0, 0 }
};
SYMDESCR Polyshape_Syms[] = {
{ "complex", Complex },
{ "non-convex", Nonconvex },
{ "convex", Convex },
{ 0, 0 }
};
SYMDESCR Propmode_Syms[] = {
{ "replace", PropModeReplace },
{ "prepend", PropModePrepend },
{ "append", PropModeAppend },
{ 0, 0 }
};
SYMDESCR Grabstatus_Syms[] = {
{ "success", Success },
{ "not-viewable", GrabNotViewable },
{ "already-grabbed", AlreadyGrabbed },
{ "frozen", GrabFrozen },
{ "invalid-time", GrabInvalidTime },
{ 0, 0 }
};
SYMDESCR Bitmapstatus_Syms[] = {
{ "success", BitmapSuccess },
{ "open-failed", BitmapOpenFailed },
{ "file-invalid", BitmapFileInvalid },
{ "no-memory", BitmapNoMemory },
{ 0, 0 }
};
SYMDESCR Circulate_Syms[] = {
{ "raise-lowest", RaiseLowest },
{ "lower-highest", LowerHighest },
{ 0, 0 }
};
SYMDESCR Allow_Events_Syms[] = {
{ "async-pointer", AsyncPointer },
{ "sync-pointer", SyncPointer },
{ "replay-pointer", ReplayPointer },
{ "async-keyboard", AsyncKeyboard },
{ "sync-keyboard", SyncKeyboard },
{ "replay-keyboard", ReplayKeyboard },
{ "async-both", AsyncBoth },
{ "sync-both", SyncBoth },
{ 0, 0 }
};
SYMDESCR Revert_Syms[] = {
{ "none", RevertToNone },
{ "pointer-root", RevertToPointerRoot },
{ "parent", RevertToParent },
{ 0, 0 }
};
SYMDESCR Shape_Syms[] = {
{ "cursor", CursorShape },
{ "tile", TileShape },
{ "stipple", StippleShape },
{ 0, 0 }
};
SYMDESCR Initial_State_Syms[] = {
{ "dont-care", DontS48_CAReState },
{ "normal", NormalState },
{ "zoom", ZoomState },
{ "iconic", IconicState },
{ "inactive", InactiveState },
{ 0, 0 }
};
SYMDESCR Ordering_Syms[] = {
{ "unsorted", Unsorted },
{ "y-sorted", YSorted },
{ "yx-sorted", YXSorted },
{ "yx-banded", YXBanded },
{ 0, 0 }
};
SYMDESCR Byte_Order_Syms[] = {
{ "lsb-first", LSBFirst },
{ "msb-first", MSBFirst },
{ 0, 0 }
};
SYMDESCR Saveset_Syms[] = {
{ "insert", SetModeInsert },
{ "delete", SetModeDelete },
{ 0, 0 }
};
SYMDESCR Closemode_Syms[] = {
{ "destroy-all", DestroyAll },
{ "retain-permanent", RetainPermanent },
{ "retain-temporary", RetainTemporary },
{ 0, 0 }
};
SYMDESCR Event_Syms[] = {
{ "key-press", KeyPressMask },
{ "key-release", KeyReleaseMask },
{ "button-press", ButtonPressMask },
{ "button-release", ButtonReleaseMask },
{ "enter-window", EnterWindowMask },
{ "leave-window", LeaveWindowMask },
{ "pointer-motion", PointerMotionMask },
{ "pointer-motion-hint", PointerMotionHintMask },
{ "button-1-motion", Button1MotionMask },
{ "button-2-motion", Button2MotionMask },
{ "button-3-motion", Button3MotionMask },
{ "button-4-motion", Button4MotionMask },
{ "button-5-motion", Button5MotionMask },
{ "button-motion", ButtonMotionMask },
{ "keymap-state", KeymapStateMask },
{ "exposure", ExposureMask },
{ "visibility-change", VisibilityChangeMask },
{ "structure-notify", StructureNotifyMask },
{ "resize-redirect", ResizeRedirectMask },
{ "substructure-notify", SubstructureNotifyMask },
{ "substructure-redirect", SubstructureRedirectMask },
{ "focus-change", FocusChangeMask },
{ "property-change", PropertyChangeMask },
{ "colormap-change", ColormapChangeMask },
{ "owner-grab-button", OwnerGrabButtonMask },
{ "all-events", ~(unsigned long)0 },
{ 0, 0 }
};
SYMDESCR Error_Syms[] = {
{ "bad-request", BadRequest },
{ "bad-value", BadValue },
{ "bad-window", BadWindow },
{ "bad-pixmap", BadPixmap },
{ "bad-atom", BadAtom },
{ "bad-cursor", BadCursor },
{ "bad-font", BadFont },
{ "bad-match", BadMatch },
{ "bad-drawable", BadDrawable },
{ "bad-access", BadAccess },
{ "bad-alloc", BadAlloc },
{ "bad-color", BadColor },
{ "bad-gcontext", BadGC },
{ "bad-id-choice", BadIDChoice },
{ "bad-name", BadName },
{ "bad-length", BadLength },
{ "bad-implementation", BadImplementation },
{ 0, 0 }
};
/*************************************************************************
Other things
*************************************************************************/
static s48_value Set_Attr_Slots;
static s48_value Conf_Slots;
static s48_value GC_Slots;
@ -398,371 +808,6 @@ s48_value Record_To_Vector (rp, len, sym, dpy, flags) s48_value sym;
return v;
}
SYMDESCR Func_Syms[] = {
{ "clear", GXclear },
{ "and", GXand },
{ "and-reverse", GXandReverse },
{ "copy", GXcopy },
{ "and-inverted", GXandInverted },
{ "no-op", GXnoop },
{ "xor", GXxor },
{ "or", GXor },
{ "nor", GXnor },
{ "equiv", GXequiv },
{ "invert", GXinvert },
{ "or-reverse", GXorReverse },
{ "copy-inverted", GXcopyInverted },
{ "or-inverted", GXorInverted },
{ "nand", GXnand },
{ "set", GXset },
{ 0, 0 }
};
SYMDESCR Bit_Grav_Syms[] = {
{ "forget", ForgetGravity },
{ "north-west", NorthWestGravity },
{ "north", NorthGravity },
{ "north-east", NorthEastGravity },
{ "west", WestGravity },
{ "center", CenterGravity },
{ "east", EastGravity },
{ "south-west", SouthWestGravity },
{ "south", SouthGravity },
{ "south-east", SouthEastGravity },
{ "static", StaticGravity },
{ 0, 0 }
};
SYMDESCR Grav_Syms[] = {
{ "unmap", UnmapGravity },
{ "north-west", NorthWestGravity },
{ "north", NorthGravity },
{ "north-east", NorthEastGravity },
{ "west", WestGravity },
{ "center", CenterGravity },
{ "east", EastGravity },
{ "south-west", SouthWestGravity },
{ "south", SouthGravity },
{ "south-east", SouthEastGravity },
{ "static", StaticGravity },
{ 0, 0 }
};
SYMDESCR Backing_Store_Syms[] = {
{ "not-useful", NotUseful },
{ "when-mapped", WhenMapped },
{ "always", Always },
{ 0, 0 }
};
SYMDESCR Stack_Mode_Syms[] = {
{ "above", Above },
{ "below", Below },
{ "top-if", TopIf },
{ "bottom-if", BottomIf },
{ "opposite", Opposite },
{ 0, 0 }
};
SYMDESCR Line_Style_Syms[] = {
{ "solid", LineSolid },
{ "dash", LineOnOffDash },
{ "double-dash", LineDoubleDash },
{ 0, 0 }
};
SYMDESCR Cap_Style_Syms[] = {
{ "not-last", CapNotLast },
{ "butt", CapButt },
{ "round", CapRound },
{ "projecting", CapProjecting },
{ 0, 0 }
};
SYMDESCR Join_Style_Syms[] = {
{ "miter", JoinMiter },
{ "round", JoinRound },
{ "bevel", JoinBevel },
{ 0, 0 }
};
SYMDESCR Fill_Style_Syms[] = {
{ "solid", FillSolid },
{ "tiled", FillTiled },
{ "stippled", FillStippled },
{ "opaque-stippled", FillOpaqueStippled },
{ 0, 0 }
};
SYMDESCR Fill_Rule_Syms[] = {
{ "even-odd", EvenOddRule },
{ "winding", WindingRule },
{ 0, 0 }
};
SYMDESCR Arc_Mode_Syms[] = {
{ "chord", ArcChord },
{ "pie-slice", ArcPieSlice },
{ 0, 0 }
};
SYMDESCR Subwin_Mode_Syms[] = {
{ "clip-by-children", ClipByChildren },
{ "include-inferiors", IncludeInferiors },
{ 0, 0 }
};
SYMDESCR Class_Syms[] = {
{ "input-output", InputOutput },
{ "input-only", InputOnly },
{ 0, 0 }
};
SYMDESCR Map_State_Syms[] = {
{ "unmapped", IsUnmapped },
{ "unviewable", IsUnviewable },
{ "viewable", IsViewable },
{ 0, 0 }
};
SYMDESCR State_Syms[] = {
{ "shift", ShiftMask },
{ "lock", LockMask },
{ "control", ControlMask },
{ "mod1", Mod1Mask },
{ "mod2", Mod2Mask },
{ "mod3", Mod3Mask },
{ "mod4", Mod4Mask },
{ "mod5", Mod5Mask },
{ "button1", Button1Mask },
{ "button2", Button2Mask },
{ "button3", Button3Mask },
{ "button4", Button4Mask },
{ "button5", Button5Mask },
{ "any-modifier", AnyModifier },
{ 0, 0 }
};
SYMDESCR Button_Syms[] = {
{ "any-button", AnyButton },
{ "button1", Button1 },
{ "button2", Button2 },
{ "button3", Button3 },
{ "button4", Button4 },
{ "button5", Button5 },
{ 0, 0 }
};
SYMDESCR Cross_Mode_Syms[] = {
{ "normal", NotifyNormal },
{ "grab", NotifyGrab },
{ "ungrab", NotifyUngrab },
{ 0, 0 }
};
SYMDESCR Cross_Detail_Syms[] = {
{ "ancestor", NotifyAncestor },
{ "virtual", NotifyVirtual },
{ "inferior", NotifyInferior },
{ "nonlinear", NotifyNonlinear },
{ "nonlinear-virtual", NotifyNonlinearVirtual },
{ 0, 0 }
};
SYMDESCR Focus_Detail_Syms[] = {
{ "ancestor", NotifyAncestor },
{ "virtual", NotifyVirtual },
{ "inferior", NotifyInferior },
{ "nonlinear", NotifyNonlinear },
{ "nonlinear-virtual", NotifyNonlinearVirtual },
{ "pointer", NotifyPointer },
{ "pointer-root", NotifyPointerRoot },
{ "none", NotifyDetailNone },
{ 0, 0 }
};
SYMDESCR Visibility_Syms[] = {
{ "unobscured", VisibilityUnobscured },
{ "partially-obscured", VisibilityPartiallyObscured },
{ "fully-obscured", VisibilityFullyObscured },
{ 0, 0 }
};
SYMDESCR Place_Syms[] = {
{ "top", PlaceOnTop },
{ "bottom", PlaceOnBottom },
{ 0, 0 }
};
SYMDESCR Prop_Syms[] = {
{ "new-value", PropertyNewValue },
{ "deleted", PropertyDelete },
{ 0, 0 }
};
SYMDESCR Mapping_Syms[] = {
{ "modifier", MappingModifier },
{ "keyboard", MappingKeyboard },
{ "pointer", MappingPointer },
{ 0, 0 }
};
SYMDESCR Direction_Syms[] = {
{ "left-to-right", FontLeftToRight },
{ "right-to-left", FontRightToLeft },
{ 0, 0 }
};
SYMDESCR Polyshape_Syms[] = {
{ "complex", Complex },
{ "non-convex", Nonconvex },
{ "convex", Convex },
{ 0, 0 }
};
SYMDESCR Propmode_Syms[] = {
{ "replace", PropModeReplace },
{ "prepend", PropModePrepend },
{ "append", PropModeAppend },
{ 0, 0 }
};
SYMDESCR Grabstatus_Syms[] = {
{ "success", Success },
{ "not-viewable", GrabNotViewable },
{ "already-grabbed", AlreadyGrabbed },
{ "frozen", GrabFrozen },
{ "invalid-time", GrabInvalidTime },
{ 0, 0 }
};
SYMDESCR Bitmapstatus_Syms[] = {
{ "success", BitmapSuccess },
{ "open-failed", BitmapOpenFailed },
{ "file-invalid", BitmapFileInvalid },
{ "no-memory", BitmapNoMemory },
{ 0, 0 }
};
SYMDESCR Circulate_Syms[] = {
{ "raise-lowest", RaiseLowest },
{ "lower-highest", LowerHighest },
{ 0, 0 }
};
SYMDESCR Allow_Events_Syms[] = {
{ "async-pointer", AsyncPointer },
{ "sync-pointer", SyncPointer },
{ "replay-pointer", ReplayPointer },
{ "async-keyboard", AsyncKeyboard },
{ "sync-keyboard", SyncKeyboard },
{ "replay-keyboard", ReplayKeyboard },
{ "async-both", AsyncBoth },
{ "sync-both", SyncBoth },
{ 0, 0 }
};
SYMDESCR Revert_Syms[] = {
{ "none", RevertToNone },
{ "pointer-root", RevertToPointerRoot },
{ "parent", RevertToParent },
{ 0, 0 }
};
SYMDESCR Shape_Syms[] = {
{ "cursor", CursorShape },
{ "tile", TileShape },
{ "stipple", StippleShape },
{ 0, 0 }
};
SYMDESCR Initial_State_Syms[] = {
{ "dont-care", DontS48_CAReState },
{ "normal", NormalState },
{ "zoom", ZoomState },
{ "iconic", IconicState },
{ "inactive", InactiveState },
{ 0, 0 }
};
SYMDESCR Ordering_Syms[] = {
{ "unsorted", Unsorted },
{ "y-sorted", YSorted },
{ "yx-sorted", YXSorted },
{ "yx-banded", YXBanded },
{ 0, 0 }
};
SYMDESCR Byte_Order_Syms[] = {
{ "lsb-first", LSBFirst },
{ "msb-first", MSBFirst },
{ 0, 0 }
};
SYMDESCR Saveset_Syms[] = {
{ "insert", SetModeInsert },
{ "delete", SetModeDelete },
{ 0, 0 }
};
SYMDESCR Closemode_Syms[] = {
{ "destroy-all", DestroyAll },
{ "retain-permanent", RetainPermanent },
{ "retain-temporary", RetainTemporary },
{ 0, 0 }
};
SYMDESCR Event_Syms[] = {
{ "key-press", KeyPressMask },
{ "key-release", KeyReleaseMask },
{ "button-press", ButtonPressMask },
{ "button-release", ButtonReleaseMask },
{ "enter-window", EnterWindowMask },
{ "leave-window", LeaveWindowMask },
{ "pointer-motion", PointerMotionMask },
{ "pointer-motion-hint", PointerMotionHintMask },
{ "button-1-motion", Button1MotionMask },
{ "button-2-motion", Button2MotionMask },
{ "button-3-motion", Button3MotionMask },
{ "button-4-motion", Button4MotionMask },
{ "button-5-motion", Button5MotionMask },
{ "button-motion", ButtonMotionMask },
{ "keymap-state", KeymapStateMask },
{ "exposure", ExposureMask },
{ "visibility-change", VisibilityChangeMask },
{ "structure-notify", StructureNotifyMask },
{ "resize-redirect", ResizeRedirectMask },
{ "substructure-notify", SubstructureNotifyMask },
{ "substructure-redirect", SubstructureRedirectMask },
{ "focus-change", FocusChangeMask },
{ "property-change", PropertyChangeMask },
{ "colormap-change", ColormapChangeMask },
{ "owner-grab-button", OwnerGrabButtonMask },
{ "all-events", ~(unsigned long)0 },
{ 0, 0 }
};
SYMDESCR Error_Syms[] = {
{ "bad-request", BadRequest },
{ "bad-value", BadValue },
{ "bad-window", BadWindow },
{ "bad-pixmap", BadPixmap },
{ "bad-atom", BadAtom },
{ "bad-cursor", BadCursor },
{ "bad-font", BadFont },
{ "bad-match", BadMatch },
{ "bad-drawable", BadDrawable },
{ "bad-access", BadAccess },
{ "bad-alloc", BadAlloc },
{ "bad-color", BadColor },
{ "bad-gcontext", BadGC },
{ "bad-id-choice", BadIDChoice },
{ "bad-name", BadName },
{ "bad-length", BadLength },
{ "bad-implementation", BadImplementation },
{ 0, 0 }
};
static Init_Record (rec, size, name, var) RECORD *rec; char *name;
s48_value *var; {
s48_value list, tail, cell;