gmv0.9/0040755000175200017560000000000007306140416012343 5ustar stephensstephenggmv0.9/src/0040755000175200017560000000000007306140401013124 5ustar stephensstephenggmv0.9/src/gmv/0040755000175200017560000000000007306140400013714 5ustar stephensstephenggmv0.9/src/gmv/CVS/0040755000175200017560000000000007306136065014363 5ustar stephensstephenggmv0.9/src/gmv/CVS/Root0100644000175200017560000000003407252753424015227 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gmv/CVS/Repository0100644000175200017560000000002107252753424016457 0ustar stephensstephenghome/ion/src/gmv gmv0.9/src/gmv/CVS/Entries0100644000175200017560000000333707306136065015722 0ustar stephensstepheng/gltest.c/1.2/Fri Mar 9 18:22:42 2001// /gltest.man/1.1/Fri Mar 9 07:50:32 2001// /malloc.h/1.1/Thu Mar 15 04:46:44 2001// /ri.cc/1.3/Thu Mar 15 04:49:40 2001// /ri.hh/1.3/Thu Mar 15 04:49:40 2001// /test1.c/1.3/Thu Mar 15 04:49:40 2001// /testscene.c/1.3/Thu Mar 15 04:49:40 2001// /gltest2.c/1.7/Tue Apr 3 18:51:56 2001// /vmop.h/1.10/Tue Apr 3 18:51:56 2001// /gmvgl.cc/1.6/Sat Apr 7 10:26:24 2001// /kit.h/1.1/Tue Apr 3 18:51:56 2001// /gl.cc/1.13/Sun Apr 8 23:09:19 2001// /gl.hh/1.9/Sun Apr 8 21:16:19 2001// /gmv.h/1.3/Mon Apr 9 18:02:20 2001// /opts.h/1.2/Mon Apr 9 18:02:44 2001// /retained.hh/1.7/Sun Apr 8 19:31:55 2001// /selection.cc/1.4/Sun Apr 8 18:56:03 2001// /selection.hh/1.4/Sun Apr 8 18:38:34 2001// /xform.cc/1.9/Sun Apr 8 23:26:37 2001// /context.cc/1.15/Thu Apr 19 18:54:28 2001// /context.hh/1.17/Thu Apr 19 22:22:19 2001// /init.tcl/1.3/Thu Apr 19 23:44:32 2001// /keys.h/1.1/Fri Apr 20 00:09:17 2001// /tools.cc/1.10/Fri Apr 20 01:05:21 2001// /tools.hh/1.7/Fri Apr 20 00:56:22 2001// /retained.cc/1.9/Sat Apr 21 17:02:20 2001// /window.cc/1.5/Mon Apr 23 11:27:46 2001// /tool.cc/1.11/Mon Apr 23 09:25:01 2001// /tool.hh/1.9/Sun Apr 22 23:44:36 2001// /crv.cc/1.8/Mon Apr 23 11:20:43 2001// /crv.hh/1.7/Mon Apr 23 11:19:59 2001// /gmv.swig/1.7/Mon Apr 23 12:37:50 2001// /kit.cc/1.3/Mon Apr 23 12:00:07 2001// /test1.tcl/1.5/Mon Apr 23 12:37:50 2001// /xform.hh/1.9/Mon Apr 23 12:06:54 2001// /GUMakefile/1.9/Sat Jun 2 05:33:11 2001// /gmvtcl.c/1.6/Sat Jun 2 05:33:11 2001// /object.cc/1.18/Sat Jun 2 05:26:14 2001// /object.hh/1.16/Sat Jun 2 05:25:47 2001// /xml.cc/1.2/Sat Jun 2 05:28:23 2001// /xvf.cc/1.1/Sat Jun 2 05:24:49 2001// /xvf.hh/1.1/Sat Jun 2 05:24:24 2001// /PKG/1.4/Sat Jun 2 08:56:42 2001// D gmv0.9/src/gmv/xvf.cc0100744000175200017560000000076107306074241015041 0ustar stephensstepheng #include "gmv/xvf.hh" XVF_CLASS_BASIC(GMAN_REF); void xvf_visit(GMAN_REF *x, XVFVisitor *r, int flags) { r->visit((void**) x, flags); } XVF_CLASS_BASIC(GMVTransformRef); void xvf_visit(GMVTransformRef *x, XVFVisitor *r, int flags) { r->visit((void**) x, flags); } XVF_CLASS_BASIC(GMVObjectRef); void xvf_visit(GMVObjectRef *x, XVFVisitor *r, int flags) { GMVObject *temp = *x; xvf_visit(&temp, r, flags); if ( flags != XVF_CONST ) { *x = (GMVObject*) temp; } } gmv0.9/src/gmv/.#localt.txt0120777000175200017560000000000007306140400025047 2stephens@ion02.dev.ionink.com.2051:986516897ustar stephensstephenggmv0.9/src/gmv/PKG0100644000175200017560000000023607306125112014261 0ustar stephensstephengNAME=gmv VERSION=0.9 DESC=A visualization toolkit for GMAN CATEGORY=Geometric Modeling REQUIRES_PKGS=../gum ../glwin ../util ../gman ../xvf REQUIRES_OTHERS= gmv0.9/src/gmv/context.cc0100744000175200017560000003726307267632144015741 0ustar stephensstepheng#include "context.hh" #include "vmop.h" #include /* sqrt() */ #include /* memset() */ #include /* free() */ #include #include #include /* sort() */ #define C GMVContext #if 0 #define gman_point(f,nx,x) \ ({ \ const GMANValue *__p = gman_point(f,x); \ fprintf(stderr, "%s:%d: gman_point(%p, %p) = %p[%d]\n", __FILE__, __LINE__, f, x, __p, gman_noutputs(f)); \ __p; \ }) #endif C :: C () : _refcnt(0) { } C :: ~C () { } refcntptr_DEF(,C); void C :: __deref_delete() { delete this; } void C :: init() { _picking = 0; _camera = 0; _space = new GMVSpaceContext(this); { _projectionToViewport = 0; viewport(0, 0, 640, 480); } { _cameraToProjection = 0; fov(60.0); } { clipz(1.0, 20.0); } { _worldToCamera = 0; } { _transform = new GMVMatrixTransform(); _transform->identity(); _transform_ref = 0; } { _object = 0; _objectDef = 0; } { _render_opts = &_render_opts_default; memset(_render_opts, 0, sizeof(*_render_opts)); _render_opts->primDim = 1; _render_opts->projectDim = 3; _render_opts->pointIndex = 0; _render_opts->colorIndex = -1; _render_opts->alphaIndex = -1; _render_opts->normalIndex = -1; } { static int samples[] = { 20, 20, 20, 20, 20, 20 }; static GMANValue ranges[] = { 0., 1., 0., 1., 0., 1., 0., 1., 0., 1. }; _eval_opts = &_eval_opts_default; memset(_eval_opts, 0, sizeof(*_eval_opts)); _eval_opts->nparms = 2; _eval_opts->samples = samples; _eval_opts->ranges = ranges; } { selectionSet(new GMVSelection); } _inFrame = _inWorld = _inPoints = _inObject = _inObjectDef = _inAttribute = _inTransform = 0; } GMVSpaceContext * C :: space() { assert(_space); return _space; } void C :: activate() { /* NOTHING */ } void C :: deactivate() { } void C :: frameBegin() { assert(! _inFrame); ++ _inFrame; } void C :: frameEnd() { assert(_inFrame); -- _inFrame; } void C :: viewport(int x, int y, int w, int h) { _viewport[0] = x; _viewport[1] = y; _viewport[2] = w; _viewport[3] = h; _projectionToViewport = 0; _space->clear(); } GMVTransform * C :: projectionToViewport() { if ( ! _projectionToViewport ) { GMVM44 M = { { _viewport[2], 0, 0, 0 }, { 0, - _viewport[3], 0, 0 }, { 0, 0, 1, 0 }, { _viewport[0], _viewport[1] + _viewport[3], 0, 1 } }; _projectionToViewport = new GMVMatrixTransform(M); } return _projectionToViewport; } GMVObjectCamera *C :: _allocCamera() { if ( ! _camera ) { _camera = new GMVObjectCamera(this); GMVMatrixTransform *t = new GMVMatrixTransform(); static GMVV3 from = { 5, 5, 8 }; static GMVV3 to = { 0, 0, 0 }; static GMVV3 up = { 0, 1, 0 }; t->lookat(&from, &to, &up); _camera->transform(t); } return _camera; } void C :: fov(GMANValue f) { _fov = f; _cameraToProjection = 0; _space->clear(); } void C :: fov(GMAN_ARG f) { _fov = (gman_point(f, 0, 0))[0]; _cameraToProjection = 0; _space->clear(); } void C :: clipz(GMANValue n, GMANValue f) { _clipz[0] = n; _clipz[1] = f; _cameraToProjection = 0; _space->clear(); } void C :: clipz(GMAN_ARG n, GMAN_ARG f) { _clipz[0] = (gman_point(n, 0, 0))[0]; _clipz[1] = (gman_point(f, 0, 0))[0]; _cameraToProjection = 0; _space->clear(); } GMVTransform * C :: cameraToProjection() { if ( ! _cameraToProjection ) { abort(); } return _cameraToProjection; } GMVTransform * C :: worldToCamera() { if ( ! _worldToCamera ) { abort(); } return _worldToCamera; } GMVObjectCamera * C :: camera() { return _allocCamera(); } void C :: camera(GMVObjectCamera* x) { _camera = x; } void C :: worldBegin() { assert(_inFrame); assert(! _inWorld); assert(! _inObject); assert(! _inObjectDef); assert(! _inAttribute); assert(! _inTransform); ++ _inWorld; assert(_inWorld); } void C :: worldEnd() { assert(_inFrame); assert(! _inObject); assert(! _inObjectDef); assert(! _inAttribute); assert(! _inTransform); assert(_inWorld); -- _inWorld; assert(! _inWorld); } void C :: attributeBegin() { assert(_inFrame); ++ _inAttribute; } void C :: attributeEnd() { assert(_inFrame); assert(_inAttribute); -- _inAttribute; } void C :: color(const GMVS *c) { } void C :: color(GMAN_ARG c) { color(gman_point(c, 0, 0)); } void C :: transformBegin() { assert(_inFrame); ++ _inTransform; _transform_stack.push(_transform); } void C :: transformEnd() { assert(_inTransform); -- _inTransform; _transform = _transform_stack.top(); _transform_stack.pop(); } #define _TRANSFORM_COW() \ if ( _transform_ref ) { \ _transform = _transform ? new GMVMatrixTransform(*_transform) : 0; \ _transform_ref = 0; \ } void C :: transformIdentity() { _TRANSFORM_COW(); _transform->identity(); } void C :: transform(const GMVS *m) { _TRANSFORM_COW(); _transform->matrix(* (const GMVM44 *) m); } void C :: transform(GMAN_ARG m) { assert(gman_noutputs(m) >= 16); _TRANSFORM_COW(); _transform->matrix(* (const GMVM44*) gman_point(m, 0, 0)); } void C :: transformConcat(const GMVS *m) { _TRANSFORM_COW(); _transform->prepend(* (const GMVM44 *)m); } void C :: transformConcat(GMAN_ARG m) { assert(gman_noutputs(m) >= 16); _TRANSFORM_COW(); _transform->prepend(* (const GMVM44 *) gman_point(m, 0, 0)); } #undef _TRANSFORM_COW /***************************************************************************/ void C :: curve(GMAN_ARG f) { if ( objectCapturing() ) { addObject(new GMVCurve(this, f)); } else { // fprintf(stderr, "curve %p %p\n", this, f); GMANValue *p = gman_eval_curve(f, _eval_opts, 0); polyline(_eval_opts->samples[0], p, gman_noutputs(f), 0, _render_opts); free(p); } } void C :: surface(GMAN_ARG f) { if ( objectCapturing() ) { addObject(new GMVCurve(this, f)); } else { // fprintf(stderr, "surface %p %p\n", this, f); GMANValue *p = gman_eval_surface(f, _eval_opts, 0); surface( _eval_opts->samples[0], _eval_opts->samples[1], p, gman_noutputs(f), -1, _render_opts); free(p); } } void C :: area(GMAN_ARG f) { // fprintf(stderr, "area %p %p\n", this, f); if ( objectCapturing() ) { addObject(new GMVArea(this, f)); } else { GMANValue *p = gman_eval_curve(f, _eval_opts, 0); switch ( _render_opts->primDim ) { /* Point cloud. */ case 0: points(_eval_opts->samples[0], p, gman_noutputs(f), _render_opts); break; /* Lines. */ case 1: polyline(_eval_opts->samples[0], p, gman_noutputs(f), 1, _render_opts); break; /* Polygon. */ case 2: polygon(_eval_opts->samples[0], p, gman_noutputs(f), _render_opts); break; default: assert(! "primDim != 0, 1, or 2"); break; } free(p); } } /****************************************************************/ GMVObject *C :: pointsBegin(GMVObjectCrv *crv = 0) { assert(_inWorld); if ( ! crv ) { crv = new GMVObjectCrv(this); } /* Add curve to current object. */ addObject(crv); /* Create a identity transform for points. */ transformBegin(); _transform = new GMVMatrixTransform(); _transform->identity(); _transform_ref = 0; /* Save current curve definition. */ _crv_stack.push(_crv); /* Make it the current curve. */ _crv = crv; ++ _inPoints; return crv; } void C :: pointsEnd() { assert(_inWorld); /* End object transform block. */ assert(_inPoints); transformEnd(); /* Restore curve definition. */ _crv = _crv_stack.top(); _crv_stack.pop(); -- _inPoints; } void C :: pointsAdd(const GMVV3 *p) { GMVV3 pt; assert(_inPoints); _transform->transform(1, p, &pt); _crv->addPoint(&pt); } /****************************************************************/ void C :: addObject(GMVObject *obj) { /* ** If there is an object definition being created ** add the object to the object definition. ** Subclasses must handle the case if an object is added without ** a pending object definition. */ if ( _objectDef ) { _objectDef->addObject(obj); } else if ( _object ) { _object->addObject(obj); } else { abort(); } } GMVObject *C :: objectBegin(GMVObject *obj = 0) { assert(_inWorld); /* Begin a new identity transform block. */ transformBegin(); _transform = new GMVMatrixTransform(); _transform->identity(); _transform_ref = 0; if ( ! obj ) { obj = new GMVObject(this); } /* Save current object definition. */ _object_stack.push(_object); /* Make it the current object. */ _object = obj; ++ _inObject; return obj; } void C :: objectEnd() { assert(_inWorld); /* End object transform block. */ assert(_inObject); transformEnd(); /* Restore object definition. */ _object = _object_stack.top(); _object_stack.pop(); -- _inObject; } const char * C :: objectDefBegin(const char *_name) { assert(_inFrame); string name = _name; /* Save current object definition. */ _objectDef_stack.push(_objectDef); /* Create a new object definition. */ GMVObjectDefinition *def = new GMVObjectDefinition(this, _name); /* Add it as a child of the current definition. */ if ( _objectDef ) { _objectDef->addChild(def); } /* Make it the current object definition. */ _objectDef = def; /* Remember it by the requested name. */ _named_objects[name] = _object; /* Begin a new identity transform block. */ transformBegin(); _transform = new GMVMatrixTransform(); _transform->identity(); _transform_ref = 0; ++ _inObjectDef; return _name; } void C :: objectDefEnd() { /* End object transform block. */ assert(_inObjectDef); transformEnd(); /* Restore object definition. */ _objectDef = _objectDef_stack.top(); _objectDef_stack.pop(); -- _inObjectDef; } GMVObject * C :: objectDefGet(const string &name) { GMVObject *obj = 0; _named_objects_t::iterator i; if ( (i = _named_objects.find(name)) != _named_objects.end() ) { obj = i->second; } return obj; } void C :: objectInstance(const char *name) { if ( objectCapturing() ) { addObject(new GMVObjectInstance(this, name)); } else { GMVObject *obj; if ( (obj = objectDefGet(name)) ) { obj->renderInstance(this); } } } void C :: objectDefDestroy(const char *name) { string _name = name; _named_objects.erase(_name); } /****************************************************************/ void C :: triangleStripBegin() { abort(); } void C :: triangleStripEnd() { abort(); } void C :: polygonBegin() { abort(); } void C :: polygonEnd() { abort(); } void C :: polygonNormal(const GMANValue *p) { abort(); } void C :: polygon(int np, const GMANValue *p, int skip, const gman_render_options *opts) { polygonBegin(); while ( np -- > 0 ) { vertex(p, opts); p += skip; } polygonEnd(); } void C :: triangleNormal(const GMANValue *p0, const GMANValue *p1, const GMANValue *p2) { /* ^ p2 | |\ v1 | \ | | \ | p0--p1 --v0-> */ GMANValue v0[3], v1[3], n[3]; V3_OP(v0, =, p1, -, p0); V3_OP(v1, =, p2, -, p1); V3_XPROD(n, =, v0, ^, v1); V3_NORMALIZE(n); polygonNormal(n); } void C :: surface(int nu, int nv, const GMANValue *ps, int uskip, int vskip, const gman_render_options *opts) { if ( vskip < 0 ) { vskip = nu * uskip; } switch ( opts->primDim ) { default: assert(! "opts->primDim valid"); break; case 0: /* POINTS */ { const GMANValue *row = ps; int i; /* Optimized */ if ( vskip == nu * uskip ) { points(nu * nv, row, uskip, opts); } else { for ( i = nv; i --; ) { points(nu, row, uskip, opts); row += vskip; } } } break; case 1: /* LINES */ { const GMANValue *row; int i; row = ps; for ( i = nv; i --; ) { polyline(nu, row, uskip, 0, opts); row += vskip; } row = ps; for ( i = nu; i --; ) { polyline(nv, row, vskip, 0, opts); row += uskip; } } break; case 2: { const GMANValue *row = ps; int i; for ( i = 1; i < nv; ++ i ) { const GMANValue *last_row; const GMANValue *p0, *p1, *p2; int j; last_row = row; row += vskip; /* 0--2--4--6--8 | /| /| /| /| |/ |/ |/ |/ | 1--3--5--7--9 */ p0 = last_row; p1 = row; p2 = p0 + uskip; triangleStripBegin(); if ( opts->normalIndex < 0 ) { triangleNormal(p0, p1, p2); } vertex(p0, opts); vertex(p1, opts); for ( j = 1; j < nu; ++ j ) { p2 = p0 + uskip; if ( opts->normalIndex < 0 ) { triangleNormal(p0, p1, p2); } vertex(p2, opts); p0 = p2; p2 = p1 + uskip; if ( opts->normalIndex < 0 ) { triangleNormal(p2, p0, p1); } vertex(p2, opts); p1 = p2; } triangleStripEnd(); } } break; } } /******************************************************************/ /* Display Lists. */ long C :: displayListRenderObject(void *object) { _displayLists_t::iterator i; long dl = 0; if ( (i = _displayLists.find(object)) == _displayLists.end() ) { dl = displayListBegin(); if ( dl != -1L ) { _displayLists[object] = dl; } /* Caller will display. */ } else { displayListDisplay(i->second); dl = 0; /* Caller will not display. */ } // fprintf(stderr, "%p->displayListRenderObject(%p) = %ld\n", this, object, dl); return dl; } long C :: displayListBegin() { /* UNSUPPORTED. */ return -1L; /* DISPLAY, BUT NO DISPLAY LIST GENERATED. */ } void C :: displayListEnd(long dl) { /* UNSUPPORTED. */ } void C :: displayListDisplay(long dl) { assert(! "displayListDisplay()"); abort(); } void C :: displayListDestroy(long dl) { assert(! "displayListDestroy()"); abort(); } /******************************************************************/ /* Picking. */ void C :: pick(int x1, int y1, int x2, int y2) { _pick[0] = x1 < x2 ? x1 : x2; _pick[1] = y1 < y2 ? y1 : y2; _pick[2] = x1 > x2 ? x1 : x2; _pick[3] = y1 > y2 ? y1 : y2; } void C :: pickBegin() { _picking = 1; _pickListCount = -1; _pickList = 0; } void C :: pickEnd() { _picking = 0; } void C :: pickListEmpty() { _pickMap.clear(); _pickList = 0; _pickListCount = 0; } void C :: pickListBegin() { assert(! "pickListBegin"); abort(); } void C :: pickListEnd() { assert(! "pickListEnd"); abort(); } void C :: pickListSet(void *object) { assert(! "pickListSet"); abort(); } static struct { int operator() (gmv_pick_hit *a, gmv_pick_hit *b) { return a->bound[4] < b->bound[5]; } } pick_hit_compare; int C :: pickListCount() { return _pickMap.size(); } gmv_pick_hit * C :: pickList() { if ( _pickListCount < 0 ) { _pickListCount = _pickMap.size(); // Create a vector of pick hits to sort by minimum Z value. vector x; for ( pickMap_t::iterator i = _pickMap.begin(); i != _pickMap.end(); ++ i ) { x.push_back(&i->second); } sort(x.begin(), x.end(), pick_hit_compare); /* Create linked list of pick hits. */ picked **np = &_pickList; for ( vector::iterator i = x.begin(); i != x.end(); ++ i ) { *np = *i; np = &(*np)->next; } *np = 0; } return _pickList; } /******************************************************************/ /* Selection. */ void C :: selectionSet(GMVSelection *sel) { _selection = sel; } GMVSelection* C :: selection() { return _selection; } /******************************************************************/ #undef C gmv0.9/src/gmv/context.hh0100744000175200017560000001470407267662433015752 0ustar stephensstepheng#ifndef _gmv_context_hh #define _gmv_context_hh #include "gmv.h" #include "opts.h" /* gman_render_opts */ #include #include #include #include #include "kit.h" #include "xform.hh" /* GMVTransform */ #include "selection.hh" /* GMVSelection */ class GMVObject; class GMVObjectCamera; class GMVObjectDefinition; #include "object.hh" /* GMVObject */ #include "crv.hh" /* GMVObjectCrv */ #include "util/refcntptr.hh" class GMVContext; refcntptr_DECL(GMVContext); typedef refcntptr GMVContextRef; class GMVContext //@ Handles low-level rendering. // Different subclasses for OpenGL, RenderMan, .... { refcntptr_CLASS(GMVContext); protected: friend class GMVObject; int _viewport[4]; /* x, y, w, h */ GMVMatrixTransform *_projectionToViewport; /*@ Projection */ GMVS _fov; /*@ Field of view. */ GMVS _clipz[2]; /*@ Near and far clipping planes. */ GMVMatrixTransformRef _cameraToProjection; /*@ Camera */ GMVMatrixTransformRef _worldToCamera; /* Current Camera */ GMVObjectCameraRef _camera; virtual GMVObjectCamera *_allocCamera(); /* Current rendering. */ gman_render_options _render_opts_default; gman_render_options *_render_opts; /* Current eval. */ gman_eval_options _eval_opts_default; gman_eval_options *_eval_opts; /* Space cache. */ GMVSpaceContext *_space; /* Current Model to World Transformation. */ GMVMatrixTransformRef _transform; int _transform_ref; typedef stack _transform_stack_t; _transform_stack_t _transform_stack; /* Curves. */ GMVObjectCrvRef _crv; stack _crv_stack; /* Nested objects. */ GMVObjectRef _object; stack _object_stack; /* Named objects. */ GMVObjectRef _objectDef; stack _objectDef_stack; typedef map _named_objects_t; _named_objects_t _named_objects; /* Maps handle to valid display list long. */ typedef map _displayLists_t; _displayLists_t _displayLists; /* Picking support. */ public: typedef gmv_pick_hit picked; typedef map pickMap_t; protected: int _picking; /*@ Currently pick testing. */ int _pick[4]; /*@ x1, y1, x2, y2 */ GMVS _pickZ[2]; /*@ zmin, zmax */ pickMap_t _pickMap; /*@ Object to pick hit map. */ int _pickListCount; /*@ Number of pick hits. */ picked *_pickList; /*@ Sorted pick list. */ /* Selection. */ GMVSelection *_selection; /* Block. */ short _inFrame, _inWorld, _inObject, _inAttribute, _inTransform; short _inObjectDef, _inPoints; public: GMVContext(); virtual ~GMVContext(); virtual void init(); /* Activation. */ virtual void activate(); virtual void deactivate(); /* Frame */ virtual void frameBegin(); virtual void frameEnd(); /* Viewport. */ virtual void viewport(int x, int y, int w, int h); virtual const int *viewport() { return _viewport; } /* Projection. */ virtual void fov(GMVS fov); virtual void fov(GMAN_ARG f); virtual void clipz(GMVS n, GMVS f); virtual void clipz(GMAN_ARG n, GMAN_ARG f); /* Camera. */ virtual GMVObjectCamera *camera(); virtual void camera(GMVObjectCamera *x); /* World. */ virtual void worldBegin(); virtual void worldEnd(); /* Attribute. */ virtual void attributeBegin(); virtual void attributeEnd(); virtual void color(const GMVS *c); virtual void color(GMAN_ARG c); /* Transform. */ virtual void transformBegin(); virtual void transformEnd(); virtual void transformIdentity(); virtual void transform(const GMVS *m); virtual void transform(GMAN_ARG m); virtual void transformConcat(const GMVS *m); virtual void transformConcat(GMAN_ARG m); virtual GMVTransform *projectionToViewport(); virtual GMVTransform *cameraToProjection(); virtual GMVTransform *worldToCamera(); virtual GMVSpaceContext *space(); /* Visualization */ virtual void curve(GMAN_ARG f); virtual void surface(GMAN_ARG f); virtual void area(GMAN_ARG f); /* Nested Objects. */ virtual GMVObject *pointsBegin(GMVObjectCrv *crv); virtual void pointsAdd(const GMVV3 *p); virtual void pointsEnd(); /* Nested Objects. */ virtual GMVObject *objectBegin(GMVObject *obj = 0); virtual void objectEnd(); /* Retained Objects. */ virtual void addObject(GMVObject *obj); virtual int objectCapturing() { return _objectDef; } virtual const char* objectDefBegin(const char *name); virtual void objectDefEnd(); virtual GMVObject *objectDefGet(const string &name); virtual void objectInstance(const char *name); virtual void objectDefDestroy(const char *name); /******************************************************************/ /* Low-level Geometry. */ virtual void vertex(const GMVS *v, const gman_render_options *opts) = 0; virtual void points(int n, const GMVS *p, int skip, const gman_render_options *opts) = 0; virtual void polyline(int count, const GMVS *p, int skip, int wrap, const gman_render_options *opts) = 0; virtual void triangleStripBegin(); virtual void triangleNormal(const GMVS *p0, const GMVS *p1, const GMVS *p2); virtual void triangleStripEnd(); virtual void polygonBegin(); virtual void polygonEnd(); virtual void polygonNormal(const GMVS *v); virtual void polygon(int n, const GMVS *p, int skip, const gman_render_options *opts); virtual void surface(int nu, int nv, const GMVS *p, int uskip, int vskip, const gman_render_options *opts); /******************************************************************/ /* Display Lists. */ virtual long displayListRenderObject(void *object); virtual long displayListBegin(); virtual void displayListEnd(long dl); virtual void displayListDisplay(long dl); virtual void displayListDestroy(long dl); /******************************************************************/ /* Picking. */ virtual void pick(int x1, int y1, int x2, int y2); virtual void pickBegin(); virtual void pickEnd(); int picking() { return _picking; } virtual void pickListEmpty(); virtual int pickListCount(); virtual gmv_pick_hit *pickList(); virtual void pickListBegin(); virtual void pickListEnd(); virtual void pickListSet(void *object); virtual const GMVS *pickZ() { return _pickZ; } virtual void pickZ(const GMVS *z) { _pickZ[0] = z[0]; _pickZ[1] = z[1]; } /******************************************************************/ /* Selection. */ virtual void selectionSet(GMVSelection *sel); virtual GMVSelection *selection(); }; #endif gmv0.9/src/gmv/gl.cc0100644000175200017560000002535107264167637014660 0ustar stephensstepheng#include "gl.hh" #include "GL/gl.h" #include "GL/glu.h" #include "vmop.h" #include #define C GMVContextGL #define SC GMVContext C :: C (void *cntx) : _gl_cntx(cntx), _gl_curDL(0) { fprintf(stderr, "(GL%p) init\n", (void*)this); init(); } C :: ~C() { fprintf(stderr, "(GL%p) delete\n", (void*)this); } void C :: init() { SC::init(); _gl_curDL = 0; } void C :: activate() { /* NOTHING */ } void C :: deactivate() { } void C :: frameBegin() { SC::frameBegin(); glViewport(_viewport[0], _viewport[1], _viewport[2], _viewport[3]); /* Load current camera projection info. */ camera()->renderProjection(this); /* Clear */ glClearColor(0.1f, 0.1f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* Setup picking buffer. */ if ( _picking ) { // fprintf(stderr, "gl::frameBegin(): pick buffer %ld\n", _gl_pickBuffer.end() - _gl_pickBuffer.begin()); glSelectBuffer(_gl_pickBuffer.end() - _gl_pickBuffer.begin(), _gl_pickBuffer.begin()); glRenderMode(GL_SELECT); glInitNames(); glPushName(0); } glMatrixMode(GL_PROJECTION); glLoadIdentity(); if ( _picking ) { GLdouble xc = _pick[0] + (_pick[2] - _pick[0]) * 0.5; GLdouble yc = _pick[1] + (_pick[3] - _pick[1]) * 0.5; GLdouble w = _pick[2] - _pick[0]; GLdouble h = _pick[3] - _pick[1]; // fprintf(stderr, "pick %g %g %g %g\n", xc, yc, w, h); gluPickMatrix(xc, _viewport[3] - yc, w, h, _viewport); GLfloat fm[4][4]; glGetFloatv(GL_PROJECTION_MATRIX, (GLfloat*) fm); // M44_PRINT(stderr, "pick matrix = ", fm); } /* Setup projection. */ { GLfloat fAspect = (GLfloat) _viewport[2] / (GLfloat) _viewport[3]; // glDepthRange(_clipz[0], _clipz[1]); if ( _fov > 0 ) { gluPerspective(_fov, fAspect, _clipz[0], _clipz[1]); } else { GLfloat zoom = - _fov; if ( fAspect > 1.0f ) { glOrtho( - zoom * fAspect, zoom * fAspect, - zoom, zoom, _clipz[0], _clipz[1]); } else { glOrtho(- zoom, zoom, - zoom / fAspect, zoom / fAspect, _clipz[0], _clipz[1]); } } /* Save copy of projection transform. */ if ( ! _cameraToProjection ) { _cameraToProjection = new GMVMatrixTransform(); } if ( 1 || ! _picking ) { GLfloat fm[4][4]; GMVM44 m; glGetFloatv(GL_PROJECTION_MATRIX, (GLfloat*) fm); M44_AOP(m,=,fm); _cameraToProjection->matrix(m); // M44_PRINT(stderr, "cameraToProjection matrix = ", fm); } } } GMVTransform *C :: projectionToViewport() { if ( ! _projectionToViewport ) { GMVS n = 0.0, f = 1.0; GMVM44 M = { { _viewport[2] * 0.5, 0, 0, 0 }, { 0, - _viewport[3] * 0.5, 0, 0 }, { 0, 0, (f - n) * 0.5, 0 }, { _viewport[0] + _viewport[2] * 0.5, _viewport[1] + _viewport[3] * 0.5, (n + f) * 0.5, 1 } }; _projectionToViewport = new GMVMatrixTransform(M); } return _projectionToViewport; } GMVTransform *C :: cameraToProjection() { /* Save copy of projection transform. */ if ( ! _cameraToProjection ) { _cameraToProjection = new GMVMatrixTransform(); { GLfloat fm[4][4]; GMVM44 m; glGetFloatv(GL_PROJECTION_MATRIX, (GLfloat*) fm); M44_AOP(m,=,fm); _cameraToProjection->matrix(m); // M44_PRINT(stderr, "cameraToProjection matrix = ", fm); } } return _cameraToProjection; } void C :: frameEnd() { glFlush(); if ( _picking ) { _gl_pickHits = glRenderMode(GL_RENDER); // fprintf(stderr, "gl::frameEnd: %ld hits\n", (long) _gl_pickHits); } SC::frameEnd(); } void C :: worldBegin() { SC::worldBegin(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); /* Load current camera viewing transform. */ camera()->renderCamera(this); /* Keep track of this context's world to camera transform. */ if ( ! _worldToCamera ) { _worldToCamera = new GMVMatrixTransform(); } { GLfloat fm[4][4]; GMVM44 m; glGetFloatv(GL_MODELVIEW_MATRIX, (GLfloat*) fm); M44_AOP(m,=,fm); _worldToCamera->matrix(m); // M44_PRINT(stderr, "worldToCamera matrix = ", fm); //abort(); } } void C :: worldEnd() { SC::worldEnd(); } GMVTransform * C :: worldToCamera() { return SC::worldToCamera(); } void C :: attributeBegin() { SC::attributeBegin(); glPushAttrib(GL_CURRENT_BIT); /* glColor() */ } void C :: attributeEnd() { glPopAttrib(); SC::attributeEnd(); } void C :: color(const GMVS *c) { glColor3dv(c); } void C :: transformBegin() { SC::transformBegin(); glPushMatrix(); } void C :: transformEnd() { glPopMatrix(); SC::transformEnd(); } void C :: transformIdentity() { if ( _inWorld ) { transform((const GMVS*) &(_worldToCamera->matrix())); } else { glLoadIdentity(); } } void C :: transform(const GMVS *m) { if ( sizeof(m[0]) == sizeof(GLdouble) ) { glLoadMatrixd((GLdouble*) m); } else { glLoadMatrixf((GLfloat*) m); } } void C :: transformConcat(const GMVS *m) { if ( 0 ) { /* Make sure its orthoganal. */ const GMVM44 &M = *(const GMVM44 *) m; fprintf(stderr, "M[0] . M[1] = %g\n", V3_DOT(M[0], M[1])); fprintf(stderr, "M[1] . M[2] = %g\n", V3_DOT(M[1], M[2])); fprintf(stderr, "M[2] . M[0] = %g\n", V3_DOT(M[2], M[0])); #if 0 assert(fabs(V3_DOT(M[0], M[1])) < .001); assert(fabs(V3_DOT(M[1], M[2])) < .001); assert(fabs(V3_DOT(M[2], M[0])) < .001); #endif } if ( sizeof(m[0]) == sizeof(GLdouble) ) { glMultMatrixd((GLdouble*) m); } else { glMultMatrixf((GLfloat*) m); } } /********************************************************************/ void C :: vertex(const GMANValue *v, const gman_render_options *opts) { #if 0 fprintf(stderr, "V(%g, %g, %g) ", (double) v[0], (double) v[1], (double) v[2]); fflush(stderr); #endif if ( sizeof(GMANValue) == sizeof(GLdouble) ) { if ( opts->normalIndex >= 0 ) { glNormal3dv((GLdouble*) (v + opts->normalIndex)); } if ( opts->colorIndex >= 0 ) { glColor3dv((GLdouble*) (v + opts->colorIndex)); } if ( opts->pointIndex >= 0 ) { if ( opts->projectDim != 2 ) { glVertex3dv((GLdouble*) (v + opts->pointIndex)); } else { glVertex2dv((GLdouble*) (v + opts->pointIndex)); } } } else if ( sizeof(GMANValue) == sizeof(GLfloat) ) { if ( opts->normalIndex >= 0 ) { glNormal3fv((GLfloat*) (v + opts->normalIndex)); } if ( opts->colorIndex >= 0 ) { glColor3fv((GLfloat*) (v + opts->colorIndex)); } if ( opts->pointIndex >= 0 ) { if ( opts->projectDim != 2 ) { glVertex3fv((GLfloat*) (v + opts->pointIndex)); } else { glVertex2fv((GLfloat*) (v + opts->pointIndex)); } } } else { const GMANValue *x; if ( opts->normalIndex >= 0 ) { x = v + opts->normalIndex; glNormal3f((GLfloat) x[0], (GLfloat) x[1], (GLfloat) x[2]); } if ( opts->colorIndex >= 0 ) { x = v + opts->colorIndex; glColor3f((GLfloat) x[0], (GLfloat) x[1], (GLfloat) x[2]); } if ( opts->pointIndex >= 0 ) { x = v + opts->pointIndex; if ( opts->projectDim != 2 ) { glVertex2f((GLfloat) x[0], (GLfloat) x[1]); } else { glVertex3f((GLfloat) x[0], (GLfloat) x[1], (GLfloat) x[2]); } } } } void C :: points(int n, const GMANValue *p, int skip, const gman_render_options *opts) { glBegin(GL_POINTS); while ( -- n >= 0 ) { vertex(p, opts); p += skip; } glEnd(); } void C :: polyline(int n, const double *p, int skip, int wrap, const gman_render_options *opts) { glBegin(wrap ? GL_LINE_LOOP : GL_LINE_STRIP); while ( -- n >= 0 ) { vertex(p, opts); p += skip; } glEnd(); } void C :: triangleStripBegin() { glBegin(GL_TRIANGLE_STRIP); } void C :: triangleStripEnd() { glEnd(); } void C :: polygonBegin() { glBegin(GL_POLYGON); } void C :: polygonEnd() { glEnd(); } void C :: polygonNormal(const GMANValue *n) { /* Call glNormal4*() */ if ( sizeof(GMANValue) == sizeof(GLdouble) ) { glNormal3dv((GLdouble*) n); } else if ( sizeof(GMANValue) == sizeof(GLfloat) ) { glNormal3fv((GLfloat*) n); } else { glNormal3f((GLfloat) n[0], (GLfloat) n[1], (GLfloat) n[2]); } } /******************************************************************/ /* Display Lists. */ long C :: displayListBegin() { GLint listName = glGenLists(1); assert(sizeof(GLint) <= sizeof(long)); assert(_gl_curDL == 0); assert(listName != 0); assert(listName != -1L); glNewList(listName, GL_COMPILE_AND_EXECUTE); _gl_curDL = listName; return (long) listName; } void C :: displayListEnd(long dl) { assert(_gl_curDL == dl); glEndList(); _gl_curDL = 0; } void C :: displayListDisplay(long dl) { if ( dl != -1 && dl != 0 ) { GLint listName = (GLint) dl; glCallList(listName); } } void C :: displayListDestroy(long dl) { GLint listName = (GLint) dl; glDeleteLists(listName, 1); } /******************************************************************/ /* Pick. */ void C :: pickBegin() { SC::pickBegin(); // Fill with zeros. _gl_pickBuffer.clear(); for ( int n = 256; -- n; ) { _gl_pickBuffer.push_back(0); } } void C :: pickEnd() { if ( _picking ) { // fprintf(stderr, "gl::pickEnd\n"); pickBuffer_t::iterator i = _gl_pickBuffer.begin(); int n = _gl_pickHits; while ( -- n >= 0 && i != _gl_pickBuffer.end() ) { int n = *(i ++); float z1 = ((float) *(i ++)) / 0xffffffff; float z2 = ((float) *(i ++)) / 0xffffffff; // fprintf(stderr, "%g %g ", z1, z2); for ( int j = 0; j < n; ++ j ) { void *obj = (void*) *(i ++); if ( obj ) { // fprintf(stderr, "%p ", obj); pickMap_t::iterator pli; GMVContext::picked *pick; if ( (pli = _pickMap.find(obj)) != _pickMap.end() ) { pick = &(pli->second); if ( pick->bound[0] > _pick[0] ) pick->bound[0] = _pick[0]; if ( pick->bound[1] < _pick[2] ) pick->bound[1] = _pick[2]; if ( pick->bound[2] > _pick[1] ) pick->bound[2] = _pick[1]; if ( pick->bound[3] < _pick[3] ) pick->bound[3] = _pick[3]; if ( pick->bound[4] > z1 ) pick->bound[4] = z1; if ( pick->bound[5] < z2 ) pick->bound[5] = z2; } else { pick = &_pickMap[obj]; pick->obj = (gmvo*) obj; pick->bound[0] = _pick[0]; pick->bound[1] = _pick[2]; pick->bound[2] = _pick[1]; pick->bound[3] = _pick[3]; pick->bound[4] = z1; pick->bound[5] = z2; } } } // fprintf(stderr, "\n"); } _gl_pickHits = 0; } _gl_pickBuffer.clear(); SC::pickEnd(); } void C :: pickListBegin() { glPushName(0); } void C :: pickListEnd() { glPopName(); } void C :: pickListSet(void *object) { assert(sizeof(GLuint) >= sizeof(object)); glLoadName((GLuint) object); } #undef C gmv0.9/src/gmv/gl.hh0100644000175200017560000000311507264152443014651 0ustar stephensstepheng#ifndef _GMAN_RENDER_CONTEXT_GL_HH #define _GMAN_RENDER_CONTEXT_GL_HH #include "gmv.h" #include "context.hh" #include /* GLuint, GLint */ #include class GMVContextGL : public GMVContext { protected: void *_gl_cntx; /*@ OpenGL-implementation dependent. */ long _gl_curDL; /*@ Current display list name. */ typedef vector pickBuffer_t; pickBuffer_t _gl_pickBuffer; GLint _gl_pickHits; public: GMVContextGL(void *_cntx); ~GMVContextGL(); void init(); void activate(); void deactivate(); void frameBegin(); void frameEnd(); GMVTransform *projectionToViewport(); GMVTransform *cameraToProjection(); GMVTransform *worldToCamera(); void worldBegin(); void worldEnd(); void attributeBegin(); void attributeEnd(); void color(const GMVS *c); void transformBegin(); void transformEnd(); void transformIdentity(); void transform(const GMVS *m); void transformConcat(const GMVS *m); void vertex(const GMVS *v, const gman_render_options *opts); void points(int n, const GMVS *p, int skip, const gman_render_options *opts); void polyline(int n, const double *p, int skip, int wrap, const gman_render_options *opts); void triangleStripBegin(); void triangleStripEnd(); void polygonBegin(); void polygonEnd(); void polygonNormal(const GMVS *n); long displayListBegin(); void displayListEnd(long dl); void displayListDisplay(long dl); void displayListDestroy(long dl); void pickBegin(); void pickEnd(); void pickListBegin(); void pickListEnd(); void pickListSet(void *object); }; #endif gmv0.9/src/gmv/gltest.c0100644000175200017560000003212707252217562015402 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_gltest_c__ #define __rcs_id_gman_gltest_c__ static const char __rcs_id_gman_gltest_c[] = "$Id: gltest.c,v 1.2 2001/03/09 18:22:41 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "glwin/glwin.h" #include #include "gman/gman.h" #include "gmv/opts.h" #include /* free() */ #include #include #include #ifndef PI #ifdef M_PI #define PI M_PI #else #define PI 3.1415926 #endif #endif typedef struct gman_view_object { /* Surface to view. */ GMAN f; int f_changed; /* Render control. */ gman_eval_options eval_opts; gman_eval_options dp_eval_opts; gman_render_options render_opts; gman_render_options dp_render_opts; /* View control. */ GLfloat pos[3]; GLfloat rotate[3]; GLfloat speed; int smooth; int lighting; int axies; int show_dp_du; int show_dp_dv; int show_normal; int show_bbox; /* Value cache. */ GMANValue *points; int points_noutputs; int points_valid; GMANValue *dp_values; int dp_noutputs; GMANValue *dp_du_values; GMANValue *dp_dv_values; GMANValue *normal_values; GMANValue *bbox_values; /* Window created. */ glwin_window *win; } gman_view_object; static void Create(glwin_window *win) { gman_view_object *vo = win->data; /* Set up object position */ vo->pos[0] = 0.0f; vo->pos[1] = 0.0f; vo->pos[2] = -30.0f; vo->rotate[0] = vo->rotate[1] = vo->rotate[2] = 0; vo->speed = 0.5; /* Visibility */ glEnable(GL_DEPTH_TEST); glFrontFace(GL_CCW); glDisable(GL_CULL_FACE); } static void Destroy(glwin_window *win) { gman_view_object *vo = win->data; if ( vo->points ) free(vo->points); free(vo); } static void ChangeSize(glwin_window *win, int w, int h) { GLfloat fAspect; glViewport(0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); fAspect = (GLfloat) w / (GLfloat) h; #if 1 gluPerspective(60.0f, fAspect, 1.0f, 400.0f); #else #define OSIZE -50.0f if ( fAspect > 1.0f ) { glOrtho( - OSIZE * fAspect, OSIZE * fAspect, - OSIZE, OSIZE, 0.0f, OSIZE * 2); } else { glOrtho(- OSIZE, OSIZE, - OSIZE / fAspect, OSIZE / fAspect, 0.0f, OSIZE * 2); } #undef OSIZE #endif } #define KEY_DOWN(X) glwin_key_down(win, (X)) static void process_key(glwin_window *win, int key, int down) { int nkd = glwin_nkeys_down_prev(win); int nKeysDown = glwin_nkeys_down(win); /* nKeyDown has changed state */ if ( ! nkd && nKeysDown ) { glwin_idle(win, 1); } else if ( nkd && ! nKeysDown ) { glwin_idle(win, 0); } } static int KeyPress(glwin_window *win, int key) { gman_view_object *vo = win->data; switch ( tolower(key) ) { case '\033': glwin_quit(win, 0); return 1; case ' ': { GMAN nf = gman_parse_file("gltest.man"); if ( nf ) { vo->f = nf; vo->f_changed = 1; } } break; case '1': case '2': case '3': vo->render_opts.primDim = key - '1'; break; case '4': vo->smooth = ! vo->smooth; break; case '5': vo->lighting = ! vo->lighting; break; case '6': vo->show_bbox = ! vo->show_bbox; break; case '7': vo->show_dp_du = ! vo->show_dp_du; break; case '8': vo->show_dp_dv = ! vo->show_dp_dv; break; case '9': vo->show_normal = ! vo->show_normal; break; case '0': vo->axies = ! vo->axies; break; case '[': vo->speed *= 0.5; break; case ']': vo->speed *= 2.0; break; default: return 0; } return 1; } static int KeyDown(glwin_window *win, int key) { process_key(win, key, 1); return 1; } static int KeyUp(glwin_window *win, int key) { process_key(win, key, 0); return 1; } static void Idle(glwin_window *win) { gman_view_object *vo = win->data; if ( glwin_nkeys_down(win) ) { if ( KEY_DOWN(VK_LEFT) ) { vo->pos[0] += vo->speed; } if ( KEY_DOWN(VK_RIGHT) ) { vo->pos[0] -= vo->speed; } if ( KEY_DOWN(VK_UP) ) { vo->pos[1] -= vo->speed; } if ( KEY_DOWN(VK_DOWN) ) { vo->pos[1] += vo->speed; } if ( KEY_DOWN('A') ) { vo->pos[2] += vo->speed; } if ( KEY_DOWN('Z') ) { vo->pos[2] -= vo->speed; } if ( KEY_DOWN('F') ) { vo->rotate[0] -= (PI / 3.0) * vo->speed; } if ( KEY_DOWN('R') ) { vo->rotate[0] += (PI / 3.0) * vo->speed; } if ( KEY_DOWN('T') ) { vo->rotate[1] += (PI / 3.0) * vo->speed; } if ( KEY_DOWN('G') ) { vo->rotate[1] -= (PI / 3.0) * vo->speed; } if ( KEY_DOWN('Y') ) { vo->rotate[2] += (PI / 3.0) * vo->speed; } if ( KEY_DOWN('H') ) { vo->rotate[2] -= (PI / 3.0) * vo->speed; } glwin_redraw(win); } } #undef KEY_DOWN static void MouseDrag(glwin_window *win, int x, int y) { if ( glwin_button_down(win, 0) ) { } } static void glBox(const GMANValue *p) { glBegin(GL_LINE_STRIP); glVertex3d(p[0], p[2], p[4]); glVertex3d(p[1], p[2], p[4]); glVertex3d(p[1], p[3], p[4]); glVertex3d(p[0], p[3], p[4]); glVertex3d(p[0], p[2], p[4]); glVertex3d(p[0], p[2], p[5]); glVertex3d(p[1], p[2], p[5]); glVertex3d(p[1], p[3], p[5]); glVertex3d(p[0], p[3], p[5]); glVertex3d(p[0], p[2], p[5]); glEnd(); glBegin(GL_LINES); glVertex3d(p[1], p[2], p[4]); glVertex3d(p[1], p[2], p[5]); glVertex3d(p[1], p[3], p[4]); glVertex3d(p[1], p[3], p[5]); glVertex3d(p[0], p[3], p[4]); glVertex3d(p[0], p[3], p[5]); glEnd(); } static void Render(glwin_window *win) { gman_view_object *vo = win->data; /* Clear */ glClearColor(0.1f, 0.1f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* Color */ glColor3f(1.0f, 1.0f, 1.0f); if ( vo->lighting ) { /* Lighting */ glEnable(GL_LIGHTING); { GLfloat a[] = { 0.2f, 0.2f, 0.2f, 1.0f }; GLfloat d[] = { 0.7f, 0.7f, 0.7f, 1.0f }; GLfloat s[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat p[] = { -50.0f, 50.0f, 100.0f, 1.0f }; #if 0 glLightModelfv(GL_LIGHT_MODEL_AMBIENT, a); #else glLightfv(GL_LIGHT0, GL_AMBIENT, a); glLightfv(GL_LIGHT0, GL_DIFFUSE, d); glLightfv(GL_LIGHT0, GL_SPECULAR, s); glLightfv(GL_LIGHT0, GL_POSITION, p); #endif glEnable(GL_LIGHT0); } } else { glDisable(GL_LIGHTING); glDisable(GL_LIGHT0); } /* Model */ glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPushMatrix(); glTranslatef(vo->pos[0], vo->pos[1], vo->pos[2]); glRotatef(vo->rotate[0], 1.0f, 0.0f, 0.0f); glRotatef(vo->rotate[1], 0.0f, 1.0f, 0.0f); glRotatef(vo->rotate[2], 0.0f, 0.0f, 1.0f); #if 0 glScalef(1.0f, 1.0f, -1.0f); /* Right-handed coord sys. */ #endif glDisable(GL_COLOR_MATERIAL); glShadeModel(GL_FLAT); /* Axis */ if ( vo->axies ) { int a; for ( a = 0; a < 3; ++ a ) { float x = a == 0; float y = a == 1; float z = a == 2; glColor3f(x, y, z); glBegin(GL_LINES); glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(x * 50, y * 50, z * 50); glEnd(); } } #if 0 fprintf(stderr, "gman_view_gl: "); gman_print_expr(stderr, f); fprintf(stderr, ": on window %p\n", (void*) win); #endif /* evaluate */ if ( ! vo->points || ! vo->points_valid || vo->f_changed ) { /* Append color info. */ GMAN g; if ( gman_noutputs(vo->f) >= 6 ) { g = vo->f; } else { g = gman_cn(4, vo->f, gman_x(0), gman_x(1), gman_v(1.0)); } vo->points_noutputs = gman_noutputs(g); vo->points = gman_eval_surface(g, &vo->eval_opts, 0); vo->points_valid = 1; vo->f_changed = 0; vo->dp_values = 0; vo->dp_du_values = 0; vo->dp_dv_values = 0; vo->normal_values = 0; vo->bbox_values = 0; } /* Derivatives */ if ( vo->show_dp_du || vo->show_dp_dv || vo->show_normal ) { if ( ! vo->dp_values ) { vo->dp_noutputs = gman_noutputs(vo->f); vo->dp_values = gman_eval_surface(vo->f, &vo->dp_eval_opts, 0); } } if ( vo->show_dp_du ) { if ( ! vo->dp_du_values ) { GMAN dp_du = gman_normalize(gman_derivative(vo->f, gman_x(0))); #if 0 fprintf(stderr, "dp_du = "); gman_print_expr(stderr, gman_simplify(dp_du)); fprintf(stderr, "\n"); #endif vo->dp_du_values = gman_eval_surface(dp_du, &vo->dp_eval_opts, 0); // fprintf(stderr, "dp_du_values = %p\n", vo->dp_du_values); } glColor3f(1.0f, 0.0f, 1.0f); gman_render_gl_vectors( vo->dp_values, vo->dp_noutputs, vo->dp_du_values, gman_noutputs(vo->f), &vo->dp_eval_opts, &vo->dp_render_opts); } if ( vo->show_dp_dv ) { if ( ! vo->dp_dv_values ) { GMAN dp_dv = gman_normalize(gman_derivative(vo->f, gman_x(1))); vo->dp_dv_values = gman_eval_surface(dp_dv, &vo->dp_eval_opts, 0); // fprintf(stderr, "dp_dv_values = %p\n", vo->dp_dv_values); } glColor3f(0.0f, 1.0f, 1.0f); gman_render_gl_vectors( vo->dp_values, vo->dp_noutputs, vo->dp_dv_values, gman_noutputs(vo->f), &vo->dp_eval_opts, &vo->dp_render_opts); } if ( vo->show_normal ) { if ( ! vo->normal_values ) { GMAN N = gman_normalize( gman_cross( gman_derivative(vo->f, gman_x(0)), gman_derivative(vo->f, gman_x(1)))); vo->normal_values = gman_eval_surface(N, &vo->dp_eval_opts, 0); // fprintf(stderr, "normal_values = %p\n", vo->normal_values); } glColor3f(1.0f, 1.0f, 0.0f); gman_render_gl_vectors( vo->dp_values, vo->dp_noutputs, vo->normal_values, gman_noutputs(vo->f), &vo->dp_eval_opts, &vo->dp_render_opts); } if ( vo->show_bbox ) { if ( ! vo->bbox_values ) { vo->bbox_values = (void*) gman_pointi(vo->f, (const gintv *) vo->eval_opts.ranges); } glColor3f(0.7f, 0.7f, 0.7f); glBox(vo->bbox_values); } if ( vo->lighting ) { /* Materials */ glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); glColorMaterial(GL_BACK, GL_AMBIENT_AND_DIFFUSE); /* Materials */ if ( 0 ) { GLfloat c1[] = { 1.0f, 1.0f, 1.0f, 1.0f }; glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c1); // glMateriali(GL_FRONT, GL_SHININESS, 128); } if ( 0 ) { GLfloat c2[] = { 0.0f, 1.0f, 0.0f, 1.0f }; glMaterialfv(GL_BACK, GL_SPECULAR, c2); // glMateriali(GL_BACK, GL_SHININESS, 128); } } /* render */ glShadeModel(vo->smooth ? GL_SMOOTH : GL_FLAT); gman_render_gl(vo->points, vo->points_noutputs, &vo->eval_opts, &vo->render_opts); glPopMatrix(); glFlush(); } void gman_view_gl ( GMAN f, gman_eval_options *eval_opts, gman_render_options *render_opts, gman_eval_options *dp_eval_opts, gman_render_options *dp_render_opts ) { static glwin_desc desc; glwin_window *win; gman_view_object *vo; memset(&desc, 0, sizeof(desc)); desc.winName = "GMAN/GL Test"; desc.winX = 200; desc.winY = 100; desc.winWidth = 400; desc.winHeight = 400; desc.ChangeSize = ChangeSize; desc.Render = Render; desc.Create = Create; desc.Destroy = Destroy; desc.KeyPress = KeyPress; desc.KeyDown = KeyDown; desc.KeyUp = KeyUp; desc.Idle = Idle; vo = malloc(sizeof(*vo)); memset(vo, 0, sizeof(*vo)); vo->f = f; vo->eval_opts = *eval_opts; vo->render_opts = *render_opts; vo->dp_eval_opts = *dp_eval_opts; vo->dp_render_opts = *dp_render_opts; win = glwin_create(&desc, vo); vo->win = win; #if 0 fprintf(stderr, "gman_view_gl: window %p\n", (void*) win); gman_print_archive(stderr, f); fprintf(stderr, "--------------------\n"); #endif glwin_show(win); glwin_update(win); } GMAN gman_sphere(GMAN u, GMAN v) /*@ Bi-parametric unit sphere at (0,0,0). */ { GMAN theta = gman_mul(u, gman_v(PI * 2)); GMAN phi = gman_mul(v, gman_v(PI)); GMAN cos_theta = gman_cos(theta); GMAN sin_theta = gman_sin(theta); GMAN cos_phi = gman_cos(phi); GMAN sin_phi = gman_sin(phi); GMAN x = gman_mul(sin_phi, cos_theta); GMAN y = gman_mul(sin_phi, sin_theta); GMAN z = cos_phi; return gman_cn(3, x, y, z); } int glwin_main(int argc, char **argv) { GMAN r; GMAN f; // Radius. r = gman_mul(gman_cos(gman_mul(gman_x(0), gman_v(PI * 10.0))), gman_cos(gman_mul(gman_x(1), gman_v(PI * 10.0)))); r = gman_add(r, gman_v(1.0)); r = gman_mul(r, gman_v(3.0)); r = gman_add(r, gman_v(20.0)); // Sphere. f = gman_mul(gman_sphere(gman_x(0), gman_x(1)), r); //f = gman_cn(3, gman_x(0), gman_x(1), gman_atan2(gman_sub(gman_x(0), gman_v(0.5)), gman_sub(gman_x(1), gman_v(0.5)))); { static int samples[] = { 50, 50 }; static int dp_samples[] = { 21, 21 }; static GMANValue ranges[] = { 0.05, 0.95, 0.05, 0.95 }; static gman_eval_options eval_opts, dp_eval_opts; static gman_render_options render_opts, dp_render_opts; eval_opts.nparms = 2; eval_opts.samples = samples; eval_opts.ranges = ranges; render_opts.primDim = 1; render_opts.pointIndex = 0; render_opts.colorIndex = 3; dp_eval_opts.nparms = 2; dp_eval_opts.samples = dp_samples; dp_eval_opts.ranges = ranges; dp_render_opts.primDim = 1; dp_render_opts.pointIndex = 0; gman_view_gl(f, &eval_opts, &render_opts, &dp_eval_opts, &dp_render_opts); } return glwin_mainloop(); } gmv0.9/src/gmv/gltest.man0100644000175200017560000000215707252105510015720 0ustar stephensstepheng// $Id: gltest.man,v 1.1 2001/03/09 07:50:32 stephens Exp $ // Run gltest and modify this file and hit SPACE in the gl window. Pi = 3.1415926; Pi_2 = Pi * 2; @ circle (t) { _0_Pi_2 = _(0) * Pi_2; @( cos(_0_Pi_2), sin(_0_Pi_2) ); } @ lerp (x0, x1, t) { x0 * (1 - t) + x1 * t; } @ reverse_lerp(x0, x1, p) { x1_x0 = x1 - x0; norm_x1_x0 = length(x1_x0); normalize_x1_x0 = x1_x0 / norm_x1_x0; ((p - x0) @. normalize_x1_x0) / norm_x1_x0; } //////////////////////////////////////////// sphere = ({ // Unit sphere. _1_Pi = _(1) * Pi; @( circle(_(0)) * sin(_1_Pi), - cos(_1_Pi) ); }); bumpy_sphere = // Bumps. sphere * (1.5 + .25 * cos(_(0) * Pi * 10) * cos(_(1) * Pi * 10)) ; cylinder = ({ // Cylinder @( circle(_(0)), -1 + (6 * _(1)) ); }); cone = ({ // Cone @( circle(_(0)) * (1 - _(1)), -1 + (6 * _(1)) ); }); // Lerp between bumpy sphere and cylinder. result = lerp(bumpy_sphere, cone, reverse_lerp(-1, 5, cylinder[2])); //result = lerp(result, @(0, 0, 5), reverse_lerp(-1, 5, result[2])); //result = d(result, _(0)); //d(sphere, _(1)); result; gmv0.9/src/gmv/gltest2.c0100644000175200017560000003405707262415714015470 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_gltest_c__ #define __rcs_id_gman_gltest_c__ static const char __rcs_id_gman_gltest_c[] = "$Id: gltest2.c,v 1.7 2001/03/20 03:43:55 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gmv/gmv.h" #include "gman/gman.h" #include "glwin/glwin.h" #include #include "gman/funcs.h" #include "gmv/opts.h" #include "gmv/vmop.h" #include /* free() */ #include #include #include #ifndef PI #ifdef M_PI #define PI M_PI #else #define PI 3.1415926 #endif #endif typedef struct gman_view_object { /* Contexts. */ gmv_context *gl_cntx; gmv_context *retained; /* View control. */ GMVV3 from; GMVV3 to; GMVS speed; int smooth; int lighting; int show_axies; int show_dp_du; int show_dp_dv; int show_normal; int show_bbox; /* Window created. */ glwin_window *win; /* Picked location in world space. */ GMVV3 picked_screen; GMVV3 picked_projection; GMVV3 picked_camera; GMVV3 picked_world; /* Selection */ int drag_select; int drag_translate; } gman_view_object; static void Create(glwin_window *win) { gman_view_object *vo = win->data; /* Set up object position */ vo->from[0] = 5.0f; vo->from[1] = 5.0f; vo->from[2] = 8.0f; vo->to[0] = vo->to[1] = vo->to[2] = 0; vo->speed = 0.5; } static void Destroy(glwin_window *win) { gman_view_object *vo = win->data; gmv_context_destroy(vo->gl_cntx); gmv_context_destroy(vo->retained); free(vo); } static void ChangeSize(glwin_window *win, int w, int h) { gman_view_object *vo = win->data; gmv_context_begin(vo->gl_cntx); gmv_viewport(0, 0, w, h); gmv_context_end(); } #define KEY_DOWN(X) glwin_key_down(win, (X)) static void process_key(glwin_window *win, int key, int down) { int nkd = glwin_nkeys_down_prev(win); int nKeysDown = glwin_nkeys_down(win); /* nKeyDown has changed state */ if ( ! nkd && nKeysDown ) { glwin_idle(win, 1); } else if ( nkd && ! nKeysDown ) { glwin_idle(win, 0); } } static int KeyPress(glwin_window *win, int key) { gman_view_object *vo = win->data; gmv_context_begin(vo->gl_cntx); switch ( tolower(key) ) { case '\033': glwin_quit(win, 0); return 1; case ' ': { #if 0 GMAN nf = gman_parse_file("gltest.man"); if ( nf ) { vo->f = nf; vo->f_changed = 1; } #endif } break; case '1': case '2': case '3': // vo->render_opts.primDim = key - '1'; break; case '4': vo->smooth = ! vo->smooth; break; case '5': vo->lighting = ! vo->lighting; break; case '6': vo->show_bbox = ! vo->show_bbox; break; case '7': vo->show_dp_du = ! vo->show_dp_du; break; case '8': vo->show_dp_dv = ! vo->show_dp_dv; break; case '9': vo->show_normal = ! vo->show_normal; break; case '0': vo->show_axies = ! vo->show_axies; break; case '[': vo->speed *= 0.5; break; case ']': vo->speed *= 2.0; break; case 'm': { gmv_space spaces[] = { gmv_space_world, gmv_space_camera, gmv_space_projection, gmv_space_screen, 0 }; int i, j; for ( i = 0; spaces[i]; ++ i ) { for ( j = 0; spaces[j]; ++ j ) { gmvt *xform = gmv_space_xform(spaces[i], spaces[j]); const GMVM44 *M = gmvt_matrix(xform); fprintf(stderr, "%s -> %s = %p ", spaces[i], spaces[j], xform); M44_PRINT(stderr, "", *M); } } } break; default: } gmv_context_end(); return 1; } static int KeyDown(glwin_window *win, int key) { process_key(win, key, 1); return 1; } static int KeyUp(glwin_window *win, int key) { process_key(win, key, 0); return 1; } static void Idle(glwin_window *win) { gman_view_object *vo = win->data; gmv_context_begin(vo->gl_cntx); if ( glwin_nkeys_down(win) ) { if ( KEY_DOWN('A') ) { vo->from[0] -= vo->speed; } if ( KEY_DOWN('D') ) { vo->from[0] += vo->speed; } if ( KEY_DOWN('W') ) { vo->from[1] += vo->speed; } if ( KEY_DOWN('S') ) { vo->from[1] -= vo->speed; } if ( KEY_DOWN('Q') ) { vo->from[2] -= vo->speed; } if ( KEY_DOWN('Z') ) { vo->from[2] += vo->speed; } if ( KEY_DOWN('F') ) { vo->to[0] -= vo->speed; } if ( KEY_DOWN('H') ) { vo->to[0] += vo->speed; } if ( KEY_DOWN('T') ) { vo->to[1] += vo->speed; } if ( KEY_DOWN('G') ) { vo->to[1] -= vo->speed; } if ( KEY_DOWN('V') ) { vo->to[2] += vo->speed; } if ( KEY_DOWN('R') ) { vo->to[2] -= vo->speed; } glwin_redraw(win); } gmv_context_end(); } /*************************************************************************/ static void pickRender(glwin_window *win) { gman_view_object *vo = win->data; gmv_pick_hits_empty(); gmv_pick_begin(); gmv_frame_begin(); gmv_lookat(gman_vv(3, vo->from, 0), gman_vv(3, vo->to, 0), gman_vn(3, 0.0, 1.0, 0.0); gmv_world_begin(); gmv_render_retained_context(vo->retained); gmv_world_end(); gmv_frame_end(); gmv_pick_end(); } static int SelectDown(glwin_window *win, int x, int y, int button) { gman_view_object *vo = win->data; gmv_pick_hit *p; gmv_pick(x - 2, y - 2, x + 2, y + 2); pickRender(win); p = gmv_pick_hits_count() ? gmv_pick_hits_begin() : 0; // if ( p ) fprintf(stderr, "%p %g %g\n", p->obj, p->z[0], p->z[1]); { gmv_selection *sel = gmv_selection_get(); if ( p ) { vo->picked_screen[0] = (p->bound[0] + p->bound[1]) * 0.5; vo->picked_screen[1] = (p->bound[2] + p->bound[3]) * 0.5; vo->picked_screen[2] = (p->bound[4] + p->bound[4]) * 0.5; gmvt_xform_points(gmv_space_xform(gmv_space_screen, gmv_space_world), 1, &vo->picked_screen, &vo->picked_world); gmv_pick_z(p->bound + 4); } if ( KEY_DOWN(VK_SHIFT) ) { if ( p ) gmv_selection_toggle(sel, p->obj); } else { if ( p ) { if ( ! gmv_selection_selected(sel, p->obj) ) { gmv_selection_clear(sel); gmv_selection_select(sel, p->obj); } } else { gmv_selection_clear(sel); } } } vo->drag_select = p == 0; return p != 0; } typedef struct xlate_data { gmvt *xlate; gmvt *composite; } xlate_data; static int SelectDrag(glwin_window *win, int x, int y) { gman_view_object *vo = win->data; if ( vo->drag_select ) { } else { // Translate selection. // Get drag point in world space. GMVV3 drag = { x, y, vo->picked_screen[2] }; GMVV3 xlate_world; gmv_selection *sel = gmv_selection_get(); gmvt_xform_points(gmv_space_xform(gmv_space_screen, gmv_space_world), 1, &drag, &drag); /* Delta between drag and picked in world space. */ V3_OP(xlate_world,=,drag,-,vo->picked_world); if ( ! vo->drag_translate ) { /* Set up dragging transforms for each selected object. */ vo->drag_translate = 1; { gmvs_iterator si; for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); xlate_data *data = malloc(sizeof(*data)); data->xlate = gmvt_matrix_new(); data->composite = gmvt_compose(data->xlate, gmvo_transform(obj)); gmvs_hook_set(sel, obj, data); gmvo_transform_set(obj, data->composite); } } } /* Translate each object. */ { gmvs_iterator si; for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); GMVV3 xlate_parent; xlate_data *data = gmvs_hook(sel, obj); /* Get the translation in object parent's space. ** i.e. before object's transform */ gmvt_xform_points(gmv_space_xform(gmv_space_world, gmvo_parent(obj)), 1, &xlate_world, &xlate_parent); gmvt_translate(data->xlate, &xlate_parent); } } return 1; } return 0; } static int SelectUp(glwin_window *win, int x, int y, int button) { gman_view_object *vo = win->data; if ( vo->drag_select ) { gmv_pick_hit *p; if ( win->buttonDownX[button] != x && win->buttonDownY[button] != y ) { gmv_pick(win->buttonDownX[button], win->buttonDownY[button], x, y); pickRender(win); p = gmv_pick_hits_count() ? gmv_pick_hits_begin() : 0; } else { p = 0; } // if ( p ) fprintf(stderr, "%p %g %g\n", p->obj, p->z[0], p->z[1]); { gmv_selection *sel = gmv_selection_get(); GMVS pz[2] = { 0, 0 }; if ( KEY_DOWN(VK_SHIFT) ) { while ( p ) { gmv_selection_toggle(sel, p->obj); p = p->next; } } else { gmv_selection_clear(sel); while ( p ) { gmv_selection_select(sel, p->obj); p = p->next; } } } return 1; } else if ( vo->drag_translate ) { gmv_selection *sel; SelectDrag(win, x, y); sel = gmv_selection_get(); vo->drag_translate = 0; /* Simplify each object transform. */ { gmvs_iterator si; for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); xlate_data *data = gmvs_hook(sel, obj); gmvo_transform_set(obj, gmvt_simplify(data->composite)); } } return 1; } return 0; } /*************************************************************************/ static int MouseDown(glwin_window *win, int x, int y, int button) { gman_view_object *vo = win->data; gmv_context_begin(vo->gl_cntx); // fprintf(stderr, "MD %d %d %d\n", x, y, button); if ( button == 0 ) { if ( SelectDown(win, x, y, button) ) { } glwin_redraw(win); } gmv_context_end(); return 1; } static int MouseDrag(glwin_window *win, int x, int y) { gman_view_object *vo = win->data; gmv_context_begin(vo->gl_cntx); if ( SelectDrag(win, x, y) ) { glwin_redraw(win); } gmv_context_end(); return 1; } static int MouseUp(glwin_window *win, int x, int y, int button) { gman_view_object *vo = win->data; gmv_context_begin(vo->gl_cntx); if ( button == 0 ) { if ( SelectUp(win, x, y, button) ) { glwin_redraw(win); } } gmv_context_end(); return 1; } /*************************************************************************/ static void glBox(const GMANValue *p) { glBegin(GL_LINE_STRIP); glVertex3d(p[0], p[2], p[4]); glVertex3d(p[1], p[2], p[4]); glVertex3d(p[1], p[3], p[4]); glVertex3d(p[0], p[3], p[4]); glVertex3d(p[0], p[2], p[4]); glVertex3d(p[0], p[2], p[5]); glVertex3d(p[1], p[2], p[5]); glVertex3d(p[1], p[3], p[5]); glVertex3d(p[0], p[3], p[5]); glVertex3d(p[0], p[2], p[5]); glEnd(); glBegin(GL_LINES); glVertex3d(p[1], p[2], p[4]); glVertex3d(p[1], p[2], p[5]); glVertex3d(p[1], p[3], p[4]); glVertex3d(p[1], p[3], p[5]); glVertex3d(p[0], p[3], p[4]); glVertex3d(p[0], p[3], p[5]); glEnd(); } extern void glAxies(int length); static void Render(glwin_window *win) { gman_view_object *vo = win->data; gmv_context_begin(vo->gl_cntx); gmv_frame_begin(); gmv_lookat(gman_vv(3, vo->from, 0), gman_vv(3, vo->to, 0), gman_vn(3, 0.0, 1.0, 0.0)); /* Color */ glColor3f(1.0f, 1.0f, 1.0f); if ( vo->lighting ) { /* Lighting */ glEnable(GL_LIGHTING); { GLfloat a[] = { 0.2f, 0.2f, 0.2f, 1.0f }; GLfloat d[] = { 0.7f, 0.7f, 0.7f, 1.0f }; GLfloat s[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat p[] = { -50.0f, 50.0f, 100.0f, 1.0f }; #if 0 glLightModelfv(GL_LIGHT_MODEL_AMBIENT, a); #else glLightfv(GL_LIGHT0, GL_AMBIENT, a); glLightfv(GL_LIGHT0, GL_DIFFUSE, d); glLightfv(GL_LIGHT0, GL_SPECULAR, s); glLightfv(GL_LIGHT0, GL_POSITION, p); #endif glEnable(GL_LIGHT0); } } else { glDisable(GL_LIGHTING); glDisable(GL_LIGHT0); } gmv_world_begin(); /* Shading. */ glDisable(GL_COLOR_MATERIAL); glShadeModel(GL_FLAT); /* Visibility */ glEnable(GL_DEPTH_TEST); glFrontFace(GL_CW); glDisable(GL_CULL_FACE); /* Axis */ if ( vo->show_axies ) { glAxies(10); } /* Picked. */ glPushMatrix(); glTranslated(vo->picked_world[0], vo->picked_world[1], vo->picked_world[2]); glAxies(1); glPopMatrix(); /* World transform. */ glPushMatrix(); if ( vo->lighting ) { /* Materials */ glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); glColorMaterial(GL_BACK, GL_AMBIENT_AND_DIFFUSE); /* Materials */ if ( 0 ) { GLfloat c1[] = { 1.0f, 1.0f, 1.0f, 1.0f }; glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c1); // glMateriali(GL_FRONT, GL_SHININESS, 128); } if ( 0 ) { GLfloat c2[] = { 0.0f, 1.0f, 0.0f, 1.0f }; glMaterialfv(GL_BACK, GL_SPECULAR, c2); // glMateriali(GL_BACK, GL_SHININESS, 128); } } /* render */ glShadeModel(vo->smooth ? GL_SMOOTH : GL_FLAT); glColor3f(0.7, 0.7, 0.7); gmv_render_retained_context(vo->retained); glPopMatrix(); gmv_world_end(); gmv_frame_end(); gmv_context_end(); } void gman_view_gl (gmv_context *retained) { static glwin_desc desc; glwin_window *win; gman_view_object *vo; memset(&desc, 0, sizeof(desc)); desc.winName = "GMAN/GL Test"; desc.winX = 200; desc.winY = 100; desc.winWidth = 400; desc.winHeight = 400; desc.ChangeSize = ChangeSize; desc.Render = Render; desc.Create = Create; desc.Destroy = Destroy; desc.KeyPress = KeyPress; desc.KeyDown = KeyDown; desc.KeyUp = KeyUp; desc.MouseDown = MouseDown; desc.MouseDrag = MouseDrag; desc.MouseUp = MouseUp; desc.Idle = Idle; vo = malloc(sizeof(*vo)); memset(vo, 0, sizeof(*vo)); win = glwin_create(&desc, vo); vo->win = win; vo->gl_cntx = gmv_context_gl(0); vo->retained = retained; vo->show_axies = 1; #if 0 fprintf(stderr, "gman_view_gl: window %p\n", (void*) win); gman_print_archive(stderr, f); fprintf(stderr, "--------------------\n"); #endif glwin_show(win); glwin_update(win); } int glwin_main(int argc, char **argv) { gmv_context *retained; gmv_context_begin(retained = gmv_context_retained(0)); gmv_frame_begin(); gmv_world_begin(); _gmv_testscene1(); gmv_world_end(); gmv_frame_end(); gmv_context_end(); gman_view_gl(retained); return glwin_mainloop(); } gmv0.9/src/gmv/gmv.h0100644000175200017560000000004607264374454014700 0ustar stephensstepheng#include "malloc.h" #include "kit.h" gmv0.9/src/gmv/object.cc0100744000175200017560000002772307306074366015523 0ustar stephensstepheng #include "object.hh" #include "retained.hh" #include /* find() */ #include /* isdigit() */ // #include "gl/gl.h" #include "vmop.h" #include /********************************************************************/ #define C GMVObject C :: C (GMVContext *cntx) : _refcnt(0), _selected(0), _opened(0), _link(0), _parent(0), _color(0) { if ( cntx ) { _transform = cntx->_transform; ++ cntx->_transform_ref; } } C :: ~C () { } refcntptr_DEF(,C); void C :: __deref_delete() { /* Render all children. */ for ( children_iterator_t i = _children.begin(); i != _children.end(); ++ i ) { fprintf(stderr, "child %p still linked to %p\n", (void*) *i, (void*) this); (*i)->_parent = 0; } delete this; } /*************************************************************************/ XVF_CLASS_INSTANCE(C); XVF_CLASS_VISIT_BEGIN(C) { XVF_MEMB(_name); XVF_MEMB(_transform); XVF_MEMB(_color); XVF_MEMB(_children); } XVF_CLASS_VISIT_END() /*************************************************************************/ GMVObject * C :: link() { return _link; } GMVObject * C :: parent() { return _parent; } GMVObject * C :: root() { return _parent ? _parent->root() : this; } /*************************************************************************/ int C :: isParentOf(GMVObject *o) { return o->parent() == this; } int C :: isAncestorOf(GMVObject *o) { while ( o ) { if ( o->parent() == this ) return ! 0; o = o->parent(); } return 0; } int C :: isChildOf(GMVObject *o) { return parent() == o; } int C :: isDecendentOf(GMVObject *o) { GMVObject *t = this; while ( t ) { if ( t->parent() == o ) return ! 0; t = t->parent(); } return 0; } /*************************************************************************/ string increment(string x) { /* Add a digit to the end. */ if ( ! x.size() || ! isdigit(x[x.size() - 1]) ) { x += '1'; /* Do a carry. */ } else if ( x[x.size() - 1] == '9' ) { string y = x; y.erase(y.size() - 1); x = increment(y); x += '0'; /* Increment. */ } else if ( isdigit(x[x.size() - 1]) ) { ++ x[x.size() - 1]; } else { abort(); } return x; } string C :: checkName(const string &x) { /* Cannot contain '/'. */ assert(x.find_first_of('/') == string::npos); /* Look for sibling name collisions if name != "" */ if ( _parent && x.size() ) { string y = x; GMVObject *nameCollider; while ( (nameCollider = _parent->childNamed(y)) && nameCollider != this ) { y = increment(y); } return y; } else { return x; } } void C :: name(const string &x) { _name = checkName(x); } GMVObject * C :: childNamed(const string &x) { /* '.' means this directory. */ if ( x == "." || x == "" ) { return this; } /* '..' means parent directory. */ else if ( x == ".." ) { return _parent ? _parent : this; } else { for ( children_iterator_t i = childrenBegin(); i != _children.end(); ++ i ) { if ( (*i)->name() == x ) { return *i; } } } return 0; } GMVObject *find_path(string path, GMVObject *current, GMVObject *root = 0) { if ( root == 0 ) { root = current->root(); } /* "/..." means move to root. */ while ( path.size() && path[0] == '/' ) { current = root; path.erase(0, 1); } while ( path.size() && current != 0 ) { string::size_type i; /* Find "xyz" in "xyz/foo/..." */ if ( (i = path.find_first_of('/')) != string::npos ) { string elem = path.substr(0, i); path.erase(0, i + 1); current = current->childNamed(elem); } else { current = current->childNamed(path); path.erase(0, string::npos); } } return current; } /*************************************************************************/ void C :: addChild(GMVObject *obj) { if ( obj->_parent != this ) { if ( obj->_parent ) { obj->_parent->removeChild(obj); } _children.push_back(obj); obj->_parent = this; /* Force name space check. */ obj->name(obj->name()); /* Transform changed. */ obj->transformChangedParent(obj->_parent); } } void C :: removeChild(GMVObject *obj) { if ( obj->_parent != this ) { obj->_parent->removeChild(obj); } else { _children.erase(find(_children.begin(), _children.end(), obj)); obj->_parent = 0; } } void C :: addObject(GMVObject *obj) { // fprintf(stderr, "(%s*) %p->addObject(%p)\n", CS, this, obj); addChild(obj); } /*************************************************************************/ GMVTransform * C :: transform() { return _transform; } void C :: transform(GMVTransform *t) { _transform = t; this->transformChanged(); } void C :: transformChanged() { /* Notify all children of transform change. */ for ( children_iterator_t i = _children.begin(); i != _children.end(); ++ i ) { (*i)->transformChangedParent(this); } } void C :: transformChangedParent(GMVObject *obj) { /* Notify all children of transform change. */ for ( children_iterator_t i = _children.begin(); i != _children.end(); ++ i ) { (*i)->transformChangedParent(obj); } } void C :: transformChangeComplete() { /* Notify all children of transform change. */ for ( children_iterator_t i = _children.begin(); i != _children.end(); ++ i ) { (*i)->transformChangeCompleteParent(this); } } void C :: transformChangeCompleteParent(GMVObject *obj) { /* Notify all children of transform change. */ for ( children_iterator_t i = _children.begin(); i != _children.end(); ++ i ) { (*i)->transformChangeCompleteParent(obj); } } /*************************************************************************/ #define _needAttributeBlock (_selected || _color) static GMVS _selected_color[3] = { 1.0, 1.0, 0.0 }; void C :: renderTransform(GMVContext *cntx) { cntx->transformConcat((const GMVS *) (_transform->matrix())); } void C :: renderLinkBegin(GMVContext *cntx) { _selected = cntx->selection()->selected(this); /* Begin link attributes and transformations. */ if ( _link ) { _link->renderLinkBegin(cntx); } /* Begin local transformation. */ if ( _transform ) { cntx->transformBegin(); this->renderTransform(cntx); } /* Begin local attributes. */ if ( _needAttributeBlock ) { cntx->attributeBegin(); } /* Selected color? */ if ( _selected ) { cntx->color(_selected_color); } /* Local color? */ else if ( _color ) { cntx->color(_color); } } void C :: renderLinkEnd(GMVContext *cntx) { /* End local attributes. */ if ( _needAttributeBlock ) { cntx->attributeEnd(); } /* End local transformations. */ if ( _transform ) { cntx->transformEnd(); } /* End link transformations. */ if ( _link ) { _link->renderLinkEnd(cntx); } } void C :: render(GMVContext *cntx) { this->renderLinkBegin(cntx); if ( cntx->picking() ) { cntx->pickListBegin(); cntx->pickListSet((void*) this); } /* Render using a potential display list. */ this->renderInstance(cntx); if ( cntx->picking() ) { cntx->pickListEnd(); } else if ( _selected ) { /* Show selected axies projections. */ GMVS color[3]; V3_OP_S(color, =, _selected_color, *, 0.5); cntx->attributeBegin(); cntx->transformBegin(); for ( int a = 0; a < 3; ++ a ) { GMVM44 M = { { a != 0, 0, 0, 0 }, { 0, a != 1, 0, 0 }, { 0, 0, a != 2, 0 }, { 0, 0, 0, 1 } }; cntx->transformIdentity(); cntx->transformConcat((GMVS*) M); this->renderLinkBegin(cntx); cntx->color(color); this->renderInstance(cntx); this->renderLinkEnd(cntx); } cntx->transformEnd(); cntx->attributeEnd(); } this->renderLinkEnd(cntx); } void C :: renderSelfDisplayList(GMVContext *cntx) { /* Dont use a display list cache. */ this->renderSelf(cntx); } void C :: renderSelf(GMVContext *cntx) { //renderChildren(cntx); } void C :: renderInstance(GMVContext *cntx) { this->renderSelfDisplayList(cntx); this->renderChildren(cntx); } void C :: renderChildren(GMVContext *cntx) { /* Render all children. */ for ( children_iterator_t i = _children.begin(); i != _children.end(); ++ i ) { (*i)->render(cntx); } } #undef C /********************************************************************/ #define C GMVObjectCamera C :: C (GMVContext *_cntx) : GMVObject(_cntx) { _clipzn = gman_v(1.0); _clipzf = gman_v(50.0); _fov = gman_v(60.0); name("camera1"); } XVF_CLASS_INSTANCE(C); XVF_CLASS_VISIT_BEGIN(C) { XVF_MEMB(_fov); XVF_MEMB(_clipzn); XVF_MEMB(_clipzf); } XVF_CLASS_VISIT_END() void C :: fov(GMVS f) { _fov = gman_v(f); } void C :: fov(GMAN_ARG f) { _fov = f; } void C :: clipz(GMVS n, GMVS f) { _clipzn = gman_v(n); _clipzf = gman_v(f); } void C :: clipz(GMAN_ARG n, GMAN_ARG f) { _clipzn = n; _clipzf = f; } void C :: lookat(const GMVS *from, const GMVS *to, const GMVS *up) { GMVMatrixTransform *m = new GMVMatrixTransform(); m->lookat((const GMVV3 *) from, (const GMVV3 *) to, (const GMVV3 *) up); transform(m); } void C :: lookat(GMAN_ARG from, GMAN_ARG to, GMAN_ARG up) { assert(gman_noutputs(from) >= 3); assert(gman_noutputs(to) >= 3); assert(gman_noutputs(up) >= 3); lookat(gman_point(from, 0, 0), gman_point(to, 0, 0), gman_point(up, 0, 0)); } void C :: renderProjection(GMVContext *cntx) { cntx->clipz((GMAN) _clipzn, (GMAN) _clipzf); cntx->fov((GMAN) _fov); } void C :: renderCamera(GMVContext *cntx) { // Does not handle grouped cameras. const GMVM44 &m = transform()->matrix1(); // M44_PRINT(stderr, "worldToCamera = ", m); cntx->transformConcat((const GMVS*) &m); } #undef C /********************************************************************/ #define C GMVObjectGMAN XVF_CLASS_VISIT_BEGIN(C) { XVF_CLASS_VISIT_SUPER(GMVObject); XVF_MEMB(_f); } XVF_CLASS_VISIT_END() void C :: renderSelfDisplayList(GMVContext *cntx) { long dl; /* Use a display list cache. */ if ( (dl = cntx->displayListRenderObject(this)) ) { // Create new display list or simply render. */ this->renderSelf(cntx); cntx->displayListEnd(dl); } } #undef C /********************************************************************/ #define C GMVCurve XVF_CLASS_INSTANCE(C); XVF_CLASS_VISIT_BEGIN(C) { XVF_CLASS_VISIT_SUPER(GMVObjectGMAN); } XVF_CLASS_VISIT_END() void C :: renderSelf(GMVContext *cntx) { GMVObject::renderSelf(cntx); cntx->curve(_f); } #undef C /********************************************************************/ #define C GMVSurface XVF_CLASS_INSTANCE(C); XVF_CLASS_VISIT_BEGIN(C) { XVF_CLASS_VISIT_SUPER(GMVObjectGMAN); } XVF_CLASS_VISIT_END() void C :: renderSelf(GMVContext *cntx) { GMVObject::renderSelf(cntx); cntx->surface(_f); } #undef C /********************************************************************/ #define C GMVArea XVF_CLASS_INSTANCE(C); XVF_CLASS_VISIT_BEGIN(C) { XVF_CLASS_VISIT_SUPER(GMVObjectGMAN); } XVF_CLASS_VISIT_END() void C :: renderSelf(GMVContext *cntx) { GMVObject::renderSelf(cntx); cntx->area(_f); } #undef C /********************************************************************/ #define _STRINGTIZE(C)#C #define STRINGTIZE(C)_STRINGTIZE(C) #define C GMVObjectDefinition XVF_CLASS_INSTANCE(C); XVF_CLASS_VISIT_BEGIN(C) { XVF_CLASS_VISIT_SUPER(GMVObject); } XVF_CLASS_VISIT_END() void C :: renderSelf(GMVContext *cntx) { /* DO NOTHING. */ } void C :: renderInstance(GMVContext *cntx) { GMVObject::renderInstance(cntx); } #undef C /********************************************************************/ #define C GMVObjectInstance XVF_CLASS_INSTANCE(C); XVF_CLASS_VISIT_BEGIN(C) { XVF_CLASS_VISIT_SUPER(GMVObject); XVF_MEMB(_instance); } XVF_CLASS_VISIT_END() void C :: renderSelf(GMVContext *cntx) { GMVObject::renderSelf(cntx); GMVObject *def; if ( (def = _cntx->objectDefGet(_instance)) ) { def->renderInstance(cntx); } } #undef C /********************************************************************/ gmv0.9/src/gmv/object.hh0100744000175200017560000001506407306074333015522 0ustar stephensstepheng#ifndef __gmv_object_hh #define __gmv_object_hh #include "gmv.h" /* GMAN */ class GMVContext; #include #include #include "xform.hh" #include "util/refcntptr.hh" class GMVObject; refcntptr_DECL(GMVObject); typedef refcntptr GMVObjectRef; #include "gmv/xvf.hh" class GMVObjectClass { const char *_name; public: GMVObjectClass(const char *name); const char *name() { return _name; } }; XVF_CLASS_BEGIN(GMVObject); class GMVObject //@ Encapsulates a rendered GMAN object. { refcntptr_CLASS(GMVObject); public: static GMVObjectClass _cls; GMVObjectClass *cls(); protected: bool _selected; /*@ Cache if the object is currently selected. */ bool _opened; /*@ Cache if the object is currently opened for child selection. */ GMVObject *_link; /*@ Indirectly linked to _link */ /* Child list. */ public: typedef vector children_t; typedef children_t::iterator children_iterator_t; private: string _name; /*@ Name of object. */ GMVObject *_parent; /*@ Linked to _parent. */ children_t _children; /*@ List of immediate children. */ GMVTransformRef _transform; /* Object to Parent Transform. */ GMAN_REF _color; /* Object color. */ public: XVF_CLASS_METHODS(virtual); virtual XVF_CLASS_VISIT_DECL(GMVObject); GMVObject(GMVContext *cntx = 0); virtual ~GMVObject(); virtual GMVObject *link(); virtual GMVObject *parent(); virtual GMVObject *root(); virtual int isParentOf(GMVObject *o); virtual int isAncestorOf(GMVObject *o); virtual int isChildOf(GMVObject *o); virtual int isDecendentOf(GMVObject *o); virtual string checkName(const string &x); virtual const string &name() { return _name; } virtual void name(const string &x); virtual GMVObject *childNamed(const string &x); virtual void addChild(GMVObject *object); virtual void removeChild(GMVObject *object); virtual void addObject(GMVObject *object); children_iterator_t childrenBegin() { return _children.begin(); } children_iterator_t childrenEnd() { return _children.end(); } virtual GMVTransform *transform(); virtual void transform(GMVTransform *t); virtual void transformChanged(); virtual void transformChangedParent(GMVObject *obj); virtual void transformChangeComplete(); virtual void transformChangeCompleteParent(GMVObject *obj); virtual void renderLinkBegin(GMVContext *cntx); virtual void renderLinkEnd(GMVContext *cntx); virtual void render(GMVContext *cntx); virtual void renderTransform(GMVContext *cntx); virtual void renderSelfDisplayList(GMVContext *cntx); virtual void renderSelf(GMVContext *cntx); virtual void renderInstance(GMVContext *cntx); virtual void renderChildren(GMVContext *cntx); }; XVF_CLASS_END(GMVObject); extern string increment(string y); extern GMVObject *find_path(string path, GMVObject *current, GMVObject *root = 0); XVF_CLASS_BEGIN(GMVObjectCamera); class GMVObjectCamera; refcntptr_DECL(GMVObjectCamera); typedef refcntptr GMVObjectCameraRef; inline void __deref(GMVObjectCamera *p) { __deref((GMVObject*) p); } inline void __ref(GMVObjectCamera *p) { __ref((GMVObject*) p); } class GMVObjectCamera : public GMVObject { protected: /*@ Projection */ GMAN_REF _fov; /*@ Field of view. */ GMAN_REF _clipzn, _clipzf; /*@ Near and far clipping planes. */ public: GMVObjectCamera(GMVContext *cntx = 0); XVF_CLASS_METHODS(XVF_); virtual XVF_CLASS_VISIT_DECL(GMVObjectCamera) ; /* Projection. */ virtual void fov(GMVS fov); virtual void fov(GMAN_ARG f); virtual void clipz(GMVS n, GMVS f); virtual void clipz(GMAN_ARG n, GMAN_ARG f); /* Camera. */ virtual void lookat(const GMVS *from, const GMVS *to, const GMVS *up); virtual void lookat(GMAN_ARG from, GMAN_ARG to, GMAN_ARG up); virtual void renderProjection(GMVContext *cntx); virtual void renderCamera(GMVContext *cntx); }; XVF_CLASS_END(GMVObjectCamera); XVF_CLASS_BEGIN(GMVObjectGMAN); class GMVObjectGMAN : public GMVObject { //@ Encapsulates a rendered GMAN object. protected: GMAN_REF _f; /* Generator. */ public: GMVObjectGMAN(GMVContext *cntx = 0, GMAN_ARG f = 0) : GMVObject(cntx), _f(f) { } // XVF_CLASS_METHODS(,GMVObjectCamera); XVF_CLASS_VISIT_DECL(GMVObjectGMAN) ; void renderSelfDisplayList(GMVContext *cntx); void renderSelf(GMVContext *cntx) = 0; }; XVF_CLASS_END(GMVObjectGMAN); XVF_CLASS_BEGIN(GMVCurve); class GMVCurve : public GMVObjectGMAN //@ Encapsulates a GMAN rendered as a curve. { protected: public: GMVCurve(GMVContext *cntx = 0, GMAN_ARG f = 0) : GMVObjectGMAN(cntx, f) { name("curve1"); } XVF_CLASS_METHODS(XVF_); XVF_CLASS_VISIT_DECL(GMVCurve) ; void renderSelf(GMVContext *cnxt); }; XVF_CLASS_END(GMVCurve); XVF_CLASS_BEGIN(GMVSurface); class GMVSurface : public GMVObjectGMAN //@ Encapsulates a GMAN rendered as a surface. { public: GMVSurface(GMVContext *cntx = 0, GMAN_ARG f = 0) : GMVObjectGMAN(cntx, f) { name("surface1"); } XVF_CLASS_METHODS(XVF_) XVF_CLASS_VISIT_DECL(GMVSurface) ; void renderSelf(GMVContext *cntx); }; XVF_CLASS_END(GMVSurface); XVF_CLASS_BEGIN(GMVArea); class GMVArea : public GMVObjectGMAN { public: GMVArea(GMVContext *cntx = 0, GMAN_ARG f = 0) : GMVObjectGMAN(cntx, f) { name("area1"); } XVF_CLASS_METHODS(XVF_); XVF_CLASS_VISIT_DECL(GMVArea) ; void renderSelf(GMVContext *cntx); }; XVF_CLASS_END(GMVArea); XVF_CLASS_BEGIN(GMVObjectDefinition); class GMVObjectDefinition : public GMVObject { /*@ Implements a named object definition. Named object definitions exist in the scene graph but are not visible unless selected by name. The object contained in an object definition are rendered by GMVObjectInstance objects when they do a named object lookup and call renderInstance(). */ public: GMVObjectDefinition(GMVContext *cntx = 0, const string &n = "") : GMVObject(cntx) { name(n); } XVF_CLASS_METHODS(XVF_); XVF_CLASS_VISIT_DECL(GMVObjectDefinition) ; void renderSelf(GMVContext *cntx); void renderInstance(GMVContext *cntx); }; XVF_CLASS_END(GMVObjectDefinition); XVF_CLASS_BEGIN(GMVObjectInstance); class GMVObjectInstance : public GMVObject { GMVContext *_cntx; string _instance; public: GMVObjectInstance(GMVContext *cntx = 0) : GMVObject(), _cntx(0) { } GMVObjectInstance(GMVContext *cntx, const string &name) : GMVObject(cntx), _cntx(cntx), _instance(name) { } XVF_CLASS_METHODS(XVF_); XVF_CLASS_VISIT_DECL(GMVObjectInstance) ; void renderSelf(GMVContext *cntx); }; XVF_CLASS_END(GMVObjectInstance); #endif gmv0.9/src/gmv/opts.h0100644000175200017560000000066607264374504015100 0ustar stephensstepheng#ifndef __gmv_opts_h #define __gmv_opts_h typedef struct gman_render_options /*@ Contains rendering options for a uniformly sampled space. */ { int primDim; /*@ 0 points, 1 = lines, 2 = polygons */ int projectDim; /*@ 2D, 3D, 4D, */ int pointIndex; /*@ 0 */ int colorIndex; /*@ -1 means no colors */ int alphaIndex; /*@ -1 means no alpha */ int normalIndex; /*@ -1 means no normals */ } gman_render_options; #endif gmv0.9/src/gmv/kit.h0100644000175200017560000000027007262415714014666 0ustar stephensstepheng#ifndef _gmv_render_h #define _gmv_render_h #include "gman/gman.h" /* GMAN */ #ifdef __cplusplus extern "C" { #endif #include "gmv/gmv.swig" #ifdef __cplusplus } #endif #endif gmv0.9/src/gmv/GUMakefile0100644000175200017560000000310307306075227015620 0ustar stephensstepheng# $Id: GUMakefile,v 1.9 2001/06/02 05:33:11 stephens Exp $ PROJECT=gmv# ################################################################# HAVE_GL=YES HAVE_RI=YES USE_TCL=YES ################################################################# #DEFINES+= refcntptr_DEBUG=1 INCLUDE_DIRS+= \ .. H_FILES = \ vmop.h \ kit.h \ gmv.h \ gmv.swig #DEFINES+= GMV_DLL GMV_DLL_BUILDING# #LIB_DYNAMIC:=YES ################################################################# NAME:=gmv# CC_FILES = \ context.cc \ selection.cc \ xform.cc \ kit.cc \ retained.cc \ object.cc \ crv.cc \ tool.cc \ tools.cc \ window.cc \ xvf.cc \ xml.cc SWIG_FILES = \ gmv.swig C_FILES = \ testscene.c LIBS:=gman#Rely on gman LIBS+= xvf# ifeq "$(strip $(HAVE_GL))" "YES" DEFINES+= GMAN_GL_SUPPORT CC_FILES += gl.cc LIBS+= glwin# LIBS+= GLU GL glut# endif ifeq "$(strip $(HAVE_RI))" "YES" DEFINES+= GMAN_RI_SUPPORT CC_FILES += ri.cc endif ifeq "$(strip $(USE_TCL))" "YES" DEFINES+= GMAN_TCL_SUPPORT CC_FILES += tcl.cc LIBS+= togl tcl tk# endif include $(GUM)/lib ################################################################# ifeq "$(strip $(HAVE_GL)$(USE_TCL))" "YESYES" NAME:=gmvtcl C_FILES:=gmvtcl.c LIBS:=gmv# include $(GUM)/exe endif ################################################################# ifeq "$(strip $(HAVE_GL))" "YES" NAME:=gmvgl CC_FILES:=gmvgl.cc LIBS:=gmv# include $(GUM)/exe endif ################################################################# NAME:=test1 C_FILES:=test1.c LIBS:=gmv# include $(GUM)/exe ################################################################# gmv0.9/src/gmv/retained.cc0100644000175200017560000000730107270336434016032 0ustar stephensstepheng #include "retained.hh" #include "object.hh" #define C GMVContextRetained #define SC GMVContext C :: C (void *context) : _cntx(context), _root(0), _visible(0) { init(); } C :: ~C() { /* delete _root; */ } void C :: init() { _f_transform = 0; SC::init(); root(); } void C :: activate() { SC::activate(); /* NOTHING */ } void C :: deactivate() { SC::deactivate(); } void C :: frameBegin() { SC::frameBegin(); /* NOTHING */ } void C :: frameEnd() { SC::frameEnd(); } /* World. */ void C :: worldBegin() { SC::worldBegin(); /* Begin root object. */ objectBegin(root()); } void C :: worldEnd() { /* End root object. */ objectEnd(); SC::worldEnd(); } /* Attribute. */ void C :: attributeBegin() { SC::attributeBegin(); _f_color_stack.push(_f_color); } void C :: attributeEnd() { _f_color = _f_color_stack.top(); _f_color_stack.pop(); SC::attributeEnd(); } void C :: color(const GMANValue *c) { SC::color(c); _f_color = gman_vv(3, (GMANValue*) c, 1); } void C :: color(GMAN_ARG c) { SC::color(c); _f_color = c; } /* Transform. */ void C :: transformBegin() { SC::transformBegin(); _f_transform_stack.push(_f_transform); } void C :: transformEnd() { _f_transform = _f_transform_stack.top(); _f_transform_stack.pop(); SC::transformEnd(); } void C :: transformIdentity() { SC::transformIdentity(); _f_transform = 0; } void C :: transform(const GMANValue *m) { SC::transform(m); _f_transform = gman_matrix(gman_vv(16, (GMANValue*) m, 1), 4, 4); } void C :: transform(GMAN_ARG m) { SC::transform(m); _f_transform = m; } void C :: transformConcat(const GMVS *mv) { SC::transformConcat(mv); GMAN m = gman_matrix(gman_vv(16, (GMANValue*) mv, 1), 4, 4); _f_transform = _f_transform ? (GMAN) gman_mul(m, _f_transform) : m; } void C :: transformConcat(GMAN_ARG m) { SC::transformConcat(m); _f_transform = _f_transform ? (GMAN_REF) gman_mul(m, _f_transform) : (GMAN_REF) m; } GMVObject * C :: root() { if ( ! _root ) { _root = new GMVObject(this); _visible = _root; } return _root; } GMVObject * C :: visibleRoot() { root(); return _visible; } void C :: addObject(GMVObject *obj) { // fprintf(stderr, "%p->addObject(%p)\n", this, obj); if ( _object ) { SC::addObject(obj); } else { root()->addChild(obj); } } const char * C :: objectDefBegin(const char *_name) { /* Push a GMVObjectDefinition on the object definition stack. */ _name = GMVContext::objectDefBegin(_name); #if 0 /* Add the child to the root object so getObjectInstance() can use paths to look it up. */ root()->addChild(_object); #endif return _name; } GMVObject * C :: objectDefGet(const string &name) { GMVObject *o; /* First use hash table lookup by creation name. */ if ( (o = GMVContext::objectDefGet(name)) ) { return o; } /* Otherwise use path lookup on the root object. */ o = find_path(name, root(), root()); return o; } /* Visualization */ void C :: curve(GMAN_ARG f) { addObject(new GMVCurve(this, f)); } void C :: surface(GMAN_ARG f) { addObject(new GMVSurface(this, f)); } void C :: area(GMAN_ARG f) { addObject(new GMVArea(this, f)); } void C :: vertex(const GMANValue *p, const gman_render_options *opts) { abort(); } void C :: points(int n, const GMANValue *p, int skip, const gman_render_options *opts) { abort(); } void C :: polyline(int n, const GMANValue *p, int skip, int wrap, const gman_render_options *opts) { abort(); } void C :: render(GMVContext *cntx) { cntx->selectionSet(_selection); cntx->attributeBegin(); cntx->transformBegin(); visibleRoot()->renderInstance(cntx); cntx->transformEnd(); cntx->attributeEnd(); } #undef C #undef SC gmv0.9/src/gmv/retained.hh0100644000175200017560000000371307264136253016047 0ustar stephensstepheng#ifndef _gman_render_retained_hh #define _gman_render_retained_hh #include "gmv.h" #include "context.hh" /* GMVContext */ #include class GMVContextRetained : public GMVContext //@ Retains rendered objects for later re-eval and rendering. // This context is used for building scenes during gmv_*() contextual. // The resulting retained context can then be used with gmv_window() // to create an interactive editor window. { protected: friend class GMVObject; void *_cntx; GMAN_REF _f_color; stack _f_color_stack; GMAN_REF _f_transform; stack _f_transform_stack; GMVObjectRef _root; GMVObjectRef _visible; public: GMVContextRetained(void *cntx); ~GMVContextRetained(); void init(); /* Activation. */ void activate(); void deactivate(); /* Frame */ void frameBegin(); void frameEnd(); /* World. */ void worldBegin(); void worldEnd(); /* Attribute. */ void attributeBegin(); void attributeEnd(); void color(const GMANValue *c); void color(GMAN_ARG c); /* Transform. */ void transformBegin(); void transformEnd(); void transformIdentity(); void transform(const GMANValue *m); void transform(GMAN_ARG m); void transformConcat(const GMANValue *m); void transformConcat(GMAN_ARG m); int objectCapturing() { return 1; } /* Visualization */ void curve(GMAN_ARG f); void surface(GMAN_ARG f); void area(GMAN_ARG f); /* Object. */ GMVObject *root(); GMVObject *visibleRoot(); /* Named object. */ void addObject(GMVObject *obj); const char *objectDefBegin(const char *name); GMVObject *objectDefGet(const string &name); /* Low-level. */ void vertex(const GMANValue *p, const gman_render_options *opts); void points(int n, const GMANValue *p, int skip, const gman_render_options *opts); void polyline(int n, const GMANValue *p, int skip, int wrap, const gman_render_options *opts); /* Retained Rendering. */ void render(GMVContext *cntx); }; #endif gmv0.9/src/gmv/ri.cc0100644000175200017560000001555707254044744014667 0ustar stephensstepheng#include "ri.hh" #include "vmop.h" #include #include #define C GMVContextRi #define CS GMVContext static RtToken RI_P = "P"; static RtToken RI_N = "N"; static RtToken RI_CS = "Cs"; static RtToken RI_NG = "Ng"; static RtToken RI_BILINEAR = "bilinear"; static RtToken RI_CUBIC = "cubic"; static RtToken RI_PERIODIC = "periodic"; static RtToken RI_NONPERIODIC = "nonperiodic"; #define RI_NULL ((void*)0) #define _list_0()RI_NULL #define _list_1(_1)_1 #define _list_2(_1,_2)_1,_2 #define _list_3(_1,_2,_3)_1,_2,_3 #define _list_4(_1,_2,_3,_4)_1,_2,_3,_4 #define _list_5(_1,_2,_3,_4,_5)_1,_2,_3,_4,_5 #define _list_6(_1,_2,_3,_4,_5,_6)_1,_2,_3,_4,_5,_6 #define _list_7(_1,_2,_3,_4,_5,_6,_7)_1,_2,_3,_4,_5,_6,_7 #define _list_8(_1,_2,_3,_4,_5,_6,_7,_8)_1,_2,_3,_4,_5,_6,_7,_8 #define _list_9(_1,_2,_3,_4,_5,_6,_7,_8,_9)_1,_2,_3,_4,_5,_6,_7,_8,_9 #define Ri(PROC, FORMAT, ARGS) _rib(#PROC, FORMAT, _list##ARGS) void C :: _rib(const char *proc, const char *format, ...) { int dim = 1; int n = 1; int rt = 0; va_list vap; va_start(vap, format); if ( _rib_active ) { if ( proc && strlen(proc) >= 3 && strcmp(proc + strlen(proc) - 3, "End") == 0 ) { if ( _rib_indent > 0 ) -- _rib_indent; } fprintf(_rib_fp, "%*s", _rib_indent, ""); if ( proc && strlen(proc) >= 5 && strcmp(proc + strlen(proc) - 5, "Begin") == 0 ) { ++ _rib_indent; } if ( proc && *proc ) { fprintf(_rib_fp, "%s ", proc); } else { fprintf(_rib_fp, "\t"); } for ( ; *format; ++ format ) { switch ( *format ) { case 'P': case 't': fprintf(_rib_fp, "\"%s\" ", va_arg(vap, char*)); break; case 'R': rt = 1; break; case 'n': n = va_arg(vap, int); // fprintf(stderr, "\n_rib: %s n = %d\n", proc, n); break; case 'p': dim = 3; goto do_float; case 'c': dim = 3; goto do_float; case 'm': dim = 16; goto do_float; case 'f': dim = 1; do_float: if ( n > 1 ) { fprintf(_rib_fp, "[ "); } if ( rt ) { RtFloat *v = va_arg(vap, RtFloat*); for ( int i = 0; i < n * dim; ++ i ) { fprintf(_rib_fp, "%.22g ", v[i]); } } else { GMANValue *v = va_arg(vap, GMANValue*); for ( int i = 0; i < n * dim; ++ i ) { fprintf(_rib_fp, "%.22g ", v[i]); } } if ( n > 1 ) { fprintf(_rib_fp, "] "); } break; case 'i': fprintf(_rib_fp, "%ld ", (long) va_arg(vap, RtInt)); break; case 's': fprintf(_rib_fp, "\"%s\" ", va_arg(vap, char *)); break; case 'I': dim = 1; do_int: { RtInt *v = va_arg(vap, RtInt*); if ( n > 1 ) { fprintf(_rib_fp, "[ "); } for ( int i = 0; i < n * dim; ++ i ) { fprintf(_rib_fp, "%ld ", (long) v[i]); } if ( n > 1 ) { fprintf(_rib_fp, "] "); } } break; default: assert(! "valid _riv() format"); break; } } if ( proc && *proc ) { fprintf(_rib_fp, "\n"); } } va_end(vap); } C :: C (void *cntx) : _ri_cntx(cntx), _rib_active(0) { _rib_fp = (FILE*) (cntx ? cntx : stdout); init(); } void C :: init() { _rib_indent = 0; _rib_active = 0; CS::init(); } void C :: activate() { _rib_indent = 0; Ri(Context, "", _1((RtToken) _ri_cntx)); } void C :: deactivate() { /* NOTHING */ _rib_active = 0; } void C :: frameBegin() { _rib_active = 1; Ri(FrameBegin, "i", _1((RtInt) 1)); } void C :: frameEnd() { Ri(FrameEnd, "", _0()); _rib_active = 0; } void C :: worldBegin() { Ri(WorldBegin, "", _0()); } void C :: worldEnd() { Ri(WorldEnd, "", _0()); } void C :: attributeBegin() { Ri(AttributeBegin, "", _0()); } void C :: attributeEnd() { Ri(AttributeEnd, "", _0()); } void C :: color(const GMANValue *c) { Ri(Color, "c", _1(c)); } void C :: transformBegin() { Ri(TransformBegin, "", _0()); } void C :: transformEnd() { Ri(TransformEnd, "", _0()); } void C :: transformIdentity() { Ri(IdentityTransform, "", _0()); } void C :: transform(const GMVS *m) { Ri(Transform, "m", _1(m)); } void C :: transformConcat(const GMVS *m) { Ri(ConcatTransform, "m", _1(m)); } /********************************************************************/ void C :: vertex(const GMANValue *v, const gman_render_options *opts) { const GMANValue *v0; #if 0 fprintf(stderr, "V(%g, %g, %g) ", (double) v[0], (double) v[1], (double) v[2]); fflush(stderr); #endif if ( opts->normalIndex >= 0 ) { v0 = v + opts->normalIndex; _ri_Nv.push_back(v0[0]); _ri_Nv.push_back(v0[1]); _ri_Nv.push_back(v0[2]); } if ( opts->colorIndex >= 0 ) { v0 = v + opts->colorIndex; _ri_Csv.push_back(v0[0]); _ri_Csv.push_back(v0[1]); _ri_Csv.push_back(v0[2]); } if ( opts->pointIndex >= 0 ) { v0 = v + opts->pointIndex; switch ( opts->projectDim ) { case 2: _ri_Pv.push_back(v0[0]); _ri_Pv.push_back(v0[1]); _ri_Pv.push_back(0); break; case 3: default: _ri_Pv.push_back(v0[0]); _ri_Pv.push_back(v0[1]); _ri_Pv.push_back(v0[2]); break; } } } void C :: points(int n, const GMANValue *p, int skip, const gman_render_options *opts) { polygonBegin(); for ( int i = n; -- i >= 0; ) { vertex(p, opts); p += skip; } Ri(Point, "nPRp", _4(n, RI_P, _ri_Pv.begin(), RI_NULL)); } void C :: polyline(int n, const GMANValue *p, int skip, int wrap, const gman_render_options *opts) { polygonBegin(); for ( int i = n; -- i >= 0; ) { vertex(p, opts); p += skip; } if ( wrap ) { vertex(p - (n * skip), opts); ++ n; } Ri(Line, "nPRp", _4(n, RI_P, _ri_Pv.begin(), RI_NULL)); } void C :: triangleStripBegin() { Ri(TriangleStripBegin, "", _0()); } void C :: triangleStripEnd() { Ri(TriangleStripEnd, "", _0()); } void C :: polygonBegin() { _ri_Pv.clear(); _ri_Nv.clear(); _ri_Csv.clear(); } void C :: polygonEnd() { assert(_ri_Pv.size()); Ri(Polygon, "PnRp", _4(RI_P, _ri_Pv.size() / 3, _ri_Pv.begin(), RI_NULL)); } void C :: polygonNormal(const GMANValue *n) { Ri(PolygonNormal, "nPp", _3(RI_NG, n, RI_NULL)); } void C :: surface(int nu, int nv, const GMANValue *p, int uskip, int vskip, const gman_render_options *opts) { if ( vskip <= 0 ) { vskip = uskip * nu; } switch ( opts->primDim ) { case 0: case 1: this->CS::surface(nu, nv, p, uskip, vskip, opts); break; case 2: if ( ! (uskip == 3 && vskip == uskip * nu) ) { Ri(PatchMesh, "tititPnp", _9(RI_BILINEAR, nu, RI_NONPERIODIC, nv, RI_NONPERIODIC, RI_P, nu * nv, p, RI_NULL)); } else { polygonBegin(); for ( int i = nv; -- i >= 0; ) { const GMANValue *row = p; for ( int j = nu; -- j >= 0; ) { vertex(row, opts); row += uskip; } p += vskip; } Ri(PatchMesh, "tititPnRp", _9(RI_BILINEAR, nu, RI_NONPERIODIC, nv, RI_NONPERIODIC, RI_P, nu * nv, _ri_Pv.begin(), RI_NULL)); } break; default: abort(); } } #undef C #undef CS gmv0.9/src/gmv/ri.hh0100644000175200017560000000267707254044744014700 0ustar stephensstepheng#ifndef _GMAN_RENDER_CONTEXT_Ri_HH #define _GMAN_RENDER_CONTEXT_Ri_HH #include "gmv.h" #include "context.hh" #include /* FILE */ #include typedef long RtInt; typedef float RtFloat; typedef const char *RtToken; class GMVContextRi : public GMVContext { protected: void *_ri_cntx; FILE *_rib_fp; int _rib_indent; short _rib_active; vector _ri_Pv; vector _ri_Csv; vector _ri_Nv; vector _ri_Ngv; void _rib(const char *proc, const char *format, ...); public: GMVContextRi(void *cntx); void init(); void activate(); void deactivate(); void frameBegin(); void frameEnd(); void worldBegin(); void worldEnd(); void attributeBegin(); void attributeEnd(); void color(const GMANValue *c); void transformBegin(); void transformEnd(); void transformIdentity(); void transform(const GMANValue *m); void transformConcat(const GMANValue *m); void vertex(const GMANValue *v, const gman_render_options *opts); void points(int n, const GMANValue *p, int skip, const gman_render_options *opts); void polyline(int n, const GMANValue *p, int skip, int wrap, const gman_render_options *opts); void triangleStripBegin(); void triangleStripEnd(); void polygonBegin(); void polygonEnd(); void polygonNormal(const GMANValue *n); void surface(int nu, int nv, const GMANValue *p, int uskip, int vskip, const gman_render_options *opts); }; #endif gmv0.9/src/gmv/test1.c0100644000175200017560000000176107254044744015142 0ustar stephensstepheng#include "gmv/gmv.h" int main(int argc, char **argv) { GMAN t, f; gmv_context *ret; gmv_context_begin(ret = gmv_context_retained(0)); gmv_world_begin(); t = gman_matrix(gman_vn(16, 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1., 0., 1., 2., 3., 1.), 4, 4); f = gman_cn(3, gman_cos(gman_x(0)), gman_sin(gman_x(0)), gman_x(1)); gmv_object_begin("foo"); gmv_transform_concat(t); gmv_surface(f); #if 0 gman_print_expr(stderr, gman_eval1(f, gman_x(1), gman_v(0))); #endif gmv_area(gman_eval1(f, gman_x(1), gman_v(0))); gmv_area(gman_eval1(f, gman_x(1), gman_v(1))); gmv_object_end(); gmv_object_instance("foo"); gmv_world_end(); gmv_context_end(); /*********************************************************************/ gmv_context_begin(gmv_context_ri(0)); gmv_frame_begin(); gmv_world_begin(); gmv_render_retained_context(ret); gmv_world_end(); gmv_frame_end(); gmv_context_end(); return 0; } gmv0.9/src/gmv/testscene.c0100644000175200017560000000264207254044744016076 0ustar stephensstepheng #include "gmv/gmv.h" #include "gman/funcs.h" #include /* M_PI */ #define PI M_PI void _gmv_testscene1() { GMAN s = gman_sphere(gman_x(0), gman_x(1)); #if 0 s = gman_taper(s, gman_vn(3, 1.0, 0.0, -0.5), gman_v(1.0), gman_vn(3, 0.0, 1.0, 0.5), gman_v(0.1)); #endif gmv_surface(s); gmv_transform_concat(gman_translate_3d(gman_vn(3, 1.0, 2.0, -5.0))); s = gman_cylinder(gman_x(0), gman_x(1)); gmv_surface(s); } void _gmv_testscene4() { GMAN s = gman_sphere(gman_x(0), gman_x(1)); GMAN b = gman_taper(s, gman_vn(3, 1.0, 0.0, -0.5), gman_v(1.0), gman_vn(3, 0.0, 1.0, 0.5), gman_v(0.1)); gmv_surface(b); } void _gmv_testscene3() { // sphere GMAN s = gman_sphere(gman_x(0), gman_x(1)); GMAN c = gman_cylinder(gman_x(0), gman_x(1)); GMAN b = gman_blend( s, gman_vn(3, 1., 0., -1.0), c, gman_vn(3, 0., 1., 1.0)); gmv_surface(b); } void _gmv_testscene2() { // Radius. GMAN r; GMAN f; r = gman_mul(gman_sin(gman_mul(gman_x(0), gman_v(PI * 10.0))), gman_sin(gman_mul(gman_x(1), gman_v(PI * 10.0)))); r = gman_add(r, gman_v(1.0)); r = gman_add(r, gman_v(10.0)); // Sphere. f = gman_mul(gman_sphere(gman_x(0), gman_x(1)), r); //f = gman_cn(3, gman_x(0), gman_x(1), gman_atan2(gman_sub(gman_x(0), gman_v(0.5)), gman_sub(gman_x(1), gman_v(0.5)))); gmv_transform_concat(gman_translate_3d(gman_vn(3, 1.0, 2.0, 3.0))); gmv_surface(f); } gmv0.9/src/gmv/vmop.h0100644000175200017560000002174207262415714015067 0ustar stephensstepheng#ifndef VMOP_H #define VMOP_H #if 0 #include #endif #define V2_DOT(A,B) \ ((A)[0] * (B)[0] + (A)[1] * (B)[1]) #define V2_NORM(A) \ sqrt(V2_DOT(A,A)) #define V2_NORMALIZE(A) \ do { \ typeof((A)[0]) __norm = V2_NORM(A); \ if ( __norm ) { \ __norm = 1.0 / __norm; \ (A)[0] *= __norm; \ (A)[1] *= __norm; \ } \ } while(0) #define V3_LIST(A) (A)[0], (A)[1], (A)[2] #define V3_AOP(A,AOP,B) \ do { \ (A)[0] AOP (B)[0]; \ (A)[1] AOP (B)[1]; \ (A)[2] AOP (B)[2]; \ } while(0) #define V3_AUOP(A,AOP,OP,B) \ do { \ (A)[0] AOP OP (B)[0]; \ (A)[1] AOP OP (B)[1]; \ (A)[2] AOP OP (B)[2]; \ } while(0) #define V3_AOP_S3(A,AOP,B,C,D) do { \ (A)[0] AOP (B); \ (A)[1] AOP (C); \ (A)[2] AOP (D); \ } while(0) #define V3_OP(A, AOP, B, OP, C) \ do { \ (A)[0] AOP (B)[0] OP (C)[0]; \ (A)[1] AOP (B)[1] OP (C)[1]; \ (A)[2] AOP (B)[2] OP (C)[2]; \ } while(0) #define V3_OP_S(A, AOP, B, OP, C) \ do { \ (A)[0] AOP (B)[0] OP (C); \ (A)[1] AOP (B)[1] OP (C); \ (A)[2] AOP (B)[2] OP (C); \ } while(0) #define V3_XPROD(A,AOP,B,OP,C) \ do { \ (A)[0] AOP (B)[1] * (C)[2] - (B)[2] * (C)[1]; \ (A)[1] AOP (B)[2] * (C)[0] - (B)[0] * (C)[2]; \ (A)[2] AOP (B)[0] * (C)[1] - (B)[1] * (C)[0]; \ } while(0) #define V3_DOT(A,B) \ ((A)[0] * (B)[0] + (A)[1] * (B)[1] + (A)[2] * (B)[2]) #define V3_NORM(A) \ sqrt(V3_DOT(A,A)) #define V3_NORMALIZE(A) \ do { \ typeof((A)[0]) __norm = V3_NORM(A); \ if ( __norm ) { \ __norm = 1.0 / __norm; \ (A)[0] *= __norm; \ (A)[1] *= __norm; \ (A)[2] *= __norm; \ } \ } while(0) #define V3_NORMALIZE_OR(A,X,Y,Z) \ do { \ typeof((A)[0]) __norm = V3_NORM(A); \ if ( __norm ) { \ __norm = 1.0 / __norm; \ (A)[0] *= __norm; \ (A)[1] *= __norm; \ (A)[2] *= __norm; \ } else { \ (A)[0] *= (X); \ (A)[1] *= (Y); \ (A)[2] *= (Z); \ } \ } while(0) /************************************************************************/ /* 4 vector. */ #define V4_LIST(A) (A)[0], (A)[1], (A)[2], (A)[3] #define V4_AOP(A,AOP,B) \ do { \ (A)[0] AOP (B)[0]; \ (A)[1] AOP (B)[1]; \ (A)[2] AOP (B)[2]; \ (A)[3] AOP (B)[3]; \ } while(0) /************************************************************************/ /* 3x3 matrix. */ #define M44_LIST(A) V4_LIST((A)[0]), V4_LIST((A)[1]), V4_LIST((A)[2]), V4_LIST((A)[3]) #define M44_PRINT(FP, STRING, A) fprintf((FP), "%s\n%10g %10g %10g %10g\n%10g %10g %10g %10g\n%10g %10g %10g %10g\n%10g %10g %10g %10g\n", STRING, M44_LIST(A)) #define M33_AOP(A,AOP,B) \ do { \ V3_AOP((A)[0],AOP,(B)[0]); \ V3_AOP((A)[1],AOP,(B)[1]); \ V3_AOP((A)[2],AOP,(B)[2]); \ } while(0) #define MXX_TRANSPOSE_ELEM(A,i,j) \ do { \ typeof((A)[i][j]) _M33_SWAP_temp = (A)[i][j]; (A)[i][j] = (A)[j][i]; (A)[j][i] = _M33_SWAP_temp; \ } while (0) #define M33_TRANSPOSE(A) \ do { \ MXX_TRANSPOSE_ELEM(A,0,1); \ MXX_TRANSPOSE_ELEM(A,0,2); \ MXX_TRANSPOSE_ELEM(A,1,2); \ } while(0) #define M33_MUL_ELEM(c,aop,a,op,b,i,j) ( \ (c)[i][j] aop (a)[i][0] op (b)[0][j] \ + (a)[i][1] op (b)[1][j] \ + (a)[i][2] op (b)[2][j] \ ) #define M33_MUL_ROW(c,aop,a,op,b,i) do { \ M33_MUL_ELEM(c,aop,a,op,b,i,0); \ M33_MUL_ELEM(c,aop,a,op,b,i,1); \ M33_MUL_ELEM(c,aop,a,op,b,i,2); \ } while(0) #define M33_MUL(c,aop,a,op,b) do { \ M33_MUL_ROW(c,aop,a,op,b,0); \ M33_MUL_ROW(c,aop,a,op,b,1); \ M33_MUL_ROW(c,aop,a,op,b,2); \ } while(0) #define V3_MUL_M33_ROW(c,aop,a,op,b,j) ( \ (c)[j] aop (a)[0] op (b)[0][j] \ + (a)[1] op (b)[1][j] \ + (a)[2] op (b)[2][j] \ ) #define V3_MUL_M33(c,aop,a,op,b) do { \ V3_MUL_M33_ROW(c,aop,a,op,b,0); \ V3_MUL_M33_ROW(c,aop,a,op,b,1); \ V3_MUL_M33_ROW(c,aop,a,op,b,2); \ } while(0) /************************************************************************/ /* 4x4 matrix. */ #define M44_AOP(A,AOP,B) \ do { \ V4_AOP((A)[0],AOP,(B)[0]); \ V4_AOP((A)[1],AOP,(B)[1]); \ V4_AOP((A)[2],AOP,(B)[2]); \ V4_AOP((A)[3],AOP,(B)[3]); \ } while(0) #define M44_IDENTITY(m,aop) do { \ (m)[0][1] = (m)[0][2] = (m)[0][3] = \ (m)[1][0] = (m)[1][2] = (m)[1][3] = \ (m)[2][0] = (m)[2][1] = (m)[2][3] = \ (m)[3][0] = (m)[3][1] = (m)[3][2] = 0; \ (m)[0][0] = (m)[1][1] = (m)[2][2] = (m)[3][3] = 1; \ } while(0) #define M44_TRANSLATE(m,aop,dx,dy,dz) do { \ (m)[0][1] = (m)[0][2] = (m)[0][3] = \ (m)[1][0] = (m)[1][2] = (m)[1][3] = \ (m)[2][0] = (m)[2][1] = (m)[2][3] = 0; \ (m)[0][0] = (m)[1][1] = (m)[2][2] = (m)[3][3] = 1; \ (m)[3][0] = (dx); \ (m)[3][1] = (dy); \ (m)[3][2] = (dz); \ } while(0) #define M44_SCALE(m,aop,sx,sy,sz) do { \ (m)[0][1] = (m)[0][2] = (m)[0][3] = \ (m)[1][0] = (m)[1][2] = (m)[1][3] = \ (m)[2][0] = (m)[2][1] = (m)[2][3] = \ (m)[3][0] = (m)[3][1] = (m)[3][2]=0;(m)[3][3] = 1; \ (m)[0][0] = (sx); \ (m)[1][1] = (sy); \ (m)[2][2] = (sz); \ } while(0) #if 1 /* From OpenGL */ #define M44_ROTATE(m,aop,angle,ax,ay,az) do { \ typeof(ax) _a[3] = { (ax), (ay), (az) }; \ typeof(angle) _ad = (angle) * (M_PI / 180); \ typeof(angle) _sin = sin(_ad); \ typeof(angle) _cos = cos(_ad); \ typeof(angle) _ver = (1 - _cos); \ V3_NORMALIZE_OR(_a, 0, 0, 1); \ (m)[0][0] aop _a[0] * _a[0] + _cos * (1 - _a[0] * _a[0]); \ (m)[0][1] aop _a[0] * _a[1] * _ver - _a[2] * _sin; \ (m)[0][2] aop _a[0] * _a[2] * _ver + _a[1] * _sin; \ (m)[0][3] = (m)[1][3] = (m)[2][3] = \ (m)[3][0] = (m)[3][1] = (m)[3][2] = 0; \ (m)[1][0] aop _a[0] * _a[1] * _ver + _a[2] * _sin; \ (m)[1][1] aop _a[1] * _a[1] + _cos * (1 - _a[1] * _a[1]); \ (m)[1][2] aop _a[1] * _a[2] * _ver - _a[0] * _sin; \ (m)[2][0] aop _a[0] * _a[2] * _ver - _a[1] * _sin; \ (m)[2][1] aop _a[1] * _a[2] * _ver + _a[0] * _sin; \ (m)[2][2] aop _a[2] * _a[2] + _cos * (1 - _a[2] * _a[2]); \ (m)[3][3] aop 1; \ if ( 0 ) { \ fprintf(stderr, "R.R = %g %g %g\n", \ V3_DOT((m)[0], (m)[1]), \ V3_DOT((m)[1], (m)[2]), \ V3_DOT((m)[2], (m)[0])); \ } \ } while(0) #else /* FROM RenderMan 4.0 Transformations Doc. */ /* WRONGGGG!!! */ #define M44_ROTATE(m,aop,angle,ax,ay,az) do { \ typeof(ax) _a[3] = { (ax), (ay), (az) }; \ typeof(angle) _ad = (angle) * (M_PI / 180); \ typeof(angle) _sin = sin(_ad); \ typeof(angle) _ver = 1 - cos(_ad); \ V3_NORMALIZE(_a); \ (m)[0][0] aop 1 + (_a[0] * _a[0] - 1) * _ver; \ (m)[0][1] aop _a[2] * _sin + _a[0] * _a[1] * _ver; \ (m)[0][2] aop - _a[1] * _sin + _a[2] * _a[0] * _ver; \ (m)[0][3] = (m)[1][3] = (m)[2][3] = \ (m)[3][0] = (m)[3][1] = (m)[3][2] = 0; \ (m)[1][0] aop - _a[2] * _sin + _a[0] * _a[1] * _ver; \ (m)[1][1] aop 1 + (_a[1] * _a[1] - 1) * _ver; \ (m)[1][2] aop _a[0] * _sin + _a[1] * _a[0] * _ver; \ (m)[2][0] aop _a[1] * _sin + _a[2] * _a[0] * _ver; \ (m)[2][1] aop - _a[0] * _sin + _a[1] * _a[0] * _ver; \ (m)[2][2] aop 1 + (_a[2] * _a[2] - 1) * _ver; \ (m)[3][3] aop 1; \ if ( 0 ) { \ fprintf(stderr, "rotate(%g %g %g %g) = ", (angle), V3_LIST(_a)); \ M44_PRINT(stderr, "", (m)); \ } \ } while(0) #endif #define M44_LOOKAT(m,aop,from,to,up) do { \ V3_OP((m)[2], =, (from), -, (to)); \ V3_NORMALIZE_OR((m)[2], 0, 0, 1); \ V3_AOP((m)[1], =, (up)); \ V3_NORMALIZE_OR((m)[1], 0, 1, 0); \ V3_XPROD((m)[0], =, (m)[1], ^, (m)[2]); \ V3_NORMALIZE_OR((m)[0], 1, 0, 0); \ V3_XPROD((m)[1], =, (m)[2], ^, (m)[0]); \ V3_NORMALIZE_OR((m)[1], 0, 1, 0); \ M33_TRANSPOSE((m)); \ V3_MUL_M33((m)[3], =, (from), *, (m)); \ V3_AUOP((m)[3], =, -, (m)[3]); \ (m)[0][3] = (m)[1][3] = (m)[2][3] = 0; \ (m)[3][3] = 1; \ } while(0) #define M44_T_ROW(mt,aop,m,i) do { \ (mt)[i][0] aop (m)[0][i]; \ (mt)[i][1] aop (m)[1][i]; \ (mt)[i][2] aop (m)[2][i]; \ (mt)[i][3] aop (m)[3][i]; \ } while(0) #define M44_T(mt,aop,m) do { \ assert((c)[0] != (a)[0]); \ M44_T_ROW(mt,aop,m,0); \ M44_T_ROW(mt,aop,m,1); \ M44_T_ROW(mt,aop,m,2); \ M44_T_ROW(mt,aop,m,3); \ } while (0) #define M44_MUL_ELEM(c,aop,a,op,b,i,j) ( \ (c)[i][j] aop (a)[i][0] op (b)[0][j] \ + (a)[i][1] op (b)[1][j] \ + (a)[i][2] op (b)[2][j] \ + (a)[i][3] op (b)[3][j] \ ) #define M44_MUL_ROW(c,aop,a,op,b,i) do { \ M44_MUL_ELEM(c,aop,a,op,b,i,0); \ M44_MUL_ELEM(c,aop,a,op,b,i,1); \ M44_MUL_ELEM(c,aop,a,op,b,i,2); \ M44_MUL_ELEM(c,aop,a,op,b,i,3); \ } while(0) #define M44_MUL(c,aop,a,op,b) do { \ assert((c)[0] != (a)[0]); \ assert((c)[0] != (b)[0]); \ M44_MUL_ROW(c,aop,a,op,b,0); \ M44_MUL_ROW(c,aop,a,op,b,1); \ M44_MUL_ROW(c,aop,a,op,b,2); \ M44_MUL_ROW(c,aop,a,op,b,3); \ } while(0) #define V4_MUL_M44_ROW(c,aop,a,op,b,j) ( \ (c)[j] aop (a)[0] op (b)[0][j] \ + (a)[1] op (b)[1][j] \ + (a)[2] op (b)[2][j] \ + (a)[3] op (b)[3][j] \ ) #define V4_MUL_M44(c,aop,a,op,b) do { \ V4_MUL_M44_ROW(c,aop,a,op,b,0); \ V4_MUL_M44_ROW(c,aop,a,op,b,1); \ V4_MUL_M44_ROW(c,aop,a,op,b,2); \ V4_MUL_M44_ROW(c,aop,a,op,b,3); \ } while(0) #endif gmv0.9/src/gmv/xform.cc0100644000175200017560000003674207264171655015412 0ustar stephensstepheng#include "xform.hh" #include "context.hh" #include #include /* M_PI */ #include "vmop.h" /*************************************************************************/ static void mul(GMVM44 &c, const GMVM44 &a, const GMVM44 &b) { M44_MUL(c,=,a,*,b); } /***********************************************************************/ /* Matrix inversion. */ #define SCALAR GMVS #define MATRIX GMVM44 #define MATRIX_ref GMVM44 & #define MATRIX_size(M) 4 #define MATRIX_copy(a, b) memcpy(&(a), &(b), sizeof(a)) #include "gman/mat_inv.c" static void M44_INVERSE(GMVM44 &m1, const GMVM44 &m) { if ( ! MATRIX_INVERSE(m1, m) ) { assert(! "invertable matrix"); abort(); } } /*************************************************************************/ #define C GMVTransform C :: C () : _refcnt(0), _inverse(0) { } C :: ~C () { } refcntptr_DEF(,C); void C :: __deref_delete() { delete this; } /*************************************************************************/ static GMVM44 Im = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } }; GMVTransform * C :: I() { static GMVMatrixTransform _I(Im); return &_I; } int C :: isMatrixTransform() { return 0; } const GMVM44 &C :: matrix() { // return I; assert(! "matrix transform"); abort(); } const GMVM44 &C :: matrix1() { // return I; assert(! "matrix transform"); abort(); } GMAN C :: manifold() { return gman_matrix(gman_vv(16, (GMANValue*) &(matrix()), 0), 4, 4); } GMAN C :: manifold1() { return gman_matrix(gman_vv(16, (GMANValue*) &(matrix1()), 0), 4, 4); } GMVTransform * C :: simplify() { return this; } GMVTransform * C :: concat(GMVTransform *x) { return new GMVCompositeTransform(this, x); } void C :: invert() { return; assert(! "invertable transform"); abort(); } int C :: isInverse() { return 0; } GMVTransform * C :: inverse() { if ( ! _inverse ) { _inverse = new GMVInverseTransform(this); } return _inverse; } #undef C /*************************************************************************/ #define C GMVInverseTransform C :: C(GMVTransform *xform) { _xform = xform; } int C :: isMatrixTransform() { return _xform->isMatrixTransform(); } const GMVM44 & C :: matrix() { return _xform->matrix1(); } const GMVM44 & C :: matrix1() { return _xform->matrix(); } int C :: isInverse() { return 1; } GMVTransform * C :: inverse() { return _xform; } GMVTransform * C :: simplify() { if ( _xform->isMatrixTransform() ) { GMVMatrixTransform *m = new GMVMatrixTransform(_xform->matrix()); m->invert(); return m; } else { return this; } } void C :: transform(int n, const GMVV4 *input, GMVV4 *output) { _xform->transform1(n, input, output); } void C :: transform(int n, const GMVV3 *input, GMVV3 *output) { _xform->transform1(n, input, output); } void C :: transformv(int n, const GMVV3 *input, GMVV3 *output) { _xform->transform1v(n, input, output); } void C :: transform1(int n, const GMVV4 *input, GMVV4 *output) { _xform->transform(n, input, output); } void C :: transform1(int n, const GMVV3 *input, GMVV3 *output) { _xform->transform(n, input, output); } void C :: transform1v(int n, const GMVV3 *input, GMVV3 *output) { _xform->transformv(n, input, output); } #undef C /*************************************************************************/ #define C GMVCompositeTransform C :: C (GMVTransform *a, GMVTransform *b) : _a(a), _b(b), _m(0), _m1(0) { } C :: ~C () { delete _m; delete _m1; } int C :: isMatrixTransform() { return _a->isMatrixTransform() && _b->isMatrixTransform(); } const GMVM44 & C :: matrix() { if ( ! _m ) { _m = new GMVM44[1]; } mul(*_m, _a->matrix(), _b->matrix()); #if 0 { const GMVM44 &M = *_m; fprintf(stderr, "C: M.M = %g %g %g\n", V3_DOT(M[0], M[1]), V3_DOT(M[1], M[2]), V3_DOT(M[2], M[0]) ); } { const GMVM44 &M = _a->matrix(); fprintf(stderr, "C: A.A = %g %g %g\n", V3_DOT(M[0], M[1]), V3_DOT(M[1], M[2]), V3_DOT(M[2], M[0]) ); } { const GMVM44 &M = _b->matrix(); fprintf(stderr, "C: B.B = %g %g %g\n", V3_DOT(M[0], M[1]), V3_DOT(M[1], M[2]), V3_DOT(M[2], M[0]) ); } #endif return *_m; } const GMVM44 & C :: matrix1() { if ( ! _m1 ) { _m1 = new GMVM44[1]; } M44_INVERSE(*_m1, matrix()); return *_m1; } void C :: invert() { { GMVTransform *t = _a; _a = _b; _b = t; } { GMVM44 *t = _m; _m = _m1; _m1 = t; } _a = _a->inverse(); _b = _b->inverse(); } GMVTransform * C :: inverse() { if ( ! _inverse ) { _inverse = new GMVCompositeTransform(_b->inverse(), _a->inverse()); } return _inverse; } GMVTransform * C :: simplify() { if ( _a->isMatrixTransform() && _b->isMatrixTransform() ) { GMVMatrixTransform *m = new GMVMatrixTransform(_b->matrix()); m->prepend(_a->matrix()); return m; } else { return this; } } /* Transform points. */ void C :: transform(int n, const GMVV4 *input, GMVV4 *output) { _a->transform(n, input, output); _b->transform(n, output, output); } void C :: transform(int n, const GMVV3 *input, GMVV3 *output) { _a->transform(n, input, output); _b->transform(n, output, output); } void C :: transformv(int n, const GMVV3 *input, GMVV3 *output) { _a->transformv(n, input, output); _b->transformv(n, output, output); } /* Inverse transform points. */ void C :: transform1(int n, const GMVV4 *input, GMVV4 *output) { _b->transform1(n, input, output); _a->transform1(n, output, output); } void C :: transform1(int n, const GMVV3 *input, GMVV3 *output) { _b->transform1(n, input, output); _a->transform1(n, output, output); } void C :: transform1v(int n, const GMVV3 *input, GMVV3 *output) { _b->transform1v(n, input, output); _a->transform1v(n, output, output); } #undef C /*************************************************************************/ #define C GMVMatrixTransform C :: C () { _init(); memset(&_m, 0, sizeof(_m)); } C :: ~C () { delete _m1; } refcntptr_DEF(,C); C :: C (const GMVM44 &m) { _init(); matrix(m); } C :: C (const C& x) { _init(); if ( (_m_valid = x._m_valid) ) { memcpy(&_m, &x._m, sizeof(_m)); } if ( (_m1_valid = x._m1_valid) ) { _m1_alloc(); memcpy(&*_m1, &*x._m1, sizeof(*_m1)); } } void C :: matrix(const GMVM44 &_x) { memcpy(&_m, &_x, sizeof(_m)); _m_valid = 1; _m1_valid = 0; // fprintf(stderr, "%p->matrix(m): ", this); M44_PRINT(stderr, "m = ", _x); } void C :: matrix1(const GMVM44 &_x) { _m1_alloc(); memcpy(&*_m1, &_x, sizeof(*_m1)); _m1_valid = 1; _m_valid = 0; } /***********************************************************************/ const GMVM44 & C :: matrix() { if ( ! _m_valid ) { // fprintf(stderr, "%p->matrix(): ", this); M44_PRINT(stderr, "m = ", _m); assert(_m1_valid); assert(_m1); M44_INVERSE(_m, *_m1); _m_valid = 1; } return _m; } const GMVM44 & C :: matrix1() { if ( ! _m1_valid ) { assert(_m_valid); _m1_alloc(); M44_INVERSE(*_m1, _m); _m1_valid = 1; } return *_m1; } void C :: invert() { { GMVM44 temp; memcpy(&temp, &_m, sizeof(temp)); _m1_alloc(); memcpy(&_m, &*_m1, sizeof(_m)); memcpy(&*_m1, &temp, sizeof(*_m1)); } { int temp = _m_valid; _m_valid = _m1_valid; _m1_valid = temp; } } #define PRECOMPUTE_INVERSE 0 void C :: identity() { matrix(Im); #if PRECOMPUTE_INVERSE matrix1(Im); _m_valid = _m1_valid = 1; #endif } void C :: translate(GMVValue dx, GMVValue dy, GMVValue dz) { M44_TRANSLATE(_m, =, dx, dy, dz); _m_valid = 1; #if PRECOMPUTE_INVERSE _m1_alloc(); M44_TRANSLATE(_m1, =, - dx, - dy, - dz); _m1_valid = 1; #else _m1_valid = 0; #endif } void C :: scale(GMVValue dx, GMVValue dy, GMVValue dz) { M44_SCALE(_m, =, dx, dy, dz); _m_valid = 1; #if PRECOMPUTE_INVERSE _m1_alloc(); M44_SCALE(_m1, =, 1 / dx, 1 / dy, 1 / dz); _m1_valid = 1; #else _m1_valid = 0; #endif } void C :: rotate(GMVValue angle, GMVValue ax, GMVValue ay, GMVValue az) { M44_ROTATE(_m, =, angle, ax, ay, az); _m_valid = 1; #if PRECOMPUTE_INVERSE _m1_alloc(); M44_TRANSPOSE(_m1,=,_m); _m1_valid = 1; #else _m1_valid = 0; #endif } void C :: lookat(const GMVV3 *from, const GMVV3 *to, const GMVV3 *up) { _m1_alloc(); M44_LOOKAT(*_m1, =, *from, *to, *up); _m1_valid = 1; _m_valid = 0; } void C :: prepend(const GMVM44 &m) { GMVM44 temp; matrix(); // Get _m. mul(temp, m, _m); matrix(temp); } void C :: concat(GMVMatrixTransform *x) { GMVM44 temp; mul(temp, matrix(), x->matrix()); matrix(temp); } void C :: _xform(const GMVM44 &m, int n, const GMVV4 *input, GMVV4 *output) { if ( input != output ) { // No input/output aliasing. while ( -- n >= 0 ) { V4_MUL_M44(*output,=,*input,*,m); ++ output; ++ input; } } else { // Use temporary. while ( -- n >= 0 ) { GMVV4 temp; V4_MUL_M44(temp,=,*input,*,m); V4_AOP(*output,=,temp); ++ output; ++ input; } } } void C :: _xform(const GMVM44 &m, int n, const GMVV3 *input, GMVV3 *output) { while ( -- n >= 0 ) { GMVV4 tempin, tempout; tempin[0] = (*input)[0]; tempin[1] = (*input)[1]; tempin[2] = (*input)[2]; tempin[3] = 1; V4_MUL_M44(tempout,=,tempin,*,m); tempout[3] = 1.0 / tempout[3]; (*output)[0] = tempout[0] * tempout[3]; (*output)[1] = tempout[1] * tempout[3]; (*output)[2] = tempout[2] * tempout[3]; ++ output; ++ input; } } void C :: _xformv(const GMVM44 &m, int n, const GMVV3 *input, GMVV3 *output) { /* Vector transform. */ if ( input != output ) { // No input/output aliasing. while ( -- n >= 0 ) { V3_MUL_M33(*output,=,*input,*,m); ++ output; ++ input; } } else { // Use temporary. while ( -- n >= 0 ) { GMVV3 temp; V3_MUL_M33(temp,=,*input,*,m); V3_AOP(*output,=,temp); ++ output; ++ input; } } } void C :: transform(int n, const GMVV4 *i, GMVV4 *o) { _xform(matrix(), n, i, o); } void C :: transform(int n, const GMVV3 *i, GMVV3 *o) { _xform(matrix(), n, i, o); } void C :: transformv(int n, const GMVV3 *i, GMVV3 *o) { _xformv(matrix(), n, i, o); } void C :: transform1(int n, const GMVV4 *i, GMVV4 *o) { _xform(matrix1(), n, i, o); } void C :: transform1(int n, const GMVV3 *i, GMVV3 *o) { _xform(matrix1(), n, i, o); } void C :: transform1v(int n, const GMVV3 *i, GMVV3 *o) { _xformv(matrix1(), n, i, o); } #undef C /***********************************************************************/ gmv_space gmv_space_screen = (gmv_space) "screen"; gmv_space gmv_space_projection = (gmv_space) "projection"; gmv_space gmv_space_camera = (gmv_space) "camera"; gmv_space gmv_space_world = (gmv_space) "world"; gmv_space gmv_space_object = (gmv_space) "object"; #include #define C GMVSpaceContext /* NOT THREAD SAFE */ static C * _spaceContext = 0; static stack _spaceContextStack; C * C :: current() { return _spaceContext; } void C :: push(C *sc) { _spaceContextStack.push(_spaceContext); _spaceContext = sc; } void C :: pop() { _spaceContext = _spaceContextStack.top(); _spaceContextStack.pop(); } C :: C (GMVContext *cntx) : _cntx(cntx) { } GMVTransform * C :: _concat(GMVTransform *a, GMVTransform *b) { GMVTransform *c; c = a->concat(b); if ( c->isMatrixTransform() ) { c = c->simplify(); } return c; } GMVTransform * C :: _transformSpace(gmv_space from, gmv_space to) { GMVTransform *result = 0; do { /* NDC -> screen */ if ( from == gmv_space_projection && to == gmv_space_screen ) { result = _cntx->projectionToViewport(); break; } /* camera -> NDC */ if ( from == gmv_space_camera && to == gmv_space_projection ) { result = _cntx->cameraToProjection(); break; } /* world -> camera */ if ( from == gmv_space_world && to == gmv_space_camera ) { result = _cntx->worldToCamera(); break; } /* camera -> screen = camera -> NDC -> screen */ if ( from == gmv_space_camera && to == gmv_space_screen ) { result = _concat(_cntx->cameraToProjection(), _cntx->projectionToViewport()); break; } /* world -> screen = world -> camera -> NDC -> screen */ if ( from == gmv_space_world && to == gmv_space_screen ) { result = _concat(transformSpace(from, gmv_space_camera), transformSpace(gmv_space_camera, to)); break; } /* world -> NDC = world -> camera -> NDC */ if ( from == gmv_space_world && to == gmv_space_projection ) { result = _concat(transformSpace(from, gmv_space_camera), transformSpace(gmv_space_camera, to)); break; } } while ( 0 ); return result; } GMVTransform * C :: transformSpace(gmv_space from, gmv_space to) { GMVTransform *result = 0; if ( ! from ) { from = gmv_space_world; } if ( ! to ) { to = gmv_space_world; } _space_pair_t space_pair(from, to); do { /* from -> from = I */ if ( from == to ) { return GMVTransform::I(); break; } /* Check cache. */ _space_map_t::iterator i; if ( (i = _space_map.find(space_pair)) != _space_map.end() ) { return i->second; break; } /* incidental1 -> incidental2 */ if ( (result = _transformSpace(from, to)) ) { break; } /* incidental2 -> incidental1 */ if ( (result = _transformSpace(to, from)) ) { result = result->inverse(); break; } /* object -> world = object -> parent -> world */ if ( to == gmv_space_world ) { GMVObject *object = ((GMVObject*) from); result = object->transform(); while ( (object = object->parent()) ) { result = _concat(result, object->transform()); } break; } /* world -> object = world -> parent -> object */ if ( from == gmv_space_world ) { result = transformSpace(to, from)->inverse(); break; } /* object1 -> object2 = object1 -> world -> object2 */ if ( 1 ) { result = _concat(transformSpace(from, gmv_space_world), transformSpace(gmv_space_world, to)); break; } } while ( 0 ); /* Store in cache. */ _space_map[space_pair] = result; return result; } /* Localized transform. Imagine a transform M(S) that is specified in a space S. We want to apply M(S) to the context of space T. M(T,S) is the transform from space T to space S. M(S,T) is the inverse of M(T,S). space W is the world space. if M(S,W) transforms from space S to world space: it follows that: M(S,W) . M(W,S) = I M(W,S) . M(S) . M(S,W) = M(W); xforms from W to S, applies M(S), xform from S to W. M(T,W) . M(W,S) . M(S) . M(S,W) . M(W,T) */ #undef C /***********************************************************************/ #ifdef UNIT_TEST #include static void print(const char *format, const GMVM44 &x) { fprintf(stdout, "%s", format); M44_PRINT(stdout, "", x); } int main(int argc, char **argv) { GMVMatrixTransform t; t.identity(); print("I = ", t.matrix()); print("I-1 = ", t.matrix1()); t.translate(1,2,3); print("T = ", t.matrix()); print("T-1 = ", t.matrix1()); t.scale(4,5,6); print("S = ", t.matrix()); print("S-1 = ", t.matrix1()); t.rotate(90,0,0,1); print("R = ", t.matrix()); print("R-1 = ", t.matrix1()); t.rotate(90,1,0,0); print("R = ", t.matrix()); print("R-1 = ", t.matrix1()); t.rotate(45,1,1,1); print("R = ", t.matrix()); print("R-1 = ", t.matrix1()); } #endif gmv0.9/src/gmv/xform.hh0100644000175200017560000001257507271015336015411 0ustar stephensstepheng#ifndef GMV_TRANSFORM_HH #define GMV_TRANSFORM_HH #include "gmv.h" /* GMVS */ #include /* memset() */ #include "util/refcntptr.hh" class GMVTransform; refcntptr_DECL(GMVTransform); typedef refcntptr GMVTransformRef; #if 0 #include "gmv/rfx.hh" #endif class GMVTransform { refcntptr_CLASS(GMVTransform); protected: GMVTransformRef _inverse; public: GMVTransform(); virtual ~GMVTransform(); /* Identity Transform. */ static GMVTransform *I(); /* Matrix transform. */ virtual int isMatrixTransform(); virtual const GMVM44 &matrix(); virtual const GMVM44 &matrix1(); /* Manifold (as matrix or non-homogenous transform) */ virtual GMAN manifold(); virtual GMAN manifold1(); /* Simplication. */ virtual GMVTransform *simplify(); /* Inverse. */ virtual int isInverse(); virtual GMVTransform *inverse(); /* Concatenation. */ virtual GMVTransform *concat(GMVTransform *x); /* Inversion */ virtual void invert(); /* Transform */ virtual void transform(int n, const GMVV4 *input, GMVV4 *output) = 0; virtual void transform(int n, const GMVV3 *input, GMVV3 *output) = 0; virtual void transformv(int n, const GMVV3 *input, GMVV3 *output) = 0; /* Inverse Transform */ virtual void transform1(int n, const GMVV4 *input, GMVV4 *output) = 0; virtual void transform1(int n, const GMVV3 *input, GMVV3 *output) = 0; virtual void transform1v(int n, const GMVV3 *input, GMVV3 *output) = 0; }; class GMVInverseTransform : public GMVTransform { protected: GMVTransformRef _xform; public: GMVInverseTransform(GMVTransform *xform); int isMatrixTransform(); const GMVM44 &matrix(); const GMVM44 &matrix1(); int isInverse(); GMVTransform *inverse(); GMVTransform *simplify(); /* Transform points. */ void transform(int n, const GMVV4 *input, GMVV4 *output); void transform(int n, const GMVV3 *input, GMVV3 *output); void transformv(int n, const GMVV3 *input, GMVV3 *output); /* Inverse transform points. */ void transform1(int n, const GMVV4 *input, GMVV4 *output); void transform1(int n, const GMVV3 *input, GMVV3 *output); void transform1v(int n, const GMVV3 *input, GMVV3 *output); }; class GMVCompositeTransform : public GMVTransform { protected: GMVTransformRef _a; GMVTransformRef _b; GMVM44 *_m; GMVM44 *_m1; public: GMVCompositeTransform(GMVTransform *a, GMVTransform *b); ~GMVCompositeTransform(); int isMatrixTransform(); const GMVM44 &matrix(); const GMVM44 &matrix1(); void invert(); GMVTransform *inverse(); GMVTransform *simplify(); /* Transform points. */ void transform(int n, const GMVV4 *input, GMVV4 *output); void transform(int n, const GMVV3 *input, GMVV3 *output); void transformv(int n, const GMVV3 *input, GMVV3 *output); /* Inverse transform points. */ void transform1(int n, const GMVV4 *input, GMVV4 *output); void transform1(int n, const GMVV3 *input, GMVV3 *output); void transform1v(int n, const GMVV3 *input, GMVV3 *output); }; class GMVMatrixTransform; refcntptr_DECL(GMVMatrixTransform); typedef refcntptr GMVMatrixTransformRef; class GMVMatrixTransform : public GMVTransform //@ Handles 3D transforms. { private: GMVM44 _m; GMVM44 *_m1; bool _m_valid; bool _m1_valid; void _init() { _m_valid = _m1_valid = 0; _m1 = 0; } void _m1_alloc() { if ( ! _m1 ) { _m1 = new GMVM44[1]; } } static void _xform(const GMVM44 &m, int n, const GMVV4 *input, GMVV4 *output); static void _xform(const GMVM44 &m, int n, const GMVV3 *input, GMVV3 *output); static void _xformv(const GMVM44 &m, int n, const GMVV3 *input, GMVV3 *output); public: GMVMatrixTransform(); ~GMVMatrixTransform(); GMVMatrixTransform(const GMVM44 &m); GMVMatrixTransform(const GMVMatrixTransform &x); int isMatrixTransform() { return 1; } /* Matrix. */ void matrix(const GMVM44 &m); const GMVM44& matrix(); void matrix1(const GMVM44 &m); const GMVM44& matrix1(); /* Invert. */ void invert(); /* Identity. */ void identity(); /* Transforms. */ void translate(GMVS dx, GMVS dy, GMVS dz); void scale(GMVS sx, GMVS sy, GMVS sz); void rotate(GMVS angle, GMVS ax, GMVS ay, GMVS az); void lookat(const GMVV3 *from, const GMVV3 *to, const GMVV3 *up); /* Concatention. */ void prepend(const GMVM44 &m); void concat(GMVMatrixTransform *x); /* Transform points. */ void transform(int n, const GMVV4 *input, GMVV4 *output); void transform(int n, const GMVV3 *input, GMVV3 *output); void transformv(int n, const GMVV3 *input, GMVV3 *output); /* Inverse transform points. */ void transform1(int n, const GMVV4 *input, GMVV4 *output); void transform1(int n, const GMVV3 *input, GMVV3 *output); void transform1v(int n, const GMVV3 *input, GMVV3 *output); }; #include #include class GMVContext; class GMVSpaceContext { protected: GMVContext *_cntx; typedef pair _space_pair_t; typedef map<_space_pair_t,GMVTransformRef> _space_map_t; _space_map_t _space_map; GMVTransform *_concat(GMVTransform *a, GMVTransform *b); GMVTransform *_transformSpace(gmv_space from, gmv_space to); public: static GMVSpaceContext *current(); static void push(GMVSpaceContext *cntx); static void pop(); GMVSpaceContext(GMVContext *cntx); void clear() { _space_map.clear(); } GMVTransform *transformSpace(gmv_space from, gmv_space to); }; #endif gmv0.9/src/gmv/mak_gen/0040755000175200017560000000000007262753366015343 5ustar stephensstephenggmv0.9/src/gmv/mak_gen/Linux/0040755000175200017560000000000007262753367016443 5ustar stephensstephenggmv0.9/src/gmv/mak_gen/Linux/od/0040755000175200017560000000000007262753366017044 5ustar stephensstephenggmv0.9/src/gmv/mak_gen/Linux/od/build_vars.h0100644000175200017560000000036607263502335021336 0ustar stephensstepheng/* DO NOT MODIFY Generated by maks/pre.mak. */ #define BUILD_TARGET "Linux" #define BUILD_DATE "Fri Apr 6 22:09:16 CDT 2001" #define BUILD_HOST "ion02.dev.ionink.com" #define BUILD_USER "stephens" #define BUILD_ROOT "/home/stephens/ion/src/gmv" gmv0.9/src/gmv/mak_gen/Linux/t/0040755000175200017560000000000007262753367016706 5ustar stephensstephenggmv0.9/src/gmv/malloc.h0100644000175200017560000000011607254044464015346 0ustar stephensstepheng#ifndef _gmv_malloc_h #define _gmv_malloc_h #include "gman/malloc.h" #endif gmv0.9/src/gmv/selection.cc0100644000175200017560000000263407264132103016216 0ustar stephensstepheng #include "selection.hh" #include #include #include #define C GMVSelection C :: C () : _invert(0) { } void C :: clear() { _invert = 0; _set.clear(); _list.clear(); } void C :: all() { clear(); _invert = 1; } void C :: invert() { _invert = ! _invert; } int C :: selected(GMVObject *obj) { return obj && _invert != (_set.find(obj) != _set.end()); } void C :: _add(GMVObject *obj) { _list.push_back(obj); _set[obj] = 0; } void C :: _remove(GMVObject *obj) { _list_t::iterator i = find(_list.begin(), _list.end(), obj); assert(i != _list.end()); _list.erase(i, i + 1); _set.erase(obj); } void C :: select(GMVObject *obj) { if ( obj ) { if ( ! selected(obj) ) { if ( _invert ) { _remove(obj); } else { _add(obj); } } } // dump(); } void C :: deselect(GMVObject *obj) { if ( obj ) { if ( selected(obj) ) { if ( _invert ) { _add(obj); } else { _remove(obj); } } } // dump(); } void C :: toggle(GMVObject *obj) { if ( obj ) { if ( selected(obj) ) { deselect(obj); } else { select(obj); } } // dump(); } void C :: dump() { _list_iterator_t i; fprintf(stderr, "Selection %p %s: ", this, _invert ? "INVERT" : ""); for ( i = _list.begin(); i != _list.end(); ++ i ) { fprintf(stderr, "%p ", (void*) *(i)); } fprintf(stderr, "\n"); } #undef C gmv0.9/src/gmv/selection.hh0100644000175200017560000000161307264130052016225 0ustar stephensstepheng#ifndef _gmv_selection_hh #define _gmv_selection_hh #include "malloc.h" #include "object.hh" #include #include class GMVSelection { private: typedef GMVObjectRef object_t; typedef vector _list_t; typedef _list_t::iterator _list_iterator_t; _list_t _list; typedef map _set_t; _set_t _set; bool _invert; void _add(GMVObject *obj); void _remove(GMVObject *obj); public: typedef _list_t::iterator iterator; GMVSelection(); void select(GMVObject *obj); void deselect(GMVObject *obj); void toggle(GMVObject *obj); void all(); void clear(); void invert(); int selected(GMVObject *obj); iterator begin() { return _list.begin(); } iterator end() { return _list.end(); } void hook_set(GMVObject *obj, void *data) { _set[obj] = data; } void *hook(GMVObject *obj) { return _set[obj]; } void dump(); }; #endif gmv0.9/src/gmv/gmvgl.cc0100744000175200017560000000157207263565520015362 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_gmvgl_cc__ #define __rcs_id_gman_gmvgl_cc__ static const char __rcs_id_gman_gmvgl_cc[] = "$Id: gmvgl.cc,v 1.6 2001/04/07 10:26:24 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gmv/gmv.h" #include "gman/gman.h" #include "glwin/glwin.h" extern "C" void _gmv_testscene1(); static int gmvgl_main(int argc, char **argv) { gmv_context *retained; retained = gmv_context_ref(gmv_context_retained(0)); gmv_context_begin(retained); gmv_frame_begin(); gmv_world_begin(); _gmv_testscene1(); gmv_world_end(); gmv_frame_end(); gmv_context_end(); { glwin_window *win = gmv_window(retained); glwin_show(win); glwin_update(win); } gmv_context_deref(retained); return glwin_mainloop(); } int main(int argc, char **argv) { glwin_initmain(&argc, &argv); return gmvgl_main(argc, argv); } gmv0.9/src/gmv/tool.cc0100744000175200017560000002374007270772355015230 0ustar stephensstepheng #include "tool.hh" #include "context.hh" #include "vmop.h" #include "keys.h" #include #define C GMVToolContext C :: C () { _allowAxies = ~ 0; _cameraSel = 0; _cameraMode = 0; _cameraToggle = 0; _keysDown = 0; memset(&_keyDown, 0, sizeof(_keyDown)); _pointersDown = 0; _drag_z = 0; memset(&_pointerDown, 0, sizeof(_pointerDown)); _tool = 0; _tool_set = 0; _retained = 0; _space = 0; _pointerDownScreen[2] = _pointerDragScreen[2] = _pointerDownScreenZ[2] = 0.5; } C :: ~C () { delete _cameraSel; delete _space; } void C :: tool(GMVTool *tool) { assert(tool != 0); /* Dont switch tools till after pointerUp. */ if ( _pointersDown ) { _tool_set = tool; } else { if ( _tool != tool ) { if ( _tool ) { _tool->deactivate(); } fprintf(stderr, "Current tool: %s\n", tool->description()); _tool = tool; if ( _tool ) { _tool->activate(); } } } } void C :: addTool(GMVTool *x) { _tools.push_back(x); x->_cntx = this; if ( ! _tool ) { tool(x); } } void C :: toolPush(GMVTool *x) { _tool_stack.push(_tool); tool(x); } void C :: toolPop() { GMVTool *x = _tool_stack.top(); _tool_stack.pop(); tool(x); } GMVTool * C :: toolNamed(const char *name) { GMVTool *result = 0; for ( _tools_t::iterator i = _tools.begin(); i != _tools.end(); ++ i ) { if ( strcmp((*i)->name(), name) == 0 ){ result = (*i); break; } } return result; } gmv_tool *gmv_tool_named(C *x, const char *name) { return x->toolNamed(name); } GMVSpaceContext * C :: space() { if ( ! _space ) { _space = new GMVSpaceContext(gmv_context_get()); } return _space; } gmvsc *gmv_tool_space(C *x) { return x->space(); } void C :: pointerDownScreen(GMVV3 screen) { /* Save pointer down location. */ _pointerDownScreen[0] = screen[0]; _pointerDownScreen[1] = screen[1]; _pointerDownScreen[2] = screen[2]; V3_AOP(_pointerDragScreen, =, screen); /* Save pointer down location in prjection space. */ gmvt_xform_point(gmv_space_xform(gmv_space_screen, gmv_space_projection), 1, &_pointerDownScreen, &_pointerDownProjection); /* Save pointer down location in camera space. */ gmvt_xform_point(gmv_space_xform(gmv_space_screen, gmv_space_camera), 1, &_pointerDownScreen, &_pointerDownCamera); /* Save pointer down location in world space. */ gmvt_xform_point(gmv_space_xform(gmv_space_screen, gmv_space_world), 1, &_pointerDownScreen, &_pointerDownWorld); V3_AOP(_pointerDragProjection, =, _pointerDownProjection); V3_AOP(_pointerDragCamera, =, _pointerDownCamera); V3_AOP(_pointerDragWorld, =, _pointerDownWorld); if ( _drag_z ) { V3_AOP(_pointerDownScreenZ, =, _pointerDownScreen); } } void C :: pointerDragScreen(GMVV3 screen) { /* Save pointer drag location. */ _pointerDragScreen[0] = screen[0]; _pointerDragScreen[1] = screen[1]; _pointerDragScreen[2] = _pointerDragScreen[2]; if ( _drag_z ) { double dy = _pointerDragScreen[1] - _pointerDownScreenZ[1]; double fdy = - dy / (gmv_context_get()->viewport())[3]; _pointerDragScreen[1] = _pointerDownScreenZ[1]; _pointerDragScreen[2] = _pointerDownScreenZ[2] + fdy * 0.5; if ( 0 ) { fprintf(stderr, "dy=%g fdy=%g sz=%g\n", dy, fdy, _pointerDragScreen[2]); } } /* Save pointer drag location in projection space. */ gmvt_xform_point(gmv_space_xform(gmv_space_screen, gmv_space_projection), 1, &_pointerDragScreen, &_pointerDragProjection); /* Save pointer drag location in camera space. */ gmvt_xform_point(gmv_space_xform(gmv_space_screen, gmv_space_camera), 1, &_pointerDragScreen, &_pointerDragCamera); /* Save pointer drag location in world space. */ gmvt_xform_point(gmv_space_xform(gmv_space_screen, gmv_space_world), 1, &_pointerDragScreen, &_pointerDragWorld); /* Save pointer drag deltas. */ V3_OP(_pointerDragDeltaScreen, =, _pointerDragScreen, -, _pointerDownScreen); V3_OP(_pointerDragDeltaProjection, =, _pointerDragProjection, -, _pointerDownProjection); V3_OP(_pointerDragDeltaCamera, =, _pointerDragCamera, -, _pointerDownCamera); V3_OP(_pointerDragDeltaWorld, =, _pointerDragWorld, -, _pointerDownWorld); if ( 0 && cameraMode() ) { // fprintf(stderr, "deltaWorld %g %g %g\n", V3_LIST(_pointerDragWorld)); fprintf(stderr, "deltaCamera %g %g %g\n", V3_LIST(_pointerDragCamera)); } } int C :: keyDown(int key) { int result = 0; key &= 0xff; if ( ! _keyDown[key] ) { ++ _keyDown[key]; ++ _keysDown; // fprintf(stderr, "KeyDown(%x)\n", key); do { /* Current tool gets key events first. */ if ( _tool && (result = _tool->keyDown(key)) ) break; /* Handle useful stuff. */ if ( key == KEY_X_AXIS ) { _allowAxies ^= 1 << 0; result = 1; } if ( key == KEY_Y_AXIS ) { _allowAxies ^= 1 << 1; result = 1; } if ( key == KEY_Z_AXIS ) { _allowAxies ^= 1 << 2; result = 1; } if ( key == KEY_CAMERA ) { _cameraToggle = ! _cameraToggle; result = 1; fprintf(stderr, "Current tool: %s\n", _tool->description()); } for ( _tools_t::iterator i = _tools.begin(); i != _tools.end(); ++ i ) { if ( (*i) != _tool && (result |= (*i)->keyDown(key)) ) break; } } while ( 0 ); } return result; } int C :: keyUp(int key) { int result = 0; key &= 0xff; if ( _keyDown[key] ) { // fprintf(stderr, "KeyUp(%x)\n", key); /* Current tool get key press event first. */ do { if ( _tool && (result = _tool->keyUp(key)) ) break; for ( _tools_t::iterator i = _tools.begin(); i != _tools.end(); ++ i ) { if ( (*i) != _tool && (result |= (*i)->keyUp(key)) ) break; } } while ( 0 ); -- _keyDown[key]; -- _keysDown; } return result; } int C :: pointerDown(GMVV3 screen, int but, int count) { int result = 0; but &= 0x3; if ( ! _pointerDown[but] ) { _pointerDown[but] = count; ++ _pointersDown; /* Doing Z dragging? */ _drag_z = but == BUTTON_Z_DRAG; if ( _pointersDown == 1 ) { assert(_space == 0); _space = new GMVSpaceContext(gmv_context_get()); gmv_space_begin(_space); /* Save pointer down location. */ _pointerDownScreen[0] = screen[0]; _pointerDownScreen[1] = screen[1]; _pointerDownScreen[2] = _pointerDownScreen[2]; pointerDownScreen(_pointerDownScreen); if ( _tool ) { _cameraMode = _tool->allowCameraMode() && (_cameraToggle || keyIsDown(KEY_CAMERA)); result = _tool->pointerDown(screen, but, count); } gmv_space_end(); } else { if ( _drag_z ) { V3_AOP(_pointerDownScreenZ, =, _pointerDragScreen); } result = this->pointerDrag(screen); } } return result; } int C :: pointerDrag(GMVV3 screen) { int result = 0; if ( _pointersDown ) { assert(_space); gmv_space_begin(_space); /* Save pointer drag location. */ _pointerDragScreen[0] = screen[0]; _pointerDragScreen[1] = screen[1]; _pointerDragScreen[2] = _pointerDownScreen[2]; pointerDragScreen(_pointerDragScreen); if ( _tool ) { result = _tool->pointerDrag(screen); } gmv_space_end(); } return result; } int C :: pointerUp(GMVV3 screen, int but) { int result = 0; but &= 0x3; if ( _pointerDown[but] ) { assert(_space); gmv_space_begin(_space); /* Update as drag. */ _pointerDragScreen[0] = screen[0]; _pointerDragScreen[1] = screen[1]; _pointerDragScreen[2] = _pointerDownScreen[2]; pointerDragScreen(_pointerDragScreen); if ( _tool ) { if ( _pointersDown == 1 ) { result = _tool->pointerUp(screen, but); } else { result = _tool->pointerDrag(screen); } } gmv_space_end(); /* Finished Z dragging? */ if ( but == BUTTON_Z_DRAG ) { _drag_z = 0; } /* All buttons up? */ if ( _pointersDown == 1 ) { selectionRestore(); assert(_space); // delete _space; _space = 0; /* Now set the requested tool. */ if ( _pointersDown == 0 && _tool_set ) { tool(_tool_set); _tool_set = 0; } } _pointerDown[but] = 0; -- _pointersDown; } return result; } GMVSelection * C :: selection() { // fprintf(stderr, "selection()\n"); if ( _cameraMode ) { if ( ! _cameraSel ) { _cameraSel = new GMVSelection(); _cameraSel->select(gmvo_camera()); // fprintf(stderr, "CAMERA TOOL\n"); } return _cameraSel; } else { return _retained->selection(); } } void C :: selectionRestore() { _cameraMode = 0; delete _cameraSel; _cameraSel = 0; delete _space; } #undef C /************************************************************************/ #define C GMVTool C :: C () : _cntx(0) { } C :: ~C () { } gmv_tool_context *gmv_tool_cntx(C *x) { return x->cntx(); } const char * C :: name() { return "UNKNOWN"; } const char *gmv_tool_name(C *x) { return x->name(); } const char * C :: description() { return this->name(); } const char *gmv_tool_description(C *x) { return x->description(); } void C :: activate() { } void gmv_tool_activate(C *x) { x->activate(); } void C :: deactivate() { } void gmv_tool_deactivate(C *x) { x->deactivate(); } int C :: keyDown(int key) { return 0; } int gmv_tool_key_down(C *x, int key) { return x->keyDown(key); } int C :: keyUp(int key) { return 0; } int gmv_tool_key_up(C *x, int key) { return x->keyUp(key); } int C :: pointerDown(GMVV3 screen, int button, int count) { return 0; } int gmv_tool_pointer_down(C *x, GMVV3 screen, int button, int count) { return x->pointerDown(screen, button, count); } int C :: pointerDrag(GMVV3 screen) { return 0; } int gmv_tool_pointer_drag(C *x, GMVV3 screen) { return x->pointerDrag(screen); } int C :: pointerUp(GMVV3 screen, int button) { return 0; } int gmv_tool_pointer_up(C *x, GMVV3 screen, int button) { return x->pointerUp(screen, button); } /************************************************************************/ #undef C gmv0.9/src/gmv/tool.hh0100744000175200017560000000714207270666344015240 0ustar stephensstepheng#ifndef _gmv_TOOL_HH #define _gmv_TOOL_HH #include "gmv.h" #include "selection.hh" #include #include #include "context.hh" class GMVToolContext; class GMVTool { protected: friend class GMVToolContext; GMVToolContext *_cntx; public: GMVTool(); virtual ~GMVTool(); virtual const char *name(); virtual const char *description(); virtual GMVToolContext *cntx() { return _cntx; } virtual void activate(); virtual void deactivate(); virtual int allowCameraMode() { return 0; } virtual int keyDown(int key); virtual int keyUp(int key); virtual int pointerDown(GMVV3 screen, int button, int count); virtual int pointerDrag(GMVV3 screen); virtual int pointerUp(GMVV3 screen, int button); }; class GMVToolContext { protected: /* Key state. */ int _keysDown; char _keyDown[256]; int _pointersDown; char _pointerDown[8]; char _drag_z; GMVV3 _pointerDownScreenZ; GMVV3 _pointerDownScreen; GMVV3 _pointerDownProjection; GMVV3 _pointerDownCamera; GMVV3 _pointerDownWorld; GMVV3 _pointerDragScreen; GMVV3 _pointerDragProjection; GMVV3 _pointerDragCamera; GMVV3 _pointerDragWorld; GMVV3 _pointerDragDeltaScreen; GMVV3 _pointerDragDeltaProjection; GMVV3 _pointerDragDeltaCamera; GMVV3 _pointerDragDeltaWorld; /* Registered tools. */ typedef vector _tools_t; _tools_t _tools; /* Current tool. */ GMVTool *_tool; GMVTool *_tool_set; stack _tool_stack; /* Current context. */ GMVContextRef _retained; /* Space */ GMVSpaceContext *_space; GMVSelection *_cameraSel; bool _cameraToggle; bool _cameraMode; /* Constrants. */ int _allowAxies; public: GMVToolContext(); virtual ~GMVToolContext(); /* Tool mgmt. */ void addTool(GMVTool *tool); void toolPush(GMVTool *tool); void toolPop(); GMVTool *tool() { return _tool; } GMVTool *toolNamed(const char *name); void tool(GMVTool *tool); /* Input device state. */ int keysDown() { return _keysDown; } int keyIsDown(int key) { return _keyDown[key & 0xff]; } int pointersDown() { return _pointersDown; } int pointerIsDown(int button) { return _pointerDown[button & 0x3]; } void pointerDownScreen(GMVV3 x); void pointerDragScreen(GMVV3 x); int allowAxies() { return _allowAxies; } bool cameraModeEnabled() { return _cameraToggle; } bool cameraMode() { return _cameraMode; } GMVSelection *selection(); void selectionRestore(); GMVSpaceContext *space(); GMVV3 *pointerDownScreen() { return &_pointerDownScreen; } GMVV3 *pointerDownProjection() { return &_pointerDownProjection; } GMVV3 *pointerDownCamera() { return &_pointerDownCamera; } GMVV3 *pointerDownWorld() { return &_pointerDownWorld; } GMVV3 *pointerDragScreen() { return &_pointerDragScreen; } GMVV3 *pointerDragProjection() { return &_pointerDragProjection; } GMVV3 *pointerDragCamera() { return &_pointerDragCamera; } GMVV3 *pointerDragWorld() { return &_pointerDragWorld; } GMVV3 *pointerDragDeltaScreen() { return &_pointerDragDeltaScreen; } GMVV3 *pointerDragDeltaProjection() { return &_pointerDragDeltaProjection; } GMVV3 *pointerDragDeltaCamera() { return &_pointerDragDeltaCamera; } GMVV3 *pointerDragDeltaWorld() { return &_pointerDragDeltaWorld; } /* Retained context. */ GMVContext *contextRetained() { return _retained; } void contextRetained(GMVContext *c) { _retained = c; } /* Event input. */ virtual int keyDown(int key); virtual int keyUp(int key); virtual int pointerDown(GMVV3 screen, int button, int count); virtual int pointerDrag(GMVV3 screen); virtual int pointerUp(GMVV3 screen, int button); }; #endif gmv0.9/src/gmv/tools.cc0100744000175200017560000004054207267705521015407 0ustar stephensstepheng #include "tools.hh" #include "xform.hh" #include "glwin/vk.h" /* VK_SHIFT */ #include "keys.h" #include /* M_PI, atan2() */ #include "vmop.h" /**********************************************************************/ void GMV2_constrain(GMVS *v, double angle) { double va; double vl; angle *= M_PI / 180.0; if ( v[0] == 0 && v[1] == 0 ) return; vl = V2_NORM(v); va = atan2(v[0], v[1]); va = (int) ((va - angle * 0.5) / angle); va *= angle; v[0] = vl * cos(angle); v[1] = vl * sin(angle); } /**********************************************************************/ #define C GMVToolSelect C :: C () { } const char * C :: name() { return "select"; } void C :: pickRender() { gmv_pick_hits_empty(); gmv_pick_begin(); gmv_frame_begin(); gmv_world_begin(); gmv_render_retained_context(_cntx->contextRetained()); gmv_world_end(); gmv_frame_end(); gmv_pick_end(); } #define KEY_DOWN(X) _cntx->keyIsDown(X) int C :: keyDown(int key) { int result = 0; return result; } int C :: keyUp(int key) { int result = 0; return result; } int C :: pointerDown(GMVV3 screen, int button, int count) { int result = 0; gmv_pick_hit *p; //if ( button != 0 ) // return result; /* Set pick region. */ gmv_pick((int) (screen[0] - 2), (int) (screen[1] - 2), (int) (screen[0] + 2), (int) (screen[1] + 2) ); /* Render for picking. */ pickRender(); /* Get first pick location. */ p = gmv_pick_hits_count() ? gmv_pick_hits_begin() : 0; _down_hit = p != 0; // if ( p ) fprintf(stderr, "%p %g %g\n", p->obj, p->z[0], p->z[1]); { gmv_selection *sel = _cntx->selection(); if ( p ) { /* Set current Z to picked Z. */ GMVV3 S; S[0] = screen[0]; S[1] = screen[1]; S[2] = p->bound[4]; _cntx->pointerDownScreen(S); } if ( _cntx->cameraMode() ) { /* No select drag if in camera mode. */ _select_drag = 0; result = 1; } else { if ( KEY_DOWN(VK_SHIFT) ) { // fprintf(stderr, "toggle/rotate selection\n"); if ( p ) { // If there is more than one object in the pick list. // If an object in the pick list is selected: // deselect it and select the object behind it. // Otherwise toggle the top object. if ( p->next ) { gmv_pick_hit *h; for ( h = p; h; h = h->next ) { if ( gmv_selection_selected(sel, h->obj) ) { gmv_selection_clear(sel); if ( h->next ) { p = h->next; } break; } } } if ( p ) { gmv_selection_toggle(sel, p->obj); } result = 1; } } else { if ( p ) { if ( ! gmv_selection_selected(sel, p->obj) ) { gmv_selection_clear(sel); gmv_selection_select(sel, p->obj); result = 1; } // fprintf(stderr, "select object %p\n", p->obj); } else { gmv_selection_clear(sel); result = 1; } } _select_drag = p == 0; } } return result; } int C :: pointerDrag(GMVV3 screen) { int result = 0; return result; } int C :: pointerUp(GMVV3 screen, int button) { int result = 0; //if ( button != 0 ) // return result; if ( _select_drag ) { gmv_pick_hit *p; if ( (*_cntx->pointerDownScreen())[0] != screen[0] && (*_cntx->pointerDownScreen())[1] != screen[1] ) { gmv_pick( (int)((*_cntx->pointerDownScreen())[0]), (int)((*_cntx->pointerDownScreen())[1]), (int)(screen[0]), (int)(screen[1])); pickRender(); p = gmv_pick_hits_count() ? gmv_pick_hits_begin() : 0; } else { p = 0; } // if ( p ) fprintf(stderr, "%p %g %g\n", p->obj, p->z[0], p->z[1]); { gmv_selection *sel = _cntx->selection(); if ( KEY_DOWN(VK_SHIFT) ) { while ( p ) { gmv_selection_toggle(sel, p->obj); p = p->next; result = 1; } } else { gmv_selection_clear(sel); while ( p ) { gmv_selection_select(sel, p->obj); p = p->next; result = 1; } } } } else { result = 1; } return result; } #undef C /**********************************************************************/ #define C GMVToolXlate #define SC GMVToolSelect C :: C () { _drag_xlate = _drag_xlate_inited = 0; } const char * C :: name() { return "move"; } const char * C :: description() { return _cntx->cameraModeEnabled() ? "move camera" : "move"; } int C :: keyDown(int key) { int result = 0; if ( key == KEY_MOVE ) { _cntx->tool(this); result = 1; } return result; } int C :: keyUp(int key) { int result = 0; return result; } int C :: pointerDown(GMVV3 screen, int button, int count) { int result = 0; result = SC::pointerDown(screen, button, count); //if ( button != 0 ) // return result; if ( _down_hit || _cntx->cameraMode() ) { _drag_xlate = 1; } else { _drag_xlate = 0; } _drag_xlate_inited = 0; return result; } typedef struct xlate_data { gmvt *xlate; gmvt *composite; } xlate_data; int C :: pointerDrag(GMVV3 screen) { int result = 0; if ( _drag_xlate ) { gmv_selection *sel = _cntx->selection(); /* Set up translation transform for each selected object. */ gmvs_iterator si; /* Constrain motion to world axies. */ GMVV3 delta; V3_AOP(delta, =, *(_cntx->pointerDragDeltaWorld())); if ( ! (_cntx->allowAxies() & (1 << 0)) ) { delta[0] = 0; } if ( ! (_cntx->allowAxies() & (1 << 1)) ) { delta[1] = 0; } if ( ! (_cntx->allowAxies() & (1 << 2)) ) { delta[2] = 0; } for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); xlate_data *data; if ( ! _drag_xlate_inited ) { data = new xlate_data; data->xlate = gmvt_matrix_new(); data->composite = gmvt_compose(gmvo_transform(obj), data->xlate); gmvs_hook_set(sel, obj, data); // fprintf(stderr, "drag object %p\n", obj); } else { data = (xlate_data*) gmvs_hook(sel, obj); } /* Translate each object. */ { GMVV3 xlate_parent; /* Get the translation in object parent's space. ** i.e. before object's transform. */ gmvt_xform_vector( gmv_space_xform(gmv_space_world, gmvo_parent(obj)), 1, &delta, &xlate_parent ); if ( _cntx->cameraMode() ) { V3_AUOP(xlate_parent, =, -, xlate_parent); } gmvt_translate(data->xlate, &xlate_parent); gmvo_transform_set(obj, data->composite); if ( 0 && _cntx->cameraMode() ) { fprintf(stderr, "deltaParent %g %g %g\n", V3_LIST(xlate_parent)); M44_PRINT(stderr, "CM = ", data->composite->matrix1()); } } result = 1; } _drag_xlate_inited = 1; } else { result = SC::pointerDrag(screen); } return result; } int C :: pointerUp(GMVV3 screen, int button) { int result = 0; //if ( button != 0 ) // return result; if ( _drag_xlate ) { _drag_xlate = 0; /* Simplify each object transform. */ if ( _drag_xlate_inited ) { gmv_selection *sel = _cntx->selection(); gmvs_iterator si; /* Do last translation. */ result = pointerDrag(screen); for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); xlate_data *data = (xlate_data*) gmvs_hook(sel, obj); gmvo_transform_set(obj, gmvt_simplify(data->composite)); delete data; result = 1; } /* Destroy space transforms cache. */ gmv_space_cache_clear(gmv_space_get()); _drag_xlate_inited = 0; } } else { result = SC::pointerUp(screen, button); } return result; } #undef C #undef SC /**********************************************************************/ #define C GMVToolRotate #define SC GMVTool C :: C () { _drag_rotate = _drag_rotate_z = _drag_rotate_inited = 0; } const char * C :: name() { return "rotate"; } const char * C :: description() { return _cntx->cameraModeEnabled() ? "rotate camera" : "rotate"; } int C :: keyDown(int key) { int result = 0; if ( key == KEY_ROTATE ) { _cntx->tool(this); result = 1; } else if ( key == VK_CONTROL ) { _cntx->toolPush(this); result = 1; } return result; } int C :: keyUp(int key) { int result = 0; if ( key == VK_CONTROL ) { _cntx->toolPop(); result = 1; } return result; } int C :: pointerDown(GMVV3 screen, int button, int count) { int result = 0; //if ( button != 0 ) // return result; _drag_rotate = 1; _drag_rotate_z = V2_DOT(*_cntx->pointerDownProjection(), *_cntx->pointerDownProjection()) > .66 * .66; _drag_rotate_inited = 0; // fprintf(stderr, "projection down %g %g %g\n", V3_LIST(*_cntx->pointerDownProjection())); return result; } typedef struct rotate_data { GMVTransformRef rotatex; GMVTransformRef rotatey; GMVTransformRef rotatez; GMVTransformRef composite; GMVTransformRef camera_to_object; } rotate_data; int C :: pointerDrag(GMVV3 screen) { int result = 0; if ( _drag_rotate ) { gmv_selection *sel = _cntx->selection(); /* Set up translation transform for each selected object. */ gmvs_iterator si; for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); rotate_data *data; if ( ! _drag_rotate_inited ) { data = new rotate_data; data->rotatex = gmvt_matrix_new(); data->rotatey = gmvt_matrix_new(); data->rotatez = gmvt_matrix_new(); data->camera_to_object = gmv_space_xform(gmv_space_camera, obj); data->composite = gmvt_compose(data->rotatez, data->rotatex); data->composite = gmvt_compose(data->composite, data->rotatey); data->composite = gmvt_compose(data->composite, gmvo_transform(obj)); gmvs_hook_set(sel, obj, data); } else { data = (rotate_data*) gmvs_hook(sel, obj); } /* Rotate each object. */ { GMVV3 axis[3]; GMVS angle[3]; if ( _drag_rotate_z ) { angle[0] = 0; angle[1] = 0; angle[2] = atan2((*_cntx->pointerDragProjection())[0], (*_cntx->pointerDragProjection())[1]) - atan2((*_cntx->pointerDownProjection())[0], (*_cntx->pointerDownProjection())[1]); angle[2] *= 180.0 / M_PI; } else { /* Use deltas in NDC as axis angles. */ angle[0] = (*_cntx->pointerDragDeltaProjection())[1] * 180.0; angle[1] = (*_cntx->pointerDragDeltaProjection())[0] * -180.0; angle[2] = 0; } /* ** Get rotation axis in object space. ** i.e. after object's original transform. */ V3_AOP_S3(axis[0], =, 1, 0, 0); V3_AOP_S3(axis[1], =, 0, 1, 0); V3_AOP_S3(axis[2], =, 0, 0, 1); gmvt_xform_vector( data->camera_to_object, 3, axis, axis ); if ( _cntx->cameraMode() ) { angle[0] *= 0.2; angle[1] *= 0.2; angle[2] *= -1.0; } gmvt_rotate(data->rotatex, angle[0], &axis[0]); gmvt_rotate(data->rotatey, angle[1], &axis[1]); gmvt_rotate(data->rotatez, angle[2], &axis[2]); gmvo_transform_set(obj, data->composite); } } _drag_rotate_inited = 1; result = 1; } return result; } int C :: pointerUp(GMVV3 screen, int button) { int result = 0; //if ( button != 0 ) // return result; if ( _drag_rotate ) { _drag_rotate = 0; /* Simplify each object transform. */ if ( _drag_rotate_inited ) { gmv_selection *sel = _cntx->selection(); gmvs_iterator si; /* Do last rotation. */ pointerDrag(screen); /* Simplify composite transform and save. */ for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); rotate_data *data = (rotate_data*) gmvs_hook(sel, obj); gmvo_transform_set(obj, gmvt_simplify(data->composite)); delete data; } /* Destroy space transforms cache. */ gmv_space_cache_clear(gmv_space_get()); _drag_rotate_inited = 0; } result = 1; } return result; } #undef C /**********************************************************************/ #define C GMVToolScale #define SC GMVTool C :: C () { _drag_scale = _drag_scale_inited = 0; } const char * C :: name() { return "scale"; } const char * C :: description() { return _cntx->cameraModeEnabled() ? "scale camera" : "scale"; } int C :: keyDown(int key) { int result = 0; if ( key == KEY_SCALE ) { _cntx->tool(this); result = 1; } return result; } int C :: keyUp(int key) { int result = 0; return result; } int C :: pointerDown(GMVV3 screen, int button, int count) { int result = 0; //if ( button != 0 ) // return result; _drag_scale = 1; _drag_scale_inited = 0; // fprintf(stderr, "projection down %g %g %g\n", V3_LIST(*_cntx->pointerDownProjection())); return result; } typedef struct scale_data { GMVTransformRef scale; GMVTransformRef composite; GMVTransformRef camera_to_object; } scale_data; int C :: pointerDrag(GMVV3 screen) { int result = 0; if ( _drag_scale ) { gmv_selection *sel = _cntx->selection(); /* Set up translation transform for each selected object. */ gmvs_iterator si; for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); scale_data *data; if ( ! _drag_scale_inited ) { data = new scale_data; data->scale = gmvt_matrix_new(); data->camera_to_object = gmv_space_xform(gmv_space_camera, obj); data->composite = gmvt_compose(data->scale, gmvo_transform(obj)); gmvs_hook_set(sel, obj, data); } else { data = (scale_data*) gmvs_hook(sel, obj); } /* Scale each object. */ { GMVS scale[3]; double down_dist = V2_NORM((*_cntx->pointerDownProjection())); double drag_dist = V2_NORM((*_cntx->pointerDragProjection())); scale[0] = down_dist == 0 || drag_dist == 0 ? 1 : drag_dist / down_dist; scale[1] = scale[2] = scale[0]; gmvt_scale(data->scale, scale[0], scale[1], scale[2]); gmvo_transform_set(obj, data->composite); } } _drag_scale_inited = 1; result = 1; } return result; } int C :: pointerUp(GMVV3 screen, int button) { int result = 0; //if ( button != 0 ) // return result; if ( _drag_scale ) { _drag_scale = 0; /* Simplify each object transform. */ if ( _drag_scale_inited ) { gmv_selection *sel = _cntx->selection(); gmvs_iterator si; /* Do last rotation. */ pointerDrag(screen); /* Simplify composite transform and save. */ for ( si = gmvs_objects(sel); si != gmvs_objects_end(sel); si = gmvs_iterator_next(si) ) { gmvo *obj = gmvs_iterator_object(si); scale_data *data = (scale_data*) gmvs_hook(sel, obj); gmvo_transform_set(obj, gmvt_simplify(data->composite)); delete data; } /* Destroy space transforms cache. */ gmv_space_cache_clear(gmv_space_get()); _drag_scale_inited = 0; } result = 1; } return result; } #undef C #undef SC /**********************************************************************/ #define C GMVToolCrv #define SC GMVTool #include "crv.hh" C :: C () { _drag_crv = _drag_crv_inited = 0; _crv = 0; } const char * C :: name() { return "curve"; } void C :: activate() { } void C :: deactivate() { if ( _crv ) { _crv = 0; } } int C :: keyDown(int key) { int result = 0; if ( key == KEY_CRV_CREATE ) { _cntx->tool(this); result = 1; } return result; } int C :: keyUp(int key) { int result = 0; return result; } int C :: pointerDown(GMVV3 screen, int button, int count) { int result = 0; if ( ! _crv ) { GMVContext *cr = _cntx->contextRetained(); /* Create new curve object. */ _crv = new GMVObjectCrv(cr); /* Add it to root object. */ cr->addObject(_crv); /* Select it so handles are displayed. */ gmv_selection_clear(gmv_selection_get()); gmv_selection_select(gmv_selection_get(), _crv); } /* Now add point to curve. */ { GMVV3 P; memcpy(&P, _cntx->pointerDragWorld(), sizeof(P)); _pi = _crv->count(); _crv->addPoint(&P); } result = 1; return result; } int C :: pointerDrag(GMVV3 screen) { int result = 0; if ( _crv ) { /* Now add point to curve. */ { GMVV3 P; memcpy(&P, _cntx->pointerDragWorld(), sizeof(P)); _crv->point(_pi, &P); } result = 1; } return result; } int C :: pointerUp(GMVV3 screen, int button) { int result = 0; if ( _crv ) { pointerDrag(screen); result = 1; } return result; } /**********************************************************************/ gmv0.9/src/gmv/tools.hh0100744000175200017560000000412307267704466015423 0ustar stephensstepheng#ifndef _gmv_TOOLS_HH #define _gmv_TOOLS_HH #include "tool.hh" class GMVToolSelect : public GMVTool { protected: bool _down_hit; bool _select_drag; void pickRender(); public: GMVToolSelect(); const char *name(); int keyDown(int key); int keyUp(int key); int pointerDown(GMVV3 screen, int button, int count); int pointerDrag(GMVV3 screen); int pointerUp(GMVV3 screen, int button); }; class GMVToolXlate : public GMVToolSelect { protected: bool _drag_xlate; bool _drag_xlate_inited; public: GMVToolXlate(); const char *name(); const char *description(); int allowCameraMode() { return 1; } int keyDown(int key); int keyUp(int key); int pointerDown(GMVV3 screen, int button, int count); int pointerDrag(GMVV3 screen); int pointerUp(GMVV3 screen, int button); }; class GMVToolRotate : public GMVTool { protected: bool _drag_rotate; bool _drag_rotate_z; bool _drag_rotate_inited; public: GMVToolRotate(); const char *name(); const char *description(); int allowCameraMode() { return 1; } int keyDown(int key); int keyUp(int key); int pointerDown(GMVV3 screen, int button, int count); int pointerDrag(GMVV3 screen); int pointerUp(GMVV3 screen, int button); }; class GMVToolScale : public GMVTool { protected: bool _drag_scale; bool _drag_scale_inited; public: GMVToolScale(); const char *name(); const char *description(); int allowCameraMode() { return 0; } int keyDown(int key); int keyUp(int key); int pointerDown(GMVV3 screen, int button, int count); int pointerDrag(GMVV3 screen); int pointerUp(GMVV3 screen, int button); }; // class GMVObjectCrvRef; class GMVToolCrv : public GMVTool { protected: bool _drag_crv; bool _drag_crv_inited; GMVObjectCrvRef _crv; int _pi; public: GMVToolCrv(); const char *name(); int allowCameraMode() { return 0; } void activate(); void deactivate(); int keyDown(int key); int keyUp(int key); int pointerDown(GMVV3 screen, int button, int count); int pointerDrag(GMVV3 screen); int pointerUp(GMVV3 screen, int button); }; #endif gmv0.9/src/gmv/gmv.swig0100744000175200017560000002256107271021036015410 0ustar stephensstepheng/* -*- C -*- */ #ifndef _gmv_gmv_swig #define _gmv_gmv_swig /* $Id: gmv.swig,v 1.7 2001/04/23 12:37:50 stephens Exp $ */ #ifdef SWIG %module gmv %{ #include "gmv/gmv.h" /* GMAN */ #include "gman/gmantcl.h" %} %extern "gman/gman.swig" %include "gman/typemap.swig" %include "gman/check.swig" #else #include "glwin/glwin.h" /* glwin_window */ #ifdef GMV_DLL #ifdef GMV_DLL_BUILDING #define GMV_EXTERN __declspec(dllexport) #else #define GMV_EXTERN __declspec(dllimport) #endif #endif #endif #ifndef GMV_EXTERN #define GMV_EXTERN extern #endif #ifndef GMV_EXTERN_DATA #define GMV_EXTERN_DATA extern #endif #ifdef __cplusplus #define _GMV_CLASS class #else #define _GMV_CLASS struct #endif /***************************************************************/ /* Values. */ #ifdef SWIG typedef double GMANValue; #endif typedef GMANValue GMVS; /*@ Scalar */ typedef GMVS GMVValue; /*@ alias. */ typedef GMVS GMVV3[3]; /*@ 3D coordinate. */ typedef GMVS GMVV4[4]; /*@ 3D homogenous coordinate. */ typedef GMVV4 GMVM44[4]; /*@ 3D homogenous transform matrix */ typedef GMVS GMVB3[6]; /*@ minx, maxx, miny, maxy, minz, maxz */ /***************************************************************/ /* Classes. */ typedef _GMV_CLASS GMVObject gmvo; typedef void *gmvo_iterator; _GMV_CLASS GMVTransform; typedef _GMV_CLASS GMVTransform gmvt; _GMV_CLASS GMVContext; typedef _GMV_CLASS GMVContext gmv_context; _GMV_CLASS GMVToolContext; typedef _GMV_CLASS GMVToolContext gmv_tool_context; _GMV_CLASS GMVTool; typedef _GMV_CLASS GMVTool gmv_tool; typedef _GMV_CLASS GMVSpaceContext gmvsc; typedef void *gmv_space; _GMV_CLASS GMVSelection; typedef _GMV_CLASS GMVSelection gmv_selection; typedef void *gmvs_iterator; /***************************************************************/ /* Context. */ GMV_EXTERN gmv_context *gmv_context_retained(const char *name); GMV_EXTERN gmv_context *gmv_context_ri(void *ri_context); GMV_EXTERN gmv_context *gmv_context_gl(void *gl_context); GMV_EXTERN gmv_context *gmv_context_window(); GMV_EXTERN gmv_context *gmv_context_get(); GMV_EXTERN void gmv_context_begin(gmv_context *cntx); GMV_EXTERN void gmv_context_end(); GMV_EXTERN void gmv_context_destroy(gmv_context *cntx); GMV_EXTERN gmv_context *gmv_context_ref(gmv_context *cntx); GMV_EXTERN void gmv_context_deref(gmv_context *cntx); /***************************************************************/ /* Windows. */ GMV_EXTERN glwin_window *gmv_window(gmv_context *retained); GMV_EXTERN gmv_context *gmv_window_retained(glwin_window *win); /***************************************************************/ /* Frame Block. */ GMV_EXTERN void gmv_frame_begin(); GMV_EXTERN void gmv_frame_end(); /***************************************************************/ /* Viewport. */ GMV_EXTERN void gmv_viewport(int x, int y, int w, int h); /***************************************************************/ /* Camera. */ GMV_EXTERN void gmv_lookat(GMAN from, GMAN to, GMAN up); GMV_EXTERN void gmv_fov(GMAN fov); GMV_EXTERN void gmv_clipz(GMAN near, GMAN far); /***************************************************************/ /* World Block. */ GMV_EXTERN void gmv_world_begin(); GMV_EXTERN void gmv_world_end(); /***************************************************************/ /* Attributes. */ GMV_EXTERN void gmv_attribute_begin(); GMV_EXTERN void gmv_attribute_end(); GMV_EXTERN void gmv_color(GMAN color); /***************************************************************/ /* Transform. */ GMV_EXTERN void gmv_transform_begin(); GMV_EXTERN void gmv_transform_end(); GMV_EXTERN void gmv_transform_identity(); GMV_EXTERN void gmv_transform_set(GMAN transform); GMV_EXTERN void gmv_transform_concat(GMAN transform); /***************************************************************/ /* Visualization. */ GMV_EXTERN void gmv_curve(GMAN c); GMV_EXTERN void gmv_surface(GMAN c); GMV_EXTERN void gmv_area(GMAN c); GMV_EXTERN void gmv_points_begin(); GMV_EXTERN void gmv_point(GMAN x); GMV_EXTERN void gmv_weight(GMAN x); GMV_EXTERN void gmv_points_end(); GMV_EXTERN void gmv_crv(); GMV_EXTERN void gmv_polygon(); /***************************************************************/ /* Named object. */ GMV_EXTERN gmvo *gmv_object_begin(gmvo *obj); GMV_EXTERN void gmv_object_end(); /***************************************************************/ /* Named object. */ GMV_EXTERN const char *gmv_object_def_begin(const char *name); GMV_EXTERN void gmv_object_def_end(); GMV_EXTERN void gmv_object_instance(const char *name); /***************************************************************/ /* Retained. */ GMV_EXTERN void gmv_render_retained_context(gmv_context *cntx); /***************************************************************/ /* Transform. */ GMV_EXTERN gmvt *gmvt_matrix_new(); GMV_EXTERN void gmvt_translate(gmvt *x, const GMVV3 *t); GMV_EXTERN void gmvt_rotate(gmvt *x, GMVS angle, const GMVV3 *axis); GMV_EXTERN void gmvt_scale(gmvt *x, GMVS sx, GMVS sy, GMVS sz); GMV_EXTERN const GMVM44 *gmvt_matrix(gmvt *x); GMV_EXTERN gmvt *gmvt_compose(gmvt *x, gmvt *y); GMV_EXTERN gmvt *gmvt_simplify(gmvt *x); GMV_EXTERN void gmvt_xform_point(gmvt *x, int n, const GMVV3 *input, GMVV3 *output); GMV_EXTERN void gmvt_xform_vector(gmvt *x, int n, const GMVV3 *input, GMVV3 *output); /***************************************************************/ /* Spaces. */ GMV_EXTERN gmvsc *gmv_space_get(); GMV_EXTERN void gmv_space_begin(gmvsc *x); GMV_EXTERN void gmv_space_end(); GMV_EXTERN void gmv_space_cache_clear(gmvsc *x); GMV_EXTERN_DATA gmv_space gmv_space_screen, gmv_space_projection, gmv_space_camera, gmv_space_world; GMV_EXTERN gmvt *gmv_space_xform(gmv_space from, gmv_space to); /***************************************************************/ /* Object. */ GMV_EXTERN const char *gmvo_name(gmvo *obj); GMV_EXTERN void gmvo_name_set(gmvo *obj, const char *name); GMV_EXTERN char *gmvo_path(gmvo *o); GMV_EXTERN gmvo *gmvo_named(const char *name, gmvo *current, gmvo *root); GMV_EXTERN gmvo *gmvo_root(); GMV_EXTERN gmvo *gmvo_parent(gmvo *obj); GMV_EXTERN gmvo_iterator gmvo_children(gmvo *obj); GMV_EXTERN gmvo_iterator gmvo_children_end(gmvo *obj); GMV_EXTERN gmvo_iterator gmvo_iterator_next(gmvo_iterator oi); GMV_EXTERN gmvo *gmvo_iterator_object(gmvo_iterator oi); GMV_EXTERN gmvt *gmvo_transform(gmvo *obj); GMV_EXTERN gmvt *gmvo_transform_set(gmvo *obj, gmvt *t); GMV_EXTERN gmvo *gmvo_camera_new(); GMV_EXTERN gmvo *gmvo_camera(); GMV_EXTERN gmvo *gmvo_camera_set(gmvo *x); GMV_EXTERN void gmvo_xml(gmvo *x); /***************************************************************/ /* Picking. */ #ifdef SWIG %typemap(memberin) GMVB3 { memcpy(&$target, $source, sizeof($target)); } %typemap(memberin) GMVM44 { memcpy(&$target, $source, sizeof($target)); } #endif typedef struct gmv_pick_hit { gmvo *obj; /*@ Object hit. */ GMVB3 bound; /*@ bound of hit in screen space. */ struct gmv_pick_hit *next; /*@ Next item where next->z[0] >= this->z[1]. */ } gmv_pick_hit; GMV_EXTERN void gmv_pick(int x1, int y1, int x2, int y2); GMV_EXTERN void gmv_pick_hits_empty(); GMV_EXTERN void gmv_pick_begin(); GMV_EXTERN void gmv_pick_end(); GMV_EXTERN int gmv_pick_hits_count(); GMV_EXTERN gmv_pick_hit *gmv_pick_hits_begin(); GMV_EXTERN gmv_pick_hit *gmv_pick_hits_end(); GMV_EXTERN const GMVS *gmv_pick_z(); GMV_EXTERN void gmv_pick_z_set(const GMVS *z); /***************************************************************/ /* Selection. */ GMV_EXTERN gmv_selection *gmv_selection_get(void); GMV_EXTERN gmv_selection *gmv_selection_copy(gmv_selection *sel); GMV_EXTERN gmv_selection *gmv_selection_set(gmv_selection *sel); GMV_EXTERN void gmv_selection_select(gmv_selection *sel, gmvo *obj); GMV_EXTERN void gmv_selection_deselect(gmv_selection *sel, gmvo *obj); GMV_EXTERN void gmv_selection_toggle(gmv_selection *sel, gmvo *obj); GMV_EXTERN void gmv_selection_clear(gmv_selection *sel); GMV_EXTERN int gmv_selection_selected(gmv_selection *sel, gmvo *obj); GMV_EXTERN gmvs_iterator gmvs_objects(gmv_selection *sel); GMV_EXTERN gmvs_iterator gmvs_objects_end(gmv_selection *sel); GMV_EXTERN gmvs_iterator gmvs_iterator_next(gmvs_iterator si); GMV_EXTERN gmvo *gmvs_iterator_object(gmvs_iterator si); GMV_EXTERN void *gmvs_hook_set(gmv_selection *sel, gmvo *obj, void *data); GMV_EXTERN void *gmvs_hook(gmv_selection *sel, gmvo *obj); /***************************************************************/ /* Tools. */ GMV_EXTERN gmv_tool_context *gmv_window_tool_context(glwin_window *win); GMV_EXTERN gmv_tool *gmv_tool_named(gmv_tool_context *tools, const char *name); GMV_EXTERN gmvsc *gmv_tool_space(gmv_tool_context *x); GMV_EXTERN gmv_tool_context *gmv_tool_cntx(gmv_tool *x); GMV_EXTERN const char *gmv_tool_name(gmv_tool *x); GMV_EXTERN const char *gmv_tool_description(gmv_tool *x); GMV_EXTERN void gmv_tool_activate(gmv_tool *x); GMV_EXTERN void gmv_tool_deactivate(gmv_tool *x); GMV_EXTERN int gmv_tool_key_down(gmv_tool *x, int key); GMV_EXTERN int gmv_tool_key_up(gmv_tool *x, int key); GMV_EXTERN int gmv_tool_pointer_down(gmv_tool *x, GMVV3 screen, int button, int count); GMV_EXTERN int gmv_tool_pointer_drag(gmv_tool *x, GMVV3 screen); GMV_EXTERN int gmv_tool_pointer_up(gmv_tool *x, GMVV3 screen, int button); /***************************************************************/ /* EOF */ #endif gmv0.9/src/gmv/gmvtcl.c0100744000175200017560000000226407306075227015374 0ustar stephensstepheng/* $Id: gmvtcl.c,v 1.6 2001/06/02 05:33:11 stephens Exp $ */ #include "gmv/gmv.h" #include "tcl.h" #include "tk.h" extern int Tcl_Init(Tcl_Interp *interp); extern int Tk_Init(Tcl_Interp *interp); extern int Gman_Init(Tcl_Interp *interp); extern int Gmv_Init(Tcl_Interp *interp); extern int Glwin_Init(Tcl_Interp *interp); extern int Togl_Init(Tcl_Interp *interp); int Gmv_AppInit(Tcl_Interp *interp) { const char *func = ""; int code = TCL_OK; do { #define TRY2(FUNC,ARGS,MATCH) \ if ( (code = FUNC ARGS) MATCH ) { \ func = #FUNC #ARGS; \ break; \ } #define TRY(FUNC,ARGS) TRY2(FUNC,ARGS,!= TCL_OK) TRY(Tcl_Init,(interp)); TRY(Tk_Init,(interp)) TRY(Gman_Init,(interp)); TRY(Gmv_Init,(interp)); TRY(Togl_Init,(interp)); TRY(Glwin_Init,(interp)); Tcl_CreateCommand(interp, "glwin_tk_options", (Tcl_CmdProc*) glwin_tk_options, 0, 0); #undef TRY2 #undef TRY } while ( 0 ); if ( code != TCL_OK ) { fprintf(stderr, "Gmv_AppInit(): error: func %s: %s\n", func, interp->result); } return code; } int main(int argc, char **argv) { glwin_initmain(&argc, &argv); Tk_Main(argc, argv, Gmv_AppInit); Tk_MainLoop(); return 0; } gmv0.9/src/gmv/#localt.txt#0100644000175200017560000000072407264171504016055 0ustar stephensstepheng Localized transform. Imagine a transform M(S) that is specified in a space S. We want to apply M(S) to the context of space T. M(T,S) is the transform from space T to space S. M(S,T) is the inverse of M(T,S). space W is the world space. if M(S,W) transforms from space S to world space: it follows that: M(S,W) . M(W,S) = I M(W,S) . M(S) . M(S,W) = M(W); /* xforms from W to S, applies M(S), xform from S to W. */ M(T,W) . M(W,S) . M(S) . M(S,W) . M(W,T) /* gmv0.9/src/gmv/crv.cc0100644000175200017560000001007207271010013015007 0ustar stephensstepheng #include "crv.hh" #include "context.hh" #include #include "vmop.h" #include #define C GMVObjectCrv #define SC GMVObject extern "C" void break_me() { } C :: C (GMVContext *cntx) : SC(cntx) { _crv = gman_crv_new(gman_x(0)); gman_crv_degree_set(_crv, 3); } C :: ~C () { } int C :: addPoint(const GMVV3 *p) { int i = count(); // fprintf(stderr, "addPoint(%d)\n", i); // if ( i == 6 ) break_me(); /* Add control point. */ _point(i, p); /* Add a new vertex control handle. */ assert(i == _hv.size()); { GMVObjectCrvHnd *h = new GMVObjectCrvHnd(this, i); _hv.push_back(h); addChild(h); } /* Cause handle transform to be set. */ _updateHnd(i); return i; } void C :: _point(int i, const GMVV3 *p) { gman_crv_point_set(_crv, i, 3, (const GMANValue*) p); } void C :: _w(int i, GMVS w) { gman_crv_weight_set(_crv, i, w); } void C :: _updateHnd(int i) { const GMANValue *p = gman_crv_point(_crv, i); GMANValue w = gman_crv_weight(_crv, i); /* Modify handle's transform. */ GMVMatrixTransform *x = new GMVMatrixTransform(); // xsfprintf(stderr, "w[%d] = %g\n", i, w); x->scale(w, w, w); { GMVMatrixTransform t; t.translate(p[0], p[1], p[2]); x->concat(&t); } _hv[i]->transform(x); } void C :: point(int i, const GMVV3 *p) { /* Set curve control point. */ _point(i, p); _updateHnd(i); } void C :: weight(int i, GMVS w) { /* Set curve control point. */ _w(i, w); _updateHnd(i); } static gman_render_options ropts = { 1, /* primDim */ 3, /* projectDim */ 0, /* pointIndex */ -1, /* colorIndex */ -1, /* alphaIndex */ -1 /* normalIndex */ }; void C :: renderSelf(GMVContext *cntx) { int nv; SC::renderSelf(cntx); /* Show control polygon, but dont pick it. */ if ( gman_crv_mode(_crv) == GMAN_CRV_POLYGON ) { if ( cntx->picking() ) { cntx->pickListBegin(); cntx->pickListSet(0); } cntx->polyline(gman_crv_np(_crv), (const GMVS *) gman_crv_point(_crv, 0), 4, 0, &ropts); if ( cntx->picking() ) { cntx->pickListEnd(); } } if ( (nv = gman_crv_np(_crv)) > 1 ) { nv = 8 * (nv - 1); GMVV3 *vp = (GMVV3*) alloca(sizeof(vp[0]) * nv); for ( int i = 0; i < nv; ++ i ) { GMVS u = (GMVS) i / (GMVS) (nv - 1); // break_me(); const GMANValue *v = gman_point(_crv, 1, &u); vp[i][0] = v[0]; vp[i][1] = v[1]; vp[i][2] = v[2]; } cntx->polyline(nv, (const GMVS *) vp, sizeof(vp[0])/sizeof(GMVS), 0, &ropts); } } #undef C #undef SC /**************************************************************************************/ #define C GMVObjectCrvHnd #define SC GMVObject C :: C (GMVObjectCrv *crv, int i) : SC(0), _crv(crv), _i(i) { } C :: ~C() { } void C :: transformChanged() { /* Transform 0 to _crv space and set */ GMVV3 o = { 0, 0, 0 }; GMVV3 s = { 1, 0, 0 }; gmvt_xform_point(this->transform(), 1, &o, &o); gmvt_xform_point(this->transform(), 1, &s, &s); // fprintf(stderr, "p[%d] = %g %g %g\n", _i, o[0], o[1], o[2]); _crv->_point(_i, &o); V3_AOP(s, -=, o); _crv->_w(_i, V3_NORM(s)); } void C :: renderTransform(GMVContext *cntx) { /* Only render translation component of transform. */ GMVV3 o = { 0, 0, 0 }; gmvt_xform_point(this->transform(), 1, &o, &o); GMVM44 M = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { o[0], o[1], o[2], 1 } }; cntx->transformConcat((const GMVS*) M); } void C :: renderSelf(GMVContext *cntx) { SC::renderSelf(cntx); { #define S .05 GMVV3 v[4]; int i; for ( i = 0; i < 3; ++ i ) { int x = i; int y = (i + 1) % 3; int z = (i + 2) % 3; v[0][x] = -S; v[0][y] = 0; v[0][z] = 0; v[1][x] = 0; v[1][y] = S; v[1][z] = 0; v[2][x] = S; v[2][y] = 0; v[2][z] = 0; v[3][x] = 0; v[3][y] = -S; v[3][z] = 0; cntx->polyline(4, (const GMVS *) v, 3, 1, &ropts); } #undef S } } #undef C #undef SC /**************************************************************************************/ gmv0.9/src/gmv/test1.tcl0100644000175200017560000000173007271021036015462 0ustar stephensstepheng# $Id: test1.tcl,v 1.5 2001/04/23 12:37:50 stephens Exp $ source init.tcl ################################################################### set retained [gmv_context_ref [gmv_context_retained "fo"]]; gmv_context_begin $retained gmv_frame_begin gmv_world_begin if {1} { gmv_color {1 .7 0} gmv_surface [gman_sphere [gman_x 0] [gman_x 1]] } if {0} { gmv_points_begin gmv_point {0 0 0} gmv_point {1 1 1} gmv_point {3 4 5} gmv_points_end } if {1} { gmv_color {0 .7 1} gmv_transform_concat [gman_translate_3d {2 2 2}] gmv_surface [gman_cylinder [gman_x 0] [gman_x 1]] } gmv_world_end gmv_frame_end gmvo_xml [gmvo_root] gmv_context_end ################################################################### wm geometry . 400x400+32+32 gmv_widget .x {} $retained pack .x -fill x -fill y focus .x ################################################################### #toplevel .menu #make_menu .menu ################################################################### gmv0.9/src/gmv/window.cc0100644000175200017560000002425707271010662015550 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_gmvgl_cc__ #define __rcs_id_gman_gmvgl_cc__ static const char __rcs_id_gman_gmvgl_cc[] = "$Id: window.cc,v 1.5 2001/04/23 11:27:46 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gmv/gmv.h" #include "gman/gman.h" #include "glwin/glwin.h" #define exit(X) _glutExit(X) /* Avoid "throw()" decl collision in problem in glu.h */ #include #undef exit #include "gman/funcs.h" #include "gmv/opts.h" #include "gmv/vmop.h" #include "gmv/tools.hh" #include /* free(), exit() */ #include #include #include #ifndef PI #ifdef M_PI #define PI M_PI #else #define PI 3.1415926 #endif #endif typedef struct gmv_window_object { /* Contexts. */ gmv_context *gl_cntx; gmv_context *retained; GMVToolContext *tools; /* View control. */ int smooth; int lighting; int show_axies; /* Window created. */ glwin_window *win; } gmv_window_object; static void Create(glwin_window *win) { gmv_window_object *vo = (gmv_window_object*) win->data; } static void Destroy(glwin_window *win) { gmv_window_object *vo = (gmv_window_object*) win->data; gmv_context_deref(vo->gl_cntx); gmv_context_deref(vo->retained); delete vo->tools; free(vo); } static void ChangeSize(glwin_window *win, int w, int h) { gmv_window_object *vo = (gmv_window_object*) win->data; gmv_context_begin(vo->gl_cntx); gmv_viewport(0, 0, w, h); gmv_context_end(); } #define KEY_DOWN(X) glwin_key_down(win, (X)) static void process_key(glwin_window *win, int key, int down) { int nkd = glwin_nkeys_down_prev(win); int nKeysDown = glwin_nkeys_down(win); /* nKeyDown has changed state */ if ( ! nkd && nKeysDown ) { glwin_idle(win, 1); } else if ( nkd && ! nKeysDown ) { glwin_idle(win, 0); } } static void Close(glwin_window *win) { glwin_quit(win, 0); } static int _KeyPress(glwin_window *win, int key) { gmv_window_object *vo = (gmv_window_object*) win->data; switch ( tolower(key) ) { case '\033': glwin_close(win); return 1; case ' ': { #if 0 GMAN nf = gman_parse_file("gltest.man"); if ( nf ) { vo->f = nf; vo->f_changed = 1; } #endif } break; case '1': case '2': case '3': // vo->render_opts.primDim = key - '1'; break; case '4': vo->smooth = ! vo->smooth; break; case '5': vo->lighting = ! vo->lighting; break; case '0': vo->show_axies = ! vo->show_axies; break; default: break; } return 1; } static int KeyPress(glwin_window *win, int key) { gmv_window_object *vo = (gmv_window_object*) win->data; // fprintf(stderr, "KeyDown(%p, %x)\n", win, key); vo->tools->contextRetained(vo->retained); gmv_context_begin(vo->gl_cntx); if ( _KeyPress(win, key) ) { glwin_redraw(win); } gmv_context_end(); return 0; } static int KeyDown(glwin_window *win, int key) { gmv_window_object *vo = (gmv_window_object*) win->data; // fprintf(stderr, "KeyDown(%p, %x)\n", win, key); vo->tools->contextRetained(vo->retained); gmv_context_begin(vo->gl_cntx); if ( vo->tools->keyDown(key) ) { glwin_redraw(win); } else { process_key(win, key, 1); } gmv_context_end(); return 1; } static int KeyUp(glwin_window *win, int key) { gmv_window_object *vo = (gmv_window_object*) win->data; vo->tools->contextRetained(vo->retained); gmv_context_begin(vo->gl_cntx); if ( vo->tools->keyUp(key) ) { glwin_redraw(win); } else { process_key(win, key, 0); } gmv_context_end(); return 1; } static int Idle(glwin_window *win) { gmv_window_object *vo = (gmv_window_object*) win->data; vo->tools->contextRetained(vo->retained); gmv_context_begin(vo->gl_cntx); gmv_context_end(); return 1; } /*************************************************************************/ static int MouseDown(glwin_window *win, int x, int y, int button, int count) { gmv_window_object *vo = (gmv_window_object*) win->data; GMVV3 screen; vo->tools->contextRetained(vo->retained); gmv_context_begin(vo->gl_cntx); screen[0] = x; screen[1] = y; screen[2] = 0; // fprintf(stderr, "MD %d %d %d %d\n", x, y, button, count); if ( vo->tools->pointerDown(screen, button, count) ) { glwin_redraw(win); } gmv_context_end(); return 1; } static int MouseDrag(glwin_window *win, int x, int y) { gmv_window_object *vo = (gmv_window_object*) win->data; GMVV3 screen; vo->tools->contextRetained(vo->retained); gmv_context_begin(vo->gl_cntx); screen[0] = x; screen[1] = y; screen[2] = 0; if ( vo->tools->pointerDrag(screen) ) { glwin_redraw(win); } gmv_context_end(); return 1; } static int MouseUp(glwin_window *win, int x, int y, int button, int count) { gmv_window_object *vo = (gmv_window_object*) win->data; GMVV3 screen; vo->tools->contextRetained(vo->retained); gmv_context_begin(vo->gl_cntx); screen[0] = x; screen[1] = y; screen[2] = 0; if ( vo->tools->pointerUp(screen, button) ) { glwin_redraw(win); } gmv_context_end(); return 1; } /*************************************************************************/ static void glBox(const GMANValue *p) { glBegin(GL_LINE_STRIP); glVertex3d(p[0], p[2], p[4]); glVertex3d(p[1], p[2], p[4]); glVertex3d(p[1], p[3], p[4]); glVertex3d(p[0], p[3], p[4]); glVertex3d(p[0], p[2], p[4]); glVertex3d(p[0], p[2], p[5]); glVertex3d(p[1], p[2], p[5]); glVertex3d(p[1], p[3], p[5]); glVertex3d(p[0], p[3], p[5]); glVertex3d(p[0], p[2], p[5]); glEnd(); glBegin(GL_LINES); glVertex3d(p[1], p[2], p[4]); glVertex3d(p[1], p[2], p[5]); glVertex3d(p[1], p[3], p[4]); glVertex3d(p[1], p[3], p[5]); glVertex3d(p[0], p[3], p[4]); glVertex3d(p[0], p[3], p[5]); glEnd(); } static void glAxies(int length, int mask) { int a, i; for ( a = 0; a < 3; ++ a ) { float x = a == 0; float y = a == 1; float z = a == 2; float x1 = a == 1; float y1 = a == 2; float z1 = a == 0; float x2 = a == 2; float y2 = a == 0; float z2 = a == 1; glBegin(GL_LINES); /* X = red, Y = green, Z = blue. */ if ( mask & (1 << a) ) { glColor3f(x, y, z); } else { glColor3f(0.7, 0.7, 0.7); } /* Axis. */ glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(x * length, y * length, z * length); /* Tick marks. */ for ( i = 1; i <= length; ++ i ) { glVertex3f(x * i + x1 * -.25, y * i + y1 * -.25, z * i + z1 * -.25); glVertex3f(x * i + x1 * .25, y * i + y1 * .25, z * i + z1 * .25); } glEnd(); /* Lattice points. */ glBegin(GL_POINTS); for ( i = 1; i <= length; ++ i ) { int j; for ( j = 1; j <= length; ++ j ) { glVertex3f(x1 * i + x2 * j, y1 * i + y2 * j, z1 * i + z2 * j); } } glEnd(); } } static int Render(glwin_window *win) { gmv_window_object *vo = (gmv_window_object*) win->data; gmv_context_begin(vo->gl_cntx); gmv_frame_begin(); /* Color */ glColor3f(1.0f, 1.0f, 1.0f); if ( vo->lighting ) { /* Lighting */ glEnable(GL_LIGHTING); { GLfloat a[] = { 0.2f, 0.2f, 0.2f, 1.0f }; GLfloat d[] = { 0.7f, 0.7f, 0.7f, 1.0f }; GLfloat s[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat p[] = { -50.0f, 50.0f, 100.0f, 1.0f }; #if 0 glLightModelfv(GL_LIGHT_MODEL_AMBIENT, a); #else glLightfv(GL_LIGHT0, GL_AMBIENT, a); glLightfv(GL_LIGHT0, GL_DIFFUSE, d); glLightfv(GL_LIGHT0, GL_SPECULAR, s); glLightfv(GL_LIGHT0, GL_POSITION, p); #endif glEnable(GL_LIGHT0); } } else { glDisable(GL_LIGHTING); glDisable(GL_LIGHT0); } gmv_world_begin(); /* Shading. */ glDisable(GL_COLOR_MATERIAL); glShadeModel(GL_FLAT); /* Visibility */ glEnable(GL_DEPTH_TEST); glFrontFace(GL_CW); glDisable(GL_CULL_FACE); /* Axis */ if ( vo->show_axies ) { glAxies(10, vo->tools->allowAxies()); } /* World transform. */ glPushMatrix(); if ( vo->lighting ) { /* Materials */ glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); glColorMaterial(GL_BACK, GL_AMBIENT_AND_DIFFUSE); /* Materials */ if ( 0 ) { GLfloat c1[] = { 1.0f, 1.0f, 1.0f, 1.0f }; glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c1); // glMateriali(GL_FRONT, GL_SHININESS, 128); } if ( 0 ) { GLfloat c2[] = { 0.0f, 1.0f, 0.0f, 1.0f }; glMaterialfv(GL_BACK, GL_SPECULAR, c2); // glMateriali(GL_BACK, GL_SHININESS, 128); } } /* render */ glShadeModel(vo->smooth ? GL_SMOOTH : GL_FLAT); glColor3f(0.7, 0.7, 0.7); gmv_render_retained_context(vo->retained); glPopMatrix(); gmv_world_end(); gmv_frame_end(); gmv_context_end(); return 1; } glwin_window* gmv_window(gmv_context *retained) { static glwin_desc desc; glwin_window *win; gmv_window_object *vo; memset(&desc, 0, sizeof(desc)); desc.winName = "GMAN/GL Test"; desc.winX = 200; desc.winY = 100; desc.winWidth = 400; desc.winHeight = 400; desc.ChangeSize = ChangeSize; desc.Render = Render; desc.Create = Create; desc.Destroy = Destroy; desc.Close = Close; desc.KeyPress = KeyPress; desc.KeyDown = KeyDown; desc.KeyUp = KeyUp; desc.MouseDown = MouseDown; desc.MouseDrag = MouseDrag; desc.MouseUp = MouseUp; desc.Idle = Idle; vo = (gmv_window_object*) malloc(sizeof(*vo)); memset(vo, 0, sizeof(*vo)); vo->gl_cntx = gmv_context_ref(gmv_context_gl(0)); vo->retained = gmv_context_ref(retained); vo->show_axies = 1; vo->tools = new GMVToolContext(); // vo->tools->addTool(new GMVToolSelect()); vo->tools->addTool(new GMVToolXlate()); vo->tools->addTool(new GMVToolRotate()); vo->tools->addTool(new GMVToolScale()); vo->tools->addTool(new GMVToolCrv()); win = glwin_create(&desc, vo); vo->win = win; #if 0 fprintf(stderr, "gman_view_gl: window %p\n", (void*) win); gman_print_archive(stderr, f); fprintf(stderr, "--------------------\n"); #endif return win; } gmv_context *gmv_window_retained(glwin_window *win) { gmv_window_object *vo = (gmv_window_object*) win->data; return vo->retained; } gmv_tool_context *gmv_window_tool_context(glwin_window *win) { gmv_window_object *vo = (gmv_window_object*) win->data; return vo->tools; } gmv0.9/src/gmv/init.tcl0100644000175200017560000001064207267674140015406 0ustar stephensstepheng# $Id: init.tcl,v 1.3 2001/04/19 23:44:32 stephens Exp $ proc lmatch {pat l} { set m {} foreach i $l { if [string match $pat $i] { lappend m $i } } return $m } proc exportByPrefix {pre namespace} { # Get a list of all commands with "$pre_" at begining. set cmds [lmatch "${pre}*" [info commands]] # Create a namespace for the prefix. namespace eval "::$namespace" { } foreach cmd $cmds { set cmd_short [string range $cmd [string length $pre] end] #puts "::$namespace proc $cmd_short $cmd" set procdef "proc $cmd_short args { set args \[linsert \$args 0 $cmd\]; eval \$args}" set nsdef "namespace eval ::$namespace { $procdef }" eval $nsdef } } ################################################################### proc gmv_char2int {c} { # incase scan fails set i 0 scan $c %c i return $i } proc gmv_widget {w args retained} { eval "glwin_tk_options $w $args -rgba true -double true -depth true -privatecmap false -time 10" set x [gmv_window $retained] if {0} { bind $w {puts "ButtonPress-1 %W at (%x,%y)"} bind $w {puts "ButtonPress-2 %W at (%x,%y)"} bind $w {puts "ButtonPress-3 %W at (%x,%y)"} bind $w {puts "KeyPress k=%k K=%K N=%N s=%s at (%x,%y)"} bind $w {puts "KeyRelease k=%k K=%K N=%N s=%s at (%x,%y)"} #bind $w {puts "MouseWheel %D at (%x,%y)"} } else { bind $w "glwin_process_motion $x %x %y" bind $w "glwin_process_button $x 0 1 %x %y" bind $w "glwin_process_button $x 0 2 %x %y" bind $w "glwin_process_button $x 0 0 %x %y" bind $w "glwin_process_button $x 1 1 %x %y" bind $w "glwin_process_button $x 1 2 %x %y" bind $w "glwin_process_button $x 1 0 %x %y" bind $w "glwin_process_button $x 2 1 %x %y" bind $w "glwin_process_button $x 2 2 %x %y" bind $w "glwin_process_button $x 2 0 %x %y" bind $w "glwin_process_keysym $x %N 1" bind $w "glwin_process_keysym $x %N 0" } } ################################################################### proc gmv_selection_2_list sel { set l {} set b [gmvs_objects_begin $sel] while {$b != [gmvs_objects_end $sel]} { lappend l [gmvs_iterator_object $b] set b [gmvs_iterator_next $b] } return $l } proc array_init {an kv} { upvar $an a set i 0 while {$i < [llength $kv]} { set k [lindex $kv $i] incr i set v [lindex $kv $i] incr i #puts "k=$k v=$v" set a($k) $v incr i 2 } } set milist {} proc define_command args { global milist set a(name) "" #puts "argv0=[lindex $args 0]" array_init a [lindex $args 0] set name $a(name) set text $a(text) #puts "defined_command $args" #puts "menu item name=$name" lappend milist $text } proc make_menu {p} { global milist set i 0 set ws {} foreach m $milist { set w "$p.$i" #puts "w=$w" button $w -text $m -command "puts {$m}" lappend ws $w incr i pack $w -side top -fill x } } ################################################################### define_command { text "Select All" ok { 1 } do { gmvc_select_all } } define_command { text "Unselect" use selection ok { $count > 0 } do { gmv_selection_clear $sel } } define_command { text "Group" use selection ok { $count > 0 } do { set g [gmvo_new]; foreach o $sel { [gmvo_add_child $g $o] } [gmvo_add_child [lindex $open 0] $g] } } define_command { text "Ungroup" use selection ok { $count > 0 } do { } } define_command { text "Lock" use selection ok { $count > 0 } do { } } define_command { text "Unlock" use selection od { 1 } do { } } define_command { text "Delete" use selection ok { $count > 0 } do { foreach o $sell { gmvo_remove $o } } } define_command { text "Blend" use selection ok { $count >= 2 } do { gman_blend } } ################################################################### # Create namespace for all the commands. foreach ns {gman gmv glwin} { exportByPrefix "${ns}_" $ns } # Test #puts [namespace eval ::gman { add 1 2 }] ################################################################### gmv0.9/src/gmv/localt.txt0100644000175200017560000000055407264171117015750 0ustar stephensstepheng Localized transform. Imagine a transform M(S) that is specified in a space S. We want to apply M(S) to the context of space T. M(T,S) is the transform from space T to space S. M(S,T) is the inverse of M(T,S). space W is the world space. if M(S,W) transforms from space S to world space: it follows that: M(S,W) . M(W,S) = I M(W,S) . M(S) . M(S,W) = M(W); gmv0.9/src/gmv/kit.cc0100644000175200017560000002271507271014507015027 0ustar stephensstepheng#include "kit.h" #include "context.hh" #include "retained.hh" #include "object.hh" #include "xform.hh" #ifdef GMAN_GL_SUPPORT #include "gl.hh" #endif #ifdef GMAN_RI_SUPPORT #include "ri.hh" #endif #include #include "gl.hh" /************************************************************************/ gmv_context *gmv_context_retained(const char *name) { return (gmv_context*) new GMVContextRetained((void*) name); } /************************************************************************/ gmv_context *gmv_context_gl(void *gl_context) { return (gmv_context*) #ifdef GMAN_GL_SUPPORT new GMVContextGL(gl_context) #else 0 #endif ; } /************************************************************************/ gmv_context *gmv_context_ri(void *ri_context) { return (gmv_context*) #ifdef GMAN_RI_SUPPORT new GMVContextRi(ri_context) #else 0 #endif ; } /************************************************************************/ gmv_context *gmv_context_window() { return 0; } /************************************************************************/ void gmv_context_destroy(gmv_context *cntx) { GMVContext_deref(cntx); } gmv_context *gmv_context_ref(gmv_context *cntx) { GMVContext_ref(cntx); return cntx; } void gmv_context_deref(gmv_context *cntx) { GMVContext_deref(cntx); } /************************************************************************/ /* NOT THREAD SAFE. */ static stack cc_stack; static GMVContextRef cc = 0; gmv_context *gmv_context_get() { return cc; } void gmv_context_begin(gmv_context *cntx) { if ( cc ) cc->deactivate(); cc_stack.push(cc); cc = (GMVContext*) cntx; if ( cc ) { cc->activate(); } gmv_space_begin(cc->space()); } void gmv_context_end() { gmv_space_end(); if ( cc ) cc->deactivate(); cc = (GMVContext*) cc_stack.top(); cc_stack.pop(); if ( cc ) cc->activate(); } /************************************************************************/ void gmv_frame_begin() { cc->frameBegin(); } void gmv_frame_end() { cc->frameEnd(); } /************************************************************************/ void gmv_viewport(int x, int y, int w, int h) { cc->viewport(x, y, w, h); } void gmv_lookat(GMAN_ARG from, GMAN_ARG to, GMAN_ARG up) { cc->camera()->lookat(from, to, up); } void gmv_fov(GMAN_ARG _fov) { cc->camera()->fov(_fov); } void gmv_clipz(GMAN_ARG n, GMAN_ARG f) { cc->camera()->clipz(n, f); } /************************************************************************/ void gmv_world_begin() { cc->worldBegin(); } void gmv_world_end() { cc->worldEnd(); } /************************************************************************/ void gmv_attribute_begin() { cc->attributeBegin(); } void gmv_attribute_end() { cc->attributeEnd(); } void gmv_color(GMAN_ARG color) { cc->color(color); } /************************************************************************/ void gmv_transform_begin() { cc->transformBegin(); } void gmv_transform_end() { cc->transformEnd(); } void gmv_transform_identity() { cc->transformIdentity(); } void gmv_transform_set(GMAN_ARG transform) { cc->transform(transform); } void gmv_transform_concat(GMAN_ARG transform) { cc->transformConcat(transform); } /************************************************************************/ void gmv_curve(GMAN_ARG f) { cc->curve(f); } void gmv_surface(GMAN_ARG f) { cc->surface(f); } void gmv_area(GMAN_ARG f) { cc->area(f); } /************************************************************************/ GMV_EXTERN void gmv_points_begin() { cc->pointsBegin(0); } GMV_EXTERN void gmv_point(GMAN x) { cc->pointsAdd((GMVV3*) gman_point(x, 0, 0)); } GMV_EXTERN void gmv_weight(GMAN x) { } GMV_EXTERN void gmv_points_end() { cc->pointsEnd(); } GMV_EXTERN void gmv_crv() { } GMV_EXTERN void gmv_polygon() { } /************************************************************************/ gmvo *gmv_object_begin(gmvo *obj) { return cc->objectBegin(obj); } void gmv_object_end() { cc->objectEnd(); } #if 0 void gmv_object_link(void *object) { cc->objectLink(object); } #endif /************************************************************************/ const char *gmv_object_def_begin(const char *name) { return cc->objectDefBegin(name); } void gmv_object_def_end() { cc->objectDefEnd(); } void gmv_object_instance(const char *name) { cc->objectInstance(name); } /************************************************************************/ void gmv_render_retained_context(gmv_context *cntx) { ((GMVContextRetained*) cntx)->render(cc); } /************************************************************************/ gmvt *gmvt_matrix_new() { return (gmvt*) new GMVMatrixTransform(); } void gmvt_translate(gmvt *x, const GMVV3 *t) { ((GMVMatrixTransform *) x)->translate((*t)[0], (*t)[1], (*t)[2]); } void gmvt_rotate(gmvt *x, GMVS angle, const GMVV3 *t) { ((GMVMatrixTransform *) x)->rotate(angle, (*t)[0], (*t)[1], (*t)[2]); } void gmvt_scale(gmvt *x, GMVS sx, GMVS sy, GMVS sz) { ((GMVMatrixTransform *) x)->scale(sx, sy, sz); } const GMVM44 *gmvt_matrix(gmvt *x) { return &(x->matrix()); } gmvt *gmvt_compose(gmvt *x, gmvt *y) { return (gmvt*) new GMVCompositeTransform(x, y); } gmvt *gmvt_simplify(gmvt *x) { return (gmvt*) (x->simplify()); } void gmvt_xform_point(gmvt *x, int n, const GMVV3 *input, GMVV3 *output) { x->transform(n, input, output); } void gmvt_xform_vector(gmvt *x, int n, const GMVV3 *input, GMVV3 *output) { x->transformv(n, input, output); } /************************************************************************/ gmvsc *gmv_space_get() { return GMVSpaceContext::current(); } void gmv_space_begin(gmvsc *x) { GMVSpaceContext::push(x); } void gmv_space_end() { GMVSpaceContext::pop(); } void gmv_space_cache_clear(gmvsc * x) { if ( ! x ) x = gmv_space_get(); x->clear(); } gmvt *gmv_space_xform(gmv_space from, gmv_space to) { return gmv_space_get()->transformSpace(from, to); } /************************************************************************/ const char *gmvo_name(gmvo *obj) { return (char *) (obj->name().begin()); } void gmvo_name_set(gmvo *obj, const char *name) { string _name = name; obj->name(_name); } GMV_EXTERN char *gmvo_path(gmvo *o) { return 0; } GMV_EXTERN gmvo *gmvo_named(const char *name, gmvo *current, gmvo *root) { return find_path(name, current, root); } /************************************************************************/ gmvo *gmvo_root() { return ((GMVContextRetained*) (GMVContext*) cc)->root(); } gmvo *gmvo_parent(gmvo *obj) { return obj->parent(); } gmvo_iterator gmvo_children(gmvo *obj) { return (gmvo_iterator) (obj->childrenBegin()); } gmvo_iterator gmvo_children_end(gmvo *obj) { return (gmvo_iterator) (obj->childrenEnd()); } gmvo_iterator gmvo_iterator_next(gmvo_iterator oi) { return (gmvo_iterator) (((GMVObject::children_iterator_t) oi) + 1); } gmvo *gmvo_iterator_object(gmvo_iterator oi) { return *((GMVObject::children_iterator_t) oi); } gmvt *gmvo_transform(gmvo *obj) { return obj->transform(); } gmvt *gmvo_transform_set(gmvo *obj, gmvt *t) { obj->transform(t); return t; } gmvo *gmvo_camera_new() { return (gmvo*) new GMVObjectCamera(cc); } gmvo *gmvo_camera() { return (gmvo*) (cc->camera()); } gmvo *gmvo_camera_set(gmvo *x) { cc->camera((GMVObjectCamera*) x); return (gmvo*) x; } /************************************************************************/ void gmv_pick(int x1, int y1, int x2, int y2) { cc->pick(x1, y1, x2, y2); } void gmv_pick_hits_empty() { cc->pickListEmpty(); } void gmv_pick_begin() { cc->pickBegin(); } void gmv_pick_end() { cc->pickEnd(); } int gmv_pick_hits_count() { return cc->pickListCount(); } gmv_pick_hit *gmv_pick_hits_begin() { return cc->pickList(); } gmv_pick_hit *gmv_pick_hits_end() { return 0; } const GMVS *gmv_pick_z() { return cc->pickZ(); } void gmv_pick_z_set(const GMVS *z) { cc->pickZ(z); } /************************************************************************/ gmv_selection *gmv_selection_set(gmv_selection *sel) { cc->selectionSet(sel); return sel; } gmv_selection *gmv_selection_get(void) { return cc->selection(); } gmv_selection *gmv_selection_copy(gmv_selection *sel) { return sel ? new gmv_selection(*sel) : new gmv_selection(); } void gmv_selection_select(gmv_selection *sel, gmvo *obj) { sel->select(obj); } void gmv_selection_deselect(gmv_selection *sel, gmvo *obj) { sel->deselect(obj); } void gmv_selection_toggle(gmv_selection *sel, gmvo *obj) { sel->toggle(obj); } void gmv_selection_clear(gmv_selection *sel) { sel->clear(); } int gmv_selection_selected(gmv_selection *sel, gmvo *obj) { return sel->selected(obj); } gmvs_iterator gmvs_objects(gmv_selection *sel) { assert(sizeof(sel->begin()) <= sizeof(gmvs_iterator)); return (gmvs_iterator) (sel->begin()); } gmvs_iterator gmvs_objects_end(gmv_selection *sel) { return (gmvs_iterator) (sel->end()); } gmvs_iterator gmvs_iterator_next(gmvs_iterator si) { return ((gmv_selection::iterator) si) + 1; } gmvo *gmvs_iterator_object(gmvs_iterator si) { return *((gmv_selection::iterator) si); } void *gmvs_hook_set(gmv_selection *sel, gmvo *obj, void *data) { sel->hook_set(obj, data); return data; } void *gmvs_hook(gmv_selection *sel, gmvo *obj) { return sel->hook(obj); } /************************************************************************/ gmv0.9/src/gmv/crv.hh0100644000175200017560000000300507271007737015042 0ustar stephensstepheng#ifndef __gmv_CRV_HH #define __gmv_CRV_HH #include "object.hh" #include class GMVObjectCrv; refcntptr_DECL(GMVObjectCrv); typedef refcntptr GMVObjectCrvRef; inline void __deref(GMVObjectCrv *p) { __deref((GMVObject*) p); } inline void __ref(GMVObjectCrv *p) { __ref((GMVObject*) p); } class GMVObjectCrvHnd; refcntptr_DECL(GMVObjectCrvHnd); typedef refcntptr GMVObjectCrvHndRef; inline void __deref(GMVObjectCrvHnd *p) { __deref((GMVObject*) p); } inline void __ref(GMVObjectCrvHnd *p) { __ref((GMVObject*) p); } class GMVObjectCrv : public GMVObject { private: friend class GMVObjectCrvHnd; /* gman_crv_*() object. */ GMAN_REF _crv; /* Handle vector. */ typedef vector _hv_t; _hv_t _hv; void _updateHnd(int i); void _point(int i, const GMVV3 *p); void _w(int i, GMVS w); public: GMVObjectCrv(GMVContext *cntx); ~GMVObjectCrv(); int count() { return gman_crv_np(_crv); } const GMVS *operator [](int i) { return gman_crv_point(_crv, i); } const GMVV3 *points() { return (const GMVV3*) gman_crv_point(_crv, 0); } int addPoint(const GMVV3 *p); void point(int i, const GMVV3 *p); void weight(int i, GMVS w); void renderSelf(GMVContext *cntx); }; class GMVObjectCrvHnd : public GMVObject { private: GMVObjectCrv *_crv; int _i; public: GMVObjectCrvHnd(GMVObjectCrv *crv, int i); ~GMVObjectCrvHnd(); void transformChanged(); void renderTransform(GMVContext *cntx); void renderSelf(GMVContext *cntx); }; #endif gmv0.9/src/gmv/xvf.hh0100744000175200017560000000146207306074210015046 0ustar stephensstepheng#ifndef _gmv_XVF_HH #define _gmv_XVF_HH #include "xvf/xvf.hh" #include #include #include "gman/gman.h" #include "object.hh" #include "xform.hh" /*********************************************************/ /* HELPERS. */ XVFType *xvf_type(GMAN_REF *x); void xvf_visit(GMAN_REF *x, XVFVisitor *r, int flags); XVFType *xvf_type(GMVTransformRef *x); void xvf_visit(GMVTransformRef *x, XVFVisitor *r, int flags); XVFType *xvf_type(GMVObjectRef *x); void xvf_visit(GMVObjectRef *x, XVFVisitor *r, int flags); template XVFType *xvf_type(vector *x) { static XVFTypeClass > _type("vector", xvf_type((T*) 0)); return &_type; } template void xvf_visit(vector *x, XVFVisitor *v, int flags = XVF_NON_CONST) { xvf_visit(x->begin(), x->end(), v, flags); } #endif gmv0.9/src/gmv/keys.h0100644000175200017560000000040507267677055015067 0ustar stephensstepheng#ifndef _gmv_keys_h #define _gmv_keys_h #define KEY_X_AXIS 'X' #define KEY_Y_AXIS 'C' #define KEY_Z_AXIS 'Z' #define KEY_CAMERA ' ' #define KEY_MOVE 'A' #define KEY_ROTATE 'D' #define KEY_SCALE 'S' #define KEY_CRV_CREATE 'V' #define BUTTON_Z_DRAG 1 #endif gmv0.9/src/gmv/tcl.cc0100644000175200017560000001027307270665256015032 0ustar stephensstepheng #include "tool.hh" #include class GMVToolTcl : public GMVTool { private: Tcl_Interp *_interp; Tcl_Obj *_tclThis; Tcl_Obj *_arg0; /* Method proc names. */ Tcl_Obj *_name; Tcl_Obj *_description; Tcl_Obj *_activate; Tcl_Obj *_deactivate; Tcl_Obj *_allowCameraMode; Tcl_Obj *_keyDown; Tcl_Obj *_keyUp; Tcl_Obj *_pointerDown; Tcl_Obj *_pointerDrag; Tcl_Obj *_pointerUp; public: GMVToolTcl(Tcl_Interp *interp, Tcl_Obj *arg0); ~GMVToolTcl(); virtual const char *name(); virtual const char *description(); virtual void activate(); virtual void deactivate(); virtual int allowCameraMode() { return 0; } virtual int keyDown(int key); virtual int keyUp(int key); virtual int pointerDown(GMVV3 screen, int button, int count); virtual int pointerDrag(GMVV3 screen); virtual int pointerUp(GMVV3 screen, int button); }; #define C GMVToolTcl #define REF(X) (Tcl_IncrRefCount(X), X) #define DRF(X) Tcl_DecrRefCount(X) C :: C(Tcl_Interp *interp, Tcl_Obj *arg0) { _interp = interp; _arg0 = REF(arg0); _tclThis = 0; _name = 0; _description = 0; _activate = 0; _deactivate = 0; _allowCameraMode = 0; _keyDown = 0; _keyUp = 0; _pointerDown = 0; _pointerDrag = 0; _pointerUp = 0; } C :: ~C() { DRF(_tclThis); DRF(_name); DRF(_description); DRF(_activate); DRF(_deactivate); DRF(_allowCameraMode); DRF(_keyDown); DRF(_keyUp); DRF(_pointerDown); DRF(_pointerDrag); DRF(_pointerUp); } static int Tcl_GetIntResult(Tcl_Interp *interp) { long result = 0; Tcl_Obj *obj; if ( (obj = Tcl_GetObjResult(interp)) ) { Tcl_GetLongFromObj(interp, obj, &result); } return (int) result; } static int TclObjInvoke(Tcl_Interp *interp, int argc, Tcl_Obj **argv, int flags) { Tcl_Obj *list = Tcl_NewListObj(argc, argv); return Tcl_EvalObj(interp, list); } const char * C :: name() { if ( _name ) { int argc = 2; Tcl_Obj *argv[2]; argv[0] = _name; argv[1] = _tclThis; TclObjInvoke(_interp, argc, argv, 0); return Tcl_GetStringResult(_interp); } return "<>"; } const char * C :: description() { if ( _description ) { int argc = 2; Tcl_Obj *argv[2]; argv[0] = _description; argv[1] = _tclThis; TclObjInvoke(_interp, argc, argv, 0); return Tcl_GetStringResult(_interp); } return "<>"; } void C :: activate() { if ( _activate ) { int argc = 2; Tcl_Obj *argv[2]; argv[0] = _activate; argv[1] = _tclThis; TclObjInvoke(_interp, argc, argv, 0); } } void C :: deactivate() { if ( _activate ) { int argc = 2; Tcl_Obj *argv[2]; argv[0] = _deactivate; argv[1] = _tclThis; TclObjInvoke(_interp, argc, argv, 0); } } int C :: keyDown(int key) { if ( _keyDown ) { int argc = 3; Tcl_Obj *argv[3]; argv[0] = _keyDown; argv[1] = _tclThis; argv[2] = Tcl_NewIntObj(key); TclObjInvoke(_interp, argc, argv, 0); return Tcl_GetIntResult(_interp); } return 0; } int C :: keyUp(int key) { if ( _keyUp ) { int argc = 3; Tcl_Obj *argv[3]; argv[0] = _keyUp; argv[1] = _tclThis; argv[2] = Tcl_NewIntObj(key); TclObjInvoke(_interp, argc, argv, 0); return Tcl_GetIntResult(_interp); } return 0; } int C :: pointerDown(GMVV3 screen, int button, int count) { if ( _pointerDown ) { int argc = 4; Tcl_Obj *argv[4]; argv[0] = _pointerDown; argv[1] = _tclThis; argv[2] = Tcl_NewIntObj(button); argv[3] = Tcl_NewIntObj(count); TclObjInvoke(_interp, argc, argv, 0); return Tcl_GetIntResult(_interp); } return 0; } int C :: pointerDrag(GMVV3 screen) { if ( _pointerDrag ) { int argc = 2; Tcl_Obj *argv[2]; argv[0] = _pointerDrag; argv[1] = _tclThis; TclObjInvoke(_interp, argc, argv, 0); return Tcl_GetIntResult(_interp); } return 0; } int C :: pointerUp(GMVV3 screen, int button) { if ( _pointerUp ) { int argc = 3; Tcl_Obj *argv[3]; argv[0] = _keyUp; argv[1] = _tclThis; argv[2] = Tcl_NewIntObj(button); TclObjInvoke(_interp, argc, argv, 0); return Tcl_GetIntResult(_interp); } return 0; } #undef C gmv0.9/src/gmv/xml.cc0100644000175200017560000000017207306074567015044 0ustar stephensstepheng#include "xvf/xml.hh" #include "object.hh" void gmvo_xml(gmvo *obj) { XVF_XML_Out xml(cerr); xml << obj; } gmv0.9/src/gum/0040755000175200017560000000000007306140400013713 5ustar stephensstephenggmv0.9/src/gum/TODO0100644000175200017560000000007607217552616014424 0ustar stephensstephengkurt.stephens@parlano.com 2000/10/24 Add SUBPROJECT support. gmv0.9/src/gum/VERSION0100644000175200017560000000000407217552616014773 0ustar stephensstepheng0.1 gmv0.9/src/gum/bin/0040755000175200017560000000000007267633352014506 5ustar stephensstephenggmv0.9/src/gum/bin/gum0100755000175200017560000001110307263161134015203 0ustar stephensstepheng#!/bin/sh #set -x # Author: kurt.stephens@parlano.com 2000/10/04 # dirname is /bin/dirname on solaris, /usr/bin/dirname on redhat. __dirname=dirname __cwd="`/bin/pwd`" #for __dirname in /bin/dirname /usr/bin/dirname false #do # if eval $__dirname /foo/bar 2>/dev/null 1>/dev/null # then # break # fi #done if [ "$1" = "--gum-exists" ] then exit 0 fi # Compute current directory relative to GUM_BUILD_ROOT _gum_build_root() { GUM_BUILD_ROOT_CWD_DELTA="`/bin/pwd | /bin/sed -e \"s@^${GUM_BUILD_ROOT}@.@\"`" export GUM_BUILD_ROOT_CWD_DELTA } # Find -f Makefile _find_Makefile() { if [ -r './GUMakefile' ] then _Makefile="${GUM}/Makefile"; GUM_MAKE_OPTS="${GUM_MAKE_OPTS} --no-builtin-rules --no-builtin-variables" else /bin/echo "$0: Warning: using old-style Makefile in $__cwd" >&2 _Makefile="Makefile"; fi export GUM_MAKE_OPTS } export GUM_LEVEL # Handle recursion if [ -n "${GUM_LEVEL}" ] then GUM_LEVEL="`expr ${GUM_LEVEL} + 1`" _gum_build_root _find_Makefile if [ $# -eq 0 ] then exec ${GUM_MAKE} ${GUM_MAKE_OPTS} -f "$_Makefile" else exec ${GUM_MAKE} ${GUM_MAKE_OPTS} -f "$_Makefile" "$@" fi fi GUM_LEVEL=1 ##################################################################### # Logging support GUM_LOG_PREFIX="GUM" export GUM_LOG_PREFIX log() { /bin/echo "${GUM_LOG_PREFIX}" "$@" } ##################################################################### # Get environment paths. GUM_BIN_DIR="`$__dirname \"$0\"`" GUM_BIN_DIR="`cd \"$GUM_BIN_DIR\" && /bin/pwd`" export GUM_BIN_DIR GUM_="${GUM_BIN_DIR}/`basename \"$0\"`" export GUM_ #GUM_ENV_PATH_SITE="${GUM_ENV_PATH_SITE}" export GUM_ENV_PATH_SITE GUM_ENV_PATH="${GUM_ENV_PATH:-${HOME}/.gum ${GUM_ENV_PATH_SITE}}" # Use baseline environment first GUM_ENV_PATH="${GUM_BIN_DIR}/../lib/gum ${GUM_ENV_PATH}" export GUM_ENV_PATH # MAKEFILES environent variable will cause havoc MAKEFILES= unset MAKEFILES ##################################################################### # Scan vars for top-level targets GUM_TOP_LEVEL_TARGETS= export GUM_TOP_LEVEL_TARGETS #set -x __i=1 while [ "${__i}" -le $# ] do __i_next=1 eval __p="\"\${${__i}}\"" case "${__p}" in -f) __i_next=2 ;; [A-Za-z0-9_]*=*) ;; *) GUM_TOP_LEVEL_TARGETS="${GUM_TOP_LEVEL_TARGETS} ${__p}" ;; esac __i=`expr ${__i} + ${__i_next}` #echo "__i=$__i" done #set +x # Default top-level is all GUM_TOP_LEVEL_TARGETS="${GUM_TOP_LEVEL_TARGETS:-all}" ##################################################################### # Overlay environment setups. for e in ${GUM_ENV_PATH} do for f in "$e" "$e/arch/$GUM_ARCH" do f="$e/env" if [ -r "$f" ] then . "$f" fi done done ##################################################################### # Handle variable queries. #set -x if [ "x$1" = "x--var" ] then eval /bin/echo "\"\$$2\"" exit 0 fi if [ "x$1" = "x--var=" ] then eval /bin/echo "$2=\"'\$$2'\"" exit 0 fi ##################################################################### # Locate GUM_BUILD_ROOT #set -x GUM_BUILD_ROOT="`/bin/pwd`" export GUM_BUILD_ROOT GUM_BUILD_ROOT_FILE= # Look up the current directory path until a GUM_BUILD_ROOT file is found. __pwd="$GUM_BUILD_ROOT" while [ "$__pwd" != '/' ] do GUM_BUILD_ROOT_FILE="$__pwd/GUM_BUILD_ROOT" if [ -r "$GUM_BUILD_ROOT_FILE" -a -f "$GUM_BUILD_ROOT_FILE" ] then GUM_BUILD_ROOT="$__pwd" break fi __pwd="`$__dirname $__pwd`" done export GUM_BUILD_ROOT_FILE _gum_build_root #set +x ##################################################################### # Set up logging if [ -n "${GUM_LOG}" ] then if [ -n "${GUM_LOG_APPEND}" ] then exec 2>&1 >> "${GUM_LOG}" else exec 2>&1 > "${GUM_LOG}" fi fi # Locate $_Makefile. _find_Makefile # Header for log. log "===============================" log "started ${GUM_STARTED}" log "user ${GUM_USERNAME}" log "hostname ${GUM_HOSTNAME}" log "dir ${GUM_DIR}" log "arch ${GUM_ARCH}" log "arch_target ${GUM_ARCH_TARGET}" log "path $PATH" log "classpath $CLASSPATH" log "ld_library_path $LD_LIBRARY_PATH" log "make ${GUM_MAKE} ${GUM_MAKE_OPTS} -f '$_Makefile' $*" log "top_level_target ${GUM_TOP_LEVEL_TARGETS}" log "build_root ${GUM_BUILD_ROOT}" log "build_root_cwd_delta ${GUM_BUILD_ROOT_CWD_DELTA}" log "===============================" #exit 0 #set -x if [ $# -eq 0 ] then ${GUM_MAKE} ${GUM_MAKE_OPTS} -f "$_Makefile" else ${GUM_MAKE} ${GUM_MAKE_OPTS} -f "$_Makefile" "$@" fi errorcode=$? #set +x log "===============================" log "finished `/bin/date`" log "result $errorcode" log "===============================" exit $errorcode gmv0.9/src/gum/bin/gum_arch0100755000175200017560000000206007267632145016213 0ustar stephensstepheng#!/bin/sh # Author: kurt.stephens@parlano.com 2000/10/12 GUM_UNAME="${GUM_UNAME:-/bin/uname}" export GUM_UNAME GUM_ARCHTOOL="${GUM_ARCHTOOL:-/bin/arch}" export GUM_ARCHTOOL GUM_ARCH_OS="`${GUM_UNAME} -s 2>/dev/null`" export GUM_ARCH_OS GUM_ARCH_REV="`${GUM_UNAME} -r 2>/dev/null`" export GUM_ARCH_REV GUM_ARCH_MACH="`${GUM_ARCHTOOL} 2>/dev/null || ${GUM_UNAME} -m 2>/dev/null`" export GUM_ARCH_MACH # Normalize OS. case "$GUM_ARCH_OS" in CYGWIN*) GUM_ARCH_OS="CYGWIN" case "$GUM_ARCH_REV" in 1.1.6*) GUM_ARCH_REV="1.1.6" ;; esac ;; Linux*) # Make arch equal to libc version. [ -f /lib/libc-2.2.so ] && GUM_ARCH_REV='libc2.2' [ -f /lib/libc-2.1.so ] && GUM_ARCH_REV='libc2.1' [ -f /lib/libc-2.1.92.so ] && GUM_ARCH_REV='libc2.1' ;; esac # Normalize MACH. case "$GUM_ARCH_MACH" in i*86) GUM_ARCH_MACH='ix86' ;; sun4*) GUM_ARCH_MACH='sun4' ;; esac GUM_ARCH="${GUM_ARCH_OS}-${GUM_ARCH_REV}-${GUM_ARCH_MACH}" export GUM_ARCH if [ -z "$_GUM_ARCH_VAR" ] then exec /bin/echo "$GUM_ARCH" fi gmv0.9/src/gum/bin/gum_cpp0100755000175200017560000000011607217552616016057 0ustar stephensstepheng#!/bin/sh # Author: kurt.stephens@parlano.com 2000/10/24 exec perl $0.pl "$@" gmv0.9/src/gum/bin/gum_cpp.pl0100644000175200017560000000260407267633352016474 0ustar stephensstepheng#!/usr/bin/perl -s # Author: kurt.stephens@parlano.com 2000/10/24 # Capture include file list from STDERR of C preprocessor and # creates a Makefile dependency list for the object file. # If C preprocessor fails, errors are copied to STDERR. # my ($c, $i, $o) = splice(@ARGV, -3); # .c, .i, .o $CPP = join(' ', map("'$_'", @ARGV)); my $h = "$o.h"; my $d = "$o.d"; my $result; my $cmd = "$CPP '$i' '$c' 2>'$h'"; #print STDERR "$cmd\n"; if ( ($result = system($cmd)) ) { open(H, $h); print STDERR ; close(H); exit($result); } my @warnings = (); open(D, ">$d") || die "Cannot write $d: $!"; print D "# DO NOT MODIFY: generated by $0\n"; print D "# $CPP $c\n"; print D "$o : "; open(H, $h) || die "Cannot read $h: $!"; for $_ ( ) { chomp; ############################################# # Wierd GCC 2.96 stuff. # # I know how to read indentations with spaces, # why did they add these fucking dots? # s/^(\.+ )/' ' x length($1)/e; # What's this "Multiple include guards" crap. s/^Multiple include.*://i; # Warnings should be removed and echoed to STDERR. if ( m@^In file .*$@ || m@^.*:\d+:(\d+:)?\s*warning:\s*.*$@ ) { push(@warnings, $_); $_ = ''; } ############################################# print D " \\\n", $_; } print D "\n"; close(H); unlink($h); close(D); if ( @warnings ) { print STDERR join("\n", @warnings), "\n"; } exit 0; 1; gmv0.9/src/gum/bin/gum_find_libs0100755000175200017560000000004107217552616017223 0ustar stephensstepheng#!/bin/sh exec perl ${0}.pl "$@" gmv0.9/src/gum/bin/gum_find_libs.pl0100644000175200017560000000745507263120730017637 0ustar stephensstepheng#!/bin/perl # Author: kurt.stephens@parlano.com 2000/09/06 # # gum_find_libs has two functions: # --l which locates all .libs files to determine actual library # dependencies. # # For example: # You create library "foo". "foo" uses symbols from library "bar" # You don't want user's of "foo" to remember to link "bar" if they're # linking "foo". # Create file named "foo.libs" containing the line "foo bar". # Some ".libs" files can be created to abstract away architecture specific # names for system libraries. See gum/lib/arch/unix/*.libs for examples. # # --p which locates all lib.a file names found in the # -L directories. # # --m locates all .libmak file names found in the # -L directories. # my $progname = 'gum_find_lib'; my @path = split(/:/, $ENV{'LD_LIBRARY_PATH'}); my @libs = (); my @libs_all = (); my %libs = (); my @libs_path = (); my @libmak_path = (); my $lib_prefix = 'lib'; my $lib_suffix = '.a'; my @lib_suffix = ('.la'); #'.la' for Linux. my $verbose = 0; sub add_libs { my @x = @_; LIB: while ( @x ) { my $x = shift @x; my $fn; my $p; # Search for .libs file. $fn = "$x.libs"; if ( ! $libs{$fn} ) { print STDERR "lib: $fn\n" if ( $verbose ); ++ $libs{$fn}; if ( $p = (grep(-r $_, map("$_/$fn", @path)))[0] ) { open(F, $p); my @sub_libs = ; close(F); chomp @sub_libs; @sub_libs = split(/\s+/, join(' ', @sub_libs)); print STDERR ".libs: found $p (@sub_libs)\n" if ( $verbose > 1 ); # Add each libs. add_libs(reverse @sub_libs); next LIB; } else { print STDERR "$progname: warning: $fn file not found\n" if ( $verbose ); } } # Search for library. $p = undef; LIB_SUFFIX: for my $ls ( $lib_suffix, @lib_suffix ) { $fn = "$lib_prefix$x$ls"; if ( ! $libs{$fn} ) { print STDERR "lib: $fn\n" if ( $verbose ); ++ $libs{$fn}; if ( $p = (grep(-r $_, map("$_/$fn", @path)))[0] ) { print STDERR "lib: found $p\n" if ( $verbose > 1 ); push(@libs_all, $x); push(@libs, $x); push(@libs_path, $p); $fn = "$x.libmak"; if ( $p = (grep(-r $_, map("$_/$fn", @path)))[0] ) { push(@libmak_path, $p); } last LIB_SUFFIX; } } } if ( ! $p ) { print STDERR "$progname: warning: library $x not found\n" if ( $verbose ); push(@libs_all, $x); #push(@libs_path, $fn); } } } #print STDERR join(', ', map("'$_'", $0, @ARGV)), "\n"; my $show__l; my $show_p; my $show_m; my %_l = (); my %_L = (); while ( @ARGV ) { $_ = shift @ARGV; if ( $_ eq '--V' ) { ++ $verbose; } elsif ( $_ eq '--P' ) { $lib_prefix = shift @ARGV; } elsif ( $_ eq '--S' ) { $lib_suffix = shift @ARGV; } elsif ( $_ eq '--l' ) { $show__l = shift @ARGV; } elsif ( $_ eq '--p' ) { ++ $show_p; } elsif ( $_ eq '--m' ) { ++ $show_m; } elsif ( $_ =~ s/^-L// ) { if ( ! $_L{$_} ) { ++ $_L{$_}; push(@path, $_); } } elsif ( $_ =~ s/^-l// ) { if ( ! $_l{$_} ) { ++ $_l{$_}; add_libs($_); } } elsif ( $_ =~ m/^-/ ) { print STDERR "$progname: '$_' option ignored"; } else { add_libs($_); } } my $output; @libs = reverse @libs; @libs_all = reverse @libs_all; sub unique { my %x; my @x; while ( @_ ) { my ($x) = shift @_; if ( ! $x{$x} ) { ++ $x{$x}; push(@x, $x); } } @x; } if ( $show_m ) { $output .= join("\n", unique(@libmak_path)) . "\n"; } elsif ( $show__l ) { $output .= join(' ', map("$show__l$_", unique(@libs_all))) . "\n"; } elsif ( $show_p ) { $output .= join(' ', map($_, @libs_path)) ."\n"; } else { $output .= join(' ', @libs) . "\n"; $output .= print join(' ', @libs_path) . "\n"; } print $output; print STDERR join("\n", map("gum_find_libs: $_", split("\n", $output)), '') if ( $verbose > 1 ); 1; gmv0.9/src/gum/bin/gum_install0100755000175200017560000000262607217552616016753 0ustar stephensstepheng#!/bin/sh # kurt.stephens@parlano.com 2000/11/06 #set -x [ -z "$GUM_MKDIR_P" ] && GUM_MKDIR_P="/bin/mkdir -p" [ -z "$GUM_CHMOD_F" ] && GUM_CHMOD_F="/bin/chmod -f" [ -z "$GUM_CHMOD_RF" ] && GUM_CHMOD_RF="/bin/chmod -Rf" [ -z "$GUM_TAR" ] && GUM_TAR="/bin/tar" [ -z "$INSTALL_STRIP" ] && INSTALL_STRIP="" [ -z "$INSTALL_MODE" ] && INSTALL_MODE="-w" verbose="v" while [ $# -gt 0 ] do case "$1" in -) eval "$2='$3'"; shift 3 ;; -v) verbose='v' shift ;; +v) verbose='' shift ;; --) shift break ;; *) break ;; esac done run() { if [ -n "$verbose" ] then eval echo "$@" 1>&2 fi eval "$@" } while [ $# -gt 0 ] do src="$1"; srcf="`basename $src`" srcd="`dirname $src`" dst="$2"; dstd="`dirname $dst`" set -e # Create destination dir. run ${GUM_MKDIR_P} "'$dstd'" # Make destination writable. run ${GUM_CHMOD_F} +w "'$dstd'" [ -f "$dst" -o -d "$dst" ] && run ${GUM_CHMOD_RF} +w "'$dst'" # Tar from srcf into dst (cd "$srcd" && run ${GUM_TAR} -cf - "'$srcf'") | (cd "$dstd" && run ${GUM_TAR} "-x${verbose}f" -) # Strip? if [ -f "$dst" -a -n "$INSTALL_STRIP" ] then set +e run ${GUM_CHMOD_RF} +w "'$dst'" run ${INSTALL_STRIP} "'$dst'" set -e fi # Chmod it to be unwritable. run ${GUM_CHMOD_RF} ${INSTALL_MODE} "'$dst'" set +e shift 2 done exit 0 gmv0.9/src/gum/bin/CVS/0040755000175200017560000000000007306120347015126 5ustar stephensstephenggmv0.9/src/gum/bin/CVS/Root0100644000175200017560000000003407262676351016002 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/bin/CVS/Repository0100644000175200017560000000002507262676351017236 0ustar stephensstephenghome/ion/src/gum/bin gmv0.9/src/gum/bin/CVS/Entries0100644000175200017560000000045507306120347016463 0ustar stephensstepheng/gum_cpp/1.1/Tue Dec 19 03:27:10 2000// /gum_find_libs/1.1/Tue Dec 19 03:27:10 2000// /gum_install/1.1/Tue Dec 19 03:27:10 2000// /gum_find_libs.pl/1.2/Thu Apr 5 16:48:24 2001// /gum/1.2/Thu Apr 5 21:23:40 2001// /gum_arch/1.3/Thu Apr 19 18:54:29 2001// /gum_cpp.pl/1.3/Thu Apr 19 19:05:14 2001// D gmv0.9/src/gum/eg/0040755000175200017560000000000007262702255014323 5ustar stephensstephenggmv0.9/src/gum/eg/GUMakefile0100755000175200017560000000060507262701152016213 0ustar stephensstepheng # The package name PACKAGE=gum_eg # Make a library NAME=mylib C_FILES=a.c b.c c.c H_FILES=a.h b.h c.h INSTALL_VARS=H_FILES LIB LIBS=sockets# mylib needs socket support SUBDIRS=sub1 include $(GUM)/lib # make another app NAME=myapp C_FILES=myapp.c LIBS=mylib SUBDIRS=sub2 include $(GUM)/exe # make another app NAME=myapp2 C_FILES=myapp2.c a.c b.c c.c INSTALL_VARS=BIN include $(GUM)/exe gmv0.9/src/gum/eg/a.c0100755000175200017560000000004607262702202014677 0ustar stephensstepheng#include "a.h" int a() { return 1; } gmv0.9/src/gum/eg/a.h0100755000175200017560000000001107217552616014710 0ustar stephensstephengint a(); gmv0.9/src/gum/eg/b.c0100755000175200017560000000004607262702224014704 0ustar stephensstepheng#include "b.h" int b() { return 2; } gmv0.9/src/gum/eg/b.h0100755000175200017560000000001107217552616014711 0ustar stephensstephengint b(); gmv0.9/src/gum/eg/c.c0100755000175200017560000000007707262702255014715 0ustar stephensstepheng#include "c.h" #include "b.h" int c() { b(); return 3; } gmv0.9/src/gum/eg/c.h0100755000175200017560000000001107217552616014712 0ustar stephensstephengint c(); gmv0.9/src/gum/eg/myapp.c0100755000175200017560000000031507217552616015620 0ustar stephensstepheng #include "a.h" #include "b.h" #include "c.h" #include int main(int argc, char **argv) { printf("%s: ...\n", argv[0]); a(); b(); c(); printf("%s: DONE\n", argv[0]); return 0; } gmv0.9/src/gum/eg/myapp2.c0100755000175200017560000000031507217552616015702 0ustar stephensstepheng #include "a.h" #include "b.h" #include "c.h" #include int main(int argc, char **argv) { printf("%s: ...\n", argv[0]); a(); b(); c(); printf("%s: DONE\n", argv[0]); return 0; } gmv0.9/src/gum/eg/sub1/0040755000175200017560000000000007262677567015216 5ustar stephensstephenggmv0.9/src/gum/eg/sub1/GUMakefile0100644000175200017560000000000007217552616017060 0ustar stephensstephenggmv0.9/src/gum/eg/sub1/CVS/0040755000175200017560000000000007262676574015646 5ustar stephensstephenggmv0.9/src/gum/eg/sub1/CVS/Root0100644000175200017560000000003407262676531016477 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/eg/sub1/CVS/Repository0100644000175200017560000000003107262676531017730 0ustar stephensstephenghome/ion/src/gum/eg/sub1 gmv0.9/src/gum/eg/sub1/CVS/Entries0100644000175200017560000000005507262676574017177 0ustar stephensstepheng/GUMakefile/1.1/Tue Dec 19 03:27:10 2000// D gmv0.9/src/gum/eg/sub1/gumo/0040755000175200017560000000000007262677567016165 5ustar stephensstephenggmv0.9/src/gum/eg/sub1/gumo/Linux-libc2.2-ix86/0040755000175200017560000000000007262677567021211 5ustar stephensstephenggmv0.9/src/gum/eg/sub1/gumo/Linux-libc2.2-ix86/o/0040755000175200017560000000000007262677567021447 5ustar stephensstephenggmv0.9/src/gum/eg/sub1/gumo/Linux-libc2.2-ix86/o/sub1/0040755000175200017560000000000007262677567022321 5ustar stephensstephenggmv0.9/src/gum/eg/sub1/gumo/Linux-libc2.2-ix86/o/sub1/.empty/0040755000175200017560000000000007262677567023535 5ustar stephensstephenggmv0.9/src/gum/eg/sub2/0040755000175200017560000000000007262677570015211 5ustar stephensstephenggmv0.9/src/gum/eg/sub2/GUMakefile0100644000175200017560000000000007217552616017061 0ustar stephensstephenggmv0.9/src/gum/eg/sub2/CVS/0040755000175200017560000000000007262676574015647 5ustar stephensstephenggmv0.9/src/gum/eg/sub2/CVS/Root0100644000175200017560000000003407262676531016500 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/eg/sub2/CVS/Repository0100644000175200017560000000003107262676531017731 0ustar stephensstephenghome/ion/src/gum/eg/sub2 gmv0.9/src/gum/eg/sub2/CVS/Entries0100644000175200017560000000005507262676574017200 0ustar stephensstepheng/GUMakefile/1.1/Tue Dec 19 03:27:10 2000// D gmv0.9/src/gum/eg/sub2/gumo/0040755000175200017560000000000007262677570016160 5ustar stephensstephenggmv0.9/src/gum/eg/sub2/gumo/Linux-libc2.2-ix86/0040755000175200017560000000000007262677570021204 5ustar stephensstephenggmv0.9/src/gum/eg/sub2/gumo/Linux-libc2.2-ix86/o/0040755000175200017560000000000007262677570021442 5ustar stephensstephenggmv0.9/src/gum/eg/sub2/gumo/Linux-libc2.2-ix86/o/sub2/0040755000175200017560000000000007262677570022315 5ustar stephensstephenggmv0.9/src/gum/eg/sub2/gumo/Linux-libc2.2-ix86/o/sub2/.empty/0040755000175200017560000000000007262677570023531 5ustar stephensstephenggmv0.9/src/gum/eg/CVS/0040755000175200017560000000000007262704247014761 5ustar stephensstephenggmv0.9/src/gum/eg/CVS/Root0100644000175200017560000000003407262676351015625 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/eg/CVS/Repository0100644000175200017560000000002407262676351017060 0ustar stephensstephenghome/ion/src/gum/eg gmv0.9/src/gum/eg/CVS/Entries0100644000175200017560000000055207262704247016314 0ustar stephensstephengD/sub1//// D/sub2//// /a.h/1.1/Tue Dec 19 03:27:10 2000// /b.h/1.1/Tue Dec 19 03:27:10 2000// /c.h/1.1/Tue Dec 19 03:27:10 2000// /myapp.c/1.1/Tue Dec 19 03:27:10 2000// /myapp2.c/1.1/Tue Dec 19 03:27:10 2000// /GUMakefile/1.2/Wed Apr 4 20:22:02 2001// /a.c/1.2/Wed Apr 4 20:30:58 2001// /b.c/1.2/Wed Apr 4 20:31:16 2001// /c.c/1.2/Wed Apr 4 20:31:41 2001// gmv0.9/src/gum/eg/gumo/0040755000175200017560000000000007262677567015313 5ustar stephensstephenggmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/0040755000175200017560000000000007262677567020337 5ustar stephensstephenggmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/0040755000175200017560000000000007262720561020554 5ustar stephensstephenggmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/.empty/0040755000175200017560000000000007262677567022011 5ustar stephensstephenggmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/a.o0100644000175200017560000000131607262720560021151 0ustar stephensstephengELF4( U]01.01GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.data.bss.note.comment4 !@'@,@2T.;(  a.cgcc2_compiled.agmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/b.o0100644000175200017560000000131607262720561021153 0ustar stephensstephengELF4( U]01.01GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.data.bss.note.comment4 !@'@,@2T.;(  b.cgcc2_compiled.bgmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/a.o.d0100644000175200017560000000023607262720560021373 0ustar stephensstepheng# DO NOT MODIFY: generated by /home/stephens/ion/src/gum/bin/gum_cpp.pl # 'gcc' '-Wall' '-E' '-H' '-o' a.c gumo/Linux-libc2.2-ix86/o/./a.o : \ a.h \ \ a.h gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/c.o0100644000175200017560000000144007262720561021152 0ustar stephensstephengELF4( U01.01GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.comment4! +H1H6H<\.E`  c.cgcc2_compiled.cb gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/b.o.d0100644000175200017560000000023607262720561021375 0ustar stephensstepheng# DO NOT MODIFY: generated by /home/stephens/ion/src/gum/bin/gum_cpp.pl # 'gcc' '-Wall' '-E' '-H' '-o' b.c gumo/Linux-libc2.2-ix86/o/./b.o : \ b.h \ \ b.h gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/myapp.o0100644000175200017560000000203407262720561022056 0ustar stephensstephengELF 4( UE 0hE 0h 01.01%s: ... %s: DONE GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.rodata.comment4F! 8 +|1|6|<D.M  * F$&(myapp.cgcc2_compiled.mainprintfabc  ! & 38 gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/c.o.d0100644000175200017560000000025307262720561021375 0ustar stephensstepheng# DO NOT MODIFY: generated by /home/stephens/ion/src/gum/bin/gum_cpp.pl # 'gcc' '-Wall' '-E' '-H' '-o' c.c gumo/Linux-libc2.2-ix86/o/./c.o : \ c.h \ b.h \ \ b.h \ c.h gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/libmylib.a0100644000175200017560000000471207262720561022522 0ustar stephensstepheng! / 986423843 0 0 0 22 ` Zdnabca.o/ 986423664 1002 1006 100644 718 ` ELF4( U]01.01GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.data.bss.note.comment4 !@'@,@2T.;(  a.cgcc2_compiled.ab.o/ 986423665 1002 1006 100644 718 ` ELF4( U]01.01GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.data.bss.note.comment4 !@'@,@2T.;(  b.cgcc2_compiled.bc.o/ 986423665 1002 1006 100644 800 ` ELF4( U01.01GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.comment4! +H1H6H<\.E`  c.cgcc2_compiled.cb gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/mylib.libs0100644000175200017560000000001607262720561022535 0ustar stephensstephengmylib sockets gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/mylib.libmak0100644000175200017560000000023007262720561023041 0ustar stephensstepheng/home/stephens/ion/src/gum/eg/gumo/Linux-libc2.2-ix86/o/libmylib.a :: cd /home/stephens/ion/src/gum/eg && /home/stephens/ion/src/gum/bin/gum mylib-lib gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/myapp0100755000175200017560000003345307262720561021635 0ustar stephensstephengELF`4*4 (444GGHHH /lib/ld-linux.so.2GNUi "0"W,<2!L"H0 __gmon_start__libc.so.6printf__cxa_finalize__deregister_frame_info_IO_stdin_used__libc_start_main__register_frame_infoGLIBC_2.1.3GLIBC_2.0si ii x|U+5p%t%xh%|h%h%h%h 1^PTRh hQVh\USP[ tЋ]ÐUTuIPtt&BPP ut hX T]ÍvU]ÍU th0hX]Ð&U]ÐUE 0h4(/6E 0h=ÐU]ÐU]ÐUÐU\S\tv'ЋuX[]U]ÐUSR[Vv]%s: ... %s: DONE h"2BR  (܁\  l(ooordd)<8b| qFo!FpgVs,BYm !"#%+&A1X2p345689;"=8>N?d@zABCDEFGH4IINQRSTU5VMXe[^bx{ ~) C \ w  3 O h    Z # 4 < C" F> S Z^,l!tuy\m t8bmHt#5mm 6G`JKTY.]g`a-#517I8a9{: "dinit.c/usr/src/bs/BUILD/glibc-2.2/csu/gcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)../include/libc-symbols.h/usr/src/bs/BUILD/glibc-2.2/build-i386-linux/config.h../sysdeps/gnu/_G_config.h../sysdeps/unix/sysv/linux/bits/types.h../include/features.h../include/sys/cdefs.h../misc/sys/cdefs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(8,1)=(0,4)__u_char:t(4,1)=(0,11)__u_short:t(4,2)=(0,9)__u_int:t(4,3)=(0,4)__u_long:t(4,4)=(0,5)__u_quad_t:t(4,5)=(0,7)__quad_t:t(4,6)=(0,6)__int8_t:t(4,7)=(0,10)__uint8_t:t(4,8)=(0,11)__int16_t:t(4,9)=(0,8)__uint16_t:t(4,10)=(0,9)__int32_t:t(4,11)=(0,1)__uint32_t:t(4,12)=(0,4)__int64_t:t(4,13)=(0,6)__uint64_t:t(4,14)=(0,7)__qaddr_t:t(4,15)=(4,16)=*(4,6)__dev_t:t(4,17)=(4,5)__uid_t:t(4,18)=(4,3)__gid_t:t(4,19)=(4,3)__ino_t:t(4,20)=(4,4)__mode_t:t(4,21)=(4,3)__nlink_t:t(4,22)=(4,3)__off_t:t(4,23)=(0,3)__loff_t:t(4,24)=(4,6)__pid_t:t(4,25)=(0,1)__ssize_t:t(4,26)=(0,1)__rlim_t:t(4,27)=(4,4)__rlim64_t:t(4,28)=(4,5)__id_t:t(4,29)=(4,3)__fsid_t:t(4,30)=(4,31)=s8__val:(4,32)=ar(4,33)=r(4,33);0000000000000;0037777777777;;0;1;(0,1),0,64;;__daddr_t:t(4,34)=(0,1)__caddr_t:t(4,35)=(4,36)=*(0,2)__time_t:t(4,37)=(0,3)__useconds_t:t(4,38)=(0,4)__suseconds_t:t(4,39)=(0,3)__swblk_t:t(4,40)=(0,3)__clock_t:t(4,41)=(0,3)__clockid_t:t(4,42)=(0,1)__timer_t:t(4,43)=(0,1)__fd_mask:t(4,44)=(0,5)__fd_set:t(4,45)=(4,46)=s128fds_bits:(4,47)=ar(4,33);0;31;(4,44),0,1024;;__key_t:t(4,48)=(0,1)__ipc_pid_t:t(4,49)=(0,9)__blksize_t:t(4,50)=(0,3)__blkcnt_t:t(4,51)=(0,3)__blkcnt64_t:t(4,52)=(4,6)__fsblkcnt_t:t(4,53)=(4,4)__fsblkcnt64_t:t(4,54)=(4,5)__fsfilcnt_t:t(4,55)=(4,4)__fsfilcnt64_t:t(4,56)=(4,5)__ino64_t:t(4,57)=(4,5)__off64_t:t(4,58)=(4,24)__t_scalar_t:t(4,59)=(0,3)__t_uscalar_t:t(4,60)=(0,5)__intptr_t:t(4,61)=(0,1)__socklen_t:t(4,62)=(0,4)../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h../sysdeps/unix/sysv/linux/bits/sched.h__sched_param:T(10,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(9,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(9,2)=(9,3)=*(9,4)=xs_pthread_descr_struct:pthread_attr_t:t(9,5)=(9,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(10,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(8,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(8,1),256,32;;pthread_cond_t:t(9,7)=(9,8)=s12__c_lock:(9,1),0,64;__c_waiting:(9,2),64,32;;pthread_condattr_t:t(9,9)=(9,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(9,11)=(0,4)pthread_mutex_t:t(9,12)=(9,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(9,2),64,32;__m_kind:(0,1),96,32;__m_lock:(9,1),128,64;;pthread_mutexattr_t:t(9,14)=(9,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(9,16)=(0,1)_pthread_rwlock_t:T(9,17)=s32__rw_lock:(9,1),0,64;__rw_readers:(0,1),64,32;__rw_writer:(9,2),96,32;__rw_read_waiting:(9,2),128,32;__rw_write_waiting:(9,2),160,32;__rw_kind:(0,1),192,32;__rw_pshared:(0,1),224,32;;pthread_rwlock_t:t(9,18)=(9,17)pthread_rwlockattr_t:t(9,19)=(9,20)=s8__lockkind:(0,1),0,32;__pshared:(0,1),32,32;;pthread_spinlock_t:t(9,21)=(0,1)pthread_barrier_t:t(9,22)=(9,23)=s20__ba_lock:(9,1),0,64;__ba_required:(0,1),64,32;__ba_present:(0,1),96,32;__ba_waiting:(9,2),128,32;;pthread_barrierattr_t:t(9,24)=(9,25)=s4__pshared:(0,1),0,32;;pthread_t:t(9,26)=(0,5)wchar_t:t(11,1)=(0,3)wint_t:t(11,2)=(0,4)../include/wchar.h../wcsmbs/wchar.h../sysdeps/unix/sysv/linux/i386/bits/wchar.h__mbstate_t:t(13,1)=(13,2)=s8__count:(0,1),0,32;__value:(13,3)=u4__wch:(11,2),0,32;__wchb:(13,4)=ar(4,33);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(3,1)=(3,2)=s12__pos:(4,23),0,32;__state:(13,1),32,64;;_G_fpos64_t:t(3,3)=(3,4)=s16__pos:(4,58),0,64;__state:(13,1),64,64;;../include/gconv.h../iconv/gconv.h :T(17,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(17,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(17,3)=(17,4)=*(17,5)=f(0,1)__gconv_init_fct:t(17,6)=(17,7)=*(17,8)=f(0,1)__gconv_end_fct:t(17,9)=(17,10)=*(17,11)=f(0,20)__gconv_trans_fct:t(17,12)=(17,13)=*(17,14)=f(0,1)__gconv_trans_context_fct:t(17,15)=(17,16)=*(17,17)=f(0,1)__gconv_trans_query_fct:t(17,18)=(17,19)=*(17,20)=f(0,1)__gconv_trans_init_fct:t(17,21)=(17,22)=*(17,23)=f(0,1)__gconv_trans_end_fct:t(17,24)=(17,25)=*(17,26)=f(0,20)__gconv_trans_data:T(17,27)=s20__trans_fct:(17,12),0,32;__trans_context_fct:(17,15),32,32;__trans_end_fct:(17,24),64,32;__data:(0,19),96,32;__next:(17,28)=*(17,27),128,32;;__gconv_step:T(17,29)=s56__shlib_handle:(17,30)=*(17,31)=xs__gconv_loaded_object:,0,32;__modname:(17,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(4,36),96,32;__to_name:(4,36),128,32;__fct:(17,3),160,32;__init_fct:(17,6),192,32;__end_fct:(17,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(17,33)=s36__outbuf:(17,34)=*(0,11),0,32;__outbufend:(17,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(17,35)=*(13,1),160,32;__state:(13,1),192,64;__trans:(17,28),256,32;;__gconv_info:T(17,36)=s8__nsteps:(8,1),0,32;__steps:(17,37)=*(17,29),32,32;__data:(17,38)=ar(4,33);0;-1;(17,33),64,0;;__gconv_t:t(17,39)=(17,40)=*(17,36)_G_iconv_t:t(3,5)=(3,6)=u44__cd:(17,36),0,64;__combined:(3,7)=s44__cd:(17,36),0,64;__data:(17,33),64,288;;,0,352;;_G_int16_t:t(3,8)=(0,8)_G_int32_t:t(3,9)=(0,1)_G_uint16_t:t(3,10)=(0,9)_G_uint32_t:t(3,11)=(0,4)_IO_stdin_used:G(0,1)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)01.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.got.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.sbss.bss.stab.stabstr.comment.note# 1((47 \\?܁GorrTo0c l ( u{```  ,,HHXX\\ddll$00000  s'))`/A 4K(\܁r   `  ,HX\dl00   +2  =PAdOT[ qX 0  P X\2 Є Є ` XhX   \         ( "IPL] c"`  0\F ,H <2  L"0lH  0/H< initfini.cgcc2_compiled.call_gmon_startinit.ccrtstuff.cp.0__DTOR_LIST__completed.1__do_global_dtors_aux__EH_FRAME_BEGIN__fini_dummyobject.2frame_dummyinit_dummyforce_to_data__CTOR_LIST____do_global_ctors_aux__CTOR_END____DTOR_END____FRAME_END__myapp.ca.cb.cc.cb_DYNAMIC__register_frame_info@@GLIBC_2.0_fp_hw__dso_handle_init__deregister_frame_info@@GLIBC_2.0_startc__bss_startmain__libc_start_main@@GLIBC_2.0data_startprintf@@GLIBC_2.0_fini__cxa_finalize@@GLIBC_2.1.3_edata_GLOBAL_OFFSET_TABLE__enda_IO_stdin_used__data_start__gmon_start__gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/myapp2.o0100644000175200017560000000203407262720561022140 0ustar stephensstephengELF 4( UE 0hE 0h 01.01%s: ... %s: DONE GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.rodata.comment4F! 8 +|1|6|<D.M  + F%')myapp2.cgcc2_compiled.mainprintfabc  ! & 38 gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/myapp.o.d0100644000175200017560000000232007262720561022276 0ustar stephensstepheng# DO NOT MODIFY: generated by /home/stephens/ion/src/gum/bin/gum_cpp.pl # 'gcc' '-Wall' '-E' '-H' '-o' myapp.c gumo/Linux-libc2.2-ix86/o/./myapp.o : \ a.h \ b.h \ c.h \ /usr/include/stdio.h \ /usr/include/features.h \ /usr/include/sys/cdefs.h \ /usr/include/gnu/stubs.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h \ /usr/include/bits/types.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/bits/pthreadtypes.h \ /usr/include/bits/sched.h \ /usr/include/libio.h \ /usr/include/_G_config.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/wchar.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/bits/wchar.h \ /usr/include/gconv.h \ /usr/include/wchar.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h \ /usr/include/bits/stdio_lim.h \ \ /usr/include/bits/pthreadtypes.h \ /usr/include/bits/sched.h \ /usr/include/bits/stdio_lim.h \ /usr/include/gnu/stubs.h \ a.h \ b.h \ c.h gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/myapp20100755000175200017560000003345407262720561021720 0ustar stephensstephengELF`4*4 (444GGHHH /lib/ld-linux.so.2GNUi "0"W,<2!L"H0 __gmon_start__libc.so.6printf__cxa_finalize__deregister_frame_info_IO_stdin_used__libc_start_main__register_frame_infoGLIBC_2.1.3GLIBC_2.0si ii x|U+5p%t%xh%|h%h%h%h 1^PTRh hQVh\USP[ tЋ]ÐUTuIPtt&BPP ut hX T]ÍvU]ÍU th0hX]Ð&U]ÐUE 0h4(/6E 0h=ÐU]ÐU]ÐUÐU\S\tv'ЋuX[]U]ÐUSR[Vv]%s: ... %s: DONE h"2BR  (܁\  l(ooordd)<8b| qFo!FpgVs,BYm !"#%+&A1X2p345689;"=8>N?d@zABCDEFGH4IINQRSTU5VMXe[^bx{ ~) C \ w  3 O h    Z # 4 < C" F> S Z^,l!tuy\m t8bmHt#5mm 6G`JKTY.]g`a-#517I8a9{: "dinit.c/usr/src/bs/BUILD/glibc-2.2/csu/gcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)../include/libc-symbols.h/usr/src/bs/BUILD/glibc-2.2/build-i386-linux/config.h../sysdeps/gnu/_G_config.h../sysdeps/unix/sysv/linux/bits/types.h../include/features.h../include/sys/cdefs.h../misc/sys/cdefs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(8,1)=(0,4)__u_char:t(4,1)=(0,11)__u_short:t(4,2)=(0,9)__u_int:t(4,3)=(0,4)__u_long:t(4,4)=(0,5)__u_quad_t:t(4,5)=(0,7)__quad_t:t(4,6)=(0,6)__int8_t:t(4,7)=(0,10)__uint8_t:t(4,8)=(0,11)__int16_t:t(4,9)=(0,8)__uint16_t:t(4,10)=(0,9)__int32_t:t(4,11)=(0,1)__uint32_t:t(4,12)=(0,4)__int64_t:t(4,13)=(0,6)__uint64_t:t(4,14)=(0,7)__qaddr_t:t(4,15)=(4,16)=*(4,6)__dev_t:t(4,17)=(4,5)__uid_t:t(4,18)=(4,3)__gid_t:t(4,19)=(4,3)__ino_t:t(4,20)=(4,4)__mode_t:t(4,21)=(4,3)__nlink_t:t(4,22)=(4,3)__off_t:t(4,23)=(0,3)__loff_t:t(4,24)=(4,6)__pid_t:t(4,25)=(0,1)__ssize_t:t(4,26)=(0,1)__rlim_t:t(4,27)=(4,4)__rlim64_t:t(4,28)=(4,5)__id_t:t(4,29)=(4,3)__fsid_t:t(4,30)=(4,31)=s8__val:(4,32)=ar(4,33)=r(4,33);0000000000000;0037777777777;;0;1;(0,1),0,64;;__daddr_t:t(4,34)=(0,1)__caddr_t:t(4,35)=(4,36)=*(0,2)__time_t:t(4,37)=(0,3)__useconds_t:t(4,38)=(0,4)__suseconds_t:t(4,39)=(0,3)__swblk_t:t(4,40)=(0,3)__clock_t:t(4,41)=(0,3)__clockid_t:t(4,42)=(0,1)__timer_t:t(4,43)=(0,1)__fd_mask:t(4,44)=(0,5)__fd_set:t(4,45)=(4,46)=s128fds_bits:(4,47)=ar(4,33);0;31;(4,44),0,1024;;__key_t:t(4,48)=(0,1)__ipc_pid_t:t(4,49)=(0,9)__blksize_t:t(4,50)=(0,3)__blkcnt_t:t(4,51)=(0,3)__blkcnt64_t:t(4,52)=(4,6)__fsblkcnt_t:t(4,53)=(4,4)__fsblkcnt64_t:t(4,54)=(4,5)__fsfilcnt_t:t(4,55)=(4,4)__fsfilcnt64_t:t(4,56)=(4,5)__ino64_t:t(4,57)=(4,5)__off64_t:t(4,58)=(4,24)__t_scalar_t:t(4,59)=(0,3)__t_uscalar_t:t(4,60)=(0,5)__intptr_t:t(4,61)=(0,1)__socklen_t:t(4,62)=(0,4)../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h../sysdeps/unix/sysv/linux/bits/sched.h__sched_param:T(10,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(9,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(9,2)=(9,3)=*(9,4)=xs_pthread_descr_struct:pthread_attr_t:t(9,5)=(9,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(10,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(8,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(8,1),256,32;;pthread_cond_t:t(9,7)=(9,8)=s12__c_lock:(9,1),0,64;__c_waiting:(9,2),64,32;;pthread_condattr_t:t(9,9)=(9,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(9,11)=(0,4)pthread_mutex_t:t(9,12)=(9,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(9,2),64,32;__m_kind:(0,1),96,32;__m_lock:(9,1),128,64;;pthread_mutexattr_t:t(9,14)=(9,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(9,16)=(0,1)_pthread_rwlock_t:T(9,17)=s32__rw_lock:(9,1),0,64;__rw_readers:(0,1),64,32;__rw_writer:(9,2),96,32;__rw_read_waiting:(9,2),128,32;__rw_write_waiting:(9,2),160,32;__rw_kind:(0,1),192,32;__rw_pshared:(0,1),224,32;;pthread_rwlock_t:t(9,18)=(9,17)pthread_rwlockattr_t:t(9,19)=(9,20)=s8__lockkind:(0,1),0,32;__pshared:(0,1),32,32;;pthread_spinlock_t:t(9,21)=(0,1)pthread_barrier_t:t(9,22)=(9,23)=s20__ba_lock:(9,1),0,64;__ba_required:(0,1),64,32;__ba_present:(0,1),96,32;__ba_waiting:(9,2),128,32;;pthread_barrierattr_t:t(9,24)=(9,25)=s4__pshared:(0,1),0,32;;pthread_t:t(9,26)=(0,5)wchar_t:t(11,1)=(0,3)wint_t:t(11,2)=(0,4)../include/wchar.h../wcsmbs/wchar.h../sysdeps/unix/sysv/linux/i386/bits/wchar.h__mbstate_t:t(13,1)=(13,2)=s8__count:(0,1),0,32;__value:(13,3)=u4__wch:(11,2),0,32;__wchb:(13,4)=ar(4,33);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(3,1)=(3,2)=s12__pos:(4,23),0,32;__state:(13,1),32,64;;_G_fpos64_t:t(3,3)=(3,4)=s16__pos:(4,58),0,64;__state:(13,1),64,64;;../include/gconv.h../iconv/gconv.h :T(17,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(17,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(17,3)=(17,4)=*(17,5)=f(0,1)__gconv_init_fct:t(17,6)=(17,7)=*(17,8)=f(0,1)__gconv_end_fct:t(17,9)=(17,10)=*(17,11)=f(0,20)__gconv_trans_fct:t(17,12)=(17,13)=*(17,14)=f(0,1)__gconv_trans_context_fct:t(17,15)=(17,16)=*(17,17)=f(0,1)__gconv_trans_query_fct:t(17,18)=(17,19)=*(17,20)=f(0,1)__gconv_trans_init_fct:t(17,21)=(17,22)=*(17,23)=f(0,1)__gconv_trans_end_fct:t(17,24)=(17,25)=*(17,26)=f(0,20)__gconv_trans_data:T(17,27)=s20__trans_fct:(17,12),0,32;__trans_context_fct:(17,15),32,32;__trans_end_fct:(17,24),64,32;__data:(0,19),96,32;__next:(17,28)=*(17,27),128,32;;__gconv_step:T(17,29)=s56__shlib_handle:(17,30)=*(17,31)=xs__gconv_loaded_object:,0,32;__modname:(17,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(4,36),96,32;__to_name:(4,36),128,32;__fct:(17,3),160,32;__init_fct:(17,6),192,32;__end_fct:(17,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(17,33)=s36__outbuf:(17,34)=*(0,11),0,32;__outbufend:(17,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(17,35)=*(13,1),160,32;__state:(13,1),192,64;__trans:(17,28),256,32;;__gconv_info:T(17,36)=s8__nsteps:(8,1),0,32;__steps:(17,37)=*(17,29),32,32;__data:(17,38)=ar(4,33);0;-1;(17,33),64,0;;__gconv_t:t(17,39)=(17,40)=*(17,36)_G_iconv_t:t(3,5)=(3,6)=u44__cd:(17,36),0,64;__combined:(3,7)=s44__cd:(17,36),0,64;__data:(17,33),64,288;;,0,352;;_G_int16_t:t(3,8)=(0,8)_G_int32_t:t(3,9)=(0,1)_G_uint16_t:t(3,10)=(0,9)_G_uint32_t:t(3,11)=(0,4)_IO_stdin_used:G(0,1)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)01.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.got.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.sbss.bss.stab.stabstr.comment.note# 1((47 \\?܁GorrTo0c l ( u{```  ,,HHXX\\ddll$00000  s'))`/A 4L(\܁r   `  ,HX\dl00   +2  =PAdOT[ qX 0  P X\2 Є Є ` XhX   \         ) "JQL^ d"`  0\F ,H <2  L"0lH  !00H= initfini.cgcc2_compiled.call_gmon_startinit.ccrtstuff.cp.0__DTOR_LIST__completed.1__do_global_dtors_aux__EH_FRAME_BEGIN__fini_dummyobject.2frame_dummyinit_dummyforce_to_data__CTOR_LIST____do_global_ctors_aux__CTOR_END____DTOR_END____FRAME_END__myapp2.ca.cb.cc.cb_DYNAMIC__register_frame_info@@GLIBC_2.0_fp_hw__dso_handle_init__deregister_frame_info@@GLIBC_2.0_startc__bss_startmain__libc_start_main@@GLIBC_2.0data_startprintf@@GLIBC_2.0_fini__cxa_finalize@@GLIBC_2.1.3_edata_GLOBAL_OFFSET_TABLE__enda_IO_stdin_used__data_start__gmon_start__gmv0.9/src/gum/eg/gumo/Linux-libc2.2-ix86/o/myapp2.o.d0100644000175200017560000000232207262720561022362 0ustar stephensstepheng# DO NOT MODIFY: generated by /home/stephens/ion/src/gum/bin/gum_cpp.pl # 'gcc' '-Wall' '-E' '-H' '-o' myapp2.c gumo/Linux-libc2.2-ix86/o/./myapp2.o : \ a.h \ b.h \ c.h \ /usr/include/stdio.h \ /usr/include/features.h \ /usr/include/sys/cdefs.h \ /usr/include/gnu/stubs.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h \ /usr/include/bits/types.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/bits/pthreadtypes.h \ /usr/include/bits/sched.h \ /usr/include/libio.h \ /usr/include/_G_config.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/wchar.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/bits/wchar.h \ /usr/include/gconv.h \ /usr/include/wchar.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h \ /usr/include/bits/stdio_lim.h \ \ /usr/include/bits/pthreadtypes.h \ /usr/include/bits/sched.h \ /usr/include/bits/stdio_lim.h \ /usr/include/gnu/stubs.h \ a.h \ b.h \ c.h gmv0.9/src/gum/lib/0040755000175200017560000000000007262676351014505 5ustar stephensstephenggmv0.9/src/gum/lib/gum/0040755000175200017560000000000007306125256015265 5ustar stephensstephenggmv0.9/src/gum/lib/gum/Makefile0100755000175200017560000000174407217552616016740 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/10/24 ############################################################### # The root Makefile GUM_LOG=$(GUM_ECHO) "$(GUM_LOG_PREFIX)" ############################################################### # Support for include search paths GUM_ENV_PATH_USER:=${HOME}/gum GUM_ENV_PATH:=${GUM} ${GUM_ENV_PATH_USER} ${GUM_ENV_PATH_SITE} # Archify the paths. gum_paths:=$(foreach d,$(GUM_ENV_PATH),$d $d/arch/${GUM_ARCH} ) # Function to expand paths. gum_path=$(foreach d,$(gum_paths),$d/$(1) ) ############################################################### # Makefile.pre has all prequisite variables -include $(call gum_path,Makefile.pre) ############################################################### # User's actual Makefile GUM_DEPENDS_ON+= $(GUMakefile) include ${GUMakefile} ############################################################### # Makefile.post has all top-level targets that # use variables set -include $(call gum_path,Makefile.post) gmv0.9/src/gum/lib/gum/Makefile.post0100755000175200017560000000403107306125256017707 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ##################################################################### # subdirs include $(GUM)/subdirs.post.mak ##################################################################### # all all : gum-targets-early $(GUM_TARGETS_ALL) gum-subdirs-all GUM_HELP:=$(GUM_HELP) all creates $(foreach f,$(GUM_TARGETS_ALL),'$(f)' ) @@@# .PHONY: all ##################################################################### # install include $(GUM)/install.post.mak ##################################################################### # clean GUM_GARBAGE+=$(GARBAGE) $(GUM_DEPENDS_GENERATED)# clean : $(GUM_TARGETS_CLEAN) gum-subdirs-clean $(GUM_RM_RF) $(GUM_GARBAGE) GUM_HELP:=$(GUM_HELP) clean deletes $(foreach x,$(GUM_GARBAGE),'$(x)' ) @@@ very-clean veryclean : clean $(GUM_SILENT)[ "x`cd '$(GUM_GENERATED_ROOT)' && /bin/pwd`" != "x`/bin/pwd`" ] (cd '$(GUM_GENERATED_ROOT)') && $(GUM_RM_RF) '$(GUM_GENERATED_ROOT)' || true GUM_HELP:=$(GUM_HELP) very-clean does 'clean' and deletes '$(GUM_GENERATED_ROOT)' @@@# .PHONY: clean very-clean veryclean ##################################################################### # early targets .PHONY: gum-targets-early gum-targets-early : gum-dirs-early $(GUM_TARGETS_EARLY) gum-dirs-early=$(foreach d,$(GUM_DIRS_EARLY),$(d)/.empty )# .PHONY: gum-dirs-early gum-dirs-early : $(gum-dirs-early) $(gum-dirs-early) : $(GUM_MKDIR_P) $@ ##################################################################### # help help : @$(GUM_CAT) $(GUM)/help @$(GUM_ECHO) "TARGET ACTION SUBJECTS" @$(GUM_ECHO) "$(GUM_HELP)" | $(GUM_PERL) -npe 's/@@@/\n/g' | sort +0 | $(GUM_PERL) -npe 's/$$/\n/' .PHONY: help ##################################################################### # suffix rules #include $(GUM)/suffix.post.mak ##################################################################### # Generated dependencies ifneq "$(strip $(GUM_DEPENDS_GENERATED))" "" -include $(GUM_DEPENDS_GENERATED) endif ##################################################################### # EOF gmv0.9/src/gum/lib/gum/Makefile.pre0100755000175200017560000000301307217552616017514 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ############################################################### # Set up version control rules. include $(GUM)/vc.mak ############################################################### # Handle build options. -include $(GUM_BUILD_ROOT_FILE) ############################################################### # get dirs include $(GUM)/dirs.mak ############################################################### # get tools GUM_SILENT?=@# GUM_IGNORE?=-# -include $(call gum_path,tools.mak) ifndef gum_tools_mak $(error tools.mak not found - probably missing $(GUM)/arch/$(GUM_ARCH)/tools.mak) endif ############################################################### # suffix support include $(GUM)/suffix.pre.mak ############################################################### # install support -include $(call gum_path,install.pre.mak) ############################################################### # "gum pv=" causes gum to print a variable's value. ifneq "$(strip $(pv))" "" pv : @$(foreach v,$(pv),/bin/echo "$(v)=$($(v))# $(origin $(v))"; ) endif ############################################################### # default target GUM_TARGET_DEFAULT?=all# #$(warning GUM_TARGET_DEFAULT=$(GUM_TARGET_DEFAULT)) default : $(GUM_TARGET_DEFAULT) .PHONY : default ############################################################### # top-level targets # define place holders all : install : clean : veryclean : ##################################################################### # EOF gmv0.9/src/gum/lib/gum/arch/0040755000175200017560000000000007267632416016211 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-2.2.14-5.0-i586/0040755000175200017560000000000007262676531021024 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-2.2.14-5.0-i586/tools.mak0100644000175200017560000000021507217552616022646 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 # Use UNIX defaults. GUM_CC=gcc -Wall GUM_CCC=g++ -Wall include $(GUM)/arch/unix/tools.mak gmv0.9/src/gum/lib/gum/arch/Linux-2.2.14-5.0-i586/CVS/0040755000175200017560000000000007262676575021467 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-2.2.14-5.0-i586/CVS/Root0100644000175200017560000000003407262676531022317 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/Linux-2.2.14-5.0-i586/CVS/Repository0100644000175200017560000000006407262676531023556 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/Linux-2.2.14-5.0-i586 gmv0.9/src/gum/lib/gum/arch/Linux-2.2.14-5.0-i586/CVS/Entries0100644000175200017560000000005407262676575023017 0ustar stephensstepheng/tools.mak/1.1/Tue Dec 19 03:27:10 2000// D gmv0.9/src/gum/lib/gum/arch/Linux-2.2.16-22-i686/0040755000175200017560000000000007262676531020750 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-2.2.16-22-i686/tools.mak0100644000175200017560000000021507217552616022572 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 # Use UNIX defaults. GUM_CC=gcc -Wall GUM_CCC=g++ -Wall include $(GUM)/arch/unix/tools.mak gmv0.9/src/gum/lib/gum/arch/Linux-2.2.16-22-i686/CVS/0040755000175200017560000000000007262676575021413 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-2.2.16-22-i686/CVS/Root0100644000175200017560000000003407262676531022243 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/Linux-2.2.16-22-i686/CVS/Repository0100644000175200017560000000006307262676531023501 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/Linux-2.2.16-22-i686 gmv0.9/src/gum/lib/gum/arch/Linux-2.2.16-22-i686/CVS/Entries0100644000175200017560000000005407262676575022743 0ustar stephensstepheng/tools.mak/1.1/Tue Dec 19 03:27:10 2000// D gmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4/0040755000175200017560000000000007262676531020416 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4/tools.mak0100644000175200017560000000020007217552616022232 0ustar stephensstepheng# Use UNIX defaults. # SunOS-5.6 uses /usr/ccs/bin/ranlib GUM_RANLIB?=/usr/ccs/bin/ranlib# include $(GUM)/arch/unix/tools.mak gmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4/CVS/0040755000175200017560000000000007262676575021061 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4/CVS/Root0100644000175200017560000000003407262676531021711 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4/CVS/Repository0100644000175200017560000000005507262676531023150 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/SunOS-5.6-sun4 gmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4/CVS/Entries0100644000175200017560000000005407262676575022411 0ustar stephensstepheng/tools.mak/1.1/Tue Dec 19 03:27:10 2000// D gmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4m/0040755000175200017560000000000007262676531020573 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4m/CVS/0040755000175200017560000000000007262676574021235 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4m/CVS/Root0100644000175200017560000000003407262676531022066 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4m/CVS/Repository0100644000175200017560000000005607262676531023326 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/SunOS-5.6-sun4m gmv0.9/src/gum/lib/gum/arch/SunOS-5.6-sun4m/CVS/Entries0100644000175200017560000000000207262676574022556 0ustar stephensstephengD gmv0.9/src/gum/lib/gum/arch/SunOS-5.7-sun4/0040755000175200017560000000000007262676531020417 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.7-sun4/tools.mak0100644000175200017560000000007007217552616022240 0ustar stephensstepheng# Use UNIX defaults. include $(GUM)/arch/unix/tools.mak gmv0.9/src/gum/lib/gum/arch/SunOS-5.7-sun4/CVS/0040755000175200017560000000000007262676575021062 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.7-sun4/CVS/Root0100644000175200017560000000003407262676531021712 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/SunOS-5.7-sun4/CVS/Repository0100644000175200017560000000005507262676531023151 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/SunOS-5.7-sun4 gmv0.9/src/gum/lib/gum/arch/SunOS-5.7-sun4/CVS/Entries0100644000175200017560000000005407262676575022412 0ustar stephensstepheng/tools.mak/1.1/Tue Dec 19 03:27:10 2000// D gmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4/0040755000175200017560000000000007262676531020420 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4/tools.mak0100644000175200017560000000007007217552617022242 0ustar stephensstepheng# Use UNIX defaults. include $(GUM)/arch/unix/tools.mak gmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4/CVS/0040755000175200017560000000000007262676575021063 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4/CVS/Root0100644000175200017560000000003407262676531021713 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4/CVS/Repository0100644000175200017560000000005507262676531023152 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/SunOS-5.8-sun4 gmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4/CVS/Entries0100644000175200017560000000005407262676575022413 0ustar stephensstepheng/tools.mak/1.1/Tue Dec 19 03:27:11 2000// D gmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4u/0040755000175200017560000000000007262676531020605 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4u/CVS/0040755000175200017560000000000007262676574021247 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4u/CVS/Root0100644000175200017560000000003407262676531022100 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4u/CVS/Repository0100644000175200017560000000005607262676531023340 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/SunOS-5.8-sun4u gmv0.9/src/gum/lib/gum/arch/SunOS-5.8-sun4u/CVS/Entries0100644000175200017560000000000207262676574022570 0ustar stephensstephengD gmv0.9/src/gum/lib/gum/arch/unix/0040755000175200017560000000000007262733606017172 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/unix/math.libs0100644000175200017560000000000207217552617020764 0ustar stephensstephengm gmv0.9/src/gum/lib/gum/arch/unix/sockets.libs0100644000175200017560000000000407217552617021510 0ustar stephensstephengnsl gmv0.9/src/gum/lib/gum/arch/unix/tools.mak0100755000175200017560000000361507262733606021031 0ustar stephensstepheng# Author: kurt.stephens@parlano.com gum_tools_mak:=1 GUM_ECHO?=/bin/echo# GUM_MKDIR?=/bin/mkdir# GUM_MKDIR_P?=$(GUM_MKDIR) -p# GUM_CAT?=/bin/cat# GUM_CP?=/bin/cp# GUM_CP_RP?=$(GUM_CP) -rp# GUM_CP_RPF?=$(GUM_CP_RP) -f# GUM_LN?=/bin/ln# GUM_LN_S?=$(GUM_LN) -s# GUM_CHMOD?=/bin/chmod# GUM_CHMOD_F?=$(GUM_CHMOD) -f# GUM_CHMOD_RF?=$(GUM_CHMOD) -Rf# GUM_INSTALL?=$(GUM_BIN_DIR)/gum_install# GUM_TAR?=/bin/tar# GUM_RM?=/bin/rm# GUM_RM_RF?=$(GUM_RM) -rf# GUM_RM_F?=$(GUM_RM) -f# GUM_MV?=/bin/mv# GUM_TOUCH?=/bin/touch# GUM_TOUCH_F?=$(GUM_TOUCH) -f# # C compiler GUM_CC?=gcc# GUM_CC_C?=$(GUM_CC) -c# GUM_CC_OUTPUT_FLAG?=-o# GUM_CC_OPTIMIZE_FLAG?=-O# GUM_CC_DEBUG_FLAG?=-g# GUM_CC_PROFILE_FLAG?=# # C++ compiler GUM_CCC?=g++# GUM_CCC_C?=$(GUM_CCC) -c# GUM_CCC_OUTPUT_FLAG?=$(GUM_CC_OUTPUT_FLAG)# GUM_CCC_OPTIMIZE_FLAG?=$(GUM_CC_OPTIMIZE_FLAG)# GUM_CCC_DEBUG_FLAG?=$(GUM_CC_DEBUG_FLAG)# GUM_CCC_PROFILE_FLAG?=$(GUM_CC_PROFILE_FLAG)# # C Preprocessor GUM_CPP?=$(GUM_CC) -E# GUM_CPP_DEFINE_FLAG?=-D# GUM_CPP_INCLUDE_DIR_FLAG?=-I# GUM_CPP_OUTPUT_FLAG?=$(GUM_CC_OUTPUT_FLAG)# GUM_CPP_DEPEND_FLAG?=-H# GUM_CPP_DEPEND_SUFFIX?=.d# # Linker/loader GUM_LD?=$(GUM_CC) GUM_LD_LIB_FLAG?=-l# GUM_LD_LIB_DIR_FLAG?=-L# GUM_LD_OUTPUT_FLAG?=$(GUM_CC_OUTPUT_FLAG)# GUM_LD_OPTIMIZE_FLAG?=$(GUM_CC_OPTIMIZE_FLAG)# GUM_LD_DEBUG_FLAG?=$(GUM_CC_DEBUG_FLAG)# GUM_LD_PROFILE_FLAG?=$(GUM_CC_PROFILE_FLAG)# # Library suffix GUM_LIB_PREFIX?=lib# GUM_LIB_SUFFIX?=.a# GUM_DYNLIB_PREFIX?=lib# GUM_DYNLIB_SUFFIX?=.so# # Library manager GUM_AR?=ar# GUM_AR_C?=$(GUM_AR) cr# GUM_RANLIB?=$(GUM_AR) -s# GUM_STRIP?=strip# # YACC GUM_YACC?=bison -y# # SWIG GUM_SWIG?=swig# # Perl GUM_PERL?=perl# # Java GUM_JAVAC?=javac# GUM_JAVA?=java# ################################################# # Define basic library paths. # # Pick up any .libs files here. GUM_LD_LIB_DIRS+=$(GUM)/arch/unix /lib /usr/lib# ################################################# # EOF gmv0.9/src/gum/lib/gum/arch/unix/CVS/0040755000175200017560000000000007263125757017630 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/unix/CVS/Root0100644000175200017560000000003407262676531020470 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/unix/CVS/Repository0100644000175200017560000000004307262676531021724 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/unix gmv0.9/src/gum/lib/gum/arch/unix/CVS/Entries0100644000175200017560000000020307263125757021154 0ustar stephensstepheng/math.libs/1.1/Tue Dec 19 03:27:11 2000// /sockets.libs/1.1/Tue Dec 19 03:27:11 2000// /tools.mak/1.2/Thu Apr 5 00:08:38 2001// D gmv0.9/src/gum/lib/gum/arch/CYGWIN-1.1.6-ix86/0040755000175200017560000000000007262676531020447 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/CYGWIN-1.1.6-ix86/tools.mak0100755000175200017560000000022507214277454022276 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 # Use UNIX defaults. GUM_CC=gcc -Wall GUM_CCC=g++ -Wall include $(GUM)/arch/unix/tools.mak gmv0.9/src/gum/lib/gum/arch/CYGWIN-1.1.6-ix86/CVS/0040755000175200017560000000000007262676575021112 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/CYGWIN-1.1.6-ix86/CVS/Root0100644000175200017560000000003407262676531021742 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/CYGWIN-1.1.6-ix86/CVS/Repository0100644000175200017560000000006007262676531023175 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/CYGWIN-1.1.6-ix86 gmv0.9/src/gum/lib/gum/arch/CYGWIN-1.1.6-ix86/CVS/Entries0100644000175200017560000000005407262676575022442 0ustar stephensstepheng/tools.mak/1.1/Sat Dec 9 00:39:08 2000// D gmv0.9/src/gum/lib/gum/arch/CVS/0040755000175200017560000000000007267632416016644 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/CVS/Root0100644000175200017560000000003407262676531017505 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/CVS/Repository0100644000175200017560000000003607262676531020743 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch gmv0.9/src/gum/lib/gum/arch/CVS/Entries0100644000175200017560000000036707267632416020203 0ustar stephensstephengD/Linux-2.2.14-5.0-i586//// D/Linux-2.2.16-22-i686//// D/SunOS-5.6-sun4//// D/SunOS-5.6-sun4m//// D/SunOS-5.7-sun4//// D/SunOS-5.8-sun4//// D/SunOS-5.8-sun4u//// D/unix//// D/CYGWIN-1.1.6-ix86//// D/Linux-libc2.2-ix86//// D/Linux-libc2.1-ix86//// gmv0.9/src/gum/lib/gum/arch/Linux-libc2.2-ix86/0040755000175200017560000000000007267632145021234 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-libc2.2-ix86/tools.mak0100644000175200017560000000041007267632145023056 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 # Use UNIX defaults. GUM_CC=gcc -Wall# GUM_CCC=g++ -Wall# include $(GUM)/arch/unix/tools.mak # Pick up any .libs files here. GUM_LD_LIB_DIRS=$(GUM_GENERATED_LIB_DIR) $(GUM)/arch/Linux-libc2.2-ix86 /lib /usr/lib# gmv0.9/src/gum/lib/gum/arch/Linux-libc2.2-ix86/math.libs0100644000175200017560000000000207262700425023015 0ustar stephensstephengm gmv0.9/src/gum/lib/gum/arch/Linux-libc2.2-ix86/sockets.libs0100644000175200017560000000000107262700476023544 0ustar stephensstepheng gmv0.9/src/gum/lib/gum/arch/Linux-libc2.2-ix86/CVS/0040755000175200017560000000000007267632145021667 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-libc2.2-ix86/CVS/Root0100644000175200017560000000003407262704110022512 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/Linux-libc2.2-ix86/CVS/Repository0100644000175200017560000000006107262704110023746 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/Linux-libc2.2-ix86 gmv0.9/src/gum/lib/gum/arch/Linux-libc2.2-ix86/CVS/Entries0100644000175200017560000000020307267632145023213 0ustar stephensstepheng/math.libs/1.1/Wed Apr 4 20:16:21 2001// /sockets.libs/1.1/Wed Apr 4 20:17:02 2001// /tools.mak/1.2/Thu Apr 19 18:54:29 2001// D gmv0.9/src/gum/lib/gum/arch/Linux-libc2.1-ix86/0040755000175200017560000000000007267632416021234 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-libc2.1-ix86/CVS/0040755000175200017560000000000007267632416021667 5ustar stephensstephenggmv0.9/src/gum/lib/gum/arch/Linux-libc2.1-ix86/CVS/Root0100644000175200017560000000003407267632416022527 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/arch/Linux-libc2.1-ix86/CVS/Repository0100644000175200017560000000006107267632416023763 0ustar stephensstephenghome/ion/src/gum/lib/gum/arch/Linux-libc2.1-ix86 gmv0.9/src/gum/lib/gum/arch/Linux-libc2.1-ix86/CVS/Entries0100644000175200017560000000005407267632416023217 0ustar stephensstepheng/tools.mak/1.1/Thu Apr 19 18:39:52 2001// D gmv0.9/src/gum/lib/gum/arch/Linux-libc2.1-ix86/tools.mak0100644000175200017560000000017007267630370023056 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 # Use UNIX defaults. include $(GUM)/arch/Linux-libc2.2-ix86/tools.mak gmv0.9/src/gum/lib/gum/cpp.mak0100644000175200017560000000327707262752360016552 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ######################################################################### # C preprocessor setup # ############################################################### # Generate compilation option defines. # Compute compile flags. GUM_COMPILE:= GUM_CPP_COMPILE_OPTS:=# ifneq "$(strip $(DEBUG))" "" GUM_COMPILE+=$($(gum_compiler)_DEBUG_FLAG) # GUM_CPP_COMPILE_OPTS+= GUM_DEBUG=1# endif ifneq "$(strip $(OPTIMIZE))" "" GUM_COMPILE+=$($(gum_compiler)_OPTIMIZE_FLAG) # GUM_CPP_COMPILE_OPTS+= GUM_OPTIMZE=1# endif ifneq "$(strip $(PROFILE))" "" GUM_COMPILE+=$($(gum_compiler)_PROFILE_FLAG) # GUM_CPP_COMPILE_OPTS+= GUM_PROFILE=1# endif # Defines. GUM_CPP_DEFINE_FLAGS:=$(foreach d,$(GUM_CPP_COMPILE_OPTS) $(GUM_CPP_DEFINES) $(DEFINES) $(DEFINES_INHERITED) $(DEFINES_GLOBAL), '$(GUM_CPP_DEFINE_FLAG)$(d)')# # Include dirs. GUM_CPP_INCLUDE_FLAGS:=$(foreach d,$(GUM_CPP_INCLUDE_DIRS) $(INCLUDE_DIRS) $(INCLUDE_DIRS_INHERITED) $(INCLUDE_DIRS_GLOBAL), '$(GUM_CPP_INCLUDE_DIR_FLAG)$(d)')# # All CPP flags. GUM_CPP_FLAGS:=$(GUM_CPP_DEFINE_FLAGS) $(GUM_CPP_INCLUDE_FLAGS) $(CPP_FLAGS)# ##################################################################### # Preprocessor command line. GUM_PP:=$(GUM_CPP) $(GUM_CPP_FLAGS) $(GUM_CPP_DEPEND_FLAG) $(GUM_COMPILE) $(GUM_CPP_OUTPUT_FLAG)# # Preprocessor auto dependency generation command line. GUM_PP:=$(GUM_BIN_DIR)/gum_cpp $(GUM_PP) ##################################################################### # Compile command line. GUM_COMPILE:=$($(gum_compiler)_C) $(GUM_COMPILE) $($(gum_compiler)_FLAGS) $($(gum_compiler)_OUTPUT_FLAG)# #$(warning GUM_CPP_FLAGS='$(GUM_CPP_FLAGS)') ################################################# # EOF gmv0.9/src/gum/lib/gum/dirs.mak0100644000175200017560000000170507217552617016726 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ##################################################################### # dirs - define directory paths. ############################################################### # generated file directory. # This is environment related. GUM_GENERATED_ROOT?=gumo# GUM_GENERATED_MOD?=o$(if $(strip $(DEBUG)),d)$(if $(strip $(OPTIMIZE)),o)$(if $(strip $(PROFILE)),p)# GUM_GENERATED_DIR?=$(GUM_GENERATED_ROOT)/$(GUM_ARCH_TARGET)/$(GUM_GENERATED_MOD)/$(GUM_BUILD_ROOT_CWD_DELTA)# GUM_DIRS_EARLY+= $(GUM_GENERATED_DIR)# ############################################################### # library locations. # This is environment related. GUM_GENERATED_LIB_DIR?=$(GUM_GENERATED_DIR)# GUM_LD_LIB_DIRS?=$(GUM_GENERATED_LIB_DIR) $(INSTALL_DIR_LIB) $(LIBRARY_DIRS)# ############################################################### # Executable locations. # This is environment related. GUM_GENERATED_EXE_DIR?=$(GUM_GENERATED_DIR)# gmv0.9/src/gum/lib/gum/docbook0100644000175200017560000000513707217552617016641 0ustar stephensstepheng################################################################## # Get tools GUM_CODEDOC:=$(GUM_BIN_DIR)/../../codedoc/bin/codedoc GUM_CODEDOC2DOCBOOK=$(GUM_CODEDOC) GUM_DOCBOOK=$(GUM_BIN_DIR)/../../docbook/bin/docbook PERL=/icimp/run/prod/bin/perl GUM_DOCBOOK_PREFIX:=index# GUM_DOCBOOK_SUFFIX:=.html# DOCBOOK_STYLES=html ################################################################## # Get name PRODUCT:=$(GUM_GENERATED_DIR)/$(NAME)# MEMBERS:=$(DOCBOOK_FILES)# GUM_DOCBOOKS:=$(GUM_DOCBOOKS) $(NAME)# ################################################################## # Get options ################################################################## # Base targets ################################################################## # Handle codedoc. ifneq "$(strip $(CODEDOC_FILES))" "" CODEDOC_OUT:=$(GUM_GENERATED_DIR)/$(NAME)_codedoc.docbook# $(CODEDOC_OUT) : $(CODEDOC_FILES) $(GUM_CODEDOC) $(CODEDOC_FILES) -o $@.codedoc $(GUM_CODEDOC) $@.codedoc -o $@ $(CODEDOC_OUT) : CODEDOC_FILES:=$(CODEDOC_FILES)# $(CODEDOC_OUT) : GUM_CODEDOC:=$(GUM_CODEDOC)# $(CODEDOC_OUT) : GUM_CODEDOC2DOCBOOK:=$(GUM_CODEDOC2DOCBOOK)# DEPENDS_ON:=$(DEPENDS_ON) $(CODEDOC_FILES)# DEPENDS_ON:=$(DEPENDS_ON) $(CODEDOC_OUT) $(CODEDOC_OUT)# GUM_GARBAGE:=$(GUM_GARBAGE) $(CODEDOC_OUT) $(CODEDOC_OUT).codedoc# endif ################################################################## # Handle docbook. $(PRODUCT) : $(MEMBERS) $(DEPENDS_ON) $(DOC_ATTACHMENTS) $(GUM_DOCBOOK) \ -I $(dir $@) \ -o $(dir $@) \ $(foreach s,$(DOCBOOK_STYLES),-s $(s) ) \ -a $(DOC_ATTACHMENTS) +a \ $(MEMBERS) $(PRODUCT) : MEMBERS:=$(MEMBERS)# $(PRODUCT) : DOCBOOK:=$(DOCBOOK)# $(PRODUCT) : DOCBOOK_STYLES:=$(DOCBOOK_STYLES)# $(PRODUCT) : DOC_ATTACHMENTS:=$(DOC_ATTACHMENTS)# $(PRODUCT).tar : $(PRODUCT) $(GUM_TAR) -cvf $@ -C $(dir $(PRODUCT)) $(notdir $(PRODUCT)) $(PRODUCT).tar : PRODUCT:=$(PRODUCT)# products:=$(PRODUCT) $(PRODUCT).tar GUM_TARGETS_ALL:=$(GUM_TARGETS_ALL) $(products) # GUM_GARBAGE:=$(GUM_GARBAGE) $(products) # ################################################################## # install HTML:=$(HTML) $(HTML_FILES) HTML:=$(HTML) $(products)# DOCBOOK:=$(DOCBOOK) $(products)# gum_install_files:=$(NAME)-docbook-install include $(GUM)/install.mak ################################################################## # Alias $(NAME)-docbook : $(products) .PHONY: $(NAME)-docbook GUM_HELP:=$(GUM_HELP) $(NAME)-docbook creates $(products) from $(DOCBOOK_FILES) $(CODEDOC_FILES) @@@ ################################################################## # Reset vars HTML:= DOCBOOK_FILES:= CODEDOC_FILES:= include ${GUM}/product.post.mak gmv0.9/src/gum/lib/gum/env0100644000175200017560000000123207217552617016001 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/10/24 ##################################################################### # Set up baseline environment for the gum shell. GUM="${GUM_BIN_DIR}/../lib/gum" GUM="`cd \"$GUM\" && /bin/pwd`" export GUM GUM_MAKE="${GUM_MAKE:-make}" export GUM_MAKE GUM_STARTED="`/bin/date`" export GUM_STARTED GUM_USERNAME="`whoami`" export GUM_USERNAME GUM_HOSTNAME="`hostname`.`domainname 2>/dev/null`" export GUM_HOSTNAME GUM_DIR="`/bin/pwd`" export GUM_DIR _GUM_ARCH_VAR=1 . "${GUM_BIN_DIR}/gum_arch" GUM_ARCH_TARGET="${GUM_ARCH_TARGET:-${GUM_ARCH}}" export GUM_ARCH_TARGET GUMakefile="${GUMakefile:-GUMakefile}" export GUMakefile gmv0.9/src/gum/lib/gum/exe0100755000175200017560000000664607263154204016002 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 GUM_PRODUCT_TYPE:=exe# ################################################################## # Generate files include ${GUM}/product.pre.mak MEMBERS+= $(GUM_O_FILES)# ################################################################## # Get name PRODUCT:=$(GUM_GENERATED_EXE_DIR)/$(GUM_EXE_PREFIX)$(NAME)$(GUM_EXE_SUFFIX)# $(NAME)_exe:=$(PRODUCT)# GUM_EXES:=$(GUM_EXES) $(NAME)# ################################################################## # Compute libraries it depends on $(NAME)_exe_libs:=$(LIBS)# $(NAME)_exe_libs_all:=$(LIBS)# ################################################################## # Get options # Add library dir flags # Basic exe generation GUM_LINK:= ifneq "$(strip $(DEBUG))" "" GUM_LINK+= $(GUM_LD_DEBUG_FLAG)# endif ifneq "$(strip $(OPTIMIZE))" "" GUM_LINK+= $(GUM_LD_OPTIMIZE_FLAG)# endif ifneq "$(strip $(PROFILE))" "" GUM_LINK+= $(GUM_LD_PROFILE_FLAG)# endif # Add libary search paths. GUM_LD_FLAGS:=$(foreach l,$(GUM_LD_LIB_DIRS) $(LIB_DIRS) $(LIB_DIRS_INHERITED) $(LIB_DIRS_GLOBAL),$(GUM_LD_LIB_DIR_FLAG)$l )# # Compose a link operation. GUM_LINK:=$(GUM_LD) $(GUM_LD_FLAGS) $(GUM_LINK) $(GUM_LD_OUTPUT_FLAG)# ################################################################## # Locate libraries. # _GUM_FIND_LIBS:=$(GUM_BIN_DIR)/gum_find_libs --P "$(GUM_LIB_PREFIX)" --S "$(GUM_LIB_SUFFIX)" $(foreach l,$(GUM_LD_LIB_DIRS) $(LIB_DIRS),-L$(l) ) $(foreach l,$(LIBS),-l$(l) )# # A list of all library names depended on, that may not already exist. _libs_all:=$(_GUM_FIND_LIBS) --l $(GUM_LD_LIB_FLAG)# # A list of all library files depended on, that already exist. DEPENDS_ON:=$(DEPENDS_ON) $(shell $(_GUM_FIND_LIBS) --p)# LIBMAK:=$(shell $(_GUM_FIND_LIBS) --m)# #$(warning $(PRODUCT): LIBMAK=$(LIBMAK)) #$(warning $(PRODUCT): DEPENDS_ON=$(DEPENDS_ON)) -include /dev/null $(LIBMAK) ################################################################## # Base Target. # $(PRODUCT) : $(MEMBERS) $(DEPENDS_ON) $(GUM_DEPENDS_ON) $(GUM_SILENT) $(GUM_LOG) "Linking executable $(NAME)" $(GUM_MKDIR_P) $(dir $@) $(GUM_LINK) $@ $(MEMBERS) $(shell $(LIBS_ALL)) # Bind vars to target. $(PRODUCT) : NAME:=$(NAME)# $(PRODUCT) : GUM_LINK:=$(GUM_LINK)# $(PRODUCT) : MEMBERS:=$(MEMBERS)# $(PRODUCT) : LIBS:=$(LIBS)# $(PRODUCT) : LIBS_ALL:=$(_libs_all)# GUM_TARGETS_ALL:=$(GUM_TARGETS_ALL) $(PRODUCT)# GUM_GARBAGE:=$(GUM_GARBAGE) $(PRODUCT)# ################################################################## # install BIN:=$(BIN) $(PRODUCT)# EXE:=$(EXE) $(PRODUCT)# gum_install_files:=$(NAME)-exe-install# include $(GUM)/install.mak BIN:=# EXE:=# ################################################################## # Alias $(NAME)-exe : $(PRODUCT) GUM_HELP:=$(GUM_HELP) $(NAME)-exe creates executable $(NAME) $(PRODUCT) @@@# .PHONY: $(NAME)-exe ################################################################## # Debug $(NAME)-exe-debug : $(PRODUCT) gdb $(PRODUCT) $(NAME)-exe-debug : PRODUCT=$(PRODUCT)# GUM_HELP:=$(GUM_HELP) $(NAME)-exe-debug debugs executable $(NAME) $(PRODUCT) @@@# .PHONY: $(NAME)-exe-debug ################################################################## # Run $(NAME)-exe-run : $(PRODUCT) $(PRODUCT) $(ARGS) $(NAME)-exe-run : PRODUCT=$(PRODUCT)# GUM_HELP:=$(GUM_HELP) $(NAME)-exe-run runs executable $(NAME) $(PRODUCT) @@@# .PHONY: $(NAME)-exe-run ################################################################## # Reset vars include ${GUM}/product.post.mak gmv0.9/src/gum/lib/gum/genfiles.mak0100644000175200017560000000040507217772703017555 0ustar stephensstepheng ##################################################################### # genfiles # Author: kurt.stephens@parlano.com 2000/12/19 # First generate productions for any suffix translation rules. include $(GUM)/suffix.mak #$(warning GUM_O_FILES=$(GUM_O_FILES)) gmv0.9/src/gum/lib/gum/help0100755000175200017560000000042307217552617016145 0ustar stephensstepheng HELP for GUM: TOP-LEVEL TARGETS: all Make all products install Install all exported products uninstall Uninstall all exported products clean Delete all products veryclean Deletes all products and output directories. help Shows this message SPECIFIC TARGETS: gmv0.9/src/gum/lib/gum/install.mak0100755000175200017560000000576407220364752017442 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/10/04 #################################################### # install # Get file to install from INSTALL_VARS ifneq "$(strip $(INSTALL_VARS))" "" #$(warning INSTALL_VARS=$(INSTALL_VARS) ) INSTALL_FILES_DEPS:=$(INSTALL_FILES_DEPS) $(foreach v,$(INSTALL_VARS),$(foreach f,$($(v)), $f)) INSTALL_FILES:=$(INSTALL_FILES) $(foreach v,$(INSTALL_VARS),$(foreach f,$($(v)), $(if $(INSTALL_DIR_$(v)),$f $(GUM_INSTALL_STAGE)$(INSTALL_DIR_$(v))/$(notdir $(f))))) INSTALL_VARS:= endif ifneq "$(strip $(INSTALL_FILES))" "" ifeq "$(strip $(gum_install_files))" "" gum_install_files:=$(NAME)-install# Default endif #$(warning gum_install_files=$(gum_install_files)) GUM_INSTALL_FILES_DEPS:=$(GUM_INSTALL_FILES_DEPS) $(INSTALL_FILES_DEPS)# GUM_INSTALL_FILES:=$(GUM_INSTALL_FILES) $(INSTALL_FILES)# ifeq "$(INSTALL_MODE)" "" INSTALL_MODE:=$(GUM_INSTALL_MODE)# endif ifeq "$(INSTALL_OWNER)" "" INSTALL_OWNER:=$(GUM_INSTALL_OWNER)# endif ifeq "$(INSTALL_GROUP)" "" INSTALL_GROUP:=$(GUM_INSTALL_GROUP)# endif ifneq "$(STRIP)" "" INSTALL_STRIP:=$(GUM_STRIP) else INSTALL_STRIP:= endif export GUM_MKDIR_P export GUM_CHMOD_F export GUM_CHMOD_RF export GUM_TAR $(gum_install_files) : $(INSTALL_FILES_DEPS) @$(GUM_ECHO) Installing $@ $(INSTALL_PRE_COMMAND) $(GUM_INSTALL) \ - INSTALL_MODE '$(INSTALL_MODE)' \ - INSTALL_STRIP '$(INSTALL_STRIP)' \ -- $(INSTALL_FILES) $(INSTALL_POST_COMMAND) GUM_HELP:=$(GUM_HELP) $(gum_install_files) installs $(foreach f,$(INSTALL_FILES),'$(f)' ) @@@ # Bind vars $(gum_install_files) : INSTALL_MODE:=$(INSTALL_MODE)# $(gum_install_files) : INSTALL_OWNER:=$(INSTALL_OWNER)# $(gum_install_files) : INSTALL_GROUP:=$(INSTALL_GROUP)# $(gum_install_files) : INSTALL_FILES:=$(INSTALL_FILES)# $(gum_install_files) : INSTALL_STRIP:=$(INSTALL_STRIP)# $(gum_install_files) : INSTALL_PRE_COMMAND:=$(INSTALL_PRE_COMMAND)# $(gum_install_files) : INSTALL_POST_COMMAND:=$(INSTALL_POST_COMMAND)# # Add install target GUM_TARGETS_INSTALL:=$(GUM_TARGETS_INSTALL) $(gum_install_files) # Uninstall $(gum_install_files)-uninstall : @$(GUM_ECHO) Un-installing $@ $(UNINSTALL_PRE_COMMAND) @set X $(INSTALL_FILES) ; shift ;\ while [ $$# -gt 0 ]; \ do \ set -x ;\ $(GUM_RM_RF) "$$2" ;\ set +x ;\ shift 2 ;\ done $(UNINSTALL_POST_COMMAND) # Bind vars $(gum_install_files)-uninstall : INSTALL_FILES:=$(INSTALL_FILES)# $(gum_install_files)-uninstall : UNINSTALL_PRE_COMMAND:=$(UNINSTALL_PRE_COMMAND) $(gum_install_files)-uninstall : UNINSTALL_POST_COMMAND:=$(UNINSTALL_POST_COMMAND) GUM_HELP:=$(GUM_HELP) $(gum_install_files)-uninstall uninstalls $(foreach f,$(INSTALL_FILES),'$f' ) @@@# # Add uninstall target GUM_TARGETS_UNINSTALL:=$(GUM_TARGETS_UNINSTALL) $(gum_install_files)-uninstall .PHONY : $(gum_install_files) $(gum_install_files)-uninstall endif # Reset vars gum_install_files:=# INSTALL_FILES:=# INSTALL_FILES_DEPS:=# INSTALL_MODE:=# INSTALL_USER:=# INSTALL_GROUP:=# INSTALL_PRE_COMMAND:=# INSTALL_POST_COMMAND:=# UNINSTALL_PRE_COMMAND:=# UNINSTALL_POST_COMMAND:=# gmv0.9/src/gum/lib/gum/install.post.mak0100755000175200017560000000055407217552617020423 0ustar stephensstepheng ################################################################## # install target install : all $(GUM_TARGETS_INSTALL) GUM_HELP:=$(GUM_HELP) install does $(foreach x,all $(GUM_TARGETS_INSTALL),'$(x)' ) @@@ uninstall : $(GUM_TARGETS_UNINSTALL) GUM_HELP:=$(GUM_HELP) uninstall does $(foreach x,$(GUM_TARGETS_UNINSTALL),'$(x)' ) @@@ .PHONY: install uninstall gmv0.9/src/gum/lib/gum/install.pre.mak0100755000175200017560000000110007262721326020203 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/10/04 GUM_INSTALL_STAGE?=# INSTALL_ROOT?=$(HOME)/arch/$(GUM_ARCH_TARGET)# # Define the different install locations for different INSTALL_VARs # e.g. INSTALL_DIR_LIB is used for each LIB, # INSTALL_DIR_BIN is used for each BIN # INSTALL_DIR_LIB?=$(INSTALL_ROOT)/lib# INSTALL_DIR_H_FILES?=$(INSTALL_ROOT)/include/$(PACKAGE)# INSTALL_DIR_BIN?=$(INSTALL_ROOT)/bin# INSTALL_DIR_EXE?=$(INSTALL_DIR_BIN)# # Defaults GUM_INSTALL_MODE?=ugo-w# GUM_INSTALL_OWNER?=# GUM_INSTALL_GROUP?=# #$(warning GUM_INSTALL_MODE=$(GUM_INSTALL_MODE)) gmv0.9/src/gum/lib/gum/lib0100755000175200017560000000434007263174613015762 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 GUM_PRODUCT_TYPE:=lib# ################################################################## # Generate files include ${GUM}/product.pre.mak MEMBERS:=$(MEMBERS) $(GUM_O_FILES)# ################################################################## # Compute product name. $(NAME)_lib_name:=$(GUM_LIB_PREFIX)$(NAME)$(GUM_LIB_SUFFIX)# PRODUCT:=$(GUM_GENERATED_LIB_DIR)/$($(NAME)_lib_name)# LIB_LIBS:=$(GUM_GENERATED_LIB_DIR)/$(NAME).libs# LIB_LIBMAK:=$(GUM_GENERATED_LIB_DIR)/$(NAME).libmak# GUM_LIBS_GENERATED:=$(GUM_LIBS_GENERATED) $(NAME)# ################################################################## # Compute libraries it depends on $(NAME)_lib_libs:=$(LIBS)# $(NAME)_lib_libs_all:=$(NAME) $(LIBS)# LIBS:=# ################################################################## # Base target $(PRODUCT) : $(MEMBERS) $(DEPENDS_ON) $(GUM_DEPENDS_ON) $(GUM_SILENT) $(GUM_LOG) "Creating library $(NAME)" $(GUM_MKDIR_P) $(dir $@) $(GUM_RM_F) $@ $(GUM_AR_C) $@ $(MEMBERS) $(GUM_RANLIB) $@ $(GUM_ECHO) $(LIB_LIBS_ALL) > $(LIB_LIBS) $(GUM_ECHO) 'ifeq "$$(_GUM_$(NAME)_LIB_TARGET_DEFINED)" ""' > $(LIB_LIBMAK) $(GUM_ECHO) "_GUM_$(NAME)_TARGET_DEFINED:=1" >> $(LIB_LIBMAK) $(GUM_ECHO) "$(shell cd $(dir $@) && /bin/pwd)/$(notdir $@) :" >> $(LIB_LIBMAK) $(GUM_ECHO) " cd $(GUM_DIR) && $(GUM_) $(NAME)-lib" >> $(LIB_LIBMAK) $(GUM_ECHO) "endif" >> $(LIB_LIBMAK) _GUM_$(NAME)_LIB_TARGET_DEFINED=1 $(PRODUCT) : NAME:=$(NAME)# $(PRODUCT) : MEMBERS:=$(MEMBERS)# $(PRODUCT) : LIB_LIBS:=$(LIB_LIBS)# $(PRODUCT) : LIB_LIBMAK:=$(LIB_LIBMAK)# $(PRODUCT) : LIB_LIBS_ALL:=$($(NAME)_lib_libs_all)# GUM_TARGETS_ALL:=$(GUM_TARGETS_ALL) $(PRODUCT)# GUM_GARBAGE:=$(GUM_GARBAGE) $(PRODUCT) $(LIB_LIBS) $(LIB_LIBMAK)# ################################################################## # install LIB:=$(LIB) $(PRODUCT) $(LIB_LIBS) $(LIB_LIBMAK)# gum_install_files:=$(NAME)-lib-install# include $(GUM)/install.mak LIB:= ################################################################## # Alias $(NAME)-lib : $(PRODUCT) .PHONY: $(NAME)-lib GUM_HELP:=$(GUM_HELP) $(NAME)-lib creates library $(NAME) $(PRODUCT) @@@# ################################################################## # Reset vars include ${GUM}/product.post.mak gmv0.9/src/gum/lib/gum/product.post.mak0100644000175200017560000000051307263160456020422 0ustar stephensstepheng################################################################## # Reset vars for top-level product # Author: kurt.stephens@parlano.com 2000/12/19 GUM_PRODUCT_TYPE:= NAME:= MEMBERS:= LIBS:= # DUH this should be part of the suffix handling code! H_FILES:= # Now do the suffix production rules. include $(GUM)/suffix.post.mak gmv0.9/src/gum/lib/gum/product.pre.mak0100644000175200017560000000031007217552617020221 0ustar stephensstepheng################################################################## # Defines for top-level product # Generate intermediate files include $(GUM)/genfiles.mak # Do any subdirs include $(GUM)/subdirs gmv0.9/src/gum/lib/gum/subdirs0100644000175200017560000000605107263117344016663 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ##################################################################### # subdirs - recurse into specified subdirectories ##################################################################### # Variables to pass to subdirectories GUM_SUBDIR_VARS=\ GUM_SILENT \ GUM_CC \ GUM_LD \ CC_FLAGS_GLOBAL \ CCC_FLAGS_GLOBAL \ CPP_FLAGS_GLOBAL \ INCLUDE_DIRS_GLOBAL \ LIB_DIRS_GLOBAL \ DEFINES_GLOBAL \ OPTIMIZE \ DEBUG \ PROFILE \ GUM_SUBDIR_VARS GUM_SUBDIR_OPTS+=\ INCLUDE_DIRS_INHERITED='$(foreach d,$(INCLUDE_DIRS),$(call gum_abspath,$(d)) ) $(INCLUDE_DIR_INHERITED)' \ LIB_DIRS_INHERITED='$(foreach d,$(LIB_DIRS),$(call gum_abspath,$(d)) ) $(LIB_DIRS_INHERITED)' \ DEFINES_INHERITED='$(DEFINES) $(DEFINES_INHERITED)' # If the directory does not already exist, leave the path alone. gum_abspath=$(strip $(shell (cd '$(1)' 2>/dev/null && /bin/pwd) || /bin/echo '$(1)'))# ##################################################################### # Target to apply to subdirectories GUM_SUBDIR_TARGETS:=$(GUM_TOP_LEVEL_TARGETS)# ##################################################################### # Save some variables #$(warning SUBDIRS=$(SUBDIRS)) ifneq "$(strip $(SUBDIRS))" "" gum_subdirs:=$(NAME)# ifdef $(gum_subdirs)_TARGETS gum_subdirs_try_again+=_# gum_subdirs+=$(gum_subdirs_try_again)# endif gum_subdirs:=$(gum_subdirs)-subdirs# $(gum_subdirs)_TARGETS:=$(TARGETS)# $(gum_subdirs)_SUBDIRS:=$(SUBDIRS)# ##################################################################### # phony target to cause recursion gum_subdirs_targets:=$(gum_subdirs)-all $(gum_subdirs)-install $(gum_subdirs)-clean# $(gum_subdirs_targets) : $(GUM_SILENT)\ for t in $(subdirs_TARGETS) ;\ do \ for s in $(subdirs_SUBDIRS) ;\ do \ $(GUM_LOG) "Making $$s $$t : ..." ;\ (cd "$$s" && \ $(GUM_) \ $(foreach v,$(subdirs_VARS),$v='$($v)' ) \ GUM_LOG_PREFIX='$(GUM_LOG_PREFIX)*' \ $(subdirs_OPTS) \ "$$t") || exit 1; \ $(GUM_LOG) "Making $$s $$t : DONE" ;\ done; \ done # Target specific vars $(gum_subdirs_targets) : subdirs_TARGETS:=$(SUBDIR_TARGETS) $(GUM_SUBDIR_TARGETS)# $(gum_subdirs_targets) : subdirs_SUBDIRS:=$(SUBDIRS) $(GUM_SUBDIRS)# $(gum_subdirs_targets) : subdirs_VARS:=$(GUM_SUBDIR_VARS) $(SUBDIR_VARS)# $(gum_subdirs_targets) : subdirs_OPTS:=$(GUM_SUBDIR_OPTS) $(SUBDIR_OPTS)# gum_subdirs_all_targets:=$(gum_subdirs_all_targets) $(gum_subdirs)-all# gum_subdirs_install_targets:=$(gum_subdirs_install_targets) $(gum_subdirs)-install# gum_subdirs_clean_targets:=$(gum_subdirs_clean_targets) $(gum_subdirs)-clean# .PHONY : $(gum_subdirs) ##################################################################### # What parent target gets $(gum_subdirs) as a dependency? ifneq "$(strip $(GUM_PRODUCT_TYPE))" "" # The "all" target depends on us GUM_TARGETS_ALL:=$(GUM_TARGETS_ALL) $(gum_subdirs)-all else # A top-level product depends on us DEPENDS_ON:=$(DEPENDS_ON) $(gum_subdirs)-all endif gum_subdirs:= endif SUBDIRS:= #$(warning DEPENDS_ON=$(DEPENDS_ON)) gmv0.9/src/gum/lib/gum/subdirs.post.mak0100644000175200017560000000055107217552617020422 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 gum-subdirs-all : $(gum_subdirs_all_targets) GUM_TARGETS_ALL+=gum-subdirs-all gum-subdirs-install : $(gum_subdirs_install_targets) #$(warning gum_subdirs_clean_targets=$(gum_subdirs_clean_targets)) gum-subdirs-clean : $(gum_subdirs_clean_targets) .PHONY : gum-subdirs-all gum-subdirs-install gum-subdirs-clean gmv0.9/src/gum/lib/gum/suffix.mak0100755000175200017560000000054707217772667017310 0ustar stephensstepheng##################################################################### # suffix # Author: kurt.stephens@parlano.com 2000/12/19 # Initialize any suffix translation variables -include $(foreach s,$(GUM_SUFFIXES),$(call gum_path,suffix/$s.pre.mak) ) # Compute suffix translation products -include $(foreach s,$(GUM_SUFFIXES),$(call gum_path,suffix/$s.mak) ) gmv0.9/src/gum/lib/gum/suffix.post.mak0100644000175200017560000000036707217552617020260 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ##################################################################### # suffix # instantiate any suffix translation rules -include $(foreach s,$(GUM_SUFFIXES),$(call gum_path,suffix/$s.post.mak) ) gmv0.9/src/gum/lib/gum/suffix.pre.mak0100644000175200017560000000057307262730505020052 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ##################################################################### # suffix # set up any variables needs for the genfile.mak suffix rules. ifndef GUM_SUFFIXES # List any suffixes in order of production GUM_SUFFIXES:=swig y c cc o endif # Override existing suffix rules .SUFFIXES: .SUFFIXES : $(foreach s,$(GUM_SUFFIXES),.$s ) gmv0.9/src/gum/lib/gum/suffix/0040755000175200017560000000000007264133747016600 5ustar stephensstephenggmv0.9/src/gum/lib/gum/suffix/c.mak0100644000175200017560000000244507263161520017503 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ######################################################################### # C preprocessor setup # # Enumerate the C files to be compiled GUM_C_FILES:=$(GUM_C_FILES_GENERATED) $(C_FILES_GENERATED) $(C_FILES) ifneq "$(strip $(GUM_C_FILES))" "" # Enumerate the O files generated GUM_C_O_FILES_GENERATED:=$(GUM_C_FILES:%.$(GUM_C_SUFFIX)=$(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/$(notdir %).$(GUM_O_SUFFIX))# # Set up compiler and preprocessor options. gum_compiler:=GUM_CC# include $(GUM)/cpp.mak #$(warning GUM_C_O_FILES_GENERATED=$(GUM_C_O_FILES_GENERATED)) # Bind current vars to generated targets. $(GUM_C_O_FILES_GENERATED) : GUM_PP:=$(GUM_PP)# $(GUM_C_O_FILES_GENERATED) : GUM_COMPILE:=$(GUM_COMPILE)# # O files depend on H files. $(GUM_C_O_FILES_GENERATED) : $(H_FILES) $(GUM_DEPENDS_ON) # Add to generated all list. GUM_C_O_FILES_GENERATED_ALL:=$(GUM_C_O_FILES_GENERATED_ALL) $(GUM_C_O_FILES_GENERATED)# GUM_O_FILES_GENERATED:=$(GUM_O_FILES_GENERATED) $(GUM_C_O_FILES_GENERATED)# GUM_O_FILES_TARGETS:=$(GUM_O_FILES_TARGETS) $(GUM_C_O_FILES_GENERATED)# # Generated dependencies. GUM_DEPENDS_GENERATED:=$(GUM_DEPENDS_GENERATED) $(GUM_C_O_FILES_GENERATED:%=%$(GUM_CPP_DEPEND_SUFFIX))# endif ################################################# # EOF gmv0.9/src/gum/lib/gum/suffix/c.post.mak0100644000175200017560000000101607263160266020466 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 %.$(GUM_C_SUFFIX) : $(sort $(GUM_C_O_FILES_GENERATED)) : $(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/%.$(GUM_O_SUFFIX) : %.$(GUM_C_SUFFIX) $(GUM_SILENT) $(GUM_LOG) "Compiling $<" $(GUM_MKDIR_P) $(dir $@) $(GUM_PP) "$<" "$@.i" "$@" $(GUM_COMPILE) $@ $@.i $(GUM_RM) $@.i ################################################################## # Reset vars for top-level product GUM_C_O_FILES_GENERATED:= C_FILES:= ################################################# # EOF gmv0.9/src/gum/lib/gum/suffix/c.pre.mak0100644000175200017560000000013307217552617020272 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 GUM_C_SUFFIX:=c# GUM_C_FILES_GENERATED:=# gmv0.9/src/gum/lib/gum/suffix/cc.mak0100644000175200017560000000243107262726026017650 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ######################################################################### # C++ # GUM_CC_FILES:=$(GUM_CC_FILES_GENERATED) $(CC_FILES_GENERATED) $(CC_FILES) ifneq "$(strip $(GUM_CC_FILES))" "" # Enumerate the O files generated GUM_CC_O_FILES_GENERATED:=$(GUM_CC_FILES:%.$(GUM_CC_SUFFIX)=$(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/$(notdir %).$(GUM_O_SUFFIX)) #$(warning GUM_CC_O_FILES_GENERATED=$(GUM_CC_O_FILES_GENERATED)) # Set up compiler and preprocessor options. gum_compiler:=GUM_CCC# include $(GUM)/cpp.mak # Bind current vars to generated targets. $(GUM_CC_O_FILES_GENERATED) : GUM_PP:=$(GUM_PP)# $(GUM_CC_O_FILES_GENERATED) : GUM_COMPILE:=$(GUM_COMPILE)# # O files depend on H files and HH files. $(GUM_CC_O_FILES_GENERATED) : $(H_FILES) $(HH_FILES) $(GUM_DEPENDS_ON) # Add to generated all list. GUM_CC_O_FILES_GENERATED_ALL:=$(GUM_CC_O_FILES_GENERATED_ALL) $(GUM_CC_O_FILES_GENERATED)# GUM_O_FILES_GENERATED:=$(GUM_O_FILES_GENERATED) $(GUM_CC_O_FILES_GENERATED)# GUM_O_FILES_TARGETS:=$(GUM_O_FILES_TARGETS) $(GUM_CC_O_FILES_GENERATED)# # Generated dependencies. GUM_DEPENDS_GENERATED:=$(GUM_DEPENDS_GENERATED) $(GUM_CC_O_FILES_GENERATED:%=%$(GUM_CPP_DEPEND_SUFFIX)) endif ################################################# # EOF gmv0.9/src/gum/lib/gum/suffix/cc.post.mak0100644000175200017560000000103107263160446020626 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 %.$(GUM_CC_SUFFIX) : $(sort $(GUM_CC_O_FILES_GENERATED)) : $(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/%.$(GUM_O_SUFFIX) : %.$(GUM_CC_SUFFIX) $(GUM_SILENT) $(GUM_LOG) "Compiling $<" $(GUM_MKDIR_P) $(dir $@) $(GUM_PP) "$<" "$@.ii" "$@" $(GUM_COMPILE) $@ $@.ii $(GUM_RM) $@.ii ################################################################## # Reset vars for top-level product CC_FILES:=# GUM_CC_O_FILES_GENERATED:=# ################################################# # EOF gmv0.9/src/gum/lib/gum/suffix/cc.pre.mak0100644000175200017560000000013607217552620020432 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 GUM_CC_SUFFIX:=cc# GUM_CC_FILES_GENERATED:=# gmv0.9/src/gum/lib/gum/suffix/o.mak0100644000175200017560000000017507217552620017521 0ustar stephensstepheng GUM_O_FILES:=$(GUM_O_FILES_GENERATED) $(O_FILES_GENERATED) $(O_FILES) GUM_GARBAGE:=$(GUM_GARBAGE) $(GUM_O_FILES_GENERATED) gmv0.9/src/gum/lib/gum/suffix/o.post.mak0100644000175200017560000000000107217552620020471 0ustar stephensstepheng gmv0.9/src/gum/lib/gum/suffix/o.pre.mak0100644000175200017560000000013307217600246020276 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/12/19 GUM_O_SUFFIX:=o# GUM_O_FILES_GENERATED:=# gmv0.9/src/gum/lib/gum/suffix/CVS/0040755000175200017560000000000007264405263017226 5ustar stephensstephenggmv0.9/src/gum/lib/gum/suffix/CVS/Root0100644000175200017560000000003407262676531020074 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/suffix/CVS/Repository0100644000175200017560000000004007262676531021325 0ustar stephensstephenghome/ion/src/gum/lib/gum/suffix gmv0.9/src/gum/lib/gum/suffix/CVS/Entries0100644000175200017560000000116507264405263020562 0ustar stephensstepheng/c.pre.mak/1.1/Tue Dec 19 03:27:11 2000// /cc.pre.mak/1.1/Tue Dec 19 03:27:12 2000// /o.mak/1.1/Tue Dec 19 03:27:12 2000// /o.post.mak/1.1/Tue Dec 19 03:27:12 2000// /o.pre.mak/1.1/Tue Dec 19 06:31:02 2000// /cc.mak/1.2/Wed Apr 4 23:19:50 2001// /swig.pre.mak/1.1/Thu Apr 5 17:08:14 2001// /y.mak/1.1/Wed Apr 4 23:35:36 2001// /y.pre.mak/1.1/Wed Apr 4 23:21:51 2001// /c.mak/1.2/Thu Apr 5 21:27:44 2001// /c.post.mak/1.2/Thu Apr 5 21:16:38 2001// /cc.post.mak/1.2/Thu Apr 5 21:18:30 2001// /y.post.mak/1.2/Thu Apr 5 21:19:58 2001// /swig.post.mak/1.3/Sat Apr 7 00:52:08 2001// /swig.mak/1.3/Sun Apr 8 19:11:35 2001// D gmv0.9/src/gum/lib/gum/suffix/swig.mak0100644000175200017560000000400707264133747020241 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ######################################################################### # Swig # GUM_SWIG_FILES:=$(GUM_SWIG_FILES_GENERATED) $(SWIG_FILES_GENERATED) $(SWIG_FILES) ifneq "$(strip $(GUM_SWIG_FILES))" "" # Get CPP flags include $(GUM)/cpp.mak GUM_SWIG_TARGET:=$(SWIG_TARGET)# _swig_files:=$(notdir $(GUM_SWIG_FILES))# # Enumerate the C files generated # These files are simply placeholders for the real targets. GUM_SWIG_C_FILES_GENERATED:=$(_swig_files:%.$(GUM_SWIG_SUFFIX)=$(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/$(notdir %)_swig.$(GUM_C_SUFFIX))# # Enumerate the actual C files generated for each GUM_SWIG_TARGET. GUM_SWIG_TARGET_C_FILES_GENERATED:=$(foreach t,$(GUM_SWIG_TARGET),$(_swig_files:%.$(GUM_SWIG_SUFFIX)=$(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/$(notdir %)_swig_$(t).$(GUM_C_SUFFIX)))# #$(warning GUM_SWIG_C_FILES_GENERATED=$(GUM_SWIG_C_FILES_GENERATED)) #$(warning GUM_SWIG_TARGET_C_FILES_GENERATED=$(GUM_SWIG_TARGET_C_FILES_GENERATED)) # Bind current vars to generated targets. $(GUM_SWIG_C_FILES_GENERATED) : GUM_SWIG:=$(GUM_SWIG)# $(GUM_SWIG_C_FILES_GENERATED) : GUM_SWIG_TARGET:=$(GUM_SWIG_TARGET)# $(GUM_SWIG_C_FILES_GENERATED) : NAME:=$(NAME)# $(GUM_SWIG_C_FILES_GENERATED) : PROJECT:=$(PROJECT)# $(GUM_SWIG_C_FILES_GENERATED) : GUM_CPP_FLAGS:=$(GUM_CPP_FLAGS)$ # Add to generated all list. GUM_SWIG_C_FILES_GENERATED_ALL:=$(GUM_SWIG_C_FILES_GENERATED_ALL) $(GUM_SWIG_C_FILES_GENERATED)# GUM_SWIG_C_FILES_GENERATED_ALL:=$(GUM_SWIG_C_FILES_GENERATED_ALL) $(GUM_SWIG_TARGET_C_FILES_GENERATED)# GUM_C_FILES_GENERATED:=$(GUM_C_FILES_GENERATED) $(GUM_SWIG_C_FILES_GENERATED)# GUM_C_FILES_GENERATED:=$(GUM_C_FILES_GENERATED) $(GUM_SWIG_TARGET_C_FILES_GENERATED)# GUM_C_FILES_TARGETS:=$(GUM_C_FILES_TARGETS) $(GUM_SWIG_C_FILES_GENERATED)# GUM_C_FILES_TARGETS:=$(GUM_C_FILES_TARGETS) $(GUM_SWIG_TARGET_C_FILES_GENERATED)# GUM_GARBAGE+=$(GUM_SWIG_C_FILES_GENERATED) $(GUM_SWIG_TARGET_C_FILES_GENERATED)# endif ################################################# # EOF gmv0.9/src/gum/lib/gum/suffix/y.mak0100644000175200017560000000160207262727710017533 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 ######################################################################### # Yacc # GUM_Y_FILES:=$(GUM_Y_FILES_GENERATED) $(Y_FILES_GENERATED) $(Y_FILES) ifneq "$(strip $(GUM_Y_FILES))" "" # Enumerate the C files generated GUM_Y_C_FILES_GENERATED:=$(GUM_Y_FILES:%.$(GUM_Y_SUFFIX)=$(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/$(notdir %).$(GUM_C_SUFFIX)) #$(warning GUM_Y_C_FILES_GENERATED=$(GUM_Y_C_FILES_GENERATED)) # Bind current vars to generated targets. $(GUM_Y_C_FILES_GENERATED) : GUM_YACC:=$(GUM_YACC)# # Add to generated all list. GUM_Y_C_FILES_GENERATED_ALL:=$(GUM_Y_C_FILES_GENERATED_ALL) $(GUM_Y_C_FILES_GENERATED)# GUM_C_FILES_GENERATED:=$(GUM_C_FILES_GENERATED) $(GUM_Y_C_FILES_GENERATED)# GUM_C_FILES_TARGETS:=$(GUM_C_FILES_TARGETS) $(GUM_Y_C_FILES_GENERATED)# endif ################################################# # EOF gmv0.9/src/gum/lib/gum/suffix/swig.pre.mak0100644000175200017560000000030707263123176021017 0ustar stephensstepheng# Author: kurtstephens@acm.org 2001/04/04 GUM_SWIG_SUFFIX:=swig# GUM_SWIG_FILES_GENERATED:=# # Control targets and target options. SWIG_TARGET?=tcl8# SWIG_TARGET_tcl8=#-namespace -module $(NAME)# gmv0.9/src/gum/lib/gum/suffix/y.pre.mak0100644000175200017560000000013307262726217020317 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 GUM_Y_SUFFIX:=y# GUM_Y_FILES_GENERATED:=# gmv0.9/src/gum/lib/gum/suffix/y.post.mak0100644000175200017560000000101107263160576020513 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 %.$(GUM_Y_SUFFIX) : $(sort $(GUM_Y_C_FILES_GENERATED)) : $(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/%.$(GUM_C_SUFFIX) : %.$(GUM_Y_SUFFIX) $(GUM_SILENT) $(GUM_LOG) "Yacc $<" $(GUM_MKDIR_P) $(dir $@) $(GUM_YACC) -d "$<" $(GUM_MV) y.tab.c $@ -$(GUM_MV) y.tab.h $@.h ################################################################## # Reset vars for top-level product GUM_Y_C_FILES_GENERATED:= Y_FILES:= ################################################# # EOF gmv0.9/src/gum/lib/gum/suffix/swig.post.mak0100644000175200017560000000113307263462270021215 0ustar stephensstepheng# Author: kurtstephens@acm.org 2001/04/04 %.$(GUM_SWIG_SUFFIX) : $(sort $(GUM_SWIG_C_FILES_GENERATED)) : $(GUM_GENERATED_DIR)$(GUM_GENERATED_DIR_VERSION)/%_swig.$(GUM_C_SUFFIX) : %.$(GUM_SWIG_SUFFIX) $(GUM_SILENT) $(GUM_LOG) "Swig $<" $(GUM_MKDIR_P) $(dir $@) $(foreach w,$(GUM_SWIG_TARGET),$(GUM_SWIG) $(GUM_CPP_FLAGS) -$w $(SWIG_TARGET_$w) -o $(@:%_swig.c=%_swig_$w.c) $<) $(GUM_TOUCH_F) $@ ################################################################## # Reset vars for top-level product GUM_SWIG_C_FILES_GENERATED:= SWIG_FILES:= ################################################# # EOF gmv0.9/src/gum/lib/gum/swig0100644000175200017560000000365507217552620016167 0ustar stephensstepheng ################################################################## # inputs # SWIG_FILES # SWIG_TARGET ################################################################## # Get tools #SWIG #SWIG_TARGETS:= SWIG_TARGET:=$(SWIG_TARGETS)# GUM_SWIG:=swig gum_swig_suffix_perl5=.pm gum_swig_var_perl5=PM_FILES gum_swig_suffix_java=.java gum_swig_var_java=JAVA_FILES ################################################################## # Get name PRODUCT:=$(GUM_GENERATED_DIR)/swig_$(NAME)_$(SWIG_TARGET)_wrap.c OTHER_PRODUCT:=$(GUM_GENERATED_DIR)/swig_$(NAME)$(gum_swig_suffix_$(SWIG_TARGET)) ################################################################## # export generated files. C_FILES:=$(C_FILES) $(PRODUCT) SWIG_C_FILES:=$(SWIG_C_FILES) $(PRODUCT) $(gum_swig_var_$(SWIG_TARGET)):=$(gum_swig_var_$(SWIG_TARGET)) $(OTHER_PRODUCT) SWIG_$(gum_swig_var_$(SWIG_TARGET)):=SWIG_$(gum_swig_var_$(SWIG_TARGET)) $(OTHER_PRODUCT) MEMBERS:=$(SWIG_FILES)# ################################################################## # base target gum_swig:=$(GUM_SWIG) $(GUM_SWIG_OPTS) $(SWIG_OPTS) -$(SWIG_TARGET) $(PRODUCT) : $(MEMBERS) $(DEPENDS_ON) $(gum_swig) -o $@ $(MEMBERS) # bind vars $(PRODUCT) : gum_swig:=$(gum_swig)# $(PRODUCT) : MEMBERS:=$(MEMBERS)# ################################################################## # export PRODUCT GUM_TARGETS_ALL:=$(GUM_TARGETS_ALL) $(PRODUCT)# GUM_GARBAGE:=$(GUM_GARBAGE) $(PRODUCT) $(OTHER_PRODUCT) # ################################################################## # install SWIG_GEN:=$(PRODUCT) $(OTHER_PRODUCT) gum_install_files:=$(NAME)-swig-install include $(GUM)/install.mak ################################################################## # Alias $(NAME)-swig : $(PRODUCT) .PHONY: $(NAME)-swig GUM_HELP:=$(GUM_HELP) $(NAME)-swig creates $(PRODUCT) $(OTHER_PRODUCT) from $(MEMBERS) @@@ ################################################################## # Reset vars include ${GUM}/product.post.mak gmv0.9/src/gum/lib/gum/vc.mak0100644000175200017560000000020107217552620016355 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/20 # Disable RCS and SCCS get rules %:: RCS/%,v %:: RCS/% %:: s.% %:: SCCS/s.% gmv0.9/src/gum/lib/gum/CVS/0040755000175200017560000000000007306135641015717 5ustar stephensstephenggmv0.9/src/gum/lib/gum/CVS/Root0100644000175200017560000000003407262676531016570 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/gum/CVS/Repository0100644000175200017560000000003107262676531020021 0ustar stephensstephenghome/ion/src/gum/lib/gum gmv0.9/src/gum/lib/gum/CVS/Entries0100644000175200017560000000203007306135641017243 0ustar stephensstephengD/arch//// D/suffix//// /Makefile/1.1/Tue Dec 19 03:27:10 2000// /Makefile.pre/1.1/Tue Dec 19 03:27:10 2000// /dirs.mak/1.1/Tue Dec 19 03:27:11 2000// /docbook/1.1/Tue Dec 19 03:27:11 2000// /env/1.1/Tue Dec 19 03:27:11 2000// /genfiles.mak/1.1/Tue Dec 19 23:56:51 2000// /help/1.1/Tue Dec 19 03:27:11 2000// /install.mak/1.1/Thu Dec 21 11:30:50 2000// /install.post.mak/1.1/Tue Dec 19 03:27:11 2000// /product.pre.mak/1.1/Tue Dec 19 03:27:11 2000// /subdirs.post.mak/1.1/Tue Dec 19 03:27:11 2000// /suffix.mak/1.1/Tue Dec 19 23:56:39 2000// /suffix.post.mak/1.1/Tue Dec 19 03:27:11 2000// /swig/1.1/Tue Dec 19 03:27:12 2000// /vc.mak/1.1/Tue Dec 19 03:27:12 2000// /suffix.pre.mak/1.2/Wed Apr 4 23:41:57 2001// /install.pre.mak/1.2/Wed Apr 4 22:40:22 2001// /subdirs/1.2/Thu Apr 5 16:35:48 2001// /cpp.mak/1.2/Thu Apr 5 02:14:08 2001// /exe/1.3/Thu Apr 5 20:41:40 2001// /lib/1.3/Thu Apr 5 23:02:35 2001// /product.post.mak/1.2/Thu Apr 5 21:18:38 2001// /product/1.1/Sat Jun 2 00:32:48 2001// /Makefile.post/1.3/Sat Jun 2 08:58:22 2001// gmv0.9/src/gum/lib/gum/product0100644000175200017560000000670107306032060016657 0ustar stephensstepheng# Author: kurt.stephens@parlano.com 2000/08/18 GUM_PRODUCT_TYPE:=exe# ################################################################## # Generate files include ${GUM}/product.pre.mak MEMBERS+= $(GUM_O_FILES)# ################################################################## # Get name #PRODUCT:=$(GUM_GENERATED_EXE_DIR)/$(GUM_EXE_PREFIX)$(NAME)$(GUM_EXE_SUFFIX)# #$(NAME)_exe:=$(PRODUCT)# #GUM_EXES:=$(GUM_EXES) $(NAME)# ################################################################## # Compute libraries it depends on #$(NAME)_exe_libs:=$(LIBS)# #$(NAME)_exe_libs_all:=$(LIBS)# ################################################################## # Get options # Add library dir flags # Basic exe generation GUM_LINK:= ifneq "$(strip $(DEBUG))" "" GUM_LINK+= $(GUM_LD_DEBUG_FLAG)# endif ifneq "$(strip $(OPTIMIZE))" "" GUM_LINK+= $(GUM_LD_OPTIMIZE_FLAG)# endif ifneq "$(strip $(PROFILE))" "" GUM_LINK+= $(GUM_LD_PROFILE_FLAG)# endif # Add libary search paths. GUM_LD_FLAGS:=$(foreach l,$(GUM_LD_LIB_DIRS) $(LIB_DIRS) $(LIB_DIRS_INHERITED) $(LIB_DIRS_GLOBAL),$(GUM_LD_LIB_DIR_FLAG)$l )# # Compose a link operation. GUM_LINK:=$(GUM_LD) $(GUM_LD_FLAGS) $(GUM_LINK) $(GUM_LD_OUTPUT_FLAG)# ################################################################## # Locate libraries. # _GUM_FIND_LIBS:=$(GUM_BIN_DIR)/gum_find_libs --P "$(GUM_LIB_PREFIX)" --S "$(GUM_LIB_SUFFIX)" $(foreach l,$(GUM_LD_LIB_DIRS) $(LIB_DIRS),-L$(l) ) $(foreach l,$(LIBS),-l$(l) )# # A list of all library names depended on, that may not already exist. _libs_all:=$(_GUM_FIND_LIBS) --l $(GUM_LD_LIB_FLAG)# # A list of all library files depended on, that already exist. DEPENDS_ON:=$(DEPENDS_ON) $(shell $(_GUM_FIND_LIBS) --p)# LIBMAK:=$(shell $(_GUM_FIND_LIBS) --m)# #$(warning $(PRODUCT): LIBMAK=$(LIBMAK)) #$(warning $(PRODUCT): DEPENDS_ON=$(DEPENDS_ON)) -include /dev/null $(LIBMAK) ################################################################## # Base Target. # #$(PRODUCT) : $(MEMBERS) $(DEPENDS_ON) $(GUM_DEPENDS_ON) # $(GUM_SILENT) $(GUM_LOG) "Linking executable $(NAME)" # $(GUM_MKDIR_P) $(dir $@) # $(GUM_LINK) $@ $(MEMBERS) $(shell $(LIBS_ALL)) # Bind vars to target. $(PRODUCT) : NAME:=$(NAME)# $(PRODUCT) : GUM_LINK:=$(GUM_LINK)# $(PRODUCT) : MEMBERS:=$(MEMBERS)# $(PRODUCT) : LIBS:=$(LIBS)# $(PRODUCT) : LIBS_ALL:=$(_libs_all)# GUM_TARGETS_ALL:=$(GUM_TARGETS_ALL) $(PRODUCT)# GUM_GARBAGE:=$(GUM_GARBAGE) $(PRODUCT)# ################################################################## # install #BIN:=$(BIN) $(PRODUCT)# #EXE:=$(EXE) $(PRODUCT)# #gum_install_files:=$(NAME)-exe-install# include $(GUM)/install.mak #BIN:=# #EXE:=# ################################################################## # Alias #$(NAME)-exe : $(PRODUCT) #GUM_HELP:=$(GUM_HELP) $(NAME)-exe creates executable $(NAME) $(PRODUCT) @@@# #.PHONY: $(NAME)-exe ################################################################## # Debug #$(NAME)-exe-debug : $(PRODUCT) # gdb $(PRODUCT) #$(NAME)-exe-debug : PRODUCT=$(PRODUCT)# #GUM_HELP:=$(GUM_HELP) $(NAME)-exe-debug debugs executable $(NAME) $(PRODUCT) @@@# #.PHONY: $(NAME)-exe-debug ################################################################## # Run #$(NAME)-exe-run : $(PRODUCT) # $(PRODUCT) $(ARGS) #$(NAME)-exe-run : PRODUCT=$(PRODUCT)# #GUM_HELP:=$(GUM_HELP) $(NAME)-exe-run runs executable $(NAME) $(PRODUCT) @@@# #.PHONY: $(NAME)-exe-run ################################################################## # Reset vars include ${GUM}/product.post.mak gmv0.9/src/gum/lib/CVS/0040755000175200017560000000000007262676531015140 5ustar stephensstephenggmv0.9/src/gum/lib/CVS/Root0100644000175200017560000000003407262676351016000 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/lib/CVS/Repository0100644000175200017560000000002507262676351017234 0ustar stephensstephenghome/ion/src/gum/lib gmv0.9/src/gum/lib/CVS/Entries0100644000175200017560000000001207262676531016462 0ustar stephensstephengD/gum//// gmv0.9/src/gum/CVS/0040755000175200017560000000000007306135641014361 5ustar stephensstephenggmv0.9/src/gum/CVS/Root0100644000175200017560000000003407262676341015231 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gum/CVS/Repository0100644000175200017560000000002107262676341016461 0ustar stephensstephenghome/ion/src/gum gmv0.9/src/gum/CVS/Entries0100644000175200017560000000021607306135641015711 0ustar stephensstephengD/bin//// D/eg//// D/lib//// /TODO/1.1/Tue Dec 19 03:27:10 2000// /VERSION/1.1/Tue Dec 19 03:27:10 2000// /PKG/1.1/Sat Jun 2 08:28:03 2001// gmv0.9/src/gum/PKG0100744000175200017560000000031407306121623014261 0ustar stephensstephengNAME=gum VERSION=0.1 DESC="A Makefile library. Handles automatic header file dependencies and interpackage dependencies." CATEGORY="Development Tools" REQUIRES_PKGS="" REQUIRES_OTHERS="gnumake sh perl" gmv0.9/src/glwin/0040755000175200017560000000000007306140400014243 5ustar stephensstephenggmv0.9/src/glwin/CVS/0040755000175200017560000000000007306136064014711 5ustar stephensstephenggmv0.9/src/glwin/CVS/Root0100644000175200017560000000003407236675452015564 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/glwin/CVS/Repository0100644000175200017560000000002307236675452017016 0ustar stephensstephenghome/ion/src/glwin gmv0.9/src/glwin/CVS/Entries0100644000175200017560000000047507306136064016250 0ustar stephensstepheng/vk.h/1.1/Tue Mar 20 03:44:55 2001// /GUMakefile/1.2/Mon Apr 9 19:02:36 2001// /xk.h/1.1/Mon Apr 9 01:33:13 2001// /xk.pl/1.2/Tue Apr 10 00:37:33 2001// /glwin.h/1.9/Thu Apr 19 18:54:28 2001// /glwin.c/1.13/Sun Apr 22 22:15:13 2001// /glwin.swig/1.6/Sun Apr 22 22:12:21 2001// /PKG/1.2/Sat Jun 2 08:29:11 2001// D gmv0.9/src/glwin/xk2vk.c0100644000175200017560000035622207267632475015513 0ustar stephensstepheng/* Generated by xk.pl from $xk $vk : DO NOT MODIFY. */ #include "xk.h" #include "vk.h" int glwin_XK_to_VK(int xk) { int vk = xk; switch ( xk ) { /* #if defined(XK_VoidSymbol) case XK_VoidSymbol: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_BackSpace) case XK_BackSpace: vk = '\b'; break; #endif #if defined(XK_Tab) case XK_Tab: vk = VK_TAB; break; #endif /* #if defined(XK_Linefeed) case XK_Linefeed: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_Clear) case XK_Clear: vk = VK_CLEAR; break; #endif #if defined(XK_Return) case XK_Return: vk = VK_RETURN; break; #endif #if defined(XK_Pause) case XK_Pause: vk = VK_PAUSE; break; #endif #if defined(XK_Scroll_Lock) case XK_Scroll_Lock: vk = VK_SCROLL; break; #endif #if defined(XK_Sys_Req) case XK_Sys_Req: vk = VK_ATTN; break; #endif #if defined(XK_Escape) case XK_Escape: vk = VK_ESCAPE; break; #endif #if defined(XK_Delete) case XK_Delete: vk = VK_DELETE; break; #endif /* #if defined(XK_Multi_key) case XK_Multi_key: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Codeinput) case XK_Codeinput: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_SingleCandidate) case XK_SingleCandidate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_MultipleCandidate) case XK_MultipleCandidate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_PreviousCandidate) case XK_PreviousCandidate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Kanji) case XK_Kanji: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Muhenkan) case XK_Muhenkan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Henkan_Mode) case XK_Henkan_Mode: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Henkan) case XK_Henkan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Romaji) case XK_Romaji: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hiragana) case XK_Hiragana: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Katakana) case XK_Katakana: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hiragana_Katakana) case XK_Hiragana_Katakana: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Zenkaku) case XK_Zenkaku: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hankaku) case XK_Hankaku: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Zenkaku_Hankaku) case XK_Zenkaku_Hankaku: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Touroku) case XK_Touroku: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Massyo) case XK_Massyo: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Kana_Lock) case XK_Kana_Lock: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Kana_Shift) case XK_Kana_Shift: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Eisu_Shift) case XK_Eisu_Shift: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Eisu_toggle) case XK_Eisu_toggle: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Kanji_Bangou) case XK_Kanji_Bangou: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Zen_Koho) case XK_Zen_Koho: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Mae_Koho) case XK_Mae_Koho: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_Home) case XK_Home: vk = VK_HOME; break; #endif #if defined(XK_Left) case XK_Left: vk = VK_LEFT; break; #endif #if defined(XK_Up) case XK_Up: vk = VK_UP; break; #endif #if defined(XK_Right) case XK_Right: vk = VK_RIGHT; break; #endif #if defined(XK_Down) case XK_Down: vk = VK_DOWN; break; #endif #if defined(XK_Prior) case XK_Prior: vk = VK_PRIOR; break; #endif /* #if defined(XK_Page_Up) case XK_Page_Up: vk = VK_PRIOR; break; #endif 0xFF55*/ #if defined(XK_Next) case XK_Next: vk = VK_NEXT; break; #endif /* #if defined(XK_Page_Down) case XK_Page_Down: vk = VK_NEXT; break; #endif 0xFF56*/ #if defined(XK_End) case XK_End: vk = VK_END; break; #endif #if defined(XK_Begin) case XK_Begin: vk = VK_HOME; break; #endif #if defined(XK_Select) case XK_Select: vk = VK_SELECT; break; #endif #if defined(XK_Print) case XK_Print: vk = VK_PRINT; break; #endif #if defined(XK_Execute) case XK_Execute: vk = VK_EXECUTE; break; #endif #if defined(XK_Insert) case XK_Insert: vk = VK_INSERT; break; #endif /* #if defined(XK_Undo) case XK_Undo: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Redo) case XK_Redo: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_Menu) case XK_Menu: vk = VK_MENU; break; #endif /* #if defined(XK_Find) case XK_Find: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_Cancel) case XK_Cancel: vk = VK_CANCEL; break; #endif #if defined(XK_Help) case XK_Help: vk = VK_HELP; break; #endif /* #if defined(XK_Break) case XK_Break: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Mode_switch) case XK_Mode_switch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_script_switch) case XK_script_switch: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_Num_Lock) case XK_Num_Lock: vk = VK_NUMLOCK; break; #endif #if defined(XK_KP_Space) case XK_KP_Space: vk = VK_SPACE; break; #endif #if defined(XK_KP_Tab) case XK_KP_Tab: vk = VK_TAB; break; #endif #if defined(XK_KP_Enter) case XK_KP_Enter: vk = VK_RETURN; break; #endif #if defined(XK_KP_F1) case XK_KP_F1: vk = VK_F1; break; #endif #if defined(XK_KP_F2) case XK_KP_F2: vk = VK_F2; break; #endif #if defined(XK_KP_F3) case XK_KP_F3: vk = VK_F3; break; #endif #if defined(XK_KP_F4) case XK_KP_F4: vk = VK_F4; break; #endif #if defined(XK_KP_Home) case XK_KP_Home: vk = VK_HOME; break; #endif #if defined(XK_KP_Left) case XK_KP_Left: vk = VK_LEFT; break; #endif #if defined(XK_KP_Up) case XK_KP_Up: vk = VK_UP; break; #endif #if defined(XK_KP_Right) case XK_KP_Right: vk = VK_RIGHT; break; #endif #if defined(XK_KP_Down) case XK_KP_Down: vk = VK_DOWN; break; #endif #if defined(XK_KP_Prior) case XK_KP_Prior: vk = VK_PRIOR; break; #endif /* #if defined(XK_KP_Page_Up) case XK_KP_Page_Up: vk = VK_PRIOR; break; #endif 0xFF9A*/ #if defined(XK_KP_Next) case XK_KP_Next: vk = VK_NEXT; break; #endif /* #if defined(XK_KP_Page_Down) case XK_KP_Page_Down: vk = VK_NEXT; break; #endif 0xFF9B*/ #if defined(XK_KP_End) case XK_KP_End: vk = VK_END; break; #endif #if defined(XK_KP_Begin) case XK_KP_Begin: vk = VK_HOME; break; #endif #if defined(XK_KP_Insert) case XK_KP_Insert: vk = VK_INSERT; break; #endif #if defined(XK_KP_Delete) case XK_KP_Delete: vk = VK_DELETE; break; #endif /* #if defined(XK_KP_Equal) case XK_KP_Equal: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_KP_Multiply) case XK_KP_Multiply: vk = VK_MULTIPLY; break; #endif #if defined(XK_KP_Add) case XK_KP_Add: vk = VK_ADD; break; #endif #if defined(XK_KP_Separator) case XK_KP_Separator: vk = VK_SEPARATOR; break; #endif #if defined(XK_KP_Subtract) case XK_KP_Subtract: vk = VK_SUBTRACT; break; #endif #if defined(XK_KP_Decimal) case XK_KP_Decimal: vk = VK_DECIMAL; break; #endif #if defined(XK_KP_Divide) case XK_KP_Divide: vk = VK_DIVIDE; break; #endif #if defined(XK_KP_0) case XK_KP_0: vk = VK_NUMPAD0; break; #endif #if defined(XK_KP_1) case XK_KP_1: vk = VK_NUMPAD1; break; #endif #if defined(XK_KP_2) case XK_KP_2: vk = VK_NUMPAD2; break; #endif #if defined(XK_KP_3) case XK_KP_3: vk = VK_NUMPAD3; break; #endif #if defined(XK_KP_4) case XK_KP_4: vk = VK_NUMPAD4; break; #endif #if defined(XK_KP_5) case XK_KP_5: vk = VK_NUMPAD5; break; #endif #if defined(XK_KP_6) case XK_KP_6: vk = VK_NUMPAD6; break; #endif #if defined(XK_KP_7) case XK_KP_7: vk = VK_NUMPAD7; break; #endif #if defined(XK_KP_8) case XK_KP_8: vk = VK_NUMPAD8; break; #endif #if defined(XK_KP_9) case XK_KP_9: vk = VK_NUMPAD9; break; #endif #if defined(XK_F1) case XK_F1: vk = VK_F1; break; #endif #if defined(XK_F2) case XK_F2: vk = VK_F2; break; #endif #if defined(XK_F3) case XK_F3: vk = VK_F3; break; #endif #if defined(XK_F4) case XK_F4: vk = VK_F4; break; #endif #if defined(XK_F5) case XK_F5: vk = VK_F5; break; #endif #if defined(XK_F6) case XK_F6: vk = VK_F6; break; #endif #if defined(XK_F7) case XK_F7: vk = VK_F7; break; #endif #if defined(XK_F8) case XK_F8: vk = VK_F8; break; #endif #if defined(XK_F9) case XK_F9: vk = VK_F9; break; #endif #if defined(XK_F10) case XK_F10: vk = VK_F10; break; #endif #if defined(XK_F11) case XK_F11: vk = VK_F11; break; #endif /* #if defined(XK_L1) case XK_L1: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F12) case XK_F12: vk = VK_F12; break; #endif /* #if defined(XK_L2) case XK_L2: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F13) case XK_F13: vk = VK_F13; break; #endif /* #if defined(XK_L3) case XK_L3: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F14) case XK_F14: vk = VK_F14; break; #endif /* #if defined(XK_L4) case XK_L4: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F15) case XK_F15: vk = VK_F15; break; #endif /* #if defined(XK_L5) case XK_L5: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F16) case XK_F16: vk = VK_F16; break; #endif /* #if defined(XK_L6) case XK_L6: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F17) case XK_F17: vk = VK_F17; break; #endif /* #if defined(XK_L7) case XK_L7: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F18) case XK_F18: vk = VK_F18; break; #endif /* #if defined(XK_L8) case XK_L8: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F19) case XK_F19: vk = VK_F19; break; #endif /* #if defined(XK_L9) case XK_L9: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F20) case XK_F20: vk = VK_F20; break; #endif /* #if defined(XK_L10) case XK_L10: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F21) case XK_F21: vk = VK_F21; break; #endif /* #if defined(XK_R1) case XK_R1: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F22) case XK_F22: vk = VK_F22; break; #endif /* #if defined(XK_R2) case XK_R2: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F23) case XK_F23: vk = VK_F23; break; #endif /* #if defined(XK_R3) case XK_R3: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_F24) case XK_F24: vk = VK_F24; break; #endif /* #if defined(XK_R4) case XK_R4: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F25) case XK_F25: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R5) case XK_R5: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F26) case XK_F26: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R6) case XK_R6: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F27) case XK_F27: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R7) case XK_R7: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F28) case XK_F28: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R8) case XK_R8: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F29) case XK_F29: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R9) case XK_R9: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F30) case XK_F30: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R10) case XK_R10: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F31) case XK_F31: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R11) case XK_R11: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F32) case XK_F32: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R12) case XK_R12: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F33) case XK_F33: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R13) case XK_R13: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F34) case XK_F34: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R14) case XK_R14: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_F35) case XK_F35: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_R15) case XK_R15: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_Shift_L) case XK_Shift_L: vk = VK_LSHIFT; break; #endif #if defined(XK_Shift_R) case XK_Shift_R: vk = VK_RSHIFT; break; #endif #if defined(XK_Control_L) case XK_Control_L: vk = VK_LCONTROL; break; #endif #if defined(XK_Control_R) case XK_Control_R: vk = VK_RCONTROL; break; #endif #if defined(XK_Caps_Lock) case XK_Caps_Lock: vk = VK_CAPITAL; break; #endif #if defined(XK_Shift_Lock) case XK_Shift_Lock: vk = VK_CAPITAL; break; #endif #if defined(XK_Meta_L) case XK_Meta_L: vk = VK_LWIN; break; #endif #if defined(XK_Meta_R) case XK_Meta_R: vk = VK_RWIN; break; #endif #if defined(XK_Alt_L) case XK_Alt_L: vk = VK_LMENU; break; #endif #if defined(XK_Alt_R) case XK_Alt_R: vk = VK_RMENU; break; #endif #if defined(XK_Super_L) case XK_Super_L: vk = VK_APPS; break; #endif #if defined(XK_Super_R) case XK_Super_R: vk = VK_APPS; break; #endif /* #if defined(XK_Hyper_L) case XK_Hyper_L: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hyper_R) case XK_Hyper_R: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Lock) case XK_ISO_Lock: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Level2_Latch) case XK_ISO_Level2_Latch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Level3_Shift) case XK_ISO_Level3_Shift: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Level3_Latch) case XK_ISO_Level3_Latch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Level3_Lock) case XK_ISO_Level3_Lock: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Group_Shift) case XK_ISO_Group_Shift: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Group_Latch) case XK_ISO_Group_Latch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Group_Lock) case XK_ISO_Group_Lock: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Next_Group) case XK_ISO_Next_Group: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Next_Group_Lock) case XK_ISO_Next_Group_Lock: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Prev_Group) case XK_ISO_Prev_Group: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Prev_Group_Lock) case XK_ISO_Prev_Group_Lock: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_First_Group) case XK_ISO_First_Group: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_First_Group_Lock) case XK_ISO_First_Group_Lock: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Last_Group) case XK_ISO_Last_Group: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Last_Group_Lock) case XK_ISO_Last_Group_Lock: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Left_Tab) case XK_ISO_Left_Tab: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Move_Line_Up) case XK_ISO_Move_Line_Up: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Move_Line_Down) case XK_ISO_Move_Line_Down: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Partial_Line_Up) case XK_ISO_Partial_Line_Up: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Partial_Line_Down) case XK_ISO_Partial_Line_Down: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Partial_Space_Left) case XK_ISO_Partial_Space_Left: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Partial_Space_Right) case XK_ISO_Partial_Space_Right: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Set_Margin_Left) case XK_ISO_Set_Margin_Left: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Set_Margin_Right) case XK_ISO_Set_Margin_Right: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Release_Margin_Left) case XK_ISO_Release_Margin_Left: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Release_Margin_Right) case XK_ISO_Release_Margin_Right: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Release_Both_Margins) case XK_ISO_Release_Both_Margins: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Fast_Cursor_Left) case XK_ISO_Fast_Cursor_Left: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Fast_Cursor_Right) case XK_ISO_Fast_Cursor_Right: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Fast_Cursor_Up) case XK_ISO_Fast_Cursor_Up: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Fast_Cursor_Down) case XK_ISO_Fast_Cursor_Down: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Continuous_Underline) case XK_ISO_Continuous_Underline: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Discontinuous_Underline) case XK_ISO_Discontinuous_Underline: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Emphasize) case XK_ISO_Emphasize: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Center_Object) case XK_ISO_Center_Object: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ISO_Enter) case XK_ISO_Enter: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_grave) case XK_dead_grave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_acute) case XK_dead_acute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_circumflex) case XK_dead_circumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_tilde) case XK_dead_tilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_macron) case XK_dead_macron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_breve) case XK_dead_breve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_abovedot) case XK_dead_abovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_diaeresis) case XK_dead_diaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_abovering) case XK_dead_abovering: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_doubleacute) case XK_dead_doubleacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_caron) case XK_dead_caron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_cedilla) case XK_dead_cedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_ogonek) case XK_dead_ogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_iota) case XK_dead_iota: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_voiced_sound) case XK_dead_voiced_sound: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_semivoiced_sound) case XK_dead_semivoiced_sound: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dead_belowdot) case XK_dead_belowdot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_First_Virtual_Screen) case XK_First_Virtual_Screen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Prev_Virtual_Screen) case XK_Prev_Virtual_Screen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Next_Virtual_Screen) case XK_Next_Virtual_Screen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Last_Virtual_Screen) case XK_Last_Virtual_Screen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Terminate_Server) case XK_Terminate_Server: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_AccessX_Enable) case XK_AccessX_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_AccessX_Feedback_Enable) case XK_AccessX_Feedback_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_RepeatKeys_Enable) case XK_RepeatKeys_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_SlowKeys_Enable) case XK_SlowKeys_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_BounceKeys_Enable) case XK_BounceKeys_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_StickyKeys_Enable) case XK_StickyKeys_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_MouseKeys_Enable) case XK_MouseKeys_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_MouseKeys_Accel_Enable) case XK_MouseKeys_Accel_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Overlay1_Enable) case XK_Overlay1_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Overlay2_Enable) case XK_Overlay2_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_AudibleBell_Enable) case XK_AudibleBell_Enable: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Left) case XK_Pointer_Left: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Right) case XK_Pointer_Right: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Up) case XK_Pointer_Up: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Down) case XK_Pointer_Down: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_UpLeft) case XK_Pointer_UpLeft: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_UpRight) case XK_Pointer_UpRight: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DownLeft) case XK_Pointer_DownLeft: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DownRight) case XK_Pointer_DownRight: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Button_Dflt) case XK_Pointer_Button_Dflt: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Button1) case XK_Pointer_Button1: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Button2) case XK_Pointer_Button2: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Button3) case XK_Pointer_Button3: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Button4) case XK_Pointer_Button4: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Button5) case XK_Pointer_Button5: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DblClick_Dflt) case XK_Pointer_DblClick_Dflt: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DblClick1) case XK_Pointer_DblClick1: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DblClick2) case XK_Pointer_DblClick2: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DblClick3) case XK_Pointer_DblClick3: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DblClick4) case XK_Pointer_DblClick4: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DblClick5) case XK_Pointer_DblClick5: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Drag_Dflt) case XK_Pointer_Drag_Dflt: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Drag1) case XK_Pointer_Drag1: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Drag2) case XK_Pointer_Drag2: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Drag3) case XK_Pointer_Drag3: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Drag4) case XK_Pointer_Drag4: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Drag5) case XK_Pointer_Drag5: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_EnableKeys) case XK_Pointer_EnableKeys: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_Accelerate) case XK_Pointer_Accelerate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DfltBtnNext) case XK_Pointer_DfltBtnNext: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Pointer_DfltBtnPrev) case XK_Pointer_DfltBtnPrev: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Duplicate) case XK_3270_Duplicate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_FieldMark) case XK_3270_FieldMark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Right2) case XK_3270_Right2: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Left2) case XK_3270_Left2: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_BackTab) case XK_3270_BackTab: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_EraseEOF) case XK_3270_EraseEOF: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_EraseInput) case XK_3270_EraseInput: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Reset) case XK_3270_Reset: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Quit) case XK_3270_Quit: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_PA1) case XK_3270_PA1: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_PA2) case XK_3270_PA2: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_PA3) case XK_3270_PA3: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Test) case XK_3270_Test: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Attn) case XK_3270_Attn: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_CursorBlink) case XK_3270_CursorBlink: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_AltCursor) case XK_3270_AltCursor: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_KeyClick) case XK_3270_KeyClick: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Jump) case XK_3270_Jump: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Ident) case XK_3270_Ident: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Rule) case XK_3270_Rule: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Copy) case XK_3270_Copy: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Play) case XK_3270_Play: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Setup) case XK_3270_Setup: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Record) case XK_3270_Record: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_ChangeScreen) case XK_3270_ChangeScreen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_DeleteWord) case XK_3270_DeleteWord: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_ExSelect) case XK_3270_ExSelect: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_CursorSelect) case XK_3270_CursorSelect: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_PrintScreen) case XK_3270_PrintScreen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_3270_Enter) case XK_3270_Enter: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_space) case XK_space: vk = VK_SPACE; break; #endif #if defined(XK_exclam) case XK_exclam: vk = '!'; break; #endif #if defined(XK_quotedbl) case XK_quotedbl: vk = '"'; break; #endif #if defined(XK_numbersign) case XK_numbersign: vk = '#'; break; #endif #if defined(XK_dollar) case XK_dollar: vk = '$'; break; #endif #if defined(XK_percent) case XK_percent: vk = '%'; break; #endif #if defined(XK_ampersand) case XK_ampersand: vk = '&'; break; #endif #if defined(XK_apostrophe) case XK_apostrophe: vk = '\''; break; #endif /* #if defined(XK_quoteright) case XK_quoteright: vk = '\''; break; #endif 0x027*/ #if defined(XK_parenleft) case XK_parenleft: vk = '('; break; #endif #if defined(XK_parenright) case XK_parenright: vk = ')'; break; #endif #if defined(XK_asterisk) case XK_asterisk: vk = '*'; break; #endif #if defined(XK_plus) case XK_plus: vk = '+'; break; #endif #if defined(XK_comma) case XK_comma: vk = ','; break; #endif #if defined(XK_minus) case XK_minus: vk = '-'; break; #endif #if defined(XK_period) case XK_period: vk = '.'; break; #endif #if defined(XK_slash) case XK_slash: vk = '/'; break; #endif #if defined(XK_0) case XK_0: vk = '0'; break; #endif #if defined(XK_1) case XK_1: vk = '1'; break; #endif #if defined(XK_2) case XK_2: vk = '2'; break; #endif #if defined(XK_3) case XK_3: vk = '3'; break; #endif #if defined(XK_4) case XK_4: vk = '4'; break; #endif #if defined(XK_5) case XK_5: vk = '5'; break; #endif #if defined(XK_6) case XK_6: vk = '6'; break; #endif #if defined(XK_7) case XK_7: vk = '7'; break; #endif #if defined(XK_8) case XK_8: vk = '8'; break; #endif #if defined(XK_9) case XK_9: vk = '9'; break; #endif #if defined(XK_colon) case XK_colon: vk = ':'; break; #endif #if defined(XK_semicolon) case XK_semicolon: vk = ';'; break; #endif #if defined(XK_less) case XK_less: vk = '<'; break; #endif #if defined(XK_equal) case XK_equal: vk = '='; break; #endif #if defined(XK_greater) case XK_greater: vk = '>'; break; #endif #if defined(XK_question) case XK_question: vk = '?'; break; #endif #if defined(XK_at) case XK_at: vk = '@'; break; #endif #if defined(XK_A) case XK_A: vk = 'A'; break; #endif #if defined(XK_B) case XK_B: vk = 'B'; break; #endif #if defined(XK_C) case XK_C: vk = 'C'; break; #endif #if defined(XK_D) case XK_D: vk = 'D'; break; #endif #if defined(XK_E) case XK_E: vk = 'E'; break; #endif #if defined(XK_F) case XK_F: vk = 'F'; break; #endif #if defined(XK_G) case XK_G: vk = 'G'; break; #endif #if defined(XK_H) case XK_H: vk = 'H'; break; #endif #if defined(XK_I) case XK_I: vk = 'I'; break; #endif #if defined(XK_J) case XK_J: vk = 'J'; break; #endif #if defined(XK_K) case XK_K: vk = 'K'; break; #endif #if defined(XK_L) case XK_L: vk = 'L'; break; #endif #if defined(XK_M) case XK_M: vk = 'M'; break; #endif #if defined(XK_N) case XK_N: vk = 'N'; break; #endif #if defined(XK_O) case XK_O: vk = 'O'; break; #endif #if defined(XK_P) case XK_P: vk = 'P'; break; #endif #if defined(XK_Q) case XK_Q: vk = 'Q'; break; #endif #if defined(XK_R) case XK_R: vk = 'R'; break; #endif #if defined(XK_S) case XK_S: vk = 'S'; break; #endif #if defined(XK_T) case XK_T: vk = 'T'; break; #endif #if defined(XK_U) case XK_U: vk = 'U'; break; #endif #if defined(XK_V) case XK_V: vk = 'V'; break; #endif #if defined(XK_W) case XK_W: vk = 'W'; break; #endif #if defined(XK_X) case XK_X: vk = 'X'; break; #endif #if defined(XK_Y) case XK_Y: vk = 'Y'; break; #endif #if defined(XK_Z) case XK_Z: vk = 'Z'; break; #endif #if defined(XK_bracketleft) case XK_bracketleft: vk = '['; break; #endif #if defined(XK_backslash) case XK_backslash: vk = '\\'; break; #endif #if defined(XK_bracketright) case XK_bracketright: vk = ']'; break; #endif /* #if defined(XK_asciicircum) case XK_asciicircum: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_underscore) case XK_underscore: vk = '_'; break; #endif #if defined(XK_grave) case XK_grave: vk = '`'; break; #endif /* #if defined(XK_quoteleft) case XK_quoteleft: vk = '`'; break; #endif 0x060*/ #if defined(XK_a) case XK_a: vk = 'a'; break; #endif #if defined(XK_b) case XK_b: vk = 'b'; break; #endif #if defined(XK_c) case XK_c: vk = 'c'; break; #endif #if defined(XK_d) case XK_d: vk = 'd'; break; #endif #if defined(XK_e) case XK_e: vk = 'e'; break; #endif #if defined(XK_f) case XK_f: vk = 'f'; break; #endif #if defined(XK_g) case XK_g: vk = 'g'; break; #endif #if defined(XK_h) case XK_h: vk = 'h'; break; #endif #if defined(XK_i) case XK_i: vk = 'i'; break; #endif #if defined(XK_j) case XK_j: vk = 'j'; break; #endif #if defined(XK_k) case XK_k: vk = 'k'; break; #endif #if defined(XK_l) case XK_l: vk = 'l'; break; #endif #if defined(XK_m) case XK_m: vk = 'm'; break; #endif #if defined(XK_n) case XK_n: vk = 'n'; break; #endif #if defined(XK_o) case XK_o: vk = 'o'; break; #endif #if defined(XK_p) case XK_p: vk = 'p'; break; #endif #if defined(XK_q) case XK_q: vk = 'q'; break; #endif #if defined(XK_r) case XK_r: vk = 'r'; break; #endif #if defined(XK_s) case XK_s: vk = 's'; break; #endif #if defined(XK_t) case XK_t: vk = 't'; break; #endif #if defined(XK_u) case XK_u: vk = 'u'; break; #endif #if defined(XK_v) case XK_v: vk = 'v'; break; #endif #if defined(XK_w) case XK_w: vk = 'w'; break; #endif #if defined(XK_x) case XK_x: vk = 'x'; break; #endif #if defined(XK_y) case XK_y: vk = 'y'; break; #endif #if defined(XK_z) case XK_z: vk = 'z'; break; #endif #if defined(XK_braceleft) case XK_braceleft: vk = '{'; break; #endif #if defined(XK_bar) case XK_bar: vk = '_'; break; #endif #if defined(XK_braceright) case XK_braceright: vk = '}'; break; #endif #if defined(XK_asciitilde) case XK_asciitilde: vk = '~'; break; #endif /* #if defined(XK_nobreakspace) case XK_nobreakspace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_exclamdown) case XK_exclamdown: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_cent) case XK_cent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_sterling) case XK_sterling: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_currency) case XK_currency: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_yen) case XK_yen: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_brokenbar) case XK_brokenbar: vk = '|'; break; #endif /* #if defined(XK_section) case XK_section: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_diaeresis) case XK_diaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_copyright) case XK_copyright: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ordfeminine) case XK_ordfeminine: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_guillemotleft) case XK_guillemotleft: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_notsign) case XK_notsign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hyphen) case XK_hyphen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_registered) case XK_registered: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_macron) case XK_macron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_degree) case XK_degree: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_plusminus) case XK_plusminus: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_twosuperior) case XK_twosuperior: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_threesuperior) case XK_threesuperior: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_acute) case XK_acute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_mu) case XK_mu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_paragraph) case XK_paragraph: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_periodcentered) case XK_periodcentered: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_cedilla) case XK_cedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_onesuperior) case XK_onesuperior: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_masculine) case XK_masculine: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_guillemotright) case XK_guillemotright: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_onequarter) case XK_onequarter: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_onehalf) case XK_onehalf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_threequarters) case XK_threequarters: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_questiondown) case XK_questiondown: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Agrave) case XK_Agrave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Aacute) case XK_Aacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Acircumflex) case XK_Acircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Atilde) case XK_Atilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Adiaeresis) case XK_Adiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Aring) case XK_Aring: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_AE) case XK_AE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ccedilla) case XK_Ccedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Egrave) case XK_Egrave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Eacute) case XK_Eacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ecircumflex) case XK_Ecircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ediaeresis) case XK_Ediaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Igrave) case XK_Igrave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Iacute) case XK_Iacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Icircumflex) case XK_Icircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Idiaeresis) case XK_Idiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ETH) case XK_ETH: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Eth) case XK_Eth: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ntilde) case XK_Ntilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ograve) case XK_Ograve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Oacute) case XK_Oacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ocircumflex) case XK_Ocircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Otilde) case XK_Otilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Odiaeresis) case XK_Odiaeresis: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_multiply) case XK_multiply: vk = VK_MULTIPLY; break; #endif /* #if defined(XK_Ooblique) case XK_Ooblique: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ugrave) case XK_Ugrave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Uacute) case XK_Uacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ucircumflex) case XK_Ucircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Udiaeresis) case XK_Udiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Yacute) case XK_Yacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_THORN) case XK_THORN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thorn) case XK_Thorn: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ssharp) case XK_ssharp: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_agrave) case XK_agrave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_aacute) case XK_aacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_acircumflex) case XK_acircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_atilde) case XK_atilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_adiaeresis) case XK_adiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_aring) case XK_aring: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ae) case XK_ae: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ccedilla) case XK_ccedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_egrave) case XK_egrave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_eacute) case XK_eacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ecircumflex) case XK_ecircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ediaeresis) case XK_ediaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_igrave) case XK_igrave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_iacute) case XK_iacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_icircumflex) case XK_icircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_idiaeresis) case XK_idiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_eth) case XK_eth: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ntilde) case XK_ntilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ograve) case XK_ograve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_oacute) case XK_oacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ocircumflex) case XK_ocircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_otilde) case XK_otilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_odiaeresis) case XK_odiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_division) case XK_division: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_oslash) case XK_oslash: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ugrave) case XK_ugrave: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_uacute) case XK_uacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ucircumflex) case XK_ucircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_udiaeresis) case XK_udiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_yacute) case XK_yacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_thorn) case XK_thorn: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ydiaeresis) case XK_ydiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Aogonek) case XK_Aogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_breve) case XK_breve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Lstroke) case XK_Lstroke: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Lcaron) case XK_Lcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Sacute) case XK_Sacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Scaron) case XK_Scaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Scedilla) case XK_Scedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Tcaron) case XK_Tcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Zacute) case XK_Zacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Zcaron) case XK_Zcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Zabovedot) case XK_Zabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_aogonek) case XK_aogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ogonek) case XK_ogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lstroke) case XK_lstroke: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lcaron) case XK_lcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_sacute) case XK_sacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_caron) case XK_caron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_scaron) case XK_scaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_scedilla) case XK_scedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_tcaron) case XK_tcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_zacute) case XK_zacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_doubleacute) case XK_doubleacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_zcaron) case XK_zcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_zabovedot) case XK_zabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Racute) case XK_Racute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Abreve) case XK_Abreve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Lacute) case XK_Lacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cacute) case XK_Cacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ccaron) case XK_Ccaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Eogonek) case XK_Eogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ecaron) case XK_Ecaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Dcaron) case XK_Dcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Dstroke) case XK_Dstroke: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Nacute) case XK_Nacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ncaron) case XK_Ncaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Odoubleacute) case XK_Odoubleacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Rcaron) case XK_Rcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Uring) case XK_Uring: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Udoubleacute) case XK_Udoubleacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Tcedilla) case XK_Tcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_racute) case XK_racute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_abreve) case XK_abreve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lacute) case XK_lacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_cacute) case XK_cacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ccaron) case XK_ccaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_eogonek) case XK_eogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ecaron) case XK_ecaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dcaron) case XK_dcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dstroke) case XK_dstroke: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_nacute) case XK_nacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ncaron) case XK_ncaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_odoubleacute) case XK_odoubleacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_udoubleacute) case XK_udoubleacute: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rcaron) case XK_rcaron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_uring) case XK_uring: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_tcedilla) case XK_tcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_abovedot) case XK_abovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hstroke) case XK_Hstroke: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hcircumflex) case XK_Hcircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Iabovedot) case XK_Iabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Gbreve) case XK_Gbreve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Jcircumflex) case XK_Jcircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hstroke) case XK_hstroke: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hcircumflex) case XK_hcircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_idotless) case XK_idotless: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_gbreve) case XK_gbreve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_jcircumflex) case XK_jcircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cabovedot) case XK_Cabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ccircumflex) case XK_Ccircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Gabovedot) case XK_Gabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Gcircumflex) case XK_Gcircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ubreve) case XK_Ubreve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Scircumflex) case XK_Scircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_cabovedot) case XK_cabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ccircumflex) case XK_ccircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_gabovedot) case XK_gabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_gcircumflex) case XK_gcircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ubreve) case XK_ubreve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_scircumflex) case XK_scircumflex: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kra) case XK_kra: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kappa) case XK_kappa: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Rcedilla) case XK_Rcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Itilde) case XK_Itilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Lcedilla) case XK_Lcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Emacron) case XK_Emacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Gcedilla) case XK_Gcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Tslash) case XK_Tslash: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rcedilla) case XK_rcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_itilde) case XK_itilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lcedilla) case XK_lcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_emacron) case XK_emacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_gcedilla) case XK_gcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_tslash) case XK_tslash: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ENG) case XK_ENG: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_eng) case XK_eng: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Amacron) case XK_Amacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Iogonek) case XK_Iogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Eabovedot) case XK_Eabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Imacron) case XK_Imacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ncedilla) case XK_Ncedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Omacron) case XK_Omacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Kcedilla) case XK_Kcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Uogonek) case XK_Uogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Utilde) case XK_Utilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Umacron) case XK_Umacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_amacron) case XK_amacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_iogonek) case XK_iogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_eabovedot) case XK_eabovedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_imacron) case XK_imacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ncedilla) case XK_ncedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_omacron) case XK_omacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kcedilla) case XK_kcedilla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_uogonek) case XK_uogonek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_utilde) case XK_utilde: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_umacron) case XK_umacron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_OE) case XK_OE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_oe) case XK_oe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ydiaeresis) case XK_Ydiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_overline) case XK_overline: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_fullstop) case XK_kana_fullstop: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_openingbracket) case XK_kana_openingbracket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_closingbracket) case XK_kana_closingbracket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_comma) case XK_kana_comma: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_conjunctive) case XK_kana_conjunctive: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_middledot) case XK_kana_middledot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_WO) case XK_kana_WO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_a) case XK_kana_a: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_i) case XK_kana_i: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_u) case XK_kana_u: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_e) case XK_kana_e: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_o) case XK_kana_o: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_ya) case XK_kana_ya: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_yu) case XK_kana_yu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_yo) case XK_kana_yo: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_tsu) case XK_kana_tsu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_tu) case XK_kana_tu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_prolongedsound) case XK_prolongedsound: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_A) case XK_kana_A: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_I) case XK_kana_I: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_U) case XK_kana_U: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_E) case XK_kana_E: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_O) case XK_kana_O: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_KA) case XK_kana_KA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_KI) case XK_kana_KI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_KU) case XK_kana_KU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_KE) case XK_kana_KE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_KO) case XK_kana_KO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_SA) case XK_kana_SA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_SHI) case XK_kana_SHI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_SU) case XK_kana_SU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_SE) case XK_kana_SE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_SO) case XK_kana_SO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_TA) case XK_kana_TA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_CHI) case XK_kana_CHI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_TI) case XK_kana_TI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_TSU) case XK_kana_TSU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_TU) case XK_kana_TU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_TE) case XK_kana_TE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_TO) case XK_kana_TO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_NA) case XK_kana_NA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_NI) case XK_kana_NI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_NU) case XK_kana_NU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_NE) case XK_kana_NE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_NO) case XK_kana_NO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_HA) case XK_kana_HA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_HI) case XK_kana_HI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_FU) case XK_kana_FU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_HU) case XK_kana_HU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_HE) case XK_kana_HE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_HO) case XK_kana_HO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_MA) case XK_kana_MA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_MI) case XK_kana_MI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_MU) case XK_kana_MU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_ME) case XK_kana_ME: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_MO) case XK_kana_MO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_YA) case XK_kana_YA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_YU) case XK_kana_YU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_YO) case XK_kana_YO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_RA) case XK_kana_RA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_RI) case XK_kana_RI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_RU) case XK_kana_RU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_RE) case XK_kana_RE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_RO) case XK_kana_RO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_WA) case XK_kana_WA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_N) case XK_kana_N: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_voicedsound) case XK_voicedsound: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_semivoicedsound) case XK_semivoicedsound: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_kana_switch) case XK_kana_switch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_comma) case XK_Arabic_comma: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_semicolon) case XK_Arabic_semicolon: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_question_mark) case XK_Arabic_question_mark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_hamza) case XK_Arabic_hamza: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_maddaonalef) case XK_Arabic_maddaonalef: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_hamzaonalef) case XK_Arabic_hamzaonalef: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_hamzaonwaw) case XK_Arabic_hamzaonwaw: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_hamzaunderalef) case XK_Arabic_hamzaunderalef: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_hamzaonyeh) case XK_Arabic_hamzaonyeh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_alef) case XK_Arabic_alef: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_beh) case XK_Arabic_beh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_tehmarbuta) case XK_Arabic_tehmarbuta: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_teh) case XK_Arabic_teh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_theh) case XK_Arabic_theh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_jeem) case XK_Arabic_jeem: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_hah) case XK_Arabic_hah: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_khah) case XK_Arabic_khah: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_dal) case XK_Arabic_dal: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_thal) case XK_Arabic_thal: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_ra) case XK_Arabic_ra: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_zain) case XK_Arabic_zain: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_seen) case XK_Arabic_seen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_sheen) case XK_Arabic_sheen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_sad) case XK_Arabic_sad: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_dad) case XK_Arabic_dad: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_tah) case XK_Arabic_tah: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_zah) case XK_Arabic_zah: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_ain) case XK_Arabic_ain: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_ghain) case XK_Arabic_ghain: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_tatweel) case XK_Arabic_tatweel: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_feh) case XK_Arabic_feh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_qaf) case XK_Arabic_qaf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_kaf) case XK_Arabic_kaf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_lam) case XK_Arabic_lam: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_meem) case XK_Arabic_meem: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_noon) case XK_Arabic_noon: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_ha) case XK_Arabic_ha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_heh) case XK_Arabic_heh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_waw) case XK_Arabic_waw: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_alefmaksura) case XK_Arabic_alefmaksura: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_yeh) case XK_Arabic_yeh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_fathatan) case XK_Arabic_fathatan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_dammatan) case XK_Arabic_dammatan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_kasratan) case XK_Arabic_kasratan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_fatha) case XK_Arabic_fatha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_damma) case XK_Arabic_damma: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_kasra) case XK_Arabic_kasra: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_shadda) case XK_Arabic_shadda: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_sukun) case XK_Arabic_sukun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Arabic_switch) case XK_Arabic_switch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_dje) case XK_Serbian_dje: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Macedonia_gje) case XK_Macedonia_gje: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_io) case XK_Cyrillic_io: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukrainian_ie) case XK_Ukrainian_ie: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukranian_je) case XK_Ukranian_je: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Macedonia_dse) case XK_Macedonia_dse: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukrainian_i) case XK_Ukrainian_i: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukranian_i) case XK_Ukranian_i: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukrainian_yi) case XK_Ukrainian_yi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukranian_yi) case XK_Ukranian_yi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_je) case XK_Cyrillic_je: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_je) case XK_Serbian_je: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_lje) case XK_Cyrillic_lje: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_lje) case XK_Serbian_lje: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_nje) case XK_Cyrillic_nje: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_nje) case XK_Serbian_nje: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_tshe) case XK_Serbian_tshe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Macedonia_kje) case XK_Macedonia_kje: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukrainian_ghe_with_upturn) case XK_Ukrainian_ghe_with_upturn: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Byelorussian_shortu) case XK_Byelorussian_shortu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_dzhe) case XK_Cyrillic_dzhe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_dze) case XK_Serbian_dze: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_numerosign) case XK_numerosign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_DJE) case XK_Serbian_DJE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Macedonia_GJE) case XK_Macedonia_GJE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_IO) case XK_Cyrillic_IO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukrainian_IE) case XK_Ukrainian_IE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukranian_JE) case XK_Ukranian_JE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Macedonia_DSE) case XK_Macedonia_DSE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukrainian_I) case XK_Ukrainian_I: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukranian_I) case XK_Ukranian_I: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukrainian_YI) case XK_Ukrainian_YI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukranian_YI) case XK_Ukranian_YI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_JE) case XK_Cyrillic_JE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_JE) case XK_Serbian_JE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_LJE) case XK_Cyrillic_LJE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_LJE) case XK_Serbian_LJE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_NJE) case XK_Cyrillic_NJE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_NJE) case XK_Serbian_NJE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_TSHE) case XK_Serbian_TSHE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Macedonia_KJE) case XK_Macedonia_KJE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Ukrainian_GHE_WITH_UPTURN) case XK_Ukrainian_GHE_WITH_UPTURN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Byelorussian_SHORTU) case XK_Byelorussian_SHORTU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_DZHE) case XK_Cyrillic_DZHE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Serbian_DZE) case XK_Serbian_DZE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_yu) case XK_Cyrillic_yu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_a) case XK_Cyrillic_a: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_be) case XK_Cyrillic_be: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_tse) case XK_Cyrillic_tse: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_de) case XK_Cyrillic_de: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ie) case XK_Cyrillic_ie: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ef) case XK_Cyrillic_ef: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ghe) case XK_Cyrillic_ghe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ha) case XK_Cyrillic_ha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_i) case XK_Cyrillic_i: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_shorti) case XK_Cyrillic_shorti: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ka) case XK_Cyrillic_ka: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_el) case XK_Cyrillic_el: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_em) case XK_Cyrillic_em: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_en) case XK_Cyrillic_en: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_o) case XK_Cyrillic_o: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_pe) case XK_Cyrillic_pe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ya) case XK_Cyrillic_ya: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_er) case XK_Cyrillic_er: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_es) case XK_Cyrillic_es: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_te) case XK_Cyrillic_te: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_u) case XK_Cyrillic_u: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_zhe) case XK_Cyrillic_zhe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ve) case XK_Cyrillic_ve: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_softsign) case XK_Cyrillic_softsign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_yeru) case XK_Cyrillic_yeru: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ze) case XK_Cyrillic_ze: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_sha) case XK_Cyrillic_sha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_e) case XK_Cyrillic_e: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_shcha) case XK_Cyrillic_shcha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_che) case XK_Cyrillic_che: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_hardsign) case XK_Cyrillic_hardsign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_YU) case XK_Cyrillic_YU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_A) case XK_Cyrillic_A: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_BE) case XK_Cyrillic_BE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_TSE) case XK_Cyrillic_TSE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_DE) case XK_Cyrillic_DE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_IE) case XK_Cyrillic_IE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_EF) case XK_Cyrillic_EF: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_GHE) case XK_Cyrillic_GHE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_HA) case XK_Cyrillic_HA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_I) case XK_Cyrillic_I: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_SHORTI) case XK_Cyrillic_SHORTI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_KA) case XK_Cyrillic_KA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_EL) case XK_Cyrillic_EL: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_EM) case XK_Cyrillic_EM: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_EN) case XK_Cyrillic_EN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_O) case XK_Cyrillic_O: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_PE) case XK_Cyrillic_PE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_YA) case XK_Cyrillic_YA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ER) case XK_Cyrillic_ER: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ES) case XK_Cyrillic_ES: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_TE) case XK_Cyrillic_TE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_U) case XK_Cyrillic_U: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ZHE) case XK_Cyrillic_ZHE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_VE) case XK_Cyrillic_VE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_SOFTSIGN) case XK_Cyrillic_SOFTSIGN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_YERU) case XK_Cyrillic_YERU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_ZE) case XK_Cyrillic_ZE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_SHA) case XK_Cyrillic_SHA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_E) case XK_Cyrillic_E: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_SHCHA) case XK_Cyrillic_SHCHA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_CHE) case XK_Cyrillic_CHE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Cyrillic_HARDSIGN) case XK_Cyrillic_HARDSIGN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_ALPHAaccent) case XK_Greek_ALPHAaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_EPSILONaccent) case XK_Greek_EPSILONaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_ETAaccent) case XK_Greek_ETAaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_IOTAaccent) case XK_Greek_IOTAaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_IOTAdiaeresis) case XK_Greek_IOTAdiaeresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_OMICRONaccent) case XK_Greek_OMICRONaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_UPSILONaccent) case XK_Greek_UPSILONaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_UPSILONdieresis) case XK_Greek_UPSILONdieresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_OMEGAaccent) case XK_Greek_OMEGAaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_accentdieresis) case XK_Greek_accentdieresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_horizbar) case XK_Greek_horizbar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_alphaaccent) case XK_Greek_alphaaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_epsilonaccent) case XK_Greek_epsilonaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_etaaccent) case XK_Greek_etaaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_iotaaccent) case XK_Greek_iotaaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_iotadieresis) case XK_Greek_iotadieresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_iotaaccentdieresis) case XK_Greek_iotaaccentdieresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_omicronaccent) case XK_Greek_omicronaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_upsilonaccent) case XK_Greek_upsilonaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_upsilondieresis) case XK_Greek_upsilondieresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_upsilonaccentdieresis) case XK_Greek_upsilonaccentdieresis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_omegaaccent) case XK_Greek_omegaaccent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_ALPHA) case XK_Greek_ALPHA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_BETA) case XK_Greek_BETA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_GAMMA) case XK_Greek_GAMMA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_DELTA) case XK_Greek_DELTA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_EPSILON) case XK_Greek_EPSILON: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_ZETA) case XK_Greek_ZETA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_ETA) case XK_Greek_ETA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_THETA) case XK_Greek_THETA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_IOTA) case XK_Greek_IOTA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_KAPPA) case XK_Greek_KAPPA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_LAMDA) case XK_Greek_LAMDA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_LAMBDA) case XK_Greek_LAMBDA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_MU) case XK_Greek_MU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_NU) case XK_Greek_NU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_XI) case XK_Greek_XI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_OMICRON) case XK_Greek_OMICRON: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_PI) case XK_Greek_PI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_RHO) case XK_Greek_RHO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_SIGMA) case XK_Greek_SIGMA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_TAU) case XK_Greek_TAU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_UPSILON) case XK_Greek_UPSILON: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_PHI) case XK_Greek_PHI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_CHI) case XK_Greek_CHI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_PSI) case XK_Greek_PSI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_OMEGA) case XK_Greek_OMEGA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_alpha) case XK_Greek_alpha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_beta) case XK_Greek_beta: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_gamma) case XK_Greek_gamma: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_delta) case XK_Greek_delta: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_epsilon) case XK_Greek_epsilon: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_zeta) case XK_Greek_zeta: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_eta) case XK_Greek_eta: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_theta) case XK_Greek_theta: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_iota) case XK_Greek_iota: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_kappa) case XK_Greek_kappa: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_lamda) case XK_Greek_lamda: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_lambda) case XK_Greek_lambda: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_mu) case XK_Greek_mu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_nu) case XK_Greek_nu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_xi) case XK_Greek_xi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_omicron) case XK_Greek_omicron: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_pi) case XK_Greek_pi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_rho) case XK_Greek_rho: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_sigma) case XK_Greek_sigma: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_finalsmallsigma) case XK_Greek_finalsmallsigma: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_tau) case XK_Greek_tau: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_upsilon) case XK_Greek_upsilon: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_phi) case XK_Greek_phi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_chi) case XK_Greek_chi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_psi) case XK_Greek_psi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_omega) case XK_Greek_omega: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Greek_switch) case XK_Greek_switch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftradical) case XK_leftradical: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_topleftradical) case XK_topleftradical: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_horizconnector) case XK_horizconnector: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_topintegral) case XK_topintegral: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_botintegral) case XK_botintegral: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_vertconnector) case XK_vertconnector: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_topleftsqbracket) case XK_topleftsqbracket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_botleftsqbracket) case XK_botleftsqbracket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_toprightsqbracket) case XK_toprightsqbracket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_botrightsqbracket) case XK_botrightsqbracket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_topleftparens) case XK_topleftparens: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_botleftparens) case XK_botleftparens: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_toprightparens) case XK_toprightparens: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_botrightparens) case XK_botrightparens: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftmiddlecurlybrace) case XK_leftmiddlecurlybrace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightmiddlecurlybrace) case XK_rightmiddlecurlybrace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_topleftsummation) case XK_topleftsummation: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_botleftsummation) case XK_botleftsummation: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_topvertsummationconnector) case XK_topvertsummationconnector: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_botvertsummationconnector) case XK_botvertsummationconnector: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_toprightsummation) case XK_toprightsummation: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_botrightsummation) case XK_botrightsummation: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightmiddlesummation) case XK_rightmiddlesummation: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lessthanequal) case XK_lessthanequal: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_notequal) case XK_notequal: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_greaterthanequal) case XK_greaterthanequal: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_integral) case XK_integral: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_therefore) case XK_therefore: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_variation) case XK_variation: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_infinity) case XK_infinity: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_nabla) case XK_nabla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_approximate) case XK_approximate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_similarequal) case XK_similarequal: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ifonlyif) case XK_ifonlyif: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_implies) case XK_implies: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_identical) case XK_identical: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_radical) case XK_radical: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_includedin) case XK_includedin: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_includes) case XK_includes: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_intersection) case XK_intersection: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_union) case XK_union: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_logicaland) case XK_logicaland: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_logicalor) case XK_logicalor: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_partialderivative) case XK_partialderivative: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_function) case XK_function: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_leftarrow) case XK_leftarrow: vk = VK_LEFT; break; #endif #if defined(XK_uparrow) case XK_uparrow: vk = VK_UP; break; #endif #if defined(XK_rightarrow) case XK_rightarrow: vk = VK_RIGHT; break; #endif #if defined(XK_downarrow) case XK_downarrow: vk = VK_DOWN; break; #endif /* #if defined(XK_blank) case XK_blank: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_soliddiamond) case XK_soliddiamond: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_checkerboard) case XK_checkerboard: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ht) case XK_ht: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ff) case XK_ff: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_cr) case XK_cr: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lf) case XK_lf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_nl) case XK_nl: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_vt) case XK_vt: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lowrightcorner) case XK_lowrightcorner: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_uprightcorner) case XK_uprightcorner: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_upleftcorner) case XK_upleftcorner: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lowleftcorner) case XK_lowleftcorner: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_crossinglines) case XK_crossinglines: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_horizlinescan1) case XK_horizlinescan1: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_horizlinescan3) case XK_horizlinescan3: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_horizlinescan5) case XK_horizlinescan5: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_horizlinescan7) case XK_horizlinescan7: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_horizlinescan9) case XK_horizlinescan9: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftt) case XK_leftt: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightt) case XK_rightt: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_bott) case XK_bott: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_topt) case XK_topt: vk = UNKNOWN; break; #endif 1*/ #if defined(XK_vertbar) case XK_vertbar: vk = '|'; break; #endif /* #if defined(XK_emspace) case XK_emspace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_enspace) case XK_enspace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_em3space) case XK_em3space: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_em4space) case XK_em4space: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_digitspace) case XK_digitspace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_punctspace) case XK_punctspace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_thinspace) case XK_thinspace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hairspace) case XK_hairspace: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_emdash) case XK_emdash: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_endash) case XK_endash: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_signifblank) case XK_signifblank: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ellipsis) case XK_ellipsis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_doubbaselinedot) case XK_doubbaselinedot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_onethird) case XK_onethird: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_twothirds) case XK_twothirds: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_onefifth) case XK_onefifth: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_twofifths) case XK_twofifths: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_threefifths) case XK_threefifths: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_fourfifths) case XK_fourfifths: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_onesixth) case XK_onesixth: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_fivesixths) case XK_fivesixths: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_careof) case XK_careof: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_figdash) case XK_figdash: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftanglebracket) case XK_leftanglebracket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_decimalpoint) case XK_decimalpoint: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightanglebracket) case XK_rightanglebracket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_marker) case XK_marker: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_oneeighth) case XK_oneeighth: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_threeeighths) case XK_threeeighths: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_fiveeighths) case XK_fiveeighths: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_seveneighths) case XK_seveneighths: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_trademark) case XK_trademark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_signaturemark) case XK_signaturemark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_trademarkincircle) case XK_trademarkincircle: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftopentriangle) case XK_leftopentriangle: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightopentriangle) case XK_rightopentriangle: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_emopencircle) case XK_emopencircle: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_emopenrectangle) case XK_emopenrectangle: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftsinglequotemark) case XK_leftsinglequotemark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightsinglequotemark) case XK_rightsinglequotemark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftdoublequotemark) case XK_leftdoublequotemark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightdoublequotemark) case XK_rightdoublequotemark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_prescription) case XK_prescription: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_minutes) case XK_minutes: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_seconds) case XK_seconds: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_latincross) case XK_latincross: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hexagram) case XK_hexagram: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_filledrectbullet) case XK_filledrectbullet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_filledlefttribullet) case XK_filledlefttribullet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_filledrighttribullet) case XK_filledrighttribullet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_emfilledcircle) case XK_emfilledcircle: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_emfilledrect) case XK_emfilledrect: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_enopencircbullet) case XK_enopencircbullet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_enopensquarebullet) case XK_enopensquarebullet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_openrectbullet) case XK_openrectbullet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_opentribulletup) case XK_opentribulletup: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_opentribulletdown) case XK_opentribulletdown: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_openstar) case XK_openstar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_enfilledcircbullet) case XK_enfilledcircbullet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_enfilledsqbullet) case XK_enfilledsqbullet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_filledtribulletup) case XK_filledtribulletup: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_filledtribulletdown) case XK_filledtribulletdown: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftpointer) case XK_leftpointer: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightpointer) case XK_rightpointer: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_club) case XK_club: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_diamond) case XK_diamond: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_heart) case XK_heart: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_maltesecross) case XK_maltesecross: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_dagger) case XK_dagger: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_doubledagger) case XK_doubledagger: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_checkmark) case XK_checkmark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ballotcross) case XK_ballotcross: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_musicalsharp) case XK_musicalsharp: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_musicalflat) case XK_musicalflat: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_malesymbol) case XK_malesymbol: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_femalesymbol) case XK_femalesymbol: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_telephone) case XK_telephone: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_telephonerecorder) case XK_telephonerecorder: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_phonographcopyright) case XK_phonographcopyright: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_caret) case XK_caret: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_singlelowquotemark) case XK_singlelowquotemark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_doublelowquotemark) case XK_doublelowquotemark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_cursor) case XK_cursor: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftcaret) case XK_leftcaret: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightcaret) case XK_rightcaret: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_downcaret) case XK_downcaret: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_upcaret) case XK_upcaret: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_overbar) case XK_overbar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_downtack) case XK_downtack: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_upshoe) case XK_upshoe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_downstile) case XK_downstile: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_underbar) case XK_underbar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_jot) case XK_jot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_quad) case XK_quad: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_uptack) case XK_uptack: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_circle) case XK_circle: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_upstile) case XK_upstile: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_downshoe) case XK_downshoe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_rightshoe) case XK_rightshoe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_leftshoe) case XK_leftshoe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_lefttack) case XK_lefttack: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_righttack) case XK_righttack: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_doublelowline) case XK_hebrew_doublelowline: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_aleph) case XK_hebrew_aleph: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_bet) case XK_hebrew_bet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_beth) case XK_hebrew_beth: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_gimel) case XK_hebrew_gimel: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_gimmel) case XK_hebrew_gimmel: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_dalet) case XK_hebrew_dalet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_daleth) case XK_hebrew_daleth: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_he) case XK_hebrew_he: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_waw) case XK_hebrew_waw: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_zain) case XK_hebrew_zain: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_zayin) case XK_hebrew_zayin: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_chet) case XK_hebrew_chet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_het) case XK_hebrew_het: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_tet) case XK_hebrew_tet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_teth) case XK_hebrew_teth: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_yod) case XK_hebrew_yod: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_finalkaph) case XK_hebrew_finalkaph: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_kaph) case XK_hebrew_kaph: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_lamed) case XK_hebrew_lamed: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_finalmem) case XK_hebrew_finalmem: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_mem) case XK_hebrew_mem: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_finalnun) case XK_hebrew_finalnun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_nun) case XK_hebrew_nun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_samech) case XK_hebrew_samech: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_samekh) case XK_hebrew_samekh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_ayin) case XK_hebrew_ayin: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_finalpe) case XK_hebrew_finalpe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_pe) case XK_hebrew_pe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_finalzade) case XK_hebrew_finalzade: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_finalzadi) case XK_hebrew_finalzadi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_zade) case XK_hebrew_zade: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_zadi) case XK_hebrew_zadi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_qoph) case XK_hebrew_qoph: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_kuf) case XK_hebrew_kuf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_resh) case XK_hebrew_resh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_shin) case XK_hebrew_shin: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_taw) case XK_hebrew_taw: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_hebrew_taf) case XK_hebrew_taf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hebrew_switch) case XK_Hebrew_switch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_kokai) case XK_Thai_kokai: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_khokhai) case XK_Thai_khokhai: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_khokhuat) case XK_Thai_khokhuat: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_khokhwai) case XK_Thai_khokhwai: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_khokhon) case XK_Thai_khokhon: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_khorakhang) case XK_Thai_khorakhang: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_ngongu) case XK_Thai_ngongu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_chochan) case XK_Thai_chochan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_choching) case XK_Thai_choching: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_chochang) case XK_Thai_chochang: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_soso) case XK_Thai_soso: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_chochoe) case XK_Thai_chochoe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_yoying) case XK_Thai_yoying: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_dochada) case XK_Thai_dochada: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_topatak) case XK_Thai_topatak: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_thothan) case XK_Thai_thothan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_thonangmontho) case XK_Thai_thonangmontho: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_thophuthao) case XK_Thai_thophuthao: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_nonen) case XK_Thai_nonen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_dodek) case XK_Thai_dodek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_totao) case XK_Thai_totao: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_thothung) case XK_Thai_thothung: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_thothahan) case XK_Thai_thothahan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_thothong) case XK_Thai_thothong: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_nonu) case XK_Thai_nonu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_bobaimai) case XK_Thai_bobaimai: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_popla) case XK_Thai_popla: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_phophung) case XK_Thai_phophung: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_fofa) case XK_Thai_fofa: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_phophan) case XK_Thai_phophan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_fofan) case XK_Thai_fofan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_phosamphao) case XK_Thai_phosamphao: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_moma) case XK_Thai_moma: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_yoyak) case XK_Thai_yoyak: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_rorua) case XK_Thai_rorua: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_ru) case XK_Thai_ru: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_loling) case XK_Thai_loling: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_lu) case XK_Thai_lu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_wowaen) case XK_Thai_wowaen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sosala) case XK_Thai_sosala: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sorusi) case XK_Thai_sorusi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sosua) case XK_Thai_sosua: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_hohip) case XK_Thai_hohip: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_lochula) case XK_Thai_lochula: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_oang) case XK_Thai_oang: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_honokhuk) case XK_Thai_honokhuk: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_paiyannoi) case XK_Thai_paiyannoi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_saraa) case XK_Thai_saraa: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_maihanakat) case XK_Thai_maihanakat: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_saraaa) case XK_Thai_saraaa: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_saraam) case XK_Thai_saraam: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sarai) case XK_Thai_sarai: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_saraii) case XK_Thai_saraii: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_saraue) case XK_Thai_saraue: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sarauee) case XK_Thai_sarauee: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sarau) case XK_Thai_sarau: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sarauu) case XK_Thai_sarauu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_phinthu) case XK_Thai_phinthu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_maihanakat_maitho) case XK_Thai_maihanakat_maitho: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_baht) case XK_Thai_baht: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sarae) case XK_Thai_sarae: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_saraae) case XK_Thai_saraae: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_sarao) case XK_Thai_sarao: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_saraaimaimuan) case XK_Thai_saraaimaimuan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_saraaimaimalai) case XK_Thai_saraaimaimalai: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_lakkhangyao) case XK_Thai_lakkhangyao: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_maiyamok) case XK_Thai_maiyamok: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_maitaikhu) case XK_Thai_maitaikhu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_maiek) case XK_Thai_maiek: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_maitho) case XK_Thai_maitho: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_maitri) case XK_Thai_maitri: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_maichattawa) case XK_Thai_maichattawa: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_thanthakhat) case XK_Thai_thanthakhat: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_nikhahit) case XK_Thai_nikhahit: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_leksun) case XK_Thai_leksun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_leknung) case XK_Thai_leknung: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_leksong) case XK_Thai_leksong: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_leksam) case XK_Thai_leksam: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_leksi) case XK_Thai_leksi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_lekha) case XK_Thai_lekha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_lekhok) case XK_Thai_lekhok: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_lekchet) case XK_Thai_lekchet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_lekpaet) case XK_Thai_lekpaet: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Thai_lekkao) case XK_Thai_lekkao: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul) case XK_Hangul: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Start) case XK_Hangul_Start: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_End) case XK_Hangul_End: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Hanja) case XK_Hangul_Hanja: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Jamo) case XK_Hangul_Jamo: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Romaja) case XK_Hangul_Romaja: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Codeinput) case XK_Hangul_Codeinput: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Jeonja) case XK_Hangul_Jeonja: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Banja) case XK_Hangul_Banja: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_PreHanja) case XK_Hangul_PreHanja: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_PostHanja) case XK_Hangul_PostHanja: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SingleCandidate) case XK_Hangul_SingleCandidate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_MultipleCandidate) case XK_Hangul_MultipleCandidate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_PreviousCandidate) case XK_Hangul_PreviousCandidate: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Special) case XK_Hangul_Special: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_switch) case XK_Hangul_switch: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Kiyeog) case XK_Hangul_Kiyeog: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SsangKiyeog) case XK_Hangul_SsangKiyeog: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_KiyeogSios) case XK_Hangul_KiyeogSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Nieun) case XK_Hangul_Nieun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_NieunJieuj) case XK_Hangul_NieunJieuj: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_NieunHieuh) case XK_Hangul_NieunHieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Dikeud) case XK_Hangul_Dikeud: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SsangDikeud) case XK_Hangul_SsangDikeud: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Rieul) case XK_Hangul_Rieul: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_RieulKiyeog) case XK_Hangul_RieulKiyeog: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_RieulMieum) case XK_Hangul_RieulMieum: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_RieulPieub) case XK_Hangul_RieulPieub: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_RieulSios) case XK_Hangul_RieulSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_RieulTieut) case XK_Hangul_RieulTieut: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_RieulPhieuf) case XK_Hangul_RieulPhieuf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_RieulHieuh) case XK_Hangul_RieulHieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Mieum) case XK_Hangul_Mieum: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Pieub) case XK_Hangul_Pieub: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SsangPieub) case XK_Hangul_SsangPieub: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_PieubSios) case XK_Hangul_PieubSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Sios) case XK_Hangul_Sios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SsangSios) case XK_Hangul_SsangSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Ieung) case XK_Hangul_Ieung: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Jieuj) case XK_Hangul_Jieuj: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SsangJieuj) case XK_Hangul_SsangJieuj: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Cieuc) case XK_Hangul_Cieuc: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Khieuq) case XK_Hangul_Khieuq: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Tieut) case XK_Hangul_Tieut: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Phieuf) case XK_Hangul_Phieuf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_Hieuh) case XK_Hangul_Hieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_A) case XK_Hangul_A: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_AE) case XK_Hangul_AE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_YA) case XK_Hangul_YA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_YAE) case XK_Hangul_YAE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_EO) case XK_Hangul_EO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_E) case XK_Hangul_E: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_YEO) case XK_Hangul_YEO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_YE) case XK_Hangul_YE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_O) case XK_Hangul_O: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_WA) case XK_Hangul_WA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_WAE) case XK_Hangul_WAE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_OE) case XK_Hangul_OE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_YO) case XK_Hangul_YO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_U) case XK_Hangul_U: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_WEO) case XK_Hangul_WEO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_WE) case XK_Hangul_WE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_WI) case XK_Hangul_WI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_YU) case XK_Hangul_YU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_EU) case XK_Hangul_EU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_YI) case XK_Hangul_YI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_I) case XK_Hangul_I: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Kiyeog) case XK_Hangul_J_Kiyeog: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_SsangKiyeog) case XK_Hangul_J_SsangKiyeog: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_KiyeogSios) case XK_Hangul_J_KiyeogSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Nieun) case XK_Hangul_J_Nieun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_NieunJieuj) case XK_Hangul_J_NieunJieuj: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_NieunHieuh) case XK_Hangul_J_NieunHieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Dikeud) case XK_Hangul_J_Dikeud: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Rieul) case XK_Hangul_J_Rieul: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_RieulKiyeog) case XK_Hangul_J_RieulKiyeog: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_RieulMieum) case XK_Hangul_J_RieulMieum: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_RieulPieub) case XK_Hangul_J_RieulPieub: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_RieulSios) case XK_Hangul_J_RieulSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_RieulTieut) case XK_Hangul_J_RieulTieut: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_RieulPhieuf) case XK_Hangul_J_RieulPhieuf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_RieulHieuh) case XK_Hangul_J_RieulHieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Mieum) case XK_Hangul_J_Mieum: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Pieub) case XK_Hangul_J_Pieub: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_PieubSios) case XK_Hangul_J_PieubSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Sios) case XK_Hangul_J_Sios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_SsangSios) case XK_Hangul_J_SsangSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Ieung) case XK_Hangul_J_Ieung: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Jieuj) case XK_Hangul_J_Jieuj: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Cieuc) case XK_Hangul_J_Cieuc: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Khieuq) case XK_Hangul_J_Khieuq: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Tieut) case XK_Hangul_J_Tieut: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Phieuf) case XK_Hangul_J_Phieuf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_Hieuh) case XK_Hangul_J_Hieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_RieulYeorinHieuh) case XK_Hangul_RieulYeorinHieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SunkyeongeumMieum) case XK_Hangul_SunkyeongeumMieum: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SunkyeongeumPieub) case XK_Hangul_SunkyeongeumPieub: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_PanSios) case XK_Hangul_PanSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_KkogjiDalrinIeung) case XK_Hangul_KkogjiDalrinIeung: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_SunkyeongeumPhieuf) case XK_Hangul_SunkyeongeumPhieuf: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_YeorinHieuh) case XK_Hangul_YeorinHieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_AraeA) case XK_Hangul_AraeA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_AraeAE) case XK_Hangul_AraeAE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_PanSios) case XK_Hangul_J_PanSios: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_KkogjiDalrinIeung) case XK_Hangul_J_KkogjiDalrinIeung: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Hangul_J_YeorinHieuh) case XK_Hangul_J_YeorinHieuh: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Korean_Won) case XK_Korean_Won: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_eternity) case XK_Armenian_eternity: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_section_sign) case XK_Armenian_section_sign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_full_stop) case XK_Armenian_full_stop: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_verjaket) case XK_Armenian_verjaket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_parenright) case XK_Armenian_parenright: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_parenleft) case XK_Armenian_parenleft: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_guillemotright) case XK_Armenian_guillemotright: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_guillemotleft) case XK_Armenian_guillemotleft: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_em_dash) case XK_Armenian_em_dash: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_dot) case XK_Armenian_dot: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_mijaket) case XK_Armenian_mijaket: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_separation_mark) case XK_Armenian_separation_mark: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_but) case XK_Armenian_but: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_comma) case XK_Armenian_comma: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_en_dash) case XK_Armenian_en_dash: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_hyphen) case XK_Armenian_hyphen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_yentamna) case XK_Armenian_yentamna: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ellipsis) case XK_Armenian_ellipsis: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_exclam) case XK_Armenian_exclam: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_amanak) case XK_Armenian_amanak: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_accent) case XK_Armenian_accent: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_shesht) case XK_Armenian_shesht: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_question) case XK_Armenian_question: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_paruyk) case XK_Armenian_paruyk: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_AYB) case XK_Armenian_AYB: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ayb) case XK_Armenian_ayb: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_BEN) case XK_Armenian_BEN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ben) case XK_Armenian_ben: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_GIM) case XK_Armenian_GIM: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_gim) case XK_Armenian_gim: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_DA) case XK_Armenian_DA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_da) case XK_Armenian_da: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_YECH) case XK_Armenian_YECH: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_yech) case XK_Armenian_yech: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ZA) case XK_Armenian_ZA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_za) case XK_Armenian_za: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_E) case XK_Armenian_E: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_e) case XK_Armenian_e: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_AT) case XK_Armenian_AT: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_at) case XK_Armenian_at: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_TO) case XK_Armenian_TO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_to) case XK_Armenian_to: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ZHE) case XK_Armenian_ZHE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_zhe) case XK_Armenian_zhe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_INI) case XK_Armenian_INI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ini) case XK_Armenian_ini: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_LYUN) case XK_Armenian_LYUN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_lyun) case XK_Armenian_lyun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_KHE) case XK_Armenian_KHE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_khe) case XK_Armenian_khe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_TSA) case XK_Armenian_TSA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_tsa) case XK_Armenian_tsa: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_KEN) case XK_Armenian_KEN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ken) case XK_Armenian_ken: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_HO) case XK_Armenian_HO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ho) case XK_Armenian_ho: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_DZA) case XK_Armenian_DZA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_dza) case XK_Armenian_dza: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_GHAT) case XK_Armenian_GHAT: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ghat) case XK_Armenian_ghat: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_TCHE) case XK_Armenian_TCHE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_tche) case XK_Armenian_tche: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_MEN) case XK_Armenian_MEN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_men) case XK_Armenian_men: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_HI) case XK_Armenian_HI: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_hi) case XK_Armenian_hi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_NU) case XK_Armenian_NU: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_nu) case XK_Armenian_nu: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_SHA) case XK_Armenian_SHA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_sha) case XK_Armenian_sha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_VO) case XK_Armenian_VO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_vo) case XK_Armenian_vo: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_CHA) case XK_Armenian_CHA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_cha) case XK_Armenian_cha: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_PE) case XK_Armenian_PE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_pe) case XK_Armenian_pe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_JE) case XK_Armenian_JE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_je) case XK_Armenian_je: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_RA) case XK_Armenian_RA: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ra) case XK_Armenian_ra: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_SE) case XK_Armenian_SE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_se) case XK_Armenian_se: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_VEV) case XK_Armenian_VEV: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_vev) case XK_Armenian_vev: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_TYUN) case XK_Armenian_TYUN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_tyun) case XK_Armenian_tyun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_RE) case XK_Armenian_RE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_re) case XK_Armenian_re: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_TSO) case XK_Armenian_TSO: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_tso) case XK_Armenian_tso: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_VYUN) case XK_Armenian_VYUN: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_vyun) case XK_Armenian_vyun: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_PYUR) case XK_Armenian_PYUR: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_pyur) case XK_Armenian_pyur: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_KE) case XK_Armenian_KE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ke) case XK_Armenian_ke: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_O) case XK_Armenian_O: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_o) case XK_Armenian_o: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_FE) case XK_Armenian_FE: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_fe) case XK_Armenian_fe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_apostrophe) case XK_Armenian_apostrophe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Armenian_ligature_ew) case XK_Armenian_ligature_ew: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_an) case XK_Georgian_an: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_ban) case XK_Georgian_ban: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_gan) case XK_Georgian_gan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_don) case XK_Georgian_don: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_en) case XK_Georgian_en: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_vin) case XK_Georgian_vin: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_zen) case XK_Georgian_zen: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_tan) case XK_Georgian_tan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_in) case XK_Georgian_in: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_kan) case XK_Georgian_kan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_las) case XK_Georgian_las: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_man) case XK_Georgian_man: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_nar) case XK_Georgian_nar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_on) case XK_Georgian_on: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_par) case XK_Georgian_par: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_zhar) case XK_Georgian_zhar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_rae) case XK_Georgian_rae: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_san) case XK_Georgian_san: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_tar) case XK_Georgian_tar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_un) case XK_Georgian_un: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_phar) case XK_Georgian_phar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_khar) case XK_Georgian_khar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_ghan) case XK_Georgian_ghan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_qar) case XK_Georgian_qar: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_shin) case XK_Georgian_shin: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_chin) case XK_Georgian_chin: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_can) case XK_Georgian_can: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_jil) case XK_Georgian_jil: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_cil) case XK_Georgian_cil: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_char) case XK_Georgian_char: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_xan) case XK_Georgian_xan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_jhan) case XK_Georgian_jhan: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_hae) case XK_Georgian_hae: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_he) case XK_Georgian_he: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_hie) case XK_Georgian_hie: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_we) case XK_Georgian_we: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_har) case XK_Georgian_har: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_hoe) case XK_Georgian_hoe: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_Georgian_fi) case XK_Georgian_fi: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_EcuSign) case XK_EcuSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_ColonSign) case XK_ColonSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_CruzeiroSign) case XK_CruzeiroSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_FFrancSign) case XK_FFrancSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_LiraSign) case XK_LiraSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_MillSign) case XK_MillSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_NairaSign) case XK_NairaSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_PesetaSign) case XK_PesetaSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_RupeeSign) case XK_RupeeSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_WonSign) case XK_WonSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_NewSheqelSign) case XK_NewSheqelSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_DongSign) case XK_DongSign: vk = UNKNOWN; break; #endif 1*/ /* #if defined(XK_EuroSign) case XK_EuroSign: vk = UNKNOWN; break; #endif 1*/ } return vk; } gmv0.9/src/glwin/xk.h0100644000175200017560000021523207264210531015046 0ustar stephensstepheng/* $TOG: keysymdef.h /main/28 1998/05/22 16:18:01 kaleb $ */ /*********************************************************** Copyright 1987, 1994, 1998 The Open Group All Rights Reserved. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ /* $XFree86: xc/include/keysymdef.h,v 1.9 1999/07/06 11:38:02 dawes Exp $ */ /* default keysyms */ #define XK_MISCELLANY #define XK_XKB_KEYS #define XK_LATIN1 #define XK_LATIN2 #define XK_LATIN3 #define XK_LATIN4 #define XK_LATIN9 #define XK_GREEK #define XK_CURRENCY #define XK_VoidSymbol 0xFFFFFF /* void symbol */ #ifdef XK_MISCELLANY /* * TTY Functions, cleverly chosen to map to ascii, for convenience of * programming, but could have been arbitrary (at the cost of lookup * tables in client code. */ #define XK_BackSpace 0xFF08 /* back space, back char */ #define XK_Tab 0xFF09 #define XK_Linefeed 0xFF0A /* Linefeed, LF */ #define XK_Clear 0xFF0B #define XK_Return 0xFF0D /* Return, enter */ #define XK_Pause 0xFF13 /* Pause, hold */ #define XK_Scroll_Lock 0xFF14 #define XK_Sys_Req 0xFF15 #define XK_Escape 0xFF1B #define XK_Delete 0xFFFF /* Delete, rubout */ /* International & multi-key character composition */ #define XK_Multi_key 0xFF20 /* Multi-key character compose */ #define XK_Codeinput 0xFF37 #define XK_SingleCandidate 0xFF3C #define XK_MultipleCandidate 0xFF3D #define XK_PreviousCandidate 0xFF3E /* Japanese keyboard support */ #define XK_Kanji 0xFF21 /* Kanji, Kanji convert */ #define XK_Muhenkan 0xFF22 /* Cancel Conversion */ #define XK_Henkan_Mode 0xFF23 /* Start/Stop Conversion */ #define XK_Henkan 0xFF23 /* Alias for Henkan_Mode */ #define XK_Romaji 0xFF24 /* to Romaji */ #define XK_Hiragana 0xFF25 /* to Hiragana */ #define XK_Katakana 0xFF26 /* to Katakana */ #define XK_Hiragana_Katakana 0xFF27 /* Hiragana/Katakana toggle */ #define XK_Zenkaku 0xFF28 /* to Zenkaku */ #define XK_Hankaku 0xFF29 /* to Hankaku */ #define XK_Zenkaku_Hankaku 0xFF2A /* Zenkaku/Hankaku toggle */ #define XK_Touroku 0xFF2B /* Add to Dictionary */ #define XK_Massyo 0xFF2C /* Delete from Dictionary */ #define XK_Kana_Lock 0xFF2D /* Kana Lock */ #define XK_Kana_Shift 0xFF2E /* Kana Shift */ #define XK_Eisu_Shift 0xFF2F /* Alphanumeric Shift */ #define XK_Eisu_toggle 0xFF30 /* Alphanumeric toggle */ #define XK_Kanji_Bangou 0xFF37 /* Codeinput */ #define XK_Zen_Koho 0xFF3D /* Multiple/All Candidate(s) */ #define XK_Mae_Koho 0xFF3E /* Previous Candidate */ /* 0xFF31 thru 0xFF3F are under XK_KOREAN */ /* Cursor control & motion */ #define XK_Home 0xFF50 #define XK_Left 0xFF51 /* Move left, left arrow */ #define XK_Up 0xFF52 /* Move up, up arrow */ #define XK_Right 0xFF53 /* Move right, right arrow */ #define XK_Down 0xFF54 /* Move down, down arrow */ #define XK_Prior 0xFF55 /* Prior, previous */ #define XK_Page_Up 0xFF55 #define XK_Next 0xFF56 /* Next */ #define XK_Page_Down 0xFF56 #define XK_End 0xFF57 /* EOL */ #define XK_Begin 0xFF58 /* BOL */ /* Misc Functions */ #define XK_Select 0xFF60 /* Select, mark */ #define XK_Print 0xFF61 #define XK_Execute 0xFF62 /* Execute, run, do */ #define XK_Insert 0xFF63 /* Insert, insert here */ #define XK_Undo 0xFF65 /* Undo, oops */ #define XK_Redo 0xFF66 /* redo, again */ #define XK_Menu 0xFF67 #define XK_Find 0xFF68 /* Find, search */ #define XK_Cancel 0xFF69 /* Cancel, stop, abort, exit */ #define XK_Help 0xFF6A /* Help */ #define XK_Break 0xFF6B #define XK_Mode_switch 0xFF7E /* Character set switch */ #define XK_script_switch 0xFF7E /* Alias for mode_switch */ #define XK_Num_Lock 0xFF7F /* Keypad Functions, keypad numbers cleverly chosen to map to ascii */ #define XK_KP_Space 0xFF80 /* space */ #define XK_KP_Tab 0xFF89 #define XK_KP_Enter 0xFF8D /* enter */ #define XK_KP_F1 0xFF91 /* PF1, KP_A, ... */ #define XK_KP_F2 0xFF92 #define XK_KP_F3 0xFF93 #define XK_KP_F4 0xFF94 #define XK_KP_Home 0xFF95 #define XK_KP_Left 0xFF96 #define XK_KP_Up 0xFF97 #define XK_KP_Right 0xFF98 #define XK_KP_Down 0xFF99 #define XK_KP_Prior 0xFF9A #define XK_KP_Page_Up 0xFF9A #define XK_KP_Next 0xFF9B #define XK_KP_Page_Down 0xFF9B #define XK_KP_End 0xFF9C #define XK_KP_Begin 0xFF9D #define XK_KP_Insert 0xFF9E #define XK_KP_Delete 0xFF9F #define XK_KP_Equal 0xFFBD /* equals */ #define XK_KP_Multiply 0xFFAA #define XK_KP_Add 0xFFAB #define XK_KP_Separator 0xFFAC /* separator, often comma */ #define XK_KP_Subtract 0xFFAD #define XK_KP_Decimal 0xFFAE #define XK_KP_Divide 0xFFAF #define XK_KP_0 0xFFB0 #define XK_KP_1 0xFFB1 #define XK_KP_2 0xFFB2 #define XK_KP_3 0xFFB3 #define XK_KP_4 0xFFB4 #define XK_KP_5 0xFFB5 #define XK_KP_6 0xFFB6 #define XK_KP_7 0xFFB7 #define XK_KP_8 0xFFB8 #define XK_KP_9 0xFFB9 /* * Auxilliary Functions; note the duplicate definitions for left and right * function keys; Sun keyboards and a few other manufactures have such * function key groups on the left and/or right sides of the keyboard. * We've not found a keyboard with more than 35 function keys total. */ #define XK_F1 0xFFBE #define XK_F2 0xFFBF #define XK_F3 0xFFC0 #define XK_F4 0xFFC1 #define XK_F5 0xFFC2 #define XK_F6 0xFFC3 #define XK_F7 0xFFC4 #define XK_F8 0xFFC5 #define XK_F9 0xFFC6 #define XK_F10 0xFFC7 #define XK_F11 0xFFC8 #define XK_L1 0xFFC8 #define XK_F12 0xFFC9 #define XK_L2 0xFFC9 #define XK_F13 0xFFCA #define XK_L3 0xFFCA #define XK_F14 0xFFCB #define XK_L4 0xFFCB #define XK_F15 0xFFCC #define XK_L5 0xFFCC #define XK_F16 0xFFCD #define XK_L6 0xFFCD #define XK_F17 0xFFCE #define XK_L7 0xFFCE #define XK_F18 0xFFCF #define XK_L8 0xFFCF #define XK_F19 0xFFD0 #define XK_L9 0xFFD0 #define XK_F20 0xFFD1 #define XK_L10 0xFFD1 #define XK_F21 0xFFD2 #define XK_R1 0xFFD2 #define XK_F22 0xFFD3 #define XK_R2 0xFFD3 #define XK_F23 0xFFD4 #define XK_R3 0xFFD4 #define XK_F24 0xFFD5 #define XK_R4 0xFFD5 #define XK_F25 0xFFD6 #define XK_R5 0xFFD6 #define XK_F26 0xFFD7 #define XK_R6 0xFFD7 #define XK_F27 0xFFD8 #define XK_R7 0xFFD8 #define XK_F28 0xFFD9 #define XK_R8 0xFFD9 #define XK_F29 0xFFDA #define XK_R9 0xFFDA #define XK_F30 0xFFDB #define XK_R10 0xFFDB #define XK_F31 0xFFDC #define XK_R11 0xFFDC #define XK_F32 0xFFDD #define XK_R12 0xFFDD #define XK_F33 0xFFDE #define XK_R13 0xFFDE #define XK_F34 0xFFDF #define XK_R14 0xFFDF #define XK_F35 0xFFE0 #define XK_R15 0xFFE0 /* Modifiers */ #define XK_Shift_L 0xFFE1 /* Left shift */ #define XK_Shift_R 0xFFE2 /* Right shift */ #define XK_Control_L 0xFFE3 /* Left control */ #define XK_Control_R 0xFFE4 /* Right control */ #define XK_Caps_Lock 0xFFE5 /* Caps lock */ #define XK_Shift_Lock 0xFFE6 /* Shift lock */ #define XK_Meta_L 0xFFE7 /* Left meta */ #define XK_Meta_R 0xFFE8 /* Right meta */ #define XK_Alt_L 0xFFE9 /* Left alt */ #define XK_Alt_R 0xFFEA /* Right alt */ #define XK_Super_L 0xFFEB /* Left super */ #define XK_Super_R 0xFFEC /* Right super */ #define XK_Hyper_L 0xFFED /* Left hyper */ #define XK_Hyper_R 0xFFEE /* Right hyper */ #endif /* XK_MISCELLANY */ /* * ISO 9995 Function and Modifier Keys * Byte 3 = 0xFE */ #ifdef XK_XKB_KEYS #define XK_ISO_Lock 0xFE01 #define XK_ISO_Level2_Latch 0xFE02 #define XK_ISO_Level3_Shift 0xFE03 #define XK_ISO_Level3_Latch 0xFE04 #define XK_ISO_Level3_Lock 0xFE05 #define XK_ISO_Group_Shift 0xFF7E /* Alias for mode_switch */ #define XK_ISO_Group_Latch 0xFE06 #define XK_ISO_Group_Lock 0xFE07 #define XK_ISO_Next_Group 0xFE08 #define XK_ISO_Next_Group_Lock 0xFE09 #define XK_ISO_Prev_Group 0xFE0A #define XK_ISO_Prev_Group_Lock 0xFE0B #define XK_ISO_First_Group 0xFE0C #define XK_ISO_First_Group_Lock 0xFE0D #define XK_ISO_Last_Group 0xFE0E #define XK_ISO_Last_Group_Lock 0xFE0F #define XK_ISO_Left_Tab 0xFE20 #define XK_ISO_Move_Line_Up 0xFE21 #define XK_ISO_Move_Line_Down 0xFE22 #define XK_ISO_Partial_Line_Up 0xFE23 #define XK_ISO_Partial_Line_Down 0xFE24 #define XK_ISO_Partial_Space_Left 0xFE25 #define XK_ISO_Partial_Space_Right 0xFE26 #define XK_ISO_Set_Margin_Left 0xFE27 #define XK_ISO_Set_Margin_Right 0xFE28 #define XK_ISO_Release_Margin_Left 0xFE29 #define XK_ISO_Release_Margin_Right 0xFE2A #define XK_ISO_Release_Both_Margins 0xFE2B #define XK_ISO_Fast_Cursor_Left 0xFE2C #define XK_ISO_Fast_Cursor_Right 0xFE2D #define XK_ISO_Fast_Cursor_Up 0xFE2E #define XK_ISO_Fast_Cursor_Down 0xFE2F #define XK_ISO_Continuous_Underline 0xFE30 #define XK_ISO_Discontinuous_Underline 0xFE31 #define XK_ISO_Emphasize 0xFE32 #define XK_ISO_Center_Object 0xFE33 #define XK_ISO_Enter 0xFE34 #define XK_dead_grave 0xFE50 #define XK_dead_acute 0xFE51 #define XK_dead_circumflex 0xFE52 #define XK_dead_tilde 0xFE53 #define XK_dead_macron 0xFE54 #define XK_dead_breve 0xFE55 #define XK_dead_abovedot 0xFE56 #define XK_dead_diaeresis 0xFE57 #define XK_dead_abovering 0xFE58 #define XK_dead_doubleacute 0xFE59 #define XK_dead_caron 0xFE5A #define XK_dead_cedilla 0xFE5B #define XK_dead_ogonek 0xFE5C #define XK_dead_iota 0xFE5D #define XK_dead_voiced_sound 0xFE5E #define XK_dead_semivoiced_sound 0xFE5F #define XK_dead_belowdot 0xFE60 #define XK_First_Virtual_Screen 0xFED0 #define XK_Prev_Virtual_Screen 0xFED1 #define XK_Next_Virtual_Screen 0xFED2 #define XK_Last_Virtual_Screen 0xFED4 #define XK_Terminate_Server 0xFED5 #define XK_AccessX_Enable 0xFE70 #define XK_AccessX_Feedback_Enable 0xFE71 #define XK_RepeatKeys_Enable 0xFE72 #define XK_SlowKeys_Enable 0xFE73 #define XK_BounceKeys_Enable 0xFE74 #define XK_StickyKeys_Enable 0xFE75 #define XK_MouseKeys_Enable 0xFE76 #define XK_MouseKeys_Accel_Enable 0xFE77 #define XK_Overlay1_Enable 0xFE78 #define XK_Overlay2_Enable 0xFE79 #define XK_AudibleBell_Enable 0xFE7A #define XK_Pointer_Left 0xFEE0 #define XK_Pointer_Right 0xFEE1 #define XK_Pointer_Up 0xFEE2 #define XK_Pointer_Down 0xFEE3 #define XK_Pointer_UpLeft 0xFEE4 #define XK_Pointer_UpRight 0xFEE5 #define XK_Pointer_DownLeft 0xFEE6 #define XK_Pointer_DownRight 0xFEE7 #define XK_Pointer_Button_Dflt 0xFEE8 #define XK_Pointer_Button1 0xFEE9 #define XK_Pointer_Button2 0xFEEA #define XK_Pointer_Button3 0xFEEB #define XK_Pointer_Button4 0xFEEC #define XK_Pointer_Button5 0xFEED #define XK_Pointer_DblClick_Dflt 0xFEEE #define XK_Pointer_DblClick1 0xFEEF #define XK_Pointer_DblClick2 0xFEF0 #define XK_Pointer_DblClick3 0xFEF1 #define XK_Pointer_DblClick4 0xFEF2 #define XK_Pointer_DblClick5 0xFEF3 #define XK_Pointer_Drag_Dflt 0xFEF4 #define XK_Pointer_Drag1 0xFEF5 #define XK_Pointer_Drag2 0xFEF6 #define XK_Pointer_Drag3 0xFEF7 #define XK_Pointer_Drag4 0xFEF8 #define XK_Pointer_Drag5 0xFEFD #define XK_Pointer_EnableKeys 0xFEF9 #define XK_Pointer_Accelerate 0xFEFA #define XK_Pointer_DfltBtnNext 0xFEFB #define XK_Pointer_DfltBtnPrev 0xFEFC #endif /* * 3270 Terminal Keys * Byte 3 = 0xFD */ #ifdef XK_3270 #define XK_3270_Duplicate 0xFD01 #define XK_3270_FieldMark 0xFD02 #define XK_3270_Right2 0xFD03 #define XK_3270_Left2 0xFD04 #define XK_3270_BackTab 0xFD05 #define XK_3270_EraseEOF 0xFD06 #define XK_3270_EraseInput 0xFD07 #define XK_3270_Reset 0xFD08 #define XK_3270_Quit 0xFD09 #define XK_3270_PA1 0xFD0A #define XK_3270_PA2 0xFD0B #define XK_3270_PA3 0xFD0C #define XK_3270_Test 0xFD0D #define XK_3270_Attn 0xFD0E #define XK_3270_CursorBlink 0xFD0F #define XK_3270_AltCursor 0xFD10 #define XK_3270_KeyClick 0xFD11 #define XK_3270_Jump 0xFD12 #define XK_3270_Ident 0xFD13 #define XK_3270_Rule 0xFD14 #define XK_3270_Copy 0xFD15 #define XK_3270_Play 0xFD16 #define XK_3270_Setup 0xFD17 #define XK_3270_Record 0xFD18 #define XK_3270_ChangeScreen 0xFD19 #define XK_3270_DeleteWord 0xFD1A #define XK_3270_ExSelect 0xFD1B #define XK_3270_CursorSelect 0xFD1C #define XK_3270_PrintScreen 0xFD1D #define XK_3270_Enter 0xFD1E #endif /* * Latin 1 * Byte 3 = 0 */ #ifdef XK_LATIN1 #define XK_space 0x020 #define XK_exclam 0x021 #define XK_quotedbl 0x022 #define XK_numbersign 0x023 #define XK_dollar 0x024 #define XK_percent 0x025 #define XK_ampersand 0x026 #define XK_apostrophe 0x027 #define XK_quoteright 0x027 /* deprecated */ #define XK_parenleft 0x028 #define XK_parenright 0x029 #define XK_asterisk 0x02a #define XK_plus 0x02b #define XK_comma 0x02c #define XK_minus 0x02d #define XK_period 0x02e #define XK_slash 0x02f #define XK_0 0x030 #define XK_1 0x031 #define XK_2 0x032 #define XK_3 0x033 #define XK_4 0x034 #define XK_5 0x035 #define XK_6 0x036 #define XK_7 0x037 #define XK_8 0x038 #define XK_9 0x039 #define XK_colon 0x03a #define XK_semicolon 0x03b #define XK_less 0x03c #define XK_equal 0x03d #define XK_greater 0x03e #define XK_question 0x03f #define XK_at 0x040 #define XK_A 0x041 #define XK_B 0x042 #define XK_C 0x043 #define XK_D 0x044 #define XK_E 0x045 #define XK_F 0x046 #define XK_G 0x047 #define XK_H 0x048 #define XK_I 0x049 #define XK_J 0x04a #define XK_K 0x04b #define XK_L 0x04c #define XK_M 0x04d #define XK_N 0x04e #define XK_O 0x04f #define XK_P 0x050 #define XK_Q 0x051 #define XK_R 0x052 #define XK_S 0x053 #define XK_T 0x054 #define XK_U 0x055 #define XK_V 0x056 #define XK_W 0x057 #define XK_X 0x058 #define XK_Y 0x059 #define XK_Z 0x05a #define XK_bracketleft 0x05b #define XK_backslash 0x05c #define XK_bracketright 0x05d #define XK_asciicircum 0x05e #define XK_underscore 0x05f #define XK_grave 0x060 #define XK_quoteleft 0x060 /* deprecated */ #define XK_a 0x061 #define XK_b 0x062 #define XK_c 0x063 #define XK_d 0x064 #define XK_e 0x065 #define XK_f 0x066 #define XK_g 0x067 #define XK_h 0x068 #define XK_i 0x069 #define XK_j 0x06a #define XK_k 0x06b #define XK_l 0x06c #define XK_m 0x06d #define XK_n 0x06e #define XK_o 0x06f #define XK_p 0x070 #define XK_q 0x071 #define XK_r 0x072 #define XK_s 0x073 #define XK_t 0x074 #define XK_u 0x075 #define XK_v 0x076 #define XK_w 0x077 #define XK_x 0x078 #define XK_y 0x079 #define XK_z 0x07a #define XK_braceleft 0x07b #define XK_bar 0x07c #define XK_braceright 0x07d #define XK_asciitilde 0x07e #define XK_nobreakspace 0x0a0 #define XK_exclamdown 0x0a1 #define XK_cent 0x0a2 #define XK_sterling 0x0a3 #define XK_currency 0x0a4 #define XK_yen 0x0a5 #define XK_brokenbar 0x0a6 #define XK_section 0x0a7 #define XK_diaeresis 0x0a8 #define XK_copyright 0x0a9 #define XK_ordfeminine 0x0aa #define XK_guillemotleft 0x0ab /* left angle quotation mark */ #define XK_notsign 0x0ac #define XK_hyphen 0x0ad #define XK_registered 0x0ae #define XK_macron 0x0af #define XK_degree 0x0b0 #define XK_plusminus 0x0b1 #define XK_twosuperior 0x0b2 #define XK_threesuperior 0x0b3 #define XK_acute 0x0b4 #define XK_mu 0x0b5 #define XK_paragraph 0x0b6 #define XK_periodcentered 0x0b7 #define XK_cedilla 0x0b8 #define XK_onesuperior 0x0b9 #define XK_masculine 0x0ba #define XK_guillemotright 0x0bb /* right angle quotation mark */ #define XK_onequarter 0x0bc #define XK_onehalf 0x0bd #define XK_threequarters 0x0be #define XK_questiondown 0x0bf #define XK_Agrave 0x0c0 #define XK_Aacute 0x0c1 #define XK_Acircumflex 0x0c2 #define XK_Atilde 0x0c3 #define XK_Adiaeresis 0x0c4 #define XK_Aring 0x0c5 #define XK_AE 0x0c6 #define XK_Ccedilla 0x0c7 #define XK_Egrave 0x0c8 #define XK_Eacute 0x0c9 #define XK_Ecircumflex 0x0ca #define XK_Ediaeresis 0x0cb #define XK_Igrave 0x0cc #define XK_Iacute 0x0cd #define XK_Icircumflex 0x0ce #define XK_Idiaeresis 0x0cf #define XK_ETH 0x0d0 #define XK_Eth 0x0d0 /* deprecated */ #define XK_Ntilde 0x0d1 #define XK_Ograve 0x0d2 #define XK_Oacute 0x0d3 #define XK_Ocircumflex 0x0d4 #define XK_Otilde 0x0d5 #define XK_Odiaeresis 0x0d6 #define XK_multiply 0x0d7 #define XK_Ooblique 0x0d8 #define XK_Ugrave 0x0d9 #define XK_Uacute 0x0da #define XK_Ucircumflex 0x0db #define XK_Udiaeresis 0x0dc #define XK_Yacute 0x0dd #define XK_THORN 0x0de #define XK_Thorn 0x0de /* deprecated */ #define XK_ssharp 0x0df #define XK_agrave 0x0e0 #define XK_aacute 0x0e1 #define XK_acircumflex 0x0e2 #define XK_atilde 0x0e3 #define XK_adiaeresis 0x0e4 #define XK_aring 0x0e5 #define XK_ae 0x0e6 #define XK_ccedilla 0x0e7 #define XK_egrave 0x0e8 #define XK_eacute 0x0e9 #define XK_ecircumflex 0x0ea #define XK_ediaeresis 0x0eb #define XK_igrave 0x0ec #define XK_iacute 0x0ed #define XK_icircumflex 0x0ee #define XK_idiaeresis 0x0ef #define XK_eth 0x0f0 #define XK_ntilde 0x0f1 #define XK_ograve 0x0f2 #define XK_oacute 0x0f3 #define XK_ocircumflex 0x0f4 #define XK_otilde 0x0f5 #define XK_odiaeresis 0x0f6 #define XK_division 0x0f7 #define XK_oslash 0x0f8 #define XK_ugrave 0x0f9 #define XK_uacute 0x0fa #define XK_ucircumflex 0x0fb #define XK_udiaeresis 0x0fc #define XK_yacute 0x0fd #define XK_thorn 0x0fe #define XK_ydiaeresis 0x0ff #endif /* XK_LATIN1 */ /* * Latin 2 * Byte 3 = 1 */ #ifdef XK_LATIN2 #define XK_Aogonek 0x1a1 #define XK_breve 0x1a2 #define XK_Lstroke 0x1a3 #define XK_Lcaron 0x1a5 #define XK_Sacute 0x1a6 #define XK_Scaron 0x1a9 #define XK_Scedilla 0x1aa #define XK_Tcaron 0x1ab #define XK_Zacute 0x1ac #define XK_Zcaron 0x1ae #define XK_Zabovedot 0x1af #define XK_aogonek 0x1b1 #define XK_ogonek 0x1b2 #define XK_lstroke 0x1b3 #define XK_lcaron 0x1b5 #define XK_sacute 0x1b6 #define XK_caron 0x1b7 #define XK_scaron 0x1b9 #define XK_scedilla 0x1ba #define XK_tcaron 0x1bb #define XK_zacute 0x1bc #define XK_doubleacute 0x1bd #define XK_zcaron 0x1be #define XK_zabovedot 0x1bf #define XK_Racute 0x1c0 #define XK_Abreve 0x1c3 #define XK_Lacute 0x1c5 #define XK_Cacute 0x1c6 #define XK_Ccaron 0x1c8 #define XK_Eogonek 0x1ca #define XK_Ecaron 0x1cc #define XK_Dcaron 0x1cf #define XK_Dstroke 0x1d0 #define XK_Nacute 0x1d1 #define XK_Ncaron 0x1d2 #define XK_Odoubleacute 0x1d5 #define XK_Rcaron 0x1d8 #define XK_Uring 0x1d9 #define XK_Udoubleacute 0x1db #define XK_Tcedilla 0x1de #define XK_racute 0x1e0 #define XK_abreve 0x1e3 #define XK_lacute 0x1e5 #define XK_cacute 0x1e6 #define XK_ccaron 0x1e8 #define XK_eogonek 0x1ea #define XK_ecaron 0x1ec #define XK_dcaron 0x1ef #define XK_dstroke 0x1f0 #define XK_nacute 0x1f1 #define XK_ncaron 0x1f2 #define XK_odoubleacute 0x1f5 #define XK_udoubleacute 0x1fb #define XK_rcaron 0x1f8 #define XK_uring 0x1f9 #define XK_tcedilla 0x1fe #define XK_abovedot 0x1ff #endif /* XK_LATIN2 */ /* * Latin 3 * Byte 3 = 2 */ #ifdef XK_LATIN3 #define XK_Hstroke 0x2a1 #define XK_Hcircumflex 0x2a6 #define XK_Iabovedot 0x2a9 #define XK_Gbreve 0x2ab #define XK_Jcircumflex 0x2ac #define XK_hstroke 0x2b1 #define XK_hcircumflex 0x2b6 #define XK_idotless 0x2b9 #define XK_gbreve 0x2bb #define XK_jcircumflex 0x2bc #define XK_Cabovedot 0x2c5 #define XK_Ccircumflex 0x2c6 #define XK_Gabovedot 0x2d5 #define XK_Gcircumflex 0x2d8 #define XK_Ubreve 0x2dd #define XK_Scircumflex 0x2de #define XK_cabovedot 0x2e5 #define XK_ccircumflex 0x2e6 #define XK_gabovedot 0x2f5 #define XK_gcircumflex 0x2f8 #define XK_ubreve 0x2fd #define XK_scircumflex 0x2fe #endif /* XK_LATIN3 */ /* * Latin 4 * Byte 3 = 3 */ #ifdef XK_LATIN4 #define XK_kra 0x3a2 #define XK_kappa 0x3a2 /* deprecated */ #define XK_Rcedilla 0x3a3 #define XK_Itilde 0x3a5 #define XK_Lcedilla 0x3a6 #define XK_Emacron 0x3aa #define XK_Gcedilla 0x3ab #define XK_Tslash 0x3ac #define XK_rcedilla 0x3b3 #define XK_itilde 0x3b5 #define XK_lcedilla 0x3b6 #define XK_emacron 0x3ba #define XK_gcedilla 0x3bb #define XK_tslash 0x3bc #define XK_ENG 0x3bd #define XK_eng 0x3bf #define XK_Amacron 0x3c0 #define XK_Iogonek 0x3c7 #define XK_Eabovedot 0x3cc #define XK_Imacron 0x3cf #define XK_Ncedilla 0x3d1 #define XK_Omacron 0x3d2 #define XK_Kcedilla 0x3d3 #define XK_Uogonek 0x3d9 #define XK_Utilde 0x3dd #define XK_Umacron 0x3de #define XK_amacron 0x3e0 #define XK_iogonek 0x3e7 #define XK_eabovedot 0x3ec #define XK_imacron 0x3ef #define XK_ncedilla 0x3f1 #define XK_omacron 0x3f2 #define XK_kcedilla 0x3f3 #define XK_uogonek 0x3f9 #define XK_utilde 0x3fd #define XK_umacron 0x3fe #endif /* XK_LATIN4 */ /* * Latin-9 (a.k.a. Latin-0) * Byte 3 = 19 */ #ifdef XK_LATIN9 #define XK_OE 0x13bc #define XK_oe 0x13bd #define XK_Ydiaeresis 0x13be #endif /* XK_LATIN9 */ /* * Katakana * Byte 3 = 4 */ #ifdef XK_KATAKANA #define XK_overline 0x47e #define XK_kana_fullstop 0x4a1 #define XK_kana_openingbracket 0x4a2 #define XK_kana_closingbracket 0x4a3 #define XK_kana_comma 0x4a4 #define XK_kana_conjunctive 0x4a5 #define XK_kana_middledot 0x4a5 /* deprecated */ #define XK_kana_WO 0x4a6 #define XK_kana_a 0x4a7 #define XK_kana_i 0x4a8 #define XK_kana_u 0x4a9 #define XK_kana_e 0x4aa #define XK_kana_o 0x4ab #define XK_kana_ya 0x4ac #define XK_kana_yu 0x4ad #define XK_kana_yo 0x4ae #define XK_kana_tsu 0x4af #define XK_kana_tu 0x4af /* deprecated */ #define XK_prolongedsound 0x4b0 #define XK_kana_A 0x4b1 #define XK_kana_I 0x4b2 #define XK_kana_U 0x4b3 #define XK_kana_E 0x4b4 #define XK_kana_O 0x4b5 #define XK_kana_KA 0x4b6 #define XK_kana_KI 0x4b7 #define XK_kana_KU 0x4b8 #define XK_kana_KE 0x4b9 #define XK_kana_KO 0x4ba #define XK_kana_SA 0x4bb #define XK_kana_SHI 0x4bc #define XK_kana_SU 0x4bd #define XK_kana_SE 0x4be #define XK_kana_SO 0x4bf #define XK_kana_TA 0x4c0 #define XK_kana_CHI 0x4c1 #define XK_kana_TI 0x4c1 /* deprecated */ #define XK_kana_TSU 0x4c2 #define XK_kana_TU 0x4c2 /* deprecated */ #define XK_kana_TE 0x4c3 #define XK_kana_TO 0x4c4 #define XK_kana_NA 0x4c5 #define XK_kana_NI 0x4c6 #define XK_kana_NU 0x4c7 #define XK_kana_NE 0x4c8 #define XK_kana_NO 0x4c9 #define XK_kana_HA 0x4ca #define XK_kana_HI 0x4cb #define XK_kana_FU 0x4cc #define XK_kana_HU 0x4cc /* deprecated */ #define XK_kana_HE 0x4cd #define XK_kana_HO 0x4ce #define XK_kana_MA 0x4cf #define XK_kana_MI 0x4d0 #define XK_kana_MU 0x4d1 #define XK_kana_ME 0x4d2 #define XK_kana_MO 0x4d3 #define XK_kana_YA 0x4d4 #define XK_kana_YU 0x4d5 #define XK_kana_YO 0x4d6 #define XK_kana_RA 0x4d7 #define XK_kana_RI 0x4d8 #define XK_kana_RU 0x4d9 #define XK_kana_RE 0x4da #define XK_kana_RO 0x4db #define XK_kana_WA 0x4dc #define XK_kana_N 0x4dd #define XK_voicedsound 0x4de #define XK_semivoicedsound 0x4df #define XK_kana_switch 0xFF7E /* Alias for mode_switch */ #endif /* XK_KATAKANA */ /* * Arabic * Byte 3 = 5 */ #ifdef XK_ARABIC #define XK_Arabic_comma 0x5ac #define XK_Arabic_semicolon 0x5bb #define XK_Arabic_question_mark 0x5bf #define XK_Arabic_hamza 0x5c1 #define XK_Arabic_maddaonalef 0x5c2 #define XK_Arabic_hamzaonalef 0x5c3 #define XK_Arabic_hamzaonwaw 0x5c4 #define XK_Arabic_hamzaunderalef 0x5c5 #define XK_Arabic_hamzaonyeh 0x5c6 #define XK_Arabic_alef 0x5c7 #define XK_Arabic_beh 0x5c8 #define XK_Arabic_tehmarbuta 0x5c9 #define XK_Arabic_teh 0x5ca #define XK_Arabic_theh 0x5cb #define XK_Arabic_jeem 0x5cc #define XK_Arabic_hah 0x5cd #define XK_Arabic_khah 0x5ce #define XK_Arabic_dal 0x5cf #define XK_Arabic_thal 0x5d0 #define XK_Arabic_ra 0x5d1 #define XK_Arabic_zain 0x5d2 #define XK_Arabic_seen 0x5d3 #define XK_Arabic_sheen 0x5d4 #define XK_Arabic_sad 0x5d5 #define XK_Arabic_dad 0x5d6 #define XK_Arabic_tah 0x5d7 #define XK_Arabic_zah 0x5d8 #define XK_Arabic_ain 0x5d9 #define XK_Arabic_ghain 0x5da #define XK_Arabic_tatweel 0x5e0 #define XK_Arabic_feh 0x5e1 #define XK_Arabic_qaf 0x5e2 #define XK_Arabic_kaf 0x5e3 #define XK_Arabic_lam 0x5e4 #define XK_Arabic_meem 0x5e5 #define XK_Arabic_noon 0x5e6 #define XK_Arabic_ha 0x5e7 #define XK_Arabic_heh 0x5e7 /* deprecated */ #define XK_Arabic_waw 0x5e8 #define XK_Arabic_alefmaksura 0x5e9 #define XK_Arabic_yeh 0x5ea #define XK_Arabic_fathatan 0x5eb #define XK_Arabic_dammatan 0x5ec #define XK_Arabic_kasratan 0x5ed #define XK_Arabic_fatha 0x5ee #define XK_Arabic_damma 0x5ef #define XK_Arabic_kasra 0x5f0 #define XK_Arabic_shadda 0x5f1 #define XK_Arabic_sukun 0x5f2 #define XK_Arabic_switch 0xFF7E /* Alias for mode_switch */ #endif /* XK_ARABIC */ /* * Cyrillic * Byte 3 = 6 */ #ifdef XK_CYRILLIC #define XK_Serbian_dje 0x6a1 #define XK_Macedonia_gje 0x6a2 #define XK_Cyrillic_io 0x6a3 #define XK_Ukrainian_ie 0x6a4 #define XK_Ukranian_je 0x6a4 /* deprecated */ #define XK_Macedonia_dse 0x6a5 #define XK_Ukrainian_i 0x6a6 #define XK_Ukranian_i 0x6a6 /* deprecated */ #define XK_Ukrainian_yi 0x6a7 #define XK_Ukranian_yi 0x6a7 /* deprecated */ #define XK_Cyrillic_je 0x6a8 #define XK_Serbian_je 0x6a8 /* deprecated */ #define XK_Cyrillic_lje 0x6a9 #define XK_Serbian_lje 0x6a9 /* deprecated */ #define XK_Cyrillic_nje 0x6aa #define XK_Serbian_nje 0x6aa /* deprecated */ #define XK_Serbian_tshe 0x6ab #define XK_Macedonia_kje 0x6ac #define XK_Ukrainian_ghe_with_upturn 0x6ad #define XK_Byelorussian_shortu 0x6ae #define XK_Cyrillic_dzhe 0x6af #define XK_Serbian_dze 0x6af /* deprecated */ #define XK_numerosign 0x6b0 #define XK_Serbian_DJE 0x6b1 #define XK_Macedonia_GJE 0x6b2 #define XK_Cyrillic_IO 0x6b3 #define XK_Ukrainian_IE 0x6b4 #define XK_Ukranian_JE 0x6b4 /* deprecated */ #define XK_Macedonia_DSE 0x6b5 #define XK_Ukrainian_I 0x6b6 #define XK_Ukranian_I 0x6b6 /* deprecated */ #define XK_Ukrainian_YI 0x6b7 #define XK_Ukranian_YI 0x6b7 /* deprecated */ #define XK_Cyrillic_JE 0x6b8 #define XK_Serbian_JE 0x6b8 /* deprecated */ #define XK_Cyrillic_LJE 0x6b9 #define XK_Serbian_LJE 0x6b9 /* deprecated */ #define XK_Cyrillic_NJE 0x6ba #define XK_Serbian_NJE 0x6ba /* deprecated */ #define XK_Serbian_TSHE 0x6bb #define XK_Macedonia_KJE 0x6bc #define XK_Ukrainian_GHE_WITH_UPTURN 0x6bd #define XK_Byelorussian_SHORTU 0x6be #define XK_Cyrillic_DZHE 0x6bf #define XK_Serbian_DZE 0x6bf /* deprecated */ #define XK_Cyrillic_yu 0x6c0 #define XK_Cyrillic_a 0x6c1 #define XK_Cyrillic_be 0x6c2 #define XK_Cyrillic_tse 0x6c3 #define XK_Cyrillic_de 0x6c4 #define XK_Cyrillic_ie 0x6c5 #define XK_Cyrillic_ef 0x6c6 #define XK_Cyrillic_ghe 0x6c7 #define XK_Cyrillic_ha 0x6c8 #define XK_Cyrillic_i 0x6c9 #define XK_Cyrillic_shorti 0x6ca #define XK_Cyrillic_ka 0x6cb #define XK_Cyrillic_el 0x6cc #define XK_Cyrillic_em 0x6cd #define XK_Cyrillic_en 0x6ce #define XK_Cyrillic_o 0x6cf #define XK_Cyrillic_pe 0x6d0 #define XK_Cyrillic_ya 0x6d1 #define XK_Cyrillic_er 0x6d2 #define XK_Cyrillic_es 0x6d3 #define XK_Cyrillic_te 0x6d4 #define XK_Cyrillic_u 0x6d5 #define XK_Cyrillic_zhe 0x6d6 #define XK_Cyrillic_ve 0x6d7 #define XK_Cyrillic_softsign 0x6d8 #define XK_Cyrillic_yeru 0x6d9 #define XK_Cyrillic_ze 0x6da #define XK_Cyrillic_sha 0x6db #define XK_Cyrillic_e 0x6dc #define XK_Cyrillic_shcha 0x6dd #define XK_Cyrillic_che 0x6de #define XK_Cyrillic_hardsign 0x6df #define XK_Cyrillic_YU 0x6e0 #define XK_Cyrillic_A 0x6e1 #define XK_Cyrillic_BE 0x6e2 #define XK_Cyrillic_TSE 0x6e3 #define XK_Cyrillic_DE 0x6e4 #define XK_Cyrillic_IE 0x6e5 #define XK_Cyrillic_EF 0x6e6 #define XK_Cyrillic_GHE 0x6e7 #define XK_Cyrillic_HA 0x6e8 #define XK_Cyrillic_I 0x6e9 #define XK_Cyrillic_SHORTI 0x6ea #define XK_Cyrillic_KA 0x6eb #define XK_Cyrillic_EL 0x6ec #define XK_Cyrillic_EM 0x6ed #define XK_Cyrillic_EN 0x6ee #define XK_Cyrillic_O 0x6ef #define XK_Cyrillic_PE 0x6f0 #define XK_Cyrillic_YA 0x6f1 #define XK_Cyrillic_ER 0x6f2 #define XK_Cyrillic_ES 0x6f3 #define XK_Cyrillic_TE 0x6f4 #define XK_Cyrillic_U 0x6f5 #define XK_Cyrillic_ZHE 0x6f6 #define XK_Cyrillic_VE 0x6f7 #define XK_Cyrillic_SOFTSIGN 0x6f8 #define XK_Cyrillic_YERU 0x6f9 #define XK_Cyrillic_ZE 0x6fa #define XK_Cyrillic_SHA 0x6fb #define XK_Cyrillic_E 0x6fc #define XK_Cyrillic_SHCHA 0x6fd #define XK_Cyrillic_CHE 0x6fe #define XK_Cyrillic_HARDSIGN 0x6ff #endif /* XK_CYRILLIC */ /* * Greek * Byte 3 = 7 */ #ifdef XK_GREEK #define XK_Greek_ALPHAaccent 0x7a1 #define XK_Greek_EPSILONaccent 0x7a2 #define XK_Greek_ETAaccent 0x7a3 #define XK_Greek_IOTAaccent 0x7a4 #define XK_Greek_IOTAdiaeresis 0x7a5 #define XK_Greek_OMICRONaccent 0x7a7 #define XK_Greek_UPSILONaccent 0x7a8 #define XK_Greek_UPSILONdieresis 0x7a9 #define XK_Greek_OMEGAaccent 0x7ab #define XK_Greek_accentdieresis 0x7ae #define XK_Greek_horizbar 0x7af #define XK_Greek_alphaaccent 0x7b1 #define XK_Greek_epsilonaccent 0x7b2 #define XK_Greek_etaaccent 0x7b3 #define XK_Greek_iotaaccent 0x7b4 #define XK_Greek_iotadieresis 0x7b5 #define XK_Greek_iotaaccentdieresis 0x7b6 #define XK_Greek_omicronaccent 0x7b7 #define XK_Greek_upsilonaccent 0x7b8 #define XK_Greek_upsilondieresis 0x7b9 #define XK_Greek_upsilonaccentdieresis 0x7ba #define XK_Greek_omegaaccent 0x7bb #define XK_Greek_ALPHA 0x7c1 #define XK_Greek_BETA 0x7c2 #define XK_Greek_GAMMA 0x7c3 #define XK_Greek_DELTA 0x7c4 #define XK_Greek_EPSILON 0x7c5 #define XK_Greek_ZETA 0x7c6 #define XK_Greek_ETA 0x7c7 #define XK_Greek_THETA 0x7c8 #define XK_Greek_IOTA 0x7c9 #define XK_Greek_KAPPA 0x7ca #define XK_Greek_LAMDA 0x7cb #define XK_Greek_LAMBDA 0x7cb #define XK_Greek_MU 0x7cc #define XK_Greek_NU 0x7cd #define XK_Greek_XI 0x7ce #define XK_Greek_OMICRON 0x7cf #define XK_Greek_PI 0x7d0 #define XK_Greek_RHO 0x7d1 #define XK_Greek_SIGMA 0x7d2 #define XK_Greek_TAU 0x7d4 #define XK_Greek_UPSILON 0x7d5 #define XK_Greek_PHI 0x7d6 #define XK_Greek_CHI 0x7d7 #define XK_Greek_PSI 0x7d8 #define XK_Greek_OMEGA 0x7d9 #define XK_Greek_alpha 0x7e1 #define XK_Greek_beta 0x7e2 #define XK_Greek_gamma 0x7e3 #define XK_Greek_delta 0x7e4 #define XK_Greek_epsilon 0x7e5 #define XK_Greek_zeta 0x7e6 #define XK_Greek_eta 0x7e7 #define XK_Greek_theta 0x7e8 #define XK_Greek_iota 0x7e9 #define XK_Greek_kappa 0x7ea #define XK_Greek_lamda 0x7eb #define XK_Greek_lambda 0x7eb #define XK_Greek_mu 0x7ec #define XK_Greek_nu 0x7ed #define XK_Greek_xi 0x7ee #define XK_Greek_omicron 0x7ef #define XK_Greek_pi 0x7f0 #define XK_Greek_rho 0x7f1 #define XK_Greek_sigma 0x7f2 #define XK_Greek_finalsmallsigma 0x7f3 #define XK_Greek_tau 0x7f4 #define XK_Greek_upsilon 0x7f5 #define XK_Greek_phi 0x7f6 #define XK_Greek_chi 0x7f7 #define XK_Greek_psi 0x7f8 #define XK_Greek_omega 0x7f9 #define XK_Greek_switch 0xFF7E /* Alias for mode_switch */ #endif /* XK_GREEK */ /* * Technical * Byte 3 = 8 */ #ifdef XK_TECHNICAL #define XK_leftradical 0x8a1 #define XK_topleftradical 0x8a2 #define XK_horizconnector 0x8a3 #define XK_topintegral 0x8a4 #define XK_botintegral 0x8a5 #define XK_vertconnector 0x8a6 #define XK_topleftsqbracket 0x8a7 #define XK_botleftsqbracket 0x8a8 #define XK_toprightsqbracket 0x8a9 #define XK_botrightsqbracket 0x8aa #define XK_topleftparens 0x8ab #define XK_botleftparens 0x8ac #define XK_toprightparens 0x8ad #define XK_botrightparens 0x8ae #define XK_leftmiddlecurlybrace 0x8af #define XK_rightmiddlecurlybrace 0x8b0 #define XK_topleftsummation 0x8b1 #define XK_botleftsummation 0x8b2 #define XK_topvertsummationconnector 0x8b3 #define XK_botvertsummationconnector 0x8b4 #define XK_toprightsummation 0x8b5 #define XK_botrightsummation 0x8b6 #define XK_rightmiddlesummation 0x8b7 #define XK_lessthanequal 0x8bc #define XK_notequal 0x8bd #define XK_greaterthanequal 0x8be #define XK_integral 0x8bf #define XK_therefore 0x8c0 #define XK_variation 0x8c1 #define XK_infinity 0x8c2 #define XK_nabla 0x8c5 #define XK_approximate 0x8c8 #define XK_similarequal 0x8c9 #define XK_ifonlyif 0x8cd #define XK_implies 0x8ce #define XK_identical 0x8cf #define XK_radical 0x8d6 #define XK_includedin 0x8da #define XK_includes 0x8db #define XK_intersection 0x8dc #define XK_union 0x8dd #define XK_logicaland 0x8de #define XK_logicalor 0x8df #define XK_partialderivative 0x8ef #define XK_function 0x8f6 #define XK_leftarrow 0x8fb #define XK_uparrow 0x8fc #define XK_rightarrow 0x8fd #define XK_downarrow 0x8fe #endif /* XK_TECHNICAL */ /* * Special * Byte 3 = 9 */ #ifdef XK_SPECIAL #define XK_blank 0x9df #define XK_soliddiamond 0x9e0 #define XK_checkerboard 0x9e1 #define XK_ht 0x9e2 #define XK_ff 0x9e3 #define XK_cr 0x9e4 #define XK_lf 0x9e5 #define XK_nl 0x9e8 #define XK_vt 0x9e9 #define XK_lowrightcorner 0x9ea #define XK_uprightcorner 0x9eb #define XK_upleftcorner 0x9ec #define XK_lowleftcorner 0x9ed #define XK_crossinglines 0x9ee #define XK_horizlinescan1 0x9ef #define XK_horizlinescan3 0x9f0 #define XK_horizlinescan5 0x9f1 #define XK_horizlinescan7 0x9f2 #define XK_horizlinescan9 0x9f3 #define XK_leftt 0x9f4 #define XK_rightt 0x9f5 #define XK_bott 0x9f6 #define XK_topt 0x9f7 #define XK_vertbar 0x9f8 #endif /* XK_SPECIAL */ /* * Publishing * Byte 3 = a */ #ifdef XK_PUBLISHING #define XK_emspace 0xaa1 #define XK_enspace 0xaa2 #define XK_em3space 0xaa3 #define XK_em4space 0xaa4 #define XK_digitspace 0xaa5 #define XK_punctspace 0xaa6 #define XK_thinspace 0xaa7 #define XK_hairspace 0xaa8 #define XK_emdash 0xaa9 #define XK_endash 0xaaa #define XK_signifblank 0xaac #define XK_ellipsis 0xaae #define XK_doubbaselinedot 0xaaf #define XK_onethird 0xab0 #define XK_twothirds 0xab1 #define XK_onefifth 0xab2 #define XK_twofifths 0xab3 #define XK_threefifths 0xab4 #define XK_fourfifths 0xab5 #define XK_onesixth 0xab6 #define XK_fivesixths 0xab7 #define XK_careof 0xab8 #define XK_figdash 0xabb #define XK_leftanglebracket 0xabc #define XK_decimalpoint 0xabd #define XK_rightanglebracket 0xabe #define XK_marker 0xabf #define XK_oneeighth 0xac3 #define XK_threeeighths 0xac4 #define XK_fiveeighths 0xac5 #define XK_seveneighths 0xac6 #define XK_trademark 0xac9 #define XK_signaturemark 0xaca #define XK_trademarkincircle 0xacb #define XK_leftopentriangle 0xacc #define XK_rightopentriangle 0xacd #define XK_emopencircle 0xace #define XK_emopenrectangle 0xacf #define XK_leftsinglequotemark 0xad0 #define XK_rightsinglequotemark 0xad1 #define XK_leftdoublequotemark 0xad2 #define XK_rightdoublequotemark 0xad3 #define XK_prescription 0xad4 #define XK_minutes 0xad6 #define XK_seconds 0xad7 #define XK_latincross 0xad9 #define XK_hexagram 0xada #define XK_filledrectbullet 0xadb #define XK_filledlefttribullet 0xadc #define XK_filledrighttribullet 0xadd #define XK_emfilledcircle 0xade #define XK_emfilledrect 0xadf #define XK_enopencircbullet 0xae0 #define XK_enopensquarebullet 0xae1 #define XK_openrectbullet 0xae2 #define XK_opentribulletup 0xae3 #define XK_opentribulletdown 0xae4 #define XK_openstar 0xae5 #define XK_enfilledcircbullet 0xae6 #define XK_enfilledsqbullet 0xae7 #define XK_filledtribulletup 0xae8 #define XK_filledtribulletdown 0xae9 #define XK_leftpointer 0xaea #define XK_rightpointer 0xaeb #define XK_club 0xaec #define XK_diamond 0xaed #define XK_heart 0xaee #define XK_maltesecross 0xaf0 #define XK_dagger 0xaf1 #define XK_doubledagger 0xaf2 #define XK_checkmark 0xaf3 #define XK_ballotcross 0xaf4 #define XK_musicalsharp 0xaf5 #define XK_musicalflat 0xaf6 #define XK_malesymbol 0xaf7 #define XK_femalesymbol 0xaf8 #define XK_telephone 0xaf9 #define XK_telephonerecorder 0xafa #define XK_phonographcopyright 0xafb #define XK_caret 0xafc #define XK_singlelowquotemark 0xafd #define XK_doublelowquotemark 0xafe #define XK_cursor 0xaff #endif /* XK_PUBLISHING */ /* * APL * Byte 3 = b */ #ifdef XK_APL #define XK_leftcaret 0xba3 #define XK_rightcaret 0xba6 #define XK_downcaret 0xba8 #define XK_upcaret 0xba9 #define XK_overbar 0xbc0 #define XK_downtack 0xbc2 #define XK_upshoe 0xbc3 #define XK_downstile 0xbc4 #define XK_underbar 0xbc6 #define XK_jot 0xbca #define XK_quad 0xbcc #define XK_uptack 0xbce #define XK_circle 0xbcf #define XK_upstile 0xbd3 #define XK_downshoe 0xbd6 #define XK_rightshoe 0xbd8 #define XK_leftshoe 0xbda #define XK_lefttack 0xbdc #define XK_righttack 0xbfc #endif /* XK_APL */ /* * Hebrew * Byte 3 = c */ #ifdef XK_HEBREW #define XK_hebrew_doublelowline 0xcdf #define XK_hebrew_aleph 0xce0 #define XK_hebrew_bet 0xce1 #define XK_hebrew_beth 0xce1 /* deprecated */ #define XK_hebrew_gimel 0xce2 #define XK_hebrew_gimmel 0xce2 /* deprecated */ #define XK_hebrew_dalet 0xce3 #define XK_hebrew_daleth 0xce3 /* deprecated */ #define XK_hebrew_he 0xce4 #define XK_hebrew_waw 0xce5 #define XK_hebrew_zain 0xce6 #define XK_hebrew_zayin 0xce6 /* deprecated */ #define XK_hebrew_chet 0xce7 #define XK_hebrew_het 0xce7 /* deprecated */ #define XK_hebrew_tet 0xce8 #define XK_hebrew_teth 0xce8 /* deprecated */ #define XK_hebrew_yod 0xce9 #define XK_hebrew_finalkaph 0xcea #define XK_hebrew_kaph 0xceb #define XK_hebrew_lamed 0xcec #define XK_hebrew_finalmem 0xced #define XK_hebrew_mem 0xcee #define XK_hebrew_finalnun 0xcef #define XK_hebrew_nun 0xcf0 #define XK_hebrew_samech 0xcf1 #define XK_hebrew_samekh 0xcf1 /* deprecated */ #define XK_hebrew_ayin 0xcf2 #define XK_hebrew_finalpe 0xcf3 #define XK_hebrew_pe 0xcf4 #define XK_hebrew_finalzade 0xcf5 #define XK_hebrew_finalzadi 0xcf5 /* deprecated */ #define XK_hebrew_zade 0xcf6 #define XK_hebrew_zadi 0xcf6 /* deprecated */ #define XK_hebrew_qoph 0xcf7 #define XK_hebrew_kuf 0xcf7 /* deprecated */ #define XK_hebrew_resh 0xcf8 #define XK_hebrew_shin 0xcf9 #define XK_hebrew_taw 0xcfa #define XK_hebrew_taf 0xcfa /* deprecated */ #define XK_Hebrew_switch 0xFF7E /* Alias for mode_switch */ #endif /* XK_HEBREW */ /* * Thai * Byte 3 = d */ #ifdef XK_THAI #define XK_Thai_kokai 0xda1 #define XK_Thai_khokhai 0xda2 #define XK_Thai_khokhuat 0xda3 #define XK_Thai_khokhwai 0xda4 #define XK_Thai_khokhon 0xda5 #define XK_Thai_khorakhang 0xda6 #define XK_Thai_ngongu 0xda7 #define XK_Thai_chochan 0xda8 #define XK_Thai_choching 0xda9 #define XK_Thai_chochang 0xdaa #define XK_Thai_soso 0xdab #define XK_Thai_chochoe 0xdac #define XK_Thai_yoying 0xdad #define XK_Thai_dochada 0xdae #define XK_Thai_topatak 0xdaf #define XK_Thai_thothan 0xdb0 #define XK_Thai_thonangmontho 0xdb1 #define XK_Thai_thophuthao 0xdb2 #define XK_Thai_nonen 0xdb3 #define XK_Thai_dodek 0xdb4 #define XK_Thai_totao 0xdb5 #define XK_Thai_thothung 0xdb6 #define XK_Thai_thothahan 0xdb7 #define XK_Thai_thothong 0xdb8 #define XK_Thai_nonu 0xdb9 #define XK_Thai_bobaimai 0xdba #define XK_Thai_popla 0xdbb #define XK_Thai_phophung 0xdbc #define XK_Thai_fofa 0xdbd #define XK_Thai_phophan 0xdbe #define XK_Thai_fofan 0xdbf #define XK_Thai_phosamphao 0xdc0 #define XK_Thai_moma 0xdc1 #define XK_Thai_yoyak 0xdc2 #define XK_Thai_rorua 0xdc3 #define XK_Thai_ru 0xdc4 #define XK_Thai_loling 0xdc5 #define XK_Thai_lu 0xdc6 #define XK_Thai_wowaen 0xdc7 #define XK_Thai_sosala 0xdc8 #define XK_Thai_sorusi 0xdc9 #define XK_Thai_sosua 0xdca #define XK_Thai_hohip 0xdcb #define XK_Thai_lochula 0xdcc #define XK_Thai_oang 0xdcd #define XK_Thai_honokhuk 0xdce #define XK_Thai_paiyannoi 0xdcf #define XK_Thai_saraa 0xdd0 #define XK_Thai_maihanakat 0xdd1 #define XK_Thai_saraaa 0xdd2 #define XK_Thai_saraam 0xdd3 #define XK_Thai_sarai 0xdd4 #define XK_Thai_saraii 0xdd5 #define XK_Thai_saraue 0xdd6 #define XK_Thai_sarauee 0xdd7 #define XK_Thai_sarau 0xdd8 #define XK_Thai_sarauu 0xdd9 #define XK_Thai_phinthu 0xdda #define XK_Thai_maihanakat_maitho 0xdde #define XK_Thai_baht 0xddf #define XK_Thai_sarae 0xde0 #define XK_Thai_saraae 0xde1 #define XK_Thai_sarao 0xde2 #define XK_Thai_saraaimaimuan 0xde3 #define XK_Thai_saraaimaimalai 0xde4 #define XK_Thai_lakkhangyao 0xde5 #define XK_Thai_maiyamok 0xde6 #define XK_Thai_maitaikhu 0xde7 #define XK_Thai_maiek 0xde8 #define XK_Thai_maitho 0xde9 #define XK_Thai_maitri 0xdea #define XK_Thai_maichattawa 0xdeb #define XK_Thai_thanthakhat 0xdec #define XK_Thai_nikhahit 0xded #define XK_Thai_leksun 0xdf0 #define XK_Thai_leknung 0xdf1 #define XK_Thai_leksong 0xdf2 #define XK_Thai_leksam 0xdf3 #define XK_Thai_leksi 0xdf4 #define XK_Thai_lekha 0xdf5 #define XK_Thai_lekhok 0xdf6 #define XK_Thai_lekchet 0xdf7 #define XK_Thai_lekpaet 0xdf8 #define XK_Thai_lekkao 0xdf9 #endif /* XK_THAI */ /* * Korean * Byte 3 = e */ #ifdef XK_KOREAN #define XK_Hangul 0xff31 /* Hangul start/stop(toggle) */ #define XK_Hangul_Start 0xff32 /* Hangul start */ #define XK_Hangul_End 0xff33 /* Hangul end, English start */ #define XK_Hangul_Hanja 0xff34 /* Start Hangul->Hanja Conversion */ #define XK_Hangul_Jamo 0xff35 /* Hangul Jamo mode */ #define XK_Hangul_Romaja 0xff36 /* Hangul Romaja mode */ #define XK_Hangul_Codeinput 0xff37 /* Hangul code input mode */ #define XK_Hangul_Jeonja 0xff38 /* Jeonja mode */ #define XK_Hangul_Banja 0xff39 /* Banja mode */ #define XK_Hangul_PreHanja 0xff3a /* Pre Hanja conversion */ #define XK_Hangul_PostHanja 0xff3b /* Post Hanja conversion */ #define XK_Hangul_SingleCandidate 0xff3c /* Single candidate */ #define XK_Hangul_MultipleCandidate 0xff3d /* Multiple candidate */ #define XK_Hangul_PreviousCandidate 0xff3e /* Previous candidate */ #define XK_Hangul_Special 0xff3f /* Special symbols */ #define XK_Hangul_switch 0xFF7E /* Alias for mode_switch */ /* Hangul Consonant Characters */ #define XK_Hangul_Kiyeog 0xea1 #define XK_Hangul_SsangKiyeog 0xea2 #define XK_Hangul_KiyeogSios 0xea3 #define XK_Hangul_Nieun 0xea4 #define XK_Hangul_NieunJieuj 0xea5 #define XK_Hangul_NieunHieuh 0xea6 #define XK_Hangul_Dikeud 0xea7 #define XK_Hangul_SsangDikeud 0xea8 #define XK_Hangul_Rieul 0xea9 #define XK_Hangul_RieulKiyeog 0xeaa #define XK_Hangul_RieulMieum 0xeab #define XK_Hangul_RieulPieub 0xeac #define XK_Hangul_RieulSios 0xead #define XK_Hangul_RieulTieut 0xeae #define XK_Hangul_RieulPhieuf 0xeaf #define XK_Hangul_RieulHieuh 0xeb0 #define XK_Hangul_Mieum 0xeb1 #define XK_Hangul_Pieub 0xeb2 #define XK_Hangul_SsangPieub 0xeb3 #define XK_Hangul_PieubSios 0xeb4 #define XK_Hangul_Sios 0xeb5 #define XK_Hangul_SsangSios 0xeb6 #define XK_Hangul_Ieung 0xeb7 #define XK_Hangul_Jieuj 0xeb8 #define XK_Hangul_SsangJieuj 0xeb9 #define XK_Hangul_Cieuc 0xeba #define XK_Hangul_Khieuq 0xebb #define XK_Hangul_Tieut 0xebc #define XK_Hangul_Phieuf 0xebd #define XK_Hangul_Hieuh 0xebe /* Hangul Vowel Characters */ #define XK_Hangul_A 0xebf #define XK_Hangul_AE 0xec0 #define XK_Hangul_YA 0xec1 #define XK_Hangul_YAE 0xec2 #define XK_Hangul_EO 0xec3 #define XK_Hangul_E 0xec4 #define XK_Hangul_YEO 0xec5 #define XK_Hangul_YE 0xec6 #define XK_Hangul_O 0xec7 #define XK_Hangul_WA 0xec8 #define XK_Hangul_WAE 0xec9 #define XK_Hangul_OE 0xeca #define XK_Hangul_YO 0xecb #define XK_Hangul_U 0xecc #define XK_Hangul_WEO 0xecd #define XK_Hangul_WE 0xece #define XK_Hangul_WI 0xecf #define XK_Hangul_YU 0xed0 #define XK_Hangul_EU 0xed1 #define XK_Hangul_YI 0xed2 #define XK_Hangul_I 0xed3 /* Hangul syllable-final (JongSeong) Characters */ #define XK_Hangul_J_Kiyeog 0xed4 #define XK_Hangul_J_SsangKiyeog 0xed5 #define XK_Hangul_J_KiyeogSios 0xed6 #define XK_Hangul_J_Nieun 0xed7 #define XK_Hangul_J_NieunJieuj 0xed8 #define XK_Hangul_J_NieunHieuh 0xed9 #define XK_Hangul_J_Dikeud 0xeda #define XK_Hangul_J_Rieul 0xedb #define XK_Hangul_J_RieulKiyeog 0xedc #define XK_Hangul_J_RieulMieum 0xedd #define XK_Hangul_J_RieulPieub 0xede #define XK_Hangul_J_RieulSios 0xedf #define XK_Hangul_J_RieulTieut 0xee0 #define XK_Hangul_J_RieulPhieuf 0xee1 #define XK_Hangul_J_RieulHieuh 0xee2 #define XK_Hangul_J_Mieum 0xee3 #define XK_Hangul_J_Pieub 0xee4 #define XK_Hangul_J_PieubSios 0xee5 #define XK_Hangul_J_Sios 0xee6 #define XK_Hangul_J_SsangSios 0xee7 #define XK_Hangul_J_Ieung 0xee8 #define XK_Hangul_J_Jieuj 0xee9 #define XK_Hangul_J_Cieuc 0xeea #define XK_Hangul_J_Khieuq 0xeeb #define XK_Hangul_J_Tieut 0xeec #define XK_Hangul_J_Phieuf 0xeed #define XK_Hangul_J_Hieuh 0xeee /* Ancient Hangul Consonant Characters */ #define XK_Hangul_RieulYeorinHieuh 0xeef #define XK_Hangul_SunkyeongeumMieum 0xef0 #define XK_Hangul_SunkyeongeumPieub 0xef1 #define XK_Hangul_PanSios 0xef2 #define XK_Hangul_KkogjiDalrinIeung 0xef3 #define XK_Hangul_SunkyeongeumPhieuf 0xef4 #define XK_Hangul_YeorinHieuh 0xef5 /* Ancient Hangul Vowel Characters */ #define XK_Hangul_AraeA 0xef6 #define XK_Hangul_AraeAE 0xef7 /* Ancient Hangul syllable-final (JongSeong) Characters */ #define XK_Hangul_J_PanSios 0xef8 #define XK_Hangul_J_KkogjiDalrinIeung 0xef9 #define XK_Hangul_J_YeorinHieuh 0xefa /* Korean currency symbol */ #define XK_Korean_Won 0xeff #endif /* XK_KOREAN */ /* * Armenian * Byte 3 = 0x14 */ #ifdef XK_ARMENIAN #define XK_Armenian_eternity 0x14a1 #define XK_Armenian_section_sign 0x14a2 #define XK_Armenian_full_stop 0x14a3 #define XK_Armenian_verjaket 0x14a3 #define XK_Armenian_parenright 0x14a4 #define XK_Armenian_parenleft 0x14a5 #define XK_Armenian_guillemotright 0x14a6 #define XK_Armenian_guillemotleft 0x14a7 #define XK_Armenian_em_dash 0x14a8 #define XK_Armenian_dot 0x14a9 #define XK_Armenian_mijaket 0x14a9 #define XK_Armenian_separation_mark 0x14aa #define XK_Armenian_but 0x14aa #define XK_Armenian_comma 0x14ab #define XK_Armenian_en_dash 0x14ac #define XK_Armenian_hyphen 0x14ad #define XK_Armenian_yentamna 0x14ad #define XK_Armenian_ellipsis 0x14ae #define XK_Armenian_exclam 0x14af #define XK_Armenian_amanak 0x14af #define XK_Armenian_accent 0x14b0 #define XK_Armenian_shesht 0x14b0 #define XK_Armenian_question 0x14b1 #define XK_Armenian_paruyk 0x14b1 #define XK_Armenian_AYB 0x14b2 #define XK_Armenian_ayb 0x14b3 #define XK_Armenian_BEN 0x14b4 #define XK_Armenian_ben 0x14b5 #define XK_Armenian_GIM 0x14b6 #define XK_Armenian_gim 0x14b7 #define XK_Armenian_DA 0x14b8 #define XK_Armenian_da 0x14b9 #define XK_Armenian_YECH 0x14ba #define XK_Armenian_yech 0x14bb #define XK_Armenian_ZA 0x14bc #define XK_Armenian_za 0x14bd #define XK_Armenian_E 0x14be #define XK_Armenian_e 0x14bf #define XK_Armenian_AT 0x14c0 #define XK_Armenian_at 0x14c1 #define XK_Armenian_TO 0x14c2 #define XK_Armenian_to 0x14c3 #define XK_Armenian_ZHE 0x14c4 #define XK_Armenian_zhe 0x14c5 #define XK_Armenian_INI 0x14c6 #define XK_Armenian_ini 0x14c7 #define XK_Armenian_LYUN 0x14c8 #define XK_Armenian_lyun 0x14c9 #define XK_Armenian_KHE 0x14ca #define XK_Armenian_khe 0x14cb #define XK_Armenian_TSA 0x14cc #define XK_Armenian_tsa 0x14cd #define XK_Armenian_KEN 0x14ce #define XK_Armenian_ken 0x14cf #define XK_Armenian_HO 0x14d0 #define XK_Armenian_ho 0x14d1 #define XK_Armenian_DZA 0x14d2 #define XK_Armenian_dza 0x14d3 #define XK_Armenian_GHAT 0x14d4 #define XK_Armenian_ghat 0x14d5 #define XK_Armenian_TCHE 0x14d6 #define XK_Armenian_tche 0x14d7 #define XK_Armenian_MEN 0x14d8 #define XK_Armenian_men 0x14d9 #define XK_Armenian_HI 0x14da #define XK_Armenian_hi 0x14db #define XK_Armenian_NU 0x14dc #define XK_Armenian_nu 0x14dd #define XK_Armenian_SHA 0x14de #define XK_Armenian_sha 0x14df #define XK_Armenian_VO 0x14e0 #define XK_Armenian_vo 0x14e1 #define XK_Armenian_CHA 0x14e2 #define XK_Armenian_cha 0x14e3 #define XK_Armenian_PE 0x14e4 #define XK_Armenian_pe 0x14e5 #define XK_Armenian_JE 0x14e6 #define XK_Armenian_je 0x14e7 #define XK_Armenian_RA 0x14e8 #define XK_Armenian_ra 0x14e9 #define XK_Armenian_SE 0x14ea #define XK_Armenian_se 0x14eb #define XK_Armenian_VEV 0x14ec #define XK_Armenian_vev 0x14ed #define XK_Armenian_TYUN 0x14ee #define XK_Armenian_tyun 0x14ef #define XK_Armenian_RE 0x14f0 #define XK_Armenian_re 0x14f1 #define XK_Armenian_TSO 0x14f2 #define XK_Armenian_tso 0x14f3 #define XK_Armenian_VYUN 0x14f4 #define XK_Armenian_vyun 0x14f5 #define XK_Armenian_PYUR 0x14f6 #define XK_Armenian_pyur 0x14f7 #define XK_Armenian_KE 0x14f8 #define XK_Armenian_ke 0x14f9 #define XK_Armenian_O 0x14fa #define XK_Armenian_o 0x14fb #define XK_Armenian_FE 0x14fc #define XK_Armenian_fe 0x14fd #define XK_Armenian_apostrophe 0x14fe #define XK_Armenian_ligature_ew 0x14ff #endif /* XK_ARMENIAN */ /* * Georgian * Byte 3 = 0x15 */ #ifdef XK_GEORGIAN #define XK_Georgian_an 0x15d0 #define XK_Georgian_ban 0x15d1 #define XK_Georgian_gan 0x15d2 #define XK_Georgian_don 0x15d3 #define XK_Georgian_en 0x15d4 #define XK_Georgian_vin 0x15d5 #define XK_Georgian_zen 0x15d6 #define XK_Georgian_tan 0x15d7 #define XK_Georgian_in 0x15d8 #define XK_Georgian_kan 0x15d9 #define XK_Georgian_las 0x15da #define XK_Georgian_man 0x15db #define XK_Georgian_nar 0x15dc #define XK_Georgian_on 0x15dd #define XK_Georgian_par 0x15de #define XK_Georgian_zhar 0x15df #define XK_Georgian_rae 0x15e0 #define XK_Georgian_san 0x15e1 #define XK_Georgian_tar 0x15e2 #define XK_Georgian_un 0x15e3 #define XK_Georgian_phar 0x15e4 #define XK_Georgian_khar 0x15e5 #define XK_Georgian_ghan 0x15e6 #define XK_Georgian_qar 0x15e7 #define XK_Georgian_shin 0x15e8 #define XK_Georgian_chin 0x15e9 #define XK_Georgian_can 0x15ea #define XK_Georgian_jil 0x15eb #define XK_Georgian_cil 0x15ec #define XK_Georgian_char 0x15ed #define XK_Georgian_xan 0x15ee #define XK_Georgian_jhan 0x15ef #define XK_Georgian_hae 0x15f0 #define XK_Georgian_he 0x15f1 #define XK_Georgian_hie 0x15f2 #define XK_Georgian_we 0x15f3 #define XK_Georgian_har 0x15f4 #define XK_Georgian_hoe 0x15f5 #define XK_Georgian_fi 0x15f6 #endif /* XK_GEORGIAN */ #ifdef XK_CURRENCY #define XK_EcuSign 0x20a0 #define XK_ColonSign 0x20a1 #define XK_CruzeiroSign 0x20a2 #define XK_FFrancSign 0x20a3 #define XK_LiraSign 0x20a4 #define XK_MillSign 0x20a5 #define XK_NairaSign 0x20a6 #define XK_PesetaSign 0x20a7 #define XK_RupeeSign 0x20a8 #define XK_WonSign 0x20a9 #define XK_NewSheqelSign 0x20aa #define XK_DongSign 0x20ab #define XK_EuroSign 0x20ac #endif gmv0.9/src/glwin/PKG0100644000175200017560000000024407306121727014617 0ustar stephensstephengNAME=glwin VERSION=1.0 DESC="A simple window creation library for testing OpenGL apps." CATEGORY="Geometric Modeling" REQUIRES_PKGS="../gum" REQUIRES_OTHERS opengl gmv0.9/src/glwin/glwin.c0100744000175200017560000007171307270653761015561 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_glwin_glwin_c__ #define __rcs_id_glwin_glwin_c__ static const char __rcs_id_glwin_glwin_c[] = "$Id: glwin.c,v 1.13 2001/04/22 22:15:13 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "glwin.h" #include #if _GLWIN_GLUT #define GLUT_API_VERSION 4 #include /* Layer on top of glut.h */ #endif #if _GLWIN_TOGL #define TOGL_X11 1 #include "togl/togl.h" #include /* XAutoRepeat*() */ #ifdef KeyPress #undef KeyPress #endif typedef struct Togl Togl; #endif #include #include /* malloc(), free() */ #include /* memset() */ #include #include /* islower(), toupper() */ #include "vk.h" #if _GLWIN_WIN32 // If necessary, creates a 3-3-2 palette for the device context listed. static HPALETTE GetOpenGLPalette(HDC hDC) { HPALETTE hRetPal = NULL; // Handle to palette to be created PIXELFORMATDESCRIPTOR pfd; // Pixel Format Descriptor LOGPALETTE *pPal; // Pointer to memory for logical palette int nPixelFormat; // Pixel format index int nColors; // Number of entries in palette int i; // Counting variable BYTE RedRange, GreenRange, BlueRange; // Range for each color entry (7,7,and 3) // Get the pixel format index and retrieve the pixel format description nPixelFormat = GetPixelFormat(hDC); DescribePixelFormat(hDC, nPixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd); // Does this pixel format require a palette? If not, do not create a // palette and just return NULL if(!(pfd.dwFlags & PFD_NEED_PALETTE)) return NULL; // Number of entries in palette. 8 bits yields 256 entries nColors = 1 << pfd.cColorBits; // Allocate space for a logical palette structure plus all the palette entries pPal = (LOGPALETTE*)malloc(sizeof(LOGPALETTE) + nColors * sizeof(PALETTEENTRY)); // Fill in palette header pPal->palVersion = 0x300; // Windows 3.0 pPal->palNumEntries = nColors; // table size // Build mask of all 1's. This creates a number represented by having // the low order x bits set, where x = pfd.cRedBits, pfd.cGreenBits, and // pfd.cBlueBits. RedRange = (1 << pfd.cRedBits) - 1; GreenRange = (1 << pfd.cGreenBits) - 1; BlueRange = (1 << pfd.cBlueBits) - 1; // Loop through all the palette entries for(i = 0; i < nColors; i++) { // Fill in the 8-bit equivalents for each component pPal->palPalEntry[i].peRed = (i >> pfd.cRedShift) & RedRange; pPal->palPalEntry[i].peRed = (unsigned char)( (double) pPal->palPalEntry[i].peRed * 255.0 / RedRange); pPal->palPalEntry[i].peGreen = (i >> pfd.cGreenShift) & GreenRange; pPal->palPalEntry[i].peGreen = (unsigned char)( (double)pPal->palPalEntry[i].peGreen * 255.0 / GreenRange); pPal->palPalEntry[i].peBlue = (i >> pfd.cBlueShift) & BlueRange; pPal->palPalEntry[i].peBlue = (unsigned char)( (double)pPal->palPalEntry[i].peBlue * 255.0 / BlueRange); pPal->palPalEntry[i].peFlags = (unsigned char) NULL; } // Create the palette hRetPal = CreatePalette(pPal); // Go ahead and select and realize the palette for this device context SelectPalette(hDC,hRetPal,FALSE); RealizePalette(hDC); // Free the memory used for the logical palette structure free(pPal); // Return the handle to the new palette return hRetPal; } #endif /* _GLWIN_WIN32 */ static void showOpenGLInfo( #if _GLWIN_WIN32 HDC hDC, int pixelFormat #endif ) { const char *type = "unknown"; // OpenGL Implementation type. #if _GLWIN_WIN32 // Find out if hardware acceleration is enabled. { PIXELFORMATDESCRIPTOR pfd_new; int generic_format; int generic_accelerated; DescribePixelFormat (hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd_new); #if 0 fprintf(stderr, "pfd_new.dwFlags = 0x%lx\n", (unsigned long) pfd_new.dwFlags); #endif generic_format = pfd_new.dwFlags & PFD_GENERIC_FORMAT; #ifndef PFD_GENERIC_ACCELERATED /* Good guess?? */ #define PFD_GENERIC_ACCELERATED ((PFD_GENERIC_FORMAT) << 1) #endif generic_accelerated = pfd_new.dwFlags & PFD_GENERIC_ACCELERATED; if (generic_format && ! generic_accelerated) { type = "software"; } else if (generic_format && generic_accelerated) { type = "hardware - MCD"; } else if (! generic_format && ! generic_accelerated) { type = "hardware - ICD"; } } #endif /* _GLWIN_WIN32 */ fprintf(stderr, "OpenGL implementation: %s\n", type); { static int once = 0; if ( ! once ) { once ++; #define P(X) fprintf(stderr, "%s = \"%s\"\n" , #X, X); P(glGetString(GL_VENDOR)); P(glGetString(GL_RENDERER)); P(glGetString(GL_VERSION)); P(glGetString(GL_EXTENSIONS)); P(gluGetString(GLU_VERSION)); P(gluGetString(GLU_EXTENSIONS)); #undef P } } } #if _GLWIN_WIN32 // Select the pixel format for a given device context static int SetDCPixelFormat(HDC hDC) { int nPixelFormat; static PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // Size of this structure 1, // Version of this structure PFD_DRAW_TO_WINDOW | // Draw to Window (not to bitmap) PFD_SUPPORT_OPENGL | // Support OpenGL calls in window PFD_DOUBLEBUFFER, // Double buffered mode PFD_TYPE_RGBA, // RGBA Color mode 16, // Want 16 bit color 0,0,0,0,0,0, // Not used to select mode 0,0, // Not used to select mode 0,0,0,0,0, // Not used to select mode 16, // Size of depth buffer 0, // Not used to select mode 0, // Not used to select mode PFD_MAIN_PLANE, // Draw in main plane 0, // Not used to select mode 0,0,0 }; // Not used to select mode // Choose a pixel format that best matches that described in pfd nPixelFormat = ChoosePixelFormat(hDC, &pfd); // Set the pixel format for the device context SetPixelFormat(hDC, nPixelFormat, &pfd); return nPixelFormat; } #endif /* _GLWIN_WIN32 */ /********************************************************************** ** Basic tracking */ glwin_window *_glwin_create(glwin_desc *desc, void *data) { glwin_window *win; win = malloc(sizeof(*win)); memset(win, 0, sizeof(*win)); win->data = data; win->desc = *desc; win->winX = win->desc.winX; win->winY = win->desc.winY; win->winWidth = win->desc.winWidth; win->winHeight = win->desc.winHeight; win->viewWidth = win->desc.winWidth; win->viewHeight = win->desc.winHeight; return win; } void _glwin_destroy(glwin_window *win) { free(win); } static int glwin_process_idle(glwin_window *win) { int result = 0; if ( win->desc.Idle ) result = (win->desc.Idle)(win); return result; } int glwin_process_size(glwin_window *win, int w, int h) { if ( win->desc.ChangeSize ) (win->desc.ChangeSize)(win, w, h); win->winWidth = w; win->winHeight = h; return 0; } int glwin_process_create(glwin_window *win) { int result = 0; if ( ! win->created ) { win->created = 1; if ( win->desc.Create ) { void (*func)(glwin_window*) = win->desc.Create; win->desc.Create = 0; (func)(win); result = 1; } glwin_process_size(win, win->winWidth, win->winHeight); glwin_process_idle(win); } return result; } int glwin_process_render(glwin_window *win) { if ( win->desc.Render ) { return win->desc.Render(win); } return 0; } int glwin_process_close(glwin_window *win) { if ( win->desc.Close ) { (win->desc.Close)(win); return 1; } return 0; } int glwin_process_destroy(glwin_window *win) { int result = 0; result |= glwin_process_close(win); if ( win->desc.Destroy ) { void (*func)(glwin_window*) = win->desc.Destroy; win->desc.Destroy = 0; (func)(win); _glwin_destroy(win); result |= 1; } return result; } int glwin_process_motion(glwin_window *win, int x, int y) { int result = 0; if ( win->desc.MouseMove ) { result |= win->desc.MouseMove(win, x, y); } if ( win->nButtonsDown ) { if ( win->desc.MouseDrag ) { result |= win->desc.MouseDrag(win, x, y); } } return result; } /********************************************************************** ** Keyboard tracking */ int glwin_process_key_press(glwin_window *win, int key) { if ( win->desc.KeyPress ) { return (win->desc.KeyPress)(win, key); } return 0; } static int _glwin_process_key(glwin_window *win, int key, int down) { int result; key &= 0xff; /* Callbacks expect upper case. */ if ( isalpha(key) && islower(key) ) { key = toupper(key); } #if 0 fprintf(stderr, "key = '%c', 0x%x %s\n", key, key, down ? "DOWN" : "UP"); #endif win->nKeysDownPrev = win->nKeysDown; if ( down ) { if ( win->keyState[key] == 0 ) { ++ win->keyState[key]; if ( ++ win->nKeysDown == 1 ) { #if _GLWIN_TOGL #define DISPLAY Togl_Display(win->_togl_win) XKeyboardState xks; XGetKeyboardControl(DISPLAY, &xks); win->_x_auto_repeat_mode = xks.global_auto_repeat; if ( win->_x_auto_repeat_mode == AutoRepeatModeOn ) { // fprintf(stderr, "XAutoRepeatOff(%p)\n", DISPLAY); XAutoRepeatOff(DISPLAY); } #endif } if ( win->desc.KeyDown ) { result = (win->desc.KeyDown)(win, key); } } } else { if ( win->keyState[key] > 0 ) { -- win->keyState[key]; } if ( win->nKeysDown > 0 ) { if ( -- win->nKeysDown == 0 ) { #if _GLWIN_TOGL if ( win->_x_auto_repeat_mode == AutoRepeatModeOn ) { // fprintf(stderr, "XAutoRepeatOn(%p)\n", DISPLAY); XAutoRepeatOn(DISPLAY); } #undef DISPLAY #endif } } if ( win->desc.KeyUp ) { result = (win->desc.KeyUp)(win, key); } } return result; } int glwin_process_key(glwin_window *win, int key, int down) { int result = 0; int other = 0; /* Handle aliases. */ switch ( key ) { case VK_RSHIFT: case VK_LSHIFT: other = VK_SHIFT; break; case VK_LMENU: case VK_RMENU: other = VK_MENU; break; case VK_LCONTROL: case VK_RCONTROL: other = VK_CONTROL; break; case VK_NUMPAD0: case VK_NUMPAD1: case VK_NUMPAD2: case VK_NUMPAD3: case VK_NUMPAD4: case VK_NUMPAD5: case VK_NUMPAD6: case VK_NUMPAD7: case VK_NUMPAD8: case VK_NUMPAD9: other = key - VK_NUMPAD0 + '0'; break; case VK_MULTIPLY: other = '*'; break; case VK_ADD: other = '+'; break; case VK_SEPARATOR: other = '/'; break; case VK_SUBTRACT: other = '-'; break; case VK_DECIMAL: other = '.'; break; case VK_DIVIDE: other = '/'; break; default: other = 0; break; } result = _glwin_process_key(win, key, down); if ( other ) { /* fprintf(stderr, "PK %d -> %d\n", key, other); */ result |= _glwin_process_key(win, other, down); } return result; } extern int glwin_XK_to_VK(int keysym); int glwin_process_keysym(glwin_window *win, int key, int state) { key = glwin_XK_to_VK(key); return glwin_process_key(win, key, state); } int glwin_key_down(glwin_window *win, int key) { key &= 0xff; return win->keyState[key]; } int glwin_nkeys_down(glwin_window *win) { return win->nKeysDown; } int glwin_nkeys_down_prev(glwin_window *win) { return win->nKeysDownPrev; } /********************************************************************** ** Mouse button tracking. */ int glwin_process_button(glwin_window *win, int button, int down, int x, int y) { int result = 0; int count = down; assert(0 <= button && button <= 3); if ( count == 0 ) { count = win->buttonCount[button]; } win->nButtonsDownPrev = win->nButtonsDown; if ( down ) { if ( win->buttonState[button] == 0 ) { ++ win->nButtonsDown; } win->buttonCount[button] = count; if ( win->buttonState[button] <= count ) { win->buttonState[button] = count; win->buttonDownX[button] = x; win->buttonDownY[button] = y; if ( win->desc.MouseDown ) { result = win->desc.MouseDown(win, x, y, button, count); } } } else { win->buttonState[button] = 0; if ( win->nButtonsDown > 0 ) { -- win->nButtonsDown; } if ( win->desc.MouseUp ) { result = win->desc.MouseUp(win, x, y, button, count); } // glwin_process_key(); } return result; } int glwin_button_down(glwin_window *win, int button) { button &= 0xff; return win->buttonState[button]; } int glwin_button_count(glwin_window *win, int button) { button &= 0xff; return win->buttonCount[button]; } int glwin_nbuttons_down(glwin_window *win) { return win->nButtonsDown; } int glwin_nbuttons_down_prev(glwin_window *win) { return win->nButtonsDownPrev; } #if _GLWIN_WIN32 // Window procedure, handles all messages for this program static glwin_window *win_created; static LRESULT CALLBACK glwin_window_WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { glwin_window *win; int x = LOWORD(lParam); int y = HIWORD(lParam); #define hRC win->hRC #define hDC win->hDC #define hPalette win->hPalette /* get the window's glwin_window ptr */ win = (void*) GetWindowLong(hWnd, 0); if ( ! win ) { if ( win_created ) { win = win_created; /* ARRGGH! */ win_created = 0; SetWindowLong(hWnd, 0, (LONG) win); win->hWnd = hWnd; } else { fprintf(stderr, "glwin_window: cannot attach HWND\n"); abort(); } } /* Validate */ if ( win->hWnd && win->hWnd != hWnd ) { fprintf(stderr, "glwin_window: corrupted window struct\n"); abort(); } /* We're not being destroyed or created */ if ( message != WM_CREATE || message != WM_DESTROY ) { if ( hDC != 0 && hRC != 0 ) { /* Switch to our gl context */ wglMakeCurrent(hDC, hRC); /* call our Create function if needed */ glwin_process_create(win); } } } // fprintf(stderr, "message %u wParam %ld %ld\n", message, (long) wParam, (long) lParam); switch (message) { case WM_CREATE: { int pixelFormat; hDC = GetDC(hWnd); pixelFormat = SetDCPixelFormat(hDC); hRC = wglCreateContext(hDC); wglMakeCurrent(hDC, hRC); hPalette = GetOpenGLPalette(hDC); showOpenGLInfo(hDC, pixelFormat); } break; case WM_DESTROY: glwin_idle(win, 0); wglMakeCurrent(hDC, hRC); wglDeleteContext(hRC); wglMakeCurrent(hDC, 0); if(hPalette != NULL) DeleteObject(hPalette); glwin_process_destroy(win); break; case WM_SIZE: { GLint w, h; w = x; h = y; if ( w < 1 ) { w = 1; } if ( h < 1 ) { h = 1; } glwin_process_size(win, w, h); } break; case WM_TIMER: glwin_process_idle(win); break; case WM_PAINT: glwin_process_render(win); SwapBuffers(hDC); ValidateRect(hWnd, NULL); break; case WM_QUERYNEWPALETTE: if(hPalette) { int nRet; SelectPalette(hDC, hPalette, FALSE); nRet = RealizePalette(hDC); InvalidateRect(hWnd, NULL, FALSE); return nRet; } break; case WM_PALETTECHANGED: if((hPalette != NULL) && ((HWND)wParam != hWnd)) { SelectPalette(hDC, hPalette, FALSE); RealizePalette(hDC); UpdateColors(hDC); return 0; } break; case WM_CHAR: if ( glwin_process_key_press(win, wParam); if ( win->desc.KeyPress ) { if ( ! (win->desc.KeyPress)(win, wParam) ) { goto do_default; } } break; case WM_KEYDOWN: if ( ! glwin_process_key(win, wParam, 1) ) { goto do_default; } break; case WM_KEYUP: if ( ! glwin_process_key(win, wParam, 0) ) { goto do_default; } break; case WM_LBUTTONDOWN: // fprintf(stderr, "WM_LBUTTONDOWN %d %d, %ld %ld\n", (int) x, (int) y, (long) wParam, (long) lParam); glwin_process_button(win, 0, 1, x, y); break; case WM_LBUTTONUP: // fprintf(stderr, "WM_LBUTTONUP %d %d, %ld %ld\n", (int) x, (int) y, (long) wParam, (long) lParam); glwin_process_button(win, 0, 0, x, y); break; case WM_RBUTTONDOWN: glwin_process_button(win, 1, 1, x, y); break; case WM_RBUTTONUP: glwin_process_button(win, 1, 0, x, y); break; case WM_MBUTTONDOWN: glwin_process_button(win, 2, 1, x, y); break; case WM_MBUTTONUP: glwin_process_button(win, 2, 0, x, y); break; case WM_MOUSEWHEEL: if ( win->desc.MouseZ ) { double dz = (double) wParam / (double) (- (~0U >> 1)); fprintf(stderr, "WM_MOUSEWHEEL(%ld, dz = %g, x = %ld, y = %ld)\n", (long) win, (double) dz, (long) x, (long) y); win->desc.MouseZ(win, x, y, dz); break; } goto do_default; case WM_MOUSEMOVE: glwin_process_motion(win, x, y); break; case WM_MOUSEHOVER: case WM_MOUSELEAVE: fprintf(stderr, "WM_*BUTTON*(%ld, %ld, %ld, %ld): x = %d, y = %d\n", (long) win, (long) message, (long) wParam, (long) lParam, (int) x, (int) y); goto do_default; break; default: do_default: return (DefWindowProc(hWnd, message, wParam, lParam)); } #undef hRc #undef hDc #undef hPalette return (0L); } HINSTANCE glwin_hInstance; #endif /* _GLWIN_WIN32 */ #if _GLWIN_WIN32 glwin_window *glwin_create(glwin_desc *desc, void *data) { glwin_window *win; static const char *wClassName = 0; HWND hWnd; /* The window we are attached to */ if ( ! glwin_hInstance ) { glwin_hInstance = GetModuleHandle(NULL); fprintf(stderr, "glwin_hInstance = %p\n", (void*) glwin_hInstance); } if ( ! wClassName ) { WNDCLASS wc; wClassName = "glwin_window"; UnregisterClass(wClassName, glwin_hInstance); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC) glwin_window_WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = sizeof(win); wc.hInstance = glwin_hInstance; wc.hIcon = NULL; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = NULL; wc.lpszMenuName = NULL; wc.lpszClassName = wClassName; if(RegisterClass(&wc) == 0) { wClassName = 0; return 0; } } win = _glwin_create(desc, data); win->hInstance = glwin_hInstance; win_created = win; hWnd = CreateWindow( wClassName, desc->winName, /* OpenGL requires WS_CLIPCHILDREN | WS_CLIPSIBLINGS */ WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, desc->winX > 0 ? desc->winX : CW_USEDEFAULT, desc->winY > 0 ? desc->winY : CW_USEDEFAULT, desc->winWidth > 0 ? desc->winWidth : CW_USEDEFAULT, desc->winHeight > 0 ? desc->winHeight : CW_USEDEFAULT, NULL, NULL, glwin_hInstance, win); win_created = 0; if(hWnd == NULL) { free(win); return 0; } win->hWnd = hWnd; SetWindowLong(hWnd, 0, (LONG) win); return win; } #endif /* _GLWIN_WIN32 */ #if _GLWIN_GLUT #define _glutwin_max 128 static glwin_window *__glut_2_glwin[_glutwin_max]; #define _glutWinAssert(glut_win) assert(0 <= (glut_win) && (glut_win) < _glutwin_max); static glwin_window *_glut_2_glwin() { int win = glutGetWindow(); _glutWinAssert(win); return __glut_2_glwin[win]; } #define WIN _glut_2_glwin() static void _glut_Reshape(int width, int height) { glwin_window *win = WIN; glwin_process_create(win); if ( width <= 0 ) width = 1; if ( height <= 0 ) height = 1; glwin_process_sie(win, width, height); } static void _glut_Display() { glwin_window *win = WIN; glwin_process_create(win); glwin_process_render(win); glutSwapBuffers(); } static void _glut_mods(glwin_window *win) { /* Do mods. */ int mods = glutGetModifiers(); // fprintf(stderr, "_glut_mods(): %d\n", mods); glwin_process_key(win, VK_SHIFT, mods & GLUT_ACTIVE_SHIFT ? 1 : 0); glwin_process_key(win, VK_CONTROL, mods & GLUT_ACTIVE_CTRL ? 1 : 0); glwin_process_key(win, VK_MENU, mods & GLUT_ACTIVE_ALT ? 1 : 0); } static int _glut_to_vk(int key) { // fprintf(stderr, "_glut_to_vk(%d): ", key); /* Map GLUT keys to VK keys. */ switch ( key ) { /* function keys */ case GLUT_KEY_F1: key = VK_F1; break; case GLUT_KEY_F2: key = VK_F2; break; case GLUT_KEY_F3: key = VK_F3; break; case GLUT_KEY_F4: key = VK_F4; break; case GLUT_KEY_F5: key = VK_F5; break; case GLUT_KEY_F6: key = VK_F6; break; case GLUT_KEY_F7: key = VK_F7; break; case GLUT_KEY_F8: key = VK_F8; break; case GLUT_KEY_F9: key = VK_F9; break; case GLUT_KEY_F10: key = VK_F10; break; case GLUT_KEY_F11: key = VK_F11; break; case GLUT_KEY_F12: key = VK_F12; break; /* directional keys */ case GLUT_KEY_LEFT: key = VK_LEFT; break; case GLUT_KEY_UP: key = VK_UP; break; case GLUT_KEY_RIGHT: key = VK_RIGHT; break; case GLUT_KEY_DOWN: key = VK_DOWN; break; case GLUT_KEY_PAGE_UP: key = VK_PRIOR; break; case GLUT_KEY_PAGE_DOWN: key = VK_NEXT; break; case GLUT_KEY_HOME: key = VK_HOME; break; case GLUT_KEY_END: key = VK_END; break; case GLUT_KEY_INSERT: key = VK_INSERT; break; default: break; } // fprintf(stderr, "%d\n", key); return key; } static void _glut_Mouse(int button, int state, int x, int y) { glwin_window *win = WIN; switch ( button ) { case GLUT_LEFT_BUTTON: button = 0; break; case GLUT_MIDDLE_BUTTON: button = 2; break; case GLUT_RIGHT_BUTTON: button = 1; break; default: abort(); } switch ( state ) { case GLUT_DOWN: state = 1; break; case GLUT_UP: state = 0; break; default: abort(); } // fprintf(stderr, "_glut_Mouse(%d, %d, %d, %d)\n", button, state, x, y); _glut_mods(win); glwin_process_button(win, button, state, x, y); } static void _glut_Motion(int x, int y) { glwin_window *win = WIN; glwin_process_create(win); /* _glut_mods(win); */ // fprintf(stderr, "_glut_Motion(%d, %d)\n", x, y); glwin_process_motion(win, x, y); } static void _glut_Keyboard(unsigned char key, int x, int y) { glwin_window *win = WIN; glwin_process_create(win); key = _glut_to_vk(key); glwin_process_key_press(win, key); _glut_mods(win); glwin_process_key(win, key, 1); } static void _glut_KeyboardUp(unsigned char key, int x, int y) { glwin_window *win = WIN; glwin_process_create(win); _glut_mods(win); key = _glut_to_vk(key); glwin_process_key(win, key, 0); } static void _glut_Idle() { glwin_window *win = WIN; glwin_process_create(win); glwin_process_idle(win); } glwin_window *glwin_create(glwin_desc *desc, void *data) { glwin_window *win; win = _glut_create(desc, data); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowPosition(win->winX, win->winY); glutInitWindowSize(win->winWidth, win->winHeight); glutCreateWindow(win->desc.winName); /* Create a glut window. */ win->_glut_win = glutGetWindow(); _glutWinAssert(win->_glut_win); /* Associate a glut win id with a glwin struct. */ assert(__glut_2_glwin[win->_glut_win] == 0); __glut_2_glwin[win->_glut_win] = win; fprintf(stderr, "%p->_glut_win = %d\n", win, win->_glut_win); /* Register glut callbacks. */ glutReshapeFunc(_glut_Reshape); glutDisplayFunc(_glut_Display); glutMouseFunc(_glut_Mouse); glutMotionFunc(_glut_Motion); glutKeyboardFunc(_glut_Keyboard); glutKeyboardUpFunc(_glut_KeyboardUp); /* Do create later. */ return win; } #endif #if _GLWIN_TOGL #define WIN (glwin_window *) Togl_GetClientData(togl) static glwin_window *togl_win = 0; static Togl *togl_created = 0; static void _togl_Create(Togl *togl) { glwin_window *win = togl_win; togl_created = togl; /* Do links. */ win->_togl_win = togl; Togl_SetClientData(togl, (ClientData) win); glwin_process_create(win); } static void _togl_Destroy(Togl *togl) { glwin_window *win = WIN; if ( win ) { glwin_process_destroy(win); } } static void _togl_Display(Togl *togl) { glwin_window *win = WIN; glwin_process_render(win); Togl_SwapBuffers(togl); } static void _togl_Reshape(Togl *togl) { glwin_window *win = WIN; glwin_process_size(win, Togl_Width(togl), Togl_Height(togl)); Togl_PostRedisplay(togl); } static void _togl_Timer(Togl *togl) { glwin_window *win = WIN; glwin_process_idle(win); } static Tcl_Interp *_tcl_interp; static int _tcl_argc; static char **_tcl_argv; int glwin_tk_options(void *clientData, void *interp, int argc, char **argv) { int i; if ( _tcl_argv ) { for ( i = 0; i < _tcl_argc; ++ i ) { free(_tcl_argv[i]); } free(_tcl_argv); } _tcl_interp = (Tcl_Interp*) interp; _tcl_argc = argc; _tcl_argv = malloc(sizeof(_tcl_argv[0]) * (_tcl_argc + 1)); for ( i = 0; i < _tcl_argc; ++ i ) { _tcl_argv[i] = strcpy(malloc(strlen(argv[i]) + 1), argv[i]); } _tcl_argv[i] = 0; return TCL_OK; } glwin_window *glwin_create(glwin_desc *desc, void *data) { glwin_window *win; Tcl_Interp *interp; struct Togl *togl; interp = desc->_tcl_interp = desc->_tcl_interp ? desc->_tcl_interp : _tcl_interp; assert(interp); /* Allocate win struct. */ win = _glwin_create(desc, data); /* Remember. */ togl_win = win; /* Set up callback before creating widget. */ Togl_CreateFunc(_togl_Create); Togl_DisplayFunc(_togl_Display); Togl_ReshapeFunc(_togl_Reshape); Togl_DestroyFunc(_togl_Destroy); Togl_TimerFunc(_togl_Timer); /* Lookup "togl" command and run with glwin_tk_options() args. */ { int error; Tcl_CmdInfo cmd; memset(&cmd, 0, sizeof(cmd)); Tcl_GetCommandInfo(interp, "togl", &cmd); if ( ! cmd.proc ) { /* Cannot find procedure!! */ _glwin_destroy(win); return 0; } if ( (error = (cmd.proc)(cmd.clientData, interp, _tcl_argc, _tcl_argv)) != TCL_OK ) { /* Something was wrong. */ _glwin_destroy(win); return 0; } assert(togl_created); togl = togl_created; togl_created = 0; } /* Just incase. */ Togl_SetCreateFunc(togl, _togl_Create); Togl_SetDisplayFunc(togl, _togl_Display); Togl_SetReshapeFunc(togl, _togl_Reshape); Togl_SetDestroyFunc(togl, _togl_Destroy); return win; } #endif /* _GLWIN_TOGL */ void glwin_close(glwin_window *win) { #if _GLWIN_WIN32 DestroyWindow(win->hWnd); return; #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); glutDestroyWindow(win->_glut_win); return; #endif #if _GLWIN_TOGL #define INTERP \ Togl *togl = win->_togl_win; \ Tcl_Interp *interp = Togl_Interp(togl); \ const char *ident = Togl_Ident(togl) { INTERP; char buf[128]; sprintf(buf, "after 20 destroy %s", ident); Tcl_Eval(interp, buf); return; } #endif abort(); } void glwin_destroy(glwin_window *win) { glwin_close(win); } void glwin_show(glwin_window *win) { #if _GLWIN_WIN32 ShowWindow(win->hWnd, SW_SHOW); return; #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); glutShowWindow(); return; #endif #if _GLWIN_TOGL { INTERP; Togl_MakeCurrent(togl); return; } #endif abort(); } void glwin_update(glwin_window *win) { #if _GLWIN_WIN32 UpdateWindow(win->hWnd); return; #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); glutPostRedisplay(); return; #endif #if _GLWIN_TOGL { INTERP; Togl_PostRedisplay(togl); return; } #endif abort(); } void glwin_redraw(glwin_window *win) { #if _GLWIN_WIN32 InvalidateRect(win->hWnd, NULL, FALSE); return; #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); glutPostRedisplay(); return; #endif #if _GLWIN_TOGL { INTERP; Togl_PostRedisplay(togl); return; } #endif abort(); } int _glwin_idle(glwin_window *win, int enable) { if ( enable ) { if ( ! win->idleEnabled ) { win->idleEnabled = enable; return 1; } } else { if ( win->idleEnabled ) { win->idleEnabled = enable; return 1; } } return 0; } void glwin_idle(glwin_window *win, int enable) { #if _GLWIN_WIN32 #ifndef glwin_TIMER_ID #define glwin_TIMER_ID 101 #endif if ( enable && _glwin_idle(win, enable) ) { SetTimer(win->hWnd, glwin_TIMER_ID, 1, NULL); } if ( ! enable && _glwin_idle(win, enable) ) { KillTimer(win->hWnd, glwin_TIMER_ID); } return; #undef glwin_TIMER_ID #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); if ( enable && _glwin_idle(win, enable) ) { glutIdleFunc(_glut_Idle); } if ( ! enable && _glwin_idle(win, enable) ) { glutIdleFunc(_glut_Idle); } return; #endif #if _GLWIN_TOGL _glwin_idle(win, enable); return; #endif abort(); } void glwin_quit(glwin_window *win, int exitcode) { #if _GLWIN_WIN32 PostQuitMessage(exitcode); return; #endif #if _GLWIN_GLUT exit(exitcode); return; #endif #if _GLWIN_TOGL exit(exitcode); return; #endif abort(); } void glwin_initmain(int *argcp, char ***argvp) { #if _GLWIN_WIN32 return; #endif #if _GLWIN_GLUT glutInit(argcp, *argvp); return; #endif #if _GLWIN_TOGL Togl_TimerFunc(_togl_Timer); return; #endif abort(); } int glwin_mainloop() { #if _GLWIN_WIN32 MSG msg; while( GetMessage(&msg, NULL, 0, 0) ) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; #endif #if _GLWIN_GLUT glutMainLoop(); return 0; #endif #if _GLWIN_TOGL return 0; #endif abort(); } gmv0.9/src/glwin/glwin.h0100744000175200017560000000670407267632144015562 0ustar stephensstepheng#ifndef _glwin_glwin_h #define _glwin_glwin_h #ifndef __rcs_id__ #ifndef __rcs_id_glwin_glwin_h__ #define __rcs_id_glwin_glwin_h__ static const char __rcs_id_glwin_glwin_h[] = "$Id: glwin.h,v 1.9 2001/04/19 18:40:51 stephens Exp $"; #endif #endif /* __rcs_id__ */ /************************************************************************/ #if defined(_WIN32) || defined(__CYGWIN32__) || defined(__CYGWIN__) #include /* wchar_t */ #include #define _GLWIN_WIN32 1 #else /* Layer on top of glut.h */ #define _GLWIN_GLUT 0 #define _GLWIN_TOGL 1 #endif #ifndef _GLWIN_WIN32 #define _GLWIN_WIN32 0 #endif #ifndef _GLWIN_GLUT #define _GLWIN_GLUT 0 #endif #ifndef _GLWIN_TOGL #define _GLWIN_TOGL 0 #endif /************************************************************************/ #include /************************************************************************/ #ifdef __cplusplus extern "C" { #endif #include "glwin.swig" glwin_window *glwin_create(glwin_desc *desc, void *data); int glwin_mainloop(); int glwin_tk_options(void *data, void *interp, int argc, char **argv); void glwin_initmain(int *argcp, char ***argvp); int glwin_main(int argc, char **argv); struct glwin_desc { void *data; /* User data */ const char *winName; /* Window name */ GLint winX, winY; /* Window position */ GLsizei winWidth, winHeight; /* Window size */ void *data_default; void *_tcl_interp; /*@ Tcl_Interp support. */ int _tcl_argc; char **_tcl_argv; /* Methods */ void (*Create)(glwin_window *win); void (*Destroy)(glwin_window *win); void (*Close)(glwin_window *win); void (*ChangeSize)(glwin_window *win, int w, int h); int (*Idle)(glwin_window *win); int (*Render)(glwin_window *win); /* Keyboard events. */ int (*KeyPress)(glwin_window *win, int key); int (*KeyDown)(glwin_window *win, int key); int (*KeyUp)(glwin_window *win, int key); /* Mouse events. */ int (*MouseDown)(glwin_window *win, int x, int y, int button, int count); int (*MouseUp)(glwin_window *win, int x, int y, int button, int count); int (*MouseMove)(glwin_window *win, int x, int y); int (*MouseDrag)(glwin_window *win, int x, int y); int (*MouseZ)(glwin_window *win, int x, int y, double dz); }; struct glwin_window { void *data; /* User data */ GLint winX, winY; /* Current window pos */ GLsizei winWidth, winHeight; /* Current window size */ GLfloat viewWidth, viewHeight; /* View port info */ glwin_desc desc; /* Creation parameters */ /* Current key states. */ unsigned char keyState[256]; int nKeysDown; int nKeysDownPrev; /* Current button states. */ unsigned char buttonState[4]; unsigned char buttonCount[4]; /* 1 = single click, 2 = double click, ... */ int buttonDownX[4]; int buttonDownY[4]; int nButtonsDown; int nButtonsDownPrev; /* Stuff your not supposed to know about */ short created; short idleEnabled; #if _GLWIN_TOGL struct Togl *_togl_win; int _x_auto_repeat_mode; #endif #if _GLWIN_GLUT /* glut support. */ int _glut_win; #endif #if _GLWIN_WIN32 /* Win32 support. */ HINSTANCE hInstance; /* The application instance */ HWND hWnd; /* The window we are attached to */ HPALETTE hPalette; /* The palette we are attached to */ HGLRC hRC; /* Permenant Rendering context */ HDC hDC; /* Private GDI Device context */ #endif }; #ifdef __cplusplus }; #endif #endif gmv0.9/src/glwin/mak_gen/0040755000175200017560000000000007262507245015663 5ustar stephensstephenggmv0.9/src/glwin/mak_gen/CYGWIN_98-4.10/0040755000175200017560000000000007250012532017546 5ustar stephensstephenggmv0.9/src/glwin/mak_gen/CYGWIN_98-4.10/od/0040755000175200017560000000000007250065471020162 5ustar stephensstephenggmv0.9/src/glwin/mak_gen/CYGWIN_98-4.10/od/build_vars.h0100744000175200017560000000035507254311346022465 0ustar stephensstepheng/* DO NOT MODIFY Generated by maks/pre.mak. */ #define BUILD_TARGET "CYGWIN_98-4.10" #define BUILD_DATE "Thu Mar 15 22:13:21 2001" #define BUILD_HOST "ION02" #define BUILD_USER "stephens" #define BUILD_ROOT "/home/stephens/ion/src/gmv" gmv0.9/src/glwin/mak_gen/CYGWIN_98-4.10/od/glwin.o0100744000175200017560000074000607250065642021467 0ustar stephensstephengLJQ.text< .data`\@.bss.stab<B.stabstrB$Id: glwin.c,v 1.3 2001/03/03 00:48:45 stephens Exp $v'$Id: glwin.h,v 1.2 1999/02/19 09:25:36 stephensk Exp $o@UpVSEEP EEPj(EPEPE$u 1MɸUEPREEfEUfPMʺɈMM̺ˈ]MκʈUEvE;E|vEUэMˋ]M وLEUэM]ލfL fMExMME}f]f f]m]MmLEUэM͋]M وLEUэM]ލfL fMExMME}f]f f]m]MmLEUэMϋ]M وLEUэM]ލfL fMExMME}f]f f]m]MmLEUэDETEP EjEPEPEP EPUe[^]unknownsoftwarehardware - MCDhardware - ICDOpenGL implementation: %s glGetString(GL_VENDOR)%s = "%s" glGetString(GL_RENDERER)glGetString(GL_VERSION)glGetString(GL_EXTENSIONS)gluGetString(GLU_VERSION)gluGetString(GLU_EXTENSIONS)UXEUEPj(E PEPEă@EE%E}t}u E].v}t}t Efv}u }uEuEPhP R=h PhhP Rh PhhP Rh PhhP Rh PhhP Rh Ph hP Rh Ph'hP R]ÐUh EPEh EPEPU]USe EU}tZEE <uDEE EExLt#EU RURXLӃtlfEE <tEE E~ EExPt%EU RURXPӃt 1]]ÐUe EE ]UE]UE]USEU}EE <upEE EEU эM EU эM ExTtEU RURURURXTӃ[EE <tEE E~ EExXtEU RURURURXXӃ1]]Í'glwin_window: cannot attach HWND glwin_window: corrupted window struct WM_MOUSEWHEEL(%ld, dz = %g, x = %ld, y = %ld) WM_*BUTTON*(%ld, %ld, %ld, %ld): x = %d, y = %d & AUDSEEEЉUjEPE}u\=t3EEPjEPEUPp!hP RExpt+EPp;Ut hP R} u} uvEx|ExxEPxREP|REfxhuhEf@hEx4tEURX4ӃEx<t EUJQUJ QURX<ӃEx@tEURX@ӃE =m=wz= =w4w===7=4v==w>==w== ="e=%=w= ?=7v==rEP UB|EP|REEP|R UBxEPxREP|REP|RUBtEPEP|RnjEPVjEP|REPxR ExttEPtR Ex8tEURX8ӃEPj EEEE}E}EEx<tEURURURX<ӃEUP EUPEx@t/Efxjt%EURX@ӃjjEPovExDt5EURXDӃEP|R jEP)ExttOjEPtREP|REP|R EjjEPUvExttOE;EtGjEPtREP|REP|R EP|R 1ukvExHt#EURURXHӃu#7vjEPEPuvjEPEPuvEPEPjjEP EPEPjjEP EPEPjjEP EPEPjjEPt dEPEPjjEPT DEPEPjjEP4 $ExdtoE1҉E؉Um ]EPEPE$EPh P R EURURE$URXdӃ vEx\tEURURURX\ӃEt#Ex`tEURURURX`ӃPEPEPEPEPE PEPh` P R EPEPE PEP‰1]]glwin_windowU`WV=HHPHPEEĠ EEEEhjEEEHEEP fuH1svhEhjEPEU EUxEUJ$HEUJ(HEUJ,H EUJ0HEUB,XEUB0XEPlEEPPjjUBUzPUBUzPUB Uz PUBUzPhEPRHPjE}uEP1+vEUPpEPjEPUve^_]ÍvUEPpR ]UjEPpR]ÉUEPpR ]UjjEPpR]U} t(EfxjuEU fPjjjjeEPpR(EfxjtEU fPjjeEPpREU fPj]ÉUE P ]ÍvU(jjjEPu!EP EP ȋU]fooUEEEEEEPEP‰](%  d'd/^x!m /Tn*Th$$@ x$8MaJx"y7yTyk|}"8K_| *ASfq0rIbv < 5R 6h 7| 8 ; < @ E g U~ V Y c d h i j- kF l] mv n o p ~   + @ W o  vJ,--.?0R1f1|22334AB#B8BLBbBxBCCCCD DD0DEDZDnEEEKNNNO%O:OPObOxPYZ[\\b/cDdZlqmqrsst~)~A_t   $ <5S5k667788;;6<N<p=YYZZ[[7\M\m]]^^__``2L & & "!+E>a>>>>>*?? ? *@ Q@FAoAB5B]B3CQCyCXD'uD'D6E-_E-EE1E1FbG>G>GhHEHEH@IKcIKIIOIOJJVJVK[KYKYK0L_SL_LLdLd&MMiMiMNrNrOqOwOwO1P|YP|PPQKQQQQRSHST&TMTUVGV{[[[\\]R]x]]|a a afccce3e3ehShSiiZiZi1j^Tj^j lm2lmblm~m~m#pEpqpqqqrrr.sUss t+tWtQu~uuw>wpwww xxxxyyzzz{{{{|| #} R}%~ O~ ~  k  ׀-" Z" ( 8( mQ8 ~8 e? ? ˅I I U U Dۈ\ \ )a ‰a ^o o ‹Wx zڌ Z ~ ю 6 e0 Z  Tj֓#9[yݔ"Edޕ#GhÖ#Chח2Wxט@_!Ccǚ '<Tlś 6Vn$=`-_uĞܞ'?a{9!9C??ݠ&CKCzGoNNѢO_fĤg+chhi ۦss!@YT[g\|]^_Χ`abc=eSoר*qϪ?$T$tX.t.BB߰IӱIҲUUVGvbb״Ogyg k1kbnŶn4q]qMyry޸||7ܹNh,μ˾ <6Z<f9f(X &LS|Aq$9$i(::BBK/Kd@SbSS[[[ee;}}}0|@t!a=`.Qn2Jl4UoKnpEe-P4Pw]uHm J)Jv"=@@@GN4NXRRRYoY__@_[_x____eg~gxxF}}~~$~A8Y{xZzEc&Jyo E e    8     - + E   .Po  ? `%%,..;.Z7&7T==CCKKmSSSSIWhWWWWW&^^dd$lClmqqwwwwO{l{{{!".""""?#c##%%%y&&&]'~''(8(b((((()))J)l)))**M*q***** +D++ ,7,Y,|, -E-u---... /.////"0B0m00011112F2222363~33334\4444 %5 V5555636666H8%p8%88)9)A99-9-9p:4:4:);9I;9t;;=;=<=A<=g<<A<A=A4=AZ=A~=A==E>EL>?Y @Y8@AkAkA"BnBBnmBnBnBnBnBn Cn0CnRCnuCnCnCnCnCnDn4DnYDnDDrDrEr;Er\Er}ErErErEr Fr)FrQFrzFrFrFrFrGG|G| H|+HIIIjJJJJ(KIKvKKK L.NMNwNNPPQ)QQQR:RaRaSSSTTTUUU.VMVxVVV.WFWjWC[ i[ [ [_B_B_B`w`G`G`_aP|abY+bdudu&euQee{e{emfffffiiiillllLmpmmmfnnnn7oWooopBpppqqqq8rSrzrrs/sssst1tZtu(uXuuw x Gx qx x x y 5y jy y y y z @z qz z z z { *{ G{ e{ { { { { | (| Q| q| | | | } 7} S} t} } } } ~ 4~ S~ ~~ ~ ~~=>9?f@ABC DQEFGHI?J`KLMNO#PDQtRׂS?XVXx׃]?a^aoo0sOwwB{f{g1[DƊNi=i<k2a+W:\Ky:e(@ܓWp  * S qǘI%h%%›556>MFnFGɝkPPQޞYYY ]ebˠccc'cGcgc+kGkolxxx.Z}ݥ'Huۧ)ܨqŪʮد ղS s   )k  $ S  ] y  ķ  " " ޸" ¹- - ۺ8 8 /ջ? ? ? <D D D L нL L 'ȾT T T /U HZ ȿZ Z y_ _ _ h h h q q q $ju u + + + , 3, ], |- - . / / 6/ X0 x0 1 1 2 2 B3 `3 4 4 5 5 &6 F6 q6 4eA|#De9[} B0Nw(Dk8_fyghijk &_gGg(g6Y"P0OyQMs667 768U899::#@#V))w//~~::.??hDDOO3PZwZ_H_ddUef$jJj{nn+Qoupqrs!Pv-]$A`F+   2,m,BB X,XV]]Ab\br-rW,6\Kf 1 Y w     & @ e    p  # * 0   2On]vHe*Nj~0H|r3[y&Im7 )Qq-JqLiJ f    !@!a!-"K"s"""""##F#l####$*$R${$$$$%3%O%<&\&&&'''((#(#(#()*)*)*)**+5 +5<+5Y++;+N,@q,,D,D-W-Hx-H-a.Q}.Q.Q.~/Z/Z/Z/0[-0\V0z0]0^0k1f1f1f1y2n2n2n244%5E537Q7z779999;<0<S<*=P===>>>>?@2@[@@@8AkAABJB}BBB#CTCCCC'DfDDDE+EWEEEEF'H CH jH HJ:J:J:K|K@K@K@K MO(MOPMOoMPMQMMRMSNT0NOfOf Pf)PgRPPnPnQn7Qo`QQrQrQrRRyRy Sy.SSS"TGTTTTU\U~UUUDVhVVV$WGWvWWX/XXXXYYY Z1ZZZ![I[[[[\\\\\F]i]]] ^.^\^^^^!_F____ `h```.aSaaaabMbtbbb%cOcccd*ddeJete9fafff gIg}gg?ieiiijjj kk llCfP|?I4[( H s 'Rt4[B_ +Ux<`8U}&Pq&Ik /Q~>r+Z012345627I8`9v:;<=>@GI1bGu    ?2V4j-$GDDDD #D$6D%?D(HD+XD.xD/D4D5D6D9D;D<D?`D@DCDDDG`D9tDK|DNDODRDUDVDVScp$$[DZZ D[D\D` Dd Dj Do)Dq4Ds@DtGDuLDwXDx_DydD{pD~wDwDDDDDDD1D_DDDD\%`6aKb we&$q$DDDDD7D>D>& >$D$H DDDD D&D8DGDPDYDuD|DDDDDDDDD$$8 DDD D$$&$\>DDD$J$pgDDD$s$ DDDD#D5DDDMDgDDD D D DDDDDD$$"   !D"D#D%D&D-D..D/4D0=D1ED2OD3dD4mD5pD6D;D<D=DADBDDDG DHDJDK'DM9DNBDPbDQkDW}DZD\D]D^D_D` Db#Dc9Dd9Dg@DiQDjeDkwDlDnDoDrDtDuDzD|D}DDDDDDDD"D+D+D0DCDUDhDpDyDDDDDDDDDD D DD%D@DRDdDlDtD}DDDDDDDDDDDD3D8DSDXDsDxDDDDDDDD+D0D0D8DAD[DgDpDDDDDDDD #+%3&;Z9MzVz+_ j0$t$ DDDDDD D"6D#=D$DD%KD&RD'ZD(aD+xD-D.D0D1D2D4D6D7D9D:D;D< D=D>"D?.D@:DAFDCRDEZDVDXDYDZD]D_ DaDb%Db%&H%$1$edDeDfDg$$jiDjDkDl$#$o8nDoDpDq$D$t$YsDtDuDv$ e$yDxxx DyD}D~ DD D2D4D>DHD\Df$j$ DDD$$DDDD D/D>D@DGDGG$L$ -DDDDD&D?D?=I?$Fj(~ dbglwin.c/home/stephens/ion/src/glwin/glwin.cint:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_glwin_glwin_c:S(0,20)=ar(0,1);0;53;(0,2)glwin.h__rcs_id_glwin_glwin_h:S(1,1)=ar(0,1);0;54;(0,2)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hptrdiff_t:t(2,1)=(0,1)size_t:t(2,2)=(0,4)wchar_t:t(2,3)=(0,9)wint_t:t(2,4)=(0,4)/usr/include/w32api/windows.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(4,1)=(4,2)=*(0,19)va_list:t(4,3)=(4,1)/usr/include/w32api/windef.hDWORD:t(5,1)=(0,5)WINBOOL:t(5,2)=(0,1)PWINBOOL:t(5,3)=(5,4)=*(0,1)LPWINBOOL:t(5,5)=(5,4)BOOL:t(5,6)=(5,2)PBOOL:t(5,7)=(5,8)=*(5,6)LPBOOL:t(5,9)=(5,8)BYTE:t(5,10)=(0,11)WORD:t(5,11)=(0,9)FLOAT:t(5,12)=(0,12)PFLOAT:t(5,13)=(5,14)=*(5,12)PBYTE:t(5,15)=(5,16)=*(5,10)LPBYTE:t(5,17)=(5,16)PINT:t(5,18)=(5,4)LPINT:t(5,19)=(5,4)PWORD:t(5,20)=(5,21)=*(5,11)LPWORD:t(5,22)=(5,21)LPLONG:t(5,23)=(5,24)=*(0,3)PDWORD:t(5,25)=(5,26)=*(5,1)LPDWORD:t(5,27)=(5,26)PVOID:t(5,28)=(4,2)LPVOID:t(5,29)=(4,2)PCVOID:t(5,30)=(5,31)=*(0,19)LPCVOID:t(5,32)=(5,31)INT:t(5,33)=(0,1)UINT:t(5,34)=(0,4)PUINT:t(5,35)=(5,36)=*(0,4)LPUINT:t(5,37)=(5,36)/usr/include/w32api/winnt.h/usr/include/w32api/winerror.h/usr/include/string.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(10,1)=(0,1)__uint32_t:t(10,2)=(0,4)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/sys/types.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/machine/types.hu_char:t(15,1)=(0,11)u_short:t(15,2)=(0,9)u_int:t(15,3)=(0,4)u_long:t(15,4)=(0,5)ushort:t(15,5)=(0,9)uint:t(15,6)=(0,4)clock_t:t(15,7)=(0,5)time_t:t(15,8)=(0,3)timespec:T(15,9)=s8tv_sec:(15,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(15,10)=s16it_interval:(15,9),0,64;it_value:(15,9),64,64;;daddr_t:t(15,11)=(0,3)caddr_t:t(15,12)=(15,13)=*(0,2)ino_t:t(15,14)=(0,5)vm_offset_t:t(15,15)=(0,5)vm_size_t:t(15,16)=(0,5)int8_t:t(15,17)=(0,2)u_int8_t:t(15,18)=(0,11)int16_t:t(15,19)=(0,8)u_int16_t:t(15,20)=(0,9)int32_t:t(15,21)=(0,1)u_int32_t:t(15,22)=(0,4)int64_t:t(15,23)=(0,6)u_int64_t:t(15,24)=(0,7)register_t:t(15,25)=(15,21)dev_t:t(15,26)=(0,8)off_t:t(15,27)=(0,3)uid_t:t(15,28)=(0,9)gid_t:t(15,29)=(0,9)pid_t:t(15,30)=(0,1)key_t:t(15,31)=(0,3)ssize_t:t(15,32)=(0,3)addr_t:t(15,33)=(15,13)mode_t:t(15,34)=(0,1)nlink_t:t(15,35)=(0,9)fd_mask:t(15,36)=(0,3)_types_fd_set:T(15,37)=s8fds_bits:(15,38)=ar(0,1);0;1;(15,36),0,64;;_types_fd_set:t(15,39)=(15,37)tm:T(12,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(11,1)=(10,2)_glue:T(11,2)=s12_next:(11,3)=*(11,2),0,32;_niobs:(0,1),32,32;_iobs:(11,4)=*(11,5)=xs__sFILE:,64,32;;_Bigint:T(11,6)=s24_next:(11,7)=*(11,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(11,8)=ar(0,1);0;0;(11,1),160,32;;_atexit:T(11,9)=s136_next:(11,10)=*(11,9),0,32;_ind:(0,1),32,32;_fns:(11,11)=ar(0,1);0;31;(11,12)=*(11,13)=f(0,19),64,1024;;__sbuf:T(11,14)=s8_base:(11,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(11,16)=(0,3)__sFILE:T(11,5)=s88_p:(11,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(11,14),128,64;_lbfsize:(0,1),192,32;_cookie:(4,2),224,32;_read:(11,17)=*(11,18)=f(0,1),256,32;_write:(11,19)=*(11,20)=f(0,1),288,32;_seek:(11,21)=*(11,22)=f(11,16),320,32;_close:(11,23)=*(11,24)=f(0,1),352,32;_ub:(11,14),384,64;_up:(11,15),448,32;_ur:(0,1),480,32;_ubuf:(11,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(11,26)=ar(0,1);0;0;(0,11),536,8;_lb:(11,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(11,27)=*(11,28)=xs_reent:,672,32;;_reent:T(11,28)=s752_errno:(0,1),0,32;_stdin:(11,4),32,32;_stdout:(11,4),64,32;_stderr:(11,4),96,32;_inc:(0,1),128,32;_emergency:(11,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(11,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(11,31)=*(11,32)=f(0,19),480,32;_result:(11,7),512,32;_result_k:(0,1),544,32;_p5s:(11,7),576,32;_freelist:(11,33)=*(11,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(15,13),672,32;_new:(11,34)=u240_reent:(11,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(15,13),32,32;_asctime_buf:(11,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(12,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(11,37)=s240_nextf:(11,38)=ar(0,1);0;29;(11,15),0,960;_nmalloc:(11,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(11,10),2624,32;_atexit0:(11,9),2656,1088;_sig_func:(11,40)=*(11,41)=*(11,42)=f(0,19),3744,32;__sglue:(11,2),3776,96;__sf:(11,43)=ar(0,1);0;2;(11,5),3872,2112;;/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hCHAR:t(6,1)=(0,2)SHORT:t(6,2)=(0,8)LONG:t(6,3)=(0,3)CCHAR:t(6,4)=(6,1)UCHAR:t(6,5)=(0,11)PUCHAR:t(6,6)=(11,15)USHORT:t(6,7)=(0,9)PUSHORT:t(6,8)=(6,9)=*(0,9)ULONG:t(6,10)=(0,5)PULONG:t(6,11)=(6,12)=*(0,5)PSZ:t(6,13)=(15,13)WCHAR:t(6,14)=(2,3)PWCHAR:t(6,15)=(6,16)=*(6,14)LPWCH:t(6,17)=(6,16)PWCH:t(6,18)=(6,16)NWPSTR:t(6,19)=(6,16)LPWSTR:t(6,20)=(6,16)PWSTR:t(6,21)=(6,16)LPCWCH:t(6,22)=(6,23)=*(6,14)PCWCH:t(6,24)=(6,23)LPCWSTR:t(6,25)=(6,23)PCWSTR:t(6,26)=(6,23)PCHAR:t(6,27)=(6,28)=*(6,1)LPCH:t(6,29)=(6,28)PCH:t(6,30)=(6,28)NPSTR:t(6,31)=(6,28)LPSTR:t(6,32)=(6,28)PSTR:t(6,33)=(6,28)LPCCH:t(6,34)=(6,35)=*(6,1)PCSTR:t(6,36)=(6,35)LPCSTR:t(6,37)=(6,35)TCHAR:t(6,38)=(6,1)TBYTE:t(6,39)=(6,38)PTCH:t(6,40)=(6,41)=*(6,38)PTBYTE:t(6,42)=(6,41)LPTCH:t(6,43)=(6,41)PTSTR:t(6,44)=(6,41)LPTSTR:t(6,45)=(6,41)LP:t(6,46)=(6,41)PTCHAR:t(6,47)=(6,41)LPCTSTR:t(6,48)=(6,49)=*(6,38)PSHORT:t(6,50)=(6,51)=*(6,2)PLONG:t(6,52)=(6,53)=*(6,3)HANDLE:t(6,54)=(4,2)PHANDLE:t(6,55)=(6,56)=*(6,54)LPHANDLE:t(6,57)=(6,56)LCID:t(6,58)=(5,1)PLCID:t(6,59)=(5,25)LANGID:t(6,60)=(5,11)LONGLONG:t(6,61)=(0,6)DWORDLONG:t(6,62)=(0,7)PLONGLONG:t(6,63)=(6,64)=*(6,61)PDWORDLONG:t(6,65)=(6,66)=*(6,62)ULONGLONG:t(6,67)=(6,62)PULONGLONG:t(6,68)=(6,66)USN:t(6,69)=(6,61)BOOLEAN:t(6,70)=(5,10)PBOOLEAN:t(6,71)=(5,16)/usr/include/w32api/basetsd.hLONG32:t(20,1)=(0,1)PLONG32:t(20,2)=(5,4)INT32:t(20,3)=(0,1)PINT32:t(20,4)=(5,4)ULONG32:t(20,5)=(0,4)PULONG32:t(20,6)=(5,36)DWORD32:t(20,7)=(0,4)PDWORD32:t(20,8)=(5,36)UINT32:t(20,9)=(0,4)PUINT32:t(20,10)=(5,36)INT_PTR:t(20,11)=(0,1)PINT_PTR:t(20,12)=(5,4)UINT_PTR:t(20,13)=(0,4)PUINT_PTR:t(20,14)=(5,36)LONG_PTR:t(20,15)=(0,3)PLONG_PTR:t(20,16)=(5,24)ULONG_PTR:t(20,17)=(0,5)PULONG_PTR:t(20,18)=(6,12)UHALF_PTR:t(20,19)=(0,9)PUHALF_PTR:t(20,20)=(6,9)HALF_PTR:t(20,21)=(0,8)PHALF_PTR:t(20,22)=(20,23)=*(0,8)HANDLE_PTR:t(20,24)=(0,5)SIZE_T:t(20,25)=(20,17)PSIZE_T:t(20,26)=(20,27)=*(20,17)SSIZE_T:t(20,28)=(20,15)PSSIZE_T:t(20,29)=(20,30)=*(20,15)DWORD_PTR:t(20,31)=(20,17)PDWORD_PTR:t(20,32)=(20,27)LONG64:t(20,33)=(0,6)PLONG64:t(20,34)=(20,35)=*(0,6)INT64:t(20,36)=(0,6)PINT64:t(20,37)=(20,35)ULONG64:t(20,38)=(0,7)PULONG64:t(20,39)=(20,40)=*(0,7)DWORD64:t(20,41)=(0,7)PDWORD64:t(20,42)=(20,40)UINT64:t(20,43)=(0,7)PUINT64:t(20,44)=(20,40)ACCESS_MASK:t(6,72)=(5,1)_GUID:T(6,73)=s16Data1:(0,5),0,32;Data2:(0,9),32,16;Data3:(0,9),48,16;Data4:(6,74)=ar(0,1);0;7;(0,11),64,64;;GUID:t(6,75)=(6,73)REFGUID:t(6,76)=(6,77)=*(6,73)LPGUID:t(6,78)=(6,77)_GENERIC_MAPPING:T(6,79)=s16GenericRead:(6,72),0,32;GenericWrite:(6,72),32,32;GenericExecute:(6,72),64,32;GenericAll:(6,72),96,32;;GENERIC_MAPPING:t(6,80)=(6,79)PGENERIC_MAPPING:t(6,81)=(6,82)=*(6,79)_ACE_HEADER:T(6,83)=s4AceType:(5,10),0,8;AceFlags:(5,10),8,8;AceSize:(5,11),16,16;;ACE_HEADER:t(6,84)=(6,83)_ACCESS_ALLOWED_ACE:T(6,85)=s12Header:(6,84),0,32;Mask:(6,72),32,32;SidStart:(5,1),64,32;;ACCESS_ALLOWED_ACE:t(6,86)=(6,85)_ACCESS_DENIED_ACE:T(6,87)=s12Header:(6,84),0,32;Mask:(6,72),32,32;SidStart:(5,1),64,32;;ACCESS_DENIED_ACE:t(6,88)=(6,87)_SYSTEM_AUDIT_ACE:T(6,89)=s12Header:(6,84),0,32;Mask:(6,72),32,32;SidStart:(5,1),64,32;;SYSTEM_AUDIT_ACE:t(6,90)=(6,89)PSYSTEM_AUDIT_ACE:t(6,91)=(6,92)=*(6,90)_SYSTEM_ALARM_ACE:T(6,93)=s12Header:(6,84),0,32;Mask:(6,72),32,32;SidStart:(5,1),64,32;;SYSTEM_ALARM_ACE:t(6,94)=(6,93)PSYSTEM_ALARM_ACE:t(6,95)=(6,96)=*(6,93)_ACCESS_ALLOWED_OBJECT_ACE:T(6,97)=s48Header:(6,84),0,32;Mask:(6,72),32,32;Flags:(5,1),64,32;ObjectType:(6,75),96,128;InheritedObjectType:(6,75),224,128;SidStart:(5,1),352,32;;ACCESS_ALLOWED_OBJECT_ACE:t(6,98)=(6,97)PACCESS_ALLOWED_OBJECT_ACE:t(6,99)=(6,100)=*(6,97)_ACCESS_DENIED_OBJECT_ACE:T(6,101)=s48Header:(6,84),0,32;Mask:(6,72),32,32;Flags:(5,1),64,32;ObjectType:(6,75),96,128;InheritedObjectType:(6,75),224,128;SidStart:(5,1),352,32;;ACCESS_DENIED_OBJECT_ACE:t(6,102)=(6,101)PACCESS_DENIED_OBJECT_ACE:t(6,103)=(6,104)=*(6,101)_SYSTEM_AUDIT_OBJECT_ACE:T(6,105)=s48Header:(6,84),0,32;Mask:(6,72),32,32;Flags:(5,1),64,32;ObjectType:(6,75),96,128;InheritedObjectType:(6,75),224,128;SidStart:(5,1),352,32;;SYSTEM_AUDIT_OBJECT_ACE:t(6,106)=(6,105)PSYSTEM_AUDIT_OBJECT_ACE:t(6,107)=(6,108)=*(6,105)_SYSTEM_ALARM_OBJECT_ACE:T(6,109)=s48Header:(6,84),0,32;Mask:(6,72),32,32;Flags:(5,1),64,32;ObjectType:(6,75),96,128;InheritedObjectType:(6,75),224,128;SidStart:(5,1),352,32;;SYSTEM_ALARM_OBJECT_ACE:t(6,110)=(6,109)PSYSTEM_ALARM_OBJECT_ACE:t(6,111)=(6,112)=*(6,109)_ACL:T(6,113)=s8AclRevision:(5,10),0,8;Sbz1:(5,10),8,8;AclSize:(5,11),16,16;AceCount:(5,11),32,16;Sbz2:(5,11),48,16;;ACL:t(6,114)=(6,113)PACL:t(6,115)=(6,116)=*(6,113)_ACL_REVISION_INFORMATION:T(6,117)=s4AclRevision:(5,1),0,32;;ACL_REVISION_INFORMATION:t(6,118)=(6,117)_ACL_SIZE_INFORMATION:T(6,119)=s12AceCount:(5,1),0,32;AclBytesInUse:(5,1),32,32;AclBytesFree:(5,1),64,32;;ACL_SIZE_INFORMATION:t(6,120)=(6,119)_FLOATING_SAVE_AREA:T(6,121)=s112ControlWord:(5,1),0,32;StatusWord:(5,1),32,32;TagWord:(5,1),64,32;ErrorOffset:(5,1),96,32;ErrorSelector:(5,1),128,32;DataOffset:(5,1),160,32;DataSelector:(5,1),192,32;RegisterArea:(6,122)=ar(0,1);0;79;(5,10),224,640;Cr0NpxState:(5,1),864,32;;FLOATING_SAVE_AREA:t(6,123)=(6,121)_CONTEXT:T(6,124)=s204ContextFlags:(5,1),0,32;Dr0:(5,1),32,32;Dr1:(5,1),64,32;Dr2:(5,1),96,32;Dr3:(5,1),128,32;Dr6:(5,1),160,32;Dr7:(5,1),192,32;FloatSave:(6,123),224,896;SegGs:(5,1),1120,32;SegFs:(5,1),1152,32;SegEs:(5,1),1184,32;SegDs:(5,1),1216,32;Edi:(5,1),1248,32;Esi:(5,1),1280,32;Ebx:(5,1),1312,32;Edx:(5,1),1344,32;Ecx:(5,1),1376,32;Eax:(5,1),1408,32;Ebp:(5,1),1440,32;Eip:(5,1),1472,32;SegCs:(5,1),1504,32;EFlags:(5,1),1536,32;Esp:(5,1),1568,32;SegSs:(5,1),1600,32;;CONTEXT:t(6,125)=(6,124)PCONTEXT:t(6,126)=(6,127)=*(6,125)LPCONTEXT:t(6,128)=(6,127)_EXCEPTION_RECORD:T(6,129)=s80ExceptionCode:(5,1),0,32;ExceptionFlags:(5,1),32,32;ExceptionRecord:(6,130)=*(6,129),64,32;ExceptionAddress:(5,28),96,32;NumberParameters:(5,1),128,32;ExceptionInformation:(6,131)=ar(0,1);0;14;(5,1),160,480;;EXCEPTION_RECORD:t(6,132)=(6,129)PEXCEPTION_RECORD:t(6,133)=(6,130)_EXCEPTION_POINTERS:T(6,134)=s8ExceptionRecord:(6,133),0,32;ContextRecord:(6,126),32,32;;EXCEPTION_POINTERS:t(6,135)=(6,134)PEXCEPTION_POINTERS:t(6,136)=(6,137)=*(6,134)LPEXCEPTION_POINTERS:t(6,138)=(6,137)_LARGE_INTEGER:T(6,139)=u8:(6,140)=s8LowPart:(5,1),0,32;HighPart:(6,3),32,32;;,0,64;QuadPart:(6,61),0,64;;LARGE_INTEGER:t(6,141)=(6,139)PLARGE_INTEGER:t(6,142)=(6,143)=*(6,141)_ULARGE_INTEGER:T(6,144)=u8:(6,145)=s8LowPart:(5,1),0,32;HighPart:(5,1),32,32;;,0,64;QuadPart:(6,62),0,64;;ULARGE_INTEGER:t(6,146)=(6,144)PULARGE_INTEGER:t(6,147)=(6,148)=*(6,146)LUID:t(6,149)=(6,141)PLUID:t(6,150)=(6,143)_LUID_AND_ATTRIBUTES:T(6,151)=s12Luid:(6,149),0,64;Attributes:(5,1),64,32;;LUID_AND_ATTRIBUTES:t(6,152)=(6,151)LUID_AND_ATTRIBUTES_ARRAY:t(6,153)=(6,154)=ar(0,1);0;0;(6,152)PLUID_AND_ATTRIBUTES_ARRAY:t(6,155)=(6,156)=*(6,153)_PRIVILEGE_SET:T(6,157)=s20PrivilegeCount:(5,1),0,32;Control:(5,1),32,32;Privilege:(6,154),64,96;;PRIVILEGE_SET:t(6,158)=(6,157)PPRIVILEGE_SET:t(6,159)=(6,160)=*(6,157)_SECURITY_ATTRIBUTES:T(6,161)=s12nLength:(5,1),0,32;lpSecurityDescriptor:(5,29),32,32;bInheritHandle:(5,6),64,32;;SECURITY_ATTRIBUTES:t(6,162)=(6,161)PSECURITY_ATTRIBUTES:t(6,163)=(6,164)=*(6,161)LPSECURITY_ATTRIBUTES:t(6,165)=(6,164)_SECURITY_IMPERSONATION_LEVEL:T(6,166)=eSecurityAnonymous:0,SecurityIdentification:1,SecurityImpersonation:2,SecurityDelegation:3,;SECURITY_IMPERSONATION_LEVEL:t(6,167)=(6,166)SECURITY_CONTEXT_TRACKING_MODE:t(6,168)=(6,70)PSECURITY_CONTEXT_TRACKING_MODE:t(6,169)=(6,170)=*(6,70)_SECURITY_QUALITY_OF_SERVICE:T(6,171)=s12Length:(5,1),0,32;ImpersonationLevel:(6,167),32,32;ContextTrackingMode:(6,168),64,8;EffectiveOnly:(6,70),72,8;;SECURITY_QUALITY_OF_SERVICE:t(6,172)=(6,171)PSECURITY_QUALITY_OF_SERVICE:t(6,173)=(6,174)=*(6,171)PACCESS_TOKEN:t(6,175)=(5,28)_SE_IMPERSONATION_STATE:T(6,176)=s12Token:(6,175),0,32;CopyOnOpen:(6,70),32,8;EffectiveOnly:(6,70),40,8;Level:(6,167),64,32;;SE_IMPERSONATION_STATE:t(6,177)=(6,176)PSE_IMPERSONATION_STATE:t(6,178)=(6,179)=*(6,176)_SID_IDENTIFIER_AUTHORITY:T(6,180)=s6Value:(6,181)=ar(0,1);0;5;(5,10),0,48;;SID_IDENTIFIER_AUTHORITY:t(6,182)=(6,180)PSID_IDENTIFIER_AUTHORITY:t(6,183)=(6,184)=*(6,180)LPSID_IDENTIFIER_AUTHORITY:t(6,185)=(6,184)PSID:t(6,186)=(5,28)_SID:T(6,187)=s12Revision:(5,10),0,8;SubAuthorityCount:(5,10),8,8;IdentifierAuthority:(6,182),16,48;SubAuthority:(6,188)=ar(0,1);0;0;(5,1),64,32;;SID:t(6,189)=(6,187)PISID:t(6,190)=(6,191)=*(6,187)_SID_AND_ATTRIBUTES:T(6,192)=s8Sid:(6,186),0,32;Attributes:(5,1),32,32;;SID_AND_ATTRIBUTES:t(6,193)=(6,192)SID_AND_ATTRIBUTES_ARRAY:t(6,194)=(6,195)=ar(0,1);0;0;(6,193)PSID_AND_ATTRIBUTES_ARRAY:t(6,196)=(6,197)=*(6,194)_TOKEN_SOURCE:T(6,198)=s16SourceName:(6,199)=ar(0,1);0;7;(6,1),0,64;SourceIdentifier:(6,149),64,64;;TOKEN_SOURCE:t(6,200)=(6,198)PTOKEN_SOURCE:t(6,201)=(6,202)=*(6,198)_TOKEN_CONTROL:T(6,203)=s40TokenId:(6,149),0,64;AuthenticationId:(6,149),64,64;ModifiedId:(6,149),128,64;TokenSource:(6,200),192,128;;TOKEN_CONTROL:t(6,204)=(6,203)PTOKEN_CONTROL:t(6,205)=(6,206)=*(6,203)_TOKEN_DEFAULT_DACL:T(6,207)=s4DefaultDacl:(6,115),0,32;;TOKEN_DEFAULT_DACL:t(6,208)=(6,207)_TOKEN_GROUPS:T(6,209)=s12GroupCount:(5,1),0,32;Groups:(6,195),32,64;;TOKEN_GROUPS:t(6,210)=(6,209)PTOKEN_GROUPS:t(6,211)=(6,212)=*(6,209)LPTOKEN_GROUPS:t(6,213)=(6,212)_TOKEN_OWNER:T(6,214)=s4Owner:(6,186),0,32;;TOKEN_OWNER:t(6,215)=(6,214)_TOKEN_PRIMARY_GROUP:T(6,216)=s4PrimaryGroup:(6,186),0,32;;TOKEN_PRIMARY_GROUP:t(6,217)=(6,216)_TOKEN_PRIVILEGES:T(6,218)=s16PrivilegeCount:(5,1),0,32;Privileges:(6,154),32,96;;TOKEN_PRIVILEGES:t(6,219)=(6,218)PTOKEN_PRIVILEGES:t(6,220)=(6,221)=*(6,218)LPTOKEN_PRIVILEGES:t(6,222)=(6,221)tagTOKEN_TYPE:T(6,223)=eTokenPrimary:1,TokenImpersonation:2,;TOKEN_TYPE:t(6,224)=(6,223)_TOKEN_STATISTICS:T(6,225)=s56TokenId:(6,149),0,64;AuthenticationId:(6,149),64,64;ExpirationTime:(6,141),128,64;TokenType:(6,224),192,32;ImpersonationLevel:(6,167),224,32;DynamicCharged:(5,1),256,32;DynamicAvailable:(5,1),288,32;GroupCount:(5,1),320,32;PrivilegeCount:(5,1),352,32;ModifiedId:(6,149),384,64;;TOKEN_STATISTICS:t(6,226)=(6,225)_TOKEN_USER:T(6,227)=s8User:(6,193),0,64;;TOKEN_USER:t(6,228)=(6,227)PTOKEN_USER:t(6,229)=(6,230)=*(6,227)SECURITY_INFORMATION:t(6,231)=(5,1)PSECURITY_INFORMATION:t(6,232)=(5,26)SECURITY_DESCRIPTOR_CONTROL:t(6,233)=(5,11)PSECURITY_DESCRIPTOR_CONTROL:t(6,234)=(5,21)_SECURITY_DESCRIPTOR:T(6,235)=s20Revision:(5,10),0,8;Sbz1:(5,10),8,8;Control:(6,233),16,16;Owner:(6,186),32,32;Group:(6,186),64,32;Sacl:(6,115),96,32;Dacl:(6,115),128,32;;SECURITY_DESCRIPTOR:t(6,236)=(6,235)PSECURITY_DESCRIPTOR:t(6,237)=(6,238)=*(6,235)PISECURITY_DESCRIPTOR:t(6,239)=(6,238)_TOKEN_INFORMATION_CLASS:T(6,240)=eTokenUser:1,TokenGroups:2,TokenPrivileges:3,TokenOwner:4,TokenPrimaryGroup:5,TokenDefaultDacl:6,TokenSource:7,TokenType:8,TokenImpersonationLevel:9,TokenStatistics:10,TokenRestrictedSids:11,TokenSessionId:12,;TOKEN_INFORMATION_CLASS:t(6,241)=(6,240)_SID_NAME_USE:T(6,242)=eSidTypeUser:1,SidTypeGroup:2,SidTypeDomain:3,SidTypeAlias:4,SidTypeWellKnownGroup:5,SidTypeDeletedAccount:6,SidTypeInvalid:7,SidTypeUnknown:8,;SID_NAME_USE:t(6,243)=(6,242)PSID_NAME_USE:t(6,244)=(6,245)=*(6,242)_QUOTA_LIMITS:T(6,246)=s32PagedPoolLimit:(20,25),0,32;NonPagedPoolLimit:(20,25),32,32;MinimumWorkingSetSize:(20,25),64,32;MaximumWorkingSetSize:(20,25),96,32;PagefileLimit:(20,25),128,32;TimeLimit:(6,141),192,64;;QUOTA_LIMITS:t(6,247)=(6,246)PQUOTA_LIMITS:t(6,248)=(6,249)=*(6,246)_IO_COUNTERS:T(6,250)=s48ReadOperationCount:(6,67),0,64;WriteOperationCount:(6,67),64,64;OtherOperationCount:(6,67),128,64;ReadTransferCount:(6,67),192,64;WriteTransferCount:(6,67),256,64;OtherTransferCount:(6,67),320,64;;IO_COUNTERS:t(6,251)=(6,250)PIO_COUNTERS:t(6,252)=(6,253)=*(6,250)_FILE_NOTIFY_INFORMATION:T(6,254)=s16NextEntryOffset:(5,1),0,32;Action:(5,1),32,32;FileNameLength:(5,1),64,32;FileName:(6,255)=ar(0,1);0;0;(6,14),96,16;;FILE_NOTIFY_INFORMATION:t(6,256)=(6,254)PFILE_NOTIFY_INFORMATION:t(6,257)=(6,258)=*(6,254)_TAPE_ERASE:T(6,259)=s8Type:(5,1),0,32;Immediate:(6,70),32,8;;TAPE_ERASE:t(6,260)=(6,259)PTAPE_ERASE:t(6,261)=(6,262)=*(6,259)_TAPE_GET_DRIVE_PARAMETERS:T(6,263)=s32ECC:(6,70),0,8;Compression:(6,70),8,8;DataPadding:(6,70),16,8;ReportSetmarks:(6,70),24,8;DefaultBlockSize:(5,1),32,32;MaximumBlockSize:(5,1),64,32;MinimumBlockSize:(5,1),96,32;MaximumPartitionCount:(5,1),128,32;FeaturesLow:(5,1),160,32;FeaturesHigh:(5,1),192,32;EOTWarningZoneSize:(5,1),224,32;;TAPE_GET_DRIVE_PARAMETERS:t(6,264)=(6,263)PTAPE_GET_DRIVE_PARAMETERS:t(6,265)=(6,266)=*(6,263)_TAPE_GET_MEDIA_PARAMETERS:T(6,267)=s32Capacity:(6,141),0,64;Remaining:(6,141),64,64;BlockSize:(5,1),128,32;PartitionCount:(5,1),160,32;WriteProtected:(6,70),192,8;;TAPE_GET_MEDIA_PARAMETERS:t(6,268)=(6,267)PTAPE_GET_MEDIA_PARAMETERS:t(6,269)=(6,270)=*(6,267)_TAPE_GET_POSITION:T(6,271)=s16Type:(6,10),0,32;Partition:(6,10),32,32;OffsetLow:(6,10),64,32;OffsetHigh:(6,10),96,32;;TAPE_GET_POSITION:t(6,272)=(6,271)PTAPE_GET_POSITION:t(6,273)=(6,274)=*(6,271)_TAPE_PREPARE:T(6,275)=s8Operation:(5,1),0,32;Immediate:(6,70),32,8;;TAPE_PREPARE:t(6,276)=(6,275)PTAPE_PREPARE:t(6,277)=(6,278)=*(6,275)_TAPE_SET_DRIVE_PARAMETERS:T(6,279)=s8ECC:(6,70),0,8;Compression:(6,70),8,8;DataPadding:(6,70),16,8;ReportSetmarks:(6,70),24,8;EOTWarningZoneSize:(6,10),32,32;;TAPE_SET_DRIVE_PARAMETERS:t(6,280)=(6,279)PTAPE_SET_DRIVE_PARAMETERS:t(6,281)=(6,282)=*(6,279)_TAPE_SET_MEDIA_PARAMETERS:T(6,283)=s4BlockSize:(6,10),0,32;;TAPE_SET_MEDIA_PARAMETERS:t(6,284)=(6,283)PTAPE_SET_MEDIA_PARAMETERS:t(6,285)=(6,286)=*(6,283)_TAPE_SET_POSITION:T(6,287)=s24Method:(5,1),0,32;Partition:(5,1),32,32;Offset:(6,141),64,64;Immediate:(6,70),128,8;;TAPE_SET_POSITION:t(6,288)=(6,287)PTAPE_SET_POSITION:t(6,289)=(6,290)=*(6,287)_TAPE_WRITE_MARKS:T(6,291)=s12Type:(5,1),0,32;Count:(5,1),32,32;Immediate:(6,70),64,8;;TAPE_WRITE_MARKS:t(6,292)=(6,291)PTAPE_WRITE_MARKS:t(6,293)=(6,294)=*(6,291)_TAPE_CREATE_PARTITION:T(6,295)=s12Method:(5,1),0,32;Count:(5,1),32,32;Size:(5,1),64,32;;TAPE_CREATE_PARTITION:t(6,296)=(6,295)PTAPE_CREATE_PARTITION:t(6,297)=(6,298)=*(6,295)_MEMORY_BASIC_INFORMATION:T(6,299)=s28BaseAddress:(5,28),0,32;AllocationBase:(5,28),32,32;AllocationProtect:(5,1),64,32;RegionSize:(5,1),96,32;State:(5,1),128,32;Protect:(5,1),160,32;Type:(5,1),192,32;;MEMORY_BASIC_INFORMATION:t(6,300)=(6,299)PMEMORY_BASIC_INFORMATION:t(6,301)=(6,302)=*(6,299)_MESSAGE_RESOURCE_ENTRY:T(6,303)=s6Length:(5,11),0,16;Flags:(5,11),16,16;Text:(6,304)=ar(0,1);0;0;(5,10),32,8;;MESSAGE_RESOURCE_ENTRY:t(6,305)=(6,303)PMESSAGE_RESOURCE_ENTRY:t(6,306)=(6,307)=*(6,303)_MESSAGE_RESOURCE_BLOCK:T(6,308)=s12LowId:(5,1),0,32;HighId:(5,1),32,32;OffsetToEntries:(5,1),64,32;;MESSAGE_RESOURCE_BLOCK:t(6,309)=(6,308)PMESSAGE_RESOURCE_BLOCK:t(6,310)=(6,311)=*(6,308)_MESSAGE_RESOURCE_DATA:T(6,312)=s16NumberOfBlocks:(5,1),0,32;Blocks:(6,313)=ar(0,1);0;0;(6,309),32,96;;MESSAGE_RESOURCE_DATA:t(6,314)=(6,312)PMESSAGE_RESOURCE_DATA:t(6,315)=(6,316)=*(6,312)_LIST_ENTRY:T(6,317)=s8Flink:(6,318)=*(6,317),0,32;Blink:(6,318),32,32;;LIST_ENTRY:t(6,319)=(6,317)PLIST_ENTRY:t(6,320)=(6,318)_RTL_CRITICAL_SECTION_DEBUG:T(6,321)=s32Type:(5,11),0,16;CreatorBackTraceIndex:(5,11),16,16;CriticalSection:(6,322)=*(6,323)=xs_RTL_CRITICAL_SECTION:,32,32;ProcessLocksList:(6,319),64,64;EntryCount:(5,1),128,32;ContentionCount:(5,1),160,32;Spare:(6,324)=ar(0,1);0;1;(5,1),192,64;;RTL_CRITICAL_SECTION_DEBUG:t(6,325)=(6,321)PRTL_CRITICAL_SECTION_DEBUG:t(6,326)=(6,327)=*(6,321)_RTL_CRITICAL_SECTION:T(6,323)=s24DebugInfo:(6,326),0,32;LockCount:(6,3),32,32;RecursionCount:(6,3),64,32;OwningThread:(6,54),96,32;LockSemaphore:(6,54),128,32;Reserved:(5,1),160,32;;RTL_CRITICAL_SECTION:t(6,328)=(6,323)PRTL_CRITICAL_SECTION:t(6,329)=(6,322)_EVENTLOGRECORD:T(6,330)=s56Length:(5,1),0,32;Reserved:(5,1),32,32;RecordNumber:(5,1),64,32;TimeGenerated:(5,1),96,32;TimeWritten:(5,1),128,32;EventID:(5,1),160,32;EventType:(5,11),192,16;NumStrings:(5,11),208,16;EventCategory:(5,11),224,16;ReservedFlags:(5,11),240,16;ClosingRecordNumber:(5,1),256,32;StringOffset:(5,1),288,32;UserSidLength:(5,1),320,32;UserSidOffset:(5,1),352,32;DataLength:(5,1),384,32;DataOffset:(5,1),416,32;;EVENTLOGRECORD:t(6,331)=(6,330)PEVENTLOGRECORD:t(6,332)=(6,333)=*(6,330)_IMAGE_VXD_HEADER:T(6,334)=s196e32_magic:(5,11),0,16;e32_border:(5,10),16,8;e32_worder:(5,10),24,8;e32_level:(5,1),32,32;e32_cpu:(5,11),64,16;e32_os:(5,11),80,16;e32_ver:(5,1),96,32;e32_mflags:(5,1),128,32;e32_mpages:(5,1),160,32;e32_startobj:(5,1),192,32;e32_eip:(5,1),224,32;e32_stackobj:(5,1),256,32;e32_esp:(5,1),288,32;e32_pagesize:(5,1),320,32;e32_lastpagesize:(5,1),352,32;e32_fixupsize:(5,1),384,32;e32_fixupsum:(5,1),416,32;e32_ldrsize:(5,1),448,32;e32_ldrsum:(5,1),480,32;e32_objtab:(5,1),512,32;e32_objcnt:(5,1),544,32;e32_objmap:(5,1),576,32;e32_itermap:(5,1),608,32;e32_rsrctab:(5,1),640,32;e32_rsrccnt:(5,1),672,32;e32_restab:(5,1),704,32;e32_enttab:(5,1),736,32;e32_dirtab:(5,1),768,32;e32_dircnt:(5,1),800,32;e32_fpagetab:(5,1),832,32;e32_frectab:(5,1),864,32;e32_impmod:(5,1),896,32;e32_impmodcnt:(5,1),928,32;e32_impproc:(5,1),960,32;e32_pagesum:(5,1),992,32;e32_datapage:(5,1),1024,32;e32_preload:(5,1),1056,32;e32_nrestab:(5,1),1088,32;e32_cbnrestab:(5,1),1120,32;e32_nressum:(5,1),1152,32;e32_autodata:(5,1),1184,32;e32_debuginfo:(5,1),1216,32;e32_debuglen:(5,1),1248,32;e32_instpreload:(5,1),1280,32;e32_instdemand:(5,1),1312,32;e32_heapsize:(5,1),1344,32;e32_res3:(6,335)=ar(0,1);0;11;(5,10),1376,96;e32_winresoff:(5,1),1472,32;e32_winreslen:(5,1),1504,32;e32_devid:(5,11),1536,16;e32_ddkver:(5,11),1552,16;;IMAGE_VXD_HEADER:t(6,336)=(6,334)PIMAGE_VXD_HEADER:t(6,337)=(6,338)=*(6,334)_IMAGE_FILE_HEADER:T(6,339)=s20Machine:(5,11),0,16;NumberOfSections:(5,11),16,16;TimeDateStamp:(5,1),32,32;PointerToSymbolTable:(5,1),64,32;NumberOfSymbols:(5,1),96,32;SizeOfOptionalHeader:(5,11),128,16;Characteristics:(5,11),144,16;;IMAGE_FILE_HEADER:t(6,340)=(6,339)PIMAGE_FILE_HEADER:t(6,341)=(6,342)=*(6,339)_IMAGE_DATA_DIRECTORY:T(6,343)=s8VirtualAddress:(5,1),0,32;Size:(5,1),32,32;;IMAGE_DATA_DIRECTORY:t(6,344)=(6,343)PIMAGE_DATA_DIRECTORY:t(6,345)=(6,346)=*(6,343)_IMAGE_OPTIONAL_HEADER:T(6,347)=s224Magic:(5,11),0,16;MajorLinkerVersion:(5,10),16,8;MinorLinkerVersion:(5,10),24,8;SizeOfCode:(5,1),32,32;SizeOfInitializedData:(5,1),64,32;SizeOfUninitializedData:(5,1),96,32;AddressOfEntryPoint:(5,1),128,32;BaseOfCode:(5,1),160,32;BaseOfData:(5,1),192,32;ImageBase:(5,1),224,32;SectionAlignment:(5,1),256,32;FileAlignment:(5,1),288,32;MajorOperatingSystemVersion:(5,11),320,16;MinorOperatingSystemVersion:(5,11),336,16;MajorImageVersion:(5,11),352,16;MinorImageVersion:(5,11),368,16;MajorSubsystemVersion:(5,11),384,16;MinorSubsystemVersion:(5,11),400,16;Reserved1:(5,1),416,32;SizeOfImage:(5,1),448,32;SizeOfHeaders:(5,1),480,32;CheckSum:(5,1),512,32;Subsystem:(5,11),544,16;DllCharacteristics:(5,11),560,16;SizeOfStackReserve:(5,1),576,32;SizeOfStackCommit:(5,1),608,32;SizeOfHeapReserve:(5,1),640,32;SizeOfHeapCommit:(5,1),672,32;LoaderFlags:(5,1),704,32;NumberOfRvaAndSizes:(5,1),736,32;DataDirectory:(6,348)=ar(0,1);0;15;(6,344),768,1024;;IMAGE_OPTIONAL_HEADER:t(6,349)=(6,347)PIMAGE_OPTIONAL_HEADER:t(6,350)=(6,351)=*(6,347)_IMAGE_ROM_OPTIONAL_HEADER:T(6,352)=s56Magic:(5,11),0,16;MajorLinkerVersion:(5,10),16,8;MinorLinkerVersion:(5,10),24,8;SizeOfCode:(5,1),32,32;SizeOfInitializedData:(5,1),64,32;SizeOfUninitializedData:(5,1),96,32;AddressOfEntryPoint:(5,1),128,32;BaseOfCode:(5,1),160,32;BaseOfData:(5,1),192,32;BaseOfBss:(5,1),224,32;GprMask:(5,1),256,32;CprMask:(6,353)=ar(0,1);0;3;(5,1),288,128;GpValue:(5,1),416,32;;IMAGE_ROM_OPTIONAL_HEADER:t(6,354)=(6,352)PIMAGE_ROM_OPTIONAL_HEADER:t(6,355)=(6,356)=*(6,352)_IMAGE_DOS_HEADER:T(6,357)=s64e_magic:(5,11),0,16;e_cblp:(5,11),16,16;e_cp:(5,11),32,16;e_crlc:(5,11),48,16;e_cparhdr:(5,11),64,16;e_minalloc:(5,11),80,16;e_maxalloc:(5,11),96,16;e_ss:(5,11),112,16;e_sp:(5,11),128,16;e_csum:(5,11),144,16;e_ip:(5,11),160,16;e_cs:(5,11),176,16;e_lfarlc:(5,11),192,16;e_ovno:(5,11),208,16;e_res:(6,358)=ar(0,1);0;3;(5,11),224,64;e_oemid:(5,11),288,16;e_oeminfo:(5,11),304,16;e_res2:(6,359)=ar(0,1);0;9;(5,11),320,160;e_lfanew:(6,3),480,32;;IMAGE_DOS_HEADER:t(6,360)=(6,357)PIMAGE_DOS_HEADER:t(6,361)=(6,362)=*(6,357)_IMAGE_OS2_HEADER:T(6,363)=s64ne_magic:(5,11),0,16;ne_ver:(6,1),16,8;ne_rev:(6,1),24,8;ne_enttab:(5,11),32,16;ne_cbenttab:(5,11),48,16;ne_crc:(6,3),64,32;ne_flags:(5,11),96,16;ne_autodata:(5,11),112,16;ne_heap:(5,11),128,16;ne_stack:(5,11),144,16;ne_csip:(6,3),160,32;ne_sssp:(6,3),192,32;ne_cseg:(5,11),224,16;ne_cmod:(5,11),240,16;ne_cbnrestab:(5,11),256,16;ne_segtab:(5,11),272,16;ne_rsrctab:(5,11),288,16;ne_restab:(5,11),304,16;ne_modtab:(5,11),320,16;ne_imptab:(5,11),336,16;ne_nrestab:(6,3),352,32;ne_cmovent:(5,11),384,16;ne_align:(5,11),400,16;ne_cres:(5,11),416,16;ne_exetyp:(5,10),432,8;ne_flagsothers:(5,10),440,8;ne_pretthunks:(5,11),448,16;ne_psegrefbytes:(5,11),464,16;ne_swaparea:(5,11),480,16;ne_expver:(5,11),496,16;;IMAGE_OS2_HEADER:t(6,364)=(6,363)PIMAGE_OS2_HEADER:t(6,365)=(6,366)=*(6,363)_IMAGE_NT_HEADERS:T(6,367)=s248Signature:(5,1),0,32;FileHeader:(6,340),32,160;OptionalHeader:(6,349),192,1792;;IMAGE_NT_HEADERS:t(6,368)=(6,367)PIMAGE_NT_HEADERS:t(6,369)=(6,370)=*(6,367)_IMAGE_ROM_HEADERS:T(6,371)=s76FileHeader:(6,340),0,160;OptionalHeader:(6,354),160,448;;IMAGE_ROM_HEADERS:t(6,372)=(6,371)PIMAGE_ROM_HEADERS:t(6,373)=(6,374)=*(6,371)_IMAGE_SECTION_HEADER:T(6,375)=s40Name:(6,376)=ar(0,1);0;7;(5,10),0,64;Misc:(6,377)=u4PhysicalAddress:(5,1),0,32;VirtualSize:(5,1),0,32;;,64,32;VirtualAddress:(5,1),96,32;SizeOfRawData:(5,1),128,32;PointerToRawData:(5,1),160,32;PointerToRelocations:(5,1),192,32;PointerToLinenumbers:(5,1),224,32;NumberOfRelocations:(5,11),256,16;NumberOfLinenumbers:(5,11),272,16;Characteristics:(5,1),288,32;;IMAGE_SECTION_HEADER:t(6,378)=(6,375)PIMAGE_SECTION_HEADER:t(6,379)=(6,380)=*(6,375)_IMAGE_SYMBOL:T(6,381)=s18N:(6,382)=u8ShortName:(6,376),0,64;Name:(6,383)=s8Short:(5,1),0,32;Long:(5,1),32,32;;,0,64;LongName:(6,384)=ar(0,1);0;1;(5,15),0,64;;,0,64;Value:(5,1),64,32;SectionNumber:(6,2),96,16;Type:(5,11),112,16;StorageClass:(5,10),128,8;NumberOfAuxSymbols:(5,10),136,8;;IMAGE_SYMBOL:t(6,385)=(6,381)PIMAGE_SYMBOL:t(6,386)=(6,387)=*(6,381)_IMAGE_AUX_SYMBOL:T(6,388)=u18Sym:(6,389)=s18TagIndex:(5,1),0,32;Misc:(6,390)=u4LnSz:(6,391)=s4Linenumber:(5,11),0,16;Size:(5,11),16,16;;,0,32;TotalSize:(5,1),0,32;;,32,32;FcnAry:(6,392)=u8Function:(6,393)=s8PointerToLinenumber:(5,1),0,32;PointerToNextFunction:(5,1),32,32;;,0,64;Array:(6,394)=s8Dimension:(6,358),0,64;;,0,64;;,64,64;TvIndex:(5,11),128,16;;,0,144;File:(6,395)=s18Name:(6,396)=ar(0,1);0;17;(5,10),0,144;;,0,144;Section:(6,397)=s16Length:(5,1),0,32;NumberOfRelocations:(5,11),32,16;NumberOfLinenumbers:(5,11),48,16;CheckSum:(5,1),64,32;Number:(6,2),96,16;Selection:(5,10),112,8;;,0,128;;IMAGE_AUX_SYMBOL:t(6,398)=(6,388)PIMAGE_AUX_SYMBOL:t(6,399)=(6,400)=*(6,388)_IMAGE_COFF_SYMBOLS_HEADER:T(6,401)=s32NumberOfSymbols:(5,1),0,32;LvaToFirstSymbol:(5,1),32,32;NumberOfLinenumbers:(5,1),64,32;LvaToFirstLinenumber:(5,1),96,32;RvaToFirstByteOfCode:(5,1),128,32;RvaToLastByteOfCode:(5,1),160,32;RvaToFirstByteOfData:(5,1),192,32;RvaToLastByteOfData:(5,1),224,32;;IMAGE_COFF_SYMBOLS_HEADER:t(6,402)=(6,401)PIMAGE_COFF_SYMBOLS_HEADER:t(6,403)=(6,404)=*(6,401)_IMAGE_RELOCATION:T(6,405)=s10:(6,406)=u4VirtualAddress:(5,1),0,32;RelocCount:(5,1),0,32;;,0,32;SymbolTableIndex:(5,1),32,32;Type:(5,11),64,16;;IMAGE_RELOCATION:t(6,407)=(6,405)PIMAGE_RELOCATION:t(6,408)=(6,409)=*(6,405)_IMAGE_BASE_RELOCATION:T(6,410)=s8VirtualAddress:(5,1),0,32;SizeOfBlock:(5,1),32,32;;IMAGE_BASE_RELOCATION:t(6,411)=(6,410)PIMAGE_BASE_RELOCATION:t(6,412)=(6,413)=*(6,410)_IMAGE_LINENUMBER:T(6,414)=s6Type:(6,415)=u4SymbolTableIndex:(5,1),0,32;VirtualAddress:(5,1),0,32;;,0,32;Linenumber:(5,11),32,16;;IMAGE_LINENUMBER:t(6,416)=(6,414)PIMAGE_LINENUMBER:t(6,417)=(6,418)=*(6,414)_IMAGE_ARCHIVE_MEMBER_HEADER:T(6,419)=s60Name:(6,420)=ar(0,1);0;15;(5,10),0,128;Date:(6,335),128,96;UserID:(6,181),224,48;GroupID:(6,181),272,48;Mode:(6,376),320,64;Size:(6,421)=ar(0,1);0;9;(5,10),384,80;EndHeader:(6,422)=ar(0,1);0;1;(5,10),464,16;;IMAGE_ARCHIVE_MEMBER_HEADER:t(6,423)=(6,419)PIMAGE_ARCHIVE_MEMBER_HEADER:t(6,424)=(6,425)=*(6,419)_IMAGE_EXPORT_DIRECTORY:T(6,426)=s40Characteristics:(5,1),0,32;TimeDateStamp:(5,1),32,32;MajorVersion:(5,11),64,16;MinorVersion:(5,11),80,16;Name:(5,1),96,32;Base:(5,1),128,32;NumberOfFunctions:(5,1),160,32;NumberOfNames:(5,1),192,32;AddressOfFunctions:(6,427)=*(5,25),224,32;AddressOfNames:(6,427),256,32;AddressOfNameOrdinals:(6,428)=*(5,20),288,32;;IMAGE_EXPORT_DIRECTORY:t(6,429)=(6,426)PIMAGE_EXPORT_DIRECTORY:t(6,430)=(6,431)=*(6,426)_IMAGE_IMPORT_BY_NAME:T(6,432)=s4Hint:(5,11),0,16;Name:(6,304),16,8;;IMAGE_IMPORT_BY_NAME:t(6,433)=(6,432)PIMAGE_IMPORT_BY_NAME:t(6,434)=(6,435)=*(6,432)_IMAGE_THUNK_DATA:T(6,436)=s4u1:(6,437)=u4ForwarderString:(5,15),0,32;Function:(5,25),0,32;Ordinal:(5,1),0,32;AddressOfData:(6,434),0,32;;,0,32;;IMAGE_THUNK_DATA:t(6,438)=(6,436)PIMAGE_THUNK_DATA:t(6,439)=(6,440)=*(6,436)_IMAGE_IMPORT_DESCRIPTOR:T(6,441)=s20:(6,442)=u4Characteristics:(5,1),0,32;OriginalFirstThunk:(6,439),0,32;;,0,32;TimeDateStamp:(5,1),32,32;ForwarderChain:(5,1),64,32;Name:(5,1),96,32;FirstThunk:(6,439),128,32;;IMAGE_IMPORT_DESCRIPTOR:t(6,443)=(6,441)PIMAGE_IMPORT_DESCRIPTOR:t(6,444)=(6,445)=*(6,441)_IMAGE_BOUND_IMPORT_DESCRIPTOR:T(6,446)=s8TimeDateStamp:(5,1),0,32;OffsetModuleName:(5,11),32,16;NumberOfModuleForwarderRefs:(5,11),48,16;;IMAGE_BOUND_IMPORT_DESCRIPTOR:t(6,447)=(6,446)PIMAGE_BOUND_IMPORT_DESCRIPTOR:t(6,448)=(6,449)=*(6,446)_IMAGE_BOUND_FORWARDER_REF:T(6,450)=s8TimeDateStamp:(5,1),0,32;OffsetModuleName:(5,11),32,16;Reserved:(5,11),48,16;;IMAGE_BOUND_FORWARDER_REF:t(6,451)=(6,450)PIMAGE_BOUND_FORWARDER_REF:t(6,452)=(6,453)=*(6,450)PIMAGE_TLS_CALLBACK:t(6,454)=(6,455)=*(6,456)=f(0,19)_IMAGE_TLS_DIRECTORY:T(6,457)=s24StartAddressOfRawData:(5,1),0,32;EndAddressOfRawData:(5,1),32,32;AddressOfIndex:(5,25),64,32;AddressOfCallBacks:(6,458)=*(6,454),96,32;SizeOfZeroFill:(5,1),128,32;Characteristics:(5,1),160,32;;IMAGE_TLS_DIRECTORY:t(6,459)=(6,457)PIMAGE_TLS_DIRECTORY:t(6,460)=(6,461)=*(6,457)_IMAGE_RESOURCE_DIRECTORY:T(6,462)=s16Characteristics:(5,1),0,32;TimeDateStamp:(5,1),32,32;MajorVersion:(5,11),64,16;MinorVersion:(5,11),80,16;NumberOfNamedEntries:(5,11),96,16;NumberOfIdEntries:(5,11),112,16;;IMAGE_RESOURCE_DIRECTORY:t(6,463)=(6,462)PIMAGE_RESOURCE_DIRECTORY:t(6,464)=(6,465)=*(6,462)_IMAGE_RESOURCE_DIRECTORY_ENTRY:T(6,466)=s8:(6,467)=u4:(6,468)=s4NameOffset:(5,1),0,31;NameIsString:(5,1),31,1;;,0,32;Name:(5,1),0,32;Id:(5,11),0,16;;,0,32;:(6,469)=u4OffsetToData:(5,1),0,32;:(6,470)=s4OffsetToDirectory:(5,1),0,31;DataIsDirectory:(5,1),31,1;;,0,32;;,32,32;;IMAGE_RESOURCE_DIRECTORY_ENTRY:t(6,471)=(6,466)PIMAGE_RESOURCE_DIRECTORY_ENTRY:t(6,472)=(6,473)=*(6,466)_IMAGE_RESOURCE_DIRECTORY_STRING:T(6,474)=s4Length:(5,11),0,16;NameString:(6,475)=ar(0,1);0;0;(6,1),16,8;;IMAGE_RESOURCE_DIRECTORY_STRING:t(6,476)=(6,474)PIMAGE_RESOURCE_DIRECTORY_STRING:t(6,477)=(6,478)=*(6,474)_IMAGE_RESOURCE_DIR_STRING_U:T(6,479)=s4Length:(5,11),0,16;NameString:(6,255),16,16;;IMAGE_RESOURCE_DIR_STRING_U:t(6,480)=(6,479)PIMAGE_RESOURCE_DIR_STRING_U:t(6,481)=(6,482)=*(6,479)_IMAGE_RESOURCE_DATA_ENTRY:T(6,483)=s16OffsetToData:(5,1),0,32;Size:(5,1),32,32;CodePage:(5,1),64,32;Reserved:(5,1),96,32;;IMAGE_RESOURCE_DATA_ENTRY:t(6,484)=(6,483)PIMAGE_RESOURCE_DATA_ENTRY:t(6,485)=(6,486)=*(6,483)_IMAGE_LOAD_CONFIG_DIRECTORY:T(6,487)=s64Characteristics:(5,1),0,32;TimeDateStamp:(5,1),32,32;MajorVersion:(5,11),64,16;MinorVersion:(5,11),80,16;GlobalFlagsClear:(5,1),96,32;GlobalFlagsSet:(5,1),128,32;CriticalSectionDefaultTimeout:(5,1),160,32;DeCommitFreeBlockThreshold:(5,1),192,32;DeCommitTotalFreeThreshold:(5,1),224,32;LockPrefixTable:(5,28),256,32;MaximumAllocationSize:(5,1),288,32;VirtualMemoryThreshold:(5,1),320,32;ProcessHeapFlags:(5,1),352,32;Reserved:(6,353),384,128;;IMAGE_LOAD_CONFIG_DIRECTORY:t(6,488)=(6,487)PIMAGE_LOAD_CONFIG_DIRECTORY:t(6,489)=(6,490)=*(6,487)_IMAGE_RUNTIME_FUNCTION_ENTRY:T(6,491)=s20BeginAddress:(5,1),0,32;EndAddress:(5,1),32,32;ExceptionHandler:(5,28),64,32;HandlerData:(5,28),96,32;PrologEndAddress:(5,1),128,32;;IMAGE_RUNTIME_FUNCTION_ENTRY:t(6,492)=(6,491)PIMAGE_RUNTIME_FUNCTION_ENTRY:t(6,493)=(6,494)=*(6,491)_IMAGE_DEBUG_DIRECTORY:T(6,495)=s28Characteristics:(5,1),0,32;TimeDateStamp:(5,1),32,32;MajorVersion:(5,11),64,16;MinorVersion:(5,11),80,16;Type:(5,1),96,32;SizeOfData:(5,1),128,32;AddressOfRawData:(5,1),160,32;PointerToRawData:(5,1),192,32;;IMAGE_DEBUG_DIRECTORY:t(6,496)=(6,495)PIMAGE_DEBUG_DIRECTORY:t(6,497)=(6,498)=*(6,495)_FPO_DATA:T(6,499)=s16ulOffStart:(5,1),0,32;cbProcSize:(5,1),32,32;cdwLocals:(5,1),64,32;cdwParams:(5,11),96,16;cbProlog:(5,11),112,8;cbRegs:(5,11),120,3;fHasSEH:(5,11),123,1;fUseBP:(5,11),124,1;reserved:(5,11),125,1;cbFrame:(5,11),126,2;;FPO_DATA:t(6,500)=(6,499)PFPO_DATA:t(6,501)=(6,502)=*(6,499)_IMAGE_DEBUG_MISC:T(6,503)=s16DataType:(5,1),0,32;Length:(5,1),32,32;Unicode:(6,70),64,8;Reserved:(6,504)=ar(0,1);0;2;(5,10),72,24;Data:(6,304),96,8;;IMAGE_DEBUG_MISC:t(6,505)=(6,503)PIMAGE_DEBUG_MISC:t(6,506)=(6,507)=*(6,503)_IMAGE_FUNCTION_ENTRY:T(6,508)=s12StartingAddress:(5,1),0,32;EndingAddress:(5,1),32,32;EndOfPrologue:(5,1),64,32;;IMAGE_FUNCTION_ENTRY:t(6,509)=(6,508)PIMAGE_FUNCTION_ENTRY:t(6,510)=(6,511)=*(6,508)_IMAGE_SEPARATE_DEBUG_HEADER:T(6,512)=s48Signature:(5,11),0,16;Flags:(5,11),16,16;Machine:(5,11),32,16;Characteristics:(5,11),48,16;TimeDateStamp:(5,1),64,32;CheckSum:(5,1),96,32;ImageBase:(5,1),128,32;SizeOfImage:(5,1),160,32;NumberOfSections:(5,1),192,32;ExportedNamesSize:(5,1),224,32;DebugDirectorySize:(5,1),256,32;Reserved:(6,513)=ar(0,1);0;2;(5,1),288,96;;IMAGE_SEPARATE_DEBUG_HEADER:t(6,514)=(6,512)PIMAGE_SEPARATE_DEBUG_HEADER:t(6,515)=(6,516)=*(6,512)_CM_SERVICE_NODE_TYPE:T(6,517)=eDriverType:1,FileSystemType:2,Win32ServiceOwnProcess:16,Win32ServiceShareProcess:32,AdapterType:4,RecognizerType:8,;SERVICE_NODE_TYPE:t(6,518)=(6,517)_CM_SERVICE_LOAD_TYPE:T(6,519)=eBootLoad:0,SystemLoad:1,AutoLoad:2,DemandLoad:3,DisableLoad:4,;SERVICE_LOAD_TYPE:t(6,520)=(6,519)_CM_ERROR_CONTROL_TYPE:T(6,521)=eIgnoreError:0,NormalError:1,SevereError:2,CriticalError:3,;SERVICE_ERROR_TYPE:t(6,522)=(6,521)_NT_TIB:T(6,523)=s28ExceptionList:(6,524)=*(6,525)=xs_EXCEPTION_REGISTRATION_RECORD:,0,32;StackBase:(5,28),32,32;StackLimit:(5,28),64,32;SubSystemTib:(5,28),96,32;:(6,526)=u4FiberData:(5,28),0,32;Version:(5,1),0,32;;,128,32;ArbitraryUserPointer:(5,28),160,32;Self:(6,527)=*(6,523),192,32;;NT_TIB:t(6,528)=(6,523)PNT_TIB:t(6,529)=(6,527)_REPARSE_DATA_BUFFER:T(6,530)=s20ReparseTag:(5,1),0,32;ReparseDataLength:(5,11),32,16;Reserved:(5,11),48,16;:(6,531)=u10SymbolicLinkReparseBuffer:(6,532)=s10SubstituteNameOffset:(5,11),0,16;SubstituteNameLength:(5,11),16,16;PrintNameOffset:(5,11),32,16;PrintNameLength:(5,11),48,16;PathBuffer:(6,255),64,16;;,0,80;MountPointReparseBuffer:(6,533)=s10SubstituteNameOffset:(5,11),0,16;SubstituteNameLength:(5,11),16,16;PrintNameOffset:(5,11),32,16;PrintNameLength:(5,11),48,16;PathBuffer:(6,255),64,16;;,0,80;GenericReparseBuffer:(6,534)=s1DataBuffer:(6,304),0,8;;,0,8;;,64,80;;REPARSE_DATA_BUFFER:t(6,535)=(6,530)PREPARSE_DATA_BUFFER:t(6,536)=(6,537)=*(6,530)_REPARSE_GUID_DATA_BUFFER:T(6,538)=s28ReparseTag:(5,1),0,32;ReparseDataLength:(5,11),32,16;Reserved:(5,11),48,16;ReparseGuid:(6,75),64,128;GenericReparseBuffer:(6,539)=s1DataBuffer:(6,304),0,8;;,192,8;;REPARSE_GUID_DATA_BUFFER:t(6,540)=(6,538)PREPARSE_GUID_DATA_BUFFER:t(6,541)=(6,542)=*(6,538)_REPARSE_POINT_INFORMATION:T(6,543)=s4ReparseDataLength:(5,11),0,16;UnparsedNameLength:(5,11),16,16;;REPARSE_POINT_INFORMATION:t(6,544)=(6,543)PREPARSE_POINT_INFORMATION:t(6,545)=(6,546)=*(6,543)WPARAM:t(5,38)=(5,34)LPARAM:t(5,39)=(6,3)LRESULT:t(5,40)=(6,3)HRESULT:t(5,41)=(6,3)ATOM:t(5,42)=(5,11)HGLOBAL:t(5,43)=(6,54)HLOCAL:t(5,44)=(6,54)GLOBALHANDLE:t(5,45)=(6,54)LOCALHANDLE:t(5,46)=(6,54)HGDIOBJ:t(5,47)=(4,2)HACCEL__:T(5,48)=s4i:(0,1),0,32;;HACCEL:t(5,49)=(5,50)=*(5,48)HBITMAP__:T(5,51)=s4i:(0,1),0,32;;HBITMAP:t(5,52)=(5,53)=*(5,51)HBRUSH__:T(5,54)=s4i:(0,1),0,32;;HBRUSH:t(5,55)=(5,56)=*(5,54)HCOLORSPACE__:T(5,57)=s4i:(0,1),0,32;;HCOLORSPACE:t(5,58)=(5,59)=*(5,57)HDC__:T(5,60)=s4i:(0,1),0,32;;HDC:t(5,61)=(5,62)=*(5,60)HGLRC__:T(5,63)=s4i:(0,1),0,32;;HGLRC:t(5,64)=(5,65)=*(5,63)HDESK__:T(5,66)=s4i:(0,1),0,32;;HDESK:t(5,67)=(5,68)=*(5,66)HENHMETAFILE__:T(5,69)=s4i:(0,1),0,32;;HENHMETAFILE:t(5,70)=(5,71)=*(5,69)HFONT__:T(5,72)=s4i:(0,1),0,32;;HFONT:t(5,73)=(5,74)=*(5,72)HICON__:T(5,75)=s4i:(0,1),0,32;;HICON:t(5,76)=(5,77)=*(5,75)HKEY__:T(5,78)=s4i:(0,1),0,32;;HKEY:t(5,79)=(5,80)=*(5,78)HMONITOR__:T(5,81)=s4i:(0,1),0,32;;HMONITOR:t(5,82)=(5,83)=*(5,81)HTERMINAL__:T(5,84)=s4i:(0,1),0,32;;HTERMINAL:t(5,85)=(5,86)=*(5,84)HWINEVENTHOOK__:T(5,87)=s4i:(0,1),0,32;;HWINEVENTHOOK:t(5,88)=(5,89)=*(5,87)PHKEY:t(5,90)=(5,91)=*(5,79)HMENU__:T(5,92)=s4i:(0,1),0,32;;HMENU:t(5,93)=(5,94)=*(5,92)HMETAFILE__:T(5,95)=s4i:(0,1),0,32;;HMETAFILE:t(5,96)=(5,97)=*(5,95)HINSTANCE__:T(5,98)=s4i:(0,1),0,32;;HINSTANCE:t(5,99)=(5,100)=*(5,98)HMODULE:t(5,101)=(5,99)HPALETTE__:T(5,102)=s4i:(0,1),0,32;;HPALETTE:t(5,103)=(5,104)=*(5,102)HPEN__:T(5,105)=s4i:(0,1),0,32;;HPEN:t(5,106)=(5,107)=*(5,105)HRGN__:T(5,108)=s4i:(0,1),0,32;;HRGN:t(5,109)=(5,110)=*(5,108)HRSRC__:T(5,111)=s4i:(0,1),0,32;;HRSRC:t(5,112)=(5,113)=*(5,111)HSTR__:T(5,114)=s4i:(0,1),0,32;;HSTR:t(5,115)=(5,116)=*(5,114)HTASK__:T(5,117)=s4i:(0,1),0,32;;HTASK:t(5,118)=(5,119)=*(5,117)HWND__:T(5,120)=s4i:(0,1),0,32;;HWND:t(5,121)=(5,122)=*(5,120)HWINSTA__:T(5,123)=s4i:(0,1),0,32;;HWINSTA:t(5,124)=(5,125)=*(5,123)HKL__:T(5,126)=s4i:(0,1),0,32;;HKL:t(5,127)=(5,128)=*(5,126)HFILE:t(5,129)=(0,1)HCURSOR:t(5,130)=(5,76)COLORREF:t(5,131)=(5,1)FARPROC:t(5,132)=(5,133)=*(5,134)=f(0,1)NEARPROC:t(5,135)=(5,133)PROC:t(5,136)=(5,133)tagRECT:T(5,137)=s16left:(6,3),0,32;top:(6,3),32,32;right:(6,3),64,32;bottom:(6,3),96,32;;RECT:t(5,138)=(5,137)PRECT:t(5,139)=(5,140)=*(5,137)LPRECT:t(5,141)=(5,140)LPCRECT:t(5,142)=(5,143)=*(5,138)tagRECTL:T(5,144)=s16left:(6,3),0,32;top:(6,3),32,32;right:(6,3),64,32;bottom:(6,3),96,32;;RECTL:t(5,145)=(5,144)PRECTL:t(5,146)=(5,147)=*(5,144)LPRECTL:t(5,148)=(5,147)LPCRECTL:t(5,149)=(5,150)=*(5,145)tagPOINT:T(5,151)=s8x:(6,3),0,32;y:(6,3),32,32;;POINT:t(5,152)=(5,151)POINTL:t(5,153)=(5,151)PPOINT:t(5,154)=(5,155)=*(5,151)LPPOINT:t(5,156)=(5,155)PPOINTL:t(5,157)=(5,155)LPPOINTL:t(5,158)=(5,155)tagSIZE:T(5,159)=s8cx:(6,3),0,32;cy:(6,3),32,32;;SIZE:t(5,160)=(5,159)SIZEL:t(5,161)=(5,159)PSIZE:t(5,162)=(5,163)=*(5,159)LPSIZE:t(5,164)=(5,163)PSIZEL:t(5,165)=(5,163)LPSIZEL:t(5,166)=(5,163)tagPOINTS:T(5,167)=s4x:(6,2),0,16;y:(6,2),16,16;;POINTS:t(5,168)=(5,167)PPOINTS:t(5,169)=(5,170)=*(5,167)LPPOINTS:t(5,171)=(5,170)/usr/include/w32api/wincon.h_CHAR_INFO:T(21,1)=s4Char:(21,2)=u2UnicodeChar:(6,14),0,16;AsciiChar:(6,1),0,8;;,0,16;Attributes:(5,11),16,16;;CHAR_INFO:t(21,3)=(21,1)PCHAR_INFO:t(21,4)=(21,5)=*(21,1)_SMALL_RECT:T(21,6)=s8Left:(6,2),0,16;Top:(6,2),16,16;Right:(6,2),32,16;Bottom:(6,2),48,16;;SMALL_RECT:t(21,7)=(21,6)PSMALL_RECT:t(21,8)=(21,9)=*(21,6)_CONSOLE_CURSOR_INFO:T(21,10)=s8dwSize:(5,1),0,32;bVisible:(5,6),32,32;;CONSOLE_CURSOR_INFO:t(21,11)=(21,10)PCONSOLE_CURSOR_INFO:t(21,12)=(21,13)=*(21,10)_COORD:T(21,14)=s4X:(6,2),0,16;Y:(6,2),16,16;;COORD:t(21,15)=(21,14)_CONSOLE_SCREEN_BUFFER_INFO:T(21,16)=s22dwSize:(21,15),0,32;dwCursorPosition:(21,15),32,32;wAttributes:(5,11),64,16;srWindow:(21,7),80,64;dwMaximumWindowSize:(21,15),144,32;;CONSOLE_SCREEN_BUFFER_INFO:t(21,17)=(21,16)PCONSOLE_SCREEN_BUFFER_INFO:t(21,18)=(21,19)=*(21,16)PHANDLER_ROUTINE:t(21,20)=(21,21)=*(21,22)=f(5,6)_KEY_EVENT_RECORD:T(21,23)=s16bKeyDown:(5,6),0,32;wRepeatCount:(5,11),32,16;wVirtualKeyCode:(5,11),48,16;wVirtualScanCode:(5,11),64,16;uChar:(21,24)=u2UnicodeChar:(6,14),0,16;AsciiChar:(6,1),0,8;;,80,16;dwControlKeyState:(5,1),96,32;;KEY_EVENT_RECORD:t(21,25)=(21,23)_MOUSE_EVENT_RECORD:T(21,26)=s16dwMousePosition:(21,15),0,32;dwButtonState:(5,1),32,32;dwControlKeyState:(5,1),64,32;dwEventFlags:(5,1),96,32;;MOUSE_EVENT_RECORD:t(21,27)=(21,26)_WINDOW_BUFFER_SIZE_RECORD:T(21,28)=s4dwSize:(21,15),0,32;;WINDOW_BUFFER_SIZE_RECORD:t(21,29)=(21,28)_MENU_EVENT_RECORD:T(21,30)=s4dwCommandId:(5,34),0,32;;MENU_EVENT_RECORD:t(21,31)=(21,30)PMENU_EVENT_RECORD:t(21,32)=(21,33)=*(21,30)_FOCUS_EVENT_RECORD:T(21,34)=s4bSetFocus:(5,6),0,32;;FOCUS_EVENT_RECORD:t(21,35)=(21,34)_INPUT_RECORD:T(21,36)=s20EventType:(5,11),0,16;Event:(21,37)=u16KeyEvent:(21,25),0,128;MouseEvent:(21,27),0,128;WindowBufferSizeEvent:(21,29),0,32;MenuEvent:(21,31),0,32;FocusEvent:(21,35),0,32;;,32,128;;INPUT_RECORD:t(21,38)=(21,36)PINPUT_RECORD:t(21,39)=(21,40)=*(21,36)/usr/include/w32api/basetyps.hUUID:t(22,1)=(6,75)IID:t(22,2)=(6,75)CLSID:t(22,3)=(6,75)LPCLSID:t(22,4)=(22,5)=*(22,3)LPIID:t(22,6)=(22,7)=*(22,2)REFIID:t(22,8)=(22,7)REFCLSID:t(22,9)=(22,5)FMTID:t(22,10)=(6,75)REFFMTID:t(22,11)=(22,12)=*(22,10)error_status_t:t(22,13)=(0,5)PROPID:t(22,14)=(0,5)/usr/include/w32api/excpt.h/usr/include/w32api/winbase.h_FILETIME:T(24,1)=s8dwLowDateTime:(5,1),0,32;dwHighDateTime:(5,1),32,32;;FILETIME:t(24,2)=(24,1)PFILETIME:t(24,3)=(24,4)=*(24,1)LPFILETIME:t(24,5)=(24,4)_BY_HANDLE_FILE_INFORMATION:T(24,6)=s52dwFileAttributes:(5,1),0,32;ftCreationTime:(24,2),32,64;ftLastAccessTime:(24,2),96,64;ftLastWriteTime:(24,2),160,64;dwVolumeSerialNumber:(5,1),224,32;nFileSizeHigh:(5,1),256,32;nFileSizeLow:(5,1),288,32;nNumberOfLinks:(5,1),320,32;nFileIndexHigh:(5,1),352,32;nFileIndexLow:(5,1),384,32;;BY_HANDLE_FILE_INFORMATION:t(24,7)=(24,6)LPBY_HANDLE_FILE_INFORMATION:t(24,8)=(24,9)=*(24,6)_DCB:T(24,10)=s28DCBlength:(5,1),0,32;BaudRate:(5,1),32,32;fBinary:(5,1),64,1;fParity:(5,1),65,1;fOutxCtsFlow:(5,1),66,1;fOutxDsrFlow:(5,1),67,1;fDtrControl:(5,1),68,2;fDsrSensitivity:(5,1),70,1;fTXContinueOnXoff:(5,1),71,1;fOutX:(5,1),72,1;fInX:(5,1),73,1;fErrorChar:(5,1),74,1;fNull:(5,1),75,1;fRtsControl:(5,1),76,2;fAbortOnError:(5,1),78,1;fDummy2:(5,1),79,17;wReserved:(5,11),96,16;XonLim:(5,11),112,16;XoffLim:(5,11),128,16;ByteSize:(5,10),144,8;Parity:(5,10),152,8;StopBits:(5,10),160,8;XonChar:(0,2),168,8;XoffChar:(0,2),176,8;ErrorChar:(0,2),184,8;EofChar:(0,2),192,8;EvtChar:(0,2),200,8;wReserved1:(5,11),208,16;;DCB:t(24,11)=(24,10)LPDCB:t(24,12)=(24,13)=*(24,10)_COMM_CONFIG:T(24,14)=s52dwSize:(5,1),0,32;wVersion:(5,11),32,16;wReserved:(5,11),48,16;dcb:(24,11),64,224;dwProviderSubType:(5,1),288,32;dwProviderOffset:(5,1),320,32;dwProviderSize:(5,1),352,32;wcProviderData:(6,255),384,16;;COMMCONFIG:t(24,15)=(24,14)LPCOMMCONFIG:t(24,16)=(24,17)=*(24,14)_COMMPROP:T(24,18)=s64wPacketLength:(5,11),0,16;wPacketVersion:(5,11),16,16;dwServiceMask:(5,1),32,32;dwReserved1:(5,1),64,32;dwMaxTxQueue:(5,1),96,32;dwMaxRxQueue:(5,1),128,32;dwMaxBaud:(5,1),160,32;dwProvSubType:(5,1),192,32;dwProvCapabilities:(5,1),224,32;dwSettableParams:(5,1),256,32;dwSettableBaud:(5,1),288,32;wSettableData:(5,11),320,16;wSettableStopParity:(5,11),336,16;dwCurrentTxQueue:(5,1),352,32;dwCurrentRxQueue:(5,1),384,32;dwProvSpec1:(5,1),416,32;dwProvSpec2:(5,1),448,32;wcProvChar:(6,255),480,16;;COMMPROP:t(24,19)=(24,18)LPCOMMPROP:t(24,20)=(24,21)=*(24,18)_COMMTIMEOUTS:T(24,22)=s20ReadIntervalTimeout:(5,1),0,32;ReadTotalTimeoutMultiplier:(5,1),32,32;ReadTotalTimeoutConstant:(5,1),64,32;WriteTotalTimeoutMultiplier:(5,1),96,32;WriteTotalTimeoutConstant:(5,1),128,32;;COMMTIMEOUTS:t(24,23)=(24,22)LPCOMMTIMEOUTS:t(24,24)=(24,25)=*(24,22)_COMSTAT:T(24,26)=s12fCtsHold:(5,1),0,1;fDsrHold:(5,1),1,1;fRlsdHold:(5,1),2,1;fXoffHold:(5,1),3,1;fXoffSent:(5,1),4,1;fEof:(5,1),5,1;fTxim:(5,1),6,1;fReserved:(5,1),7,25;cbInQue:(5,1),32,32;cbOutQue:(5,1),64,32;;COMSTAT:t(24,27)=(24,26)LPCOMSTAT:t(24,28)=(24,29)=*(24,26)LPTHREAD_START_ROUTINE:t(24,30)=(24,31)=*(24,32)=f(5,1)_CREATE_PROCESS_DEBUG_INFO:T(24,33)=s40hFile:(6,54),0,32;hProcess:(6,54),32,32;hThread:(6,54),64,32;lpBaseOfImage:(5,29),96,32;dwDebugInfoFileOffset:(5,1),128,32;nDebugInfoSize:(5,1),160,32;lpThreadLocalBase:(5,29),192,32;lpStartAddress:(24,30),224,32;lpImageName:(5,29),256,32;fUnicode:(5,11),288,16;;CREATE_PROCESS_DEBUG_INFO:t(24,34)=(24,33)LPCREATE_PROCESS_DEBUG_INFO:t(24,35)=(24,36)=*(24,33)_CREATE_THREAD_DEBUG_INFO:T(24,37)=s12hThread:(6,54),0,32;lpThreadLocalBase:(5,29),32,32;lpStartAddress:(24,30),64,32;;CREATE_THREAD_DEBUG_INFO:t(24,38)=(24,37)LPCREATE_THREAD_DEBUG_INFO:t(24,39)=(24,40)=*(24,37)_EXCEPTION_DEBUG_INFO:T(24,41)=s84ExceptionRecord:(6,132),0,640;dwFirstChance:(5,1),640,32;;EXCEPTION_DEBUG_INFO:t(24,42)=(24,41)LPEXCEPTION_DEBUG_INFO:t(24,43)=(24,44)=*(24,41)_EXIT_THREAD_DEBUG_INFO:T(24,45)=s4dwExitCode:(5,1),0,32;;EXIT_THREAD_DEBUG_INFO:t(24,46)=(24,45)LPEXIT_THREAD_DEBUG_INFO:t(24,47)=(24,48)=*(24,45)_EXIT_PROCESS_DEBUG_INFO:T(24,49)=s4dwExitCode:(5,1),0,32;;EXIT_PROCESS_DEBUG_INFO:t(24,50)=(24,49)LPEXIT_PROCESS_DEBUG_INFO:t(24,51)=(24,52)=*(24,49)_LOAD_DLL_DEBUG_INFO:T(24,53)=s24hFile:(6,54),0,32;lpBaseOfDll:(5,29),32,32;dwDebugInfoFileOffset:(5,1),64,32;nDebugInfoSize:(5,1),96,32;lpImageName:(5,29),128,32;fUnicode:(5,11),160,16;;LOAD_DLL_DEBUG_INFO:t(24,54)=(24,53)LPLOAD_DLL_DEBUG_INFO:t(24,55)=(24,56)=*(24,53)_UNLOAD_DLL_DEBUG_INFO:T(24,57)=s4lpBaseOfDll:(5,29),0,32;;UNLOAD_DLL_DEBUG_INFO:t(24,58)=(24,57)LPUNLOAD_DLL_DEBUG_INFO:t(24,59)=(24,60)=*(24,57)_OUTPUT_DEBUG_STRING_INFO:T(24,61)=s8lpDebugStringData:(6,32),0,32;fUnicode:(5,11),32,16;nDebugStringLength:(5,11),48,16;;OUTPUT_DEBUG_STRING_INFO:t(24,62)=(24,61)LPOUTPUT_DEBUG_STRING_INFO:t(24,63)=(24,64)=*(24,61)_RIP_INFO:T(24,65)=s8dwError:(5,1),0,32;dwType:(5,1),32,32;;RIP_INFO:t(24,66)=(24,65)LPRIP_INFO:t(24,67)=(24,68)=*(24,65)_DEBUG_EVENT:T(24,69)=s96dwDebugEventCode:(5,1),0,32;dwProcessId:(5,1),32,32;dwThreadId:(5,1),64,32;u:(24,70)=u84Exception:(24,42),0,672;CreateThread:(24,38),0,96;CreateProcessInfo:(24,34),0,320;ExitThread:(24,46),0,32;ExitProcess:(24,50),0,32;LoadDll:(24,54),0,192;UnloadDll:(24,58),0,32;DebugString:(24,62),0,64;RipInfo:(24,66),0,64;;,96,672;;DEBUG_EVENT:t(24,71)=(24,69)LPDEBUG_EVENT:t(24,72)=(24,73)=*(24,69)_OVERLAPPED:T(24,74)=s20Internal:(5,1),0,32;InternalHigh:(5,1),32,32;Offset:(5,1),64,32;OffsetHigh:(5,1),96,32;hEvent:(6,54),128,32;;OVERLAPPED:t(24,75)=(24,74)POVERLAPPED:t(24,76)=(24,77)=*(24,74)LPOVERLAPPED:t(24,78)=(24,77)_STARTUPINFOA:T(24,79)=s68cb:(5,1),0,32;lpReserved:(6,32),32,32;lpDesktop:(6,32),64,32;lpTitle:(6,32),96,32;dwX:(5,1),128,32;dwY:(5,1),160,32;dwXSize:(5,1),192,32;dwYSize:(5,1),224,32;dwXCountChars:(5,1),256,32;dwYCountChars:(5,1),288,32;dwFillAttribute:(5,1),320,32;dwFlags:(5,1),352,32;wShowWindow:(5,11),384,16;cbReserved2:(5,11),400,16;lpReserved2:(5,15),416,32;hStdInput:(6,54),448,32;hStdOutput:(6,54),480,32;hStdError:(6,54),512,32;;STARTUPINFOA:t(24,80)=(24,79)LPSTARTUPINFOA:t(24,81)=(24,82)=*(24,79)_STARTUPINFOW:T(24,83)=s68cb:(5,1),0,32;lpReserved:(6,20),32,32;lpDesktop:(6,20),64,32;lpTitle:(6,20),96,32;dwX:(5,1),128,32;dwY:(5,1),160,32;dwXSize:(5,1),192,32;dwYSize:(5,1),224,32;dwXCountChars:(5,1),256,32;dwYCountChars:(5,1),288,32;dwFillAttribute:(5,1),320,32;dwFlags:(5,1),352,32;wShowWindow:(5,11),384,16;cbReserved2:(5,11),400,16;lpReserved2:(5,15),416,32;hStdInput:(6,54),448,32;hStdOutput:(6,54),480,32;hStdError:(6,54),512,32;;STARTUPINFOW:t(24,84)=(24,83)LPSTARTUPINFOW:t(24,85)=(24,86)=*(24,83)_PROCESS_INFORMATION:T(24,87)=s16hProcess:(6,54),0,32;hThread:(6,54),32,32;dwProcessId:(5,1),64,32;dwThreadId:(5,1),96,32;;PROCESS_INFORMATION:t(24,88)=(24,87)LPPROCESS_INFORMATION:t(24,89)=(24,90)=*(24,87)_CRITICAL_SECTION_DEBUG:T(24,91)=s32Type:(5,11),0,16;CreatorBackTraceIndex:(5,11),16,16;CriticalSection:(24,92)=*(24,93)=xs_CRITICAL_SECTION:,32,32;ProcessLocksList:(6,319),64,64;EntryCount:(5,1),128,32;ContentionCount:(5,1),160,32;Spare:(6,324),192,64;;CRITICAL_SECTION_DEBUG:t(24,94)=(24,91)PCRITICAL_SECTION_DEBUG:t(24,95)=(24,96)=*(24,91)_CRITICAL_SECTION:T(24,93)=s24DebugInfo:(24,95),0,32;LockCount:(6,3),32,32;RecursionCount:(6,3),64,32;OwningThread:(6,54),96,32;LockSemaphore:(6,54),128,32;SpinCount:(5,1),160,32;;CRITICAL_SECTION:t(24,97)=(24,93)PCRITICAL_SECTION:t(24,98)=(24,92)LPCRITICAL_SECTION:t(24,99)=(24,92)_SYSTEMTIME:T(24,100)=s16wYear:(5,11),0,16;wMonth:(5,11),16,16;wDayOfWeek:(5,11),32,16;wDay:(5,11),48,16;wHour:(5,11),64,16;wMinute:(5,11),80,16;wSecond:(5,11),96,16;wMilliseconds:(5,11),112,16;;SYSTEMTIME:t(24,101)=(24,100)LPSYSTEMTIME:t(24,102)=(24,103)=*(24,100)_WIN32_FILE_ATTRIBUTE_DATA:T(24,104)=s36dwFileAttributes:(5,1),0,32;ftCreationTime:(24,2),32,64;ftLastAccessTime:(24,2),96,64;ftLastWriteTime:(24,2),160,64;nFileSizeHigh:(5,1),224,32;nFileSizeLow:(5,1),256,32;;WIN32_FILE_ATTRIBUTE_DATA:t(24,105)=(24,104)LPWIN32_FILE_ATTRIBUTE_DATA:t(24,106)=(24,107)=*(24,104)_WIN32_FIND_DATAA:T(24,108)=s320dwFileAttributes:(5,1),0,32;ftCreationTime:(24,2),32,64;ftLastAccessTime:(24,2),96,64;ftLastWriteTime:(24,2),160,64;nFileSizeHigh:(5,1),224,32;nFileSizeLow:(5,1),256,32;dwReserved0:(5,1),288,32;dwReserved1:(5,1),320,32;cFileName:(24,109)=ar(0,1);0;259;(6,1),352,2080;cAlternateFileName:(24,110)=ar(0,1);0;13;(6,1),2432,112;;WIN32_FIND_DATAA:t(24,111)=(24,108)LPWIN32_FIND_DATAA:t(24,112)=(24,113)=*(24,108)_WIN32_FIND_DATAW:T(24,114)=s592dwFileAttributes:(5,1),0,32;ftCreationTime:(24,2),32,64;ftLastAccessTime:(24,2),96,64;ftLastWriteTime:(24,2),160,64;nFileSizeHigh:(5,1),224,32;nFileSizeLow:(5,1),256,32;dwReserved0:(5,1),288,32;dwReserved1:(5,1),320,32;cFileName:(24,115)=ar(0,1);0;259;(6,14),352,4160;cAlternateFileName:(24,116)=ar(0,1);0;13;(6,14),4512,224;;WIN32_FIND_DATAW:t(24,117)=(24,114)LPWIN32_FIND_DATAW:t(24,118)=(24,119)=*(24,114)_WIN32_STREAM_ID:T(24,120)=s24dwStreamId:(5,1),0,32;dwStreamAttributes:(5,1),32,32;Size:(6,141),64,64;dwStreamNameSize:(5,1),128,32;cStreamName:(6,255),160,16;;WIN32_STREAM_ID:t(24,121)=(24,120)_FINDEX_INFO_LEVELS:T(24,122)=eFindExInfoStandard:0,FindExInfoMaxInfoLevel:1,;FINDEX_INFO_LEVELS:t(24,123)=(24,122)_FINDEX_SEARCH_OPS:T(24,124)=eFindExSearchNameMatch:0,FindExSearchLimitToDirectories:1,FindExSearchLimitToDevices:2,FindExSearchMaxSearchOp:3,;FINDEX_SEARCH_OPS:t(24,125)=(24,124)_ACL_INFORMATION_CLASS:T(24,126)=eAclRevisionInformation:1,AclSizeInformation:2,;ACL_INFORMATION_CLASS:t(24,127)=(24,126)tagHW_PROFILE_INFOA:T(24,128)=s124dwDockInfo:(5,1),0,32;szHwProfileGuid:(24,129)=ar(0,1);0;38;(6,1),32,312;szHwProfileName:(24,130)=ar(0,1);0;79;(6,1),344,640;;HW_PROFILE_INFOA:t(24,131)=(24,128)LPHW_PROFILE_INFOA:t(24,132)=(24,133)=*(24,128)tagHW_PROFILE_INFOW:T(24,134)=s244dwDockInfo:(5,1),0,32;szHwProfileGuid:(24,135)=ar(0,1);0;38;(6,14),32,624;szHwProfileName:(24,136)=ar(0,1);0;79;(6,14),656,1280;;HW_PROFILE_INFOW:t(24,137)=(24,134)LPHW_PROFILE_INFOW:t(24,138)=(24,139)=*(24,134)_GET_FILEEX_INFO_LEVELS:T(24,140)=eGetFileExInfoStandard:0,GetFileExMaxInfoLevel:1,;GET_FILEEX_INFO_LEVELS:t(24,141)=(24,140)_SYSTEM_INFO:T(24,142)=s36:(24,143)=u4dwOemId:(5,1),0,32;:(24,144)=s4wProcessorArchitecture:(5,11),0,16;wReserved:(5,11),16,16;;,0,32;;,0,32;dwPageSize:(5,1),32,32;lpMinimumApplicationAddress:(5,28),64,32;lpMaximumApplicationAddress:(5,28),96,32;dwActiveProcessorMask:(5,1),128,32;dwNumberOfProcessors:(5,1),160,32;dwProcessorType:(5,1),192,32;dwAllocationGranularity:(5,1),224,32;wProcessorLevel:(5,11),256,16;wProcessorRevision:(5,11),272,16;;SYSTEM_INFO:t(24,145)=(24,142)LPSYSTEM_INFO:t(24,146)=(24,147)=*(24,142)_SYSTEM_POWER_STATUS:T(24,148)=s12ACLineStatus:(5,10),0,8;BatteryFlag:(5,10),8,8;BatteryLifePercent:(5,10),16,8;Reserved1:(5,10),24,8;BatteryLifeTime:(5,1),32,32;BatteryFullLifeTime:(5,1),64,32;;SYSTEM_POWER_STATUS:t(24,149)=(24,148)LPSYSTEM_POWER_STATUS:t(24,150)=(24,151)=*(24,148)_TIME_ZONE_INFORMATION:T(24,152)=s172Bias:(6,3),0,32;StandardName:(24,153)=ar(0,1);0;31;(6,14),32,512;StandardDate:(24,101),544,128;StandardBias:(6,3),672,32;DaylightName:(24,153),704,512;DaylightDate:(24,101),1216,128;DaylightBias:(6,3),1344,32;;TIME_ZONE_INFORMATION:t(24,154)=(24,152)LPTIME_ZONE_INFORMATION:t(24,155)=(24,156)=*(24,152)_OSVERSIONINFOA:T(24,157)=s148dwOSVersionInfoSize:(5,1),0,32;dwMajorVersion:(5,1),32,32;dwMinorVersion:(5,1),64,32;dwBuildNumber:(5,1),96,32;dwPlatformId:(5,1),128,32;szCSDVersion:(24,158)=ar(0,1);0;127;(6,1),160,1024;;OSVERSIONINFOA:t(24,159)=(24,157)POSVERSIONINFOA:t(24,160)=(24,161)=*(24,157)LPOSVERSIONINFOA:t(24,162)=(24,161)_OSVERSIONINFOW:T(24,163)=s276dwOSVersionInfoSize:(5,1),0,32;dwMajorVersion:(5,1),32,32;dwMinorVersion:(5,1),64,32;dwBuildNumber:(5,1),96,32;dwPlatformId:(5,1),128,32;szCSDVersion:(24,164)=ar(0,1);0;127;(6,14),160,2048;;OSVERSIONINFOW:t(24,165)=(24,163)POSVERSIONINFOW:t(24,166)=(24,167)=*(24,163)LPOSVERSIONINFOW:t(24,168)=(24,167)_MEMORYSTATUS:T(24,169)=s32dwLength:(5,1),0,32;dwMemoryLoad:(5,1),32,32;dwTotalPhys:(5,1),64,32;dwAvailPhys:(5,1),96,32;dwTotalPageFile:(5,1),128,32;dwAvailPageFile:(5,1),160,32;dwTotalVirtual:(5,1),192,32;dwAvailVirtual:(5,1),224,32;;MEMORYSTATUS:t(24,170)=(24,169)LPMEMORYSTATUS:t(24,171)=(24,172)=*(24,169)_LDT_ENTRY:T(24,173)=s8LimitLow:(5,11),0,16;BaseLow:(5,11),16,16;HighWord:(24,174)=u4Bytes:(24,175)=s4BaseMid:(5,10),0,8;Flags1:(5,10),8,8;Flags2:(5,10),16,8;BaseHi:(5,10),24,8;;,0,32;Bits:(24,176)=s4BaseMid:(5,1),0,8;Type:(5,1),8,5;Dpl:(5,1),13,2;Pres:(5,1),15,1;LimitHi:(5,1),16,4;Sys:(5,1),20,1;Reserved_0:(5,1),21,1;Default_Big:(5,1),22,1;Granularity:(5,1),23,1;BaseHi:(5,1),24,8;;,0,32;;,32,32;;LDT_ENTRY:t(24,177)=(24,173)PLDT_ENTRY:t(24,178)=(24,179)=*(24,173)LPLDT_ENTRY:t(24,180)=(24,179)_PROCESS_HEAP_ENTRY:T(24,181)=s28lpData:(5,28),0,32;cbData:(5,1),32,32;cbOverhead:(5,10),64,8;iRegionIndex:(5,10),72,8;wFlags:(5,11),80,16;:(24,182)=u16Block:(24,183)=s16hMem:(6,54),0,32;dwReserved:(6,513),32,96;;,0,128;Region:(24,184)=s16dwCommittedSize:(5,1),0,32;dwUnCommittedSize:(5,1),32,32;lpFirstBlock:(5,29),64,32;lpLastBlock:(5,29),96,32;;,0,128;;,96,128;;PROCESS_HEAP_ENTRY:t(24,185)=(24,181)LPPROCESS_HEAP_ENTRY:t(24,186)=(24,187)=*(24,181)_OFSTRUCT:T(24,188)=s136cBytes:(5,10),0,8;fFixedDisk:(5,10),8,8;nErrCode:(5,11),16,16;Reserved1:(5,11),32,16;Reserved2:(5,11),48,16;szPathName:(24,158),64,1024;;OFSTRUCT:t(24,189)=(24,188)LPOFSTRUCT:t(24,190)=(24,191)=*(24,188)POFSTRUCT:t(24,192)=(24,191)_WIN_CERTIFICATE:T(24,193)=s12dwLength:(5,1),0,32;wRevision:(5,11),32,16;wCertificateType:(5,11),48,16;bCertificate:(6,304),64,8;;WIN_CERTIFICATE:t(24,194)=(24,193)LPWIN_CERTIFICATE:t(24,195)=(24,196)=*(24,193)LPPROGRESS_ROUTINE:t(24,197)=(24,198)=*(24,199)=f(5,1)LPFIBER_START_ROUTINE:t(24,200)=(24,201)=*(24,202)=f(0,19)ENUMRESLANGPROC:t(24,203)=(24,204)=*(24,205)=f(5,6)ENUMRESNAMEPROC:t(24,206)=(24,207)=*(24,208)=f(5,6)ENUMRESTYPEPROC:t(24,209)=(24,210)=*(24,211)=f(5,6)LPOVERLAPPED_COMPLETION_ROUTINE:t(24,212)=(24,213)=*(24,214)=f(0,19)PTOP_LEVEL_EXCEPTION_FILTER:t(24,215)=(24,216)=*(24,217)=f(6,3)LPTOP_LEVEL_EXCEPTION_FILTER:t(24,218)=(24,215)PAPCFUNC:t(24,219)=(24,220)=*(24,221)=f(0,19)PTIMERAPCROUTINE:t(24,222)=(24,223)=*(24,224)=f(0,19)STARTUPINFO:t(24,225)=(24,80)LPSTARTUPINFO:t(24,226)=(24,227)=*(24,80)WIN32_FIND_DATA:t(24,228)=(24,111)LPWIN32_FIND_DATA:t(24,229)=(24,230)=*(24,111)HW_PROFILE_INFO:t(24,231)=(24,131)LPHW_PROFILE_INFO:t(24,232)=(24,233)=*(24,131)OSVERSIONINFO:t(24,234)=(24,159)POSVERSIONINFO:t(24,235)=(24,236)=*(24,159)LPOSVERSIONINFO:t(24,237)=(24,236)/usr/include/w32api/wingdi.h_ABC:T(25,1)=s12abcA:(0,1),0,32;abcB:(5,34),32,32;abcC:(0,1),64,32;;ABC:t(25,2)=(25,1)LPABC:t(25,3)=(25,4)=*(25,1)_ABCFLOAT:T(25,5)=s12abcfA:(5,12),0,32;abcfB:(5,12),32,32;abcfC:(5,12),64,32;;ABCFLOAT:t(25,6)=(25,5)LPABCFLOAT:t(25,7)=(25,8)=*(25,5)tagBITMAP:T(25,9)=s24bmType:(6,3),0,32;bmWidth:(6,3),32,32;bmHeight:(6,3),64,32;bmWidthBytes:(6,3),96,32;bmPlanes:(5,11),128,16;bmBitsPixel:(5,11),144,16;bmBits:(5,29),160,32;;BITMAP:t(25,10)=(25,9)PBITMAP:t(25,11)=(25,12)=*(25,9)LPBITMAP:t(25,13)=(25,12)tagBITMAPCOREHEADER:T(25,14)=s12bcSize:(5,1),0,32;bcWidth:(5,11),32,16;bcHeight:(5,11),48,16;bcPlanes:(5,11),64,16;bcBitCount:(5,11),80,16;;BITMAPCOREHEADER:t(25,15)=(25,14)LPBITMAPCOREHEADER:t(25,16)=(25,17)=*(25,14)PBITMAPCOREHEADER:t(25,18)=(25,17)tagRGBTRIPLE:T(25,19)=s3rgbtBlue:(5,10),0,8;rgbtGreen:(5,10),8,8;rgbtRed:(5,10),16,8;;RGBTRIPLE:t(25,20)=(25,19)tagBITMAPFILEHEADER:T(25,21)=s14bfType:(5,11),0,16;bfSize:(5,1),16,32;bfReserved1:(5,11),48,16;bfReserved2:(5,11),64,16;bfOffBits:(5,1),80,32;;BITMAPFILEHEADER:t(25,22)=(25,21)LPBITMAPFILEHEADER:t(25,23)=(25,24)=*(25,21)PBITMAPFILEHEADER:t(25,25)=(25,24)_BITMAPCOREINFO:T(25,26)=s16bmciHeader:(25,15),0,96;bmciColors:(25,27)=ar(0,1);0;0;(25,20),96,24;;BITMAPCOREINFO:t(25,28)=(25,26)LPBITMAPCOREINFO:t(25,29)=(25,30)=*(25,26)PBITMAPCOREINFO:t(25,31)=(25,30)tagBITMAPINFOHEADER:T(25,32)=s40biSize:(5,1),0,32;biWidth:(6,3),32,32;biHeight:(6,3),64,32;biPlanes:(5,11),96,16;biBitCount:(5,11),112,16;biCompression:(5,1),128,32;biSizeImage:(5,1),160,32;biXPelsPerMeter:(6,3),192,32;biYPelsPerMeter:(6,3),224,32;biClrUsed:(5,1),256,32;biClrImportant:(5,1),288,32;;BITMAPINFOHEADER:t(25,33)=(25,32)LPBITMAPINFOHEADER:t(25,34)=(25,35)=*(25,32)PBITMAPINFOHEADER:t(25,36)=(25,35)tagRGBQUAD:T(25,37)=s4rgbBlue:(5,10),0,8;rgbGreen:(5,10),8,8;rgbRed:(5,10),16,8;rgbReserved:(5,10),24,8;;RGBQUAD:t(25,38)=(25,37)tagBITMAPINFO:T(25,39)=s44bmiHeader:(25,33),0,320;bmiColors:(25,40)=ar(0,1);0;0;(25,38),320,32;;BITMAPINFO:t(25,41)=(25,39)LPBITMAPINFO:t(25,42)=(25,43)=*(25,39)PBITMAPINFO:t(25,44)=(25,43)FXPT16DOT16:t(25,45)=(0,3)LPFXPT16DOT16:t(25,46)=(5,24)FXPT2DOT30:t(25,47)=(0,3)LPFXPT2DOT30:t(25,48)=(5,24)tagCIEXYZ:T(25,49)=s12ciexyzX:(25,47),0,32;ciexyzY:(25,47),32,32;ciexyzZ:(25,47),64,32;;CIEXYZ:t(25,50)=(25,49)LPCIEXYZ:t(25,51)=(25,52)=*(25,49)tagCIEXYZTRIPLE:T(25,53)=s36ciexyzRed:(25,50),0,96;ciexyzGreen:(25,50),96,96;ciexyzBlue:(25,50),192,96;;CIEXYZTRIPLE:t(25,54)=(25,53)LPCIEXYZTRIPLE:t(25,55)=(25,56)=*(25,53)BITMAPV4HEADER:t(25,57)=(25,58)=s108bV4Size:(5,1),0,32;bV4Width:(6,3),32,32;bV4Height:(6,3),64,32;bV4Planes:(5,11),96,16;bV4BitCount:(5,11),112,16;bV4V4Compression:(5,1),128,32;bV4SizeImage:(5,1),160,32;bV4XPelsPerMeter:(6,3),192,32;bV4YPelsPerMeter:(6,3),224,32;bV4ClrUsed:(5,1),256,32;bV4ClrImportant:(5,1),288,32;bV4RedMask:(5,1),320,32;bV4GreenMask:(5,1),352,32;bV4BlueMask:(5,1),384,32;bV4AlphaMask:(5,1),416,32;bV4CSType:(5,1),448,32;bV4Endpoints:(25,54),480,288;bV4GammaRed:(5,1),768,32;bV4GammaGreen:(5,1),800,32;bV4GammaBlue:(5,1),832,32;;LPBITMAPV4HEADER:t(25,59)=(25,60)=*(25,58)PBITMAPV4HEADER:t(25,61)=(25,60)tagFONTSIGNATURE:T(25,62)=s24fsUsb:(6,353),0,128;fsCsb:(6,324),128,64;;FONTSIGNATURE:t(25,63)=(25,62)LPFONTSIGNATURE:t(25,64)=(25,65)=*(25,62)CHARSETINFO:t(25,66)=(25,67)=s32ciCharset:(5,34),0,32;ciACP:(5,34),32,32;fs:(25,63),64,192;;LPCHARSETINFO:t(25,68)=(25,69)=*(25,67)tagCOLORADJUSTMENT:T(25,70)=s24caSize:(5,11),0,16;caFlags:(5,11),16,16;caIlluminantIndex:(5,11),32,16;caRedGamma:(5,11),48,16;caGreenGamma:(5,11),64,16;caBlueGamma:(5,11),80,16;caReferenceBlack:(5,11),96,16;caReferenceWhite:(5,11),112,16;caContrast:(6,2),128,16;caBrightness:(6,2),144,16;caColorfulness:(6,2),160,16;caRedGreenTint:(6,2),176,16;;COLORADJUSTMENT:t(25,71)=(25,70)LPCOLORADJUSTMENT:t(25,72)=(25,73)=*(25,70)_devicemodeA:T(25,74)=s148dmDeviceName:(25,75)=ar(0,1);0;31;(5,10),0,256;dmSpecVersion:(5,11),256,16;dmDriverVersion:(5,11),272,16;dmSize:(5,11),288,16;dmDriverExtra:(5,11),304,16;dmFields:(5,1),320,32;dmOrientation:(0,8),352,16;dmPaperSize:(0,8),368,16;dmPaperLength:(0,8),384,16;dmPaperWidth:(0,8),400,16;dmScale:(0,8),416,16;dmCopies:(0,8),432,16;dmDefaultSource:(0,8),448,16;dmPrintQuality:(0,8),464,16;dmColor:(0,8),480,16;dmDuplex:(0,8),496,16;dmYResolution:(0,8),512,16;dmTTOption:(0,8),528,16;dmCollate:(0,8),544,16;dmFormName:(25,75),560,256;dmLogPixels:(5,11),816,16;dmBitsPerPel:(5,1),832,32;dmPelsWidth:(5,1),864,32;dmPelsHeight:(5,1),896,32;dmDisplayFlags:(5,1),928,32;dmDisplayFrequency:(5,1),960,32;dmICMMethod:(5,1),992,32;dmICMIntent:(5,1),1024,32;dmMediaType:(5,1),1056,32;dmDitherType:(5,1),1088,32;dmICCManufacturer:(5,1),1120,32;dmICCModel:(5,1),1152,32;;DEVMODEA:t(25,76)=(25,74)LPDEVMODEA:t(25,77)=(25,78)=*(25,74)PDEVMODEA:t(25,79)=(25,78)_devicemodeW:T(25,80)=s212dmDeviceName:(24,153),0,512;dmSpecVersion:(5,11),512,16;dmDriverVersion:(5,11),528,16;dmSize:(5,11),544,16;dmDriverExtra:(5,11),560,16;dmFields:(5,1),576,32;dmOrientation:(0,8),608,16;dmPaperSize:(0,8),624,16;dmPaperLength:(0,8),640,16;dmPaperWidth:(0,8),656,16;dmScale:(0,8),672,16;dmCopies:(0,8),688,16;dmDefaultSource:(0,8),704,16;dmPrintQuality:(0,8),720,16;dmColor:(0,8),736,16;dmDuplex:(0,8),752,16;dmYResolution:(0,8),768,16;dmTTOption:(0,8),784,16;dmCollate:(0,8),800,16;dmFormName:(24,153),816,512;dmLogPixels:(5,11),1328,16;dmBitsPerPel:(5,1),1344,32;dmPelsWidth:(5,1),1376,32;dmPelsHeight:(5,1),1408,32;dmDisplayFlags:(5,1),1440,32;dmDisplayFrequency:(5,1),1472,32;dmICMMethod:(5,1),1504,32;dmICMIntent:(5,1),1536,32;dmMediaType:(5,1),1568,32;dmDitherType:(5,1),1600,32;dmICCManufacturer:(5,1),1632,32;dmICCModel:(5,1),1664,32;;DEVMODEW:t(25,81)=(25,80)LPDEVMODEW:t(25,82)=(25,83)=*(25,80)PDEVMODEW:t(25,84)=(25,83)tagDIBSECTION:T(25,85)=s84dsBm:(25,10),0,192;dsBmih:(25,33),192,320;dsBitfields:(6,513),512,96;dshSection:(6,54),608,32;dsOffset:(5,1),640,32;;DIBSECTION:t(25,86)=(25,85)DOCINFO:t(25,87)=(25,88)=s20cbSize:(0,1),0,32;lpszDocName:(6,48),32,32;lpszOutput:(6,48),64,32;lpszDatatype:(6,48),96,32;fwType:(5,1),128,32;;LPDOCINFO:t(25,89)=(25,90)=*(25,88)tagEMR:T(25,91)=s8iType:(5,1),0,32;nSize:(5,1),32,32;;EMR:t(25,92)=(25,91)PEMR:t(25,93)=(25,94)=*(25,91)tagEMRANGLEARC:T(25,95)=s28emr:(25,92),0,64;ptlCenter:(5,153),64,64;nRadius:(5,1),128,32;eStartAngle:(5,12),160,32;eSweepAngle:(5,12),192,32;;EMRANGLEARC:t(25,96)=(25,95)PEMRANGLEARC:t(25,97)=(25,98)=*(25,95)tagEMRARC:T(25,99)=s40emr:(25,92),0,64;rclBox:(5,145),64,128;ptlStart:(5,153),192,64;ptlEnd:(5,153),256,64;;EMRARC:t(25,100)=(25,99)PEMRARC:t(25,101)=(25,102)=*(25,99)EMRARCTO:t(25,103)=(25,99)PEMRARCTO:t(25,104)=(25,102)EMRCHORD:t(25,105)=(25,99)PEMRCHORD:t(25,106)=(25,102)EMRPIE:t(25,107)=(25,99)PEMRPIE:t(25,108)=(25,102)_XFORM:T(25,109)=s24eM11:(5,12),0,32;eM12:(5,12),32,32;eM21:(5,12),64,32;eM22:(5,12),96,32;eDx:(5,12),128,32;eDy:(5,12),160,32;;XFORM:t(25,110)=(25,109)LPXFORM:t(25,111)=(25,112)=*(25,109)tagEMRBITBLT:T(25,113)=s96emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;cxDest:(6,3),256,32;cyDest:(6,3),288,32;dwRop:(5,1),320,32;xSrc:(6,3),352,32;ySrc:(6,3),384,32;xformSrc:(25,110),416,192;crBkColorSrc:(5,131),608,32;iUsageSrc:(5,1),640,32;offBmiSrc:(5,1),672,32;offBitsSrc:(5,1),704,32;cbBitsSrc:(5,1),736,32;;EMRBITBLT:t(25,114)=(25,113)PEMRBITBLT:t(25,115)=(25,116)=*(25,113)tagLOGBRUSH:T(25,117)=s12lbStyle:(5,34),0,32;lbColor:(5,131),32,32;lbHatch:(6,3),64,32;;LOGBRUSH:t(25,118)=(25,117)LPLOGBRUSH:t(25,119)=(25,120)=*(25,117)PATTERN:t(25,121)=(25,118)PPATTERN:t(25,122)=(25,123)=*(25,118)LPPATTERN:t(25,124)=(25,123)tagEMRCREATEBRUSHINDIRECT:T(25,125)=s24emr:(25,92),0,64;ihBrush:(5,1),64,32;lb:(25,118),96,96;;EMRCREATEBRUSHINDIRECT:t(25,126)=(25,125)PEMRCREATEBRUSHINDIRECT:t(25,127)=(25,128)=*(25,125)LCSCSTYPE:t(25,129)=(6,3)LCSGAMUTMATCH:t(25,130)=(6,3)tagLOGCOLORSPACEA:T(25,131)=s328lcsSignature:(5,1),0,32;lcsVersion:(5,1),32,32;lcsSize:(5,1),64,32;lcsCSType:(25,129),96,32;lcsIntent:(25,130),128,32;lcsEndpoints:(25,54),160,288;lcsGammaRed:(5,1),448,32;lcsGammaGreen:(5,1),480,32;lcsGammaBlue:(5,1),512,32;lcsFilename:(24,109),544,2080;;LOGCOLORSPACEA:t(25,132)=(25,131)LPLOGCOLORSPACEA:t(25,133)=(25,134)=*(25,131)tagLOGCOLORSPACEW:T(25,135)=s588lcsSignature:(5,1),0,32;lcsVersion:(5,1),32,32;lcsSize:(5,1),64,32;lcsCSType:(25,129),96,32;lcsIntent:(25,130),128,32;lcsEndpoints:(25,54),160,288;lcsGammaRed:(5,1),448,32;lcsGammaGreen:(5,1),480,32;lcsGammaBlue:(5,1),512,32;lcsFilename:(24,115),544,4160;;LOGCOLORSPACEW:t(25,136)=(25,135)LPLOGCOLORSPACEW:t(25,137)=(25,138)=*(25,135)tagEMRCREATECOLORSPACE:T(25,139)=s600emr:(25,92),0,64;ihCS:(5,1),64,32;lcs:(25,136),96,4704;;EMRCREATECOLORSPACE:t(25,140)=(25,139)PEMRCREATECOLORSPACE:t(25,141)=(25,142)=*(25,139)tagEMRCREATEDIBPATTERNBRUSHPT:T(25,143)=s32emr:(25,92),0,64;ihBrush:(5,1),64,32;iUsage:(5,1),96,32;offBmi:(5,1),128,32;cbBmi:(5,1),160,32;offBits:(5,1),192,32;cbBits:(5,1),224,32;;EMRCREATEDIBPATTERNBRUSHPT:t(25,144)=(25,143)PEMRCREATEDIBPATTERNBRUSHPT:t(25,145)=(25,146)=*(25,143)tagEMRCREATEMONOBRUSH:T(25,147)=s32emr:(25,92),0,64;ihBrush:(5,1),64,32;iUsage:(5,1),96,32;offBmi:(5,1),128,32;cbBmi:(5,1),160,32;offBits:(5,1),192,32;cbBits:(5,1),224,32;;EMRCREATEMONOBRUSH:t(25,148)=(25,147)PEMRCREATEMONOBRUSH:t(25,149)=(25,150)=*(25,147)tagPALETTEENTRY:T(25,151)=s4peRed:(5,10),0,8;peGreen:(5,10),8,8;peBlue:(5,10),16,8;peFlags:(5,10),24,8;;PALETTEENTRY:t(25,152)=(25,151)LPPALETTEENTRY:t(25,153)=(25,154)=*(25,151)PPALETTEENTRY:t(25,155)=(25,154)tagLOGPALETTE:T(25,156)=s8palVersion:(5,11),0,16;palNumEntries:(5,11),16,16;palPalEntry:(25,157)=ar(0,1);0;0;(25,152),32,32;;LOGPALETTE:t(25,158)=(25,156)NPLOGPALETTE:t(25,159)=(25,160)=*(25,156)PLOGPALETTE:t(25,161)=(25,160)LPLOGPALETTE:t(25,162)=(25,160)tagEMRCREATEPALETTE:T(25,163)=s20emr:(25,92),0,64;ihPal:(5,1),64,32;lgpl:(25,158),96,64;;EMRCREATEPALETTE:t(25,164)=(25,163)PEMRCREATEPALETTE:t(25,165)=(25,166)=*(25,163)tagLOGPEN:T(25,167)=s16lopnStyle:(5,34),0,32;lopnWidth:(5,152),32,64;lopnColor:(5,131),96,32;;LOGPEN:t(25,168)=(25,167)LPLOGPEN:t(25,169)=(25,170)=*(25,167)tagEMRCREATEPEN:T(25,171)=s28emr:(25,92),0,64;ihPen:(5,1),64,32;lopn:(25,168),96,128;;EMRCREATEPEN:t(25,172)=(25,171)PEMRCREATEPEN:t(25,173)=(25,174)=*(25,171)tagEMRELLIPSE:T(25,175)=s24emr:(25,92),0,64;rclBox:(5,145),64,128;;EMRELLIPSE:t(25,176)=(25,175)PEMRELLIPSE:t(25,177)=(25,178)=*(25,175)EMRRECTANGLE:t(25,179)=(25,175)PEMRRECTANGLE:t(25,180)=(25,178)tagEMREOF:T(25,181)=s20emr:(25,92),0,64;nPalEntries:(5,1),64,32;offPalEntries:(5,1),96,32;nSizeLast:(5,1),128,32;;EMREOF:t(25,182)=(25,181)PEMREOF:t(25,183)=(25,184)=*(25,181)tagEMREXCLUDECLIPRECT:T(25,185)=s24emr:(25,92),0,64;rclClip:(5,145),64,128;;EMREXCLUDECLIPRECT:t(25,186)=(25,185)PEMREXCLUDECLIPRECT:t(25,187)=(25,188)=*(25,185)EMRINTERSECTCLIPRECT:t(25,189)=(25,185)PEMRINTERSECTCLIPRECT:t(25,190)=(25,188)tagPANOSE:T(25,191)=s10bFamilyType:(5,10),0,8;bSerifStyle:(5,10),8,8;bWeight:(5,10),16,8;bProportion:(5,10),24,8;bContrast:(5,10),32,8;bStrokeVariation:(5,10),40,8;bArmStyle:(5,10),48,8;bLetterform:(5,10),56,8;bMidline:(5,10),64,8;bXHeight:(5,10),72,8;;PANOSE:t(25,192)=(25,191)tagLOGFONTA:T(25,193)=s60lfHeight:(6,3),0,32;lfWidth:(6,3),32,32;lfEscapement:(6,3),64,32;lfOrientation:(6,3),96,32;lfWeight:(6,3),128,32;lfItalic:(5,10),160,8;lfUnderline:(5,10),168,8;lfStrikeOut:(5,10),176,8;lfCharSet:(5,10),184,8;lfOutPrecision:(5,10),192,8;lfClipPrecision:(5,10),200,8;lfQuality:(5,10),208,8;lfPitchAndFamily:(5,10),216,8;lfFaceName:(25,194)=ar(0,1);0;31;(6,1),224,256;;LOGFONTA:t(25,195)=(25,193)PLOGFONTA:t(25,196)=(25,197)=*(25,193)LPLOGFONTA:t(25,198)=(25,197)tagLOGFONTW:T(25,199)=s92lfHeight:(6,3),0,32;lfWidth:(6,3),32,32;lfEscapement:(6,3),64,32;lfOrientation:(6,3),96,32;lfWeight:(6,3),128,32;lfItalic:(5,10),160,8;lfUnderline:(5,10),168,8;lfStrikeOut:(5,10),176,8;lfCharSet:(5,10),184,8;lfOutPrecision:(5,10),192,8;lfClipPrecision:(5,10),200,8;lfQuality:(5,10),208,8;lfPitchAndFamily:(5,10),216,8;lfFaceName:(24,153),224,512;;LOGFONTW:t(25,200)=(25,199)PLOGFONTW:t(25,201)=(25,202)=*(25,199)LPLOGFONTW:t(25,203)=(25,202)tagEXTLOGFONTA:T(25,204)=s192elfLogFont:(25,195),0,480;elfFullName:(25,205)=ar(0,1);0;63;(5,10),480,512;elfStyle:(25,75),992,256;elfVersion:(5,1),1248,32;elfStyleSize:(5,1),1280,32;elfMatch:(5,1),1312,32;elfReserved:(5,1),1344,32;elfVendorId:(25,206)=ar(0,1);0;3;(5,10),1376,32;elfCulture:(5,1),1408,32;elfPanose:(25,192),1440,80;;EXTLOGFONTA:t(25,207)=(25,204)PEXTLOGFONTA:t(25,208)=(25,209)=*(25,204)LPEXTLOGFONTA:t(25,210)=(25,209)tagEXTLOGFONTW:T(25,211)=s320elfLogFont:(25,200),0,736;elfFullName:(25,212)=ar(0,1);0;63;(6,14),736,1024;elfStyle:(24,153),1760,512;elfVersion:(5,1),2272,32;elfStyleSize:(5,1),2304,32;elfMatch:(5,1),2336,32;elfReserved:(5,1),2368,32;elfVendorId:(25,206),2400,32;elfCulture:(5,1),2432,32;elfPanose:(25,192),2464,80;;EXTLOGFONTW:t(25,213)=(25,211)PEXTLOGFONTW:t(25,214)=(25,215)=*(25,211)LPEXTLOGFONTW:t(25,216)=(25,215)tagEMREXTCREATEFONTINDIRECTW:T(25,217)=s332emr:(25,92),0,64;ihFont:(5,1),64,32;elfw:(25,213),96,2560;;EMREXTCREATEFONTINDIRECTW:t(25,218)=(25,217)PEMREXTCREATEFONTINDIRECTW:t(25,219)=(25,220)=*(25,217)tagEXTLOGPEN:T(25,221)=s28elpPenStyle:(5,34),0,32;elpWidth:(5,34),32,32;elpBrushStyle:(5,34),64,32;elpColor:(5,131),96,32;elpHatch:(6,3),128,32;elpNumEntries:(5,1),160,32;elpStyleEntry:(6,188),192,32;;EXTLOGPEN:t(25,222)=(25,221)PEXTLOGPEN:t(25,223)=(25,224)=*(25,221)LPEXTLOGPEN:t(25,225)=(25,224)tagEMREXTCREATEPEN:T(25,226)=s56emr:(25,92),0,64;ihPen:(5,1),64,32;offBmi:(5,1),96,32;cbBmi:(5,1),128,32;offBits:(5,1),160,32;cbBits:(5,1),192,32;elp:(25,222),224,224;;EMREXTCREATEPEN:t(25,227)=(25,226)PEMREXTCREATEPEN:t(25,228)=(25,229)=*(25,226)tagEMREXTFLOODFILL:T(25,230)=s24emr:(25,92),0,64;ptlStart:(5,153),64,64;crColor:(5,131),128,32;iMode:(5,1),160,32;;EMREXTFLOODFILL:t(25,231)=(25,230)PEMREXTFLOODFILL:t(25,232)=(25,233)=*(25,230)tagEMREXTSELECTCLIPRGN:T(25,234)=s20emr:(25,92),0,64;cbRgnData:(5,1),64,32;iMode:(5,1),96,32;RgnData:(6,304),128,8;;EMREXTSELECTCLIPRGN:t(25,235)=(25,234)PEMREXTSELECTCLIPRGN:t(25,236)=(25,237)=*(25,234)tagEMRTEXT:T(25,238)=s40ptlReference:(5,153),0,64;nChars:(5,1),64,32;offString:(5,1),96,32;fOptions:(5,1),128,32;rcl:(5,145),160,128;offDx:(5,1),288,32;;EMRTEXT:t(25,239)=(25,238)PEMRTEXT:t(25,240)=(25,241)=*(25,238)tagEMREXTTEXTOUTA:T(25,242)=s76emr:(25,92),0,64;rclBounds:(5,145),64,128;iGraphicsMode:(5,1),192,32;exScale:(5,12),224,32;eyScale:(5,12),256,32;emrtext:(25,239),288,320;;EMREXTTEXTOUTA:t(25,243)=(25,242)PEMREXTTEXTOUTA:t(25,244)=(25,245)=*(25,242)EMREXTTEXTOUTW:t(25,246)=(25,242)PEMREXTTEXTOUTW:t(25,247)=(25,245)tagEMRFILLPATH:T(25,248)=s24emr:(25,92),0,64;rclBounds:(5,145),64,128;;EMRFILLPATH:t(25,249)=(25,248)PEMRFILLPATH:t(25,250)=(25,251)=*(25,248)EMRSTROKEANDFILLPATH:t(25,252)=(25,248)PEMRSTROKEANDFILLPATH:t(25,253)=(25,251)EMRSTROKEPATH:t(25,254)=(25,248)PEMRSTROKEPATH:t(25,255)=(25,251)tagEMRFILLRGN:T(25,256)=s36emr:(25,92),0,64;rclBounds:(5,145),64,128;cbRgnData:(5,1),192,32;ihBrush:(5,1),224,32;RgnData:(6,304),256,8;;EMRFILLRGN:t(25,257)=(25,256)PEMRFILLRGN:t(25,258)=(25,259)=*(25,256)tagEMRFORMAT:T(25,260)=s16dSignature:(5,1),0,32;nVersion:(5,1),32,32;cbData:(5,1),64,32;offData:(5,1),96,32;;EMRFORMAT:t(25,261)=(25,260)tagEMRFRAMERGN:T(25,262)=s44emr:(25,92),0,64;rclBounds:(5,145),64,128;cbRgnData:(5,1),192,32;ihBrush:(5,1),224,32;szlStroke:(5,161),256,64;RgnData:(6,304),320,8;;EMRFRAMERGN:t(25,263)=(25,262)PEMRFRAMERGN:t(25,264)=(25,265)=*(25,262)tagEMRGDICOMMENT:T(25,266)=s16emr:(25,92),0,64;cbData:(5,1),64,32;Data:(6,304),96,8;;EMRGDICOMMENT:t(25,267)=(25,266)PEMRGDICOMMENT:t(25,268)=(25,269)=*(25,266)tagEMRINVERTRGN:T(25,270)=s32emr:(25,92),0,64;rclBounds:(5,145),64,128;cbRgnData:(5,1),192,32;RgnData:(6,304),224,8;;EMRINVERTRGN:t(25,271)=(25,270)PEMRINVERTRGN:t(25,272)=(25,273)=*(25,270)EMRPAINTRGN:t(25,274)=(25,270)PEMRPAINTRGN:t(25,275)=(25,273)tagEMRLINETO:T(25,276)=s16emr:(25,92),0,64;ptl:(5,153),64,64;;EMRLINETO:t(25,277)=(25,276)PEMRLINETO:t(25,278)=(25,279)=*(25,276)EMRMOVETOEX:t(25,280)=(25,276)PEMRMOVETOEX:t(25,281)=(25,279)tagEMRMASKBLT:T(25,282)=s128emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;cxDest:(6,3),256,32;cyDest:(6,3),288,32;dwRop:(5,1),320,32;xSrc:(6,3),352,32;ySrc:(6,3),384,32;xformSrc:(25,110),416,192;crBkColorSrc:(5,131),608,32;iUsageSrc:(5,1),640,32;offBmiSrc:(5,1),672,32;cbBmiSrc:(5,1),704,32;offBitsSrc:(5,1),736,32;cbBitsSrc:(5,1),768,32;xMask:(6,3),800,32;yMask:(6,3),832,32;iUsageMask:(5,1),864,32;offBmiMask:(5,1),896,32;cbBmiMask:(5,1),928,32;offBitsMask:(5,1),960,32;cbBitsMask:(5,1),992,32;;EMRMASKBLT:t(25,283)=(25,282)PEMRMASKBLT:t(25,284)=(25,285)=*(25,282)tagEMRMODIFYWORLDTRANSFORM:T(25,286)=s36emr:(25,92),0,64;xform:(25,110),64,192;iMode:(5,1),256,32;;EMRMODIFYWORLDTRANSFORM:t(25,287)=(25,286)PEMRMODIFYWORLDTRANSFORM:t(25,288)=(25,289)=*(25,286)tagEMROFFSETCLIPRGN:T(25,290)=s16emr:(25,92),0,64;ptlOffset:(5,153),64,64;;EMROFFSETCLIPRGN:t(25,291)=(25,290)PEMROFFSETCLIPRGN:t(25,292)=(25,293)=*(25,290)tagEMRPLGBLT:T(25,294)=s140emr:(25,92),0,64;rclBounds:(5,145),64,128;aptlDest:(25,295)=ar(0,1);0;2;(5,153),192,192;xSrc:(6,3),384,32;ySrc:(6,3),416,32;cxSrc:(6,3),448,32;cySrc:(6,3),480,32;xformSrc:(25,110),512,192;crBkColorSrc:(5,131),704,32;iUsageSrc:(5,1),736,32;offBmiSrc:(5,1),768,32;cbBmiSrc:(5,1),800,32;offBitsSrc:(5,1),832,32;cbBitsSrc:(5,1),864,32;xMask:(6,3),896,32;yMask:(6,3),928,32;iUsageMask:(5,1),960,32;offBmiMask:(5,1),992,32;cbBmiMask:(5,1),1024,32;offBitsMask:(5,1),1056,32;cbBitsMask:(5,1),1088,32;;EMRPLGBLT:t(25,296)=(25,294)PEMRPLGBLT:t(25,297)=(25,298)=*(25,294)tagEMRPOLYDRAW:T(25,299)=s40emr:(25,92),0,64;rclBounds:(5,145),64,128;cptl:(5,1),192,32;aptl:(25,300)=ar(0,1);0;0;(5,153),224,64;abTypes:(6,304),288,8;;EMRPOLYDRAW:t(25,301)=(25,299)PEMRPOLYDRAW:t(25,302)=(25,303)=*(25,299)tagEMRPOLYDRAW16:T(25,304)=s36emr:(25,92),0,64;rclBounds:(5,145),64,128;cpts:(5,1),192,32;apts:(25,305)=ar(0,1);0;0;(5,168),224,32;abTypes:(6,304),256,8;;EMRPOLYDRAW16:t(25,306)=(25,304)PEMRPOLYDRAW16:t(25,307)=(25,308)=*(25,304)tagEMRPOLYLINE:T(25,309)=s36emr:(25,92),0,64;rclBounds:(5,145),64,128;cptl:(5,1),192,32;aptl:(25,300),224,64;;EMRPOLYLINE:t(25,310)=(25,309)PEMRPOLYLINE:t(25,311)=(25,312)=*(25,309)EMRPOLYBEZIER:t(25,313)=(25,309)PEMRPOLYBEZIER:t(25,314)=(25,312)EMRPOLYGON:t(25,315)=(25,309)PEMRPOLYGON:t(25,316)=(25,312)EMRPOLYBEZIERTO:t(25,317)=(25,309)PEMRPOLYBEZIERTO:t(25,318)=(25,312)EMRPOLYLINETO:t(25,319)=(25,309)PEMRPOLYLINETO:t(25,320)=(25,312)tagEMRPOLYLINE16:T(25,321)=s36emr:(25,92),0,64;rclBounds:(5,145),64,128;cpts:(5,1),192,32;apts:(25,300),224,64;;EMRPOLYLINE16:t(25,322)=(25,321)PEMRPOLYLINE16:t(25,323)=(25,324)=*(25,321)EMRPOLYBEZIER16:t(25,325)=(25,321)PEMRPOLYBEZIER16:t(25,326)=(25,324)EMRPOLYGON16:t(25,327)=(25,321)PEMRPOLYGON16:t(25,328)=(25,324)EMRPOLYBEZIERTO16:t(25,329)=(25,321)PEMRPOLYBEZIERTO16:t(25,330)=(25,324)EMRPOLYLINETO16:t(25,331)=(25,321)PEMRPOLYLINETO16:t(25,332)=(25,324)tagEMRPOLYPOLYLINE:T(25,333)=s44emr:(25,92),0,64;rclBounds:(5,145),64,128;nPolys:(5,1),192,32;cptl:(5,1),224,32;aPolyCounts:(6,188),256,32;aptl:(25,300),288,64;;EMRPOLYPOLYLINE:t(25,334)=(25,333)PEMRPOLYPOLYLINE:t(25,335)=(25,336)=*(25,333)EMRPOLYPOLYGON:t(25,337)=(25,333)PEMRPOLYPOLYGON:t(25,338)=(25,336)tagEMRPOLYPOLYLINE16:T(25,339)=s40emr:(25,92),0,64;rclBounds:(5,145),64,128;nPolys:(5,1),192,32;cpts:(5,1),224,32;aPolyCounts:(6,188),256,32;apts:(25,305),288,32;;EMRPOLYPOLYLINE16:t(25,340)=(25,339)PEMRPOLYPOLYLINE16:t(25,341)=(25,342)=*(25,339)EMRPOLYPOLYGON16:t(25,343)=(25,339)PEMRPOLYPOLYGON16:t(25,344)=(25,342)tagEMRPOLYTEXTOUTA:T(25,345)=s80emr:(25,92),0,64;rclBounds:(5,145),64,128;iGraphicsMode:(5,1),192,32;exScale:(5,12),224,32;eyScale:(5,12),256,32;cStrings:(6,3),288,32;aemrtext:(25,346)=ar(0,1);0;0;(25,239),320,320;;EMRPOLYTEXTOUTA:t(25,347)=(25,345)PEMRPOLYTEXTOUTA:t(25,348)=(25,349)=*(25,345)EMRPOLYTEXTOUTW:t(25,350)=(25,345)PEMRPOLYTEXTOUTW:t(25,351)=(25,349)tagEMRRESIZEPALETTE:T(25,352)=s16emr:(25,92),0,64;ihPal:(5,1),64,32;cEntries:(5,1),96,32;;EMRRESIZEPALETTE:t(25,353)=(25,352)PEMRRESIZEPALETTE:t(25,354)=(25,355)=*(25,352)tagEMRRESTOREDC:T(25,356)=s12emr:(25,92),0,64;iRelative:(6,3),64,32;;EMRRESTOREDC:t(25,357)=(25,356)PEMRRESTOREDC:t(25,358)=(25,359)=*(25,356)tagEMRROUNDRECT:T(25,360)=s32emr:(25,92),0,64;rclBox:(5,145),64,128;szlCorner:(5,161),192,64;;EMRROUNDRECT:t(25,361)=(25,360)PEMRROUNDRECT:t(25,362)=(25,363)=*(25,360)tagEMRSCALEVIEWPORTEXTEX:T(25,364)=s24emr:(25,92),0,64;xNum:(6,3),64,32;xDenom:(6,3),96,32;yNum:(6,3),128,32;yDenom:(6,3),160,32;;EMRSCALEVIEWPORTEXTEX:t(25,365)=(25,364)PEMRSCALEVIEWPORTEXTEX:t(25,366)=(25,367)=*(25,364)EMRSCALEWINDOWEXTEX:t(25,368)=(25,364)PEMRSCALEWINDOWEXTEX:t(25,369)=(25,367)tagEMRSELECTCOLORSPACE:T(25,370)=s12emr:(25,92),0,64;ihCS:(5,1),64,32;;EMRSELECTCOLORSPACE:t(25,371)=(25,370)PEMRSELECTCOLORSPACE:t(25,372)=(25,373)=*(25,370)EMRDELETECOLORSPACE:t(25,374)=(25,370)PEMRDELETECOLORSPACE:t(25,375)=(25,373)tagEMRSELECTOBJECT:T(25,376)=s12emr:(25,92),0,64;ihObject:(5,1),64,32;;EMRSELECTOBJECT:t(25,377)=(25,376)PEMRSELECTOBJECT:t(25,378)=(25,379)=*(25,376)EMRDELETEOBJECT:t(25,380)=(25,376)PEMRDELETEOBJECT:t(25,381)=(25,379)tagEMRSELECTPALETTE:T(25,382)=s12emr:(25,92),0,64;ihPal:(5,1),64,32;;EMRSELECTPALETTE:t(25,383)=(25,382)PEMRSELECTPALETTE:t(25,384)=(25,385)=*(25,382)tagEMRSETARCDIRECTION:T(25,386)=s12emr:(25,92),0,64;iArcDirection:(5,1),64,32;;EMRSETARCDIRECTION:t(25,387)=(25,386)PEMRSETARCDIRECTION:t(25,388)=(25,389)=*(25,386)tagEMRSETTEXTCOLOR:T(25,390)=s12emr:(25,92),0,64;crColor:(5,131),64,32;;EMRSETBKCOLOR:t(25,391)=(25,390)PEMRSETBKCOLOR:t(25,392)=(25,393)=*(25,390)EMRSETTEXTCOLOR:t(25,394)=(25,390)PEMRSETTEXTCOLOR:t(25,395)=(25,393)tagEMRSETCOLORADJUSTMENT:T(25,396)=s32emr:(25,92),0,64;ColorAdjustment:(25,71),64,192;;EMRSETCOLORADJUSTMENT:t(25,397)=(25,396)PEMRSETCOLORADJUSTMENT:t(25,398)=(25,399)=*(25,396)tagEMRSETDIBITSTODEVICE:T(25,400)=s76emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;xSrc:(6,3),256,32;ySrc:(6,3),288,32;cxSrc:(6,3),320,32;cySrc:(6,3),352,32;offBmiSrc:(5,1),384,32;cbBmiSrc:(5,1),416,32;offBitsSrc:(5,1),448,32;cbBitsSrc:(5,1),480,32;iUsageSrc:(5,1),512,32;iStartScan:(5,1),544,32;cScans:(5,1),576,32;;EMRSETDIBITSTODEVICE:t(25,401)=(25,400)PEMRSETDIBITSTODEVICE:t(25,402)=(25,403)=*(25,400)tagEMRSETMAPPERFLAGS:T(25,404)=s12emr:(25,92),0,64;dwFlags:(5,1),64,32;;EMRSETMAPPERFLAGS:t(25,405)=(25,404)PEMRSETMAPPERFLAGS:t(25,406)=(25,407)=*(25,404)tagEMRSETMITERLIMIT:T(25,408)=s12emr:(25,92),0,64;eMiterLimit:(5,12),64,32;;EMRSETMITERLIMIT:t(25,409)=(25,408)PEMRSETMITERLIMIT:t(25,410)=(25,411)=*(25,408)tagEMRSETPALETTEENTRIES:T(25,412)=s24emr:(25,92),0,64;ihPal:(5,1),64,32;iStart:(5,1),96,32;cEntries:(5,1),128,32;aPalEntries:(25,157),160,32;;EMRSETPALETTEENTRIES:t(25,413)=(25,412)PEMRSETPALETTEENTRIES:t(25,414)=(25,415)=*(25,412)tagEMRSETPIXELV:T(25,416)=s20emr:(25,92),0,64;ptlPixel:(5,153),64,64;crColor:(5,131),128,32;;EMRSETPIXELV:t(25,417)=(25,416)PEMRSETPIXELV:t(25,418)=(25,419)=*(25,416)tagEMRSETVIEWPORTEXTEX:T(25,420)=s16emr:(25,92),0,64;szlExtent:(5,161),64,64;;EMRSETVIEWPORTEXTEX:t(25,421)=(25,420)PEMRSETVIEWPORTEXTEX:t(25,422)=(25,423)=*(25,420)EMRSETWINDOWEXTEX:t(25,424)=(25,420)PEMRSETWINDOWEXTEX:t(25,425)=(25,423)tagEMRSETVIEWPORTORGEX:T(25,426)=s16emr:(25,92),0,64;ptlOrigin:(5,153),64,64;;EMRSETVIEWPORTORGEX:t(25,427)=(25,426)PEMRSETVIEWPORTORGEX:t(25,428)=(25,429)=*(25,426)EMRSETWINDOWORGEX:t(25,430)=(25,426)PEMRSETWINDOWORGEX:t(25,431)=(25,429)EMRSETBRUSHORGEX:t(25,432)=(25,426)PEMRSETBRUSHORGEX:t(25,433)=(25,429)tagEMRSETWORLDTRANSFORM:T(25,434)=s32emr:(25,92),0,64;xform:(25,110),64,192;;EMRSETWORLDTRANSFORM:t(25,435)=(25,434)PEMRSETWORLDTRANSFORM:t(25,436)=(25,437)=*(25,434)tagEMRSTRETCHBLT:T(25,438)=s108emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;cxDest:(6,3),256,32;cyDest:(6,3),288,32;dwRop:(5,1),320,32;xSrc:(6,3),352,32;ySrc:(6,3),384,32;xformSrc:(25,110),416,192;crBkColorSrc:(5,131),608,32;iUsageSrc:(5,1),640,32;offBmiSrc:(5,1),672,32;cbBmiSrc:(5,1),704,32;offBitsSrc:(5,1),736,32;cbBitsSrc:(5,1),768,32;cxSrc:(6,3),800,32;cySrc:(6,3),832,32;;EMRSTRETCHBLT:t(25,439)=(25,438)PEMRSTRETCHBLT:t(25,440)=(25,441)=*(25,438)tagEMRSTRETCHDIBITS:T(25,442)=s80emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;xSrc:(6,3),256,32;ySrc:(6,3),288,32;cxSrc:(6,3),320,32;cySrc:(6,3),352,32;offBmiSrc:(5,1),384,32;cbBmiSrc:(5,1),416,32;offBitsSrc:(5,1),448,32;cbBitsSrc:(5,1),480,32;iUsageSrc:(5,1),512,32;dwRop:(5,1),544,32;cxDest:(6,3),576,32;cyDest:(6,3),608,32;;EMRSTRETCHDIBITS:t(25,443)=(25,442)PEMRSTRETCHDIBITS:t(25,444)=(25,445)=*(25,442)tagABORTPATH:T(25,446)=s8emr:(25,92),0,64;;EMRABORTPATH:t(25,447)=(25,446)PEMRABORTPATH:t(25,448)=(25,449)=*(25,446)EMRBEGINPATH:t(25,450)=(25,446)PEMRBEGINPATH:t(25,451)=(25,449)EMRENDPATH:t(25,452)=(25,446)PEMRENDPATH:t(25,453)=(25,449)EMRCLOSEFIGURE:t(25,454)=(25,446)PEMRCLOSEFIGURE:t(25,455)=(25,449)EMRFLATTENPATH:t(25,456)=(25,446)PEMRFLATTENPATH:t(25,457)=(25,449)EMRWIDENPATH:t(25,458)=(25,446)PEMRWIDENPATH:t(25,459)=(25,449)EMRSETMETARGN:t(25,460)=(25,446)PEMRSETMETARGN:t(25,461)=(25,449)EMRSAVEDC:t(25,462)=(25,446)PEMRSAVEDC:t(25,463)=(25,449)EMRREALIZEPALETTE:t(25,464)=(25,446)PEMRREALIZEPALETTE:t(25,465)=(25,449)tagEMRSELECTCLIPPATH:T(25,466)=s12emr:(25,92),0,64;iMode:(5,1),64,32;;EMRSELECTCLIPPATH:t(25,467)=(25,466)PEMRSELECTCLIPPATH:t(25,468)=(25,469)=*(25,466)EMRSETBKMODE:t(25,470)=(25,466)PEMRSETBKMODE:t(25,471)=(25,469)EMRSETMAPMODE:t(25,472)=(25,466)PEMRSETMAPMODE:t(25,473)=(25,469)EMRSETPOLYFILLMODE:t(25,474)=(25,466)PEMRSETPOLYFILLMODE:t(25,475)=(25,469)EMRSETROP2:t(25,476)=(25,466)PEMRSETROP2:t(25,477)=(25,469)EMRSETSTRETCHBLTMODE:t(25,478)=(25,466)PEMRSETSTRETCHBLTMODE:t(25,479)=(25,469)EMRSETTEXTALIGN:t(25,480)=(25,466)PEMRSETTEXTALIGN:t(25,481)=(25,469)EMRENABLEICM:t(25,482)=(25,466)PEMRENABLEICM:t(25,483)=(25,469)tagMETAHEADER:T(25,484)=s18mtType:(5,11),0,16;mtHeaderSize:(5,11),16,16;mtVersion:(5,11),32,16;mtSize:(5,1),48,32;mtNoObjects:(5,11),80,16;mtMaxRecord:(5,1),96,32;mtNoParameters:(5,11),128,16;;METAHEADER:t(25,485)=(25,484)PMETAHEADER:t(25,486)=(25,487)=*(25,484)LPMETAHEADER:t(25,488)=(25,487)tagENHMETAHEADER:T(25,489)=s88iType:(5,1),0,32;nSize:(5,1),32,32;rclBounds:(5,145),64,128;rclFrame:(5,145),192,128;dSignature:(5,1),320,32;nVersion:(5,1),352,32;nBytes:(5,1),384,32;nRecords:(5,1),416,32;nHandles:(5,11),448,16;sReserved:(5,11),464,16;nDescription:(5,1),480,32;offDescription:(5,1),512,32;nPalEntries:(5,1),544,32;szlDevice:(5,161),576,64;szlMillimeters:(5,161),640,64;;ENHMETAHEADER:t(25,490)=(25,489)LPENHMETAHEADER:t(25,491)=(25,492)=*(25,489)tagMETARECORD:T(25,493)=s8rdSize:(5,1),0,32;rdFunction:(5,11),32,16;rdParm:(25,494)=ar(0,1);0;0;(5,11),48,16;;METARECORD:t(25,495)=(25,493)PMETARECORD:t(25,496)=(25,497)=*(25,493)LPMETARECORD:t(25,498)=(25,497)tagENHMETARECORD:T(25,499)=s12iType:(5,1),0,32;nSize:(5,1),32,32;dParm:(6,188),64,32;;ENHMETARECORD:t(25,500)=(25,499)LPENHMETARECORD:t(25,501)=(25,502)=*(25,499)tagHANDLETABLE:T(25,503)=s4objectHandle:(25,504)=ar(0,1);0;0;(5,47),0,32;;HANDLETABLE:t(25,505)=(25,503)LPHANDLETABLE:t(25,506)=(25,507)=*(25,503)tagTEXTMETRICA:T(25,508)=s56tmHeight:(6,3),0,32;tmAscent:(6,3),32,32;tmDescent:(6,3),64,32;tmInternalLeading:(6,3),96,32;tmExternalLeading:(6,3),128,32;tmAveCharWidth:(6,3),160,32;tmMaxCharWidth:(6,3),192,32;tmWeight:(6,3),224,32;tmOverhang:(6,3),256,32;tmDigitizedAspectX:(6,3),288,32;tmDigitizedAspectY:(6,3),320,32;tmFirstChar:(5,10),352,8;tmLastChar:(5,10),360,8;tmDefaultChar:(5,10),368,8;tmBreakChar:(5,10),376,8;tmItalic:(5,10),384,8;tmUnderlined:(5,10),392,8;tmStruckOut:(5,10),400,8;tmPitchAndFamily:(5,10),408,8;tmCharSet:(5,10),416,8;;TEXTMETRICA:t(25,509)=(25,508)PTEXTMETRICA:t(25,510)=(25,511)=*(25,508)LPTEXTMETRICA:t(25,512)=(25,511)tagTEXTMETRICW:T(25,513)=s60tmHeight:(6,3),0,32;tmAscent:(6,3),32,32;tmDescent:(6,3),64,32;tmInternalLeading:(6,3),96,32;tmExternalLeading:(6,3),128,32;tmAveCharWidth:(6,3),160,32;tmMaxCharWidth:(6,3),192,32;tmWeight:(6,3),224,32;tmOverhang:(6,3),256,32;tmDigitizedAspectX:(6,3),288,32;tmDigitizedAspectY:(6,3),320,32;tmFirstChar:(6,14),352,16;tmLastChar:(6,14),368,16;tmDefaultChar:(6,14),384,16;tmBreakChar:(6,14),400,16;tmItalic:(5,10),416,8;tmUnderlined:(5,10),424,8;tmStruckOut:(5,10),432,8;tmPitchAndFamily:(5,10),440,8;tmCharSet:(5,10),448,8;;TEXTMETRICW:t(25,514)=(25,513)PTEXTMETRICW:t(25,515)=(25,516)=*(25,513)LPTEXTMETRICW:t(25,517)=(25,516)_RGNDATAHEADER:T(25,518)=s32dwSize:(5,1),0,32;iType:(5,1),32,32;nCount:(5,1),64,32;nRgnSize:(5,1),96,32;rcBound:(5,138),128,128;;RGNDATAHEADER:t(25,519)=(25,518)_RGNDATA:T(25,520)=s36rdh:(25,519),0,256;Buffer:(25,521)=ar(0,1);0;0;(0,2),256,8;;RGNDATA:t(25,522)=(25,520)LPRGNDATA:t(25,523)=(25,524)=*(25,520)tagGCP_RESULTSA:T(25,525)=s36lStructSize:(5,1),0,32;lpOutString:(6,32),32,32;lpOrder:(25,526)=*(5,34),64,32;lpDx:(25,527)=*(5,33),96,32;lpCaretPos:(25,527),128,32;lpClass:(6,32),160,32;lpGlyphs:(25,526),192,32;nGlyphs:(5,34),224,32;nMaxFit:(5,34),256,32;;GCP_RESULTSA:t(25,528)=(25,525)LPGCP_RESULTSA:t(25,529)=(25,530)=*(25,525)tagGCP_RESULTSW:T(25,531)=s36lStructSize:(5,1),0,32;lpOutString:(6,20),32,32;lpOrder:(25,526),64,32;lpDx:(25,527),96,32;lpCaretPos:(25,527),128,32;lpClass:(6,20),160,32;lpGlyphs:(25,526),192,32;nGlyphs:(5,34),224,32;nMaxFit:(5,34),256,32;;GCP_RESULTSW:t(25,532)=(25,531)LPGCP_RESULTSW:t(25,533)=(25,534)=*(25,531)_GLYPHMETRICS:T(25,535)=s20gmBlackBoxX:(5,34),0,32;gmBlackBoxY:(5,34),32,32;gmptGlyphOrigin:(5,152),64,64;gmCellIncX:(0,8),128,16;gmCellIncY:(0,8),144,16;;GLYPHMETRICS:t(25,536)=(25,535)LPGLYPHMETRICS:t(25,537)=(25,538)=*(25,535)tagKERNINGPAIR:T(25,539)=s8wFirst:(5,11),0,16;wSecond:(5,11),16,16;iKernAmount:(0,1),32,32;;KERNINGPAIR:t(25,540)=(25,539)LPKERNINGPAIR:t(25,541)=(25,542)=*(25,539)_FIXED:T(25,543)=s4fract:(5,11),0,16;value:(0,8),16,16;;FIXED:t(25,544)=(25,543)_MAT2:T(25,545)=s16eM11:(25,544),0,32;eM12:(25,544),32,32;eM21:(25,544),64,32;eM22:(25,544),96,32;;MAT2:t(25,546)=(25,545)LPMAT2:t(25,547)=(25,548)=*(25,545)_OUTLINETEXTMETRICA:T(25,549)=s212otmSize:(5,34),0,32;otmTextMetrics:(25,509),32,448;otmFiller:(5,10),480,8;otmPanoseNumber:(25,192),488,80;otmfsSelection:(5,34),576,32;otmfsType:(5,34),608,32;otmsCharSlopeRise:(0,1),640,32;otmsCharSlopeRun:(0,1),672,32;otmItalicAngle:(0,1),704,32;otmEMSquare:(5,34),736,32;otmAscent:(0,1),768,32;otmDescent:(0,1),800,32;otmLineGap:(5,34),832,32;otmsCapEmHeight:(5,34),864,32;otmsXHeight:(5,34),896,32;otmrcFontBox:(5,138),928,128;otmMacAscent:(0,1),1056,32;otmMacDescent:(0,1),1088,32;otmMacLineGap:(5,34),1120,32;otmusMinimumPPEM:(5,34),1152,32;otmptSubscriptSize:(5,152),1184,64;otmptSubscriptOffset:(5,152),1248,64;otmptSuperscriptSize:(5,152),1312,64;otmptSuperscriptOffset:(5,152),1376,64;otmsStrikeoutSize:(5,34),1440,32;otmsStrikeoutPosition:(0,1),1472,32;otmsUnderscoreSize:(0,1),1504,32;otmsUnderscorePosition:(0,1),1536,32;otmpFamilyName:(6,33),1568,32;otmpFaceName:(6,33),1600,32;otmpStyleName:(6,33),1632,32;otmpFullName:(6,33),1664,32;;OUTLINETEXTMETRICA:t(25,550)=(25,549)POUTLINETEXTMETRICA:t(25,551)=(25,552)=*(25,549)LPOUTLINETEXTMETRICA:t(25,553)=(25,552)_OUTLINETEXTMETRICW:T(25,554)=s216otmSize:(5,34),0,32;otmTextMetrics:(25,514),32,480;otmFiller:(5,10),512,8;otmPanoseNumber:(25,192),520,80;otmfsSelection:(5,34),608,32;otmfsType:(5,34),640,32;otmsCharSlopeRise:(0,1),672,32;otmsCharSlopeRun:(0,1),704,32;otmItalicAngle:(0,1),736,32;otmEMSquare:(5,34),768,32;otmAscent:(0,1),800,32;otmDescent:(0,1),832,32;otmLineGap:(5,34),864,32;otmsCapEmHeight:(5,34),896,32;otmsXHeight:(5,34),928,32;otmrcFontBox:(5,138),960,128;otmMacAscent:(0,1),1088,32;otmMacDescent:(0,1),1120,32;otmMacLineGap:(5,34),1152,32;otmusMinimumPPEM:(5,34),1184,32;otmptSubscriptSize:(5,152),1216,64;otmptSubscriptOffset:(5,152),1280,64;otmptSuperscriptSize:(5,152),1344,64;otmptSuperscriptOffset:(5,152),1408,64;otmsStrikeoutSize:(5,34),1472,32;otmsStrikeoutPosition:(0,1),1504,32;otmsUnderscoreSize:(0,1),1536,32;otmsUnderscorePosition:(0,1),1568,32;otmpFamilyName:(6,33),1600,32;otmpFaceName:(6,33),1632,32;otmpStyleName:(6,33),1664,32;otmpFullName:(6,33),1696,32;;OUTLINETEXTMETRICW:t(25,555)=(25,554)POUTLINETEXTMETRICW:t(25,556)=(25,557)=*(25,554)LPOUTLINETEXTMETRICW:t(25,558)=(25,557)_RASTERIZER_STATUS:T(25,559)=s6nSize:(0,8),0,16;wFlags:(0,8),16,16;nLanguageID:(0,8),32,16;;RASTERIZER_STATUS:t(25,560)=(25,559)LPRASTERIZER_STATUS:t(25,561)=(25,562)=*(25,559)_POLYTEXTA:T(25,563)=s40x:(0,1),0,32;y:(0,1),32,32;n:(5,34),64,32;lpstr:(6,37),96,32;uiFlags:(5,34),128,32;rcl:(5,138),160,128;pdx:(5,4),288,32;;POLYTEXTA:t(25,564)=(25,563)_POLYTEXTW:T(25,565)=s40x:(0,1),0,32;y:(0,1),32,32;n:(5,34),64,32;lpstr:(6,25),96,32;uiFlags:(5,34),128,32;rcl:(5,138),160,128;pdx:(5,4),288,32;;POLYTEXTW:t(25,566)=(25,565)tagPIXELFORMATDESCRIPTOR:T(25,567)=s40nSize:(5,11),0,16;nVersion:(5,11),16,16;dwFlags:(5,1),32,32;iPixelType:(5,10),64,8;cColorBits:(5,10),72,8;cRedBits:(5,10),80,8;cRedShift:(5,10),88,8;cGreenBits:(5,10),96,8;cGreenShift:(5,10),104,8;cBlueBits:(5,10),112,8;cBlueShift:(5,10),120,8;cAlphaBits:(5,10),128,8;cAlphaShift:(5,10),136,8;cAccumBits:(5,10),144,8;cAccumRedBits:(5,10),152,8;cAccumGreenBits:(5,10),160,8;cAccumBlueBits:(5,10),168,8;cAccumAlphaBits:(5,10),176,8;cDepthBits:(5,10),184,8;cStencilBits:(5,10),192,8;cAuxBuffers:(5,10),200,8;iLayerType:(5,10),208,8;bReserved:(5,10),216,8;dwLayerMask:(5,1),224,32;dwVisibleMask:(5,1),256,32;dwDamageMask:(5,1),288,32;;PIXELFORMATDESCRIPTOR:t(25,568)=(25,567)PPIXELFORMATDESCRIPTOR:t(25,569)=(25,570)=*(25,567)LPPIXELFORMATDESCRIPTOR:t(25,571)=(25,570)tagMETAFILEPICT:T(25,572)=s16mm:(6,3),0,32;xExt:(6,3),32,32;yExt:(6,3),64,32;hMF:(5,96),96,32;;METAFILEPICT:t(25,573)=(25,572)LPMETAFILEPICT:t(25,574)=(25,575)=*(25,572)tagLOCALESIGNATURE:T(25,576)=s32lsUsb:(6,353),0,128;lsCsbDefault:(6,324),128,64;lsCsbSupported:(6,324),192,64;;LOCALESIGNATURE:t(25,577)=(25,576)PLOCALESIGNATURE:t(25,578)=(25,579)=*(25,576)LPLOCALESIGNATURE:t(25,580)=(25,579)LCSTYPE:t(25,581)=(6,3)tagNEWTEXTMETRICA:T(25,582)=s72tmHeight:(6,3),0,32;tmAscent:(6,3),32,32;tmDescent:(6,3),64,32;tmInternalLeading:(6,3),96,32;tmExternalLeading:(6,3),128,32;tmAveCharWidth:(6,3),160,32;tmMaxCharWidth:(6,3),192,32;tmWeight:(6,3),224,32;tmOverhang:(6,3),256,32;tmDigitizedAspectX:(6,3),288,32;tmDigitizedAspectY:(6,3),320,32;tmFirstChar:(5,10),352,8;tmLastChar:(5,10),360,8;tmDefaultChar:(5,10),368,8;tmBreakChar:(5,10),376,8;tmItalic:(5,10),384,8;tmUnderlined:(5,10),392,8;tmStruckOut:(5,10),400,8;tmPitchAndFamily:(5,10),408,8;tmCharSet:(5,10),416,8;ntmFlags:(5,1),448,32;ntmSizeEM:(5,34),480,32;ntmCellHeight:(5,34),512,32;ntmAvgWidth:(5,34),544,32;;NEWTEXTMETRICA:t(25,583)=(25,582)PNEWTEXTMETRICA:t(25,584)=(25,585)=*(25,582)LPNEWTEXTMETRICA:t(25,586)=(25,585)tagNEWTEXTMETRICW:T(25,587)=s76tmHeight:(6,3),0,32;tmAscent:(6,3),32,32;tmDescent:(6,3),64,32;tmInternalLeading:(6,3),96,32;tmExternalLeading:(6,3),128,32;tmAveCharWidth:(6,3),160,32;tmMaxCharWidth:(6,3),192,32;tmWeight:(6,3),224,32;tmOverhang:(6,3),256,32;tmDigitizedAspectX:(6,3),288,32;tmDigitizedAspectY:(6,3),320,32;tmFirstChar:(6,14),352,16;tmLastChar:(6,14),368,16;tmDefaultChar:(6,14),384,16;tmBreakChar:(6,14),400,16;tmItalic:(5,10),416,8;tmUnderlined:(5,10),424,8;tmStruckOut:(5,10),432,8;tmPitchAndFamily:(5,10),440,8;tmCharSet:(5,10),448,8;ntmFlags:(5,1),480,32;ntmSizeEM:(5,34),512,32;ntmCellHeight:(5,34),544,32;ntmAvgWidth:(5,34),576,32;;NEWTEXTMETRICW:t(25,588)=(25,587)PNEWTEXTMETRICW:t(25,589)=(25,590)=*(25,587)LPNEWTEXTMETRICW:t(25,591)=(25,590)tagNEWTEXTMETRICEXA:T(25,592)=s96ntmTm:(25,583),0,576;ntmFontSig:(25,63),576,192;;NEWTEXTMETRICEXA:t(25,593)=(25,592)tagNEWTEXTMETRICEXW:T(25,594)=s100ntmTm:(25,588),0,608;ntmFontSig:(25,63),608,192;;NEWTEXTMETRICEXW:t(25,595)=(25,594)tagPELARRAY:T(25,596)=s20paXCount:(6,3),0,32;paYCount:(6,3),32,32;paXExt:(6,3),64,32;paYExt:(6,3),96,32;paRGBs:(5,10),128,8;;PELARRAY:t(25,597)=(25,596)PPELARRAY:t(25,598)=(25,599)=*(25,596)LPPELARRAY:t(25,600)=(25,599)tagENUMLOGFONTA:T(25,601)=s156elfLogFont:(25,195),0,480;elfFullName:(25,205),480,512;elfStyle:(25,75),992,256;;ENUMLOGFONTA:t(25,602)=(25,601)LPENUMLOGFONTA:t(25,603)=(25,604)=*(25,601)tagENUMLOGFONTW:T(25,605)=s284elfLogFont:(25,200),0,736;elfFullName:(25,212),736,1024;elfStyle:(24,153),1760,512;;ENUMLOGFONTW:t(25,606)=(25,605)LPENUMLOGFONTW:t(25,607)=(25,608)=*(25,605)tagENUMLOGFONTEXA:T(25,609)=s188elfLogFont:(25,195),0,480;elfFullName:(25,205),480,512;elfStyle:(25,75),992,256;elfScript:(25,75),1248,256;;ENUMLOGFONTEXA:t(25,610)=(25,609)LPENUMLOGFONTEXA:t(25,611)=(25,612)=*(25,609)tagENUMLOGFONTEXW:T(25,613)=s284elfLogFont:(25,200),0,736;elfFullName:(25,212),736,1024;elfStyle:(25,75),1760,256;elfScript:(25,75),2016,256;;ENUMLOGFONTEXW:t(25,614)=(25,613)LPENUMLOGFONTEXW:t(25,615)=(25,616)=*(25,613)tagPOINTFX:T(25,617)=s8x:(25,544),0,32;y:(25,544),32,32;;POINTFX:t(25,618)=(25,617)LPPOINTFX:t(25,619)=(25,620)=*(25,617)tagTTPOLYCURVE:T(25,621)=s12wType:(5,11),0,16;cpfx:(5,11),16,16;apfx:(25,622)=ar(0,1);0;0;(25,618),32,64;;TTPOLYCURVE:t(25,623)=(25,621)LPTTPOLYCURVE:t(25,624)=(25,625)=*(25,621)tagTTPOLYGONHEADER:T(25,626)=s16cb:(5,1),0,32;dwType:(5,1),32,32;pfxStart:(25,618),64,64;;TTPOLYGONHEADER:t(25,627)=(25,626)LPTTPOLYGONHEADER:t(25,628)=(25,629)=*(25,626)_POINTFLOAT:T(25,630)=s8x:(5,12),0,32;y:(5,12),32,32;;POINTFLOAT:t(25,631)=(25,630)PPOINTFLOAT:t(25,632)=(25,633)=*(25,630)_GLYPHMETRICSFLOAT:T(25,634)=s24gmfBlackBoxX:(5,12),0,32;gmfBlackBoxY:(5,12),32,32;gmfptGlyphOrigin:(25,631),64,64;gmfCellIncX:(5,12),128,32;gmfCellIncY:(5,12),160,32;;GLYPHMETRICSFLOAT:t(25,635)=(25,634)PGLYPHMETRICSFLOAT:t(25,636)=(25,637)=*(25,634)LPGLYPHMETRICSFLOAT:t(25,638)=(25,637)tagLAYERPLANEDESCRIPTOR:T(25,639)=s32nSize:(5,11),0,16;nVersion:(5,11),16,16;dwFlags:(5,1),32,32;iPixelType:(5,10),64,8;cColorBits:(5,10),72,8;cRedBits:(5,10),80,8;cRedShift:(5,10),88,8;cGreenBits:(5,10),96,8;cGreenShift:(5,10),104,8;cBlueBits:(5,10),112,8;cBlueShift:(5,10),120,8;cAlphaBits:(5,10),128,8;cAlphaShift:(5,10),136,8;cAccumBits:(5,10),144,8;cAccumRedBits:(5,10),152,8;cAccumGreenBits:(5,10),160,8;cAccumBlueBits:(5,10),168,8;cAccumAlphaBits:(5,10),176,8;cDepthBits:(5,10),184,8;cStencilBits:(5,10),192,8;cAuxBuffers:(5,10),200,8;iLayerPlane:(5,10),208,8;bReserved:(5,10),216,8;crTransparent:(5,131),224,32;;LAYERPLANEDESCRIPTOR:t(25,640)=(25,639)PLAYERPLANEDESCRIPTOR:t(25,641)=(25,642)=*(25,639)LPLAYERPLANEDESCRIPTOR:t(25,643)=(25,642)ABORTPROC:t(25,644)=(25,645)=*(25,646)=f(5,6)MFENUMPROC:t(25,647)=(25,648)=*(25,649)=f(0,1)ENHMFENUMPROC:t(25,650)=(25,651)=*(25,652)=f(0,1)OLDFONTENUMPROCA:t(25,653)=(25,654)=*(25,655)=f(0,1)OLDFONTENUMPROCW:t(25,656)=(25,657)=*(25,658)=f(0,1)FONTENUMPROCA:t(25,659)=(25,653)FONTENUMPROCW:t(25,660)=(25,656)ICMENUMPROCA:t(25,661)=(25,662)=*(25,663)=f(0,1)ICMENUMPROCW:t(25,664)=(25,665)=*(25,666)=f(0,1)GOBJENUMPROC:t(25,667)=(25,668)=*(25,669)=f(0,19)LINEDDAPROC:t(25,670)=(25,671)=*(25,672)=f(0,19)LPFNDEVMODE:t(25,673)=(25,674)=*(25,675)=f(5,34)LPFNDEVCAPS:t(25,676)=(25,677)=*(25,678)=f(5,1)BCHAR:t(25,679)=(5,10)LOGFONT:t(25,680)=(25,195)PLOGFONT:t(25,681)=(25,682)=*(25,195)LPLOGFONT:t(25,683)=(25,682)TEXTMETRIC:t(25,684)=(25,509)PTEXTMETRIC:t(25,685)=(25,686)=*(25,509)LPTEXTMETRIC:t(25,687)=(25,686)DEVMODE:t(25,688)=(25,76)PDEVMODE:t(25,689)=(25,690)=*(25,76)LPDEVMODE:t(25,691)=(25,690)EXTLOGFONT:t(25,692)=(25,207)PEXTLOGFONT:t(25,693)=(25,694)=*(25,207)LPEXTLOGFONT:t(25,695)=(25,694)GCP_RESULTS:t(25,696)=(25,528)LPGCP_RESULTS:t(25,697)=(25,698)=*(25,528)OUTLINETEXTMETRIC:t(25,699)=(25,550)POUTLINETEXTMETRIC:t(25,700)=(25,701)=*(25,550)LPOUTLINETEXTMETRIC:t(25,702)=(25,701)POLYTEXT:t(25,703)=(25,564)LOGCOLORSPACE:t(25,704)=(25,132)LPLOGCOLORSPACE:t(25,705)=(25,706)=*(25,132)NEWTEXTMETRIC:t(25,707)=(25,583)PNEWTEXTMETRIC:t(25,708)=(25,709)=*(25,583)LPNEWTEXTMETRIC:t(25,710)=(25,709)NEWTEXTMETRICEX:t(25,711)=(25,593)ENUMLOGFONT:t(25,712)=(25,602)LPENUMLOGFONT:t(25,713)=(25,714)=*(25,602)ENUMLOGFONTEX:t(25,715)=(25,610)LPENUMLOGFONTEX:t(25,716)=(25,717)=*(25,610)/usr/include/w32api/winuser.hDLGPROC:t(26,1)=(26,2)=*(26,3)=f(5,6)TIMERPROC:t(26,4)=(26,5)=*(26,6)=f(0,19)GRAYSTRINGPROC:t(26,7)=(26,8)=*(26,9)=f(5,6)HOOKPROC:t(26,10)=(26,11)=*(26,12)=f(5,40)PROPENUMPROCA:t(26,13)=(26,14)=*(26,15)=f(5,6)PROPENUMPROCW:t(26,16)=(26,17)=*(26,18)=f(5,6)PROPENUMPROCEXA:t(26,19)=(26,20)=*(26,21)=f(5,6)PROPENUMPROCEXW:t(26,22)=(26,23)=*(26,24)=f(5,6)EDITWORDBREAKPROCA:t(26,25)=(26,26)=*(26,27)=f(0,1)EDITWORDBREAKPROCW:t(26,28)=(26,29)=*(26,30)=f(0,1)WNDPROC:t(26,31)=(26,32)=*(26,33)=f(5,40)DRAWSTATEPROC:t(26,34)=(26,35)=*(26,36)=f(5,6)WNDENUMPROC:t(26,37)=(26,38)=*(26,39)=f(5,6)ENUMWINDOWSPROC:t(26,40)=(26,38)NAMEENUMPROCA:t(26,41)=(26,42)=*(26,43)=f(5,6)NAMEENUMPROCW:t(26,44)=(26,45)=*(26,46)=f(5,6)DESKTOPENUMPROCA:t(26,47)=(26,41)DESKTOPENUMPROCW:t(26,48)=(26,44)WINSTAENUMPROCA:t(26,49)=(26,41)WINSTAENUMPROCW:t(26,50)=(26,44)SENDASYNCPROC:t(26,51)=(26,52)=*(26,53)=f(0,19)HHOOK__:T(26,54)=s4i:(0,1),0,32;;HHOOK:t(26,55)=(26,56)=*(26,54)HDWP__:T(26,57)=s4i:(0,1),0,32;;HDWP:t(26,58)=(26,59)=*(26,57)tagACCEL:T(26,60)=s6fVirt:(5,10),0,8;key:(5,11),16,16;cmd:(5,11),32,16;;ACCEL:t(26,61)=(26,60)LPACCEL:t(26,62)=(26,63)=*(26,60)tagACCESSTIMEOUT:T(26,64)=s12cbSize:(5,34),0,32;dwFlags:(5,1),32,32;iTimeOutMSec:(5,1),64,32;;ACCESSTIMEOUT:t(26,65)=(26,64)tagANIMATIONINFO:T(26,66)=s8cbSize:(5,34),0,32;iMinAnimate:(0,1),32,32;;ANIMATIONINFO:t(26,67)=(26,66)LPANIMATIONINFO:t(26,68)=(26,69)=*(26,66)tagCREATESTRUCT:T(26,70)=s48lpCreateParams:(5,29),0,32;hInstance:(5,99),32,32;hMenu:(5,93),64,32;hwndParent:(5,121),96,32;cy:(0,1),128,32;cx:(0,1),160,32;y:(0,1),192,32;x:(0,1),224,32;style:(6,3),256,32;lpszName:(6,48),288,32;lpszClass:(6,48),320,32;dwExStyle:(5,1),352,32;;CREATESTRUCT:t(26,71)=(26,70)LPCREATESTRUCT:t(26,72)=(26,73)=*(26,70)tagCBT_CREATEWND:T(26,74)=s8lpcs:(26,72),0,32;hwndInsertAfter:(5,121),32,32;;CBT_CREATEWND:t(26,75)=(26,74)tagCBTACTIVATESTRUCT:T(26,76)=s8fMouse:(5,6),0,32;hWndActive:(5,121),32,32;;CBTACTIVATESTRUCT:t(26,77)=(26,76)LPCBTACTIVATESTRUCT:t(26,78)=(26,79)=*(26,76)tagCLIENTCREATESTRUCT:T(26,80)=s8hWindowMenu:(6,54),0,32;idFirstChild:(5,34),32,32;;CLIENTCREATESTRUCT:t(26,81)=(26,80)LPCLIENTCREATESTRUCT:t(26,82)=(26,83)=*(26,80)tagCOMPAREITEMSTRUCT:T(26,84)=s32CtlType:(5,34),0,32;CtlID:(5,34),32,32;hwndItem:(5,121),64,32;itemID1:(5,34),96,32;itemData1:(5,1),128,32;itemID2:(5,34),160,32;itemData2:(5,1),192,32;dwLocaleId:(5,1),224,32;;COMPAREITEMSTRUCT:t(26,85)=(26,84)LPCOMPAREITEMSTRUCT:t(26,86)=(26,87)=*(26,84)tagCOPYDATASTRUCT:T(26,88)=s12dwData:(5,1),0,32;cbData:(5,1),32,32;lpData:(5,28),64,32;;COPYDATASTRUCT:t(26,89)=(26,88)PCOPYDATASTRUCT:t(26,90)=(26,91)=*(26,88)tagCURSORSHAPE:T(26,92)=s24xHotSpot:(0,1),0,32;yHotSpot:(0,1),32,32;cx:(0,1),64,32;cy:(0,1),96,32;cbWidth:(0,1),128,32;Planes:(5,10),160,8;BitsPixel:(5,10),168,8;;CURSORSHAPE:t(26,93)=(26,92)LPCURSORSHAPE:t(26,94)=(26,95)=*(26,92)tagCWPRETSTRUCT:T(26,96)=s20lResult:(5,40),0,32;lParam:(5,39),32,32;wParam:(5,38),64,32;message:(5,1),96,32;hwnd:(5,121),128,32;;CWPRETSTRUCT:t(26,97)=(26,96)tagCWPSTRUCT:T(26,98)=s16lParam:(5,39),0,32;wParam:(5,38),32,32;message:(5,34),64,32;hwnd:(5,121),96,32;;CWPSTRUCT:t(26,99)=(26,98)PCWPSTRUCT:t(26,100)=(26,101)=*(26,98)tagDEBUGHOOKINFO:T(26,102)=s20idThread:(5,1),0,32;idThreadInstaller:(5,1),32,32;lParam:(5,39),64,32;wParam:(5,38),96,32;code:(0,1),128,32;;DEBUGHOOKINFO:t(26,103)=(26,102)PDEBUGHOOKINFO:t(26,104)=(26,105)=*(26,102)LPDEBUGHOOKINFO:t(26,106)=(26,105)tagDELETEITEMSTRUCT:T(26,107)=s20CtlType:(5,34),0,32;CtlID:(5,34),32,32;itemID:(5,34),64,32;hwndItem:(5,121),96,32;itemData:(5,34),128,32;;DELETEITEMSTRUCT:t(26,108)=(26,107)PDELETEITEMSTRUCT:t(26,109)=(26,110)=*(26,107)LPDELETEITEMSTRUCT:t(26,111)=(26,110)DLGITEMTEMPLATE:t(26,112)=(26,113)=s18style:(5,1),0,32;dwExtendedStyle:(5,1),32,32;x:(0,8),64,16;y:(0,8),80,16;cx:(0,8),96,16;cy:(0,8),112,16;id:(5,11),128,16;;LPDLGITEMTEMPLATE:t(26,114)=(26,115)=*(26,113)DLGTEMPLATE:t(26,116)=(26,117)=s18style:(5,1),0,32;dwExtendedStyle:(5,1),32,32;cdit:(5,11),64,16;x:(0,8),80,16;y:(0,8),96,16;cx:(0,8),112,16;cy:(0,8),128,16;;LPDLGTEMPLATE:t(26,118)=(26,119)=*(26,117)LPCDLGTEMPLATE:t(26,120)=(26,121)=*(26,116)tagDRAWITEMSTRUCT:T(26,122)=s48CtlType:(5,34),0,32;CtlID:(5,34),32,32;itemID:(5,34),64,32;itemAction:(5,34),96,32;itemState:(5,34),128,32;hwndItem:(5,121),160,32;hDC:(5,61),192,32;rcItem:(5,138),224,128;itemData:(5,1),352,32;;DRAWITEMSTRUCT:t(26,123)=(26,122)LPDRAWITEMSTRUCT:t(26,124)=(26,125)=*(26,122)PDRAWITEMSTRUCT:t(26,126)=(26,125)DRAWTEXTPARAMS:t(26,127)=(26,128)=s20cbSize:(5,34),0,32;iTabLength:(0,1),32,32;iLeftMargin:(0,1),64,32;iRightMargin:(0,1),96,32;uiLengthDrawn:(5,34),128,32;;LPDRAWTEXTPARAMS:t(26,129)=(26,130)=*(26,128)tagPAINTSTRUCT:T(26,131)=s64hdc:(5,61),0,32;fErase:(5,6),32,32;rcPaint:(5,138),64,128;fRestore:(5,6),192,32;fIncUpdate:(5,6),224,32;rgbReserved:(25,75),256,256;;PAINTSTRUCT:t(26,132)=(26,131)LPPAINTSTRUCT:t(26,133)=(26,134)=*(26,131)tagMSG:T(26,135)=s28hwnd:(5,121),0,32;message:(5,34),32,32;wParam:(5,38),64,32;lParam:(5,39),96,32;time:(5,1),128,32;pt:(5,152),160,64;;MSG:t(26,136)=(26,135)LPMSG:t(26,137)=(26,138)=*(26,135)PMSG:t(26,139)=(26,138)_ICONINFO:T(26,140)=s20fIcon:(5,6),0,32;xHotspot:(5,1),32,32;yHotspot:(5,1),64,32;hbmMask:(5,52),96,32;hbmColor:(5,52),128,32;;ICONINFO:t(26,141)=(26,140)PICONINFO:t(26,142)=(26,143)=*(26,140)tagNMHDR:T(26,144)=s12hwndFrom:(5,121),0,32;idFrom:(5,34),32,32;code:(5,34),64,32;;NMHDR:t(26,145)=(26,144)LPNMHDR:t(26,146)=(26,147)=*(26,144)_WNDCLASSA:T(26,148)=s40style:(5,34),0,32;lpfnWndProc:(26,31),32,32;cbClsExtra:(0,1),64,32;cbWndExtra:(0,1),96,32;hInstance:(6,54),128,32;hIcon:(5,76),160,32;hCursor:(5,130),192,32;hbrBackground:(5,55),224,32;lpszMenuName:(6,37),256,32;lpszClassName:(6,37),288,32;;WNDCLASSA:t(26,149)=(26,148)LPWNDCLASSA:t(26,150)=(26,151)=*(26,148)PWNDCLASSA:t(26,152)=(26,151)_WNDCLASSW:T(26,153)=s40style:(5,34),0,32;lpfnWndProc:(26,31),32,32;cbClsExtra:(0,1),64,32;cbWndExtra:(0,1),96,32;hInstance:(6,54),128,32;hIcon:(5,76),160,32;hCursor:(5,130),192,32;hbrBackground:(5,55),224,32;lpszMenuName:(6,25),256,32;lpszClassName:(6,25),288,32;;WNDCLASSW:t(26,154)=(26,153)LPWNDCLASSW:t(26,155)=(26,156)=*(26,153)PWNDCLASSW:t(26,157)=(26,156)_WNDCLASSEXA:T(26,158)=s48cbSize:(5,34),0,32;style:(5,34),32,32;lpfnWndProc:(26,31),64,32;cbClsExtra:(0,1),96,32;cbWndExtra:(0,1),128,32;hInstance:(6,54),160,32;hIcon:(5,76),192,32;hCursor:(5,130),224,32;hbrBackground:(5,55),256,32;lpszMenuName:(6,37),288,32;lpszClassName:(6,37),320,32;hIconSm:(5,76),352,32;;WNDCLASSEXA:t(26,159)=(26,158)LPWNDCLASSEXA:t(26,160)=(26,161)=*(26,158)PWNDCLASSEXA:t(26,162)=(26,161)_WNDCLASSEXW:T(26,163)=s48cbSize:(5,34),0,32;style:(5,34),32,32;lpfnWndProc:(26,31),64,32;cbClsExtra:(0,1),96,32;cbWndExtra:(0,1),128,32;hInstance:(6,54),160,32;hIcon:(5,76),192,32;hCursor:(5,130),224,32;hbrBackground:(5,55),256,32;lpszMenuName:(6,25),288,32;lpszClassName:(6,25),320,32;hIconSm:(5,76),352,32;;WNDCLASSEXW:t(26,164)=(26,163)LPWNDCLASSEXW:t(26,165)=(26,166)=*(26,163)PWNDCLASSEXW:t(26,167)=(26,166)tagMENUITEMINFOA:T(26,168)=s44cbSize:(5,34),0,32;fMask:(5,34),32,32;fType:(5,34),64,32;fState:(5,34),96,32;wID:(5,34),128,32;hSubMenu:(5,93),160,32;hbmpChecked:(5,52),192,32;hbmpUnchecked:(5,52),224,32;dwItemData:(5,1),256,32;dwTypeData:(6,32),288,32;cch:(5,34),320,32;;MENUITEMINFOA:t(26,169)=(26,168)LPMENUITEMINFOA:t(26,170)=(26,171)=*(26,168)LPCMENUITEMINFOA:t(26,172)=(26,173)=*(26,169)tagMENUITEMINFOW:T(26,174)=s44cbSize:(5,34),0,32;fMask:(5,34),32,32;fType:(5,34),64,32;fState:(5,34),96,32;wID:(5,34),128,32;hSubMenu:(5,93),160,32;hbmpChecked:(5,52),192,32;hbmpUnchecked:(5,52),224,32;dwItemData:(5,1),256,32;dwTypeData:(6,20),288,32;cch:(5,34),320,32;;MENUITEMINFOW:t(26,175)=(26,174)LPMENUITEMINFOW:t(26,176)=(26,177)=*(26,174)LPCMENUITEMINFOW:t(26,178)=(26,179)=*(26,175)tagSCROLLINFO:T(26,180)=s28cbSize:(5,34),0,32;fMask:(5,34),32,32;nMin:(0,1),64,32;nMax:(0,1),96,32;nPage:(5,34),128,32;nPos:(0,1),160,32;nTrackPos:(0,1),192,32;;SCROLLINFO:t(26,181)=(26,180)LPSCROLLINFO:t(26,182)=(26,183)=*(26,180)LPCSCROLLINFO:t(26,184)=(26,185)=*(26,181)_WINDOWPLACEMENT:T(26,186)=s44length:(5,34),0,32;flags:(5,34),32,32;showCmd:(5,34),64,32;ptMinPosition:(5,152),96,64;ptMaxPosition:(5,152),160,64;rcNormalPosition:(5,138),224,128;;WINDOWPLACEMENT:t(26,187)=(26,186)LPWINDOWPLACEMENT:t(26,188)=(26,189)=*(26,186)PWINDOWPLACEMENT:t(26,190)=(26,189)MENUITEMTEMPLATEHEADER:t(26,191)=(26,192)=s4versionNumber:(5,11),0,16;offset:(5,11),16,16;;MENUITEMTEMPLATE:t(26,193)=(26,194)=s6mtOption:(5,11),0,16;mtID:(5,11),16,16;mtString:(6,255),32,16;;MENUTEMPLATE:t(26,195)=(0,19)MENUTEMPLATEA:t(26,196)=(0,19)MENUTEMPLATEW:t(26,197)=(0,19)LPMENUTEMPLATEA:t(26,198)=(4,2)LPMENUTEMPLATEW:t(26,199)=(4,2)LPMENUTEMPLATE:t(26,200)=(4,2)tagHELPINFO:T(26,201)=s28cbSize:(5,34),0,32;iContextType:(0,1),32,32;iCtrlId:(0,1),64,32;hItemHandle:(6,54),96,32;dwContextId:(5,1),128,32;MousePos:(5,152),160,64;;HELPINFO:t(26,202)=(26,201)LPHELPINFO:t(26,203)=(26,204)=*(26,201)MSGBOXCALLBACK:t(26,205)=(26,206)=*(26,207)=f(0,19)MSGBOXPARAMSA:t(26,208)=(26,209)=s40cbSize:(5,34),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;lpszText:(6,37),96,32;lpszCaption:(6,37),128,32;dwStyle:(5,1),160,32;lpszIcon:(6,37),192,32;dwContextHelpId:(5,1),224,32;lpfnMsgBoxCallback:(26,205),256,32;dwLanguageId:(5,1),288,32;;PMSGBOXPARAMSA:t(26,210)=(26,211)=*(26,209)LPMSGBOXPARAMSA:t(26,212)=(26,211)MSGBOXPARAMSW:t(26,213)=(26,214)=s40cbSize:(5,34),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;lpszText:(6,25),96,32;lpszCaption:(6,25),128,32;dwStyle:(5,1),160,32;lpszIcon:(6,25),192,32;dwContextHelpId:(5,1),224,32;lpfnMsgBoxCallback:(26,205),256,32;dwLanguageId:(5,1),288,32;;PMSGBOXPARAMSW:t(26,215)=(26,216)=*(26,214)LPMSGBOXPARAMSW:t(26,217)=(26,216)tagUSEROBJECTFLAGS:T(26,218)=s12fInherit:(5,6),0,32;fReserved:(5,6),32,32;dwFlags:(5,1),64,32;;USEROBJECTFLAGS:t(26,219)=(26,218)tagFILTERKEYS:T(26,220)=s24cbSize:(5,34),0,32;dwFlags:(5,1),32,32;iWaitMSec:(5,1),64,32;iDelayMSec:(5,1),96,32;iRepeatMSec:(5,1),128,32;iBounceMSec:(5,1),160,32;;FILTERKEYS:t(26,221)=(26,220)tagHIGHCONTRASTA:T(26,222)=s12cbSize:(5,34),0,32;dwFlags:(5,1),32,32;lpszDefaultScheme:(6,32),64,32;;HIGHCONTRASTA:t(26,223)=(26,222)LPHIGHCONTRASTA:t(26,224)=(26,225)=*(26,222)tagHIGHCONTRASTW:T(26,226)=s12cbSize:(5,34),0,32;dwFlags:(5,1),32,32;lpszDefaultScheme:(6,20),64,32;;HIGHCONTRASTW:t(26,227)=(26,226)LPHIGHCONTRASTW:t(26,228)=(26,229)=*(26,226)tagICONMETRICSA:T(26,230)=s76cbSize:(5,34),0,32;iHorzSpacing:(0,1),32,32;iVertSpacing:(0,1),64,32;iTitleWrap:(0,1),96,32;lfFont:(25,195),128,480;;ICONMETRICSA:t(26,231)=(26,230)LPICONMETRICSA:t(26,232)=(26,233)=*(26,230)tagICONMETRICSW:T(26,234)=s108cbSize:(5,34),0,32;iHorzSpacing:(0,1),32,32;iVertSpacing:(0,1),64,32;iTitleWrap:(0,1),96,32;lfFont:(25,200),128,736;;ICONMETRICSW:t(26,235)=(26,234)LPICONMETRICSW:t(26,236)=(26,237)=*(26,234)tagMINIMIZEDMETRICS:T(26,238)=s20cbSize:(5,34),0,32;iWidth:(0,1),32,32;iHorzGap:(0,1),64,32;iVertGap:(0,1),96,32;iArrange:(0,1),128,32;;MINIMIZEDMETRICS:t(26,239)=(26,238)LPMINIMIZEDMETRICS:t(26,240)=(26,241)=*(26,238)tagNONCLIENTMETRICSA:T(26,242)=s340cbSize:(5,34),0,32;iBorderWidth:(0,1),32,32;iScrollWidth:(0,1),64,32;iScrollHeight:(0,1),96,32;iCaptionWidth:(0,1),128,32;iCaptionHeight:(0,1),160,32;lfCaptionFont:(25,195),192,480;iSmCaptionWidth:(0,1),672,32;iSmCaptionHeight:(0,1),704,32;lfSmCaptionFont:(25,195),736,480;iMenuWidth:(0,1),1216,32;iMenuHeight:(0,1),1248,32;lfMenuFont:(25,195),1280,480;lfStatusFont:(25,195),1760,480;lfMessageFont:(25,195),2240,480;;NONCLIENTMETRICSA:t(26,243)=(26,242)LPNONCLIENTMETRICSA:t(26,244)=(26,245)=*(26,242)tagNONCLIENTMETRICSW:T(26,246)=s500cbSize:(5,34),0,32;iBorderWidth:(0,1),32,32;iScrollWidth:(0,1),64,32;iScrollHeight:(0,1),96,32;iCaptionWidth:(0,1),128,32;iCaptionHeight:(0,1),160,32;lfCaptionFont:(25,200),192,736;iSmCaptionWidth:(0,1),928,32;iSmCaptionHeight:(0,1),960,32;lfSmCaptionFont:(25,200),992,736;iMenuWidth:(0,1),1728,32;iMenuHeight:(0,1),1760,32;lfMenuFont:(25,200),1792,736;lfStatusFont:(25,200),2528,736;lfMessageFont:(25,200),3264,736;;NONCLIENTMETRICSW:t(26,247)=(26,246)LPNONCLIENTMETRICSW:t(26,248)=(26,249)=*(26,246)tagSERIALKEYSA:T(26,250)=s28cbSize:(5,34),0,32;dwFlags:(5,1),32,32;lpszActivePort:(6,32),64,32;lpszPort:(6,32),96,32;iBaudRate:(5,34),128,32;iPortState:(5,34),160,32;iActive:(5,34),192,32;;SERIALKEYSA:t(26,251)=(26,250)LPSERIALKEYSA:t(26,252)=(26,253)=*(26,250)tagSERIALKEYSW:T(26,254)=s28cbSize:(5,34),0,32;dwFlags:(5,1),32,32;lpszActivePort:(6,20),64,32;lpszPort:(6,20),96,32;iBaudRate:(5,34),128,32;iPortState:(5,34),160,32;iActive:(5,34),192,32;;SERIALKEYSW:t(26,255)=(26,254)LPSERIALKEYSW:t(26,256)=(26,257)=*(26,254)tagSOUNDSENTRYA:T(26,258)=s48cbSize:(5,34),0,32;dwFlags:(5,1),32,32;iFSTextEffect:(5,1),64,32;iFSTextEffectMSec:(5,1),96,32;iFSTextEffectColorBits:(5,1),128,32;iFSGrafEffect:(5,1),160,32;iFSGrafEffectMSec:(5,1),192,32;iFSGrafEffectColor:(5,1),224,32;iWindowsEffect:(5,1),256,32;iWindowsEffectMSec:(5,1),288,32;lpszWindowsEffectDLL:(6,32),320,32;iWindowsEffectOrdinal:(5,1),352,32;;SOUNDSENTRYA:t(26,259)=(26,258)LPSOUNDSENTRYA:t(26,260)=(26,261)=*(26,258)tagSOUNDSENTRYW:T(26,262)=s48cbSize:(5,34),0,32;dwFlags:(5,1),32,32;iFSTextEffect:(5,1),64,32;iFSTextEffectMSec:(5,1),96,32;iFSTextEffectColorBits:(5,1),128,32;iFSGrafEffect:(5,1),160,32;iFSGrafEffectMSec:(5,1),192,32;iFSGrafEffectColor:(5,1),224,32;iWindowsEffect:(5,1),256,32;iWindowsEffectMSec:(5,1),288,32;lpszWindowsEffectDLL:(6,20),320,32;iWindowsEffectOrdinal:(5,1),352,32;;SOUNDSENTRYW:t(26,263)=(26,262)LPSOUNDSENTRYW:t(26,264)=(26,265)=*(26,262)tagSTICKYKEYS:T(26,266)=s8cbSize:(5,1),0,32;dwFlags:(5,1),32,32;;STICKYKEYS:t(26,267)=(26,266)LPSTICKYKEYS:t(26,268)=(26,269)=*(26,266)tagTOGGLEKEYS:T(26,270)=s8cbSize:(5,1),0,32;dwFlags:(5,1),32,32;;TOGGLEKEYS:t(26,271)=(26,270)tagTRACKMOUSEEVENT:T(26,272)=s16cbSize:(5,1),0,32;dwFlags:(5,1),32,32;hwndTrack:(5,121),64,32;dwHoverTime:(5,1),96,32;;TRACKMOUSEEVENT:t(26,273)=(26,272)LPTRACKMOUSEEVENT:t(26,274)=(26,275)=*(26,272)tagTPMPARAMS:T(26,276)=s20cbSize:(5,34),0,32;rcExclude:(5,138),32,128;;TPMPARAMS:t(26,277)=(26,276)LPTPMPARAMS:t(26,278)=(26,279)=*(26,276)tagEVENTMSG:T(26,280)=s20message:(5,34),0,32;paramL:(5,34),32,32;paramH:(5,34),64,32;time:(5,1),96,32;hwnd:(5,121),128,32;;EVENTMSG:t(26,281)=(26,280)PEVENTMSGMSG:t(26,282)=(26,283)=*(26,280)LPEVENTMSGMSG:t(26,284)=(26,283)PEVENTMSG:t(26,285)=(26,283)LPEVENTMSG:t(26,286)=(26,283)_WINDOWPOS:T(26,287)=s28hwnd:(5,121),0,32;hwndInsertAfter:(5,121),32,32;x:(0,1),64,32;y:(0,1),96,32;cx:(0,1),128,32;cy:(0,1),160,32;flags:(5,34),192,32;;WINDOWPOS:t(26,288)=(26,287)PWINDOWPOS:t(26,289)=(26,290)=*(26,287)LPWINDOWPOS:t(26,291)=(26,290)tagMDICREATESTRUCTA:T(26,292)=s36szClass:(6,37),0,32;szTitle:(6,37),32,32;hOwner:(6,54),64,32;x:(0,1),96,32;y:(0,1),128,32;cx:(0,1),160,32;cy:(0,1),192,32;style:(5,1),224,32;lParam:(5,39),256,32;;MDICREATESTRUCTA:t(26,293)=(26,292)LPMDICREATESTRUCTA:t(26,294)=(26,295)=*(26,292)tagMDICREATESTRUCTW:T(26,296)=s36szClass:(6,25),0,32;szTitle:(6,25),32,32;hOwner:(6,54),64,32;x:(0,1),96,32;y:(0,1),128,32;cx:(0,1),160,32;cy:(0,1),192,32;style:(5,1),224,32;lParam:(5,39),256,32;;MDICREATESTRUCTW:t(26,297)=(26,296)LPMDICREATESTRUCTW:t(26,298)=(26,299)=*(26,296)tagMINMAXINFO:T(26,300)=s40ptReserved:(5,152),0,64;ptMaxSize:(5,152),64,64;ptMaxPosition:(5,152),128,64;ptMinTrackSize:(5,152),192,64;ptMaxTrackSize:(5,152),256,64;;MINMAXINFO:t(26,301)=(26,300)PMINMAXINFO:t(26,302)=(26,303)=*(26,300)LPMINMAXINFO:t(26,304)=(26,303)tagMDINEXTMENU:T(26,305)=s12hmenuIn:(5,93),0,32;hmenuNext:(5,93),32,32;hwndNext:(5,121),64,32;;MDINEXTMENU:t(26,306)=(26,305)PMDINEXTMENU:t(26,307)=(26,308)=*(26,305)LPMDINEXTMENU:t(26,309)=(26,308)tagMEASUREITEMSTRUCT:T(26,310)=s24CtlType:(5,34),0,32;CtlID:(5,34),32,32;itemID:(5,34),64,32;itemWidth:(5,34),96,32;itemHeight:(5,34),128,32;itemData:(5,1),160,32;;MEASUREITEMSTRUCT:t(26,311)=(26,310)PMEASUREITEMSTRUCT:t(26,312)=(26,313)=*(26,310)LPMEASUREITEMSTRUCT:t(26,314)=(26,313)tagDROPSTRUCT:T(26,315)=s28hwndSource:(5,121),0,32;hwndSink:(5,121),32,32;wFmt:(5,1),64,32;dwData:(5,1),96,32;ptDrop:(5,152),128,64;dwControlData:(5,1),192,32;;DROPSTRUCT:t(26,316)=(26,315)PDROPSTRUCT:t(26,317)=(26,318)=*(26,315)LPDROPSTRUCT:t(26,319)=(26,318)HELPPOLY:t(26,320)=(5,1)tagMULTIKEYHELPA:T(26,321)=s8mkSize:(5,1),0,32;mkKeylist:(6,1),32,8;szKeyphrase:(6,475),40,8;;MULTIKEYHELPA:t(26,322)=(26,321)PMULTIKEYHELPA:t(26,323)=(26,324)=*(26,321)LPMULTIKEYHELPA:t(26,325)=(26,324)tagMULTIKEYHELPW:T(26,326)=s8mkSize:(5,1),0,32;mkKeylist:(6,14),32,16;szKeyphrase:(6,255),48,16;;MULTIKEYHELPW:t(26,327)=(26,326)PMULTIKEYHELPW:t(26,328)=(26,329)=*(26,326)LPMULTIKEYHELPW:t(26,330)=(26,329)tagHELPWININFOA:T(26,331)=s28wStructSize:(0,1),0,32;x:(0,1),32,32;y:(0,1),64,32;dx:(0,1),96,32;dy:(0,1),128,32;wMax:(0,1),160,32;rgchMember:(26,332)=ar(0,1);0;1;(6,1),192,16;;HELPWININFOA:t(26,333)=(26,331)PHELPWININFOA:t(26,334)=(26,335)=*(26,331)LPHELPWININFOA:t(26,336)=(26,335)tagHELPWININFOW:T(26,337)=s28wStructSize:(0,1),0,32;x:(0,1),32,32;y:(0,1),64,32;dx:(0,1),96,32;dy:(0,1),128,32;wMax:(0,1),160,32;rgchMember:(26,338)=ar(0,1);0;1;(6,14),192,32;;HELPWININFOW:t(26,339)=(26,337)PHELPWININFOW:t(26,340)=(26,341)=*(26,337)LPHELPWININFOW:t(26,342)=(26,341)tagSTYLESTRUCT:T(26,343)=s8styleOld:(5,1),0,32;styleNew:(5,1),32,32;;STYLESTRUCT:t(26,344)=(26,343)LPSTYLESTRUCT:t(26,345)=(26,346)=*(26,343)WNDCLASS:t(26,347)=(26,149)LPWNDCLASS:t(26,348)=(26,349)=*(26,149)PWNDCLASS:t(26,350)=(26,349)WNDCLASSEX:t(26,351)=(26,159)LPWNDCLASSEX:t(26,352)=(26,353)=*(26,159)PWNDCLASSEX:t(26,354)=(26,353)MENUITEMINFO:t(26,355)=(26,169)LPMENUITEMINFO:t(26,356)=(26,357)=*(26,169)LPCMENUITEMINFO:t(26,358)=(26,172)MSGBOXPARAMS:t(26,359)=(26,208)PMSGBOXPARAMS:t(26,360)=(26,361)=*(26,208)LPMSGBOXPARAMS:t(26,362)=(26,361)HIGHCONTRAST:t(26,363)=(26,223)LPHIGHCONTRAST:t(26,364)=(26,365)=*(26,223)ICONMETRICS:t(26,366)=(26,231)LPICONMETRICS:t(26,367)=(26,368)=*(26,231)NONCLIENTMETRICS:t(26,369)=(26,243)LPNONCLIENTMETRICS:t(26,370)=(26,371)=*(26,243)SERIALKEYS:t(26,372)=(26,251)LPSERIALKEYS:t(26,373)=(26,374)=*(26,251)SOUNDSENTRY:t(26,375)=(26,259)LPSOUNDSENTRY:t(26,376)=(26,377)=*(26,259)MDICREATESTRUCT:t(26,378)=(26,293)LPMDICREATESTRUCT:t(26,379)=(26,380)=*(26,293)MULTIKEYHELP:t(26,381)=(26,322)PMULTIKEYHELP:t(26,382)=(26,383)=*(26,322)LPMULTIKEYHELP:t(26,384)=(26,383)/usr/include/w32api/winnls.hLCTYPE:t(27,1)=(5,1)CALTYPE:t(27,2)=(5,1)CALID:t(27,3)=(5,1)LGRPID:t(27,4)=(5,1)CALINFO_ENUMPROCA:t(27,5)=(27,6)=*(27,7)=f(5,6)CALINFO_ENUMPROCW:t(27,8)=(27,9)=*(27,10)=f(5,6)CALINFO_ENUMPROCEXA:t(27,11)=(27,12)=*(27,13)=f(5,6)CALINFO_ENUMPROCEXW:t(27,14)=(27,15)=*(27,16)=f(5,6)LANGUAGEGROUP_ENUMPROCA:t(27,17)=(27,18)=*(27,19)=f(5,6)LANGUAGEGROUP_ENUMPROCW:t(27,20)=(27,21)=*(27,22)=f(5,6)LANGGROUPLOCALE_ENUMPROCA:t(27,23)=(27,24)=*(27,25)=f(5,6)LANGGROUPLOCALE_ENUMPROCW:t(27,26)=(27,27)=*(27,28)=f(5,6)UILANGUAGE_ENUMPROCW:t(27,29)=(27,30)=*(27,31)=f(5,6)UILANGUAGE_ENUMPROCA:t(27,32)=(27,33)=*(27,34)=f(5,6)LOCALE_ENUMPROCA:t(27,35)=(27,6)LOCALE_ENUMPROCW:t(27,36)=(27,9)CODEPAGE_ENUMPROCA:t(27,37)=(27,6)CODEPAGE_ENUMPROCW:t(27,38)=(27,9)DATEFMT_ENUMPROCA:t(27,39)=(27,6)DATEFMT_ENUMPROCW:t(27,40)=(27,9)DATEFMT_ENUMPROCEXA:t(27,41)=(27,12)DATEFMT_ENUMPROCEXW:t(27,42)=(27,15)TIMEFMT_ENUMPROCA:t(27,43)=(27,6)TIMEFMT_ENUMPROCW:t(27,44)=(27,9)_cpinfo:T(27,45)=s20MaxCharSize:(5,34),0,32;DefaultChar:(6,422),32,16;LeadByte:(6,335),48,96;;CPINFO:t(27,46)=(27,45)LPCPINFO:t(27,47)=(27,48)=*(27,45)_cpinfoexA:T(27,49)=s284MaxCharSize:(5,34),0,32;DefaultChar:(6,422),32,16;LeadByte:(6,335),48,96;UnicodeDefaultChar:(6,14),144,16;CodePage:(5,34),160,32;CodePageName:(24,109),192,2080;;CPINFOEXA:t(27,50)=(27,49)LPCPINFOEXA:t(27,51)=(27,52)=*(27,49)_cpinfoexW:T(27,53)=s544MaxCharSize:(5,34),0,32;DefaultChar:(6,422),32,16;LeadByte:(6,335),48,96;UnicodeDefaultChar:(6,14),144,16;CodePage:(5,34),160,32;CodePageName:(24,115),192,4160;;CPINFOEXW:t(27,54)=(27,53)LPCPINFOEXW:t(27,55)=(27,56)=*(27,53)_currencyfmtA:T(27,57)=s32NumDigits:(5,34),0,32;LeadingZero:(5,34),32,32;Grouping:(5,34),64,32;lpDecimalSep:(6,32),96,32;lpThousandSep:(6,32),128,32;NegativeOrder:(5,34),160,32;PositiveOrder:(5,34),192,32;lpCurrencySymbol:(6,32),224,32;;CURRENCYFMTA:t(27,58)=(27,57)LPCURRENCYFMTA:t(27,59)=(27,60)=*(27,57)_currencyfmtW:T(27,61)=s32NumDigits:(5,34),0,32;LeadingZero:(5,34),32,32;Grouping:(5,34),64,32;lpDecimalSep:(6,20),96,32;lpThousandSep:(6,20),128,32;NegativeOrder:(5,34),160,32;PositiveOrder:(5,34),192,32;lpCurrencySymbol:(6,20),224,32;;CURRENCYFMTW:t(27,62)=(27,61)LPCURRENCYFMTW:t(27,63)=(27,64)=*(27,61)_numberfmtA:T(27,65)=s24NumDigits:(5,34),0,32;LeadingZero:(5,34),32,32;Grouping:(5,34),64,32;lpDecimalSep:(6,32),96,32;lpThousandSep:(6,32),128,32;NegativeOrder:(5,34),160,32;;NUMBERFMTA:t(27,66)=(27,65)LPNUMBERFMTA:t(27,67)=(27,68)=*(27,65)_numberfmtW:T(27,69)=s24NumDigits:(5,34),0,32;LeadingZero:(5,34),32,32;Grouping:(5,34),64,32;lpDecimalSep:(6,20),96,32;lpThousandSep:(6,20),128,32;NegativeOrder:(5,34),160,32;;NUMBERFMTW:t(27,70)=(27,69)LPNUMBERFMTW:t(27,71)=(27,72)=*(27,69)CPINFOEX:t(27,73)=(27,50)LPCPINFOEX:t(27,74)=(27,51)CURRENCYFMT:t(27,75)=(27,58)LPCURRENCYFMT:t(27,76)=(27,59)NUMBERFMT:t(27,77)=(27,66)LPNUMBERFMT:t(27,78)=(27,67)/usr/include/w32api/winver.htagVS_FIXEDFILEINFO:T(28,1)=s52dwSignature:(5,1),0,32;dwStrucVersion:(5,1),32,32;dwFileVersionMS:(5,1),64,32;dwFileVersionLS:(5,1),96,32;dwProductVersionMS:(5,1),128,32;dwProductVersionLS:(5,1),160,32;dwFileFlagsMask:(5,1),192,32;dwFileFlags:(5,1),224,32;dwFileOS:(5,1),256,32;dwFileType:(5,1),288,32;dwFileSubtype:(5,1),320,32;dwFileDateMS:(5,1),352,32;dwFileDateLS:(5,1),384,32;;VS_FIXEDFILEINFO:t(28,2)=(28,1)/usr/include/w32api/winnetwk.h_NETRESOURCEA:T(29,1)=s32dwScope:(5,1),0,32;dwType:(5,1),32,32;dwDisplayType:(5,1),64,32;dwUsage:(5,1),96,32;lpLocalName:(6,32),128,32;lpRemoteName:(6,32),160,32;lpComment:(6,32),192,32;lpProvider:(6,32),224,32;;NETRESOURCEA:t(29,2)=(29,1)LPNETRESOURCEA:t(29,3)=(29,4)=*(29,1)_NETRESOURCEW:T(29,5)=s32dwScope:(5,1),0,32;dwType:(5,1),32,32;dwDisplayType:(5,1),64,32;dwUsage:(5,1),96,32;lpLocalName:(6,20),128,32;lpRemoteName:(6,20),160,32;lpComment:(6,20),192,32;lpProvider:(6,20),224,32;;NETRESOURCEW:t(29,6)=(29,5)LPNETRESOURCEW:t(29,7)=(29,8)=*(29,5)_CONNECTDLGSTRUCTA:T(29,9)=s20cbStructure:(5,1),0,32;hwndOwner:(5,121),32,32;lpConnRes:(29,3),64,32;dwFlags:(5,1),96,32;dwDevNum:(5,1),128,32;;CONNECTDLGSTRUCTA:t(29,10)=(29,9)LPCONNECTDLGSTRUCTA:t(29,11)=(29,12)=*(29,9)_CONNECTDLGSTRUCTW:T(29,13)=s20cbStructure:(5,1),0,32;hwndOwner:(5,121),32,32;lpConnRes:(29,7),64,32;dwFlags:(5,1),96,32;dwDevNum:(5,1),128,32;;CONNECTDLGSTRUCTW:t(29,14)=(29,13)LPCONNECTDLGSTRUCTW:t(29,15)=(29,16)=*(29,13)_DISCDLGSTRUCTA:T(29,17)=s20cbStructure:(5,1),0,32;hwndOwner:(5,121),32,32;lpLocalName:(6,32),64,32;lpRemoteName:(6,32),96,32;dwFlags:(5,1),128,32;;DISCDLGSTRUCTA:t(29,18)=(29,17)LPDISCDLGSTRUCTA:t(29,19)=(29,20)=*(29,17)_DISCDLGSTRUCTW:T(29,21)=s20cbStructure:(5,1),0,32;hwndOwner:(5,121),32,32;lpLocalName:(6,20),64,32;lpRemoteName:(6,20),96,32;dwFlags:(5,1),128,32;;DISCDLGSTRUCTW:t(29,22)=(29,21)LPDISCDLGSTRUCTW:t(29,23)=(29,24)=*(29,21)_UNIVERSAL_NAME_INFOA:T(29,25)=s4lpUniversalName:(6,32),0,32;;UNIVERSAL_NAME_INFOA:t(29,26)=(29,25)LPUNIVERSAL_NAME_INFOA:t(29,27)=(29,28)=*(29,25)_UNIVERSAL_NAME_INFOW:T(29,29)=s4lpUniversalName:(6,20),0,32;;UNIVERSAL_NAME_INFOW:t(29,30)=(29,29)LPUNIVERSAL_NAME_INFOW:t(29,31)=(29,32)=*(29,29)_REMOTE_NAME_INFOA:T(29,33)=s12lpUniversalName:(6,32),0,32;lpConnectionName:(6,32),32,32;lpRemainingPath:(6,32),64,32;;REMOTE_NAME_INFOA:t(29,34)=(29,33)LPREMOTE_NAME_INFOA:t(29,35)=(29,36)=*(29,33)_REMOTE_NAME_INFOW:T(29,37)=s12lpUniversalName:(6,20),0,32;lpConnectionName:(6,20),32,32;lpRemainingPath:(6,20),64,32;;REMOTE_NAME_INFOW:t(29,38)=(29,37)LPREMOTE_NAME_INFOW:t(29,39)=(29,40)=*(29,37)_NETINFOSTRUCT:T(29,41)=s32cbStructure:(5,1),0,32;dwProviderVersion:(5,1),32,32;dwStatus:(5,1),64,32;dwCharacteristics:(5,1),96,32;dwHandle:(5,1),128,32;wNetType:(5,11),160,16;dwPrinters:(5,1),192,32;dwDrives:(5,1),224,32;;NETINFOSTRUCT:t(29,42)=(29,41)LPNETINFOSTRUCT:t(29,43)=(29,44)=*(29,41)PFNGETPROFILEPATHA:t(29,45)=(29,46)=*(29,47)=f(5,34)PFNGETPROFILEPATHW:t(29,48)=(29,49)=*(29,50)=f(5,34)PFNRECONCILEPROFILEA:t(29,51)=(29,52)=*(29,53)=f(5,34)PFNRECONCILEPROFILEW:t(29,54)=(29,55)=*(29,56)=f(5,34)PFNPROCESSPOLICIESA:t(29,57)=(29,58)=*(29,59)=f(5,6)PFNPROCESSPOLICIESW:t(29,60)=(29,61)=*(29,62)=f(5,6)_NETCONNECTINFOSTRUCT:T(29,63)=s20cbStructure:(5,1),0,32;dwFlags:(5,1),32,32;dwSpeed:(5,1),64,32;dwDelay:(5,1),96,32;dwOptDataSize:(5,1),128,32;;NETCONNECTINFOSTRUCT:t(29,64)=(29,63)LPNETCONNECTINFOSTRUCT:t(29,65)=(29,66)=*(29,63)NETRESOURCE:t(29,67)=(29,2)LPNETRESOURCE:t(29,68)=(29,69)=*(29,2)CONNECTDLGSTRUCT:t(29,70)=(29,10)LPCONNECTDLGSTRUCT:t(29,71)=(29,72)=*(29,10)DISCDLGSTRUCT:t(29,73)=(29,18)LPDISCDLGSTRUCT:t(29,74)=(29,75)=*(29,18)UNIVERSAL_NAME_INFO:t(29,76)=(29,26)LPUNIVERSAL_NAME_INFO:t(29,77)=(29,78)=*(29,26)REMOTE_NAME_INFO:t(29,79)=(29,34)LPREMOTE_NAME_INFO:t(29,80)=(29,81)=*(29,34)/usr/include/w32api/winreg.hREGSAM:t(30,1)=(6,72)value_entA:T(30,2)=s16ve_valuename:(6,32),0,32;ve_valuelen:(5,1),32,32;ve_valueptr:(5,1),64,32;ve_type:(5,1),96,32;;VALENTA:t(30,3)=(30,2)PVALENTA:t(30,4)=(30,5)=*(30,2)value_entW:T(30,6)=s16ve_valuename:(6,20),0,32;ve_valuelen:(5,1),32,32;ve_valueptr:(5,1),64,32;ve_type:(5,1),96,32;;VALENTW:t(30,7)=(30,6)PVALENTW:t(30,8)=(30,9)=*(30,6)VALENT:t(30,10)=(30,3)PVALENT:t(30,11)=(30,12)=*(30,3)/usr/include/w32api/winsvc.h_SERVICE_STATUS:T(31,1)=s28dwServiceType:(5,1),0,32;dwCurrentState:(5,1),32,32;dwControlsAccepted:(5,1),64,32;dwWin32ExitCode:(5,1),96,32;dwServiceSpecificExitCode:(5,1),128,32;dwCheckPoint:(5,1),160,32;dwWaitHint:(5,1),192,32;;SERVICE_STATUS:t(31,2)=(31,1)LPSERVICE_STATUS:t(31,3)=(31,4)=*(31,1)_ENUM_SERVICE_STATUSA:T(31,5)=s36lpServiceName:(6,32),0,32;lpDisplayName:(6,32),32,32;ServiceStatus:(31,2),64,224;;ENUM_SERVICE_STATUSA:t(31,6)=(31,5)LPENUM_SERVICE_STATUSA:t(31,7)=(31,8)=*(31,5)_ENUM_SERVICE_STATUSW:T(31,9)=s36lpServiceName:(6,20),0,32;lpDisplayName:(6,20),32,32;ServiceStatus:(31,2),64,224;;ENUM_SERVICE_STATUSW:t(31,10)=(31,9)LPENUM_SERVICE_STATUSW:t(31,11)=(31,12)=*(31,9)_QUERY_SERVICE_CONFIGA:T(31,13)=s36dwServiceType:(5,1),0,32;dwStartType:(5,1),32,32;dwErrorControl:(5,1),64,32;lpBinaryPathName:(6,32),96,32;lpLoadOrderGroup:(6,32),128,32;dwTagId:(5,1),160,32;lpDependencies:(6,32),192,32;lpServiceStartName:(6,32),224,32;lpDisplayName:(6,32),256,32;;QUERY_SERVICE_CONFIGA:t(31,14)=(31,13)LPQUERY_SERVICE_CONFIGA:t(31,15)=(31,16)=*(31,13)_QUERY_SERVICE_CONFIGW:T(31,17)=s36dwServiceType:(5,1),0,32;dwStartType:(5,1),32,32;dwErrorControl:(5,1),64,32;lpBinaryPathName:(6,20),96,32;lpLoadOrderGroup:(6,20),128,32;dwTagId:(5,1),160,32;lpDependencies:(6,20),192,32;lpServiceStartName:(6,20),224,32;lpDisplayName:(6,20),256,32;;QUERY_SERVICE_CONFIGW:t(31,18)=(31,17)LPQUERY_SERVICE_CONFIGW:t(31,19)=(31,20)=*(31,17)_QUERY_SERVICE_LOCK_STATUSA:T(31,21)=s12fIsLocked:(5,1),0,32;lpLockOwner:(6,32),32,32;dwLockDuration:(5,1),64,32;;QUERY_SERVICE_LOCK_STATUSA:t(31,22)=(31,21)LPQUERY_SERVICE_LOCK_STATUSA:t(31,23)=(31,24)=*(31,21)_QUERY_SERVICE_LOCK_STATUSW:T(31,25)=s12fIsLocked:(5,1),0,32;lpLockOwner:(6,20),32,32;dwLockDuration:(5,1),64,32;;QUERY_SERVICE_LOCK_STATUSW:t(31,26)=(31,25)LPQUERY_SERVICE_LOCK_STATUSW:t(31,27)=(31,28)=*(31,25)LPSERVICE_MAIN_FUNCTIONA:t(31,29)=(31,30)=*(31,31)=f(0,19)LPSERVICE_MAIN_FUNCTIONW:t(31,32)=(31,33)=*(31,34)=f(0,19)_SERVICE_TABLE_ENTRYA:T(31,35)=s8lpServiceName:(6,32),0,32;lpServiceProc:(31,29),32,32;;SERVICE_TABLE_ENTRYA:t(31,36)=(31,35)LPSERVICE_TABLE_ENTRYA:t(31,37)=(31,38)=*(31,35)_SERVICE_TABLE_ENTRYW:T(31,39)=s8lpServiceName:(6,20),0,32;lpServiceProc:(31,32),32,32;;SERVICE_TABLE_ENTRYW:t(31,40)=(31,39)LPSERVICE_TABLE_ENTRYW:t(31,41)=(31,42)=*(31,39)SC_HANDLE__:T(31,43)=s4i:(0,1),0,32;;SC_HANDLE:t(31,44)=(31,45)=*(31,43)LPSC_HANDLE:t(31,46)=(31,47)=*(31,44)SC_LOCK:t(31,48)=(5,28)SERVICE_STATUS_HANDLE:t(31,49)=(5,1)LPHANDLER_FUNCTION:t(31,50)=(24,220)ENUM_SERVICE_STATUS:t(31,51)=(31,6)LPENUM_SERVICE_STATUS:t(31,52)=(31,53)=*(31,6)QUERY_SERVICE_CONFIG:t(31,54)=(31,14)LPQUERY_SERVICE_CONFIG:t(31,55)=(31,56)=*(31,14)QUERY_SERVICE_LOCK_STATUS:t(31,57)=(31,22)LPQUERY_SERVICE_LOCK_STATUS:t(31,58)=(31,59)=*(31,22)SERVICE_TABLE_ENTRY:t(31,60)=(31,36)LPSERVICE_TABLE_ENTRY:t(31,61)=(31,62)=*(31,36)LPSERVICE_MAIN_FUNCTION:t(31,63)=(31,29)/usr/include/w32api/commdlg.h__CDHOOKPROC:t(32,1)=(32,2)=*(32,3)=f(5,34)LPCCHOOKPROC:t(32,4)=(32,1)LPCFHOOKPROC:t(32,5)=(32,1)LPFRHOOKPROC:t(32,6)=(32,1)LPOFNHOOKPROC:t(32,7)=(32,1)LPPAGEPAINTHOOK:t(32,8)=(32,1)LPPAGESETUPHOOK:t(32,9)=(32,1)LPSETUPHOOKPROC:t(32,10)=(32,1)LPPRINTHOOKPROC:t(32,11)=(32,1)tagCHOOSECOLORA:T(32,12)=s36lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,121),64,32;rgbResult:(5,131),96,32;lpCustColors:(32,13)=*(5,131),128,32;Flags:(5,1),160,32;lCustData:(5,39),192,32;lpfnHook:(32,4),224,32;lpTemplateName:(6,37),256,32;;CHOOSECOLORA:t(32,14)=(32,12)LPCHOOSECOLORA:t(32,15)=(32,16)=*(32,12)tagCHOOSECOLORW:T(32,17)=s36lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,121),64,32;rgbResult:(5,131),96,32;lpCustColors:(32,13),128,32;Flags:(5,1),160,32;lCustData:(5,39),192,32;lpfnHook:(32,4),224,32;lpTemplateName:(6,25),256,32;;CHOOSECOLORW:t(32,18)=(32,17)LPCHOOSECOLORW:t(32,19)=(32,20)=*(32,17)tagCHOOSEFONTA:T(32,21)=s60lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDC:(5,61),64,32;lpLogFont:(25,198),96,32;iPointSize:(5,33),128,32;Flags:(5,1),160,32;rgbColors:(5,1),192,32;lCustData:(5,39),224,32;lpfnHook:(32,5),256,32;lpTemplateName:(6,37),288,32;hInstance:(5,99),320,32;lpszStyle:(6,32),352,32;nFontType:(5,11),384,16;___MISSING_ALIGNMENT__:(5,11),400,16;nSizeMin:(5,33),416,32;nSizeMax:(5,33),448,32;;CHOOSEFONTA:t(32,22)=(32,21)LPCHOOSEFONTA:t(32,23)=(32,24)=*(32,21)tagCHOOSEFONTW:T(32,25)=s60lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDC:(5,61),64,32;lpLogFont:(25,203),96,32;iPointSize:(5,33),128,32;Flags:(5,1),160,32;rgbColors:(5,1),192,32;lCustData:(5,39),224,32;lpfnHook:(32,5),256,32;lpTemplateName:(6,25),288,32;hInstance:(5,99),320,32;lpszStyle:(6,20),352,32;nFontType:(5,11),384,16;___MISSING_ALIGNMENT__:(5,11),400,16;nSizeMin:(5,33),416,32;nSizeMax:(5,33),448,32;;CHOOSEFONTW:t(32,26)=(32,25)LPCHOOSEFONTW:t(32,27)=(32,28)=*(32,25)tagDEVNAMES:T(32,29)=s8wDriverOffset:(5,11),0,16;wDeviceOffset:(5,11),16,16;wOutputOffset:(5,11),32,16;wDefault:(5,11),48,16;;DEVNAMES:t(32,30)=(32,29)LPDEVNAMES:t(32,31)=(32,32)=*(32,29)FINDREPLACEA:t(32,33)=(32,34)=s40lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;Flags:(5,1),96,32;lpstrFindWhat:(6,32),128,32;lpstrReplaceWith:(6,32),160,32;wFindWhatLen:(5,11),192,16;wReplaceWithLen:(5,11),208,16;lCustData:(5,39),224,32;lpfnHook:(32,6),256,32;lpTemplateName:(6,37),288,32;;LPFINDREPLACEA:t(32,35)=(32,36)=*(32,34)FINDREPLACEW:t(32,37)=(32,38)=s40lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;Flags:(5,1),96,32;lpstrFindWhat:(6,20),128,32;lpstrReplaceWith:(6,20),160,32;wFindWhatLen:(5,11),192,16;wReplaceWithLen:(5,11),208,16;lCustData:(5,39),224,32;lpfnHook:(32,6),256,32;lpTemplateName:(6,25),288,32;;LPFINDREPLACEW:t(32,39)=(32,40)=*(32,38)tagOFNA:T(32,41)=s76lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;lpstrFilter:(6,37),96,32;lpstrCustomFilter:(6,32),128,32;nMaxCustFilter:(5,1),160,32;nFilterIndex:(5,1),192,32;lpstrFile:(6,32),224,32;nMaxFile:(5,1),256,32;lpstrFileTitle:(6,32),288,32;nMaxFileTitle:(5,1),320,32;lpstrInitialDir:(6,37),352,32;lpstrTitle:(6,37),384,32;Flags:(5,1),416,32;nFileOffset:(5,11),448,16;nFileExtension:(5,11),464,16;lpstrDefExt:(6,37),480,32;lCustData:(5,1),512,32;lpfnHook:(32,7),544,32;lpTemplateName:(6,37),576,32;;OPENFILENAMEA:t(32,42)=(32,41)LPOPENFILENAMEA:t(32,43)=(32,44)=*(32,41)tagOFNW:T(32,45)=s76lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;lpstrFilter:(6,25),96,32;lpstrCustomFilter:(6,20),128,32;nMaxCustFilter:(5,1),160,32;nFilterIndex:(5,1),192,32;lpstrFile:(6,20),224,32;nMaxFile:(5,1),256,32;lpstrFileTitle:(6,20),288,32;nMaxFileTitle:(5,1),320,32;lpstrInitialDir:(6,25),352,32;lpstrTitle:(6,25),384,32;Flags:(5,1),416,32;nFileOffset:(5,11),448,16;nFileExtension:(5,11),464,16;lpstrDefExt:(6,25),480,32;lCustData:(5,1),512,32;lpfnHook:(32,7),544,32;lpTemplateName:(6,25),576,32;;OPENFILENAMEW:t(32,46)=(32,45)LPOPENFILENAMEW:t(32,47)=(32,48)=*(32,45)_OFNOTIFYA:T(32,49)=s20hdr:(26,145),0,96;lpOFN:(32,43),96,32;pszFile:(6,32),128,32;;OFNOTIFYA:t(32,50)=(32,49)LPOFNOTIFYA:t(32,51)=(32,52)=*(32,49)_OFNOTIFYW:T(32,53)=s20hdr:(26,145),0,96;lpOFN:(32,47),96,32;pszFile:(6,20),128,32;;OFNOTIFYW:t(32,54)=(32,53)LPOFNOTIFYW:t(32,55)=(32,56)=*(32,53)tagPSDA:T(32,57)=s84lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDevMode:(5,43),64,32;hDevNames:(5,43),96,32;Flags:(5,1),128,32;ptPaperSize:(5,152),160,64;rtMinMargin:(5,138),224,128;rtMargin:(5,138),352,128;hInstance:(5,99),480,32;lCustData:(5,39),512,32;lpfnPageSetupHook:(32,9),544,32;lpfnPagePaintHook:(32,8),576,32;lpPageSetupTemplateName:(6,37),608,32;hPageSetupTemplate:(5,43),640,32;;PAGESETUPDLGA:t(32,58)=(32,57)LPPAGESETUPDLGA:t(32,59)=(32,60)=*(32,57)tagPSDW:T(32,61)=s84lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDevMode:(5,43),64,32;hDevNames:(5,43),96,32;Flags:(5,1),128,32;ptPaperSize:(5,152),160,64;rtMinMargin:(5,138),224,128;rtMargin:(5,138),352,128;hInstance:(5,99),480,32;lCustData:(5,39),512,32;lpfnPageSetupHook:(32,9),544,32;lpfnPagePaintHook:(32,8),576,32;lpPageSetupTemplateName:(6,25),608,32;hPageSetupTemplate:(5,43),640,32;;PAGESETUPDLGW:t(32,62)=(32,61)LPPAGESETUPDLGW:t(32,63)=(32,64)=*(32,61)tagPDA:T(32,65)=s66lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDevMode:(6,54),64,32;hDevNames:(6,54),96,32;hDC:(5,61),128,32;Flags:(5,1),160,32;nFromPage:(5,11),192,16;nToPage:(5,11),208,16;nMinPage:(5,11),224,16;nMaxPage:(5,11),240,16;nCopies:(5,11),256,16;hInstance:(5,99),272,32;lCustData:(5,1),304,32;lpfnPrintHook:(32,11),336,32;lpfnSetupHook:(32,10),368,32;lpPrintTemplateName:(6,37),400,32;lpSetupTemplateName:(6,37),432,32;hPrintTemplate:(6,54),464,32;hSetupTemplate:(6,54),496,32;;PRINTDLGA:t(32,66)=(32,65)LPPRINTDLGA:t(32,67)=(32,68)=*(32,65)tagPDW:T(32,69)=s66lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDevMode:(6,54),64,32;hDevNames:(6,54),96,32;hDC:(5,61),128,32;Flags:(5,1),160,32;nFromPage:(5,11),192,16;nToPage:(5,11),208,16;nMinPage:(5,11),224,16;nMaxPage:(5,11),240,16;nCopies:(5,11),256,16;hInstance:(5,99),272,32;lCustData:(5,1),304,32;lpfnPrintHook:(32,11),336,32;lpfnSetupHook:(32,10),368,32;lpPrintTemplateName:(6,25),400,32;lpSetupTemplateName:(6,25),432,32;hPrintTemplate:(6,54),464,32;hSetupTemplate:(6,54),496,32;;PRINTDLGW:t(32,70)=(32,69)LPPRINTDLGW:t(32,71)=(32,72)=*(32,69)CHOOSECOLOR:t(32,73)=(32,14)LPCHOOSECOLOR:t(32,74)=(32,75)=*(32,14)CHOOSEFONT:t(32,76)=(32,22)LPCHOOSEFONT:t(32,77)=(32,78)=*(32,22)FINDREPLACE:t(32,79)=(32,33)LPFINDREPLACE:t(32,80)=(32,81)=*(32,33)OPENFILENAME:t(32,82)=(32,42)LPOPENFILENAME:t(32,83)=(32,84)=*(32,42)OFNOTIFY:t(32,85)=(32,50)LPOFNOTIFY:t(32,86)=(32,87)=*(32,50)PAGESETUPDLG:t(32,88)=(32,58)LPPAGESETUPDLG:t(32,89)=(32,90)=*(32,58)PRINTDLG:t(32,91)=(32,66)LPPRINTDLG:t(32,92)=(32,93)=*(32,66)/usr/include/w32api/cderr.h/usr/include/w32api/dde.hDDEACK:t(34,1)=(34,2)=s2bAppReturnCode:(0,9),0,8;reserved:(0,9),8,6;fBusy:(0,9),14,1;fAck:(0,9),15,1;;DDEADVISE:t(34,3)=(34,4)=s4reserved:(0,9),0,14;fDeferUpd:(0,9),14,1;fAckReq:(0,9),15,1;cfFormat:(0,8),16,16;;DDEDATA:t(34,5)=(34,6)=s6unused:(0,9),0,12;fResponse:(0,9),12,1;fRelease:(0,9),13,1;reserved:(0,9),14,1;fAckReq:(0,9),15,1;cfFormat:(0,8),16,16;Value:(6,304),32,8;;DDEPOKE:t(34,7)=(34,8)=s6unused:(0,9),0,13;fRelease:(0,9),13,1;fReserved:(0,9),14,2;cfFormat:(0,8),16,16;Value:(6,304),32,8;;DDELN:t(34,9)=(34,10)=s4unused:(0,9),0,13;fRelease:(0,9),13,1;fDeferUpd:(0,9),14,1;fAckReq:(0,9),15,1;cfFormat:(0,8),16,16;;DDEUP:t(34,11)=(34,12)=s6unused:(0,9),0,12;fAck:(0,9),12,1;fRelease:(0,9),13,1;fReserved:(0,9),14,1;fAckReq:(0,9),15,1;cfFormat:(0,8),16,16;rgb:(6,304),32,8;;/usr/include/w32api/ddeml.hHCONVLIST__:T(35,1)=s4i:(0,1),0,32;;HCONVLIST:t(35,2)=(35,3)=*(35,1)HCONV__:T(35,4)=s4i:(0,1),0,32;;HCONV:t(35,5)=(35,6)=*(35,4)HSZ__:T(35,7)=s4i:(0,1),0,32;;HSZ:t(35,8)=(35,9)=*(35,7)HDDEDATA__:T(35,10)=s4i:(0,1),0,32;;HDDEDATA:t(35,11)=(35,12)=*(35,10)FNCALLBACK:t(35,13)=(35,14)=f(35,11)PFNCALLBACK:t(35,15)=(35,16)=*(35,14)tagHSZPAIR:T(35,17)=s8hszSvc:(35,8),0,32;hszTopic:(35,8),32,32;;HSZPAIR:t(35,18)=(35,17)PHSZPAIR:t(35,19)=(35,20)=*(35,17)tagCONVCONTEXT:T(35,21)=s36cb:(5,34),0,32;wFlags:(5,34),32,32;wCountryID:(5,34),64,32;iCodePage:(0,1),96,32;dwLangID:(5,1),128,32;dwSecurity:(5,1),160,32;qos:(6,172),192,96;;CONVCONTEXT:t(35,22)=(35,21)PCONVCONTEXT:t(35,23)=(35,24)=*(35,21)tagCONVINFO:T(35,25)=s96cb:(5,1),0,32;hUser:(5,1),32,32;hConvPartner:(35,5),64,32;hszSvcPartner:(35,8),96,32;hszServiceReq:(35,8),128,32;hszTopic:(35,8),160,32;hszItem:(35,8),192,32;wFmt:(5,34),224,32;wType:(5,34),256,32;wStatus:(5,34),288,32;wConvst:(5,34),320,32;wLastError:(5,34),352,32;hConvList:(35,2),384,32;ConvCtxt:(35,22),416,288;hwnd:(5,121),704,32;hwndPartner:(5,121),736,32;;CONVINFO:t(35,26)=(35,25)PCONVINFO:t(35,27)=(35,28)=*(35,25)tagDDEML_MSG_HOOK_DATA:T(35,29)=s44uiLo:(5,34),0,32;uiHi:(5,34),32,32;cbData:(5,1),64,32;Data:(35,30)=ar(0,1);0;7;(5,1),96,256;;DDEML_MSG_HOOK_DATA:t(35,31)=(35,29)/usr/include/w32api/dlgs.htagCRGB:T(36,1)=s4bRed:(5,10),0,8;bGreen:(5,10),8,8;bBlue:(5,10),16,8;bExtra:(5,10),24,8;;CRGB:t(36,2)=(36,1)/usr/include/w32api/lzexpand.h/usr/include/w32api/mmsystem.hMCIERROR:t(38,1)=(5,1)MCIDEVICEID:t(38,2)=(5,34)YIELDPROC:t(38,3)=(38,4)=*(38,5)=f(5,34)MMVERSION:t(38,6)=(5,34)MMRESULT:t(38,7)=(5,34)mmtime_tag:T(38,8)=s12wType:(5,34),0,32;u:(38,9)=u8ms:(5,1),0,32;sample:(5,1),0,32;cb:(5,1),0,32;ticks:(5,1),0,32;smpte:(38,10)=s8hour:(5,10),0,8;min:(5,10),8,8;sec:(5,10),16,8;frame:(5,10),24,8;fps:(5,10),32,8;dummy:(5,10),40,8;pad:(6,422),48,16;;,0,64;midi:(38,11)=s4songptrpos:(5,1),0,32;;,0,32;;,32,64;;MMTIME:t(38,12)=(38,8)PMMTIME:t(38,13)=(38,14)=*(38,8)LPMMTIME:t(38,15)=(38,14)HDRVR__:T(38,16)=s4i:(0,1),0,32;;HDRVR:t(38,17)=(38,18)=*(38,16)tagDRVCONFIGINFO:T(38,19)=s12dwDCISize:(5,1),0,32;lpszDCISectionName:(6,25),32,32;lpszDCIAliasName:(6,25),64,32;;DRVCONFIGINFO:t(38,20)=(38,19)PDRVCONFIGINFO:t(38,21)=(38,22)=*(38,19)LPDRVCONFIGINFO:t(38,23)=(38,22)DRVCONFIGINFOEX:T(38,24)=s16dwDCISize:(5,1),0,32;lpszDCISectionName:(6,25),32,32;lpszDCIAliasName:(6,25),64,32;dnDevNode:(5,1),96,32;;DRVCONFIGINFOEX:t(38,25)=(38,24)PDRVCONFIGINFOEX:t(38,26)=(38,27)=*(38,24)LPDRVCONFIGINFOEX:t(38,28)=(38,27)DRIVERPROC:t(38,29)=(38,30)=*(38,31)=f(5,40)DRVCALLBACK:t(38,32)=(38,33)=f(0,19)LPDRVCALLBACK:t(38,34)=(38,35)=*(38,32)PDRVCALLBACK:t(38,36)=(38,35)HWAVE__:T(38,37)=s4i:(0,1),0,32;;HWAVE:t(38,38)=(38,39)=*(38,37)HWAVEIN__:T(38,40)=s4i:(0,1),0,32;;HWAVEIN:t(38,41)=(38,42)=*(38,40)HWAVEOUT__:T(38,43)=s4i:(0,1),0,32;;HWAVEOUT:t(38,44)=(38,45)=*(38,43)LPHWAVEIN:t(38,46)=(38,47)=*(38,41)LPHWAVEOUT:t(38,48)=(38,49)=*(38,44)WAVECALLBACK:t(38,50)=(38,32)LPWAVECALLBACK:t(38,51)=(38,52)=*(38,50)wavehdr_tag:T(38,53)=s32lpData:(6,32),0,32;dwBufferLength:(5,1),32,32;dwBytesRecorded:(5,1),64,32;dwUser:(5,1),96,32;dwFlags:(5,1),128,32;dwLoops:(5,1),160,32;lpNext:(38,54)=*(38,53),192,32;reserved:(5,1),224,32;;WAVEHDR:t(38,55)=(38,53)PWAVEHDR:t(38,56)=(38,54)LPWAVEHDR:t(38,57)=(38,54)tagWAVEOUTCAPSA:T(38,58)=s52wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;dwFormats:(5,1),320,32;wChannels:(5,11),352,16;wReserved1:(5,11),368,16;dwSupport:(5,1),384,32;;WAVEOUTCAPSA:t(38,59)=(38,58)PWAVEOUTCAPSA:t(38,60)=(38,61)=*(38,58)LPWAVEOUTCAPSA:t(38,62)=(38,61)tagWAVEOUTCAPSW:T(38,63)=s84wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;dwFormats:(5,1),576,32;wChannels:(5,11),608,16;wReserved1:(5,11),624,16;dwSupport:(5,1),640,32;;WAVEOUTCAPSW:t(38,64)=(38,63)PWAVEOUTCAPSW:t(38,65)=(38,66)=*(38,63)LPWAVEOUTCAPSW:t(38,67)=(38,66)tagWAVEINCAPSA:T(38,68)=s48wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;dwFormats:(5,1),320,32;wChannels:(5,11),352,16;wReserved1:(5,11),368,16;;WAVEINCAPSA:t(38,69)=(38,68)PWAVEINCAPSA:t(38,70)=(38,71)=*(38,68)LPWAVEINCAPSA:t(38,72)=(38,71)tagWAVEINCAPSW:T(38,73)=s80wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;dwFormats:(5,1),576,32;wChannels:(5,11),608,16;wReserved1:(5,11),624,16;;WAVEINCAPSW:t(38,74)=(38,73)PWAVEINCAPSW:t(38,75)=(38,76)=*(38,73)LPWAVEINCAPSW:t(38,77)=(38,76)waveformat_tag:T(38,78)=s14wFormatTag:(5,11),0,16;nChannels:(5,11),16,16;nSamplesPerSec:(5,1),32,32;nAvgBytesPerSec:(5,1),64,32;nBlockAlign:(5,11),96,16;;WAVEFORMAT:t(38,79)=(38,78)PWAVEFORMAT:t(38,80)=(38,81)=*(38,78)LPWAVEFORMAT:t(38,82)=(38,81)pcmwaveformat_tag:T(38,83)=s16wf:(38,79),0,112;wBitsPerSample:(5,11),112,16;;PCMWAVEFORMAT:t(38,84)=(38,83)PPCMWAVEFORMAT:t(38,85)=(38,86)=*(38,83)LPPCMWAVEFORMAT:t(38,87)=(38,86)tWAVEFORMATEX:T(38,88)=s18wFormatTag:(5,11),0,16;nChannels:(5,11),16,16;nSamplesPerSec:(5,1),32,32;nAvgBytesPerSec:(5,1),64,32;nBlockAlign:(5,11),96,16;wBitsPerSample:(5,11),112,16;cbSize:(5,11),128,16;;WAVEFORMATEX:t(38,89)=(38,88)PWAVEFORMATEX:t(38,90)=(38,91)=*(38,88)LPWAVEFORMATEX:t(38,92)=(38,91)LPCWAVEFORMATEX:t(38,93)=(38,94)=*(38,89)HMIDI__:T(38,95)=s4i:(0,1),0,32;;HMIDI:t(38,96)=(38,97)=*(38,95)HMIDIIN__:T(38,98)=s4i:(0,1),0,32;;HMIDIIN:t(38,99)=(38,100)=*(38,98)HMIDIOUT__:T(38,101)=s4i:(0,1),0,32;;HMIDIOUT:t(38,102)=(38,103)=*(38,101)HMIDISTRM__:T(38,104)=s4i:(0,1),0,32;;HMIDISTRM:t(38,105)=(38,106)=*(38,104)LPHMIDI:t(38,107)=(38,108)=*(38,96)LPHMIDIIN:t(38,109)=(38,110)=*(38,99)LPHMIDIOUT:t(38,111)=(38,112)=*(38,102)LPHMIDISTRM:t(38,113)=(38,114)=*(38,105)MIDICALLBACK:t(38,115)=(38,32)LPMIDICALLBACK:t(38,116)=(38,117)=*(38,115)PATCHARRAY:t(38,118)=(38,119)=ar(0,1);0;127;(5,11)LPPATCHARRAY:t(38,120)=(5,21)KEYARRAY:t(38,121)=(38,119)LPKEYARRAY:t(38,122)=(5,21)tagMIDIOUTCAPSA:T(38,123)=s52wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;wTechnology:(5,11),320,16;wVoices:(5,11),336,16;wNotes:(5,11),352,16;wChannelMask:(5,11),368,16;dwSupport:(5,1),384,32;;MIDIOUTCAPSA:t(38,124)=(38,123)PMIDIOUTCAPSA:t(38,125)=(38,126)=*(38,123)LPMIDIOUTCAPSA:t(38,127)=(38,126)tagMIDIOUTCAPSW:T(38,128)=s84wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;wTechnology:(5,11),576,16;wVoices:(5,11),592,16;wNotes:(5,11),608,16;wChannelMask:(5,11),624,16;dwSupport:(5,1),640,32;;MIDIOUTCAPSW:t(38,129)=(38,128)PMIDIOUTCAPSW:t(38,130)=(38,131)=*(38,128)LPMIDIOUTCAPSW:t(38,132)=(38,131)tagMIDIINCAPSA:T(38,133)=s44wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;dwSupport:(5,1),320,32;;MIDIINCAPSA:t(38,134)=(38,133)PMIDIINCAPSA:t(38,135)=(38,136)=*(38,133)LPMIDIINCAPSA:t(38,137)=(38,136)tagMIDIINCAPSW:T(38,138)=s76wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;dwSupport:(5,1),576,32;;MIDIINCAPSW:t(38,139)=(38,138)PMIDIINCAPSW:t(38,140)=(38,141)=*(38,138)NPMIDIINCAPSW:t(38,142)=(38,141)LPMIDIINCAPSW:t(38,143)=(38,141)midihdr_tag:T(38,144)=s64lpData:(6,32),0,32;dwBufferLength:(5,1),32,32;dwBytesRecorded:(5,1),64,32;dwUser:(5,1),96,32;dwFlags:(5,1),128,32;lpNext:(38,145)=*(38,144),160,32;reserved:(5,1),192,32;dwOffset:(5,1),224,32;dwReserved:(35,30),256,256;;MIDIHDR:t(38,146)=(38,144)PMIDIHDR:t(38,147)=(38,145)LPMIDIHDR:t(38,148)=(38,145)midievent_tag:T(38,149)=s16dwDeltaTime:(5,1),0,32;dwStreamID:(5,1),32,32;dwEvent:(5,1),64,32;dwParms:(6,188),96,32;;MIDIEVENT:t(38,150)=(38,149)midistrmbuffver_tag:T(38,151)=s12dwVersion:(5,1),0,32;dwMid:(5,1),32,32;dwOEMVersion:(5,1),64,32;;MIDISTRMBUFFVER:t(38,152)=(38,151)midiproptimediv_tag:T(38,153)=s8cbStruct:(5,1),0,32;dwTimeDiv:(5,1),32,32;;MIDIPROPTIMEDIV:t(38,154)=(38,153)LPMIDIPROPTIMEDIV:t(38,155)=(38,156)=*(38,153)midiproptempo_tag:T(38,157)=s8cbStruct:(5,1),0,32;dwTempo:(5,1),32,32;;MIDIPROPTEMPO:t(38,158)=(38,157)LPMIDIPROPTEMPO:t(38,159)=(38,160)=*(38,157)tagAUXCAPSA:T(38,161)=s48wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;wTechnology:(5,11),320,16;wReserved1:(5,11),336,16;dwSupport:(5,1),352,32;;AUXCAPSA:t(38,162)=(38,161)PAUXCAPSA:t(38,163)=(38,164)=*(38,161)LPAUXCAPSA:t(38,165)=(38,164)tagAUXCAPSW:T(38,166)=s80wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;wTechnology:(5,11),576,16;wReserved1:(5,11),592,16;dwSupport:(5,1),608,32;;AUXCAPSW:t(38,167)=(38,166)PAUXCAPSW:t(38,168)=(38,169)=*(38,166)LPAUXCAPSW:t(38,170)=(38,169)HMIXEROBJ__:T(38,171)=s4i:(0,1),0,32;;HMIXEROBJ:t(38,172)=(38,173)=*(38,171)LPHMIXEROBJ:t(38,174)=(38,175)=*(38,172)HMIXER__:T(38,176)=s4i:(0,1),0,32;;HMIXER:t(38,177)=(38,178)=*(38,176)LPHMIXER:t(38,179)=(38,180)=*(38,177)tagMIXERCAPSA:T(38,181)=s48wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;fdwSupport:(5,1),320,32;cDestinations:(5,1),352,32;;MIXERCAPSA:t(38,182)=(38,181)PMIXERCAPSA:t(38,183)=(38,184)=*(38,181)LPMIXERCAPSA:t(38,185)=(38,184)tagMIXERCAPSW:T(38,186)=s80wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;fdwSupport:(5,1),576,32;cDestinations:(5,1),608,32;;MIXERCAPSW:t(38,187)=(38,186)PMIXERCAPSW:t(38,188)=(38,189)=*(38,186)LPMIXERCAPSW:t(38,190)=(38,189)tagMIXERLINEA:T(38,191)=s168cbStruct:(5,1),0,32;dwDestination:(5,1),32,32;dwSource:(5,1),64,32;dwLineID:(5,1),96,32;fdwLine:(5,1),128,32;dwUser:(5,1),160,32;dwComponentType:(5,1),192,32;cChannels:(5,1),224,32;cConnections:(5,1),256,32;cControls:(5,1),288,32;szShortName:(38,192)=ar(0,1);0;15;(6,1),320,128;szName:(38,193)=ar(0,1);0;63;(6,1),448,512;Target:(38,194)=s48dwType:(5,1),0,32;dwDeviceID:(5,1),32,32;wMid:(5,11),64,16;wPid:(5,11),80,16;vDriverVersion:(38,6),96,32;szPname:(25,194),128,256;;,960,384;;MIXERLINEA:t(38,195)=(38,191)PMIXERLINEA:t(38,196)=(38,197)=*(38,191)LPMIXERLINEA:t(38,198)=(38,197)tagMIXERLINEW:T(38,199)=s280cbStruct:(5,1),0,32;dwDestination:(5,1),32,32;dwSource:(5,1),64,32;dwLineID:(5,1),96,32;fdwLine:(5,1),128,32;dwUser:(5,1),160,32;dwComponentType:(5,1),192,32;cChannels:(5,1),224,32;cConnections:(5,1),256,32;cControls:(5,1),288,32;szShortName:(38,200)=ar(0,1);0;15;(6,14),320,256;szName:(25,212),576,1024;Target:(38,201)=s80dwType:(5,1),0,32;dwDeviceID:(5,1),32,32;wMid:(5,11),64,16;wPid:(5,11),80,16;vDriverVersion:(38,6),96,32;szPname:(24,153),128,512;;,1600,640;;MIXERLINEW:t(38,202)=(38,199)PMIXERLINEW:t(38,203)=(38,204)=*(38,199)LPMIXERLINEW:t(38,205)=(38,204)tagMIXERCONTROLA:T(38,206)=s148cbStruct:(5,1),0,32;dwControlID:(5,1),32,32;dwControlType:(5,1),64,32;fdwControl:(5,1),96,32;cMultipleItems:(5,1),128,32;szShortName:(38,192),160,128;szName:(38,193),288,512;Bounds:(38,207)=u24:(38,208)=s8lMinimum:(6,3),0,32;lMaximum:(6,3),32,32;;,0,64;:(38,209)=s8dwMinimum:(5,1),0,32;dwMaximum:(5,1),32,32;;,0,64;dwReserved:(38,210)=ar(0,1);0;5;(5,1),0,192;;,800,192;Metrics:(38,211)=u24cSteps:(5,1),0,32;cbCustomData:(5,1),0,32;dwReserved:(38,210),0,192;;,992,192;;MIXERCONTROLA:t(38,212)=(38,206)PMIXERCONTROLA:t(38,213)=(38,214)=*(38,206)LPMIXERCONTROLA:t(38,215)=(38,214)tagMIXERCONTROLW:T(38,216)=s228cbStruct:(5,1),0,32;dwControlID:(5,1),32,32;dwControlType:(5,1),64,32;fdwControl:(5,1),96,32;cMultipleItems:(5,1),128,32;szShortName:(38,200),160,256;szName:(25,212),416,1024;Bounds:(38,217)=u24:(38,218)=s8lMinimum:(6,3),0,32;lMaximum:(6,3),32,32;;,0,64;:(38,219)=s8dwMinimum:(5,1),0,32;dwMaximum:(5,1),32,32;;,0,64;dwReserved:(38,210),0,192;;,1440,192;Metrics:(38,220)=u24cSteps:(5,1),0,32;cbCustomData:(5,1),0,32;dwReserved:(38,210),0,192;;,1632,192;;MIXERCONTROLW:t(38,221)=(38,216)PMIXERCONTROLW:t(38,222)=(38,223)=*(38,216)LPMIXERCONTROLW:t(38,224)=(38,223)tagMIXERLINECONTROLSA:T(38,225)=s24cbStruct:(5,1),0,32;dwLineID:(5,1),32,32;:(38,226)=u4dwControlID:(5,1),0,32;dwControlType:(5,1),0,32;;,64,32;cControls:(5,1),96,32;cbmxctrl:(5,1),128,32;pamxctrl:(38,215),160,32;;MIXERLINECONTROLSA:t(38,227)=(38,225)PMIXERLINECONTROLSA:t(38,228)=(38,229)=*(38,225)LPMIXERLINECONTROLSA:t(38,230)=(38,229)tagMIXERLINECONTROLSW:T(38,231)=s24cbStruct:(5,1),0,32;dwLineID:(5,1),32,32;:(38,232)=u4dwControlID:(5,1),0,32;dwControlType:(5,1),0,32;;,64,32;cControls:(5,1),96,32;cbmxctrl:(5,1),128,32;pamxctrl:(38,224),160,32;;MIXERLINECONTROLSW:t(38,233)=(38,231)PMIXERLINECONTROLSW:t(38,234)=(38,235)=*(38,231)LPMIXERLINECONTROLSW:t(38,236)=(38,235)tMIXERCONTROLDETAILS:T(38,237)=s24cbStruct:(5,1),0,32;dwControlID:(5,1),32,32;cChannels:(5,1),64,32;:(38,238)=u4hwndOwner:(5,121),0,32;cMultipleItems:(5,1),0,32;;,96,32;cbDetails:(5,1),128,32;paDetails:(5,28),160,32;;MIXERCONTROLDETAILS:t(38,239)=(38,237)PMIXERCONTROLDETAILS:t(38,240)=(38,241)=*(38,237)LPMIXERCONTROLDETAILS:t(38,242)=(38,241)tagMIXERCONTROLDETAILS_LISTTEXTA:T(38,243)=s72dwParam1:(5,1),0,32;dwParam2:(5,1),32,32;szName:(38,193),64,512;;MIXERCONTROLDETAILS_LISTTEXTA:t(38,244)=(38,243)PMIXERCONTROLDETAILS_LISTTEXTA:t(38,245)=(38,246)=*(38,243)LPMIXERCONTROLDETAILS_LISTTEXTA:t(38,247)=(38,246)tagMIXERCONTROLDETAILS_LISTTEXTW:T(38,248)=s136dwParam1:(5,1),0,32;dwParam2:(5,1),32,32;szName:(25,212),64,1024;;MIXERCONTROLDETAILS_LISTTEXTW:t(38,249)=(38,248)PMIXERCONTROLDETAILS_LISTTEXTW:t(38,250)=(38,251)=*(38,248)LPMIXERCONTROLDETAILS_LISTTEXTW:t(38,252)=(38,251)tMIXERCONTROLDETAILS_BOOLEAN:T(38,253)=s4fValue:(6,3),0,32;;MIXERCONTROLDETAILS_BOOLEAN:t(38,254)=(38,253)PMIXERCONTROLDETAILS_BOOLEAN:t(38,255)=(38,256)=*(38,253)LPMIXERCONTROLDETAILS_BOOLEAN:t(38,257)=(38,256)tMIXERCONTROLDETAILS_SIGNED:T(38,258)=s4lValue:(6,3),0,32;;MIXERCONTROLDETAILS_SIGNED:t(38,259)=(38,258)PMIXERCONTROLDETAILS_SIGNED:t(38,260)=(38,261)=*(38,258)LPMIXERCONTROLDETAILS_SIGNED:t(38,262)=(38,261)tMIXERCONTROLDETAILS_UNSIGNED:T(38,263)=s4dwValue:(5,1),0,32;;MIXERCONTROLDETAILS_UNSIGNED:t(38,264)=(38,263)PMIXERCONTROLDETAILS_UNSIGNED:t(38,265)=(38,266)=*(38,263)LPMIXERCONTROLDETAILS_UNSIGNED:t(38,267)=(38,266)TIMECALLBACK:t(38,268)=(38,269)=f(0,19)LPTIMECALLBACK:t(38,270)=(38,271)=*(38,268)timecaps_tag:T(38,272)=s8wPeriodMin:(5,34),0,32;wPeriodMax:(5,34),32,32;;TIMECAPS:t(38,273)=(38,272)PTIMECAPS:t(38,274)=(38,275)=*(38,272)LPTIMECAPS:t(38,276)=(38,275)tagJOYCAPSA:T(38,277)=s404wMid:(5,11),0,16;wPid:(5,11),16,16;szPname:(25,194),32,256;wXmin:(5,34),288,32;wXmax:(5,34),320,32;wYmin:(5,34),352,32;wYmax:(5,34),384,32;wZmin:(5,34),416,32;wZmax:(5,34),448,32;wNumButtons:(5,34),480,32;wPeriodMin:(5,34),512,32;wPeriodMax:(5,34),544,32;wRmin:(5,34),576,32;wRmax:(5,34),608,32;wUmin:(5,34),640,32;wUmax:(5,34),672,32;wVmin:(5,34),704,32;wVmax:(5,34),736,32;wCaps:(5,34),768,32;wMaxAxes:(5,34),800,32;wNumAxes:(5,34),832,32;wMaxButtons:(5,34),864,32;szRegKey:(25,194),896,256;szOEMVxD:(24,109),1152,2080;;JOYCAPSA:t(38,278)=(38,277)PJOYCAPSA:t(38,279)=(38,280)=*(38,277)LPJOYCAPSA:t(38,281)=(38,280)tagJOYCAPSW:T(38,282)=s728wMid:(5,11),0,16;wPid:(5,11),16,16;szPname:(24,153),32,512;wXmin:(5,34),544,32;wXmax:(5,34),576,32;wYmin:(5,34),608,32;wYmax:(5,34),640,32;wZmin:(5,34),672,32;wZmax:(5,34),704,32;wNumButtons:(5,34),736,32;wPeriodMin:(5,34),768,32;wPeriodMax:(5,34),800,32;wRmin:(5,34),832,32;wRmax:(5,34),864,32;wUmin:(5,34),896,32;wUmax:(5,34),928,32;wVmin:(5,34),960,32;wVmax:(5,34),992,32;wCaps:(5,34),1024,32;wMaxAxes:(5,34),1056,32;wNumAxes:(5,34),1088,32;wMaxButtons:(5,34),1120,32;szRegKey:(24,153),1152,512;szOEMVxD:(24,115),1664,4160;;JOYCAPSW:t(38,283)=(38,282)PJOYCAPSW:t(38,284)=(38,285)=*(38,282)LPJOYCAPSW:t(38,286)=(38,285)joyinfo_tag:T(38,287)=s16wXpos:(5,34),0,32;wYpos:(5,34),32,32;wZpos:(5,34),64,32;wButtons:(5,34),96,32;;JOYINFO:t(38,288)=(38,287)PJOYINFO:t(38,289)=(38,290)=*(38,287)LPJOYINFO:t(38,291)=(38,290)joyinfoex_tag:T(38,292)=s52dwSize:(5,1),0,32;dwFlags:(5,1),32,32;dwXpos:(5,1),64,32;dwYpos:(5,1),96,32;dwZpos:(5,1),128,32;dwRpos:(5,1),160,32;dwUpos:(5,1),192,32;dwVpos:(5,1),224,32;dwButtons:(5,1),256,32;dwButtonNumber:(5,1),288,32;dwPOV:(5,1),320,32;dwReserved1:(5,1),352,32;dwReserved2:(5,1),384,32;;JOYINFOEX:t(38,293)=(38,292)PJOYINFOEX:t(38,294)=(38,295)=*(38,292)LPJOYINFOEX:t(38,296)=(38,295)FOURCC:t(38,297)=(5,1)HPSTR:t(38,298)=(15,13)HMMIO__:T(38,299)=s4i:(0,1),0,32;;HMMIO:t(38,300)=(38,301)=*(38,299)MMIOPROC:t(38,302)=(38,303)=f(5,40)LPMMIOPROC:t(38,304)=(38,305)=*(38,302)_MMIOINFO:T(38,306)=s72dwFlags:(5,1),0,32;fccIOProc:(38,297),32,32;pIOProc:(38,304),64,32;wErrorRet:(5,34),96,32;htask:(5,118),128,32;cchBuffer:(6,3),160,32;pchBuffer:(38,298),192,32;pchNext:(38,298),224,32;pchEndRead:(38,298),256,32;pchEndWrite:(38,298),288,32;lBufOffset:(6,3),320,32;lDiskOffset:(6,3),352,32;adwInfo:(6,513),384,96;dwReserved1:(5,1),480,32;dwReserved2:(5,1),512,32;hmmio:(38,300),544,32;;MMIOINFO:t(38,307)=(38,306)PMMIOINFO:t(38,308)=(38,309)=*(38,306)LPMMIOINFO:t(38,310)=(38,309)LPCMMIOINFO:t(38,311)=(38,312)=*(38,307)_MMCKINFO:T(38,313)=s20ckid:(38,297),0,32;cksize:(5,1),32,32;fccType:(38,297),64,32;dwDataOffset:(5,1),96,32;dwFlags:(5,1),128,32;;MMCKINFO:t(38,314)=(38,313)PMMCKINFO:t(38,315)=(38,316)=*(38,313)LPMMCKINFO:t(38,317)=(38,316)LPCMMCKINFO:t(38,318)=(38,319)=*(38,314)tagMCI_GENERIC_PARMS:T(38,320)=s4dwCallback:(5,1),0,32;;MCI_GENERIC_PARMS:t(38,321)=(38,320)PMCI_GENERIC_PARMS:t(38,322)=(38,323)=*(38,320)LPMCI_GENERIC_PARMS:t(38,324)=(38,323)tagMCI_OPEN_PARMSA:T(38,325)=s20dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,37),64,32;lpstrElementName:(6,37),96,32;lpstrAlias:(6,37),128,32;;MCI_OPEN_PARMSA:t(38,326)=(38,325)PMCI_OPEN_PARMSA:t(38,327)=(38,328)=*(38,325)LPMCI_OPEN_PARMSA:t(38,329)=(38,328)tagMCI_OPEN_PARMSW:T(38,330)=s20dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,25),64,32;lpstrElementName:(6,25),96,32;lpstrAlias:(6,25),128,32;;MCI_OPEN_PARMSW:t(38,331)=(38,330)PMCI_OPEN_PARMSW:t(38,332)=(38,333)=*(38,330)LPMCI_OPEN_PARMSW:t(38,334)=(38,333)tagMCI_PLAY_PARMS:T(38,335)=s12dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;;MCI_PLAY_PARMS:t(38,336)=(38,335)PMCI_PLAY_PARMS:t(38,337)=(38,338)=*(38,335)LPMCI_PLAY_PARMS:t(38,339)=(38,338)tagMCI_SEEK_PARMS:T(38,340)=s8dwCallback:(5,1),0,32;dwTo:(5,1),32,32;;MCI_SEEK_PARMS:t(38,341)=(38,340)PMCI_SEEK_PARMS:t(38,342)=(38,343)=*(38,340)LPMCI_SEEK_PARMS:t(38,344)=(38,343)tagMCI_STATUS_PARMS:T(38,345)=s16dwCallback:(5,1),0,32;dwReturn:(5,1),32,32;dwItem:(5,1),64,32;dwTrack:(5,1),96,32;;MCI_STATUS_PARMS:t(38,346)=(38,345)PMCI_STATUS_PARMS:t(38,347)=(38,348)=*(38,345)LPMCI_STATUS_PARMS:t(38,349)=(38,348)tagMCI_INFO_PARMSA:T(38,350)=s12dwCallback:(5,1),0,32;lpstrReturn:(6,32),32,32;dwRetSize:(5,1),64,32;;MCI_INFO_PARMSA:t(38,351)=(38,350)LPMCI_INFO_PARMSA:t(38,352)=(38,353)=*(38,350)tagMCI_INFO_PARMSW:T(38,354)=s12dwCallback:(5,1),0,32;lpstrReturn:(6,20),32,32;dwRetSize:(5,1),64,32;;MCI_INFO_PARMSW:t(38,355)=(38,354)LPMCI_INFO_PARMSW:t(38,356)=(38,357)=*(38,354)tagMCI_GETDEVCAPS_PARMS:T(38,358)=s12dwCallback:(5,1),0,32;dwReturn:(5,1),32,32;dwItem:(5,1),64,32;;MCI_GETDEVCAPS_PARMS:t(38,359)=(38,358)PMCI_GETDEVCAPS_PARMS:t(38,360)=(38,361)=*(38,358)LPMCI_GETDEVCAPS_PARMS:t(38,362)=(38,361)tagMCI_SYSINFO_PARMSA:T(38,363)=s20dwCallback:(5,1),0,32;lpstrReturn:(6,32),32,32;dwRetSize:(5,1),64,32;dwNumber:(5,1),96,32;wDeviceType:(5,34),128,32;;MCI_SYSINFO_PARMSA:t(38,364)=(38,363)PMCI_SYSINFO_PARMSA:t(38,365)=(38,366)=*(38,363)LPMCI_SYSINFO_PARMSA:t(38,367)=(38,366)tagMCI_SYSINFO_PARMSW:T(38,368)=s20dwCallback:(5,1),0,32;lpstrReturn:(6,20),32,32;dwRetSize:(5,1),64,32;dwNumber:(5,1),96,32;wDeviceType:(5,34),128,32;;MCI_SYSINFO_PARMSW:t(38,369)=(38,368)PMCI_SYSINFO_PARMSW:t(38,370)=(38,371)=*(38,368)LPMCI_SYSINFO_PARMSW:t(38,372)=(38,371)tagMCI_SET_PARMS:T(38,373)=s12dwCallback:(5,1),0,32;dwTimeFormat:(5,1),32,32;dwAudio:(5,1),64,32;;MCI_SET_PARMS:t(38,374)=(38,373)PMCI_SET_PARMS:t(38,375)=(38,376)=*(38,373)LPMCI_SET_PARMS:t(38,377)=(38,376)tagMCI_BREAK_PARMS:T(38,378)=s12dwCallback:(5,1),0,32;nVirtKey:(0,1),32,32;hwndBreak:(5,121),64,32;;MCI_BREAK_PARMS:t(38,379)=(38,378)PMCI_BREAK_PARMS:t(38,380)=(38,381)=*(38,378)LPMCI_BREAK_PARMS:t(38,382)=(38,381)tagMCI_SAVE_PARMSA:T(38,383)=s8dwCallback:(5,1),0,32;lpfilename:(6,37),32,32;;MCI_SAVE_PARMSA:t(38,384)=(38,383)PMCI_SAVE_PARMSA:t(38,385)=(38,386)=*(38,383)LPMCI_SAVE_PARMSA:t(38,387)=(38,386)tagMCI_SAVE_PARMSW:T(38,388)=s8dwCallback:(5,1),0,32;lpfilename:(6,25),32,32;;MCI_SAVE_PARMSW:t(38,389)=(38,388)PMCI_SAVE_PARMSW:t(38,390)=(38,391)=*(38,388)LPMCI_SAVE_PARMSW:t(38,392)=(38,391)tagMCI_LOAD_PARMSA:T(38,393)=s8dwCallback:(5,1),0,32;lpfilename:(6,37),32,32;;MCI_LOAD_PARMSA:t(38,394)=(38,393)PMCI_LOAD_PARMSA:t(38,395)=(38,396)=*(38,393)LPMCI_LOAD_PARMSA:t(38,397)=(38,396)tagMCI_LOAD_PARMSW:T(38,398)=s8dwCallback:(5,1),0,32;lpfilename:(6,25),32,32;;MCI_LOAD_PARMSW:t(38,399)=(38,398)PMCI_LOAD_PARMSW:t(38,400)=(38,401)=*(38,398)LPMCI_LOAD_PARMSW:t(38,402)=(38,401)tagMCI_RECORD_PARMS:T(38,403)=s12dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;;MCI_RECORD_PARMS:t(38,404)=(38,403)LPMCI_RECORD_PARMS:t(38,405)=(38,406)=*(38,403)tagMCI_VD_PLAY_PARMS:T(38,407)=s16dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;dwSpeed:(5,1),96,32;;MCI_VD_PLAY_PARMS:t(38,408)=(38,407)PMCI_VD_PLAY_PARMS:t(38,409)=(38,410)=*(38,407)LPMCI_VD_PLAY_PARMS:t(38,411)=(38,410)tagMCI_VD_STEP_PARMS:T(38,412)=s8dwCallback:(5,1),0,32;dwFrames:(5,1),32,32;;MCI_VD_STEP_PARMS:t(38,413)=(38,412)PMCI_VD_STEP_PARMS:t(38,414)=(38,415)=*(38,412)LPMCI_VD_STEP_PARMS:t(38,416)=(38,415)tagMCI_VD_ESCAPE_PARMSA:T(38,417)=s8dwCallback:(5,1),0,32;lpstrCommand:(6,37),32,32;;MCI_VD_ESCAPE_PARMSA:t(38,418)=(38,417)PMCI_VD_ESCAPE_PARMSA:t(38,419)=(38,420)=*(38,417)LPMCI_VD_ESCAPE_PARMSA:t(38,421)=(38,420)tagMCI_VD_ESCAPE_PARMSW:T(38,422)=s8dwCallback:(5,1),0,32;lpstrCommand:(6,25),32,32;;MCI_VD_ESCAPE_PARMSW:t(38,423)=(38,422)PMCI_VD_ESCAPE_PARMSW:t(38,424)=(38,425)=*(38,422)LPMCI_VD_ESCAPE_PARMSW:t(38,426)=(38,425)tagMCI_WAVE_OPEN_PARMSA:T(38,427)=s24dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,37),64,32;lpstrElementName:(6,37),96,32;lpstrAlias:(6,37),128,32;dwBufferSeconds:(5,1),160,32;;MCI_WAVE_OPEN_PARMSA:t(38,428)=(38,427)PMCI_WAVE_OPEN_PARMSA:t(38,429)=(38,430)=*(38,427)LPMCI_WAVE_OPEN_PARMSA:t(38,431)=(38,430)tagMCI_WAVE_OPEN_PARMSW:T(38,432)=s24dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,25),64,32;lpstrElementName:(6,25),96,32;lpstrAlias:(6,25),128,32;dwBufferSeconds:(5,1),160,32;;MCI_WAVE_OPEN_PARMSW:t(38,433)=(38,432)PMCI_WAVE_OPEN_PARMSW:t(38,434)=(38,435)=*(38,432)LPMCI_WAVE_OPEN_PARMSW:t(38,436)=(38,435)tagMCI_WAVE_DELETE_PARMS:T(38,437)=s12dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;;MCI_WAVE_DELETE_PARMS:t(38,438)=(38,437)PMCI_WAVE_DELETE_PARMS:t(38,439)=(38,440)=*(38,437)LPMCI_WAVE_DELETE_PARMS:t(38,441)=(38,440)tagMCI_WAVE_SET_PARMS:T(38,442)=s44dwCallback:(5,1),0,32;dwTimeFormat:(5,1),32,32;dwAudio:(5,1),64,32;wInput:(5,34),96,32;wOutput:(5,34),128,32;wFormatTag:(5,11),160,16;wReserved2:(5,11),176,16;nChannels:(5,11),192,16;wReserved3:(5,11),208,16;nSamplesPerSec:(5,1),224,32;nAvgBytesPerSec:(5,1),256,32;nBlockAlign:(5,11),288,16;wReserved4:(5,11),304,16;wBitsPerSample:(5,11),320,16;wReserved5:(5,11),336,16;;MCI_WAVE_SET_PARMS:t(38,443)=(38,442)PMCI_WAVE_SET_PARMS:t(38,444)=(38,445)=*(38,442)LPMCI_WAVE_SET_PARMS:t(38,446)=(38,445)tagMCI_SEQ_SET_PARMS:T(38,447)=s32dwCallback:(5,1),0,32;dwTimeFormat:(5,1),32,32;dwAudio:(5,1),64,32;dwTempo:(5,1),96,32;dwPort:(5,1),128,32;dwSlave:(5,1),160,32;dwMaster:(5,1),192,32;dwOffset:(5,1),224,32;;MCI_SEQ_SET_PARMS:t(38,448)=(38,447)PMCI_SEQ_SET_PARMS:t(38,449)=(38,450)=*(38,447)LPMCI_SEQ_SET_PARMS:t(38,451)=(38,450)tagMCI_ANIM_OPEN_PARMSA:T(38,452)=s28dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,37),64,32;lpstrElementName:(6,37),96,32;lpstrAlias:(6,37),128,32;dwStyle:(5,1),160,32;hWndParent:(5,121),192,32;;MCI_ANIM_OPEN_PARMSA:t(38,453)=(38,452)PMCI_ANIM_OPEN_PARMSA:t(38,454)=(38,455)=*(38,452)LPMCI_ANIM_OPEN_PARMSA:t(38,456)=(38,455)tagMCI_ANIM_OPEN_PARMSW:T(38,457)=s28dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,25),64,32;lpstrElementName:(6,25),96,32;lpstrAlias:(6,25),128,32;dwStyle:(5,1),160,32;hWndParent:(5,121),192,32;;MCI_ANIM_OPEN_PARMSW:t(38,458)=(38,457)PMCI_ANIM_OPEN_PARMSW:t(38,459)=(38,460)=*(38,457)LPMCI_ANIM_OPEN_PARMSW:t(38,461)=(38,460)tagMCI_ANIM_PLAY_PARMS:T(38,462)=s16dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;dwSpeed:(5,1),96,32;;MCI_ANIM_PLAY_PARMS:t(38,463)=(38,462)PMCI_ANIM_PLAY_PARMS:t(38,464)=(38,465)=*(38,462)LPMCI_ANIM_PLAY_PARMS:t(38,466)=(38,465)tagMCI_ANIM_STEP_PARMS:T(38,467)=s8dwCallback:(5,1),0,32;dwFrames:(5,1),32,32;;MCI_ANIM_STEP_PARMS:t(38,468)=(38,467)PMCI_ANIM_STEP_PARMS:t(38,469)=(38,470)=*(38,467)LPMCI_ANIM_STEP_PARMS:t(38,471)=(38,470)tagMCI_ANIM_WINDOW_PARMSA:T(38,472)=s16dwCallback:(5,1),0,32;hWnd:(5,121),32,32;nCmdShow:(5,34),64,32;lpstrText:(6,37),96,32;;MCI_ANIM_WINDOW_PARMSA:t(38,473)=(38,472)PMCI_ANIM_WINDOW_PARMSA:t(38,474)=(38,475)=*(38,472)LPMCI_ANIM_WINDOW_PARMSA:t(38,476)=(38,475)tagMCI_ANIM_WINDOW_PARMSW:T(38,477)=s16dwCallback:(5,1),0,32;hWnd:(5,121),32,32;nCmdShow:(5,34),64,32;lpstrText:(6,25),96,32;;MCI_ANIM_WINDOW_PARMSW:t(38,478)=(38,477)PMCI_ANIM_WINDOW_PARMSW:t(38,479)=(38,480)=*(38,477)LPMCI_ANIM_WINDOW_PARMSW:t(38,481)=(38,480)tagMCI_ANIM_RECT_PARMS:T(38,482)=s20dwCallback:(5,1),0,32;rc:(5,138),32,128;;MCI_ANIM_RECT_PARMS:t(38,483)=(38,482)PMCI_ANIM_RECT_PARMS:t(38,484)=(38,485)=*(38,482)LPMCI_ANIM_RECT_PARMS:t(38,486)=(38,485)tagMCI_ANIM_UPDATE_PARMS:T(38,487)=s24dwCallback:(5,1),0,32;rc:(5,138),32,128;hDC:(5,61),160,32;;MCI_ANIM_UPDATE_PARMS:t(38,488)=(38,487)PMCI_ANIM_UPDATE_PARMS:t(38,489)=(38,490)=*(38,487)LPMCI_ANIM_UPDATE_PARMS:t(38,491)=(38,490)tagMCI_OVLY_OPEN_PARMSA:T(38,492)=s28dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,37),64,32;lpstrElementName:(6,37),96,32;lpstrAlias:(6,37),128,32;dwStyle:(5,1),160,32;hWndParent:(5,121),192,32;;MCI_OVLY_OPEN_PARMSA:t(38,493)=(38,492)PMCI_OVLY_OPEN_PARMSA:t(38,494)=(38,495)=*(38,492)LPMCI_OVLY_OPEN_PARMSA:t(38,496)=(38,495)tagMCI_OVLY_OPEN_PARMSW:T(38,497)=s28dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,25),64,32;lpstrElementName:(6,25),96,32;lpstrAlias:(6,25),128,32;dwStyle:(5,1),160,32;hWndParent:(5,121),192,32;;MCI_OVLY_OPEN_PARMSW:t(38,498)=(38,497)PMCI_OVLY_OPEN_PARMSW:t(38,499)=(38,500)=*(38,497)LPMCI_OVLY_OPEN_PARMSW:t(38,501)=(38,500)tagMCI_OVLY_WINDOW_PARMSA:T(38,502)=s16dwCallback:(5,1),0,32;hWnd:(5,121),32,32;nCmdShow:(5,34),64,32;lpstrText:(6,37),96,32;;MCI_OVLY_WINDOW_PARMSA:t(38,503)=(38,502)PMCI_OVLY_WINDOW_PARMSA:t(38,504)=(38,505)=*(38,502)LPMCI_OVLY_WINDOW_PARMSA:t(38,506)=(38,505)tagMCI_OVLY_WINDOW_PARMSW:T(38,507)=s16dwCallback:(5,1),0,32;hWnd:(5,121),32,32;nCmdShow:(5,34),64,32;lpstrText:(6,25),96,32;;MCI_OVLY_WINDOW_PARMSW:t(38,508)=(38,507)PMCI_OVLY_WINDOW_PARMSW:t(38,509)=(38,510)=*(38,507)LPMCI_OVLY_WINDOW_PARMSW:t(38,511)=(38,510)tagMCI_OVLY_RECT_PARMS:T(38,512)=s20dwCallback:(5,1),0,32;rc:(5,138),32,128;;MCI_OVLY_RECT_PARMS:t(38,513)=(38,512)PMCI_OVLY_RECT_PARMS:t(38,514)=(38,515)=*(38,512)LPMCI_OVLY_RECT_PARMS:t(38,516)=(38,515)tagMCI_OVLY_SAVE_PARMSA:T(38,517)=s24dwCallback:(5,1),0,32;lpfilename:(6,37),32,32;rc:(5,138),64,128;;MCI_OVLY_SAVE_PARMSA:t(38,518)=(38,517)PMCI_OVLY_SAVE_PARMSA:t(38,519)=(38,520)=*(38,517)LPMCI_OVLY_SAVE_PARMSA:t(38,521)=(38,520)tagMCI_OVLY_SAVE_PARMSW:T(38,522)=s24dwCallback:(5,1),0,32;lpfilename:(6,25),32,32;rc:(5,138),64,128;;MCI_OVLY_SAVE_PARMSW:t(38,523)=(38,522)PMCI_OVLY_SAVE_PARMSW:t(38,524)=(38,525)=*(38,522)LPMCI_OVLY_SAVE_PARMSW:t(38,526)=(38,525)tagMCI_OVLY_LOAD_PARMSA:T(38,527)=s24dwCallback:(5,1),0,32;lpfilename:(6,37),32,32;rc:(5,138),64,128;;MCI_OVLY_LOAD_PARMSA:t(38,528)=(38,527)PMCI_OVLY_LOAD_PARMSA:t(38,529)=(38,530)=*(38,527)LPMCI_OVLY_LOAD_PARMSA:t(38,531)=(38,530)tagMCI_OVLY_LOAD_PARMSW:T(38,532)=s24dwCallback:(5,1),0,32;lpfilename:(6,25),32,32;rc:(5,138),64,128;;MCI_OVLY_LOAD_PARMSW:t(38,533)=(38,532)PMCI_OVLY_LOAD_PARMSW:t(38,534)=(38,535)=*(38,532)LPMCI_OVLY_LOAD_PARMSW:t(38,536)=(38,535)WAVEOUTCAPS:t(38,537)=(38,59)PWAVEOUTCAPS:t(38,538)=(38,539)=*(38,59)LPWAVEOUTCAPS:t(38,540)=(38,539)WAVEINCAPS:t(38,541)=(38,69)PWAVEINCAPS:t(38,542)=(38,543)=*(38,69)LPWAVEINCAPS:t(38,544)=(38,543)MIDIOUTCAPS:t(38,545)=(38,124)PMIDIOUTCAPS:t(38,546)=(38,547)=*(38,124)LPMIDIOUTCAPS:t(38,548)=(38,547)MIDIINCAPS:t(38,549)=(38,134)PMIDIINCAPS:t(38,550)=(38,551)=*(38,134)LPMIDIINCAPS:t(38,552)=(38,551)AUXCAPS:t(38,553)=(38,162)PAUXCAPS:t(38,554)=(38,555)=*(38,162)LPAUXCAPS:t(38,556)=(38,555)MIXERCAPS:t(38,557)=(38,182)PMIXERCAPS:t(38,558)=(38,559)=*(38,182)LPMIXERCAPS:t(38,560)=(38,559)MIXERLINE:t(38,561)=(38,195)PMIXERLINE:t(38,562)=(38,563)=*(38,195)LPMIXERLINE:t(38,564)=(38,563)MIXERCONTROL:t(38,565)=(38,212)PMIXERCONTROL:t(38,566)=(38,567)=*(38,212)LPMIXERCONTROL:t(38,568)=(38,567)MIXERLINECONTROLS:t(38,569)=(38,227)PMIXERLINECONTROLS:t(38,570)=(38,571)=*(38,227)LPMIXERLINECONTROLS:t(38,572)=(38,571)MIXERCONTROLDETAILS_LISTTEXT:t(38,573)=(38,244)PMIXERCONTROLDETAILS_LISTTEXT:t(38,574)=(38,575)=*(38,244)LPMIXERCONTROLDETAILS_LISTTEXT:t(38,576)=(38,575)JOYCAPS:t(38,577)=(38,278)PJOYCAPS:t(38,578)=(38,579)=*(38,278)LPJOYCAPS:t(38,580)=(38,579)MCI_OPEN_PARMS:t(38,581)=(38,326)PMCI_OPEN_PARMS:t(38,582)=(38,583)=*(38,326)LPMCI_OPEN_PARMS:t(38,584)=(38,583)MCI_INFO_PARMS:t(38,585)=(38,351)LPMCI_INFO_PARMS:t(38,586)=(38,587)=*(38,351)MCI_SYSINFO_PARMS:t(38,588)=(38,364)PMCI_SYSINFO_PARMS:t(38,589)=(38,590)=*(38,364)LPMCI_SYSINFO_PARMS:t(38,591)=(38,590)MCI_SAVE_PARMS:t(38,592)=(38,384)PMCI_SAVE_PARMS:t(38,593)=(38,594)=*(38,384)LPMCI_SAVE_PARMS:t(38,595)=(38,594)MCI_LOAD_PARMS:t(38,596)=(38,394)PMCI_LOAD_PARMS:t(38,597)=(38,598)=*(38,394)LPMCI_LOAD_PARMS:t(38,599)=(38,598)MCI_VD_ESCAPE_PARMS:t(38,600)=(38,418)PMCI_VD_ESCAPE_PARMS:t(38,601)=(38,602)=*(38,418)LPMCI_VD_ESCAPE_PARMS:t(38,603)=(38,602)MCI_WAVE_OPEN_PARMS:t(38,604)=(38,428)PMCI_WAVE_OPEN_PARMS:t(38,605)=(38,606)=*(38,428)LPMCI_WAVE_OPEN_PARMS:t(38,607)=(38,606)MCI_ANIM_OPEN_PARMS:t(38,608)=(38,453)PMCI_ANIM_OPEN_PARMS:t(38,609)=(38,610)=*(38,453)LPMCI_ANIM_OPEN_PARMS:t(38,611)=(38,610)MCI_ANIM_WINDOW_PARMS:t(38,612)=(38,473)PMCI_ANIM_WINDOW_PARMS:t(38,613)=(38,614)=*(38,473)LPMCI_ANIM_WINDOW_PARMS:t(38,615)=(38,614)MCI_OVLY_OPEN_PARMS:t(38,616)=(38,493)PMCI_OVLY_OPEN_PARMS:t(38,617)=(38,618)=*(38,493)LPMCI_OVLY_OPEN_PARMS:t(38,619)=(38,618)MCI_OVLY_WINDOW_PARMS:t(38,620)=(38,503)PMCI_OVLY_WINDOW_PARMS:t(38,621)=(38,622)=*(38,503)LPMCI_OVLY_WINDOW_PARMS:t(38,623)=(38,622)MCI_OVLY_SAVE_PARMS:t(38,624)=(38,518)PMCI_OVLY_SAVE_PARMS:t(38,625)=(38,626)=*(38,518)LPMCI_OVLY_SAVE_PARMS:t(38,627)=(38,626)/usr/include/w32api/nb30.h_ACTION_HEADER:T(39,1)=s8transport_id:(6,10),0,32;action_code:(6,7),32,16;reserved:(6,7),48,16;;ACTION_HEADER:t(39,2)=(39,1)PACTION_HEADER:t(39,3)=(39,4)=*(39,1)_ADAPTER_STATUS:T(39,5)=s60adapter_address:(39,6)=ar(0,1);0;5;(6,5),0,48;rev_major:(6,5),48,8;reserved0:(6,5),56,8;adapter_type:(6,5),64,8;rev_minor:(6,5),72,8;duration:(5,11),80,16;frmr_recv:(5,11),96,16;frmr_xmit:(5,11),112,16;iframe_recv_err:(5,11),128,16;xmit_aborts:(5,11),144,16;xmit_success:(5,1),160,32;recv_success:(5,1),192,32;iframe_xmit_err:(5,11),224,16;recv_buff_unavail:(5,11),240,16;t1_timeouts:(5,11),256,16;ti_timeouts:(5,11),272,16;reserved1:(5,1),288,32;free_ncbs:(5,11),320,16;max_cfg_ncbs:(5,11),336,16;max_ncbs:(5,11),352,16;xmit_buf_unavail:(5,11),368,16;max_dgram_size:(5,11),384,16;pending_sess:(5,11),400,16;max_cfg_sess:(5,11),416,16;max_sess:(5,11),432,16;max_sess_pkt_size:(5,11),448,16;name_count:(5,11),464,16;;ADAPTER_STATUS:t(39,7)=(39,5)PADAPTER_STATUS:t(39,8)=(39,9)=*(39,5)_FIND_NAME_BUFFER:T(39,10)=s33length:(6,5),0,8;access_control:(6,5),8,8;frame_control:(6,5),16,8;destination_addr:(39,6),24,48;source_addr:(39,6),72,48;routing_info:(39,11)=ar(0,1);0;17;(6,5),120,144;;FIND_NAME_BUFFER:t(39,12)=(39,10)PFIND_NAME_BUFFER:t(39,13)=(39,14)=*(39,10)_FIND_NAME_HEADER:T(39,15)=s4node_count:(5,11),0,16;reserved:(6,5),16,8;unique_group:(6,5),24,8;;FIND_NAME_HEADER:t(39,16)=(39,15)PFIND_NAME_HEADER:t(39,17)=(39,18)=*(39,15)_LANA_ENUM:T(39,19)=s256length:(6,5),0,8;lana:(39,20)=ar(0,1);0;254;(6,5),8,2040;;LANA_ENUM:t(39,21)=(39,19)PLANA_ENUM:t(39,22)=(39,23)=*(39,19)_NAME_BUFFER:T(39,24)=s18name:(39,25)=ar(0,1);0;15;(6,5),0,128;name_num:(6,5),128,8;name_flags:(6,5),136,8;;NAME_BUFFER:t(39,26)=(39,24)PNAME_BUFFER:t(39,27)=(39,28)=*(39,24)_NCB:T(39,29)=s64ncb_command:(6,5),0,8;ncb_retcode:(6,5),8,8;ncb_lsn:(6,5),16,8;ncb_num:(6,5),24,8;ncb_buffer:(6,6),32,32;ncb_length:(5,11),64,16;ncb_callname:(39,25),80,128;ncb_name:(39,25),208,128;ncb_rto:(6,5),336,8;ncb_sto:(6,5),344,8;ncb_post:(39,30)=*(39,31)=f(0,19),352,32;ncb_lana_num:(6,5),384,8;ncb_cmd_cplt:(6,5),392,8;ncb_reserve:(39,32)=ar(0,1);0;9;(6,5),400,80;ncb_event:(6,54),480,32;;NCB:t(39,33)=(39,29)PNCB:t(39,34)=(39,35)=*(39,29)_SESSION_BUFFER:T(39,36)=s36lsn:(6,5),0,8;state:(6,5),8,8;local_name:(39,25),16,128;remote_name:(39,25),144,128;rcvs_outstanding:(6,5),272,8;sends_outstanding:(6,5),280,8;;SESSION_BUFFER:t(39,37)=(39,36)PSESSION_BUFFER:t(39,38)=(39,39)=*(39,36)_SESSION_HEADER:T(39,40)=s4sess_name:(6,5),0,8;num_sess:(6,5),8,8;rcv_dg_outstanding:(6,5),16,8;rcv_any_outstanding:(6,5),24,8;;SESSION_HEADER:t(39,41)=(39,40)PSESSION_HEADER:t(39,42)=(39,43)=*(39,40)/usr/include/w32api/rpc.h/usr/include/w32api/windows.hI_RPC_HANDLE:t(40,1)=(4,2)RPC_STATUS:t(40,2)=(0,3)/usr/include/w32api/rpcdce.hRPC_BINDING_HANDLE:t(42,1)=(40,1)handle_t:t(42,2)=(42,1)_RPC_BINDING_VECTOR:T(42,3)=s8Count:(0,5),0,32;BindingH:(42,4)=ar(0,1);0;0;(42,1),32,32;;RPC_BINDING_VECTOR:t(42,5)=(42,3)_UUID_VECTOR:T(42,6)=s8Count:(0,5),0,32;Uuid:(42,7)=ar(0,1);0;0;(42,8)=*(22,1),32,32;;UUID_VECTOR:t(42,9)=(42,6)RPC_IF_HANDLE:t(42,10)=(4,2)_RPC_IF_ID:T(42,11)=s20Uuid:(22,1),0,128;VersMajor:(0,9),128,16;VersMinor:(0,9),144,16;;RPC_IF_ID:t(42,12)=(42,11)_RPC_POLICY:T(42,13)=s12Length:(0,4),0,32;EndpointFlags:(0,5),32,32;NICFlags:(0,5),64,32;;RPC_POLICY:t(42,14)=(42,13)PRPC_POLICY:t(42,15)=(42,16)=*(42,13)RPC_OBJECT_INQ_FN:t(42,17)=(42,18)=f(0,19)RPC_IF_CALLBACK_FN:t(42,19)=(42,20)=f(40,2)RPC_STATS_VECTOR:t(42,21)=(42,22)=s8Count:(0,4),0,32;Stats:(42,23)=ar(0,1);0;0;(0,5),32,32;;RPC_IF_ID_VECTOR:t(42,24)=(42,25)=s8Count:(0,5),0,32;IfId:(42,26)=ar(0,1);0;0;(42,27)=*(42,12),32,32;;RPC_AUTH_IDENTITY_HANDLE:t(42,28)=(4,2)RPC_AUTHZ_HANDLE:t(42,29)=(4,2)_RPC_SECURITY_QOS:T(42,30)=s16Version:(0,5),0,32;Capabilities:(0,5),32,32;IdentityTracking:(0,5),64,32;ImpersonationType:(0,5),96,32;;RPC_SECURITY_QOS:t(42,31)=(42,30)PRPC_SECURITY_QOS:t(42,32)=(42,33)=*(42,30)_SEC_WINNT_AUTH_IDENTITY_W:T(42,34)=s28User:(6,9),0,32;UserLength:(0,5),32,32;Domain:(6,9),64,32;DomainLength:(0,5),96,32;Password:(6,9),128,32;PasswordLength:(0,5),160,32;Flags:(0,5),192,32;;SEC_WINNT_AUTH_IDENTITY_W:t(42,35)=(42,34)PSEC_WINNT_AUTH_IDENTITY_W:t(42,36)=(42,37)=*(42,34)_SEC_WINNT_AUTH_IDENTITY_A:T(42,38)=s28User:(11,15),0,32;UserLength:(0,5),32,32;Domain:(11,15),64,32;DomainLength:(0,5),96,32;Password:(11,15),128,32;PasswordLength:(0,5),160,32;Flags:(0,5),192,32;;SEC_WINNT_AUTH_IDENTITY_A:t(42,39)=(42,38)PSEC_WINNT_AUTH_IDENTITY_A:t(42,40)=(42,41)=*(42,38)RPC_CLIENT_INFORMATION1:t(42,42)=(42,43)=s16UserName:(11,15),0,32;ComputerName:(11,15),32,32;Privilege:(0,9),64,16;AuthFlags:(0,5),96,32;;PRPC_CLIENT_INFORMATION1:t(42,44)=(42,45)=*(42,43)RPC_EP_INQ_HANDLE:t(42,46)=(42,47)=*(40,1)RPC_MGMT_AUTHORIZATION_FN:t(42,48)=(42,49)=*(42,50)=f(0,1)_RPC_PROTSEQ_VECTORA:T(42,51)=s8Count:(0,4),0,32;Protseq:(42,52)=ar(0,1);0;0;(11,15),32,32;;RPC_PROTSEQ_VECTORA:t(42,53)=(42,51)_RPC_PROTSEQ_VECTORW:T(42,54)=s8Count:(0,4),0,32;Protseq:(42,55)=ar(0,1);0;0;(6,9),32,32;;RPC_PROTSEQ_VECTORW:t(42,56)=(42,54)RPC_AUTH_KEY_RETRIEVAL_FN:t(42,57)=(42,58)=*(42,59)=f(0,19)/usr/include/w32api/rpcdcep.h_RPC_VERSION:T(43,1)=s4MajorVersion:(0,9),0,16;MinorVersion:(0,9),16,16;;RPC_VERSION:t(43,2)=(43,1)_RPC_SYNTAX_IDENTIFIER:T(43,3)=s20SyntaxGUID:(6,75),0,128;SyntaxVersion:(43,2),128,32;;RPC_SYNTAX_IDENTIFIER:t(43,4)=(43,3)PRPC_SYNTAX_IDENTIFIER:t(43,5)=(43,6)=*(43,3)_RPC_MESSAGE:T(43,7)=s44Handle:(6,54),0,32;DataRepresentation:(0,5),32,32;Buffer:(4,2),64,32;BufferLength:(0,4),96,32;ProcNum:(0,4),128,32;TransferSyntax:(43,5),160,32;RpcInterfaceInformation:(4,2),192,32;ReservedForRuntime:(4,2),224,32;ManagerEpv:(4,2),256,32;ImportContext:(4,2),288,32;RpcFlags:(0,5),320,32;;RPC_MESSAGE:t(43,8)=(43,7)PRPC_MESSAGE:t(43,9)=(43,10)=*(43,7)RPC_FORWARD_FUNCTION:t(43,11)=(43,12)=f(0,3)RPC_DISPATCH_FUNCTION:t(43,13)=(43,14)=*(43,15)=f(0,19)RPC_DISPATCH_TABLE:t(43,16)=(43,17)=s12DispatchTableCount:(0,4),0,32;DispatchTable:(43,18)=*(43,13),32,32;Reserved:(0,1),64,32;;PRPC_DISPATCH_TABLE:t(43,19)=(43,20)=*(43,17)_RPC_PROTSEQ_ENDPOINT:T(43,21)=s8RpcProtocolSequence:(11,15),0,32;Endpoint:(11,15),32,32;;RPC_PROTSEQ_ENDPOINT:t(43,22)=(43,21)PRPC_PROTSEQ_ENDPOINT:t(43,23)=(43,24)=*(43,21)_RPC_SERVER_INTERFACE:T(43,25)=s64Length:(0,4),0,32;InterfaceId:(43,4),32,160;TransferSyntax:(43,4),192,160;DispatchTable:(43,19),352,32;RpcProtseqEndpointCount:(0,4),384,32;RpcProtseqEndpoint:(43,23),416,32;DefaultManagerEpv:(4,2),448,32;InterpreterInfo:(5,31),480,32;;RPC_SERVER_INTERFACE:t(43,26)=(43,25)PRPC_SERVER_INTERFACE:t(43,27)=(43,28)=*(43,25)_RPC_CLIENT_INTERFACE:T(43,29)=s64Length:(0,4),0,32;InterfaceId:(43,4),32,160;TransferSyntax:(43,4),192,160;DispatchTable:(43,19),352,32;RpcProtseqEndpointCount:(0,4),384,32;RpcProtseqEndpoint:(43,23),416,32;Reserved:(0,5),448,32;InterpreterInfo:(5,31),480,32;;RPC_CLIENT_INTERFACE:t(43,30)=(43,29)PRPC_CLIENT_INTERFACE:t(43,31)=(43,32)=*(43,29)I_RPC_MUTEX:t(43,33)=(4,2)_RPC_TRANSFER_SYNTAX:T(43,34)=s20Uuid:(6,75),0,128;VersMajor:(0,9),128,16;VersMinor:(0,9),144,16;;RPC_TRANSFER_SYNTAX:t(43,35)=(43,34)RPC_BLOCKING_FUNCTION:t(43,36)=(43,37)=*(43,38)=f(0,3)PRPC_RUNDOWN:t(43,39)=(43,40)=*(43,41)=f(0,19)/usr/include/w32api/rpcnsi.hRPC_NS_HANDLE:t(44,1)=(4,2)/usr/include/w32api/rpcnterr.h/usr/include/w32api/shellapi.hFILEOP_FLAGS:t(46,1)=(5,11)PRINTEROP_FLAGS:t(46,2)=(5,11)_AppBarData:T(46,3)=s36cbSize:(5,1),0,32;hWnd:(5,121),32,32;uCallbackMessage:(5,34),64,32;uEdge:(5,34),96,32;rc:(5,138),128,128;lParam:(5,39),256,32;;APPBARDATA:t(46,4)=(46,3)PAPPBARDATA:t(46,5)=(46,6)=*(46,3)HDROP__:T(46,7)=s4i:(0,1),0,32;;HDROP:t(46,8)=(46,9)=*(46,7)_NOTIFYICONDATAA:T(46,10)=s88cbSize:(5,1),0,32;hWnd:(5,121),32,32;uID:(5,34),64,32;uFlags:(5,34),96,32;uCallbackMessage:(5,34),128,32;hIcon:(5,76),160,32;szTip:(38,193),192,512;;NOTIFYICONDATAA:t(46,11)=(46,10)PNOTIFYICONDATAA:t(46,12)=(46,13)=*(46,10)_NOTIFYICONDATAW:T(46,14)=s152cbSize:(5,1),0,32;hWnd:(5,121),32,32;uID:(5,34),64,32;uFlags:(5,34),96,32;uCallbackMessage:(5,34),128,32;hIcon:(5,76),160,32;szTip:(25,212),192,1024;;NOTIFYICONDATAW:t(46,15)=(46,14)PNOTIFYICONDATAW:t(46,16)=(46,17)=*(46,14)_SHELLEXECUTEINFOA:T(46,18)=s60cbSize:(5,1),0,32;fMask:(6,10),32,32;hwnd:(5,121),64,32;lpVerb:(6,37),96,32;lpFile:(6,37),128,32;lpParameters:(6,37),160,32;lpDirectory:(6,37),192,32;nShow:(0,1),224,32;hInstApp:(5,99),256,32;lpIDList:(5,28),288,32;lpClass:(6,37),320,32;hkeyClass:(5,79),352,32;dwHotKey:(5,1),384,32;hIcon:(6,54),416,32;hProcess:(6,54),448,32;;SHELLEXECUTEINFOA:t(46,19)=(46,18)LPSHELLEXECUTEINFOA:t(46,20)=(46,21)=*(46,18)_SHELLEXECUTEINFOW:T(46,22)=s60cbSize:(5,1),0,32;fMask:(6,10),32,32;hwnd:(5,121),64,32;lpVerb:(6,25),96,32;lpFile:(6,25),128,32;lpParameters:(6,25),160,32;lpDirectory:(6,25),192,32;nShow:(0,1),224,32;hInstApp:(5,99),256,32;lpIDList:(5,28),288,32;lpClass:(6,25),320,32;hkeyClass:(5,79),352,32;dwHotKey:(5,1),384,32;hIcon:(6,54),416,32;hProcess:(6,54),448,32;;SHELLEXECUTEINFOW:t(46,23)=(46,22)LPSHELLEXECUTEINFOW:t(46,24)=(46,25)=*(46,22)_SHFILEOPSTRUCTA:T(46,26)=s32hwnd:(5,121),0,32;wFunc:(5,34),32,32;pFrom:(6,37),64,32;pTo:(6,37),96,32;fFlags:(46,1),128,16;fAnyOperationsAborted:(5,6),160,32;hNameMappings:(5,28),192,32;lpszProgressTitle:(6,37),224,32;;SHFILEOPSTRUCTA:t(46,27)=(46,26)LPSHFILEOPSTRUCTA:t(46,28)=(46,29)=*(46,26)_SHFILEOPSTRUCTW:T(46,30)=s32hwnd:(5,121),0,32;wFunc:(5,34),32,32;pFrom:(6,25),64,32;pTo:(6,25),96,32;fFlags:(46,1),128,16;fAnyOperationsAborted:(5,6),160,32;hNameMappings:(5,28),192,32;lpszProgressTitle:(6,25),224,32;;SHFILEOPSTRUCTW:t(46,31)=(46,30)LPSHFILEOPSTRUCTW:t(46,32)=(46,33)=*(46,30)_SHFILEINFOA:T(46,34)=s352hIcon:(5,76),0,32;iIcon:(0,1),32,32;dwAttributes:(5,1),64,32;szDisplayName:(24,109),96,2080;szTypeName:(24,130),2176,640;;SHFILEINFOA:t(46,35)=(46,34)_SHFILEINFOW:T(46,36)=s692hIcon:(5,76),0,32;iIcon:(0,1),32,32;dwAttributes:(5,1),64,32;szDisplayName:(24,115),96,4160;szTypeName:(24,136),4256,1280;;SHFILEINFOW:t(46,37)=(46,36)NOTIFYICONDATA:t(46,38)=(46,11)PNOTIFYICONDATA:t(46,39)=(46,40)=*(46,11)SHELLEXECUTEINFO:t(46,41)=(46,19)LPSHELLEXECUTEINFO:t(46,42)=(46,43)=*(46,19)SHFILEOPSTRUCT:t(46,44)=(46,27)LPSHFILEOPSTRUCT:t(46,45)=(46,46)=*(46,27)SHFILEINFO:t(46,47)=(46,35)/usr/include/w32api/winperf.h_PERF_DATA_BLOCK:T(47,1)=s88Signature:(47,2)=ar(0,1);0;3;(6,14),0,64;LittleEndian:(5,1),64,32;Version:(5,1),96,32;Revision:(5,1),128,32;TotalByteLength:(5,1),160,32;HeaderLength:(5,1),192,32;NumObjectTypes:(5,1),224,32;DefaultObject:(6,3),256,32;SystemTime:(24,101),288,128;PerfTime:(6,141),448,64;PerfFreq:(6,141),512,64;PerfTime100nSec:(6,141),576,64;SystemNameLength:(5,1),640,32;SystemNameOffset:(5,1),672,32;;PERF_DATA_BLOCK:t(47,3)=(47,1)PPERF_DATA_BLOCK:t(47,4)=(47,5)=*(47,1)_PERF_OBJECT_TYPE:T(47,6)=s64TotalByteLength:(5,1),0,32;DefinitionLength:(5,1),32,32;HeaderLength:(5,1),64,32;ObjectNameTitleIndex:(5,1),96,32;ObjectNameTitle:(6,20),128,32;ObjectHelpTitleIndex:(5,1),160,32;ObjectHelpTitle:(6,20),192,32;DetailLevel:(5,1),224,32;NumCounters:(5,1),256,32;DefaultCounter:(6,3),288,32;NumInstances:(6,3),320,32;CodePage:(5,1),352,32;PerfTime:(6,141),384,64;PerfFreq:(6,141),448,64;;PERF_OBJECT_TYPE:t(47,7)=(47,6)PPERF_OBJECT_TYPE:t(47,8)=(47,9)=*(47,6)_PERF_COUNTER_DEFINITION:T(47,10)=s40ByteLength:(5,1),0,32;CounterNameTitleIndex:(5,1),32,32;CounterNameTitle:(6,20),64,32;CounterHelpTitleIndex:(5,1),96,32;CounterHelpTitle:(6,20),128,32;DefaultScale:(6,3),160,32;DetailLevel:(5,1),192,32;CounterType:(5,1),224,32;CounterSize:(5,1),256,32;CounterOffset:(5,1),288,32;;PERF_COUNTER_DEFINITION:t(47,11)=(47,10)PPERF_COUNTER_DEFINITION:t(47,12)=(47,13)=*(47,10)_PERF_INSTANCE_DEFINITION:T(47,14)=s24ByteLength:(5,1),0,32;ParentObjectTitleIndex:(5,1),32,32;ParentObjectInstance:(5,1),64,32;UniqueID:(6,3),96,32;NameOffset:(5,1),128,32;NameLength:(5,1),160,32;;PERF_INSTANCE_DEFINITION:t(47,15)=(47,14)PPERF_INSTANCE_DEFINITION:t(47,16)=(47,17)=*(47,14)_PERF_COUNTER_BLOCK:T(47,18)=s4ByteLength:(5,1),0,32;;PERF_COUNTER_BLOCK:t(47,19)=(47,18)PPERF_COUNTER_BLOCK:t(47,20)=(47,21)=*(47,18)PM_OPEN_PROC:t(47,22)=(47,23)=f(5,1)PM_COLLECT_PROC:t(47,24)=(47,25)=f(5,1)PM_CLOSE_PROC:t(47,26)=(47,27)=f(5,1)/usr/include/w32api/winspool.h_ADDJOB_INFO_1A:T(48,1)=s8Path:(6,32),0,32;JobId:(5,1),32,32;;ADDJOB_INFO_1A:t(48,2)=(48,1)PADDJOB_INFO_1A:t(48,3)=(48,4)=*(48,1)LPADDJOB_INFO_1A:t(48,5)=(48,4)_ADDJOB_INFO_1W:T(48,6)=s8Path:(6,20),0,32;JobId:(5,1),32,32;;ADDJOB_INFO_1W:t(48,7)=(48,6)PADDJOB_INFO_1W:t(48,8)=(48,9)=*(48,6)LPADDJOB_INFO_1W:t(48,10)=(48,9)_DATATYPES_INFO_1A:T(48,11)=s4pName:(6,32),0,32;;DATATYPES_INFO_1A:t(48,12)=(48,11)PDATATYPES_INFO_1A:t(48,13)=(48,14)=*(48,11)LPDATATYPES_INFO_1A:t(48,15)=(48,14)_DATATYPES_INFO_1W:T(48,16)=s4pName:(6,20),0,32;;DATATYPES_INFO_1W:t(48,17)=(48,16)PDATATYPES_INFO_1W:t(48,18)=(48,19)=*(48,16)LPDATATYPES_INFO_1W:t(48,20)=(48,19)_JOB_INFO_1A:T(48,21)=s64JobId:(5,1),0,32;pPrinterName:(6,32),32,32;pMachineName:(6,32),64,32;pUserName:(6,32),96,32;pDocument:(6,32),128,32;pDatatype:(6,32),160,32;pStatus:(6,32),192,32;Status:(5,1),224,32;Priority:(5,1),256,32;Position:(5,1),288,32;TotalPages:(5,1),320,32;PagesPrinted:(5,1),352,32;Submitted:(24,101),384,128;;JOB_INFO_1A:t(48,22)=(48,21)PJOB_INFO_1A:t(48,23)=(48,24)=*(48,21)LPJOB_INFO_1A:t(48,25)=(48,24)_JOB_INFO_1W:T(48,26)=s64JobId:(5,1),0,32;pPrinterName:(6,20),32,32;pMachineName:(6,20),64,32;pUserName:(6,20),96,32;pDocument:(6,20),128,32;pDatatype:(6,20),160,32;pStatus:(6,20),192,32;Status:(5,1),224,32;Priority:(5,1),256,32;Position:(5,1),288,32;TotalPages:(5,1),320,32;PagesPrinted:(5,1),352,32;Submitted:(24,101),384,128;;JOB_INFO_1W:t(48,27)=(48,26)PJOB_INFO_1W:t(48,28)=(48,29)=*(48,26)LPJOB_INFO_1W:t(48,30)=(48,29)_JOB_INFO_2A:T(48,31)=s104JobId:(5,1),0,32;pPrinterName:(6,32),32,32;pMachineName:(6,32),64,32;pUserName:(6,32),96,32;pDocument:(6,32),128,32;pNotifyName:(6,32),160,32;pDatatype:(6,32),192,32;pPrintProcessor:(6,32),224,32;pParameters:(6,32),256,32;pDriverName:(6,32),288,32;pDevMode:(25,77),320,32;pStatus:(6,32),352,32;pSecurityDescriptor:(6,237),384,32;Status:(5,1),416,32;Priority:(5,1),448,32;Position:(5,1),480,32;StartTime:(5,1),512,32;UntilTime:(5,1),544,32;TotalPages:(5,1),576,32;Size:(5,1),608,32;Submitted:(24,101),640,128;Time:(5,1),768,32;PagesPrinted:(5,1),800,32;;JOB_INFO_2A:t(48,32)=(48,31)PJOB_INFO_2A:t(48,33)=(48,34)=*(48,31)LPJOB_INFO_2A:t(48,35)=(48,34)_JOB_INFO_2W:T(48,36)=s104JobId:(5,1),0,32;pPrinterName:(6,20),32,32;pMachineName:(6,20),64,32;pUserName:(6,20),96,32;pDocument:(6,20),128,32;pNotifyName:(6,20),160,32;pDatatype:(6,20),192,32;pPrintProcessor:(6,20),224,32;pParameters:(6,20),256,32;pDriverName:(6,20),288,32;pDevMode:(25,82),320,32;pStatus:(6,20),352,32;pSecurityDescriptor:(6,237),384,32;Status:(5,1),416,32;Priority:(5,1),448,32;Position:(5,1),480,32;StartTime:(5,1),512,32;UntilTime:(5,1),544,32;TotalPages:(5,1),576,32;Size:(5,1),608,32;Submitted:(24,101),640,128;Time:(5,1),768,32;PagesPrinted:(5,1),800,32;;JOB_INFO_2W:t(48,37)=(48,36)PJOB_INFO_2W:t(48,38)=(48,39)=*(48,36)LPJOB_INFO_2W:t(48,40)=(48,39)_DOC_INFO_1A:T(48,41)=s12pDocName:(6,32),0,32;pOutputFile:(6,32),32,32;pDatatype:(6,32),64,32;;DOC_INFO_1A:t(48,42)=(48,41)PDOC_INFO_1A:t(48,43)=(48,44)=*(48,41)LPDOC_INFO_1A:t(48,45)=(48,44)_DOC_INFO_1W:T(48,46)=s12pDocName:(6,20),0,32;pOutputFile:(6,20),32,32;pDatatype:(6,20),64,32;;DOC_INFO_1W:t(48,47)=(48,46)PDOC_INFO_1W:t(48,48)=(48,49)=*(48,46)LPDOC_INFO_1W:t(48,50)=(48,49)_DOC_INFO_2A:T(48,51)=s20pDocName:(6,32),0,32;pOutputFile:(6,32),32,32;pDatatype:(6,32),64,32;dwMode:(5,1),96,32;JobId:(5,1),128,32;;DOC_INFO_2A:t(48,52)=(48,51)PDOC_INFO_2A:t(48,53)=(48,54)=*(48,51)LPDOC_INFO_2A:t(48,55)=(48,54)_DOC_INFO_2W:T(48,56)=s20pDocName:(6,20),0,32;pOutputFile:(6,20),32,32;pDatatype:(6,20),64,32;dwMode:(5,1),96,32;JobId:(5,1),128,32;;DOC_INFO_2W:t(48,57)=(48,56)PDOC_INFO_2W:t(48,58)=(48,59)=*(48,56)LPDOC_INFO_2W:t(48,60)=(48,59)_DRIVER_INFO_1A:T(48,61)=s4pName:(6,32),0,32;;DRIVER_INFO_1A:t(48,62)=(48,61)PDRIVER_INFO_1A:t(48,63)=(48,64)=*(48,61)LPDRIVER_INFO_1A:t(48,65)=(48,64)_DRIVER_INFO_1W:T(48,66)=s4pName:(6,20),0,32;;DRIVER_INFO_1W:t(48,67)=(48,66)PDRIVER_INFO_1W:t(48,68)=(48,69)=*(48,66)LPDRIVER_INFO_1W:t(48,70)=(48,69)_DRIVER_INFO_2A:T(48,71)=s24cVersion:(5,1),0,32;pName:(6,32),32,32;pEnvironment:(6,32),64,32;pDriverPath:(6,32),96,32;pDataFile:(6,32),128,32;pConfigFile:(6,32),160,32;;DRIVER_INFO_2A:t(48,72)=(48,71)PDRIVER_INFO_2A:t(48,73)=(48,74)=*(48,71)LPDRIVER_INFO_2A:t(48,75)=(48,74)_DRIVER_INFO_2W:T(48,76)=s24cVersion:(5,1),0,32;pName:(6,20),32,32;pEnvironment:(6,20),64,32;pDriverPath:(6,20),96,32;pDataFile:(6,20),128,32;pConfigFile:(6,20),160,32;;DRIVER_INFO_2W:t(48,77)=(48,76)PDRIVER_INFO_2W:t(48,78)=(48,79)=*(48,76)LPDRIVER_INFO_2W:t(48,80)=(48,79)_DRIVER_INFO_3A:T(48,81)=s40cVersion:(5,1),0,32;pName:(6,32),32,32;pEnvironment:(6,32),64,32;pDriverPath:(6,32),96,32;pDataFile:(6,32),128,32;pConfigFile:(6,32),160,32;pHelpFile:(6,32),192,32;pDependentFiles:(6,32),224,32;pMonitorName:(6,32),256,32;pDefaultDataType:(6,32),288,32;;DRIVER_INFO_3A:t(48,82)=(48,81)PDRIVER_INFO_3A:t(48,83)=(48,84)=*(48,81)LPDRIVER_INFO_3A:t(48,85)=(48,84)_DRIVER_INFO_3W:T(48,86)=s40cVersion:(5,1),0,32;pName:(6,20),32,32;pEnvironment:(6,20),64,32;pDriverPath:(6,20),96,32;pDataFile:(6,20),128,32;pConfigFile:(6,20),160,32;pHelpFile:(6,20),192,32;pDependentFiles:(6,20),224,32;pMonitorName:(6,20),256,32;pDefaultDataType:(6,20),288,32;;DRIVER_INFO_3W:t(48,87)=(48,86)PDRIVER_INFO_3W:t(48,88)=(48,89)=*(48,86)LPDRIVER_INFO_3W:t(48,90)=(48,89)_MONITOR_INFO_1A:T(48,91)=s4pName:(6,32),0,32;;MONITOR_INFO_1A:t(48,92)=(48,91)PMONITOR_INFO_1A:t(48,93)=(48,94)=*(48,91)LPMONITOR_INFO_1A:t(48,95)=(48,94)_MONITOR_INFO_1W:T(48,96)=s4pName:(6,20),0,32;;MONITOR_INFO_1W:t(48,97)=(48,96)PMONITOR_INFO_1W:t(48,98)=(48,99)=*(48,96)LPMONITOR_INFO_1W:t(48,100)=(48,99)_PORT_INFO_1A:T(48,101)=s4pName:(6,32),0,32;;PORT_INFO_1A:t(48,102)=(48,101)PPORT_INFO_1A:t(48,103)=(48,104)=*(48,101)LPPORT_INFO_1A:t(48,105)=(48,104)_PORT_INFO_1W:T(48,106)=s4pName:(6,20),0,32;;PORT_INFO_1W:t(48,107)=(48,106)PPORT_INFO_1W:t(48,108)=(48,109)=*(48,106)LPPORT_INFO_1W:t(48,110)=(48,109)_MONITOR_INFO_2A:T(48,111)=s12pName:(6,32),0,32;pEnvironment:(6,32),32,32;pDLLName:(6,32),64,32;;MONITOR_INFO_2A:t(48,112)=(48,111)PMONITOR_INFO_2A:t(48,113)=(48,114)=*(48,111)LPMONITOR_INFO_2A:t(48,115)=(48,114)_MONITOR_INFO_2W:T(48,116)=s12pName:(6,20),0,32;pEnvironment:(6,20),32,32;pDLLName:(6,20),64,32;;MONITOR_INFO_2W:t(48,117)=(48,116)PMONITOR_INFO_2W:t(48,118)=(48,119)=*(48,116)LPMONITOR_INFO_2W:t(48,120)=(48,119)_PORT_INFO_2A:T(48,121)=s20pPortName:(6,32),0,32;pMonitorName:(6,32),32,32;pDescription:(6,32),64,32;fPortType:(5,1),96,32;Reserved:(5,1),128,32;;PORT_INFO_2A:t(48,122)=(48,121)PPORT_INFO_2A:t(48,123)=(48,124)=*(48,121)LPPORT_INFO_2A:t(48,125)=(48,124)_PORT_INFO_2W:T(48,126)=s20pPortName:(6,20),0,32;pMonitorName:(6,20),32,32;pDescription:(6,20),64,32;fPortType:(5,1),96,32;Reserved:(5,1),128,32;;PORT_INFO_2W:t(48,127)=(48,126)PPORT_INFO_2W:t(48,128)=(48,129)=*(48,126)LPPORT_INFO_2W:t(48,130)=(48,129)_PORT_INFO_3A:T(48,131)=s12dwStatus:(5,1),0,32;pszStatus:(6,32),32,32;dwSeverity:(5,1),64,32;;PORT_INFO_3A:t(48,132)=(48,131)PPORT_INFO_3A:t(48,133)=(48,134)=*(48,131)LPPORT_INFO_3A:t(48,135)=(48,134)_PORT_INFO_3W:T(48,136)=s12dwStatus:(5,1),0,32;pszStatus:(6,20),32,32;dwSeverity:(5,1),64,32;;PORT_INFO_3W:t(48,137)=(48,136)PPORT_INFO_3W:t(48,138)=(48,139)=*(48,136)LPPORT_INFO_3W:t(48,140)=(48,139)_PRINTER_INFO_1A:T(48,141)=s16Flags:(5,1),0,32;pDescription:(6,32),32,32;pName:(6,32),64,32;pComment:(6,32),96,32;;PRINTER_INFO_1A:t(48,142)=(48,141)PPRINTER_INFO_1A:t(48,143)=(48,144)=*(48,141)LPPRINTER_INFO_1A:t(48,145)=(48,144)_PRINTER_INFO_1W:T(48,146)=s16Flags:(5,1),0,32;pDescription:(6,20),32,32;pName:(6,20),64,32;pComment:(6,20),96,32;;PRINTER_INFO_1W:t(48,147)=(48,146)PPRINTER_INFO_1W:t(48,148)=(48,149)=*(48,146)LPPRINTER_INFO_1W:t(48,150)=(48,149)_PRINTER_INFO_2A:T(48,151)=s84pServerName:(6,32),0,32;pPrinterName:(6,32),32,32;pShareName:(6,32),64,32;pPortName:(6,32),96,32;pDriverName:(6,32),128,32;pComment:(6,32),160,32;pLocation:(6,32),192,32;pDevMode:(25,77),224,32;pSepFile:(6,32),256,32;pPrintProcessor:(6,32),288,32;pDatatype:(6,32),320,32;pParameters:(6,32),352,32;pSecurityDescriptor:(6,237),384,32;Attributes:(5,1),416,32;Priority:(5,1),448,32;DefaultPriority:(5,1),480,32;StartTime:(5,1),512,32;UntilTime:(5,1),544,32;Status:(5,1),576,32;cJobs:(5,1),608,32;AveragePPM:(5,1),640,32;;PRINTER_INFO_2A:t(48,152)=(48,151)PPRINTER_INFO_2A:t(48,153)=(48,154)=*(48,151)LPPRINTER_INFO_2A:t(48,155)=(48,154)_PRINTER_INFO_2W:T(48,156)=s84pServerName:(6,20),0,32;pPrinterName:(6,20),32,32;pShareName:(6,20),64,32;pPortName:(6,20),96,32;pDriverName:(6,20),128,32;pComment:(6,20),160,32;pLocation:(6,20),192,32;pDevMode:(25,82),224,32;pSepFile:(6,20),256,32;pPrintProcessor:(6,20),288,32;pDatatype:(6,20),320,32;pParameters:(6,20),352,32;pSecurityDescriptor:(6,237),384,32;Attributes:(5,1),416,32;Priority:(5,1),448,32;DefaultPriority:(5,1),480,32;StartTime:(5,1),512,32;UntilTime:(5,1),544,32;Status:(5,1),576,32;cJobs:(5,1),608,32;AveragePPM:(5,1),640,32;;PRINTER_INFO_2W:t(48,157)=(48,156)PPRINTER_INFO_2W:t(48,158)=(48,159)=*(48,156)LPPRINTER_INFO_2W:t(48,160)=(48,159)_PRINTER_INFO_3:T(48,161)=s4pSecurityDescriptor:(6,237),0,32;;PRINTER_INFO_3:t(48,162)=(48,161)PPRINTER_INFO_3:t(48,163)=(48,164)=*(48,161)LPPRINTER_INFO_3:t(48,165)=(48,164)_PRINTER_INFO_4A:T(48,166)=s12pPrinterName:(6,32),0,32;pServerName:(6,32),32,32;Attributes:(5,1),64,32;;PRINTER_INFO_4A:t(48,167)=(48,166)PPRINTER_INFO_4A:t(48,168)=(48,169)=*(48,166)LPPRINTER_INFO_4A:t(48,170)=(48,169)_PRINTER_INFO_4W:T(48,171)=s12pPrinterName:(6,20),0,32;pServerName:(6,20),32,32;Attributes:(5,1),64,32;;PRINTER_INFO_4W:t(48,172)=(48,171)PPRINTER_INFO_4W:t(48,173)=(48,174)=*(48,171)LPPRINTER_INFO_4W:t(48,175)=(48,174)_PRINTER_INFO_5A:T(48,176)=s20pPrinterName:(6,32),0,32;pPortName:(6,32),32,32;Attributes:(5,1),64,32;DeviceNotSelectedTimeout:(5,1),96,32;TransmissionRetryTimeout:(5,1),128,32;;PRINTER_INFO_5A:t(48,177)=(48,176)PPRINTER_INFO_5A:t(48,178)=(48,179)=*(48,176)LPPRINTER_INFO_5A:t(48,180)=(48,179)_PRINTER_INFO_5W:T(48,181)=s20pPrinterName:(6,20),0,32;pPortName:(6,20),32,32;Attributes:(5,1),64,32;DeviceNotSelectedTimeout:(5,1),96,32;TransmissionRetryTimeout:(5,1),128,32;;PRINTER_INFO_5W:t(48,182)=(48,181)PPRINTER_INFO_5W:t(48,183)=(48,184)=*(48,181)LPPRINTER_INFO_5W:t(48,185)=(48,184)_PRINTPROCESSOR_INFO_1A:T(48,186)=s4pName:(6,32),0,32;;PRINTPROCESSOR_INFO_1A:t(48,187)=(48,186)PPRINTPROCESSOR_INFO_1A:t(48,188)=(48,189)=*(48,186)LPPRINTPROCESSOR_INFO_1A:t(48,190)=(48,189)_PRINTPROCESSOR_INFO_1W:T(48,191)=s4pName:(6,20),0,32;;PRINTPROCESSOR_INFO_1W:t(48,192)=(48,191)PPRINTPROCESSOR_INFO_1W:t(48,193)=(48,194)=*(48,191)LPPRINTPROCESSOR_INFO_1W:t(48,195)=(48,194)_PRINTER_NOTIFY_INFO_DATA:T(48,196)=s20Type:(5,11),0,16;Field:(5,11),16,16;Reserved:(5,1),32,32;Id:(5,1),64,32;NotifyData:(48,197)=u8adwData:(6,324),0,64;Data:(48,198)=s8cbBuf:(5,1),0,32;pBuf:(5,28),32,32;;,0,64;;,96,64;;PRINTER_NOTIFY_INFO_DATA:t(48,199)=(48,196)PPRINTER_NOTIFY_INFO_DATA:t(48,200)=(48,201)=*(48,196)LPPRINTER_NOTIFY_INFO_DATA:t(48,202)=(48,201)_PRINTER_NOTIFY_INFO:T(48,203)=s32Version:(5,1),0,32;Flags:(5,1),32,32;Count:(5,1),64,32;aData:(48,204)=ar(0,1);0;0;(48,199),96,160;;PRINTER_NOTIFY_INFO:t(48,205)=(48,203)PPRINTER_NOTIFY_INFO:t(48,206)=(48,207)=*(48,203)LPPRINTER_NOTIFY_INFO:t(48,208)=(48,207)_FORM_INFO_1A:T(48,209)=s32Flags:(5,1),0,32;pName:(6,32),32,32;Size:(5,161),64,64;ImageableArea:(5,145),128,128;;FORM_INFO_1A:t(48,210)=(48,209)PFORM_INFO_1A:t(48,211)=(48,212)=*(48,209)LPFORM_INFO_1A:t(48,213)=(48,212)_FORM_INFO_1W:T(48,214)=s32Flags:(5,1),0,32;pName:(6,20),32,32;Size:(5,161),64,64;ImageableArea:(5,145),128,128;;FORM_INFO_1W:t(48,215)=(48,214)PFORM_INFO_1W:t(48,216)=(48,217)=*(48,214)LPFORM_INFO_1W:t(48,218)=(48,217)_PRINTER_DEFAULTSA:T(48,219)=s12pDatatype:(6,32),0,32;pDevMode:(25,691),32,32;DesiredAccess:(6,72),64,32;;PRINTER_DEFAULTSA:t(48,220)=(48,219)PPRINTER_DEFAULTSA:t(48,221)=(48,222)=*(48,219)LPPRINTER_DEFAULTSA:t(48,223)=(48,222)_PRINTER_DEFAULTSW:T(48,224)=s12pDatatype:(6,20),0,32;pDevMode:(25,691),32,32;DesiredAccess:(6,72),64,32;;PRINTER_DEFAULTSW:t(48,225)=(48,224)PPRINTER_DEFAULTSW:t(48,226)=(48,227)=*(48,224)LPPRINTER_DEFAULTSW:t(48,228)=(48,227)JOB_INFO_1:t(48,229)=(48,22)PJOB_INFO_1:t(48,230)=(48,231)=*(48,22)LPJOB_INFO_1:t(48,232)=(48,231)JOB_INFO_2:t(48,233)=(48,32)PJOB_INFO_2:t(48,234)=(48,235)=*(48,32)LPJOB_INFO_2:t(48,236)=(48,235)ADDJOB_INFO_1:t(48,237)=(48,2)PADDJOB_INFO_1:t(48,238)=(48,239)=*(48,2)LPADDJOB_INFO_1:t(48,240)=(48,239)DATATYPES_INFO_1:t(48,241)=(48,12)PDATATYPES_INFO_1:t(48,242)=(48,243)=*(48,12)LPDATATYPES_INFO_1:t(48,244)=(48,243)MONITOR_INFO_1:t(48,245)=(48,92)PMONITOR_INFO_1:t(48,246)=(48,247)=*(48,92)LPMONITOR_INFO_1:t(48,248)=(48,247)MONITOR_INFO_2:t(48,249)=(48,112)PMONITOR_INFO_2:t(48,250)=(48,251)=*(48,112)LPMONITOR_INFO_2:t(48,252)=(48,251)DOC_INFO_1:t(48,253)=(48,42)PDOC_INFO_1:t(48,254)=(48,255)=*(48,42)LPDOC_INFO_1:t(48,256)=(48,255)DOC_INFO_2:t(48,257)=(48,52)PDOC_INFO_2:t(48,258)=(48,259)=*(48,52)LPDOC_INFO_2:t(48,260)=(48,259)PORT_INFO_1:t(48,261)=(48,102)PPORT_INFO_1:t(48,262)=(48,263)=*(48,102)LPPORT_INFO_1:t(48,264)=(48,263)PORT_INFO_2:t(48,265)=(48,122)PPORT_INFO_2:t(48,266)=(48,267)=*(48,122)LPPORT_INFO_2:t(48,268)=(48,267)PORT_INFO_3:t(48,269)=(48,132)PPORT_INFO_3:t(48,270)=(48,271)=*(48,132)LPPORT_INFO_3:t(48,272)=(48,271)DRIVER_INFO_2:t(48,273)=(48,72)PDRIVER_INFO_2:t(48,274)=(48,275)=*(48,72)LPDRIVER_INFO_2:t(48,276)=(48,275)PRINTER_INFO_1:t(48,277)=(48,142)PPRINTER_INFO_1:t(48,278)=(48,279)=*(48,142)LPPRINTER_INFO_1:t(48,280)=(48,279)PRINTER_INFO_2:t(48,281)=(48,152)PPRINTER_INFO_2:t(48,282)=(48,283)=*(48,152)LPPRINTER_INFO_2:t(48,284)=(48,283)PRINTER_INFO_4:t(48,285)=(48,167)PPRINTER_INFO_4:t(48,286)=(48,287)=*(48,167)LPPRINTER_INFO_4:t(48,288)=(48,287)PRINTER_INFO_5:t(48,289)=(48,177)PPRINTER_INFO_5:t(48,290)=(48,291)=*(48,177)LPPRINTER_INFO_5:t(48,292)=(48,291)PRINTPROCESSOR_INFO_1:t(48,293)=(48,187)PPRINTPROCESSOR_INFO_1:t(48,294)=(48,295)=*(48,187)LPPRINTPROCESSOR_INFO_1:t(48,296)=(48,295)FORM_INFO_1:t(48,297)=(48,210)PFORM_INFO_1:t(48,298)=(48,299)=*(48,210)LPFORM_INFO_1:t(48,300)=(48,299)PRINTER_DEFAULTS:t(48,301)=(48,220)PPRINTER_DEFAULTS:t(48,302)=(48,303)=*(48,220)LPPRINTER_DEFAULTS:t(48,304)=(48,303)/usr/include/gl/gl.hGLenum:t(49,1)=(0,4)GLboolean:t(49,2)=(0,11)GLbitfield:t(49,3)=(0,4)GLbyte:t(49,4)=(0,10)GLshort:t(49,5)=(0,8)GLint:t(49,6)=(0,1)GLsizei:t(49,7)=(0,1)GLubyte:t(49,8)=(0,11)GLushort:t(49,9)=(0,9)GLuint:t(49,10)=(0,4)GLfloat:t(49,11)=(0,12)GLclampf:t(49,12)=(0,12)GLdouble:t(49,13)=(0,13)GLclampd:t(49,14)=(0,13)GLvoid:t(49,15)=(0,19)_GLfuncptr:t(49,16)=(49,17)=*(49,18)=f(0,19)glwin_window:t(1,2)=(1,3)=xsglwin_window:glwin_desc:T(1,4)=s76data:(4,2),0,32;winName:(11,30),32,32;winX:(49,6),64,32;winY:(49,6),96,32;winWidth:(49,7),128,32;winHeight:(49,7),160,32;Create:(1,5)=*(1,6)=f(0,19),192,32;Destroy:(1,5),224,32;ChangeSize:(1,7)=*(1,8)=f(0,19),256,32;Idle:(1,5),288,32;Render:(1,5),320,32;KeyPress:(1,9)=*(1,10)=f(0,1),352,32;KeyDown:(1,9),384,32;KeyUp:(1,9),416,32;MouseDown:(1,11)=*(1,12)=f(0,1),448,32;MouseUp:(1,11),480,32;MouseMove:(1,13)=*(1,14)=f(0,1),512,32;MouseDrag:(1,13),544,32;MouseZ:(1,15)=*(1,16)=f(0,1),576,32;;glwin_desc:t(1,17)=(1,4)glwin_window:T(1,3)=s436data:(4,2),0,32;winX:(49,6),32,32;winY:(49,6),64,32;winWidth:(49,7),96,32;winHeight:(49,7),128,32;viewWidth:(49,11),160,32;viewHeight:(49,11),192,32;desc:(1,17),224,608;created:(0,8),832,16;idleEnabled:(0,8),848,16;hInstance:(5,99),864,32;hWnd:(5,121),896,32;hPalette:(5,103),928,32;hRC:(5,64),960,32;hDC:(5,61),992,32;keyState:(1,18)=ar(0,1);0;255;(0,11),1024,2048;nKeysDown:(0,1),3072,32;nKeysDownPrev:(0,1),3104,32;buttonState:(1,19)=ar(0,1);0;3;(0,11),3136,32;buttonDownX:(1,20)=ar(0,1);0;3;(0,1),3168,128;buttonDownY:(1,20),3296,128;nButtonsDown:(0,1),3424,32;nButtonsDownPrev:(0,1),3456,32;;/usr/include/gl/glu.h/usr/include/GL/gl.hGLUnurbs:t(50,1)=(50,2)=xsGLUnurbs:GLUquadric:t(50,3)=(50,4)=xsGLUquadric:GLUtesselator:t(50,5)=(50,6)=xsGLUtesselator:GLUnurbsObj:t(50,7)=(50,2)GLUquadricObj:t(50,8)=(50,4)GLUtesselatorObj:t(50,9)=(50,6)GLUtriangulatorObj:t(50,10)=(50,6)/usr/include/stdio.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hfpos_t:t(52,1)=(11,16)FILE:t(52,2)=(11,5)/usr/include/stdlib.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hdiv_t:t(54,1)=(54,2)=s8quot:(0,1),0,32;rem:(0,1),32,32;;ldiv_t:t(54,3)=(54,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;GetOpenGLPalette:f(5,103)hDC:p(5,61)hRetPal:(5,103)pfd:(25,568)pPal:(0,21)=*(25,158)nPixelFormat:(0,1)nColors:(0,1)i:(0,1)RedRange:(5,10)GreenRange:(5,10)BlueRange:(5,10)showOpenGLInfo:f(0,19)hDC:p(5,61)pixelFormat:p(0,1)type:(11,30)pfd_new:(25,568)generic_format:(0,1)generic_accelerated:(0,1)once:V(0,1)SetDCPixelFormat:f(0,1)hDC:p(5,61)nPixelFormat:(0,1)pfd:V(25,568)glwin_process_key:F(0,1)win:p(0,22)=*(1,2)key:p(0,1)down:p(0,1)glwin_key_down:F(0,1)win:p(0,22)key:p(0,1)glwin_nkeys_down:F(0,1)win:p(0,22)glwin_nkeys_down_prev:F(0,1)win:p(0,22)glwin_process_button:F(0,1)win:p(0,22)button:p(0,1)down:p(0,1)x:p(0,1)y:p(0,1)glwin_window_WndProc:f(5,40)hWnd:p(5,121)message:p(5,34)wParam:p(5,38)lParam:p(5,39)win:(0,22)x:(0,1)y:(0,1)pixelFormat:(0,1)w:(49,6)h:(49,6)nRet:(0,1)dz:(0,13)glwin_create:F(0,22)desc:p(0,23)=*(1,17)data:p(4,2)win:(0,22)wClassName:V(11,30)hWnd:(5,121)wc:(26,347)glwin_destroy:F(0,19)win:p(0,22)glwin_show:F(0,19)win:p(0,22)glwin_update:F(0,19)win:p(0,22)glwin_redraw:F(0,19)win:p(0,22)glwin_idle:F(0,19)win:p(0,22)enable:p(0,1)glwin_quit:F(0,19)win:p(0,22)exitcode:p(0,1)glwin_mainloop:F(0,1)msg:(26,136)WinMain:F(0,1)hInstance:p(5,99)hPrevInstance:p(5,99)lpCmdLine:p(6,32)nCmdShow:p(0,1)_argc:(0,1)_argv:(0,24)=ar(0,1);0;1;(15,13)win_created:S(0,22)glwin_hInstance:G(5,99)()P.*+-,<OM`)-N. -N".-27-@NP.[`e-nN~.-N/-N/-N0'41 2 ! ! ! 3  -" N* MH M -V N^ M 4P 5 6 4 4 7+ 8U Ob 9:6;G<q+,:+,=q-NEJ-SNr>'?'@.A>YPtL'!'aiBt!O3CDE9:rFG9HIJ/>'NK (hLx، hЗ0xPX̛!.filegglwin.c%=@U _once.9gD _pfd.13 w H 8 \ p    H  . = I W$ e q  D .textb.dataL.bss.stab.stabstr %5J]o_GetDC@4!4HWi} _memset _abort _fprintf _free _malloc  gcc2_compiled.___gnu_compiled_c___rcs_id_glwin_glwin_c___rcs_id_glwin_glwin_h_GetOpenGLPalette_showOpenGLInfo_SetDCPixelFormat_glwin_process_key_glwin_key_down_glwin_nkeys_down_glwin_nkeys_down_prev_glwin_process_button_glwin_window_WndProc@16_win_created_wClassName.35_glwin_create_glwin_destroy_glwin_show_glwin_update_glwin_redraw_glwin_quit_glwin_mainloop_WinMain@16_glwin_idle_glwin_hInstance_GetPixelFormat@4_DescribePixelFormat@16_CreatePalette@4_SelectPalette@12_RealizePalette@4__impure_ptr_glGetString@4_gluGetString@4_ChoosePixelFormat@8_SetPixelFormat@12_GetWindowLongA@8_SetWindowLongA@12_wglMakeCurrent@8_wglCreateContext@4_wglDeleteContext@4_DeleteObject@4_PostQuitMessage@4_InvalidateRect@12_SwapBuffers@4_ValidateRect@8_UpdateColors@4_DefWindowProcA@16_UnregisterClassA@8_LoadCursorA@8_RegisterClassA@4_CreateWindowExA@48_DestroyWindow@4_ShowWindow@8_UpdateWindow@4_SetTimer@16_KillTimer@8_GetMessageA@16_TranslateMessage@4_DispatchMessageA@4_glwin_maingmv0.9/src/glwin/mak_gen/CYGWIN_98-4.10/odd/0040755000175200017560000000000007250653001020316 5ustar stephensstephenggmv0.9/src/glwin/mak_gen/CYGWIN_98-4.10/odd/glwin.o0100744000175200017560000074112007250653156021634 0ustar stephensstephengLT.text .data`@.bss.stab؜B.stabstrԳB$Id: glwin.c,v 1.4 2001/03/04 04:16:28 stephens Exp $v'$Id: glwin.h,v 1.3 2001/03/04 04:16:31 stephens Exp $o@UpVSEEP EEPj(EPEPE$u 1MɸUEPREEfEUfPMʺɈMM̺ˈ]MκʈUEvE;E|vEUэMˋ]M وLEUэM]ލfL fMExMME}f]f f]m]MmLEUэM͋]M وLEUэM]ލfL fMExMME}f]f f]m]MmLEUэMϋ]M وLEUэM]ލfL fMExMME}f]f f]m]MmLEUэDETEP EjEPEPEP EPUe[^]unknownsoftwarehardware - MCDhardware - ICDOpenGL implementation: %s glGetString(GL_VENDOR)%s = "%s" glGetString(GL_RENDERER)glGetString(GL_VERSION)glGetString(GL_EXTENSIONS)gluGetString(GLU_VERSION)gluGetString(GLU_EXTENSIONS)UXEUEPj(E PEPEă@EE%E}t}u E].v}t}t Efv}u }uEuEPhP R=h PhhP Rh PhhP Rh PhhP Rh PhhP Rh Ph hP Rh Ph'hP R]ÐUh EPEh EPEPU]USe EU}tZEE <uDEE EExLt#EU RURXLӃtlfEE <tEE E~ EExPt%EU RURXPӃt 1]]ÐUe EE ]UE]UE]USEU}EE <upEE EEU эM EU эM ExTtEU RURURURXTӃ[EE <tEE E~ EExXtEU RURURURXXӃ1]]ÐUe EE ]UE]UE]glwin_window: cannot attach HWND glwin_window: corrupted window struct WM_MOUSEWHEEL(%ld, dz = %g, x = %ld, y = %ld) WM_*BUTTON*(%ld, %ld, %ld, %ld): x = %d, y = %d & AUDSEEEЉUjEPE}u\=t3EEPjEPEUPp!hP RExpt+EPp;Ut h P R} u} uvEx|ExxEPxREP|REfxhuhEf@hEx4tEURX4ӃEx<t EUJQUJ QURX<ӃEx@tEURX@ӃE =m=wz= =w4w===7=4v==w>==w== ="e=%=w= ?=7v==rEP UB|EP|RVEEP|R UBxEPxREP|REP|RUBtEPEP|R.jEPVjEP|REPxR ExttEPtR Ex8tEURX8ӃEPj EEEE}E}EEx<tEURURURX<ӃEUP EUPEx@t/Efxjt%EURX@ӃjjEPovExDt5EURXDӃEP|R jEP)ExttOjEPtREP|REP|R EjjEPUvExttOE;EtGjEPtREP|REP|R EP|R 1ukvExHt#EURURXHӃu#7vjEPEPuvjEPEPuvEPEPjjEP EPEPjjEPt EPEPjjEPT EPEPjjEP4 dEPEPjjEP DEPEPjjEP $ExdtoE1҉E؉Um ]EPEPE$EPh` P R EURURE$URXdӃ vEx\tEURURURX\ӃEt#Ex`tEURURURX`ӃPEPEPEPEPE PEPh P R EPEPE PEP‰1]]glwin_windowU`WV=HHPHPEE EEEEhjEEEHEEP fuH1svhEhjEPEU EUxEUJ$HEUJ(HEUJ,H EUJ0HEUB,XEUB0XEPlEEPPjjUBUzPUBUzPUB Uz PUBUzPhEPRHPjE}uEP1+vEUPpEPjEPUve^_]ÍvUEPpR ]UjEPpR]ÉUEPpR ]UjjEPpR]U} t(EfxjuEU fPjjjjeEPpR(EfxjtEU fPjjeEPpREU fPj]ÉUE P ]ÍvU(jjjEPu!EP EP ȋU]fooUEEEXEEEPEP‰](%  d'd/^x!m /Tn*Th$$@ x$8MaJx"y7yTyk|}"8K_| *ASfq0rIbv < 5R 6h 7| 8 ; < @ E g U~ V Y c d h i j- kF l] mv n o p ~   + @ W o  vJ,--.?0R1f1|22334AB#B8BLBbBxBCCCCD DD0DEDZDnEEEKNNNO%O:OPObOxPYZ[\\b/cDdZlqmqrsst~)~A_t   $ <5S5k667788;;6<N<p=YYZZ[[7\M\m]]^^__``2L & & "!+E>a>>>>>*?? ? *@ Q@FAoAB5B]B3CQCyCXD'uD'D6E-_E-EE1E1FbG>G>GhHEHEH@IKcIKIIOIOJJVJVK[KYKYK0L_SL_LLdLd&MMiMiMNrNrOqOwOwO1P|YP|PPQKQQQQRSHST&TMTUVGV{[[[\\]R]x]]|a a afccce3e3ehShSiiZiZi1j^Tj^j lm2lmblm~m~m#pEpqpqqqrrr.sUss t+tWtQu~uuw>wpwww xxxxyyzzz{{{{|| #} R}%~ O~ ~  k  ׀-" Z" ( 8( mQ8 ~8 e? ? ˅I I U U Dۈ\ \ )a ‰a ^o o ‹Wx zڌ Z ~ ю 6 e0 Z  Tj֓#9[yݔ"Edޕ#GhÖ#Chח2Wxט@_!Ccǚ '<Tlś 6Vn$=`-_uĞܞ'?a{9!9C??ݠ&CKCzGoNNѢO_fĤg+chhi ۦss!@YT[g\|]^_Χ`abc=eSoר*qϪ?$T$tX.t.BB߰IӱIҲUUVGvbb״Ogyg k1kbnŶn4q]qMyry޸||7ܹNh,μ˾ <6Z<f9f(X &LS|Aq$9$i(::BBK/Kd@SbSS[[[ee;}}}0|@t!a=`.Qn2Jl4UoKnpEe-P4Pw]uHm J)Jv"=@@@GN4NXRRRYoY__@_[_x____eg~gxxF}}~~$~A8Y{xZzEc&Jyo E e    8     - + E   .Po  ? `%%,..;.Z7&7T==CCKKmSSSSIWhWWWWW&^^dd$lClmqqwwwwO{l{{{!".""""?#c##%%%y&&&]'~''(8(b((((()))J)l)))**M*q***** +D++ ,7,Y,|, -E-u---... /.////"0B0m00011112F2222363~33334\4444 %5 V5555636666H8%p8%88)9)A99-9-9p:4:4:);9I;9t;;=;=<=A<=g<<A<A=A4=AZ=A~=A==E>EL>?Y @Y8@AkAkA"BnBBnmBnBnBnBnBn Cn0CnRCnuCnCnCnCnCnDn4DnYDnDDrDrEr;Er\Er}ErErErEr Fr)FrQFrzFrFrFrFrGG|G| H|+HIIIjJJJJ(KIKvKKK L.NMNwNNPPQ)QQQR:RaRaSSSTTTUUU.VMVxVVV.WFWjWC[ i[ [ [_B_B_B`w`G`G`_aP|abY+bdudu&euQee{e{emfffffiiiillllLmpmmmfnnnn7oWooopBpppqqqq8rSrzrrs/sssst1tZtu(uXuuw x Gx qx x x y 5y jy y y y z @z qz z z z { *{ G{ e{ { { { { | (| Q| q| | | | } 7} S} t} } } } ~ 4~ S~ ~~ ~ ~~=>9?f@ABC DQEFGHI?J`KLMNO#PDQtRׂS?XVXx׃]?a^aoo0sOwwB{f{g1[DƊNi=i<k2a+W:\Ky:e(@ܓWp  * S qǘI%h%%›556>MFnFGɝkPPQޞYYY ]ebˠccc'cGcgc+kGkolxxx.Z}ݥ'Huۧ)ܨqŪʮد ղS s   )k  $ S  ] y  ķ  " " ޸" ¹- - ۺ8 8 /ջ? ? ? <D D D L нL L 'ȾT T T /U HZ ȿZ Z y_ _ _ h h h q q q $ju u + + + , 3, ], |- - . / / 6/ X0 x0 1 1 2 2 B3 `3 4 4 5 5 &6 F6 q6 4eA|#De9[} B0Nw(Dk8_fyghijk &_gGg(g6Y"P0OyQMs667 768U899::#@#V))w//~~::.??hDDOO3PZwZ_H_ddUef$jJj{nn+Qoupqrs!Pv-]$A`F+   2,m,BB X,XV]]Ab\br-rW,6\Kf 1 Y w     & @ e    p  # * 0   2On]vHe*Nj~0H|r3[y&Im7 )Qq-JqLiJ f    !@!a!-"K"s"""""##F#l####$*$R${$$$$%3%O%<&\&&&'''((#(#(#()*)*)*)**+5 +5<+5Y++;+N,@q,,D,D-W-Hx-H-a.Q}.Q.Q.~/Z/Z/Z/0[-0\V0z0]0^0k1f1f1f1y2n2n2n244%5E537Q7z779999;<0<S<*=P===>>>>?@2@[@@@8AkAABJB}BBB#CTCCCC'DfDDDE+EWEEEEF'H CH jH HJ:J:J:K|K@K@K@K MO(MOPMOoMPMQMMRMSNT0NOfOf Pf)PgRPPnPnQn7Qo`QQrQrQrRRyRy Sy.SSS"TGTTTTU\U~UUUDVhVVV$WGWvWWX/XXXXYYY Z1ZZZ![I[[[[\\\\\F]i]]] ^.^\^^^^!_F____ `h```.aSaaaabMbtbbb%cOcccd*ddeJete9fafff gIg}gg?ieiiijjj kk llCfP|?I4[( H s 'Rt4[B_ +Ux<`8U}&Pq&Ik /Q~>r+Z012345627I8`9v:;<=>@GI1bGu    ?2V4j-$GDDDD #D$6D%?D(HD+XD.xD/D4D5D6D9D;D<D?`D@DCDDDG`D9tDK|DNDODRDUDVDVScp$$[DZZ D[D\D` Dd Dj Do)Dq4Ds@DtGDuLDwXDx_DydD{pD~wDwDDDDDDD1D_DDDD\%`6aKb we&$q$DDDDD7D>D>& >$D$H DDDD D&D8DGDPDYDuD|DDDDDDDDD$$8 DDD D$$&$\>DDD$J$pgDDD$s$ DDDD#D5DDDMDgDDD D D DDDDDD$$ DDD D$$$#"D#D$D%$!$)A(D)D*D+$M$8 j4x5 67D8D9D;D<DCDD.DE4DF=DGEDHODIdDJmDKpDLDQDRDSDWDXDZD] D^D`Da'Dc9DdBDfbDgkDm}DpDrDsDtDuDv Dx#Dy9Dz9D}@DQDeDwDDDDDDDDDDDDDDDDD"D+D+D0DCDUDhDpDyDDDDDDDDDD D DD%D@DRDdDlDtD}DDDDDDDDDDDD3D8DSDXDsDxDDDDDDDD+D0D0D8DAD [D gD pDDDDDD%D&D&9;<p9+ 0$$-,$, D-D.D2D3D5D6D86D9=D:DD;KD<RD=ZD>aDAxDCDDDFDGDHDJDLDMDODPDQDR DSDT"DU.DV:DWFDYRD[ZDlDnDoDpDsDu DwDx%Dx%0.;&/HO0\3%$1h${ ~zD{D|D}$$(DDD$$HDDD$$dDDD$ $  DDD DD D2D4D>DHD\Df$j$+7 DDD$G$ DDDD D/D>D@DGDG]G$Lj$\y DDDDD&D?D??$F(0 *dglwin.c/home/stephens/ion/src/glwin/glwin.cint:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_glwin_glwin_c:S(0,20)=ar(0,1);0;53;(0,2)glwin.h__rcs_id_glwin_glwin_h:S(1,1)=ar(0,1);0;53;(0,2)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hptrdiff_t:t(2,1)=(0,1)size_t:t(2,2)=(0,4)wchar_t:t(2,3)=(0,9)wint_t:t(2,4)=(0,4)/usr/include/w32api/windows.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(4,1)=(4,2)=*(0,19)va_list:t(4,3)=(4,1)/usr/include/w32api/windef.hDWORD:t(5,1)=(0,5)WINBOOL:t(5,2)=(0,1)PWINBOOL:t(5,3)=(5,4)=*(0,1)LPWINBOOL:t(5,5)=(5,4)BOOL:t(5,6)=(5,2)PBOOL:t(5,7)=(5,8)=*(5,6)LPBOOL:t(5,9)=(5,8)BYTE:t(5,10)=(0,11)WORD:t(5,11)=(0,9)FLOAT:t(5,12)=(0,12)PFLOAT:t(5,13)=(5,14)=*(5,12)PBYTE:t(5,15)=(5,16)=*(5,10)LPBYTE:t(5,17)=(5,16)PINT:t(5,18)=(5,4)LPINT:t(5,19)=(5,4)PWORD:t(5,20)=(5,21)=*(5,11)LPWORD:t(5,22)=(5,21)LPLONG:t(5,23)=(5,24)=*(0,3)PDWORD:t(5,25)=(5,26)=*(5,1)LPDWORD:t(5,27)=(5,26)PVOID:t(5,28)=(4,2)LPVOID:t(5,29)=(4,2)PCVOID:t(5,30)=(5,31)=*(0,19)LPCVOID:t(5,32)=(5,31)INT:t(5,33)=(0,1)UINT:t(5,34)=(0,4)PUINT:t(5,35)=(5,36)=*(0,4)LPUINT:t(5,37)=(5,36)/usr/include/w32api/winnt.h/usr/include/w32api/winerror.h/usr/include/string.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(10,1)=(0,1)__uint32_t:t(10,2)=(0,4)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/sys/types.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/machine/types.hu_char:t(15,1)=(0,11)u_short:t(15,2)=(0,9)u_int:t(15,3)=(0,4)u_long:t(15,4)=(0,5)ushort:t(15,5)=(0,9)uint:t(15,6)=(0,4)clock_t:t(15,7)=(0,5)time_t:t(15,8)=(0,3)timespec:T(15,9)=s8tv_sec:(15,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(15,10)=s16it_interval:(15,9),0,64;it_value:(15,9),64,64;;daddr_t:t(15,11)=(0,3)caddr_t:t(15,12)=(15,13)=*(0,2)ino_t:t(15,14)=(0,5)vm_offset_t:t(15,15)=(0,5)vm_size_t:t(15,16)=(0,5)int8_t:t(15,17)=(0,2)u_int8_t:t(15,18)=(0,11)int16_t:t(15,19)=(0,8)u_int16_t:t(15,20)=(0,9)int32_t:t(15,21)=(0,1)u_int32_t:t(15,22)=(0,4)int64_t:t(15,23)=(0,6)u_int64_t:t(15,24)=(0,7)register_t:t(15,25)=(15,21)dev_t:t(15,26)=(0,8)off_t:t(15,27)=(0,3)uid_t:t(15,28)=(0,9)gid_t:t(15,29)=(0,9)pid_t:t(15,30)=(0,1)key_t:t(15,31)=(0,3)ssize_t:t(15,32)=(0,3)addr_t:t(15,33)=(15,13)mode_t:t(15,34)=(0,1)nlink_t:t(15,35)=(0,9)fd_mask:t(15,36)=(0,3)_types_fd_set:T(15,37)=s8fds_bits:(15,38)=ar(0,1);0;1;(15,36),0,64;;_types_fd_set:t(15,39)=(15,37)tm:T(12,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(11,1)=(10,2)_glue:T(11,2)=s12_next:(11,3)=*(11,2),0,32;_niobs:(0,1),32,32;_iobs:(11,4)=*(11,5)=xs__sFILE:,64,32;;_Bigint:T(11,6)=s24_next:(11,7)=*(11,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(11,8)=ar(0,1);0;0;(11,1),160,32;;_atexit:T(11,9)=s136_next:(11,10)=*(11,9),0,32;_ind:(0,1),32,32;_fns:(11,11)=ar(0,1);0;31;(11,12)=*(11,13)=f(0,19),64,1024;;__sbuf:T(11,14)=s8_base:(11,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(11,16)=(0,3)__sFILE:T(11,5)=s88_p:(11,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(11,14),128,64;_lbfsize:(0,1),192,32;_cookie:(4,2),224,32;_read:(11,17)=*(11,18)=f(0,1),256,32;_write:(11,19)=*(11,20)=f(0,1),288,32;_seek:(11,21)=*(11,22)=f(11,16),320,32;_close:(11,23)=*(11,24)=f(0,1),352,32;_ub:(11,14),384,64;_up:(11,15),448,32;_ur:(0,1),480,32;_ubuf:(11,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(11,26)=ar(0,1);0;0;(0,11),536,8;_lb:(11,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(11,27)=*(11,28)=xs_reent:,672,32;;_reent:T(11,28)=s752_errno:(0,1),0,32;_stdin:(11,4),32,32;_stdout:(11,4),64,32;_stderr:(11,4),96,32;_inc:(0,1),128,32;_emergency:(11,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(11,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(11,31)=*(11,32)=f(0,19),480,32;_result:(11,7),512,32;_result_k:(0,1),544,32;_p5s:(11,7),576,32;_freelist:(11,33)=*(11,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(15,13),672,32;_new:(11,34)=u240_reent:(11,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(15,13),32,32;_asctime_buf:(11,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(12,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(11,37)=s240_nextf:(11,38)=ar(0,1);0;29;(11,15),0,960;_nmalloc:(11,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(11,10),2624,32;_atexit0:(11,9),2656,1088;_sig_func:(11,40)=*(11,41)=*(11,42)=f(0,19),3744,32;__sglue:(11,2),3776,96;__sf:(11,43)=ar(0,1);0;2;(11,5),3872,2112;;/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hCHAR:t(6,1)=(0,2)SHORT:t(6,2)=(0,8)LONG:t(6,3)=(0,3)CCHAR:t(6,4)=(6,1)UCHAR:t(6,5)=(0,11)PUCHAR:t(6,6)=(11,15)USHORT:t(6,7)=(0,9)PUSHORT:t(6,8)=(6,9)=*(0,9)ULONG:t(6,10)=(0,5)PULONG:t(6,11)=(6,12)=*(0,5)PSZ:t(6,13)=(15,13)WCHAR:t(6,14)=(2,3)PWCHAR:t(6,15)=(6,16)=*(6,14)LPWCH:t(6,17)=(6,16)PWCH:t(6,18)=(6,16)NWPSTR:t(6,19)=(6,16)LPWSTR:t(6,20)=(6,16)PWSTR:t(6,21)=(6,16)LPCWCH:t(6,22)=(6,23)=*(6,14)PCWCH:t(6,24)=(6,23)LPCWSTR:t(6,25)=(6,23)PCWSTR:t(6,26)=(6,23)PCHAR:t(6,27)=(6,28)=*(6,1)LPCH:t(6,29)=(6,28)PCH:t(6,30)=(6,28)NPSTR:t(6,31)=(6,28)LPSTR:t(6,32)=(6,28)PSTR:t(6,33)=(6,28)LPCCH:t(6,34)=(6,35)=*(6,1)PCSTR:t(6,36)=(6,35)LPCSTR:t(6,37)=(6,35)TCHAR:t(6,38)=(6,1)TBYTE:t(6,39)=(6,38)PTCH:t(6,40)=(6,41)=*(6,38)PTBYTE:t(6,42)=(6,41)LPTCH:t(6,43)=(6,41)PTSTR:t(6,44)=(6,41)LPTSTR:t(6,45)=(6,41)LP:t(6,46)=(6,41)PTCHAR:t(6,47)=(6,41)LPCTSTR:t(6,48)=(6,49)=*(6,38)PSHORT:t(6,50)=(6,51)=*(6,2)PLONG:t(6,52)=(6,53)=*(6,3)HANDLE:t(6,54)=(4,2)PHANDLE:t(6,55)=(6,56)=*(6,54)LPHANDLE:t(6,57)=(6,56)LCID:t(6,58)=(5,1)PLCID:t(6,59)=(5,25)LANGID:t(6,60)=(5,11)LONGLONG:t(6,61)=(0,6)DWORDLONG:t(6,62)=(0,7)PLONGLONG:t(6,63)=(6,64)=*(6,61)PDWORDLONG:t(6,65)=(6,66)=*(6,62)ULONGLONG:t(6,67)=(6,62)PULONGLONG:t(6,68)=(6,66)USN:t(6,69)=(6,61)BOOLEAN:t(6,70)=(5,10)PBOOLEAN:t(6,71)=(5,16)/usr/include/w32api/basetsd.hLONG32:t(20,1)=(0,1)PLONG32:t(20,2)=(5,4)INT32:t(20,3)=(0,1)PINT32:t(20,4)=(5,4)ULONG32:t(20,5)=(0,4)PULONG32:t(20,6)=(5,36)DWORD32:t(20,7)=(0,4)PDWORD32:t(20,8)=(5,36)UINT32:t(20,9)=(0,4)PUINT32:t(20,10)=(5,36)INT_PTR:t(20,11)=(0,1)PINT_PTR:t(20,12)=(5,4)UINT_PTR:t(20,13)=(0,4)PUINT_PTR:t(20,14)=(5,36)LONG_PTR:t(20,15)=(0,3)PLONG_PTR:t(20,16)=(5,24)ULONG_PTR:t(20,17)=(0,5)PULONG_PTR:t(20,18)=(6,12)UHALF_PTR:t(20,19)=(0,9)PUHALF_PTR:t(20,20)=(6,9)HALF_PTR:t(20,21)=(0,8)PHALF_PTR:t(20,22)=(20,23)=*(0,8)HANDLE_PTR:t(20,24)=(0,5)SIZE_T:t(20,25)=(20,17)PSIZE_T:t(20,26)=(20,27)=*(20,17)SSIZE_T:t(20,28)=(20,15)PSSIZE_T:t(20,29)=(20,30)=*(20,15)DWORD_PTR:t(20,31)=(20,17)PDWORD_PTR:t(20,32)=(20,27)LONG64:t(20,33)=(0,6)PLONG64:t(20,34)=(20,35)=*(0,6)INT64:t(20,36)=(0,6)PINT64:t(20,37)=(20,35)ULONG64:t(20,38)=(0,7)PULONG64:t(20,39)=(20,40)=*(0,7)DWORD64:t(20,41)=(0,7)PDWORD64:t(20,42)=(20,40)UINT64:t(20,43)=(0,7)PUINT64:t(20,44)=(20,40)ACCESS_MASK:t(6,72)=(5,1)_GUID:T(6,73)=s16Data1:(0,5),0,32;Data2:(0,9),32,16;Data3:(0,9),48,16;Data4:(6,74)=ar(0,1);0;7;(0,11),64,64;;GUID:t(6,75)=(6,73)REFGUID:t(6,76)=(6,77)=*(6,73)LPGUID:t(6,78)=(6,77)_GENERIC_MAPPING:T(6,79)=s16GenericRead:(6,72),0,32;GenericWrite:(6,72),32,32;GenericExecute:(6,72),64,32;GenericAll:(6,72),96,32;;GENERIC_MAPPING:t(6,80)=(6,79)PGENERIC_MAPPING:t(6,81)=(6,82)=*(6,79)_ACE_HEADER:T(6,83)=s4AceType:(5,10),0,8;AceFlags:(5,10),8,8;AceSize:(5,11),16,16;;ACE_HEADER:t(6,84)=(6,83)_ACCESS_ALLOWED_ACE:T(6,85)=s12Header:(6,84),0,32;Mask:(6,72),32,32;SidStart:(5,1),64,32;;ACCESS_ALLOWED_ACE:t(6,86)=(6,85)_ACCESS_DENIED_ACE:T(6,87)=s12Header:(6,84),0,32;Mask:(6,72),32,32;SidStart:(5,1),64,32;;ACCESS_DENIED_ACE:t(6,88)=(6,87)_SYSTEM_AUDIT_ACE:T(6,89)=s12Header:(6,84),0,32;Mask:(6,72),32,32;SidStart:(5,1),64,32;;SYSTEM_AUDIT_ACE:t(6,90)=(6,89)PSYSTEM_AUDIT_ACE:t(6,91)=(6,92)=*(6,90)_SYSTEM_ALARM_ACE:T(6,93)=s12Header:(6,84),0,32;Mask:(6,72),32,32;SidStart:(5,1),64,32;;SYSTEM_ALARM_ACE:t(6,94)=(6,93)PSYSTEM_ALARM_ACE:t(6,95)=(6,96)=*(6,93)_ACCESS_ALLOWED_OBJECT_ACE:T(6,97)=s48Header:(6,84),0,32;Mask:(6,72),32,32;Flags:(5,1),64,32;ObjectType:(6,75),96,128;InheritedObjectType:(6,75),224,128;SidStart:(5,1),352,32;;ACCESS_ALLOWED_OBJECT_ACE:t(6,98)=(6,97)PACCESS_ALLOWED_OBJECT_ACE:t(6,99)=(6,100)=*(6,97)_ACCESS_DENIED_OBJECT_ACE:T(6,101)=s48Header:(6,84),0,32;Mask:(6,72),32,32;Flags:(5,1),64,32;ObjectType:(6,75),96,128;InheritedObjectType:(6,75),224,128;SidStart:(5,1),352,32;;ACCESS_DENIED_OBJECT_ACE:t(6,102)=(6,101)PACCESS_DENIED_OBJECT_ACE:t(6,103)=(6,104)=*(6,101)_SYSTEM_AUDIT_OBJECT_ACE:T(6,105)=s48Header:(6,84),0,32;Mask:(6,72),32,32;Flags:(5,1),64,32;ObjectType:(6,75),96,128;InheritedObjectType:(6,75),224,128;SidStart:(5,1),352,32;;SYSTEM_AUDIT_OBJECT_ACE:t(6,106)=(6,105)PSYSTEM_AUDIT_OBJECT_ACE:t(6,107)=(6,108)=*(6,105)_SYSTEM_ALARM_OBJECT_ACE:T(6,109)=s48Header:(6,84),0,32;Mask:(6,72),32,32;Flags:(5,1),64,32;ObjectType:(6,75),96,128;InheritedObjectType:(6,75),224,128;SidStart:(5,1),352,32;;SYSTEM_ALARM_OBJECT_ACE:t(6,110)=(6,109)PSYSTEM_ALARM_OBJECT_ACE:t(6,111)=(6,112)=*(6,109)_ACL:T(6,113)=s8AclRevision:(5,10),0,8;Sbz1:(5,10),8,8;AclSize:(5,11),16,16;AceCount:(5,11),32,16;Sbz2:(5,11),48,16;;ACL:t(6,114)=(6,113)PACL:t(6,115)=(6,116)=*(6,113)_ACL_REVISION_INFORMATION:T(6,117)=s4AclRevision:(5,1),0,32;;ACL_REVISION_INFORMATION:t(6,118)=(6,117)_ACL_SIZE_INFORMATION:T(6,119)=s12AceCount:(5,1),0,32;AclBytesInUse:(5,1),32,32;AclBytesFree:(5,1),64,32;;ACL_SIZE_INFORMATION:t(6,120)=(6,119)_FLOATING_SAVE_AREA:T(6,121)=s112ControlWord:(5,1),0,32;StatusWord:(5,1),32,32;TagWord:(5,1),64,32;ErrorOffset:(5,1),96,32;ErrorSelector:(5,1),128,32;DataOffset:(5,1),160,32;DataSelector:(5,1),192,32;RegisterArea:(6,122)=ar(0,1);0;79;(5,10),224,640;Cr0NpxState:(5,1),864,32;;FLOATING_SAVE_AREA:t(6,123)=(6,121)_CONTEXT:T(6,124)=s204ContextFlags:(5,1),0,32;Dr0:(5,1),32,32;Dr1:(5,1),64,32;Dr2:(5,1),96,32;Dr3:(5,1),128,32;Dr6:(5,1),160,32;Dr7:(5,1),192,32;FloatSave:(6,123),224,896;SegGs:(5,1),1120,32;SegFs:(5,1),1152,32;SegEs:(5,1),1184,32;SegDs:(5,1),1216,32;Edi:(5,1),1248,32;Esi:(5,1),1280,32;Ebx:(5,1),1312,32;Edx:(5,1),1344,32;Ecx:(5,1),1376,32;Eax:(5,1),1408,32;Ebp:(5,1),1440,32;Eip:(5,1),1472,32;SegCs:(5,1),1504,32;EFlags:(5,1),1536,32;Esp:(5,1),1568,32;SegSs:(5,1),1600,32;;CONTEXT:t(6,125)=(6,124)PCONTEXT:t(6,126)=(6,127)=*(6,125)LPCONTEXT:t(6,128)=(6,127)_EXCEPTION_RECORD:T(6,129)=s80ExceptionCode:(5,1),0,32;ExceptionFlags:(5,1),32,32;ExceptionRecord:(6,130)=*(6,129),64,32;ExceptionAddress:(5,28),96,32;NumberParameters:(5,1),128,32;ExceptionInformation:(6,131)=ar(0,1);0;14;(5,1),160,480;;EXCEPTION_RECORD:t(6,132)=(6,129)PEXCEPTION_RECORD:t(6,133)=(6,130)_EXCEPTION_POINTERS:T(6,134)=s8ExceptionRecord:(6,133),0,32;ContextRecord:(6,126),32,32;;EXCEPTION_POINTERS:t(6,135)=(6,134)PEXCEPTION_POINTERS:t(6,136)=(6,137)=*(6,134)LPEXCEPTION_POINTERS:t(6,138)=(6,137)_LARGE_INTEGER:T(6,139)=u8:(6,140)=s8LowPart:(5,1),0,32;HighPart:(6,3),32,32;;,0,64;QuadPart:(6,61),0,64;;LARGE_INTEGER:t(6,141)=(6,139)PLARGE_INTEGER:t(6,142)=(6,143)=*(6,141)_ULARGE_INTEGER:T(6,144)=u8:(6,145)=s8LowPart:(5,1),0,32;HighPart:(5,1),32,32;;,0,64;QuadPart:(6,62),0,64;;ULARGE_INTEGER:t(6,146)=(6,144)PULARGE_INTEGER:t(6,147)=(6,148)=*(6,146)LUID:t(6,149)=(6,141)PLUID:t(6,150)=(6,143)_LUID_AND_ATTRIBUTES:T(6,151)=s12Luid:(6,149),0,64;Attributes:(5,1),64,32;;LUID_AND_ATTRIBUTES:t(6,152)=(6,151)LUID_AND_ATTRIBUTES_ARRAY:t(6,153)=(6,154)=ar(0,1);0;0;(6,152)PLUID_AND_ATTRIBUTES_ARRAY:t(6,155)=(6,156)=*(6,153)_PRIVILEGE_SET:T(6,157)=s20PrivilegeCount:(5,1),0,32;Control:(5,1),32,32;Privilege:(6,154),64,96;;PRIVILEGE_SET:t(6,158)=(6,157)PPRIVILEGE_SET:t(6,159)=(6,160)=*(6,157)_SECURITY_ATTRIBUTES:T(6,161)=s12nLength:(5,1),0,32;lpSecurityDescriptor:(5,29),32,32;bInheritHandle:(5,6),64,32;;SECURITY_ATTRIBUTES:t(6,162)=(6,161)PSECURITY_ATTRIBUTES:t(6,163)=(6,164)=*(6,161)LPSECURITY_ATTRIBUTES:t(6,165)=(6,164)_SECURITY_IMPERSONATION_LEVEL:T(6,166)=eSecurityAnonymous:0,SecurityIdentification:1,SecurityImpersonation:2,SecurityDelegation:3,;SECURITY_IMPERSONATION_LEVEL:t(6,167)=(6,166)SECURITY_CONTEXT_TRACKING_MODE:t(6,168)=(6,70)PSECURITY_CONTEXT_TRACKING_MODE:t(6,169)=(6,170)=*(6,70)_SECURITY_QUALITY_OF_SERVICE:T(6,171)=s12Length:(5,1),0,32;ImpersonationLevel:(6,167),32,32;ContextTrackingMode:(6,168),64,8;EffectiveOnly:(6,70),72,8;;SECURITY_QUALITY_OF_SERVICE:t(6,172)=(6,171)PSECURITY_QUALITY_OF_SERVICE:t(6,173)=(6,174)=*(6,171)PACCESS_TOKEN:t(6,175)=(5,28)_SE_IMPERSONATION_STATE:T(6,176)=s12Token:(6,175),0,32;CopyOnOpen:(6,70),32,8;EffectiveOnly:(6,70),40,8;Level:(6,167),64,32;;SE_IMPERSONATION_STATE:t(6,177)=(6,176)PSE_IMPERSONATION_STATE:t(6,178)=(6,179)=*(6,176)_SID_IDENTIFIER_AUTHORITY:T(6,180)=s6Value:(6,181)=ar(0,1);0;5;(5,10),0,48;;SID_IDENTIFIER_AUTHORITY:t(6,182)=(6,180)PSID_IDENTIFIER_AUTHORITY:t(6,183)=(6,184)=*(6,180)LPSID_IDENTIFIER_AUTHORITY:t(6,185)=(6,184)PSID:t(6,186)=(5,28)_SID:T(6,187)=s12Revision:(5,10),0,8;SubAuthorityCount:(5,10),8,8;IdentifierAuthority:(6,182),16,48;SubAuthority:(6,188)=ar(0,1);0;0;(5,1),64,32;;SID:t(6,189)=(6,187)PISID:t(6,190)=(6,191)=*(6,187)_SID_AND_ATTRIBUTES:T(6,192)=s8Sid:(6,186),0,32;Attributes:(5,1),32,32;;SID_AND_ATTRIBUTES:t(6,193)=(6,192)SID_AND_ATTRIBUTES_ARRAY:t(6,194)=(6,195)=ar(0,1);0;0;(6,193)PSID_AND_ATTRIBUTES_ARRAY:t(6,196)=(6,197)=*(6,194)_TOKEN_SOURCE:T(6,198)=s16SourceName:(6,199)=ar(0,1);0;7;(6,1),0,64;SourceIdentifier:(6,149),64,64;;TOKEN_SOURCE:t(6,200)=(6,198)PTOKEN_SOURCE:t(6,201)=(6,202)=*(6,198)_TOKEN_CONTROL:T(6,203)=s40TokenId:(6,149),0,64;AuthenticationId:(6,149),64,64;ModifiedId:(6,149),128,64;TokenSource:(6,200),192,128;;TOKEN_CONTROL:t(6,204)=(6,203)PTOKEN_CONTROL:t(6,205)=(6,206)=*(6,203)_TOKEN_DEFAULT_DACL:T(6,207)=s4DefaultDacl:(6,115),0,32;;TOKEN_DEFAULT_DACL:t(6,208)=(6,207)_TOKEN_GROUPS:T(6,209)=s12GroupCount:(5,1),0,32;Groups:(6,195),32,64;;TOKEN_GROUPS:t(6,210)=(6,209)PTOKEN_GROUPS:t(6,211)=(6,212)=*(6,209)LPTOKEN_GROUPS:t(6,213)=(6,212)_TOKEN_OWNER:T(6,214)=s4Owner:(6,186),0,32;;TOKEN_OWNER:t(6,215)=(6,214)_TOKEN_PRIMARY_GROUP:T(6,216)=s4PrimaryGroup:(6,186),0,32;;TOKEN_PRIMARY_GROUP:t(6,217)=(6,216)_TOKEN_PRIVILEGES:T(6,218)=s16PrivilegeCount:(5,1),0,32;Privileges:(6,154),32,96;;TOKEN_PRIVILEGES:t(6,219)=(6,218)PTOKEN_PRIVILEGES:t(6,220)=(6,221)=*(6,218)LPTOKEN_PRIVILEGES:t(6,222)=(6,221)tagTOKEN_TYPE:T(6,223)=eTokenPrimary:1,TokenImpersonation:2,;TOKEN_TYPE:t(6,224)=(6,223)_TOKEN_STATISTICS:T(6,225)=s56TokenId:(6,149),0,64;AuthenticationId:(6,149),64,64;ExpirationTime:(6,141),128,64;TokenType:(6,224),192,32;ImpersonationLevel:(6,167),224,32;DynamicCharged:(5,1),256,32;DynamicAvailable:(5,1),288,32;GroupCount:(5,1),320,32;PrivilegeCount:(5,1),352,32;ModifiedId:(6,149),384,64;;TOKEN_STATISTICS:t(6,226)=(6,225)_TOKEN_USER:T(6,227)=s8User:(6,193),0,64;;TOKEN_USER:t(6,228)=(6,227)PTOKEN_USER:t(6,229)=(6,230)=*(6,227)SECURITY_INFORMATION:t(6,231)=(5,1)PSECURITY_INFORMATION:t(6,232)=(5,26)SECURITY_DESCRIPTOR_CONTROL:t(6,233)=(5,11)PSECURITY_DESCRIPTOR_CONTROL:t(6,234)=(5,21)_SECURITY_DESCRIPTOR:T(6,235)=s20Revision:(5,10),0,8;Sbz1:(5,10),8,8;Control:(6,233),16,16;Owner:(6,186),32,32;Group:(6,186),64,32;Sacl:(6,115),96,32;Dacl:(6,115),128,32;;SECURITY_DESCRIPTOR:t(6,236)=(6,235)PSECURITY_DESCRIPTOR:t(6,237)=(6,238)=*(6,235)PISECURITY_DESCRIPTOR:t(6,239)=(6,238)_TOKEN_INFORMATION_CLASS:T(6,240)=eTokenUser:1,TokenGroups:2,TokenPrivileges:3,TokenOwner:4,TokenPrimaryGroup:5,TokenDefaultDacl:6,TokenSource:7,TokenType:8,TokenImpersonationLevel:9,TokenStatistics:10,TokenRestrictedSids:11,TokenSessionId:12,;TOKEN_INFORMATION_CLASS:t(6,241)=(6,240)_SID_NAME_USE:T(6,242)=eSidTypeUser:1,SidTypeGroup:2,SidTypeDomain:3,SidTypeAlias:4,SidTypeWellKnownGroup:5,SidTypeDeletedAccount:6,SidTypeInvalid:7,SidTypeUnknown:8,;SID_NAME_USE:t(6,243)=(6,242)PSID_NAME_USE:t(6,244)=(6,245)=*(6,242)_QUOTA_LIMITS:T(6,246)=s32PagedPoolLimit:(20,25),0,32;NonPagedPoolLimit:(20,25),32,32;MinimumWorkingSetSize:(20,25),64,32;MaximumWorkingSetSize:(20,25),96,32;PagefileLimit:(20,25),128,32;TimeLimit:(6,141),192,64;;QUOTA_LIMITS:t(6,247)=(6,246)PQUOTA_LIMITS:t(6,248)=(6,249)=*(6,246)_IO_COUNTERS:T(6,250)=s48ReadOperationCount:(6,67),0,64;WriteOperationCount:(6,67),64,64;OtherOperationCount:(6,67),128,64;ReadTransferCount:(6,67),192,64;WriteTransferCount:(6,67),256,64;OtherTransferCount:(6,67),320,64;;IO_COUNTERS:t(6,251)=(6,250)PIO_COUNTERS:t(6,252)=(6,253)=*(6,250)_FILE_NOTIFY_INFORMATION:T(6,254)=s16NextEntryOffset:(5,1),0,32;Action:(5,1),32,32;FileNameLength:(5,1),64,32;FileName:(6,255)=ar(0,1);0;0;(6,14),96,16;;FILE_NOTIFY_INFORMATION:t(6,256)=(6,254)PFILE_NOTIFY_INFORMATION:t(6,257)=(6,258)=*(6,254)_TAPE_ERASE:T(6,259)=s8Type:(5,1),0,32;Immediate:(6,70),32,8;;TAPE_ERASE:t(6,260)=(6,259)PTAPE_ERASE:t(6,261)=(6,262)=*(6,259)_TAPE_GET_DRIVE_PARAMETERS:T(6,263)=s32ECC:(6,70),0,8;Compression:(6,70),8,8;DataPadding:(6,70),16,8;ReportSetmarks:(6,70),24,8;DefaultBlockSize:(5,1),32,32;MaximumBlockSize:(5,1),64,32;MinimumBlockSize:(5,1),96,32;MaximumPartitionCount:(5,1),128,32;FeaturesLow:(5,1),160,32;FeaturesHigh:(5,1),192,32;EOTWarningZoneSize:(5,1),224,32;;TAPE_GET_DRIVE_PARAMETERS:t(6,264)=(6,263)PTAPE_GET_DRIVE_PARAMETERS:t(6,265)=(6,266)=*(6,263)_TAPE_GET_MEDIA_PARAMETERS:T(6,267)=s32Capacity:(6,141),0,64;Remaining:(6,141),64,64;BlockSize:(5,1),128,32;PartitionCount:(5,1),160,32;WriteProtected:(6,70),192,8;;TAPE_GET_MEDIA_PARAMETERS:t(6,268)=(6,267)PTAPE_GET_MEDIA_PARAMETERS:t(6,269)=(6,270)=*(6,267)_TAPE_GET_POSITION:T(6,271)=s16Type:(6,10),0,32;Partition:(6,10),32,32;OffsetLow:(6,10),64,32;OffsetHigh:(6,10),96,32;;TAPE_GET_POSITION:t(6,272)=(6,271)PTAPE_GET_POSITION:t(6,273)=(6,274)=*(6,271)_TAPE_PREPARE:T(6,275)=s8Operation:(5,1),0,32;Immediate:(6,70),32,8;;TAPE_PREPARE:t(6,276)=(6,275)PTAPE_PREPARE:t(6,277)=(6,278)=*(6,275)_TAPE_SET_DRIVE_PARAMETERS:T(6,279)=s8ECC:(6,70),0,8;Compression:(6,70),8,8;DataPadding:(6,70),16,8;ReportSetmarks:(6,70),24,8;EOTWarningZoneSize:(6,10),32,32;;TAPE_SET_DRIVE_PARAMETERS:t(6,280)=(6,279)PTAPE_SET_DRIVE_PARAMETERS:t(6,281)=(6,282)=*(6,279)_TAPE_SET_MEDIA_PARAMETERS:T(6,283)=s4BlockSize:(6,10),0,32;;TAPE_SET_MEDIA_PARAMETERS:t(6,284)=(6,283)PTAPE_SET_MEDIA_PARAMETERS:t(6,285)=(6,286)=*(6,283)_TAPE_SET_POSITION:T(6,287)=s24Method:(5,1),0,32;Partition:(5,1),32,32;Offset:(6,141),64,64;Immediate:(6,70),128,8;;TAPE_SET_POSITION:t(6,288)=(6,287)PTAPE_SET_POSITION:t(6,289)=(6,290)=*(6,287)_TAPE_WRITE_MARKS:T(6,291)=s12Type:(5,1),0,32;Count:(5,1),32,32;Immediate:(6,70),64,8;;TAPE_WRITE_MARKS:t(6,292)=(6,291)PTAPE_WRITE_MARKS:t(6,293)=(6,294)=*(6,291)_TAPE_CREATE_PARTITION:T(6,295)=s12Method:(5,1),0,32;Count:(5,1),32,32;Size:(5,1),64,32;;TAPE_CREATE_PARTITION:t(6,296)=(6,295)PTAPE_CREATE_PARTITION:t(6,297)=(6,298)=*(6,295)_MEMORY_BASIC_INFORMATION:T(6,299)=s28BaseAddress:(5,28),0,32;AllocationBase:(5,28),32,32;AllocationProtect:(5,1),64,32;RegionSize:(5,1),96,32;State:(5,1),128,32;Protect:(5,1),160,32;Type:(5,1),192,32;;MEMORY_BASIC_INFORMATION:t(6,300)=(6,299)PMEMORY_BASIC_INFORMATION:t(6,301)=(6,302)=*(6,299)_MESSAGE_RESOURCE_ENTRY:T(6,303)=s6Length:(5,11),0,16;Flags:(5,11),16,16;Text:(6,304)=ar(0,1);0;0;(5,10),32,8;;MESSAGE_RESOURCE_ENTRY:t(6,305)=(6,303)PMESSAGE_RESOURCE_ENTRY:t(6,306)=(6,307)=*(6,303)_MESSAGE_RESOURCE_BLOCK:T(6,308)=s12LowId:(5,1),0,32;HighId:(5,1),32,32;OffsetToEntries:(5,1),64,32;;MESSAGE_RESOURCE_BLOCK:t(6,309)=(6,308)PMESSAGE_RESOURCE_BLOCK:t(6,310)=(6,311)=*(6,308)_MESSAGE_RESOURCE_DATA:T(6,312)=s16NumberOfBlocks:(5,1),0,32;Blocks:(6,313)=ar(0,1);0;0;(6,309),32,96;;MESSAGE_RESOURCE_DATA:t(6,314)=(6,312)PMESSAGE_RESOURCE_DATA:t(6,315)=(6,316)=*(6,312)_LIST_ENTRY:T(6,317)=s8Flink:(6,318)=*(6,317),0,32;Blink:(6,318),32,32;;LIST_ENTRY:t(6,319)=(6,317)PLIST_ENTRY:t(6,320)=(6,318)_RTL_CRITICAL_SECTION_DEBUG:T(6,321)=s32Type:(5,11),0,16;CreatorBackTraceIndex:(5,11),16,16;CriticalSection:(6,322)=*(6,323)=xs_RTL_CRITICAL_SECTION:,32,32;ProcessLocksList:(6,319),64,64;EntryCount:(5,1),128,32;ContentionCount:(5,1),160,32;Spare:(6,324)=ar(0,1);0;1;(5,1),192,64;;RTL_CRITICAL_SECTION_DEBUG:t(6,325)=(6,321)PRTL_CRITICAL_SECTION_DEBUG:t(6,326)=(6,327)=*(6,321)_RTL_CRITICAL_SECTION:T(6,323)=s24DebugInfo:(6,326),0,32;LockCount:(6,3),32,32;RecursionCount:(6,3),64,32;OwningThread:(6,54),96,32;LockSemaphore:(6,54),128,32;Reserved:(5,1),160,32;;RTL_CRITICAL_SECTION:t(6,328)=(6,323)PRTL_CRITICAL_SECTION:t(6,329)=(6,322)_EVENTLOGRECORD:T(6,330)=s56Length:(5,1),0,32;Reserved:(5,1),32,32;RecordNumber:(5,1),64,32;TimeGenerated:(5,1),96,32;TimeWritten:(5,1),128,32;EventID:(5,1),160,32;EventType:(5,11),192,16;NumStrings:(5,11),208,16;EventCategory:(5,11),224,16;ReservedFlags:(5,11),240,16;ClosingRecordNumber:(5,1),256,32;StringOffset:(5,1),288,32;UserSidLength:(5,1),320,32;UserSidOffset:(5,1),352,32;DataLength:(5,1),384,32;DataOffset:(5,1),416,32;;EVENTLOGRECORD:t(6,331)=(6,330)PEVENTLOGRECORD:t(6,332)=(6,333)=*(6,330)_IMAGE_VXD_HEADER:T(6,334)=s196e32_magic:(5,11),0,16;e32_border:(5,10),16,8;e32_worder:(5,10),24,8;e32_level:(5,1),32,32;e32_cpu:(5,11),64,16;e32_os:(5,11),80,16;e32_ver:(5,1),96,32;e32_mflags:(5,1),128,32;e32_mpages:(5,1),160,32;e32_startobj:(5,1),192,32;e32_eip:(5,1),224,32;e32_stackobj:(5,1),256,32;e32_esp:(5,1),288,32;e32_pagesize:(5,1),320,32;e32_lastpagesize:(5,1),352,32;e32_fixupsize:(5,1),384,32;e32_fixupsum:(5,1),416,32;e32_ldrsize:(5,1),448,32;e32_ldrsum:(5,1),480,32;e32_objtab:(5,1),512,32;e32_objcnt:(5,1),544,32;e32_objmap:(5,1),576,32;e32_itermap:(5,1),608,32;e32_rsrctab:(5,1),640,32;e32_rsrccnt:(5,1),672,32;e32_restab:(5,1),704,32;e32_enttab:(5,1),736,32;e32_dirtab:(5,1),768,32;e32_dircnt:(5,1),800,32;e32_fpagetab:(5,1),832,32;e32_frectab:(5,1),864,32;e32_impmod:(5,1),896,32;e32_impmodcnt:(5,1),928,32;e32_impproc:(5,1),960,32;e32_pagesum:(5,1),992,32;e32_datapage:(5,1),1024,32;e32_preload:(5,1),1056,32;e32_nrestab:(5,1),1088,32;e32_cbnrestab:(5,1),1120,32;e32_nressum:(5,1),1152,32;e32_autodata:(5,1),1184,32;e32_debuginfo:(5,1),1216,32;e32_debuglen:(5,1),1248,32;e32_instpreload:(5,1),1280,32;e32_instdemand:(5,1),1312,32;e32_heapsize:(5,1),1344,32;e32_res3:(6,335)=ar(0,1);0;11;(5,10),1376,96;e32_winresoff:(5,1),1472,32;e32_winreslen:(5,1),1504,32;e32_devid:(5,11),1536,16;e32_ddkver:(5,11),1552,16;;IMAGE_VXD_HEADER:t(6,336)=(6,334)PIMAGE_VXD_HEADER:t(6,337)=(6,338)=*(6,334)_IMAGE_FILE_HEADER:T(6,339)=s20Machine:(5,11),0,16;NumberOfSections:(5,11),16,16;TimeDateStamp:(5,1),32,32;PointerToSymbolTable:(5,1),64,32;NumberOfSymbols:(5,1),96,32;SizeOfOptionalHeader:(5,11),128,16;Characteristics:(5,11),144,16;;IMAGE_FILE_HEADER:t(6,340)=(6,339)PIMAGE_FILE_HEADER:t(6,341)=(6,342)=*(6,339)_IMAGE_DATA_DIRECTORY:T(6,343)=s8VirtualAddress:(5,1),0,32;Size:(5,1),32,32;;IMAGE_DATA_DIRECTORY:t(6,344)=(6,343)PIMAGE_DATA_DIRECTORY:t(6,345)=(6,346)=*(6,343)_IMAGE_OPTIONAL_HEADER:T(6,347)=s224Magic:(5,11),0,16;MajorLinkerVersion:(5,10),16,8;MinorLinkerVersion:(5,10),24,8;SizeOfCode:(5,1),32,32;SizeOfInitializedData:(5,1),64,32;SizeOfUninitializedData:(5,1),96,32;AddressOfEntryPoint:(5,1),128,32;BaseOfCode:(5,1),160,32;BaseOfData:(5,1),192,32;ImageBase:(5,1),224,32;SectionAlignment:(5,1),256,32;FileAlignment:(5,1),288,32;MajorOperatingSystemVersion:(5,11),320,16;MinorOperatingSystemVersion:(5,11),336,16;MajorImageVersion:(5,11),352,16;MinorImageVersion:(5,11),368,16;MajorSubsystemVersion:(5,11),384,16;MinorSubsystemVersion:(5,11),400,16;Reserved1:(5,1),416,32;SizeOfImage:(5,1),448,32;SizeOfHeaders:(5,1),480,32;CheckSum:(5,1),512,32;Subsystem:(5,11),544,16;DllCharacteristics:(5,11),560,16;SizeOfStackReserve:(5,1),576,32;SizeOfStackCommit:(5,1),608,32;SizeOfHeapReserve:(5,1),640,32;SizeOfHeapCommit:(5,1),672,32;LoaderFlags:(5,1),704,32;NumberOfRvaAndSizes:(5,1),736,32;DataDirectory:(6,348)=ar(0,1);0;15;(6,344),768,1024;;IMAGE_OPTIONAL_HEADER:t(6,349)=(6,347)PIMAGE_OPTIONAL_HEADER:t(6,350)=(6,351)=*(6,347)_IMAGE_ROM_OPTIONAL_HEADER:T(6,352)=s56Magic:(5,11),0,16;MajorLinkerVersion:(5,10),16,8;MinorLinkerVersion:(5,10),24,8;SizeOfCode:(5,1),32,32;SizeOfInitializedData:(5,1),64,32;SizeOfUninitializedData:(5,1),96,32;AddressOfEntryPoint:(5,1),128,32;BaseOfCode:(5,1),160,32;BaseOfData:(5,1),192,32;BaseOfBss:(5,1),224,32;GprMask:(5,1),256,32;CprMask:(6,353)=ar(0,1);0;3;(5,1),288,128;GpValue:(5,1),416,32;;IMAGE_ROM_OPTIONAL_HEADER:t(6,354)=(6,352)PIMAGE_ROM_OPTIONAL_HEADER:t(6,355)=(6,356)=*(6,352)_IMAGE_DOS_HEADER:T(6,357)=s64e_magic:(5,11),0,16;e_cblp:(5,11),16,16;e_cp:(5,11),32,16;e_crlc:(5,11),48,16;e_cparhdr:(5,11),64,16;e_minalloc:(5,11),80,16;e_maxalloc:(5,11),96,16;e_ss:(5,11),112,16;e_sp:(5,11),128,16;e_csum:(5,11),144,16;e_ip:(5,11),160,16;e_cs:(5,11),176,16;e_lfarlc:(5,11),192,16;e_ovno:(5,11),208,16;e_res:(6,358)=ar(0,1);0;3;(5,11),224,64;e_oemid:(5,11),288,16;e_oeminfo:(5,11),304,16;e_res2:(6,359)=ar(0,1);0;9;(5,11),320,160;e_lfanew:(6,3),480,32;;IMAGE_DOS_HEADER:t(6,360)=(6,357)PIMAGE_DOS_HEADER:t(6,361)=(6,362)=*(6,357)_IMAGE_OS2_HEADER:T(6,363)=s64ne_magic:(5,11),0,16;ne_ver:(6,1),16,8;ne_rev:(6,1),24,8;ne_enttab:(5,11),32,16;ne_cbenttab:(5,11),48,16;ne_crc:(6,3),64,32;ne_flags:(5,11),96,16;ne_autodata:(5,11),112,16;ne_heap:(5,11),128,16;ne_stack:(5,11),144,16;ne_csip:(6,3),160,32;ne_sssp:(6,3),192,32;ne_cseg:(5,11),224,16;ne_cmod:(5,11),240,16;ne_cbnrestab:(5,11),256,16;ne_segtab:(5,11),272,16;ne_rsrctab:(5,11),288,16;ne_restab:(5,11),304,16;ne_modtab:(5,11),320,16;ne_imptab:(5,11),336,16;ne_nrestab:(6,3),352,32;ne_cmovent:(5,11),384,16;ne_align:(5,11),400,16;ne_cres:(5,11),416,16;ne_exetyp:(5,10),432,8;ne_flagsothers:(5,10),440,8;ne_pretthunks:(5,11),448,16;ne_psegrefbytes:(5,11),464,16;ne_swaparea:(5,11),480,16;ne_expver:(5,11),496,16;;IMAGE_OS2_HEADER:t(6,364)=(6,363)PIMAGE_OS2_HEADER:t(6,365)=(6,366)=*(6,363)_IMAGE_NT_HEADERS:T(6,367)=s248Signature:(5,1),0,32;FileHeader:(6,340),32,160;OptionalHeader:(6,349),192,1792;;IMAGE_NT_HEADERS:t(6,368)=(6,367)PIMAGE_NT_HEADERS:t(6,369)=(6,370)=*(6,367)_IMAGE_ROM_HEADERS:T(6,371)=s76FileHeader:(6,340),0,160;OptionalHeader:(6,354),160,448;;IMAGE_ROM_HEADERS:t(6,372)=(6,371)PIMAGE_ROM_HEADERS:t(6,373)=(6,374)=*(6,371)_IMAGE_SECTION_HEADER:T(6,375)=s40Name:(6,376)=ar(0,1);0;7;(5,10),0,64;Misc:(6,377)=u4PhysicalAddress:(5,1),0,32;VirtualSize:(5,1),0,32;;,64,32;VirtualAddress:(5,1),96,32;SizeOfRawData:(5,1),128,32;PointerToRawData:(5,1),160,32;PointerToRelocations:(5,1),192,32;PointerToLinenumbers:(5,1),224,32;NumberOfRelocations:(5,11),256,16;NumberOfLinenumbers:(5,11),272,16;Characteristics:(5,1),288,32;;IMAGE_SECTION_HEADER:t(6,378)=(6,375)PIMAGE_SECTION_HEADER:t(6,379)=(6,380)=*(6,375)_IMAGE_SYMBOL:T(6,381)=s18N:(6,382)=u8ShortName:(6,376),0,64;Name:(6,383)=s8Short:(5,1),0,32;Long:(5,1),32,32;;,0,64;LongName:(6,384)=ar(0,1);0;1;(5,15),0,64;;,0,64;Value:(5,1),64,32;SectionNumber:(6,2),96,16;Type:(5,11),112,16;StorageClass:(5,10),128,8;NumberOfAuxSymbols:(5,10),136,8;;IMAGE_SYMBOL:t(6,385)=(6,381)PIMAGE_SYMBOL:t(6,386)=(6,387)=*(6,381)_IMAGE_AUX_SYMBOL:T(6,388)=u18Sym:(6,389)=s18TagIndex:(5,1),0,32;Misc:(6,390)=u4LnSz:(6,391)=s4Linenumber:(5,11),0,16;Size:(5,11),16,16;;,0,32;TotalSize:(5,1),0,32;;,32,32;FcnAry:(6,392)=u8Function:(6,393)=s8PointerToLinenumber:(5,1),0,32;PointerToNextFunction:(5,1),32,32;;,0,64;Array:(6,394)=s8Dimension:(6,358),0,64;;,0,64;;,64,64;TvIndex:(5,11),128,16;;,0,144;File:(6,395)=s18Name:(6,396)=ar(0,1);0;17;(5,10),0,144;;,0,144;Section:(6,397)=s16Length:(5,1),0,32;NumberOfRelocations:(5,11),32,16;NumberOfLinenumbers:(5,11),48,16;CheckSum:(5,1),64,32;Number:(6,2),96,16;Selection:(5,10),112,8;;,0,128;;IMAGE_AUX_SYMBOL:t(6,398)=(6,388)PIMAGE_AUX_SYMBOL:t(6,399)=(6,400)=*(6,388)_IMAGE_COFF_SYMBOLS_HEADER:T(6,401)=s32NumberOfSymbols:(5,1),0,32;LvaToFirstSymbol:(5,1),32,32;NumberOfLinenumbers:(5,1),64,32;LvaToFirstLinenumber:(5,1),96,32;RvaToFirstByteOfCode:(5,1),128,32;RvaToLastByteOfCode:(5,1),160,32;RvaToFirstByteOfData:(5,1),192,32;RvaToLastByteOfData:(5,1),224,32;;IMAGE_COFF_SYMBOLS_HEADER:t(6,402)=(6,401)PIMAGE_COFF_SYMBOLS_HEADER:t(6,403)=(6,404)=*(6,401)_IMAGE_RELOCATION:T(6,405)=s10:(6,406)=u4VirtualAddress:(5,1),0,32;RelocCount:(5,1),0,32;;,0,32;SymbolTableIndex:(5,1),32,32;Type:(5,11),64,16;;IMAGE_RELOCATION:t(6,407)=(6,405)PIMAGE_RELOCATION:t(6,408)=(6,409)=*(6,405)_IMAGE_BASE_RELOCATION:T(6,410)=s8VirtualAddress:(5,1),0,32;SizeOfBlock:(5,1),32,32;;IMAGE_BASE_RELOCATION:t(6,411)=(6,410)PIMAGE_BASE_RELOCATION:t(6,412)=(6,413)=*(6,410)_IMAGE_LINENUMBER:T(6,414)=s6Type:(6,415)=u4SymbolTableIndex:(5,1),0,32;VirtualAddress:(5,1),0,32;;,0,32;Linenumber:(5,11),32,16;;IMAGE_LINENUMBER:t(6,416)=(6,414)PIMAGE_LINENUMBER:t(6,417)=(6,418)=*(6,414)_IMAGE_ARCHIVE_MEMBER_HEADER:T(6,419)=s60Name:(6,420)=ar(0,1);0;15;(5,10),0,128;Date:(6,335),128,96;UserID:(6,181),224,48;GroupID:(6,181),272,48;Mode:(6,376),320,64;Size:(6,421)=ar(0,1);0;9;(5,10),384,80;EndHeader:(6,422)=ar(0,1);0;1;(5,10),464,16;;IMAGE_ARCHIVE_MEMBER_HEADER:t(6,423)=(6,419)PIMAGE_ARCHIVE_MEMBER_HEADER:t(6,424)=(6,425)=*(6,419)_IMAGE_EXPORT_DIRECTORY:T(6,426)=s40Characteristics:(5,1),0,32;TimeDateStamp:(5,1),32,32;MajorVersion:(5,11),64,16;MinorVersion:(5,11),80,16;Name:(5,1),96,32;Base:(5,1),128,32;NumberOfFunctions:(5,1),160,32;NumberOfNames:(5,1),192,32;AddressOfFunctions:(6,427)=*(5,25),224,32;AddressOfNames:(6,427),256,32;AddressOfNameOrdinals:(6,428)=*(5,20),288,32;;IMAGE_EXPORT_DIRECTORY:t(6,429)=(6,426)PIMAGE_EXPORT_DIRECTORY:t(6,430)=(6,431)=*(6,426)_IMAGE_IMPORT_BY_NAME:T(6,432)=s4Hint:(5,11),0,16;Name:(6,304),16,8;;IMAGE_IMPORT_BY_NAME:t(6,433)=(6,432)PIMAGE_IMPORT_BY_NAME:t(6,434)=(6,435)=*(6,432)_IMAGE_THUNK_DATA:T(6,436)=s4u1:(6,437)=u4ForwarderString:(5,15),0,32;Function:(5,25),0,32;Ordinal:(5,1),0,32;AddressOfData:(6,434),0,32;;,0,32;;IMAGE_THUNK_DATA:t(6,438)=(6,436)PIMAGE_THUNK_DATA:t(6,439)=(6,440)=*(6,436)_IMAGE_IMPORT_DESCRIPTOR:T(6,441)=s20:(6,442)=u4Characteristics:(5,1),0,32;OriginalFirstThunk:(6,439),0,32;;,0,32;TimeDateStamp:(5,1),32,32;ForwarderChain:(5,1),64,32;Name:(5,1),96,32;FirstThunk:(6,439),128,32;;IMAGE_IMPORT_DESCRIPTOR:t(6,443)=(6,441)PIMAGE_IMPORT_DESCRIPTOR:t(6,444)=(6,445)=*(6,441)_IMAGE_BOUND_IMPORT_DESCRIPTOR:T(6,446)=s8TimeDateStamp:(5,1),0,32;OffsetModuleName:(5,11),32,16;NumberOfModuleForwarderRefs:(5,11),48,16;;IMAGE_BOUND_IMPORT_DESCRIPTOR:t(6,447)=(6,446)PIMAGE_BOUND_IMPORT_DESCRIPTOR:t(6,448)=(6,449)=*(6,446)_IMAGE_BOUND_FORWARDER_REF:T(6,450)=s8TimeDateStamp:(5,1),0,32;OffsetModuleName:(5,11),32,16;Reserved:(5,11),48,16;;IMAGE_BOUND_FORWARDER_REF:t(6,451)=(6,450)PIMAGE_BOUND_FORWARDER_REF:t(6,452)=(6,453)=*(6,450)PIMAGE_TLS_CALLBACK:t(6,454)=(6,455)=*(6,456)=f(0,19)_IMAGE_TLS_DIRECTORY:T(6,457)=s24StartAddressOfRawData:(5,1),0,32;EndAddressOfRawData:(5,1),32,32;AddressOfIndex:(5,25),64,32;AddressOfCallBacks:(6,458)=*(6,454),96,32;SizeOfZeroFill:(5,1),128,32;Characteristics:(5,1),160,32;;IMAGE_TLS_DIRECTORY:t(6,459)=(6,457)PIMAGE_TLS_DIRECTORY:t(6,460)=(6,461)=*(6,457)_IMAGE_RESOURCE_DIRECTORY:T(6,462)=s16Characteristics:(5,1),0,32;TimeDateStamp:(5,1),32,32;MajorVersion:(5,11),64,16;MinorVersion:(5,11),80,16;NumberOfNamedEntries:(5,11),96,16;NumberOfIdEntries:(5,11),112,16;;IMAGE_RESOURCE_DIRECTORY:t(6,463)=(6,462)PIMAGE_RESOURCE_DIRECTORY:t(6,464)=(6,465)=*(6,462)_IMAGE_RESOURCE_DIRECTORY_ENTRY:T(6,466)=s8:(6,467)=u4:(6,468)=s4NameOffset:(5,1),0,31;NameIsString:(5,1),31,1;;,0,32;Name:(5,1),0,32;Id:(5,11),0,16;;,0,32;:(6,469)=u4OffsetToData:(5,1),0,32;:(6,470)=s4OffsetToDirectory:(5,1),0,31;DataIsDirectory:(5,1),31,1;;,0,32;;,32,32;;IMAGE_RESOURCE_DIRECTORY_ENTRY:t(6,471)=(6,466)PIMAGE_RESOURCE_DIRECTORY_ENTRY:t(6,472)=(6,473)=*(6,466)_IMAGE_RESOURCE_DIRECTORY_STRING:T(6,474)=s4Length:(5,11),0,16;NameString:(6,475)=ar(0,1);0;0;(6,1),16,8;;IMAGE_RESOURCE_DIRECTORY_STRING:t(6,476)=(6,474)PIMAGE_RESOURCE_DIRECTORY_STRING:t(6,477)=(6,478)=*(6,474)_IMAGE_RESOURCE_DIR_STRING_U:T(6,479)=s4Length:(5,11),0,16;NameString:(6,255),16,16;;IMAGE_RESOURCE_DIR_STRING_U:t(6,480)=(6,479)PIMAGE_RESOURCE_DIR_STRING_U:t(6,481)=(6,482)=*(6,479)_IMAGE_RESOURCE_DATA_ENTRY:T(6,483)=s16OffsetToData:(5,1),0,32;Size:(5,1),32,32;CodePage:(5,1),64,32;Reserved:(5,1),96,32;;IMAGE_RESOURCE_DATA_ENTRY:t(6,484)=(6,483)PIMAGE_RESOURCE_DATA_ENTRY:t(6,485)=(6,486)=*(6,483)_IMAGE_LOAD_CONFIG_DIRECTORY:T(6,487)=s64Characteristics:(5,1),0,32;TimeDateStamp:(5,1),32,32;MajorVersion:(5,11),64,16;MinorVersion:(5,11),80,16;GlobalFlagsClear:(5,1),96,32;GlobalFlagsSet:(5,1),128,32;CriticalSectionDefaultTimeout:(5,1),160,32;DeCommitFreeBlockThreshold:(5,1),192,32;DeCommitTotalFreeThreshold:(5,1),224,32;LockPrefixTable:(5,28),256,32;MaximumAllocationSize:(5,1),288,32;VirtualMemoryThreshold:(5,1),320,32;ProcessHeapFlags:(5,1),352,32;Reserved:(6,353),384,128;;IMAGE_LOAD_CONFIG_DIRECTORY:t(6,488)=(6,487)PIMAGE_LOAD_CONFIG_DIRECTORY:t(6,489)=(6,490)=*(6,487)_IMAGE_RUNTIME_FUNCTION_ENTRY:T(6,491)=s20BeginAddress:(5,1),0,32;EndAddress:(5,1),32,32;ExceptionHandler:(5,28),64,32;HandlerData:(5,28),96,32;PrologEndAddress:(5,1),128,32;;IMAGE_RUNTIME_FUNCTION_ENTRY:t(6,492)=(6,491)PIMAGE_RUNTIME_FUNCTION_ENTRY:t(6,493)=(6,494)=*(6,491)_IMAGE_DEBUG_DIRECTORY:T(6,495)=s28Characteristics:(5,1),0,32;TimeDateStamp:(5,1),32,32;MajorVersion:(5,11),64,16;MinorVersion:(5,11),80,16;Type:(5,1),96,32;SizeOfData:(5,1),128,32;AddressOfRawData:(5,1),160,32;PointerToRawData:(5,1),192,32;;IMAGE_DEBUG_DIRECTORY:t(6,496)=(6,495)PIMAGE_DEBUG_DIRECTORY:t(6,497)=(6,498)=*(6,495)_FPO_DATA:T(6,499)=s16ulOffStart:(5,1),0,32;cbProcSize:(5,1),32,32;cdwLocals:(5,1),64,32;cdwParams:(5,11),96,16;cbProlog:(5,11),112,8;cbRegs:(5,11),120,3;fHasSEH:(5,11),123,1;fUseBP:(5,11),124,1;reserved:(5,11),125,1;cbFrame:(5,11),126,2;;FPO_DATA:t(6,500)=(6,499)PFPO_DATA:t(6,501)=(6,502)=*(6,499)_IMAGE_DEBUG_MISC:T(6,503)=s16DataType:(5,1),0,32;Length:(5,1),32,32;Unicode:(6,70),64,8;Reserved:(6,504)=ar(0,1);0;2;(5,10),72,24;Data:(6,304),96,8;;IMAGE_DEBUG_MISC:t(6,505)=(6,503)PIMAGE_DEBUG_MISC:t(6,506)=(6,507)=*(6,503)_IMAGE_FUNCTION_ENTRY:T(6,508)=s12StartingAddress:(5,1),0,32;EndingAddress:(5,1),32,32;EndOfPrologue:(5,1),64,32;;IMAGE_FUNCTION_ENTRY:t(6,509)=(6,508)PIMAGE_FUNCTION_ENTRY:t(6,510)=(6,511)=*(6,508)_IMAGE_SEPARATE_DEBUG_HEADER:T(6,512)=s48Signature:(5,11),0,16;Flags:(5,11),16,16;Machine:(5,11),32,16;Characteristics:(5,11),48,16;TimeDateStamp:(5,1),64,32;CheckSum:(5,1),96,32;ImageBase:(5,1),128,32;SizeOfImage:(5,1),160,32;NumberOfSections:(5,1),192,32;ExportedNamesSize:(5,1),224,32;DebugDirectorySize:(5,1),256,32;Reserved:(6,513)=ar(0,1);0;2;(5,1),288,96;;IMAGE_SEPARATE_DEBUG_HEADER:t(6,514)=(6,512)PIMAGE_SEPARATE_DEBUG_HEADER:t(6,515)=(6,516)=*(6,512)_CM_SERVICE_NODE_TYPE:T(6,517)=eDriverType:1,FileSystemType:2,Win32ServiceOwnProcess:16,Win32ServiceShareProcess:32,AdapterType:4,RecognizerType:8,;SERVICE_NODE_TYPE:t(6,518)=(6,517)_CM_SERVICE_LOAD_TYPE:T(6,519)=eBootLoad:0,SystemLoad:1,AutoLoad:2,DemandLoad:3,DisableLoad:4,;SERVICE_LOAD_TYPE:t(6,520)=(6,519)_CM_ERROR_CONTROL_TYPE:T(6,521)=eIgnoreError:0,NormalError:1,SevereError:2,CriticalError:3,;SERVICE_ERROR_TYPE:t(6,522)=(6,521)_NT_TIB:T(6,523)=s28ExceptionList:(6,524)=*(6,525)=xs_EXCEPTION_REGISTRATION_RECORD:,0,32;StackBase:(5,28),32,32;StackLimit:(5,28),64,32;SubSystemTib:(5,28),96,32;:(6,526)=u4FiberData:(5,28),0,32;Version:(5,1),0,32;;,128,32;ArbitraryUserPointer:(5,28),160,32;Self:(6,527)=*(6,523),192,32;;NT_TIB:t(6,528)=(6,523)PNT_TIB:t(6,529)=(6,527)_REPARSE_DATA_BUFFER:T(6,530)=s20ReparseTag:(5,1),0,32;ReparseDataLength:(5,11),32,16;Reserved:(5,11),48,16;:(6,531)=u10SymbolicLinkReparseBuffer:(6,532)=s10SubstituteNameOffset:(5,11),0,16;SubstituteNameLength:(5,11),16,16;PrintNameOffset:(5,11),32,16;PrintNameLength:(5,11),48,16;PathBuffer:(6,255),64,16;;,0,80;MountPointReparseBuffer:(6,533)=s10SubstituteNameOffset:(5,11),0,16;SubstituteNameLength:(5,11),16,16;PrintNameOffset:(5,11),32,16;PrintNameLength:(5,11),48,16;PathBuffer:(6,255),64,16;;,0,80;GenericReparseBuffer:(6,534)=s1DataBuffer:(6,304),0,8;;,0,8;;,64,80;;REPARSE_DATA_BUFFER:t(6,535)=(6,530)PREPARSE_DATA_BUFFER:t(6,536)=(6,537)=*(6,530)_REPARSE_GUID_DATA_BUFFER:T(6,538)=s28ReparseTag:(5,1),0,32;ReparseDataLength:(5,11),32,16;Reserved:(5,11),48,16;ReparseGuid:(6,75),64,128;GenericReparseBuffer:(6,539)=s1DataBuffer:(6,304),0,8;;,192,8;;REPARSE_GUID_DATA_BUFFER:t(6,540)=(6,538)PREPARSE_GUID_DATA_BUFFER:t(6,541)=(6,542)=*(6,538)_REPARSE_POINT_INFORMATION:T(6,543)=s4ReparseDataLength:(5,11),0,16;UnparsedNameLength:(5,11),16,16;;REPARSE_POINT_INFORMATION:t(6,544)=(6,543)PREPARSE_POINT_INFORMATION:t(6,545)=(6,546)=*(6,543)WPARAM:t(5,38)=(5,34)LPARAM:t(5,39)=(6,3)LRESULT:t(5,40)=(6,3)HRESULT:t(5,41)=(6,3)ATOM:t(5,42)=(5,11)HGLOBAL:t(5,43)=(6,54)HLOCAL:t(5,44)=(6,54)GLOBALHANDLE:t(5,45)=(6,54)LOCALHANDLE:t(5,46)=(6,54)HGDIOBJ:t(5,47)=(4,2)HACCEL__:T(5,48)=s4i:(0,1),0,32;;HACCEL:t(5,49)=(5,50)=*(5,48)HBITMAP__:T(5,51)=s4i:(0,1),0,32;;HBITMAP:t(5,52)=(5,53)=*(5,51)HBRUSH__:T(5,54)=s4i:(0,1),0,32;;HBRUSH:t(5,55)=(5,56)=*(5,54)HCOLORSPACE__:T(5,57)=s4i:(0,1),0,32;;HCOLORSPACE:t(5,58)=(5,59)=*(5,57)HDC__:T(5,60)=s4i:(0,1),0,32;;HDC:t(5,61)=(5,62)=*(5,60)HGLRC__:T(5,63)=s4i:(0,1),0,32;;HGLRC:t(5,64)=(5,65)=*(5,63)HDESK__:T(5,66)=s4i:(0,1),0,32;;HDESK:t(5,67)=(5,68)=*(5,66)HENHMETAFILE__:T(5,69)=s4i:(0,1),0,32;;HENHMETAFILE:t(5,70)=(5,71)=*(5,69)HFONT__:T(5,72)=s4i:(0,1),0,32;;HFONT:t(5,73)=(5,74)=*(5,72)HICON__:T(5,75)=s4i:(0,1),0,32;;HICON:t(5,76)=(5,77)=*(5,75)HKEY__:T(5,78)=s4i:(0,1),0,32;;HKEY:t(5,79)=(5,80)=*(5,78)HMONITOR__:T(5,81)=s4i:(0,1),0,32;;HMONITOR:t(5,82)=(5,83)=*(5,81)HTERMINAL__:T(5,84)=s4i:(0,1),0,32;;HTERMINAL:t(5,85)=(5,86)=*(5,84)HWINEVENTHOOK__:T(5,87)=s4i:(0,1),0,32;;HWINEVENTHOOK:t(5,88)=(5,89)=*(5,87)PHKEY:t(5,90)=(5,91)=*(5,79)HMENU__:T(5,92)=s4i:(0,1),0,32;;HMENU:t(5,93)=(5,94)=*(5,92)HMETAFILE__:T(5,95)=s4i:(0,1),0,32;;HMETAFILE:t(5,96)=(5,97)=*(5,95)HINSTANCE__:T(5,98)=s4i:(0,1),0,32;;HINSTANCE:t(5,99)=(5,100)=*(5,98)HMODULE:t(5,101)=(5,99)HPALETTE__:T(5,102)=s4i:(0,1),0,32;;HPALETTE:t(5,103)=(5,104)=*(5,102)HPEN__:T(5,105)=s4i:(0,1),0,32;;HPEN:t(5,106)=(5,107)=*(5,105)HRGN__:T(5,108)=s4i:(0,1),0,32;;HRGN:t(5,109)=(5,110)=*(5,108)HRSRC__:T(5,111)=s4i:(0,1),0,32;;HRSRC:t(5,112)=(5,113)=*(5,111)HSTR__:T(5,114)=s4i:(0,1),0,32;;HSTR:t(5,115)=(5,116)=*(5,114)HTASK__:T(5,117)=s4i:(0,1),0,32;;HTASK:t(5,118)=(5,119)=*(5,117)HWND__:T(5,120)=s4i:(0,1),0,32;;HWND:t(5,121)=(5,122)=*(5,120)HWINSTA__:T(5,123)=s4i:(0,1),0,32;;HWINSTA:t(5,124)=(5,125)=*(5,123)HKL__:T(5,126)=s4i:(0,1),0,32;;HKL:t(5,127)=(5,128)=*(5,126)HFILE:t(5,129)=(0,1)HCURSOR:t(5,130)=(5,76)COLORREF:t(5,131)=(5,1)FARPROC:t(5,132)=(5,133)=*(5,134)=f(0,1)NEARPROC:t(5,135)=(5,133)PROC:t(5,136)=(5,133)tagRECT:T(5,137)=s16left:(6,3),0,32;top:(6,3),32,32;right:(6,3),64,32;bottom:(6,3),96,32;;RECT:t(5,138)=(5,137)PRECT:t(5,139)=(5,140)=*(5,137)LPRECT:t(5,141)=(5,140)LPCRECT:t(5,142)=(5,143)=*(5,138)tagRECTL:T(5,144)=s16left:(6,3),0,32;top:(6,3),32,32;right:(6,3),64,32;bottom:(6,3),96,32;;RECTL:t(5,145)=(5,144)PRECTL:t(5,146)=(5,147)=*(5,144)LPRECTL:t(5,148)=(5,147)LPCRECTL:t(5,149)=(5,150)=*(5,145)tagPOINT:T(5,151)=s8x:(6,3),0,32;y:(6,3),32,32;;POINT:t(5,152)=(5,151)POINTL:t(5,153)=(5,151)PPOINT:t(5,154)=(5,155)=*(5,151)LPPOINT:t(5,156)=(5,155)PPOINTL:t(5,157)=(5,155)LPPOINTL:t(5,158)=(5,155)tagSIZE:T(5,159)=s8cx:(6,3),0,32;cy:(6,3),32,32;;SIZE:t(5,160)=(5,159)SIZEL:t(5,161)=(5,159)PSIZE:t(5,162)=(5,163)=*(5,159)LPSIZE:t(5,164)=(5,163)PSIZEL:t(5,165)=(5,163)LPSIZEL:t(5,166)=(5,163)tagPOINTS:T(5,167)=s4x:(6,2),0,16;y:(6,2),16,16;;POINTS:t(5,168)=(5,167)PPOINTS:t(5,169)=(5,170)=*(5,167)LPPOINTS:t(5,171)=(5,170)/usr/include/w32api/wincon.h_CHAR_INFO:T(21,1)=s4Char:(21,2)=u2UnicodeChar:(6,14),0,16;AsciiChar:(6,1),0,8;;,0,16;Attributes:(5,11),16,16;;CHAR_INFO:t(21,3)=(21,1)PCHAR_INFO:t(21,4)=(21,5)=*(21,1)_SMALL_RECT:T(21,6)=s8Left:(6,2),0,16;Top:(6,2),16,16;Right:(6,2),32,16;Bottom:(6,2),48,16;;SMALL_RECT:t(21,7)=(21,6)PSMALL_RECT:t(21,8)=(21,9)=*(21,6)_CONSOLE_CURSOR_INFO:T(21,10)=s8dwSize:(5,1),0,32;bVisible:(5,6),32,32;;CONSOLE_CURSOR_INFO:t(21,11)=(21,10)PCONSOLE_CURSOR_INFO:t(21,12)=(21,13)=*(21,10)_COORD:T(21,14)=s4X:(6,2),0,16;Y:(6,2),16,16;;COORD:t(21,15)=(21,14)_CONSOLE_SCREEN_BUFFER_INFO:T(21,16)=s22dwSize:(21,15),0,32;dwCursorPosition:(21,15),32,32;wAttributes:(5,11),64,16;srWindow:(21,7),80,64;dwMaximumWindowSize:(21,15),144,32;;CONSOLE_SCREEN_BUFFER_INFO:t(21,17)=(21,16)PCONSOLE_SCREEN_BUFFER_INFO:t(21,18)=(21,19)=*(21,16)PHANDLER_ROUTINE:t(21,20)=(21,21)=*(21,22)=f(5,6)_KEY_EVENT_RECORD:T(21,23)=s16bKeyDown:(5,6),0,32;wRepeatCount:(5,11),32,16;wVirtualKeyCode:(5,11),48,16;wVirtualScanCode:(5,11),64,16;uChar:(21,24)=u2UnicodeChar:(6,14),0,16;AsciiChar:(6,1),0,8;;,80,16;dwControlKeyState:(5,1),96,32;;KEY_EVENT_RECORD:t(21,25)=(21,23)_MOUSE_EVENT_RECORD:T(21,26)=s16dwMousePosition:(21,15),0,32;dwButtonState:(5,1),32,32;dwControlKeyState:(5,1),64,32;dwEventFlags:(5,1),96,32;;MOUSE_EVENT_RECORD:t(21,27)=(21,26)_WINDOW_BUFFER_SIZE_RECORD:T(21,28)=s4dwSize:(21,15),0,32;;WINDOW_BUFFER_SIZE_RECORD:t(21,29)=(21,28)_MENU_EVENT_RECORD:T(21,30)=s4dwCommandId:(5,34),0,32;;MENU_EVENT_RECORD:t(21,31)=(21,30)PMENU_EVENT_RECORD:t(21,32)=(21,33)=*(21,30)_FOCUS_EVENT_RECORD:T(21,34)=s4bSetFocus:(5,6),0,32;;FOCUS_EVENT_RECORD:t(21,35)=(21,34)_INPUT_RECORD:T(21,36)=s20EventType:(5,11),0,16;Event:(21,37)=u16KeyEvent:(21,25),0,128;MouseEvent:(21,27),0,128;WindowBufferSizeEvent:(21,29),0,32;MenuEvent:(21,31),0,32;FocusEvent:(21,35),0,32;;,32,128;;INPUT_RECORD:t(21,38)=(21,36)PINPUT_RECORD:t(21,39)=(21,40)=*(21,36)/usr/include/w32api/basetyps.hUUID:t(22,1)=(6,75)IID:t(22,2)=(6,75)CLSID:t(22,3)=(6,75)LPCLSID:t(22,4)=(22,5)=*(22,3)LPIID:t(22,6)=(22,7)=*(22,2)REFIID:t(22,8)=(22,7)REFCLSID:t(22,9)=(22,5)FMTID:t(22,10)=(6,75)REFFMTID:t(22,11)=(22,12)=*(22,10)error_status_t:t(22,13)=(0,5)PROPID:t(22,14)=(0,5)/usr/include/w32api/excpt.h/usr/include/w32api/winbase.h_FILETIME:T(24,1)=s8dwLowDateTime:(5,1),0,32;dwHighDateTime:(5,1),32,32;;FILETIME:t(24,2)=(24,1)PFILETIME:t(24,3)=(24,4)=*(24,1)LPFILETIME:t(24,5)=(24,4)_BY_HANDLE_FILE_INFORMATION:T(24,6)=s52dwFileAttributes:(5,1),0,32;ftCreationTime:(24,2),32,64;ftLastAccessTime:(24,2),96,64;ftLastWriteTime:(24,2),160,64;dwVolumeSerialNumber:(5,1),224,32;nFileSizeHigh:(5,1),256,32;nFileSizeLow:(5,1),288,32;nNumberOfLinks:(5,1),320,32;nFileIndexHigh:(5,1),352,32;nFileIndexLow:(5,1),384,32;;BY_HANDLE_FILE_INFORMATION:t(24,7)=(24,6)LPBY_HANDLE_FILE_INFORMATION:t(24,8)=(24,9)=*(24,6)_DCB:T(24,10)=s28DCBlength:(5,1),0,32;BaudRate:(5,1),32,32;fBinary:(5,1),64,1;fParity:(5,1),65,1;fOutxCtsFlow:(5,1),66,1;fOutxDsrFlow:(5,1),67,1;fDtrControl:(5,1),68,2;fDsrSensitivity:(5,1),70,1;fTXContinueOnXoff:(5,1),71,1;fOutX:(5,1),72,1;fInX:(5,1),73,1;fErrorChar:(5,1),74,1;fNull:(5,1),75,1;fRtsControl:(5,1),76,2;fAbortOnError:(5,1),78,1;fDummy2:(5,1),79,17;wReserved:(5,11),96,16;XonLim:(5,11),112,16;XoffLim:(5,11),128,16;ByteSize:(5,10),144,8;Parity:(5,10),152,8;StopBits:(5,10),160,8;XonChar:(0,2),168,8;XoffChar:(0,2),176,8;ErrorChar:(0,2),184,8;EofChar:(0,2),192,8;EvtChar:(0,2),200,8;wReserved1:(5,11),208,16;;DCB:t(24,11)=(24,10)LPDCB:t(24,12)=(24,13)=*(24,10)_COMM_CONFIG:T(24,14)=s52dwSize:(5,1),0,32;wVersion:(5,11),32,16;wReserved:(5,11),48,16;dcb:(24,11),64,224;dwProviderSubType:(5,1),288,32;dwProviderOffset:(5,1),320,32;dwProviderSize:(5,1),352,32;wcProviderData:(6,255),384,16;;COMMCONFIG:t(24,15)=(24,14)LPCOMMCONFIG:t(24,16)=(24,17)=*(24,14)_COMMPROP:T(24,18)=s64wPacketLength:(5,11),0,16;wPacketVersion:(5,11),16,16;dwServiceMask:(5,1),32,32;dwReserved1:(5,1),64,32;dwMaxTxQueue:(5,1),96,32;dwMaxRxQueue:(5,1),128,32;dwMaxBaud:(5,1),160,32;dwProvSubType:(5,1),192,32;dwProvCapabilities:(5,1),224,32;dwSettableParams:(5,1),256,32;dwSettableBaud:(5,1),288,32;wSettableData:(5,11),320,16;wSettableStopParity:(5,11),336,16;dwCurrentTxQueue:(5,1),352,32;dwCurrentRxQueue:(5,1),384,32;dwProvSpec1:(5,1),416,32;dwProvSpec2:(5,1),448,32;wcProvChar:(6,255),480,16;;COMMPROP:t(24,19)=(24,18)LPCOMMPROP:t(24,20)=(24,21)=*(24,18)_COMMTIMEOUTS:T(24,22)=s20ReadIntervalTimeout:(5,1),0,32;ReadTotalTimeoutMultiplier:(5,1),32,32;ReadTotalTimeoutConstant:(5,1),64,32;WriteTotalTimeoutMultiplier:(5,1),96,32;WriteTotalTimeoutConstant:(5,1),128,32;;COMMTIMEOUTS:t(24,23)=(24,22)LPCOMMTIMEOUTS:t(24,24)=(24,25)=*(24,22)_COMSTAT:T(24,26)=s12fCtsHold:(5,1),0,1;fDsrHold:(5,1),1,1;fRlsdHold:(5,1),2,1;fXoffHold:(5,1),3,1;fXoffSent:(5,1),4,1;fEof:(5,1),5,1;fTxim:(5,1),6,1;fReserved:(5,1),7,25;cbInQue:(5,1),32,32;cbOutQue:(5,1),64,32;;COMSTAT:t(24,27)=(24,26)LPCOMSTAT:t(24,28)=(24,29)=*(24,26)LPTHREAD_START_ROUTINE:t(24,30)=(24,31)=*(24,32)=f(5,1)_CREATE_PROCESS_DEBUG_INFO:T(24,33)=s40hFile:(6,54),0,32;hProcess:(6,54),32,32;hThread:(6,54),64,32;lpBaseOfImage:(5,29),96,32;dwDebugInfoFileOffset:(5,1),128,32;nDebugInfoSize:(5,1),160,32;lpThreadLocalBase:(5,29),192,32;lpStartAddress:(24,30),224,32;lpImageName:(5,29),256,32;fUnicode:(5,11),288,16;;CREATE_PROCESS_DEBUG_INFO:t(24,34)=(24,33)LPCREATE_PROCESS_DEBUG_INFO:t(24,35)=(24,36)=*(24,33)_CREATE_THREAD_DEBUG_INFO:T(24,37)=s12hThread:(6,54),0,32;lpThreadLocalBase:(5,29),32,32;lpStartAddress:(24,30),64,32;;CREATE_THREAD_DEBUG_INFO:t(24,38)=(24,37)LPCREATE_THREAD_DEBUG_INFO:t(24,39)=(24,40)=*(24,37)_EXCEPTION_DEBUG_INFO:T(24,41)=s84ExceptionRecord:(6,132),0,640;dwFirstChance:(5,1),640,32;;EXCEPTION_DEBUG_INFO:t(24,42)=(24,41)LPEXCEPTION_DEBUG_INFO:t(24,43)=(24,44)=*(24,41)_EXIT_THREAD_DEBUG_INFO:T(24,45)=s4dwExitCode:(5,1),0,32;;EXIT_THREAD_DEBUG_INFO:t(24,46)=(24,45)LPEXIT_THREAD_DEBUG_INFO:t(24,47)=(24,48)=*(24,45)_EXIT_PROCESS_DEBUG_INFO:T(24,49)=s4dwExitCode:(5,1),0,32;;EXIT_PROCESS_DEBUG_INFO:t(24,50)=(24,49)LPEXIT_PROCESS_DEBUG_INFO:t(24,51)=(24,52)=*(24,49)_LOAD_DLL_DEBUG_INFO:T(24,53)=s24hFile:(6,54),0,32;lpBaseOfDll:(5,29),32,32;dwDebugInfoFileOffset:(5,1),64,32;nDebugInfoSize:(5,1),96,32;lpImageName:(5,29),128,32;fUnicode:(5,11),160,16;;LOAD_DLL_DEBUG_INFO:t(24,54)=(24,53)LPLOAD_DLL_DEBUG_INFO:t(24,55)=(24,56)=*(24,53)_UNLOAD_DLL_DEBUG_INFO:T(24,57)=s4lpBaseOfDll:(5,29),0,32;;UNLOAD_DLL_DEBUG_INFO:t(24,58)=(24,57)LPUNLOAD_DLL_DEBUG_INFO:t(24,59)=(24,60)=*(24,57)_OUTPUT_DEBUG_STRING_INFO:T(24,61)=s8lpDebugStringData:(6,32),0,32;fUnicode:(5,11),32,16;nDebugStringLength:(5,11),48,16;;OUTPUT_DEBUG_STRING_INFO:t(24,62)=(24,61)LPOUTPUT_DEBUG_STRING_INFO:t(24,63)=(24,64)=*(24,61)_RIP_INFO:T(24,65)=s8dwError:(5,1),0,32;dwType:(5,1),32,32;;RIP_INFO:t(24,66)=(24,65)LPRIP_INFO:t(24,67)=(24,68)=*(24,65)_DEBUG_EVENT:T(24,69)=s96dwDebugEventCode:(5,1),0,32;dwProcessId:(5,1),32,32;dwThreadId:(5,1),64,32;u:(24,70)=u84Exception:(24,42),0,672;CreateThread:(24,38),0,96;CreateProcessInfo:(24,34),0,320;ExitThread:(24,46),0,32;ExitProcess:(24,50),0,32;LoadDll:(24,54),0,192;UnloadDll:(24,58),0,32;DebugString:(24,62),0,64;RipInfo:(24,66),0,64;;,96,672;;DEBUG_EVENT:t(24,71)=(24,69)LPDEBUG_EVENT:t(24,72)=(24,73)=*(24,69)_OVERLAPPED:T(24,74)=s20Internal:(5,1),0,32;InternalHigh:(5,1),32,32;Offset:(5,1),64,32;OffsetHigh:(5,1),96,32;hEvent:(6,54),128,32;;OVERLAPPED:t(24,75)=(24,74)POVERLAPPED:t(24,76)=(24,77)=*(24,74)LPOVERLAPPED:t(24,78)=(24,77)_STARTUPINFOA:T(24,79)=s68cb:(5,1),0,32;lpReserved:(6,32),32,32;lpDesktop:(6,32),64,32;lpTitle:(6,32),96,32;dwX:(5,1),128,32;dwY:(5,1),160,32;dwXSize:(5,1),192,32;dwYSize:(5,1),224,32;dwXCountChars:(5,1),256,32;dwYCountChars:(5,1),288,32;dwFillAttribute:(5,1),320,32;dwFlags:(5,1),352,32;wShowWindow:(5,11),384,16;cbReserved2:(5,11),400,16;lpReserved2:(5,15),416,32;hStdInput:(6,54),448,32;hStdOutput:(6,54),480,32;hStdError:(6,54),512,32;;STARTUPINFOA:t(24,80)=(24,79)LPSTARTUPINFOA:t(24,81)=(24,82)=*(24,79)_STARTUPINFOW:T(24,83)=s68cb:(5,1),0,32;lpReserved:(6,20),32,32;lpDesktop:(6,20),64,32;lpTitle:(6,20),96,32;dwX:(5,1),128,32;dwY:(5,1),160,32;dwXSize:(5,1),192,32;dwYSize:(5,1),224,32;dwXCountChars:(5,1),256,32;dwYCountChars:(5,1),288,32;dwFillAttribute:(5,1),320,32;dwFlags:(5,1),352,32;wShowWindow:(5,11),384,16;cbReserved2:(5,11),400,16;lpReserved2:(5,15),416,32;hStdInput:(6,54),448,32;hStdOutput:(6,54),480,32;hStdError:(6,54),512,32;;STARTUPINFOW:t(24,84)=(24,83)LPSTARTUPINFOW:t(24,85)=(24,86)=*(24,83)_PROCESS_INFORMATION:T(24,87)=s16hProcess:(6,54),0,32;hThread:(6,54),32,32;dwProcessId:(5,1),64,32;dwThreadId:(5,1),96,32;;PROCESS_INFORMATION:t(24,88)=(24,87)LPPROCESS_INFORMATION:t(24,89)=(24,90)=*(24,87)_CRITICAL_SECTION_DEBUG:T(24,91)=s32Type:(5,11),0,16;CreatorBackTraceIndex:(5,11),16,16;CriticalSection:(24,92)=*(24,93)=xs_CRITICAL_SECTION:,32,32;ProcessLocksList:(6,319),64,64;EntryCount:(5,1),128,32;ContentionCount:(5,1),160,32;Spare:(6,324),192,64;;CRITICAL_SECTION_DEBUG:t(24,94)=(24,91)PCRITICAL_SECTION_DEBUG:t(24,95)=(24,96)=*(24,91)_CRITICAL_SECTION:T(24,93)=s24DebugInfo:(24,95),0,32;LockCount:(6,3),32,32;RecursionCount:(6,3),64,32;OwningThread:(6,54),96,32;LockSemaphore:(6,54),128,32;SpinCount:(5,1),160,32;;CRITICAL_SECTION:t(24,97)=(24,93)PCRITICAL_SECTION:t(24,98)=(24,92)LPCRITICAL_SECTION:t(24,99)=(24,92)_SYSTEMTIME:T(24,100)=s16wYear:(5,11),0,16;wMonth:(5,11),16,16;wDayOfWeek:(5,11),32,16;wDay:(5,11),48,16;wHour:(5,11),64,16;wMinute:(5,11),80,16;wSecond:(5,11),96,16;wMilliseconds:(5,11),112,16;;SYSTEMTIME:t(24,101)=(24,100)LPSYSTEMTIME:t(24,102)=(24,103)=*(24,100)_WIN32_FILE_ATTRIBUTE_DATA:T(24,104)=s36dwFileAttributes:(5,1),0,32;ftCreationTime:(24,2),32,64;ftLastAccessTime:(24,2),96,64;ftLastWriteTime:(24,2),160,64;nFileSizeHigh:(5,1),224,32;nFileSizeLow:(5,1),256,32;;WIN32_FILE_ATTRIBUTE_DATA:t(24,105)=(24,104)LPWIN32_FILE_ATTRIBUTE_DATA:t(24,106)=(24,107)=*(24,104)_WIN32_FIND_DATAA:T(24,108)=s320dwFileAttributes:(5,1),0,32;ftCreationTime:(24,2),32,64;ftLastAccessTime:(24,2),96,64;ftLastWriteTime:(24,2),160,64;nFileSizeHigh:(5,1),224,32;nFileSizeLow:(5,1),256,32;dwReserved0:(5,1),288,32;dwReserved1:(5,1),320,32;cFileName:(24,109)=ar(0,1);0;259;(6,1),352,2080;cAlternateFileName:(24,110)=ar(0,1);0;13;(6,1),2432,112;;WIN32_FIND_DATAA:t(24,111)=(24,108)LPWIN32_FIND_DATAA:t(24,112)=(24,113)=*(24,108)_WIN32_FIND_DATAW:T(24,114)=s592dwFileAttributes:(5,1),0,32;ftCreationTime:(24,2),32,64;ftLastAccessTime:(24,2),96,64;ftLastWriteTime:(24,2),160,64;nFileSizeHigh:(5,1),224,32;nFileSizeLow:(5,1),256,32;dwReserved0:(5,1),288,32;dwReserved1:(5,1),320,32;cFileName:(24,115)=ar(0,1);0;259;(6,14),352,4160;cAlternateFileName:(24,116)=ar(0,1);0;13;(6,14),4512,224;;WIN32_FIND_DATAW:t(24,117)=(24,114)LPWIN32_FIND_DATAW:t(24,118)=(24,119)=*(24,114)_WIN32_STREAM_ID:T(24,120)=s24dwStreamId:(5,1),0,32;dwStreamAttributes:(5,1),32,32;Size:(6,141),64,64;dwStreamNameSize:(5,1),128,32;cStreamName:(6,255),160,16;;WIN32_STREAM_ID:t(24,121)=(24,120)_FINDEX_INFO_LEVELS:T(24,122)=eFindExInfoStandard:0,FindExInfoMaxInfoLevel:1,;FINDEX_INFO_LEVELS:t(24,123)=(24,122)_FINDEX_SEARCH_OPS:T(24,124)=eFindExSearchNameMatch:0,FindExSearchLimitToDirectories:1,FindExSearchLimitToDevices:2,FindExSearchMaxSearchOp:3,;FINDEX_SEARCH_OPS:t(24,125)=(24,124)_ACL_INFORMATION_CLASS:T(24,126)=eAclRevisionInformation:1,AclSizeInformation:2,;ACL_INFORMATION_CLASS:t(24,127)=(24,126)tagHW_PROFILE_INFOA:T(24,128)=s124dwDockInfo:(5,1),0,32;szHwProfileGuid:(24,129)=ar(0,1);0;38;(6,1),32,312;szHwProfileName:(24,130)=ar(0,1);0;79;(6,1),344,640;;HW_PROFILE_INFOA:t(24,131)=(24,128)LPHW_PROFILE_INFOA:t(24,132)=(24,133)=*(24,128)tagHW_PROFILE_INFOW:T(24,134)=s244dwDockInfo:(5,1),0,32;szHwProfileGuid:(24,135)=ar(0,1);0;38;(6,14),32,624;szHwProfileName:(24,136)=ar(0,1);0;79;(6,14),656,1280;;HW_PROFILE_INFOW:t(24,137)=(24,134)LPHW_PROFILE_INFOW:t(24,138)=(24,139)=*(24,134)_GET_FILEEX_INFO_LEVELS:T(24,140)=eGetFileExInfoStandard:0,GetFileExMaxInfoLevel:1,;GET_FILEEX_INFO_LEVELS:t(24,141)=(24,140)_SYSTEM_INFO:T(24,142)=s36:(24,143)=u4dwOemId:(5,1),0,32;:(24,144)=s4wProcessorArchitecture:(5,11),0,16;wReserved:(5,11),16,16;;,0,32;;,0,32;dwPageSize:(5,1),32,32;lpMinimumApplicationAddress:(5,28),64,32;lpMaximumApplicationAddress:(5,28),96,32;dwActiveProcessorMask:(5,1),128,32;dwNumberOfProcessors:(5,1),160,32;dwProcessorType:(5,1),192,32;dwAllocationGranularity:(5,1),224,32;wProcessorLevel:(5,11),256,16;wProcessorRevision:(5,11),272,16;;SYSTEM_INFO:t(24,145)=(24,142)LPSYSTEM_INFO:t(24,146)=(24,147)=*(24,142)_SYSTEM_POWER_STATUS:T(24,148)=s12ACLineStatus:(5,10),0,8;BatteryFlag:(5,10),8,8;BatteryLifePercent:(5,10),16,8;Reserved1:(5,10),24,8;BatteryLifeTime:(5,1),32,32;BatteryFullLifeTime:(5,1),64,32;;SYSTEM_POWER_STATUS:t(24,149)=(24,148)LPSYSTEM_POWER_STATUS:t(24,150)=(24,151)=*(24,148)_TIME_ZONE_INFORMATION:T(24,152)=s172Bias:(6,3),0,32;StandardName:(24,153)=ar(0,1);0;31;(6,14),32,512;StandardDate:(24,101),544,128;StandardBias:(6,3),672,32;DaylightName:(24,153),704,512;DaylightDate:(24,101),1216,128;DaylightBias:(6,3),1344,32;;TIME_ZONE_INFORMATION:t(24,154)=(24,152)LPTIME_ZONE_INFORMATION:t(24,155)=(24,156)=*(24,152)_OSVERSIONINFOA:T(24,157)=s148dwOSVersionInfoSize:(5,1),0,32;dwMajorVersion:(5,1),32,32;dwMinorVersion:(5,1),64,32;dwBuildNumber:(5,1),96,32;dwPlatformId:(5,1),128,32;szCSDVersion:(24,158)=ar(0,1);0;127;(6,1),160,1024;;OSVERSIONINFOA:t(24,159)=(24,157)POSVERSIONINFOA:t(24,160)=(24,161)=*(24,157)LPOSVERSIONINFOA:t(24,162)=(24,161)_OSVERSIONINFOW:T(24,163)=s276dwOSVersionInfoSize:(5,1),0,32;dwMajorVersion:(5,1),32,32;dwMinorVersion:(5,1),64,32;dwBuildNumber:(5,1),96,32;dwPlatformId:(5,1),128,32;szCSDVersion:(24,164)=ar(0,1);0;127;(6,14),160,2048;;OSVERSIONINFOW:t(24,165)=(24,163)POSVERSIONINFOW:t(24,166)=(24,167)=*(24,163)LPOSVERSIONINFOW:t(24,168)=(24,167)_MEMORYSTATUS:T(24,169)=s32dwLength:(5,1),0,32;dwMemoryLoad:(5,1),32,32;dwTotalPhys:(5,1),64,32;dwAvailPhys:(5,1),96,32;dwTotalPageFile:(5,1),128,32;dwAvailPageFile:(5,1),160,32;dwTotalVirtual:(5,1),192,32;dwAvailVirtual:(5,1),224,32;;MEMORYSTATUS:t(24,170)=(24,169)LPMEMORYSTATUS:t(24,171)=(24,172)=*(24,169)_LDT_ENTRY:T(24,173)=s8LimitLow:(5,11),0,16;BaseLow:(5,11),16,16;HighWord:(24,174)=u4Bytes:(24,175)=s4BaseMid:(5,10),0,8;Flags1:(5,10),8,8;Flags2:(5,10),16,8;BaseHi:(5,10),24,8;;,0,32;Bits:(24,176)=s4BaseMid:(5,1),0,8;Type:(5,1),8,5;Dpl:(5,1),13,2;Pres:(5,1),15,1;LimitHi:(5,1),16,4;Sys:(5,1),20,1;Reserved_0:(5,1),21,1;Default_Big:(5,1),22,1;Granularity:(5,1),23,1;BaseHi:(5,1),24,8;;,0,32;;,32,32;;LDT_ENTRY:t(24,177)=(24,173)PLDT_ENTRY:t(24,178)=(24,179)=*(24,173)LPLDT_ENTRY:t(24,180)=(24,179)_PROCESS_HEAP_ENTRY:T(24,181)=s28lpData:(5,28),0,32;cbData:(5,1),32,32;cbOverhead:(5,10),64,8;iRegionIndex:(5,10),72,8;wFlags:(5,11),80,16;:(24,182)=u16Block:(24,183)=s16hMem:(6,54),0,32;dwReserved:(6,513),32,96;;,0,128;Region:(24,184)=s16dwCommittedSize:(5,1),0,32;dwUnCommittedSize:(5,1),32,32;lpFirstBlock:(5,29),64,32;lpLastBlock:(5,29),96,32;;,0,128;;,96,128;;PROCESS_HEAP_ENTRY:t(24,185)=(24,181)LPPROCESS_HEAP_ENTRY:t(24,186)=(24,187)=*(24,181)_OFSTRUCT:T(24,188)=s136cBytes:(5,10),0,8;fFixedDisk:(5,10),8,8;nErrCode:(5,11),16,16;Reserved1:(5,11),32,16;Reserved2:(5,11),48,16;szPathName:(24,158),64,1024;;OFSTRUCT:t(24,189)=(24,188)LPOFSTRUCT:t(24,190)=(24,191)=*(24,188)POFSTRUCT:t(24,192)=(24,191)_WIN_CERTIFICATE:T(24,193)=s12dwLength:(5,1),0,32;wRevision:(5,11),32,16;wCertificateType:(5,11),48,16;bCertificate:(6,304),64,8;;WIN_CERTIFICATE:t(24,194)=(24,193)LPWIN_CERTIFICATE:t(24,195)=(24,196)=*(24,193)LPPROGRESS_ROUTINE:t(24,197)=(24,198)=*(24,199)=f(5,1)LPFIBER_START_ROUTINE:t(24,200)=(24,201)=*(24,202)=f(0,19)ENUMRESLANGPROC:t(24,203)=(24,204)=*(24,205)=f(5,6)ENUMRESNAMEPROC:t(24,206)=(24,207)=*(24,208)=f(5,6)ENUMRESTYPEPROC:t(24,209)=(24,210)=*(24,211)=f(5,6)LPOVERLAPPED_COMPLETION_ROUTINE:t(24,212)=(24,213)=*(24,214)=f(0,19)PTOP_LEVEL_EXCEPTION_FILTER:t(24,215)=(24,216)=*(24,217)=f(6,3)LPTOP_LEVEL_EXCEPTION_FILTER:t(24,218)=(24,215)PAPCFUNC:t(24,219)=(24,220)=*(24,221)=f(0,19)PTIMERAPCROUTINE:t(24,222)=(24,223)=*(24,224)=f(0,19)STARTUPINFO:t(24,225)=(24,80)LPSTARTUPINFO:t(24,226)=(24,227)=*(24,80)WIN32_FIND_DATA:t(24,228)=(24,111)LPWIN32_FIND_DATA:t(24,229)=(24,230)=*(24,111)HW_PROFILE_INFO:t(24,231)=(24,131)LPHW_PROFILE_INFO:t(24,232)=(24,233)=*(24,131)OSVERSIONINFO:t(24,234)=(24,159)POSVERSIONINFO:t(24,235)=(24,236)=*(24,159)LPOSVERSIONINFO:t(24,237)=(24,236)/usr/include/w32api/wingdi.h_ABC:T(25,1)=s12abcA:(0,1),0,32;abcB:(5,34),32,32;abcC:(0,1),64,32;;ABC:t(25,2)=(25,1)LPABC:t(25,3)=(25,4)=*(25,1)_ABCFLOAT:T(25,5)=s12abcfA:(5,12),0,32;abcfB:(5,12),32,32;abcfC:(5,12),64,32;;ABCFLOAT:t(25,6)=(25,5)LPABCFLOAT:t(25,7)=(25,8)=*(25,5)tagBITMAP:T(25,9)=s24bmType:(6,3),0,32;bmWidth:(6,3),32,32;bmHeight:(6,3),64,32;bmWidthBytes:(6,3),96,32;bmPlanes:(5,11),128,16;bmBitsPixel:(5,11),144,16;bmBits:(5,29),160,32;;BITMAP:t(25,10)=(25,9)PBITMAP:t(25,11)=(25,12)=*(25,9)LPBITMAP:t(25,13)=(25,12)tagBITMAPCOREHEADER:T(25,14)=s12bcSize:(5,1),0,32;bcWidth:(5,11),32,16;bcHeight:(5,11),48,16;bcPlanes:(5,11),64,16;bcBitCount:(5,11),80,16;;BITMAPCOREHEADER:t(25,15)=(25,14)LPBITMAPCOREHEADER:t(25,16)=(25,17)=*(25,14)PBITMAPCOREHEADER:t(25,18)=(25,17)tagRGBTRIPLE:T(25,19)=s3rgbtBlue:(5,10),0,8;rgbtGreen:(5,10),8,8;rgbtRed:(5,10),16,8;;RGBTRIPLE:t(25,20)=(25,19)tagBITMAPFILEHEADER:T(25,21)=s14bfType:(5,11),0,16;bfSize:(5,1),16,32;bfReserved1:(5,11),48,16;bfReserved2:(5,11),64,16;bfOffBits:(5,1),80,32;;BITMAPFILEHEADER:t(25,22)=(25,21)LPBITMAPFILEHEADER:t(25,23)=(25,24)=*(25,21)PBITMAPFILEHEADER:t(25,25)=(25,24)_BITMAPCOREINFO:T(25,26)=s16bmciHeader:(25,15),0,96;bmciColors:(25,27)=ar(0,1);0;0;(25,20),96,24;;BITMAPCOREINFO:t(25,28)=(25,26)LPBITMAPCOREINFO:t(25,29)=(25,30)=*(25,26)PBITMAPCOREINFO:t(25,31)=(25,30)tagBITMAPINFOHEADER:T(25,32)=s40biSize:(5,1),0,32;biWidth:(6,3),32,32;biHeight:(6,3),64,32;biPlanes:(5,11),96,16;biBitCount:(5,11),112,16;biCompression:(5,1),128,32;biSizeImage:(5,1),160,32;biXPelsPerMeter:(6,3),192,32;biYPelsPerMeter:(6,3),224,32;biClrUsed:(5,1),256,32;biClrImportant:(5,1),288,32;;BITMAPINFOHEADER:t(25,33)=(25,32)LPBITMAPINFOHEADER:t(25,34)=(25,35)=*(25,32)PBITMAPINFOHEADER:t(25,36)=(25,35)tagRGBQUAD:T(25,37)=s4rgbBlue:(5,10),0,8;rgbGreen:(5,10),8,8;rgbRed:(5,10),16,8;rgbReserved:(5,10),24,8;;RGBQUAD:t(25,38)=(25,37)tagBITMAPINFO:T(25,39)=s44bmiHeader:(25,33),0,320;bmiColors:(25,40)=ar(0,1);0;0;(25,38),320,32;;BITMAPINFO:t(25,41)=(25,39)LPBITMAPINFO:t(25,42)=(25,43)=*(25,39)PBITMAPINFO:t(25,44)=(25,43)FXPT16DOT16:t(25,45)=(0,3)LPFXPT16DOT16:t(25,46)=(5,24)FXPT2DOT30:t(25,47)=(0,3)LPFXPT2DOT30:t(25,48)=(5,24)tagCIEXYZ:T(25,49)=s12ciexyzX:(25,47),0,32;ciexyzY:(25,47),32,32;ciexyzZ:(25,47),64,32;;CIEXYZ:t(25,50)=(25,49)LPCIEXYZ:t(25,51)=(25,52)=*(25,49)tagCIEXYZTRIPLE:T(25,53)=s36ciexyzRed:(25,50),0,96;ciexyzGreen:(25,50),96,96;ciexyzBlue:(25,50),192,96;;CIEXYZTRIPLE:t(25,54)=(25,53)LPCIEXYZTRIPLE:t(25,55)=(25,56)=*(25,53)BITMAPV4HEADER:t(25,57)=(25,58)=s108bV4Size:(5,1),0,32;bV4Width:(6,3),32,32;bV4Height:(6,3),64,32;bV4Planes:(5,11),96,16;bV4BitCount:(5,11),112,16;bV4V4Compression:(5,1),128,32;bV4SizeImage:(5,1),160,32;bV4XPelsPerMeter:(6,3),192,32;bV4YPelsPerMeter:(6,3),224,32;bV4ClrUsed:(5,1),256,32;bV4ClrImportant:(5,1),288,32;bV4RedMask:(5,1),320,32;bV4GreenMask:(5,1),352,32;bV4BlueMask:(5,1),384,32;bV4AlphaMask:(5,1),416,32;bV4CSType:(5,1),448,32;bV4Endpoints:(25,54),480,288;bV4GammaRed:(5,1),768,32;bV4GammaGreen:(5,1),800,32;bV4GammaBlue:(5,1),832,32;;LPBITMAPV4HEADER:t(25,59)=(25,60)=*(25,58)PBITMAPV4HEADER:t(25,61)=(25,60)tagFONTSIGNATURE:T(25,62)=s24fsUsb:(6,353),0,128;fsCsb:(6,324),128,64;;FONTSIGNATURE:t(25,63)=(25,62)LPFONTSIGNATURE:t(25,64)=(25,65)=*(25,62)CHARSETINFO:t(25,66)=(25,67)=s32ciCharset:(5,34),0,32;ciACP:(5,34),32,32;fs:(25,63),64,192;;LPCHARSETINFO:t(25,68)=(25,69)=*(25,67)tagCOLORADJUSTMENT:T(25,70)=s24caSize:(5,11),0,16;caFlags:(5,11),16,16;caIlluminantIndex:(5,11),32,16;caRedGamma:(5,11),48,16;caGreenGamma:(5,11),64,16;caBlueGamma:(5,11),80,16;caReferenceBlack:(5,11),96,16;caReferenceWhite:(5,11),112,16;caContrast:(6,2),128,16;caBrightness:(6,2),144,16;caColorfulness:(6,2),160,16;caRedGreenTint:(6,2),176,16;;COLORADJUSTMENT:t(25,71)=(25,70)LPCOLORADJUSTMENT:t(25,72)=(25,73)=*(25,70)_devicemodeA:T(25,74)=s148dmDeviceName:(25,75)=ar(0,1);0;31;(5,10),0,256;dmSpecVersion:(5,11),256,16;dmDriverVersion:(5,11),272,16;dmSize:(5,11),288,16;dmDriverExtra:(5,11),304,16;dmFields:(5,1),320,32;dmOrientation:(0,8),352,16;dmPaperSize:(0,8),368,16;dmPaperLength:(0,8),384,16;dmPaperWidth:(0,8),400,16;dmScale:(0,8),416,16;dmCopies:(0,8),432,16;dmDefaultSource:(0,8),448,16;dmPrintQuality:(0,8),464,16;dmColor:(0,8),480,16;dmDuplex:(0,8),496,16;dmYResolution:(0,8),512,16;dmTTOption:(0,8),528,16;dmCollate:(0,8),544,16;dmFormName:(25,75),560,256;dmLogPixels:(5,11),816,16;dmBitsPerPel:(5,1),832,32;dmPelsWidth:(5,1),864,32;dmPelsHeight:(5,1),896,32;dmDisplayFlags:(5,1),928,32;dmDisplayFrequency:(5,1),960,32;dmICMMethod:(5,1),992,32;dmICMIntent:(5,1),1024,32;dmMediaType:(5,1),1056,32;dmDitherType:(5,1),1088,32;dmICCManufacturer:(5,1),1120,32;dmICCModel:(5,1),1152,32;;DEVMODEA:t(25,76)=(25,74)LPDEVMODEA:t(25,77)=(25,78)=*(25,74)PDEVMODEA:t(25,79)=(25,78)_devicemodeW:T(25,80)=s212dmDeviceName:(24,153),0,512;dmSpecVersion:(5,11),512,16;dmDriverVersion:(5,11),528,16;dmSize:(5,11),544,16;dmDriverExtra:(5,11),560,16;dmFields:(5,1),576,32;dmOrientation:(0,8),608,16;dmPaperSize:(0,8),624,16;dmPaperLength:(0,8),640,16;dmPaperWidth:(0,8),656,16;dmScale:(0,8),672,16;dmCopies:(0,8),688,16;dmDefaultSource:(0,8),704,16;dmPrintQuality:(0,8),720,16;dmColor:(0,8),736,16;dmDuplex:(0,8),752,16;dmYResolution:(0,8),768,16;dmTTOption:(0,8),784,16;dmCollate:(0,8),800,16;dmFormName:(24,153),816,512;dmLogPixels:(5,11),1328,16;dmBitsPerPel:(5,1),1344,32;dmPelsWidth:(5,1),1376,32;dmPelsHeight:(5,1),1408,32;dmDisplayFlags:(5,1),1440,32;dmDisplayFrequency:(5,1),1472,32;dmICMMethod:(5,1),1504,32;dmICMIntent:(5,1),1536,32;dmMediaType:(5,1),1568,32;dmDitherType:(5,1),1600,32;dmICCManufacturer:(5,1),1632,32;dmICCModel:(5,1),1664,32;;DEVMODEW:t(25,81)=(25,80)LPDEVMODEW:t(25,82)=(25,83)=*(25,80)PDEVMODEW:t(25,84)=(25,83)tagDIBSECTION:T(25,85)=s84dsBm:(25,10),0,192;dsBmih:(25,33),192,320;dsBitfields:(6,513),512,96;dshSection:(6,54),608,32;dsOffset:(5,1),640,32;;DIBSECTION:t(25,86)=(25,85)DOCINFO:t(25,87)=(25,88)=s20cbSize:(0,1),0,32;lpszDocName:(6,48),32,32;lpszOutput:(6,48),64,32;lpszDatatype:(6,48),96,32;fwType:(5,1),128,32;;LPDOCINFO:t(25,89)=(25,90)=*(25,88)tagEMR:T(25,91)=s8iType:(5,1),0,32;nSize:(5,1),32,32;;EMR:t(25,92)=(25,91)PEMR:t(25,93)=(25,94)=*(25,91)tagEMRANGLEARC:T(25,95)=s28emr:(25,92),0,64;ptlCenter:(5,153),64,64;nRadius:(5,1),128,32;eStartAngle:(5,12),160,32;eSweepAngle:(5,12),192,32;;EMRANGLEARC:t(25,96)=(25,95)PEMRANGLEARC:t(25,97)=(25,98)=*(25,95)tagEMRARC:T(25,99)=s40emr:(25,92),0,64;rclBox:(5,145),64,128;ptlStart:(5,153),192,64;ptlEnd:(5,153),256,64;;EMRARC:t(25,100)=(25,99)PEMRARC:t(25,101)=(25,102)=*(25,99)EMRARCTO:t(25,103)=(25,99)PEMRARCTO:t(25,104)=(25,102)EMRCHORD:t(25,105)=(25,99)PEMRCHORD:t(25,106)=(25,102)EMRPIE:t(25,107)=(25,99)PEMRPIE:t(25,108)=(25,102)_XFORM:T(25,109)=s24eM11:(5,12),0,32;eM12:(5,12),32,32;eM21:(5,12),64,32;eM22:(5,12),96,32;eDx:(5,12),128,32;eDy:(5,12),160,32;;XFORM:t(25,110)=(25,109)LPXFORM:t(25,111)=(25,112)=*(25,109)tagEMRBITBLT:T(25,113)=s96emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;cxDest:(6,3),256,32;cyDest:(6,3),288,32;dwRop:(5,1),320,32;xSrc:(6,3),352,32;ySrc:(6,3),384,32;xformSrc:(25,110),416,192;crBkColorSrc:(5,131),608,32;iUsageSrc:(5,1),640,32;offBmiSrc:(5,1),672,32;offBitsSrc:(5,1),704,32;cbBitsSrc:(5,1),736,32;;EMRBITBLT:t(25,114)=(25,113)PEMRBITBLT:t(25,115)=(25,116)=*(25,113)tagLOGBRUSH:T(25,117)=s12lbStyle:(5,34),0,32;lbColor:(5,131),32,32;lbHatch:(6,3),64,32;;LOGBRUSH:t(25,118)=(25,117)LPLOGBRUSH:t(25,119)=(25,120)=*(25,117)PATTERN:t(25,121)=(25,118)PPATTERN:t(25,122)=(25,123)=*(25,118)LPPATTERN:t(25,124)=(25,123)tagEMRCREATEBRUSHINDIRECT:T(25,125)=s24emr:(25,92),0,64;ihBrush:(5,1),64,32;lb:(25,118),96,96;;EMRCREATEBRUSHINDIRECT:t(25,126)=(25,125)PEMRCREATEBRUSHINDIRECT:t(25,127)=(25,128)=*(25,125)LCSCSTYPE:t(25,129)=(6,3)LCSGAMUTMATCH:t(25,130)=(6,3)tagLOGCOLORSPACEA:T(25,131)=s328lcsSignature:(5,1),0,32;lcsVersion:(5,1),32,32;lcsSize:(5,1),64,32;lcsCSType:(25,129),96,32;lcsIntent:(25,130),128,32;lcsEndpoints:(25,54),160,288;lcsGammaRed:(5,1),448,32;lcsGammaGreen:(5,1),480,32;lcsGammaBlue:(5,1),512,32;lcsFilename:(24,109),544,2080;;LOGCOLORSPACEA:t(25,132)=(25,131)LPLOGCOLORSPACEA:t(25,133)=(25,134)=*(25,131)tagLOGCOLORSPACEW:T(25,135)=s588lcsSignature:(5,1),0,32;lcsVersion:(5,1),32,32;lcsSize:(5,1),64,32;lcsCSType:(25,129),96,32;lcsIntent:(25,130),128,32;lcsEndpoints:(25,54),160,288;lcsGammaRed:(5,1),448,32;lcsGammaGreen:(5,1),480,32;lcsGammaBlue:(5,1),512,32;lcsFilename:(24,115),544,4160;;LOGCOLORSPACEW:t(25,136)=(25,135)LPLOGCOLORSPACEW:t(25,137)=(25,138)=*(25,135)tagEMRCREATECOLORSPACE:T(25,139)=s600emr:(25,92),0,64;ihCS:(5,1),64,32;lcs:(25,136),96,4704;;EMRCREATECOLORSPACE:t(25,140)=(25,139)PEMRCREATECOLORSPACE:t(25,141)=(25,142)=*(25,139)tagEMRCREATEDIBPATTERNBRUSHPT:T(25,143)=s32emr:(25,92),0,64;ihBrush:(5,1),64,32;iUsage:(5,1),96,32;offBmi:(5,1),128,32;cbBmi:(5,1),160,32;offBits:(5,1),192,32;cbBits:(5,1),224,32;;EMRCREATEDIBPATTERNBRUSHPT:t(25,144)=(25,143)PEMRCREATEDIBPATTERNBRUSHPT:t(25,145)=(25,146)=*(25,143)tagEMRCREATEMONOBRUSH:T(25,147)=s32emr:(25,92),0,64;ihBrush:(5,1),64,32;iUsage:(5,1),96,32;offBmi:(5,1),128,32;cbBmi:(5,1),160,32;offBits:(5,1),192,32;cbBits:(5,1),224,32;;EMRCREATEMONOBRUSH:t(25,148)=(25,147)PEMRCREATEMONOBRUSH:t(25,149)=(25,150)=*(25,147)tagPALETTEENTRY:T(25,151)=s4peRed:(5,10),0,8;peGreen:(5,10),8,8;peBlue:(5,10),16,8;peFlags:(5,10),24,8;;PALETTEENTRY:t(25,152)=(25,151)LPPALETTEENTRY:t(25,153)=(25,154)=*(25,151)PPALETTEENTRY:t(25,155)=(25,154)tagLOGPALETTE:T(25,156)=s8palVersion:(5,11),0,16;palNumEntries:(5,11),16,16;palPalEntry:(25,157)=ar(0,1);0;0;(25,152),32,32;;LOGPALETTE:t(25,158)=(25,156)NPLOGPALETTE:t(25,159)=(25,160)=*(25,156)PLOGPALETTE:t(25,161)=(25,160)LPLOGPALETTE:t(25,162)=(25,160)tagEMRCREATEPALETTE:T(25,163)=s20emr:(25,92),0,64;ihPal:(5,1),64,32;lgpl:(25,158),96,64;;EMRCREATEPALETTE:t(25,164)=(25,163)PEMRCREATEPALETTE:t(25,165)=(25,166)=*(25,163)tagLOGPEN:T(25,167)=s16lopnStyle:(5,34),0,32;lopnWidth:(5,152),32,64;lopnColor:(5,131),96,32;;LOGPEN:t(25,168)=(25,167)LPLOGPEN:t(25,169)=(25,170)=*(25,167)tagEMRCREATEPEN:T(25,171)=s28emr:(25,92),0,64;ihPen:(5,1),64,32;lopn:(25,168),96,128;;EMRCREATEPEN:t(25,172)=(25,171)PEMRCREATEPEN:t(25,173)=(25,174)=*(25,171)tagEMRELLIPSE:T(25,175)=s24emr:(25,92),0,64;rclBox:(5,145),64,128;;EMRELLIPSE:t(25,176)=(25,175)PEMRELLIPSE:t(25,177)=(25,178)=*(25,175)EMRRECTANGLE:t(25,179)=(25,175)PEMRRECTANGLE:t(25,180)=(25,178)tagEMREOF:T(25,181)=s20emr:(25,92),0,64;nPalEntries:(5,1),64,32;offPalEntries:(5,1),96,32;nSizeLast:(5,1),128,32;;EMREOF:t(25,182)=(25,181)PEMREOF:t(25,183)=(25,184)=*(25,181)tagEMREXCLUDECLIPRECT:T(25,185)=s24emr:(25,92),0,64;rclClip:(5,145),64,128;;EMREXCLUDECLIPRECT:t(25,186)=(25,185)PEMREXCLUDECLIPRECT:t(25,187)=(25,188)=*(25,185)EMRINTERSECTCLIPRECT:t(25,189)=(25,185)PEMRINTERSECTCLIPRECT:t(25,190)=(25,188)tagPANOSE:T(25,191)=s10bFamilyType:(5,10),0,8;bSerifStyle:(5,10),8,8;bWeight:(5,10),16,8;bProportion:(5,10),24,8;bContrast:(5,10),32,8;bStrokeVariation:(5,10),40,8;bArmStyle:(5,10),48,8;bLetterform:(5,10),56,8;bMidline:(5,10),64,8;bXHeight:(5,10),72,8;;PANOSE:t(25,192)=(25,191)tagLOGFONTA:T(25,193)=s60lfHeight:(6,3),0,32;lfWidth:(6,3),32,32;lfEscapement:(6,3),64,32;lfOrientation:(6,3),96,32;lfWeight:(6,3),128,32;lfItalic:(5,10),160,8;lfUnderline:(5,10),168,8;lfStrikeOut:(5,10),176,8;lfCharSet:(5,10),184,8;lfOutPrecision:(5,10),192,8;lfClipPrecision:(5,10),200,8;lfQuality:(5,10),208,8;lfPitchAndFamily:(5,10),216,8;lfFaceName:(25,194)=ar(0,1);0;31;(6,1),224,256;;LOGFONTA:t(25,195)=(25,193)PLOGFONTA:t(25,196)=(25,197)=*(25,193)LPLOGFONTA:t(25,198)=(25,197)tagLOGFONTW:T(25,199)=s92lfHeight:(6,3),0,32;lfWidth:(6,3),32,32;lfEscapement:(6,3),64,32;lfOrientation:(6,3),96,32;lfWeight:(6,3),128,32;lfItalic:(5,10),160,8;lfUnderline:(5,10),168,8;lfStrikeOut:(5,10),176,8;lfCharSet:(5,10),184,8;lfOutPrecision:(5,10),192,8;lfClipPrecision:(5,10),200,8;lfQuality:(5,10),208,8;lfPitchAndFamily:(5,10),216,8;lfFaceName:(24,153),224,512;;LOGFONTW:t(25,200)=(25,199)PLOGFONTW:t(25,201)=(25,202)=*(25,199)LPLOGFONTW:t(25,203)=(25,202)tagEXTLOGFONTA:T(25,204)=s192elfLogFont:(25,195),0,480;elfFullName:(25,205)=ar(0,1);0;63;(5,10),480,512;elfStyle:(25,75),992,256;elfVersion:(5,1),1248,32;elfStyleSize:(5,1),1280,32;elfMatch:(5,1),1312,32;elfReserved:(5,1),1344,32;elfVendorId:(25,206)=ar(0,1);0;3;(5,10),1376,32;elfCulture:(5,1),1408,32;elfPanose:(25,192),1440,80;;EXTLOGFONTA:t(25,207)=(25,204)PEXTLOGFONTA:t(25,208)=(25,209)=*(25,204)LPEXTLOGFONTA:t(25,210)=(25,209)tagEXTLOGFONTW:T(25,211)=s320elfLogFont:(25,200),0,736;elfFullName:(25,212)=ar(0,1);0;63;(6,14),736,1024;elfStyle:(24,153),1760,512;elfVersion:(5,1),2272,32;elfStyleSize:(5,1),2304,32;elfMatch:(5,1),2336,32;elfReserved:(5,1),2368,32;elfVendorId:(25,206),2400,32;elfCulture:(5,1),2432,32;elfPanose:(25,192),2464,80;;EXTLOGFONTW:t(25,213)=(25,211)PEXTLOGFONTW:t(25,214)=(25,215)=*(25,211)LPEXTLOGFONTW:t(25,216)=(25,215)tagEMREXTCREATEFONTINDIRECTW:T(25,217)=s332emr:(25,92),0,64;ihFont:(5,1),64,32;elfw:(25,213),96,2560;;EMREXTCREATEFONTINDIRECTW:t(25,218)=(25,217)PEMREXTCREATEFONTINDIRECTW:t(25,219)=(25,220)=*(25,217)tagEXTLOGPEN:T(25,221)=s28elpPenStyle:(5,34),0,32;elpWidth:(5,34),32,32;elpBrushStyle:(5,34),64,32;elpColor:(5,131),96,32;elpHatch:(6,3),128,32;elpNumEntries:(5,1),160,32;elpStyleEntry:(6,188),192,32;;EXTLOGPEN:t(25,222)=(25,221)PEXTLOGPEN:t(25,223)=(25,224)=*(25,221)LPEXTLOGPEN:t(25,225)=(25,224)tagEMREXTCREATEPEN:T(25,226)=s56emr:(25,92),0,64;ihPen:(5,1),64,32;offBmi:(5,1),96,32;cbBmi:(5,1),128,32;offBits:(5,1),160,32;cbBits:(5,1),192,32;elp:(25,222),224,224;;EMREXTCREATEPEN:t(25,227)=(25,226)PEMREXTCREATEPEN:t(25,228)=(25,229)=*(25,226)tagEMREXTFLOODFILL:T(25,230)=s24emr:(25,92),0,64;ptlStart:(5,153),64,64;crColor:(5,131),128,32;iMode:(5,1),160,32;;EMREXTFLOODFILL:t(25,231)=(25,230)PEMREXTFLOODFILL:t(25,232)=(25,233)=*(25,230)tagEMREXTSELECTCLIPRGN:T(25,234)=s20emr:(25,92),0,64;cbRgnData:(5,1),64,32;iMode:(5,1),96,32;RgnData:(6,304),128,8;;EMREXTSELECTCLIPRGN:t(25,235)=(25,234)PEMREXTSELECTCLIPRGN:t(25,236)=(25,237)=*(25,234)tagEMRTEXT:T(25,238)=s40ptlReference:(5,153),0,64;nChars:(5,1),64,32;offString:(5,1),96,32;fOptions:(5,1),128,32;rcl:(5,145),160,128;offDx:(5,1),288,32;;EMRTEXT:t(25,239)=(25,238)PEMRTEXT:t(25,240)=(25,241)=*(25,238)tagEMREXTTEXTOUTA:T(25,242)=s76emr:(25,92),0,64;rclBounds:(5,145),64,128;iGraphicsMode:(5,1),192,32;exScale:(5,12),224,32;eyScale:(5,12),256,32;emrtext:(25,239),288,320;;EMREXTTEXTOUTA:t(25,243)=(25,242)PEMREXTTEXTOUTA:t(25,244)=(25,245)=*(25,242)EMREXTTEXTOUTW:t(25,246)=(25,242)PEMREXTTEXTOUTW:t(25,247)=(25,245)tagEMRFILLPATH:T(25,248)=s24emr:(25,92),0,64;rclBounds:(5,145),64,128;;EMRFILLPATH:t(25,249)=(25,248)PEMRFILLPATH:t(25,250)=(25,251)=*(25,248)EMRSTROKEANDFILLPATH:t(25,252)=(25,248)PEMRSTROKEANDFILLPATH:t(25,253)=(25,251)EMRSTROKEPATH:t(25,254)=(25,248)PEMRSTROKEPATH:t(25,255)=(25,251)tagEMRFILLRGN:T(25,256)=s36emr:(25,92),0,64;rclBounds:(5,145),64,128;cbRgnData:(5,1),192,32;ihBrush:(5,1),224,32;RgnData:(6,304),256,8;;EMRFILLRGN:t(25,257)=(25,256)PEMRFILLRGN:t(25,258)=(25,259)=*(25,256)tagEMRFORMAT:T(25,260)=s16dSignature:(5,1),0,32;nVersion:(5,1),32,32;cbData:(5,1),64,32;offData:(5,1),96,32;;EMRFORMAT:t(25,261)=(25,260)tagEMRFRAMERGN:T(25,262)=s44emr:(25,92),0,64;rclBounds:(5,145),64,128;cbRgnData:(5,1),192,32;ihBrush:(5,1),224,32;szlStroke:(5,161),256,64;RgnData:(6,304),320,8;;EMRFRAMERGN:t(25,263)=(25,262)PEMRFRAMERGN:t(25,264)=(25,265)=*(25,262)tagEMRGDICOMMENT:T(25,266)=s16emr:(25,92),0,64;cbData:(5,1),64,32;Data:(6,304),96,8;;EMRGDICOMMENT:t(25,267)=(25,266)PEMRGDICOMMENT:t(25,268)=(25,269)=*(25,266)tagEMRINVERTRGN:T(25,270)=s32emr:(25,92),0,64;rclBounds:(5,145),64,128;cbRgnData:(5,1),192,32;RgnData:(6,304),224,8;;EMRINVERTRGN:t(25,271)=(25,270)PEMRINVERTRGN:t(25,272)=(25,273)=*(25,270)EMRPAINTRGN:t(25,274)=(25,270)PEMRPAINTRGN:t(25,275)=(25,273)tagEMRLINETO:T(25,276)=s16emr:(25,92),0,64;ptl:(5,153),64,64;;EMRLINETO:t(25,277)=(25,276)PEMRLINETO:t(25,278)=(25,279)=*(25,276)EMRMOVETOEX:t(25,280)=(25,276)PEMRMOVETOEX:t(25,281)=(25,279)tagEMRMASKBLT:T(25,282)=s128emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;cxDest:(6,3),256,32;cyDest:(6,3),288,32;dwRop:(5,1),320,32;xSrc:(6,3),352,32;ySrc:(6,3),384,32;xformSrc:(25,110),416,192;crBkColorSrc:(5,131),608,32;iUsageSrc:(5,1),640,32;offBmiSrc:(5,1),672,32;cbBmiSrc:(5,1),704,32;offBitsSrc:(5,1),736,32;cbBitsSrc:(5,1),768,32;xMask:(6,3),800,32;yMask:(6,3),832,32;iUsageMask:(5,1),864,32;offBmiMask:(5,1),896,32;cbBmiMask:(5,1),928,32;offBitsMask:(5,1),960,32;cbBitsMask:(5,1),992,32;;EMRMASKBLT:t(25,283)=(25,282)PEMRMASKBLT:t(25,284)=(25,285)=*(25,282)tagEMRMODIFYWORLDTRANSFORM:T(25,286)=s36emr:(25,92),0,64;xform:(25,110),64,192;iMode:(5,1),256,32;;EMRMODIFYWORLDTRANSFORM:t(25,287)=(25,286)PEMRMODIFYWORLDTRANSFORM:t(25,288)=(25,289)=*(25,286)tagEMROFFSETCLIPRGN:T(25,290)=s16emr:(25,92),0,64;ptlOffset:(5,153),64,64;;EMROFFSETCLIPRGN:t(25,291)=(25,290)PEMROFFSETCLIPRGN:t(25,292)=(25,293)=*(25,290)tagEMRPLGBLT:T(25,294)=s140emr:(25,92),0,64;rclBounds:(5,145),64,128;aptlDest:(25,295)=ar(0,1);0;2;(5,153),192,192;xSrc:(6,3),384,32;ySrc:(6,3),416,32;cxSrc:(6,3),448,32;cySrc:(6,3),480,32;xformSrc:(25,110),512,192;crBkColorSrc:(5,131),704,32;iUsageSrc:(5,1),736,32;offBmiSrc:(5,1),768,32;cbBmiSrc:(5,1),800,32;offBitsSrc:(5,1),832,32;cbBitsSrc:(5,1),864,32;xMask:(6,3),896,32;yMask:(6,3),928,32;iUsageMask:(5,1),960,32;offBmiMask:(5,1),992,32;cbBmiMask:(5,1),1024,32;offBitsMask:(5,1),1056,32;cbBitsMask:(5,1),1088,32;;EMRPLGBLT:t(25,296)=(25,294)PEMRPLGBLT:t(25,297)=(25,298)=*(25,294)tagEMRPOLYDRAW:T(25,299)=s40emr:(25,92),0,64;rclBounds:(5,145),64,128;cptl:(5,1),192,32;aptl:(25,300)=ar(0,1);0;0;(5,153),224,64;abTypes:(6,304),288,8;;EMRPOLYDRAW:t(25,301)=(25,299)PEMRPOLYDRAW:t(25,302)=(25,303)=*(25,299)tagEMRPOLYDRAW16:T(25,304)=s36emr:(25,92),0,64;rclBounds:(5,145),64,128;cpts:(5,1),192,32;apts:(25,305)=ar(0,1);0;0;(5,168),224,32;abTypes:(6,304),256,8;;EMRPOLYDRAW16:t(25,306)=(25,304)PEMRPOLYDRAW16:t(25,307)=(25,308)=*(25,304)tagEMRPOLYLINE:T(25,309)=s36emr:(25,92),0,64;rclBounds:(5,145),64,128;cptl:(5,1),192,32;aptl:(25,300),224,64;;EMRPOLYLINE:t(25,310)=(25,309)PEMRPOLYLINE:t(25,311)=(25,312)=*(25,309)EMRPOLYBEZIER:t(25,313)=(25,309)PEMRPOLYBEZIER:t(25,314)=(25,312)EMRPOLYGON:t(25,315)=(25,309)PEMRPOLYGON:t(25,316)=(25,312)EMRPOLYBEZIERTO:t(25,317)=(25,309)PEMRPOLYBEZIERTO:t(25,318)=(25,312)EMRPOLYLINETO:t(25,319)=(25,309)PEMRPOLYLINETO:t(25,320)=(25,312)tagEMRPOLYLINE16:T(25,321)=s36emr:(25,92),0,64;rclBounds:(5,145),64,128;cpts:(5,1),192,32;apts:(25,300),224,64;;EMRPOLYLINE16:t(25,322)=(25,321)PEMRPOLYLINE16:t(25,323)=(25,324)=*(25,321)EMRPOLYBEZIER16:t(25,325)=(25,321)PEMRPOLYBEZIER16:t(25,326)=(25,324)EMRPOLYGON16:t(25,327)=(25,321)PEMRPOLYGON16:t(25,328)=(25,324)EMRPOLYBEZIERTO16:t(25,329)=(25,321)PEMRPOLYBEZIERTO16:t(25,330)=(25,324)EMRPOLYLINETO16:t(25,331)=(25,321)PEMRPOLYLINETO16:t(25,332)=(25,324)tagEMRPOLYPOLYLINE:T(25,333)=s44emr:(25,92),0,64;rclBounds:(5,145),64,128;nPolys:(5,1),192,32;cptl:(5,1),224,32;aPolyCounts:(6,188),256,32;aptl:(25,300),288,64;;EMRPOLYPOLYLINE:t(25,334)=(25,333)PEMRPOLYPOLYLINE:t(25,335)=(25,336)=*(25,333)EMRPOLYPOLYGON:t(25,337)=(25,333)PEMRPOLYPOLYGON:t(25,338)=(25,336)tagEMRPOLYPOLYLINE16:T(25,339)=s40emr:(25,92),0,64;rclBounds:(5,145),64,128;nPolys:(5,1),192,32;cpts:(5,1),224,32;aPolyCounts:(6,188),256,32;apts:(25,305),288,32;;EMRPOLYPOLYLINE16:t(25,340)=(25,339)PEMRPOLYPOLYLINE16:t(25,341)=(25,342)=*(25,339)EMRPOLYPOLYGON16:t(25,343)=(25,339)PEMRPOLYPOLYGON16:t(25,344)=(25,342)tagEMRPOLYTEXTOUTA:T(25,345)=s80emr:(25,92),0,64;rclBounds:(5,145),64,128;iGraphicsMode:(5,1),192,32;exScale:(5,12),224,32;eyScale:(5,12),256,32;cStrings:(6,3),288,32;aemrtext:(25,346)=ar(0,1);0;0;(25,239),320,320;;EMRPOLYTEXTOUTA:t(25,347)=(25,345)PEMRPOLYTEXTOUTA:t(25,348)=(25,349)=*(25,345)EMRPOLYTEXTOUTW:t(25,350)=(25,345)PEMRPOLYTEXTOUTW:t(25,351)=(25,349)tagEMRRESIZEPALETTE:T(25,352)=s16emr:(25,92),0,64;ihPal:(5,1),64,32;cEntries:(5,1),96,32;;EMRRESIZEPALETTE:t(25,353)=(25,352)PEMRRESIZEPALETTE:t(25,354)=(25,355)=*(25,352)tagEMRRESTOREDC:T(25,356)=s12emr:(25,92),0,64;iRelative:(6,3),64,32;;EMRRESTOREDC:t(25,357)=(25,356)PEMRRESTOREDC:t(25,358)=(25,359)=*(25,356)tagEMRROUNDRECT:T(25,360)=s32emr:(25,92),0,64;rclBox:(5,145),64,128;szlCorner:(5,161),192,64;;EMRROUNDRECT:t(25,361)=(25,360)PEMRROUNDRECT:t(25,362)=(25,363)=*(25,360)tagEMRSCALEVIEWPORTEXTEX:T(25,364)=s24emr:(25,92),0,64;xNum:(6,3),64,32;xDenom:(6,3),96,32;yNum:(6,3),128,32;yDenom:(6,3),160,32;;EMRSCALEVIEWPORTEXTEX:t(25,365)=(25,364)PEMRSCALEVIEWPORTEXTEX:t(25,366)=(25,367)=*(25,364)EMRSCALEWINDOWEXTEX:t(25,368)=(25,364)PEMRSCALEWINDOWEXTEX:t(25,369)=(25,367)tagEMRSELECTCOLORSPACE:T(25,370)=s12emr:(25,92),0,64;ihCS:(5,1),64,32;;EMRSELECTCOLORSPACE:t(25,371)=(25,370)PEMRSELECTCOLORSPACE:t(25,372)=(25,373)=*(25,370)EMRDELETECOLORSPACE:t(25,374)=(25,370)PEMRDELETECOLORSPACE:t(25,375)=(25,373)tagEMRSELECTOBJECT:T(25,376)=s12emr:(25,92),0,64;ihObject:(5,1),64,32;;EMRSELECTOBJECT:t(25,377)=(25,376)PEMRSELECTOBJECT:t(25,378)=(25,379)=*(25,376)EMRDELETEOBJECT:t(25,380)=(25,376)PEMRDELETEOBJECT:t(25,381)=(25,379)tagEMRSELECTPALETTE:T(25,382)=s12emr:(25,92),0,64;ihPal:(5,1),64,32;;EMRSELECTPALETTE:t(25,383)=(25,382)PEMRSELECTPALETTE:t(25,384)=(25,385)=*(25,382)tagEMRSETARCDIRECTION:T(25,386)=s12emr:(25,92),0,64;iArcDirection:(5,1),64,32;;EMRSETARCDIRECTION:t(25,387)=(25,386)PEMRSETARCDIRECTION:t(25,388)=(25,389)=*(25,386)tagEMRSETTEXTCOLOR:T(25,390)=s12emr:(25,92),0,64;crColor:(5,131),64,32;;EMRSETBKCOLOR:t(25,391)=(25,390)PEMRSETBKCOLOR:t(25,392)=(25,393)=*(25,390)EMRSETTEXTCOLOR:t(25,394)=(25,390)PEMRSETTEXTCOLOR:t(25,395)=(25,393)tagEMRSETCOLORADJUSTMENT:T(25,396)=s32emr:(25,92),0,64;ColorAdjustment:(25,71),64,192;;EMRSETCOLORADJUSTMENT:t(25,397)=(25,396)PEMRSETCOLORADJUSTMENT:t(25,398)=(25,399)=*(25,396)tagEMRSETDIBITSTODEVICE:T(25,400)=s76emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;xSrc:(6,3),256,32;ySrc:(6,3),288,32;cxSrc:(6,3),320,32;cySrc:(6,3),352,32;offBmiSrc:(5,1),384,32;cbBmiSrc:(5,1),416,32;offBitsSrc:(5,1),448,32;cbBitsSrc:(5,1),480,32;iUsageSrc:(5,1),512,32;iStartScan:(5,1),544,32;cScans:(5,1),576,32;;EMRSETDIBITSTODEVICE:t(25,401)=(25,400)PEMRSETDIBITSTODEVICE:t(25,402)=(25,403)=*(25,400)tagEMRSETMAPPERFLAGS:T(25,404)=s12emr:(25,92),0,64;dwFlags:(5,1),64,32;;EMRSETMAPPERFLAGS:t(25,405)=(25,404)PEMRSETMAPPERFLAGS:t(25,406)=(25,407)=*(25,404)tagEMRSETMITERLIMIT:T(25,408)=s12emr:(25,92),0,64;eMiterLimit:(5,12),64,32;;EMRSETMITERLIMIT:t(25,409)=(25,408)PEMRSETMITERLIMIT:t(25,410)=(25,411)=*(25,408)tagEMRSETPALETTEENTRIES:T(25,412)=s24emr:(25,92),0,64;ihPal:(5,1),64,32;iStart:(5,1),96,32;cEntries:(5,1),128,32;aPalEntries:(25,157),160,32;;EMRSETPALETTEENTRIES:t(25,413)=(25,412)PEMRSETPALETTEENTRIES:t(25,414)=(25,415)=*(25,412)tagEMRSETPIXELV:T(25,416)=s20emr:(25,92),0,64;ptlPixel:(5,153),64,64;crColor:(5,131),128,32;;EMRSETPIXELV:t(25,417)=(25,416)PEMRSETPIXELV:t(25,418)=(25,419)=*(25,416)tagEMRSETVIEWPORTEXTEX:T(25,420)=s16emr:(25,92),0,64;szlExtent:(5,161),64,64;;EMRSETVIEWPORTEXTEX:t(25,421)=(25,420)PEMRSETVIEWPORTEXTEX:t(25,422)=(25,423)=*(25,420)EMRSETWINDOWEXTEX:t(25,424)=(25,420)PEMRSETWINDOWEXTEX:t(25,425)=(25,423)tagEMRSETVIEWPORTORGEX:T(25,426)=s16emr:(25,92),0,64;ptlOrigin:(5,153),64,64;;EMRSETVIEWPORTORGEX:t(25,427)=(25,426)PEMRSETVIEWPORTORGEX:t(25,428)=(25,429)=*(25,426)EMRSETWINDOWORGEX:t(25,430)=(25,426)PEMRSETWINDOWORGEX:t(25,431)=(25,429)EMRSETBRUSHORGEX:t(25,432)=(25,426)PEMRSETBRUSHORGEX:t(25,433)=(25,429)tagEMRSETWORLDTRANSFORM:T(25,434)=s32emr:(25,92),0,64;xform:(25,110),64,192;;EMRSETWORLDTRANSFORM:t(25,435)=(25,434)PEMRSETWORLDTRANSFORM:t(25,436)=(25,437)=*(25,434)tagEMRSTRETCHBLT:T(25,438)=s108emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;cxDest:(6,3),256,32;cyDest:(6,3),288,32;dwRop:(5,1),320,32;xSrc:(6,3),352,32;ySrc:(6,3),384,32;xformSrc:(25,110),416,192;crBkColorSrc:(5,131),608,32;iUsageSrc:(5,1),640,32;offBmiSrc:(5,1),672,32;cbBmiSrc:(5,1),704,32;offBitsSrc:(5,1),736,32;cbBitsSrc:(5,1),768,32;cxSrc:(6,3),800,32;cySrc:(6,3),832,32;;EMRSTRETCHBLT:t(25,439)=(25,438)PEMRSTRETCHBLT:t(25,440)=(25,441)=*(25,438)tagEMRSTRETCHDIBITS:T(25,442)=s80emr:(25,92),0,64;rclBounds:(5,145),64,128;xDest:(6,3),192,32;yDest:(6,3),224,32;xSrc:(6,3),256,32;ySrc:(6,3),288,32;cxSrc:(6,3),320,32;cySrc:(6,3),352,32;offBmiSrc:(5,1),384,32;cbBmiSrc:(5,1),416,32;offBitsSrc:(5,1),448,32;cbBitsSrc:(5,1),480,32;iUsageSrc:(5,1),512,32;dwRop:(5,1),544,32;cxDest:(6,3),576,32;cyDest:(6,3),608,32;;EMRSTRETCHDIBITS:t(25,443)=(25,442)PEMRSTRETCHDIBITS:t(25,444)=(25,445)=*(25,442)tagABORTPATH:T(25,446)=s8emr:(25,92),0,64;;EMRABORTPATH:t(25,447)=(25,446)PEMRABORTPATH:t(25,448)=(25,449)=*(25,446)EMRBEGINPATH:t(25,450)=(25,446)PEMRBEGINPATH:t(25,451)=(25,449)EMRENDPATH:t(25,452)=(25,446)PEMRENDPATH:t(25,453)=(25,449)EMRCLOSEFIGURE:t(25,454)=(25,446)PEMRCLOSEFIGURE:t(25,455)=(25,449)EMRFLATTENPATH:t(25,456)=(25,446)PEMRFLATTENPATH:t(25,457)=(25,449)EMRWIDENPATH:t(25,458)=(25,446)PEMRWIDENPATH:t(25,459)=(25,449)EMRSETMETARGN:t(25,460)=(25,446)PEMRSETMETARGN:t(25,461)=(25,449)EMRSAVEDC:t(25,462)=(25,446)PEMRSAVEDC:t(25,463)=(25,449)EMRREALIZEPALETTE:t(25,464)=(25,446)PEMRREALIZEPALETTE:t(25,465)=(25,449)tagEMRSELECTCLIPPATH:T(25,466)=s12emr:(25,92),0,64;iMode:(5,1),64,32;;EMRSELECTCLIPPATH:t(25,467)=(25,466)PEMRSELECTCLIPPATH:t(25,468)=(25,469)=*(25,466)EMRSETBKMODE:t(25,470)=(25,466)PEMRSETBKMODE:t(25,471)=(25,469)EMRSETMAPMODE:t(25,472)=(25,466)PEMRSETMAPMODE:t(25,473)=(25,469)EMRSETPOLYFILLMODE:t(25,474)=(25,466)PEMRSETPOLYFILLMODE:t(25,475)=(25,469)EMRSETROP2:t(25,476)=(25,466)PEMRSETROP2:t(25,477)=(25,469)EMRSETSTRETCHBLTMODE:t(25,478)=(25,466)PEMRSETSTRETCHBLTMODE:t(25,479)=(25,469)EMRSETTEXTALIGN:t(25,480)=(25,466)PEMRSETTEXTALIGN:t(25,481)=(25,469)EMRENABLEICM:t(25,482)=(25,466)PEMRENABLEICM:t(25,483)=(25,469)tagMETAHEADER:T(25,484)=s18mtType:(5,11),0,16;mtHeaderSize:(5,11),16,16;mtVersion:(5,11),32,16;mtSize:(5,1),48,32;mtNoObjects:(5,11),80,16;mtMaxRecord:(5,1),96,32;mtNoParameters:(5,11),128,16;;METAHEADER:t(25,485)=(25,484)PMETAHEADER:t(25,486)=(25,487)=*(25,484)LPMETAHEADER:t(25,488)=(25,487)tagENHMETAHEADER:T(25,489)=s88iType:(5,1),0,32;nSize:(5,1),32,32;rclBounds:(5,145),64,128;rclFrame:(5,145),192,128;dSignature:(5,1),320,32;nVersion:(5,1),352,32;nBytes:(5,1),384,32;nRecords:(5,1),416,32;nHandles:(5,11),448,16;sReserved:(5,11),464,16;nDescription:(5,1),480,32;offDescription:(5,1),512,32;nPalEntries:(5,1),544,32;szlDevice:(5,161),576,64;szlMillimeters:(5,161),640,64;;ENHMETAHEADER:t(25,490)=(25,489)LPENHMETAHEADER:t(25,491)=(25,492)=*(25,489)tagMETARECORD:T(25,493)=s8rdSize:(5,1),0,32;rdFunction:(5,11),32,16;rdParm:(25,494)=ar(0,1);0;0;(5,11),48,16;;METARECORD:t(25,495)=(25,493)PMETARECORD:t(25,496)=(25,497)=*(25,493)LPMETARECORD:t(25,498)=(25,497)tagENHMETARECORD:T(25,499)=s12iType:(5,1),0,32;nSize:(5,1),32,32;dParm:(6,188),64,32;;ENHMETARECORD:t(25,500)=(25,499)LPENHMETARECORD:t(25,501)=(25,502)=*(25,499)tagHANDLETABLE:T(25,503)=s4objectHandle:(25,504)=ar(0,1);0;0;(5,47),0,32;;HANDLETABLE:t(25,505)=(25,503)LPHANDLETABLE:t(25,506)=(25,507)=*(25,503)tagTEXTMETRICA:T(25,508)=s56tmHeight:(6,3),0,32;tmAscent:(6,3),32,32;tmDescent:(6,3),64,32;tmInternalLeading:(6,3),96,32;tmExternalLeading:(6,3),128,32;tmAveCharWidth:(6,3),160,32;tmMaxCharWidth:(6,3),192,32;tmWeight:(6,3),224,32;tmOverhang:(6,3),256,32;tmDigitizedAspectX:(6,3),288,32;tmDigitizedAspectY:(6,3),320,32;tmFirstChar:(5,10),352,8;tmLastChar:(5,10),360,8;tmDefaultChar:(5,10),368,8;tmBreakChar:(5,10),376,8;tmItalic:(5,10),384,8;tmUnderlined:(5,10),392,8;tmStruckOut:(5,10),400,8;tmPitchAndFamily:(5,10),408,8;tmCharSet:(5,10),416,8;;TEXTMETRICA:t(25,509)=(25,508)PTEXTMETRICA:t(25,510)=(25,511)=*(25,508)LPTEXTMETRICA:t(25,512)=(25,511)tagTEXTMETRICW:T(25,513)=s60tmHeight:(6,3),0,32;tmAscent:(6,3),32,32;tmDescent:(6,3),64,32;tmInternalLeading:(6,3),96,32;tmExternalLeading:(6,3),128,32;tmAveCharWidth:(6,3),160,32;tmMaxCharWidth:(6,3),192,32;tmWeight:(6,3),224,32;tmOverhang:(6,3),256,32;tmDigitizedAspectX:(6,3),288,32;tmDigitizedAspectY:(6,3),320,32;tmFirstChar:(6,14),352,16;tmLastChar:(6,14),368,16;tmDefaultChar:(6,14),384,16;tmBreakChar:(6,14),400,16;tmItalic:(5,10),416,8;tmUnderlined:(5,10),424,8;tmStruckOut:(5,10),432,8;tmPitchAndFamily:(5,10),440,8;tmCharSet:(5,10),448,8;;TEXTMETRICW:t(25,514)=(25,513)PTEXTMETRICW:t(25,515)=(25,516)=*(25,513)LPTEXTMETRICW:t(25,517)=(25,516)_RGNDATAHEADER:T(25,518)=s32dwSize:(5,1),0,32;iType:(5,1),32,32;nCount:(5,1),64,32;nRgnSize:(5,1),96,32;rcBound:(5,138),128,128;;RGNDATAHEADER:t(25,519)=(25,518)_RGNDATA:T(25,520)=s36rdh:(25,519),0,256;Buffer:(25,521)=ar(0,1);0;0;(0,2),256,8;;RGNDATA:t(25,522)=(25,520)LPRGNDATA:t(25,523)=(25,524)=*(25,520)tagGCP_RESULTSA:T(25,525)=s36lStructSize:(5,1),0,32;lpOutString:(6,32),32,32;lpOrder:(25,526)=*(5,34),64,32;lpDx:(25,527)=*(5,33),96,32;lpCaretPos:(25,527),128,32;lpClass:(6,32),160,32;lpGlyphs:(25,526),192,32;nGlyphs:(5,34),224,32;nMaxFit:(5,34),256,32;;GCP_RESULTSA:t(25,528)=(25,525)LPGCP_RESULTSA:t(25,529)=(25,530)=*(25,525)tagGCP_RESULTSW:T(25,531)=s36lStructSize:(5,1),0,32;lpOutString:(6,20),32,32;lpOrder:(25,526),64,32;lpDx:(25,527),96,32;lpCaretPos:(25,527),128,32;lpClass:(6,20),160,32;lpGlyphs:(25,526),192,32;nGlyphs:(5,34),224,32;nMaxFit:(5,34),256,32;;GCP_RESULTSW:t(25,532)=(25,531)LPGCP_RESULTSW:t(25,533)=(25,534)=*(25,531)_GLYPHMETRICS:T(25,535)=s20gmBlackBoxX:(5,34),0,32;gmBlackBoxY:(5,34),32,32;gmptGlyphOrigin:(5,152),64,64;gmCellIncX:(0,8),128,16;gmCellIncY:(0,8),144,16;;GLYPHMETRICS:t(25,536)=(25,535)LPGLYPHMETRICS:t(25,537)=(25,538)=*(25,535)tagKERNINGPAIR:T(25,539)=s8wFirst:(5,11),0,16;wSecond:(5,11),16,16;iKernAmount:(0,1),32,32;;KERNINGPAIR:t(25,540)=(25,539)LPKERNINGPAIR:t(25,541)=(25,542)=*(25,539)_FIXED:T(25,543)=s4fract:(5,11),0,16;value:(0,8),16,16;;FIXED:t(25,544)=(25,543)_MAT2:T(25,545)=s16eM11:(25,544),0,32;eM12:(25,544),32,32;eM21:(25,544),64,32;eM22:(25,544),96,32;;MAT2:t(25,546)=(25,545)LPMAT2:t(25,547)=(25,548)=*(25,545)_OUTLINETEXTMETRICA:T(25,549)=s212otmSize:(5,34),0,32;otmTextMetrics:(25,509),32,448;otmFiller:(5,10),480,8;otmPanoseNumber:(25,192),488,80;otmfsSelection:(5,34),576,32;otmfsType:(5,34),608,32;otmsCharSlopeRise:(0,1),640,32;otmsCharSlopeRun:(0,1),672,32;otmItalicAngle:(0,1),704,32;otmEMSquare:(5,34),736,32;otmAscent:(0,1),768,32;otmDescent:(0,1),800,32;otmLineGap:(5,34),832,32;otmsCapEmHeight:(5,34),864,32;otmsXHeight:(5,34),896,32;otmrcFontBox:(5,138),928,128;otmMacAscent:(0,1),1056,32;otmMacDescent:(0,1),1088,32;otmMacLineGap:(5,34),1120,32;otmusMinimumPPEM:(5,34),1152,32;otmptSubscriptSize:(5,152),1184,64;otmptSubscriptOffset:(5,152),1248,64;otmptSuperscriptSize:(5,152),1312,64;otmptSuperscriptOffset:(5,152),1376,64;otmsStrikeoutSize:(5,34),1440,32;otmsStrikeoutPosition:(0,1),1472,32;otmsUnderscoreSize:(0,1),1504,32;otmsUnderscorePosition:(0,1),1536,32;otmpFamilyName:(6,33),1568,32;otmpFaceName:(6,33),1600,32;otmpStyleName:(6,33),1632,32;otmpFullName:(6,33),1664,32;;OUTLINETEXTMETRICA:t(25,550)=(25,549)POUTLINETEXTMETRICA:t(25,551)=(25,552)=*(25,549)LPOUTLINETEXTMETRICA:t(25,553)=(25,552)_OUTLINETEXTMETRICW:T(25,554)=s216otmSize:(5,34),0,32;otmTextMetrics:(25,514),32,480;otmFiller:(5,10),512,8;otmPanoseNumber:(25,192),520,80;otmfsSelection:(5,34),608,32;otmfsType:(5,34),640,32;otmsCharSlopeRise:(0,1),672,32;otmsCharSlopeRun:(0,1),704,32;otmItalicAngle:(0,1),736,32;otmEMSquare:(5,34),768,32;otmAscent:(0,1),800,32;otmDescent:(0,1),832,32;otmLineGap:(5,34),864,32;otmsCapEmHeight:(5,34),896,32;otmsXHeight:(5,34),928,32;otmrcFontBox:(5,138),960,128;otmMacAscent:(0,1),1088,32;otmMacDescent:(0,1),1120,32;otmMacLineGap:(5,34),1152,32;otmusMinimumPPEM:(5,34),1184,32;otmptSubscriptSize:(5,152),1216,64;otmptSubscriptOffset:(5,152),1280,64;otmptSuperscriptSize:(5,152),1344,64;otmptSuperscriptOffset:(5,152),1408,64;otmsStrikeoutSize:(5,34),1472,32;otmsStrikeoutPosition:(0,1),1504,32;otmsUnderscoreSize:(0,1),1536,32;otmsUnderscorePosition:(0,1),1568,32;otmpFamilyName:(6,33),1600,32;otmpFaceName:(6,33),1632,32;otmpStyleName:(6,33),1664,32;otmpFullName:(6,33),1696,32;;OUTLINETEXTMETRICW:t(25,555)=(25,554)POUTLINETEXTMETRICW:t(25,556)=(25,557)=*(25,554)LPOUTLINETEXTMETRICW:t(25,558)=(25,557)_RASTERIZER_STATUS:T(25,559)=s6nSize:(0,8),0,16;wFlags:(0,8),16,16;nLanguageID:(0,8),32,16;;RASTERIZER_STATUS:t(25,560)=(25,559)LPRASTERIZER_STATUS:t(25,561)=(25,562)=*(25,559)_POLYTEXTA:T(25,563)=s40x:(0,1),0,32;y:(0,1),32,32;n:(5,34),64,32;lpstr:(6,37),96,32;uiFlags:(5,34),128,32;rcl:(5,138),160,128;pdx:(5,4),288,32;;POLYTEXTA:t(25,564)=(25,563)_POLYTEXTW:T(25,565)=s40x:(0,1),0,32;y:(0,1),32,32;n:(5,34),64,32;lpstr:(6,25),96,32;uiFlags:(5,34),128,32;rcl:(5,138),160,128;pdx:(5,4),288,32;;POLYTEXTW:t(25,566)=(25,565)tagPIXELFORMATDESCRIPTOR:T(25,567)=s40nSize:(5,11),0,16;nVersion:(5,11),16,16;dwFlags:(5,1),32,32;iPixelType:(5,10),64,8;cColorBits:(5,10),72,8;cRedBits:(5,10),80,8;cRedShift:(5,10),88,8;cGreenBits:(5,10),96,8;cGreenShift:(5,10),104,8;cBlueBits:(5,10),112,8;cBlueShift:(5,10),120,8;cAlphaBits:(5,10),128,8;cAlphaShift:(5,10),136,8;cAccumBits:(5,10),144,8;cAccumRedBits:(5,10),152,8;cAccumGreenBits:(5,10),160,8;cAccumBlueBits:(5,10),168,8;cAccumAlphaBits:(5,10),176,8;cDepthBits:(5,10),184,8;cStencilBits:(5,10),192,8;cAuxBuffers:(5,10),200,8;iLayerType:(5,10),208,8;bReserved:(5,10),216,8;dwLayerMask:(5,1),224,32;dwVisibleMask:(5,1),256,32;dwDamageMask:(5,1),288,32;;PIXELFORMATDESCRIPTOR:t(25,568)=(25,567)PPIXELFORMATDESCRIPTOR:t(25,569)=(25,570)=*(25,567)LPPIXELFORMATDESCRIPTOR:t(25,571)=(25,570)tagMETAFILEPICT:T(25,572)=s16mm:(6,3),0,32;xExt:(6,3),32,32;yExt:(6,3),64,32;hMF:(5,96),96,32;;METAFILEPICT:t(25,573)=(25,572)LPMETAFILEPICT:t(25,574)=(25,575)=*(25,572)tagLOCALESIGNATURE:T(25,576)=s32lsUsb:(6,353),0,128;lsCsbDefault:(6,324),128,64;lsCsbSupported:(6,324),192,64;;LOCALESIGNATURE:t(25,577)=(25,576)PLOCALESIGNATURE:t(25,578)=(25,579)=*(25,576)LPLOCALESIGNATURE:t(25,580)=(25,579)LCSTYPE:t(25,581)=(6,3)tagNEWTEXTMETRICA:T(25,582)=s72tmHeight:(6,3),0,32;tmAscent:(6,3),32,32;tmDescent:(6,3),64,32;tmInternalLeading:(6,3),96,32;tmExternalLeading:(6,3),128,32;tmAveCharWidth:(6,3),160,32;tmMaxCharWidth:(6,3),192,32;tmWeight:(6,3),224,32;tmOverhang:(6,3),256,32;tmDigitizedAspectX:(6,3),288,32;tmDigitizedAspectY:(6,3),320,32;tmFirstChar:(5,10),352,8;tmLastChar:(5,10),360,8;tmDefaultChar:(5,10),368,8;tmBreakChar:(5,10),376,8;tmItalic:(5,10),384,8;tmUnderlined:(5,10),392,8;tmStruckOut:(5,10),400,8;tmPitchAndFamily:(5,10),408,8;tmCharSet:(5,10),416,8;ntmFlags:(5,1),448,32;ntmSizeEM:(5,34),480,32;ntmCellHeight:(5,34),512,32;ntmAvgWidth:(5,34),544,32;;NEWTEXTMETRICA:t(25,583)=(25,582)PNEWTEXTMETRICA:t(25,584)=(25,585)=*(25,582)LPNEWTEXTMETRICA:t(25,586)=(25,585)tagNEWTEXTMETRICW:T(25,587)=s76tmHeight:(6,3),0,32;tmAscent:(6,3),32,32;tmDescent:(6,3),64,32;tmInternalLeading:(6,3),96,32;tmExternalLeading:(6,3),128,32;tmAveCharWidth:(6,3),160,32;tmMaxCharWidth:(6,3),192,32;tmWeight:(6,3),224,32;tmOverhang:(6,3),256,32;tmDigitizedAspectX:(6,3),288,32;tmDigitizedAspectY:(6,3),320,32;tmFirstChar:(6,14),352,16;tmLastChar:(6,14),368,16;tmDefaultChar:(6,14),384,16;tmBreakChar:(6,14),400,16;tmItalic:(5,10),416,8;tmUnderlined:(5,10),424,8;tmStruckOut:(5,10),432,8;tmPitchAndFamily:(5,10),440,8;tmCharSet:(5,10),448,8;ntmFlags:(5,1),480,32;ntmSizeEM:(5,34),512,32;ntmCellHeight:(5,34),544,32;ntmAvgWidth:(5,34),576,32;;NEWTEXTMETRICW:t(25,588)=(25,587)PNEWTEXTMETRICW:t(25,589)=(25,590)=*(25,587)LPNEWTEXTMETRICW:t(25,591)=(25,590)tagNEWTEXTMETRICEXA:T(25,592)=s96ntmTm:(25,583),0,576;ntmFontSig:(25,63),576,192;;NEWTEXTMETRICEXA:t(25,593)=(25,592)tagNEWTEXTMETRICEXW:T(25,594)=s100ntmTm:(25,588),0,608;ntmFontSig:(25,63),608,192;;NEWTEXTMETRICEXW:t(25,595)=(25,594)tagPELARRAY:T(25,596)=s20paXCount:(6,3),0,32;paYCount:(6,3),32,32;paXExt:(6,3),64,32;paYExt:(6,3),96,32;paRGBs:(5,10),128,8;;PELARRAY:t(25,597)=(25,596)PPELARRAY:t(25,598)=(25,599)=*(25,596)LPPELARRAY:t(25,600)=(25,599)tagENUMLOGFONTA:T(25,601)=s156elfLogFont:(25,195),0,480;elfFullName:(25,205),480,512;elfStyle:(25,75),992,256;;ENUMLOGFONTA:t(25,602)=(25,601)LPENUMLOGFONTA:t(25,603)=(25,604)=*(25,601)tagENUMLOGFONTW:T(25,605)=s284elfLogFont:(25,200),0,736;elfFullName:(25,212),736,1024;elfStyle:(24,153),1760,512;;ENUMLOGFONTW:t(25,606)=(25,605)LPENUMLOGFONTW:t(25,607)=(25,608)=*(25,605)tagENUMLOGFONTEXA:T(25,609)=s188elfLogFont:(25,195),0,480;elfFullName:(25,205),480,512;elfStyle:(25,75),992,256;elfScript:(25,75),1248,256;;ENUMLOGFONTEXA:t(25,610)=(25,609)LPENUMLOGFONTEXA:t(25,611)=(25,612)=*(25,609)tagENUMLOGFONTEXW:T(25,613)=s284elfLogFont:(25,200),0,736;elfFullName:(25,212),736,1024;elfStyle:(25,75),1760,256;elfScript:(25,75),2016,256;;ENUMLOGFONTEXW:t(25,614)=(25,613)LPENUMLOGFONTEXW:t(25,615)=(25,616)=*(25,613)tagPOINTFX:T(25,617)=s8x:(25,544),0,32;y:(25,544),32,32;;POINTFX:t(25,618)=(25,617)LPPOINTFX:t(25,619)=(25,620)=*(25,617)tagTTPOLYCURVE:T(25,621)=s12wType:(5,11),0,16;cpfx:(5,11),16,16;apfx:(25,622)=ar(0,1);0;0;(25,618),32,64;;TTPOLYCURVE:t(25,623)=(25,621)LPTTPOLYCURVE:t(25,624)=(25,625)=*(25,621)tagTTPOLYGONHEADER:T(25,626)=s16cb:(5,1),0,32;dwType:(5,1),32,32;pfxStart:(25,618),64,64;;TTPOLYGONHEADER:t(25,627)=(25,626)LPTTPOLYGONHEADER:t(25,628)=(25,629)=*(25,626)_POINTFLOAT:T(25,630)=s8x:(5,12),0,32;y:(5,12),32,32;;POINTFLOAT:t(25,631)=(25,630)PPOINTFLOAT:t(25,632)=(25,633)=*(25,630)_GLYPHMETRICSFLOAT:T(25,634)=s24gmfBlackBoxX:(5,12),0,32;gmfBlackBoxY:(5,12),32,32;gmfptGlyphOrigin:(25,631),64,64;gmfCellIncX:(5,12),128,32;gmfCellIncY:(5,12),160,32;;GLYPHMETRICSFLOAT:t(25,635)=(25,634)PGLYPHMETRICSFLOAT:t(25,636)=(25,637)=*(25,634)LPGLYPHMETRICSFLOAT:t(25,638)=(25,637)tagLAYERPLANEDESCRIPTOR:T(25,639)=s32nSize:(5,11),0,16;nVersion:(5,11),16,16;dwFlags:(5,1),32,32;iPixelType:(5,10),64,8;cColorBits:(5,10),72,8;cRedBits:(5,10),80,8;cRedShift:(5,10),88,8;cGreenBits:(5,10),96,8;cGreenShift:(5,10),104,8;cBlueBits:(5,10),112,8;cBlueShift:(5,10),120,8;cAlphaBits:(5,10),128,8;cAlphaShift:(5,10),136,8;cAccumBits:(5,10),144,8;cAccumRedBits:(5,10),152,8;cAccumGreenBits:(5,10),160,8;cAccumBlueBits:(5,10),168,8;cAccumAlphaBits:(5,10),176,8;cDepthBits:(5,10),184,8;cStencilBits:(5,10),192,8;cAuxBuffers:(5,10),200,8;iLayerPlane:(5,10),208,8;bReserved:(5,10),216,8;crTransparent:(5,131),224,32;;LAYERPLANEDESCRIPTOR:t(25,640)=(25,639)PLAYERPLANEDESCRIPTOR:t(25,641)=(25,642)=*(25,639)LPLAYERPLANEDESCRIPTOR:t(25,643)=(25,642)ABORTPROC:t(25,644)=(25,645)=*(25,646)=f(5,6)MFENUMPROC:t(25,647)=(25,648)=*(25,649)=f(0,1)ENHMFENUMPROC:t(25,650)=(25,651)=*(25,652)=f(0,1)OLDFONTENUMPROCA:t(25,653)=(25,654)=*(25,655)=f(0,1)OLDFONTENUMPROCW:t(25,656)=(25,657)=*(25,658)=f(0,1)FONTENUMPROCA:t(25,659)=(25,653)FONTENUMPROCW:t(25,660)=(25,656)ICMENUMPROCA:t(25,661)=(25,662)=*(25,663)=f(0,1)ICMENUMPROCW:t(25,664)=(25,665)=*(25,666)=f(0,1)GOBJENUMPROC:t(25,667)=(25,668)=*(25,669)=f(0,19)LINEDDAPROC:t(25,670)=(25,671)=*(25,672)=f(0,19)LPFNDEVMODE:t(25,673)=(25,674)=*(25,675)=f(5,34)LPFNDEVCAPS:t(25,676)=(25,677)=*(25,678)=f(5,1)BCHAR:t(25,679)=(5,10)LOGFONT:t(25,680)=(25,195)PLOGFONT:t(25,681)=(25,682)=*(25,195)LPLOGFONT:t(25,683)=(25,682)TEXTMETRIC:t(25,684)=(25,509)PTEXTMETRIC:t(25,685)=(25,686)=*(25,509)LPTEXTMETRIC:t(25,687)=(25,686)DEVMODE:t(25,688)=(25,76)PDEVMODE:t(25,689)=(25,690)=*(25,76)LPDEVMODE:t(25,691)=(25,690)EXTLOGFONT:t(25,692)=(25,207)PEXTLOGFONT:t(25,693)=(25,694)=*(25,207)LPEXTLOGFONT:t(25,695)=(25,694)GCP_RESULTS:t(25,696)=(25,528)LPGCP_RESULTS:t(25,697)=(25,698)=*(25,528)OUTLINETEXTMETRIC:t(25,699)=(25,550)POUTLINETEXTMETRIC:t(25,700)=(25,701)=*(25,550)LPOUTLINETEXTMETRIC:t(25,702)=(25,701)POLYTEXT:t(25,703)=(25,564)LOGCOLORSPACE:t(25,704)=(25,132)LPLOGCOLORSPACE:t(25,705)=(25,706)=*(25,132)NEWTEXTMETRIC:t(25,707)=(25,583)PNEWTEXTMETRIC:t(25,708)=(25,709)=*(25,583)LPNEWTEXTMETRIC:t(25,710)=(25,709)NEWTEXTMETRICEX:t(25,711)=(25,593)ENUMLOGFONT:t(25,712)=(25,602)LPENUMLOGFONT:t(25,713)=(25,714)=*(25,602)ENUMLOGFONTEX:t(25,715)=(25,610)LPENUMLOGFONTEX:t(25,716)=(25,717)=*(25,610)/usr/include/w32api/winuser.hDLGPROC:t(26,1)=(26,2)=*(26,3)=f(5,6)TIMERPROC:t(26,4)=(26,5)=*(26,6)=f(0,19)GRAYSTRINGPROC:t(26,7)=(26,8)=*(26,9)=f(5,6)HOOKPROC:t(26,10)=(26,11)=*(26,12)=f(5,40)PROPENUMPROCA:t(26,13)=(26,14)=*(26,15)=f(5,6)PROPENUMPROCW:t(26,16)=(26,17)=*(26,18)=f(5,6)PROPENUMPROCEXA:t(26,19)=(26,20)=*(26,21)=f(5,6)PROPENUMPROCEXW:t(26,22)=(26,23)=*(26,24)=f(5,6)EDITWORDBREAKPROCA:t(26,25)=(26,26)=*(26,27)=f(0,1)EDITWORDBREAKPROCW:t(26,28)=(26,29)=*(26,30)=f(0,1)WNDPROC:t(26,31)=(26,32)=*(26,33)=f(5,40)DRAWSTATEPROC:t(26,34)=(26,35)=*(26,36)=f(5,6)WNDENUMPROC:t(26,37)=(26,38)=*(26,39)=f(5,6)ENUMWINDOWSPROC:t(26,40)=(26,38)NAMEENUMPROCA:t(26,41)=(26,42)=*(26,43)=f(5,6)NAMEENUMPROCW:t(26,44)=(26,45)=*(26,46)=f(5,6)DESKTOPENUMPROCA:t(26,47)=(26,41)DESKTOPENUMPROCW:t(26,48)=(26,44)WINSTAENUMPROCA:t(26,49)=(26,41)WINSTAENUMPROCW:t(26,50)=(26,44)SENDASYNCPROC:t(26,51)=(26,52)=*(26,53)=f(0,19)HHOOK__:T(26,54)=s4i:(0,1),0,32;;HHOOK:t(26,55)=(26,56)=*(26,54)HDWP__:T(26,57)=s4i:(0,1),0,32;;HDWP:t(26,58)=(26,59)=*(26,57)tagACCEL:T(26,60)=s6fVirt:(5,10),0,8;key:(5,11),16,16;cmd:(5,11),32,16;;ACCEL:t(26,61)=(26,60)LPACCEL:t(26,62)=(26,63)=*(26,60)tagACCESSTIMEOUT:T(26,64)=s12cbSize:(5,34),0,32;dwFlags:(5,1),32,32;iTimeOutMSec:(5,1),64,32;;ACCESSTIMEOUT:t(26,65)=(26,64)tagANIMATIONINFO:T(26,66)=s8cbSize:(5,34),0,32;iMinAnimate:(0,1),32,32;;ANIMATIONINFO:t(26,67)=(26,66)LPANIMATIONINFO:t(26,68)=(26,69)=*(26,66)tagCREATESTRUCT:T(26,70)=s48lpCreateParams:(5,29),0,32;hInstance:(5,99),32,32;hMenu:(5,93),64,32;hwndParent:(5,121),96,32;cy:(0,1),128,32;cx:(0,1),160,32;y:(0,1),192,32;x:(0,1),224,32;style:(6,3),256,32;lpszName:(6,48),288,32;lpszClass:(6,48),320,32;dwExStyle:(5,1),352,32;;CREATESTRUCT:t(26,71)=(26,70)LPCREATESTRUCT:t(26,72)=(26,73)=*(26,70)tagCBT_CREATEWND:T(26,74)=s8lpcs:(26,72),0,32;hwndInsertAfter:(5,121),32,32;;CBT_CREATEWND:t(26,75)=(26,74)tagCBTACTIVATESTRUCT:T(26,76)=s8fMouse:(5,6),0,32;hWndActive:(5,121),32,32;;CBTACTIVATESTRUCT:t(26,77)=(26,76)LPCBTACTIVATESTRUCT:t(26,78)=(26,79)=*(26,76)tagCLIENTCREATESTRUCT:T(26,80)=s8hWindowMenu:(6,54),0,32;idFirstChild:(5,34),32,32;;CLIENTCREATESTRUCT:t(26,81)=(26,80)LPCLIENTCREATESTRUCT:t(26,82)=(26,83)=*(26,80)tagCOMPAREITEMSTRUCT:T(26,84)=s32CtlType:(5,34),0,32;CtlID:(5,34),32,32;hwndItem:(5,121),64,32;itemID1:(5,34),96,32;itemData1:(5,1),128,32;itemID2:(5,34),160,32;itemData2:(5,1),192,32;dwLocaleId:(5,1),224,32;;COMPAREITEMSTRUCT:t(26,85)=(26,84)LPCOMPAREITEMSTRUCT:t(26,86)=(26,87)=*(26,84)tagCOPYDATASTRUCT:T(26,88)=s12dwData:(5,1),0,32;cbData:(5,1),32,32;lpData:(5,28),64,32;;COPYDATASTRUCT:t(26,89)=(26,88)PCOPYDATASTRUCT:t(26,90)=(26,91)=*(26,88)tagCURSORSHAPE:T(26,92)=s24xHotSpot:(0,1),0,32;yHotSpot:(0,1),32,32;cx:(0,1),64,32;cy:(0,1),96,32;cbWidth:(0,1),128,32;Planes:(5,10),160,8;BitsPixel:(5,10),168,8;;CURSORSHAPE:t(26,93)=(26,92)LPCURSORSHAPE:t(26,94)=(26,95)=*(26,92)tagCWPRETSTRUCT:T(26,96)=s20lResult:(5,40),0,32;lParam:(5,39),32,32;wParam:(5,38),64,32;message:(5,1),96,32;hwnd:(5,121),128,32;;CWPRETSTRUCT:t(26,97)=(26,96)tagCWPSTRUCT:T(26,98)=s16lParam:(5,39),0,32;wParam:(5,38),32,32;message:(5,34),64,32;hwnd:(5,121),96,32;;CWPSTRUCT:t(26,99)=(26,98)PCWPSTRUCT:t(26,100)=(26,101)=*(26,98)tagDEBUGHOOKINFO:T(26,102)=s20idThread:(5,1),0,32;idThreadInstaller:(5,1),32,32;lParam:(5,39),64,32;wParam:(5,38),96,32;code:(0,1),128,32;;DEBUGHOOKINFO:t(26,103)=(26,102)PDEBUGHOOKINFO:t(26,104)=(26,105)=*(26,102)LPDEBUGHOOKINFO:t(26,106)=(26,105)tagDELETEITEMSTRUCT:T(26,107)=s20CtlType:(5,34),0,32;CtlID:(5,34),32,32;itemID:(5,34),64,32;hwndItem:(5,121),96,32;itemData:(5,34),128,32;;DELETEITEMSTRUCT:t(26,108)=(26,107)PDELETEITEMSTRUCT:t(26,109)=(26,110)=*(26,107)LPDELETEITEMSTRUCT:t(26,111)=(26,110)DLGITEMTEMPLATE:t(26,112)=(26,113)=s18style:(5,1),0,32;dwExtendedStyle:(5,1),32,32;x:(0,8),64,16;y:(0,8),80,16;cx:(0,8),96,16;cy:(0,8),112,16;id:(5,11),128,16;;LPDLGITEMTEMPLATE:t(26,114)=(26,115)=*(26,113)DLGTEMPLATE:t(26,116)=(26,117)=s18style:(5,1),0,32;dwExtendedStyle:(5,1),32,32;cdit:(5,11),64,16;x:(0,8),80,16;y:(0,8),96,16;cx:(0,8),112,16;cy:(0,8),128,16;;LPDLGTEMPLATE:t(26,118)=(26,119)=*(26,117)LPCDLGTEMPLATE:t(26,120)=(26,121)=*(26,116)tagDRAWITEMSTRUCT:T(26,122)=s48CtlType:(5,34),0,32;CtlID:(5,34),32,32;itemID:(5,34),64,32;itemAction:(5,34),96,32;itemState:(5,34),128,32;hwndItem:(5,121),160,32;hDC:(5,61),192,32;rcItem:(5,138),224,128;itemData:(5,1),352,32;;DRAWITEMSTRUCT:t(26,123)=(26,122)LPDRAWITEMSTRUCT:t(26,124)=(26,125)=*(26,122)PDRAWITEMSTRUCT:t(26,126)=(26,125)DRAWTEXTPARAMS:t(26,127)=(26,128)=s20cbSize:(5,34),0,32;iTabLength:(0,1),32,32;iLeftMargin:(0,1),64,32;iRightMargin:(0,1),96,32;uiLengthDrawn:(5,34),128,32;;LPDRAWTEXTPARAMS:t(26,129)=(26,130)=*(26,128)tagPAINTSTRUCT:T(26,131)=s64hdc:(5,61),0,32;fErase:(5,6),32,32;rcPaint:(5,138),64,128;fRestore:(5,6),192,32;fIncUpdate:(5,6),224,32;rgbReserved:(25,75),256,256;;PAINTSTRUCT:t(26,132)=(26,131)LPPAINTSTRUCT:t(26,133)=(26,134)=*(26,131)tagMSG:T(26,135)=s28hwnd:(5,121),0,32;message:(5,34),32,32;wParam:(5,38),64,32;lParam:(5,39),96,32;time:(5,1),128,32;pt:(5,152),160,64;;MSG:t(26,136)=(26,135)LPMSG:t(26,137)=(26,138)=*(26,135)PMSG:t(26,139)=(26,138)_ICONINFO:T(26,140)=s20fIcon:(5,6),0,32;xHotspot:(5,1),32,32;yHotspot:(5,1),64,32;hbmMask:(5,52),96,32;hbmColor:(5,52),128,32;;ICONINFO:t(26,141)=(26,140)PICONINFO:t(26,142)=(26,143)=*(26,140)tagNMHDR:T(26,144)=s12hwndFrom:(5,121),0,32;idFrom:(5,34),32,32;code:(5,34),64,32;;NMHDR:t(26,145)=(26,144)LPNMHDR:t(26,146)=(26,147)=*(26,144)_WNDCLASSA:T(26,148)=s40style:(5,34),0,32;lpfnWndProc:(26,31),32,32;cbClsExtra:(0,1),64,32;cbWndExtra:(0,1),96,32;hInstance:(6,54),128,32;hIcon:(5,76),160,32;hCursor:(5,130),192,32;hbrBackground:(5,55),224,32;lpszMenuName:(6,37),256,32;lpszClassName:(6,37),288,32;;WNDCLASSA:t(26,149)=(26,148)LPWNDCLASSA:t(26,150)=(26,151)=*(26,148)PWNDCLASSA:t(26,152)=(26,151)_WNDCLASSW:T(26,153)=s40style:(5,34),0,32;lpfnWndProc:(26,31),32,32;cbClsExtra:(0,1),64,32;cbWndExtra:(0,1),96,32;hInstance:(6,54),128,32;hIcon:(5,76),160,32;hCursor:(5,130),192,32;hbrBackground:(5,55),224,32;lpszMenuName:(6,25),256,32;lpszClassName:(6,25),288,32;;WNDCLASSW:t(26,154)=(26,153)LPWNDCLASSW:t(26,155)=(26,156)=*(26,153)PWNDCLASSW:t(26,157)=(26,156)_WNDCLASSEXA:T(26,158)=s48cbSize:(5,34),0,32;style:(5,34),32,32;lpfnWndProc:(26,31),64,32;cbClsExtra:(0,1),96,32;cbWndExtra:(0,1),128,32;hInstance:(6,54),160,32;hIcon:(5,76),192,32;hCursor:(5,130),224,32;hbrBackground:(5,55),256,32;lpszMenuName:(6,37),288,32;lpszClassName:(6,37),320,32;hIconSm:(5,76),352,32;;WNDCLASSEXA:t(26,159)=(26,158)LPWNDCLASSEXA:t(26,160)=(26,161)=*(26,158)PWNDCLASSEXA:t(26,162)=(26,161)_WNDCLASSEXW:T(26,163)=s48cbSize:(5,34),0,32;style:(5,34),32,32;lpfnWndProc:(26,31),64,32;cbClsExtra:(0,1),96,32;cbWndExtra:(0,1),128,32;hInstance:(6,54),160,32;hIcon:(5,76),192,32;hCursor:(5,130),224,32;hbrBackground:(5,55),256,32;lpszMenuName:(6,25),288,32;lpszClassName:(6,25),320,32;hIconSm:(5,76),352,32;;WNDCLASSEXW:t(26,164)=(26,163)LPWNDCLASSEXW:t(26,165)=(26,166)=*(26,163)PWNDCLASSEXW:t(26,167)=(26,166)tagMENUITEMINFOA:T(26,168)=s44cbSize:(5,34),0,32;fMask:(5,34),32,32;fType:(5,34),64,32;fState:(5,34),96,32;wID:(5,34),128,32;hSubMenu:(5,93),160,32;hbmpChecked:(5,52),192,32;hbmpUnchecked:(5,52),224,32;dwItemData:(5,1),256,32;dwTypeData:(6,32),288,32;cch:(5,34),320,32;;MENUITEMINFOA:t(26,169)=(26,168)LPMENUITEMINFOA:t(26,170)=(26,171)=*(26,168)LPCMENUITEMINFOA:t(26,172)=(26,173)=*(26,169)tagMENUITEMINFOW:T(26,174)=s44cbSize:(5,34),0,32;fMask:(5,34),32,32;fType:(5,34),64,32;fState:(5,34),96,32;wID:(5,34),128,32;hSubMenu:(5,93),160,32;hbmpChecked:(5,52),192,32;hbmpUnchecked:(5,52),224,32;dwItemData:(5,1),256,32;dwTypeData:(6,20),288,32;cch:(5,34),320,32;;MENUITEMINFOW:t(26,175)=(26,174)LPMENUITEMINFOW:t(26,176)=(26,177)=*(26,174)LPCMENUITEMINFOW:t(26,178)=(26,179)=*(26,175)tagSCROLLINFO:T(26,180)=s28cbSize:(5,34),0,32;fMask:(5,34),32,32;nMin:(0,1),64,32;nMax:(0,1),96,32;nPage:(5,34),128,32;nPos:(0,1),160,32;nTrackPos:(0,1),192,32;;SCROLLINFO:t(26,181)=(26,180)LPSCROLLINFO:t(26,182)=(26,183)=*(26,180)LPCSCROLLINFO:t(26,184)=(26,185)=*(26,181)_WINDOWPLACEMENT:T(26,186)=s44length:(5,34),0,32;flags:(5,34),32,32;showCmd:(5,34),64,32;ptMinPosition:(5,152),96,64;ptMaxPosition:(5,152),160,64;rcNormalPosition:(5,138),224,128;;WINDOWPLACEMENT:t(26,187)=(26,186)LPWINDOWPLACEMENT:t(26,188)=(26,189)=*(26,186)PWINDOWPLACEMENT:t(26,190)=(26,189)MENUITEMTEMPLATEHEADER:t(26,191)=(26,192)=s4versionNumber:(5,11),0,16;offset:(5,11),16,16;;MENUITEMTEMPLATE:t(26,193)=(26,194)=s6mtOption:(5,11),0,16;mtID:(5,11),16,16;mtString:(6,255),32,16;;MENUTEMPLATE:t(26,195)=(0,19)MENUTEMPLATEA:t(26,196)=(0,19)MENUTEMPLATEW:t(26,197)=(0,19)LPMENUTEMPLATEA:t(26,198)=(4,2)LPMENUTEMPLATEW:t(26,199)=(4,2)LPMENUTEMPLATE:t(26,200)=(4,2)tagHELPINFO:T(26,201)=s28cbSize:(5,34),0,32;iContextType:(0,1),32,32;iCtrlId:(0,1),64,32;hItemHandle:(6,54),96,32;dwContextId:(5,1),128,32;MousePos:(5,152),160,64;;HELPINFO:t(26,202)=(26,201)LPHELPINFO:t(26,203)=(26,204)=*(26,201)MSGBOXCALLBACK:t(26,205)=(26,206)=*(26,207)=f(0,19)MSGBOXPARAMSA:t(26,208)=(26,209)=s40cbSize:(5,34),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;lpszText:(6,37),96,32;lpszCaption:(6,37),128,32;dwStyle:(5,1),160,32;lpszIcon:(6,37),192,32;dwContextHelpId:(5,1),224,32;lpfnMsgBoxCallback:(26,205),256,32;dwLanguageId:(5,1),288,32;;PMSGBOXPARAMSA:t(26,210)=(26,211)=*(26,209)LPMSGBOXPARAMSA:t(26,212)=(26,211)MSGBOXPARAMSW:t(26,213)=(26,214)=s40cbSize:(5,34),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;lpszText:(6,25),96,32;lpszCaption:(6,25),128,32;dwStyle:(5,1),160,32;lpszIcon:(6,25),192,32;dwContextHelpId:(5,1),224,32;lpfnMsgBoxCallback:(26,205),256,32;dwLanguageId:(5,1),288,32;;PMSGBOXPARAMSW:t(26,215)=(26,216)=*(26,214)LPMSGBOXPARAMSW:t(26,217)=(26,216)tagUSEROBJECTFLAGS:T(26,218)=s12fInherit:(5,6),0,32;fReserved:(5,6),32,32;dwFlags:(5,1),64,32;;USEROBJECTFLAGS:t(26,219)=(26,218)tagFILTERKEYS:T(26,220)=s24cbSize:(5,34),0,32;dwFlags:(5,1),32,32;iWaitMSec:(5,1),64,32;iDelayMSec:(5,1),96,32;iRepeatMSec:(5,1),128,32;iBounceMSec:(5,1),160,32;;FILTERKEYS:t(26,221)=(26,220)tagHIGHCONTRASTA:T(26,222)=s12cbSize:(5,34),0,32;dwFlags:(5,1),32,32;lpszDefaultScheme:(6,32),64,32;;HIGHCONTRASTA:t(26,223)=(26,222)LPHIGHCONTRASTA:t(26,224)=(26,225)=*(26,222)tagHIGHCONTRASTW:T(26,226)=s12cbSize:(5,34),0,32;dwFlags:(5,1),32,32;lpszDefaultScheme:(6,20),64,32;;HIGHCONTRASTW:t(26,227)=(26,226)LPHIGHCONTRASTW:t(26,228)=(26,229)=*(26,226)tagICONMETRICSA:T(26,230)=s76cbSize:(5,34),0,32;iHorzSpacing:(0,1),32,32;iVertSpacing:(0,1),64,32;iTitleWrap:(0,1),96,32;lfFont:(25,195),128,480;;ICONMETRICSA:t(26,231)=(26,230)LPICONMETRICSA:t(26,232)=(26,233)=*(26,230)tagICONMETRICSW:T(26,234)=s108cbSize:(5,34),0,32;iHorzSpacing:(0,1),32,32;iVertSpacing:(0,1),64,32;iTitleWrap:(0,1),96,32;lfFont:(25,200),128,736;;ICONMETRICSW:t(26,235)=(26,234)LPICONMETRICSW:t(26,236)=(26,237)=*(26,234)tagMINIMIZEDMETRICS:T(26,238)=s20cbSize:(5,34),0,32;iWidth:(0,1),32,32;iHorzGap:(0,1),64,32;iVertGap:(0,1),96,32;iArrange:(0,1),128,32;;MINIMIZEDMETRICS:t(26,239)=(26,238)LPMINIMIZEDMETRICS:t(26,240)=(26,241)=*(26,238)tagNONCLIENTMETRICSA:T(26,242)=s340cbSize:(5,34),0,32;iBorderWidth:(0,1),32,32;iScrollWidth:(0,1),64,32;iScrollHeight:(0,1),96,32;iCaptionWidth:(0,1),128,32;iCaptionHeight:(0,1),160,32;lfCaptionFont:(25,195),192,480;iSmCaptionWidth:(0,1),672,32;iSmCaptionHeight:(0,1),704,32;lfSmCaptionFont:(25,195),736,480;iMenuWidth:(0,1),1216,32;iMenuHeight:(0,1),1248,32;lfMenuFont:(25,195),1280,480;lfStatusFont:(25,195),1760,480;lfMessageFont:(25,195),2240,480;;NONCLIENTMETRICSA:t(26,243)=(26,242)LPNONCLIENTMETRICSA:t(26,244)=(26,245)=*(26,242)tagNONCLIENTMETRICSW:T(26,246)=s500cbSize:(5,34),0,32;iBorderWidth:(0,1),32,32;iScrollWidth:(0,1),64,32;iScrollHeight:(0,1),96,32;iCaptionWidth:(0,1),128,32;iCaptionHeight:(0,1),160,32;lfCaptionFont:(25,200),192,736;iSmCaptionWidth:(0,1),928,32;iSmCaptionHeight:(0,1),960,32;lfSmCaptionFont:(25,200),992,736;iMenuWidth:(0,1),1728,32;iMenuHeight:(0,1),1760,32;lfMenuFont:(25,200),1792,736;lfStatusFont:(25,200),2528,736;lfMessageFont:(25,200),3264,736;;NONCLIENTMETRICSW:t(26,247)=(26,246)LPNONCLIENTMETRICSW:t(26,248)=(26,249)=*(26,246)tagSERIALKEYSA:T(26,250)=s28cbSize:(5,34),0,32;dwFlags:(5,1),32,32;lpszActivePort:(6,32),64,32;lpszPort:(6,32),96,32;iBaudRate:(5,34),128,32;iPortState:(5,34),160,32;iActive:(5,34),192,32;;SERIALKEYSA:t(26,251)=(26,250)LPSERIALKEYSA:t(26,252)=(26,253)=*(26,250)tagSERIALKEYSW:T(26,254)=s28cbSize:(5,34),0,32;dwFlags:(5,1),32,32;lpszActivePort:(6,20),64,32;lpszPort:(6,20),96,32;iBaudRate:(5,34),128,32;iPortState:(5,34),160,32;iActive:(5,34),192,32;;SERIALKEYSW:t(26,255)=(26,254)LPSERIALKEYSW:t(26,256)=(26,257)=*(26,254)tagSOUNDSENTRYA:T(26,258)=s48cbSize:(5,34),0,32;dwFlags:(5,1),32,32;iFSTextEffect:(5,1),64,32;iFSTextEffectMSec:(5,1),96,32;iFSTextEffectColorBits:(5,1),128,32;iFSGrafEffect:(5,1),160,32;iFSGrafEffectMSec:(5,1),192,32;iFSGrafEffectColor:(5,1),224,32;iWindowsEffect:(5,1),256,32;iWindowsEffectMSec:(5,1),288,32;lpszWindowsEffectDLL:(6,32),320,32;iWindowsEffectOrdinal:(5,1),352,32;;SOUNDSENTRYA:t(26,259)=(26,258)LPSOUNDSENTRYA:t(26,260)=(26,261)=*(26,258)tagSOUNDSENTRYW:T(26,262)=s48cbSize:(5,34),0,32;dwFlags:(5,1),32,32;iFSTextEffect:(5,1),64,32;iFSTextEffectMSec:(5,1),96,32;iFSTextEffectColorBits:(5,1),128,32;iFSGrafEffect:(5,1),160,32;iFSGrafEffectMSec:(5,1),192,32;iFSGrafEffectColor:(5,1),224,32;iWindowsEffect:(5,1),256,32;iWindowsEffectMSec:(5,1),288,32;lpszWindowsEffectDLL:(6,20),320,32;iWindowsEffectOrdinal:(5,1),352,32;;SOUNDSENTRYW:t(26,263)=(26,262)LPSOUNDSENTRYW:t(26,264)=(26,265)=*(26,262)tagSTICKYKEYS:T(26,266)=s8cbSize:(5,1),0,32;dwFlags:(5,1),32,32;;STICKYKEYS:t(26,267)=(26,266)LPSTICKYKEYS:t(26,268)=(26,269)=*(26,266)tagTOGGLEKEYS:T(26,270)=s8cbSize:(5,1),0,32;dwFlags:(5,1),32,32;;TOGGLEKEYS:t(26,271)=(26,270)tagTRACKMOUSEEVENT:T(26,272)=s16cbSize:(5,1),0,32;dwFlags:(5,1),32,32;hwndTrack:(5,121),64,32;dwHoverTime:(5,1),96,32;;TRACKMOUSEEVENT:t(26,273)=(26,272)LPTRACKMOUSEEVENT:t(26,274)=(26,275)=*(26,272)tagTPMPARAMS:T(26,276)=s20cbSize:(5,34),0,32;rcExclude:(5,138),32,128;;TPMPARAMS:t(26,277)=(26,276)LPTPMPARAMS:t(26,278)=(26,279)=*(26,276)tagEVENTMSG:T(26,280)=s20message:(5,34),0,32;paramL:(5,34),32,32;paramH:(5,34),64,32;time:(5,1),96,32;hwnd:(5,121),128,32;;EVENTMSG:t(26,281)=(26,280)PEVENTMSGMSG:t(26,282)=(26,283)=*(26,280)LPEVENTMSGMSG:t(26,284)=(26,283)PEVENTMSG:t(26,285)=(26,283)LPEVENTMSG:t(26,286)=(26,283)_WINDOWPOS:T(26,287)=s28hwnd:(5,121),0,32;hwndInsertAfter:(5,121),32,32;x:(0,1),64,32;y:(0,1),96,32;cx:(0,1),128,32;cy:(0,1),160,32;flags:(5,34),192,32;;WINDOWPOS:t(26,288)=(26,287)PWINDOWPOS:t(26,289)=(26,290)=*(26,287)LPWINDOWPOS:t(26,291)=(26,290)tagMDICREATESTRUCTA:T(26,292)=s36szClass:(6,37),0,32;szTitle:(6,37),32,32;hOwner:(6,54),64,32;x:(0,1),96,32;y:(0,1),128,32;cx:(0,1),160,32;cy:(0,1),192,32;style:(5,1),224,32;lParam:(5,39),256,32;;MDICREATESTRUCTA:t(26,293)=(26,292)LPMDICREATESTRUCTA:t(26,294)=(26,295)=*(26,292)tagMDICREATESTRUCTW:T(26,296)=s36szClass:(6,25),0,32;szTitle:(6,25),32,32;hOwner:(6,54),64,32;x:(0,1),96,32;y:(0,1),128,32;cx:(0,1),160,32;cy:(0,1),192,32;style:(5,1),224,32;lParam:(5,39),256,32;;MDICREATESTRUCTW:t(26,297)=(26,296)LPMDICREATESTRUCTW:t(26,298)=(26,299)=*(26,296)tagMINMAXINFO:T(26,300)=s40ptReserved:(5,152),0,64;ptMaxSize:(5,152),64,64;ptMaxPosition:(5,152),128,64;ptMinTrackSize:(5,152),192,64;ptMaxTrackSize:(5,152),256,64;;MINMAXINFO:t(26,301)=(26,300)PMINMAXINFO:t(26,302)=(26,303)=*(26,300)LPMINMAXINFO:t(26,304)=(26,303)tagMDINEXTMENU:T(26,305)=s12hmenuIn:(5,93),0,32;hmenuNext:(5,93),32,32;hwndNext:(5,121),64,32;;MDINEXTMENU:t(26,306)=(26,305)PMDINEXTMENU:t(26,307)=(26,308)=*(26,305)LPMDINEXTMENU:t(26,309)=(26,308)tagMEASUREITEMSTRUCT:T(26,310)=s24CtlType:(5,34),0,32;CtlID:(5,34),32,32;itemID:(5,34),64,32;itemWidth:(5,34),96,32;itemHeight:(5,34),128,32;itemData:(5,1),160,32;;MEASUREITEMSTRUCT:t(26,311)=(26,310)PMEASUREITEMSTRUCT:t(26,312)=(26,313)=*(26,310)LPMEASUREITEMSTRUCT:t(26,314)=(26,313)tagDROPSTRUCT:T(26,315)=s28hwndSource:(5,121),0,32;hwndSink:(5,121),32,32;wFmt:(5,1),64,32;dwData:(5,1),96,32;ptDrop:(5,152),128,64;dwControlData:(5,1),192,32;;DROPSTRUCT:t(26,316)=(26,315)PDROPSTRUCT:t(26,317)=(26,318)=*(26,315)LPDROPSTRUCT:t(26,319)=(26,318)HELPPOLY:t(26,320)=(5,1)tagMULTIKEYHELPA:T(26,321)=s8mkSize:(5,1),0,32;mkKeylist:(6,1),32,8;szKeyphrase:(6,475),40,8;;MULTIKEYHELPA:t(26,322)=(26,321)PMULTIKEYHELPA:t(26,323)=(26,324)=*(26,321)LPMULTIKEYHELPA:t(26,325)=(26,324)tagMULTIKEYHELPW:T(26,326)=s8mkSize:(5,1),0,32;mkKeylist:(6,14),32,16;szKeyphrase:(6,255),48,16;;MULTIKEYHELPW:t(26,327)=(26,326)PMULTIKEYHELPW:t(26,328)=(26,329)=*(26,326)LPMULTIKEYHELPW:t(26,330)=(26,329)tagHELPWININFOA:T(26,331)=s28wStructSize:(0,1),0,32;x:(0,1),32,32;y:(0,1),64,32;dx:(0,1),96,32;dy:(0,1),128,32;wMax:(0,1),160,32;rgchMember:(26,332)=ar(0,1);0;1;(6,1),192,16;;HELPWININFOA:t(26,333)=(26,331)PHELPWININFOA:t(26,334)=(26,335)=*(26,331)LPHELPWININFOA:t(26,336)=(26,335)tagHELPWININFOW:T(26,337)=s28wStructSize:(0,1),0,32;x:(0,1),32,32;y:(0,1),64,32;dx:(0,1),96,32;dy:(0,1),128,32;wMax:(0,1),160,32;rgchMember:(26,338)=ar(0,1);0;1;(6,14),192,32;;HELPWININFOW:t(26,339)=(26,337)PHELPWININFOW:t(26,340)=(26,341)=*(26,337)LPHELPWININFOW:t(26,342)=(26,341)tagSTYLESTRUCT:T(26,343)=s8styleOld:(5,1),0,32;styleNew:(5,1),32,32;;STYLESTRUCT:t(26,344)=(26,343)LPSTYLESTRUCT:t(26,345)=(26,346)=*(26,343)WNDCLASS:t(26,347)=(26,149)LPWNDCLASS:t(26,348)=(26,349)=*(26,149)PWNDCLASS:t(26,350)=(26,349)WNDCLASSEX:t(26,351)=(26,159)LPWNDCLASSEX:t(26,352)=(26,353)=*(26,159)PWNDCLASSEX:t(26,354)=(26,353)MENUITEMINFO:t(26,355)=(26,169)LPMENUITEMINFO:t(26,356)=(26,357)=*(26,169)LPCMENUITEMINFO:t(26,358)=(26,172)MSGBOXPARAMS:t(26,359)=(26,208)PMSGBOXPARAMS:t(26,360)=(26,361)=*(26,208)LPMSGBOXPARAMS:t(26,362)=(26,361)HIGHCONTRAST:t(26,363)=(26,223)LPHIGHCONTRAST:t(26,364)=(26,365)=*(26,223)ICONMETRICS:t(26,366)=(26,231)LPICONMETRICS:t(26,367)=(26,368)=*(26,231)NONCLIENTMETRICS:t(26,369)=(26,243)LPNONCLIENTMETRICS:t(26,370)=(26,371)=*(26,243)SERIALKEYS:t(26,372)=(26,251)LPSERIALKEYS:t(26,373)=(26,374)=*(26,251)SOUNDSENTRY:t(26,375)=(26,259)LPSOUNDSENTRY:t(26,376)=(26,377)=*(26,259)MDICREATESTRUCT:t(26,378)=(26,293)LPMDICREATESTRUCT:t(26,379)=(26,380)=*(26,293)MULTIKEYHELP:t(26,381)=(26,322)PMULTIKEYHELP:t(26,382)=(26,383)=*(26,322)LPMULTIKEYHELP:t(26,384)=(26,383)/usr/include/w32api/winnls.hLCTYPE:t(27,1)=(5,1)CALTYPE:t(27,2)=(5,1)CALID:t(27,3)=(5,1)LGRPID:t(27,4)=(5,1)CALINFO_ENUMPROCA:t(27,5)=(27,6)=*(27,7)=f(5,6)CALINFO_ENUMPROCW:t(27,8)=(27,9)=*(27,10)=f(5,6)CALINFO_ENUMPROCEXA:t(27,11)=(27,12)=*(27,13)=f(5,6)CALINFO_ENUMPROCEXW:t(27,14)=(27,15)=*(27,16)=f(5,6)LANGUAGEGROUP_ENUMPROCA:t(27,17)=(27,18)=*(27,19)=f(5,6)LANGUAGEGROUP_ENUMPROCW:t(27,20)=(27,21)=*(27,22)=f(5,6)LANGGROUPLOCALE_ENUMPROCA:t(27,23)=(27,24)=*(27,25)=f(5,6)LANGGROUPLOCALE_ENUMPROCW:t(27,26)=(27,27)=*(27,28)=f(5,6)UILANGUAGE_ENUMPROCW:t(27,29)=(27,30)=*(27,31)=f(5,6)UILANGUAGE_ENUMPROCA:t(27,32)=(27,33)=*(27,34)=f(5,6)LOCALE_ENUMPROCA:t(27,35)=(27,6)LOCALE_ENUMPROCW:t(27,36)=(27,9)CODEPAGE_ENUMPROCA:t(27,37)=(27,6)CODEPAGE_ENUMPROCW:t(27,38)=(27,9)DATEFMT_ENUMPROCA:t(27,39)=(27,6)DATEFMT_ENUMPROCW:t(27,40)=(27,9)DATEFMT_ENUMPROCEXA:t(27,41)=(27,12)DATEFMT_ENUMPROCEXW:t(27,42)=(27,15)TIMEFMT_ENUMPROCA:t(27,43)=(27,6)TIMEFMT_ENUMPROCW:t(27,44)=(27,9)_cpinfo:T(27,45)=s20MaxCharSize:(5,34),0,32;DefaultChar:(6,422),32,16;LeadByte:(6,335),48,96;;CPINFO:t(27,46)=(27,45)LPCPINFO:t(27,47)=(27,48)=*(27,45)_cpinfoexA:T(27,49)=s284MaxCharSize:(5,34),0,32;DefaultChar:(6,422),32,16;LeadByte:(6,335),48,96;UnicodeDefaultChar:(6,14),144,16;CodePage:(5,34),160,32;CodePageName:(24,109),192,2080;;CPINFOEXA:t(27,50)=(27,49)LPCPINFOEXA:t(27,51)=(27,52)=*(27,49)_cpinfoexW:T(27,53)=s544MaxCharSize:(5,34),0,32;DefaultChar:(6,422),32,16;LeadByte:(6,335),48,96;UnicodeDefaultChar:(6,14),144,16;CodePage:(5,34),160,32;CodePageName:(24,115),192,4160;;CPINFOEXW:t(27,54)=(27,53)LPCPINFOEXW:t(27,55)=(27,56)=*(27,53)_currencyfmtA:T(27,57)=s32NumDigits:(5,34),0,32;LeadingZero:(5,34),32,32;Grouping:(5,34),64,32;lpDecimalSep:(6,32),96,32;lpThousandSep:(6,32),128,32;NegativeOrder:(5,34),160,32;PositiveOrder:(5,34),192,32;lpCurrencySymbol:(6,32),224,32;;CURRENCYFMTA:t(27,58)=(27,57)LPCURRENCYFMTA:t(27,59)=(27,60)=*(27,57)_currencyfmtW:T(27,61)=s32NumDigits:(5,34),0,32;LeadingZero:(5,34),32,32;Grouping:(5,34),64,32;lpDecimalSep:(6,20),96,32;lpThousandSep:(6,20),128,32;NegativeOrder:(5,34),160,32;PositiveOrder:(5,34),192,32;lpCurrencySymbol:(6,20),224,32;;CURRENCYFMTW:t(27,62)=(27,61)LPCURRENCYFMTW:t(27,63)=(27,64)=*(27,61)_numberfmtA:T(27,65)=s24NumDigits:(5,34),0,32;LeadingZero:(5,34),32,32;Grouping:(5,34),64,32;lpDecimalSep:(6,32),96,32;lpThousandSep:(6,32),128,32;NegativeOrder:(5,34),160,32;;NUMBERFMTA:t(27,66)=(27,65)LPNUMBERFMTA:t(27,67)=(27,68)=*(27,65)_numberfmtW:T(27,69)=s24NumDigits:(5,34),0,32;LeadingZero:(5,34),32,32;Grouping:(5,34),64,32;lpDecimalSep:(6,20),96,32;lpThousandSep:(6,20),128,32;NegativeOrder:(5,34),160,32;;NUMBERFMTW:t(27,70)=(27,69)LPNUMBERFMTW:t(27,71)=(27,72)=*(27,69)CPINFOEX:t(27,73)=(27,50)LPCPINFOEX:t(27,74)=(27,51)CURRENCYFMT:t(27,75)=(27,58)LPCURRENCYFMT:t(27,76)=(27,59)NUMBERFMT:t(27,77)=(27,66)LPNUMBERFMT:t(27,78)=(27,67)/usr/include/w32api/winver.htagVS_FIXEDFILEINFO:T(28,1)=s52dwSignature:(5,1),0,32;dwStrucVersion:(5,1),32,32;dwFileVersionMS:(5,1),64,32;dwFileVersionLS:(5,1),96,32;dwProductVersionMS:(5,1),128,32;dwProductVersionLS:(5,1),160,32;dwFileFlagsMask:(5,1),192,32;dwFileFlags:(5,1),224,32;dwFileOS:(5,1),256,32;dwFileType:(5,1),288,32;dwFileSubtype:(5,1),320,32;dwFileDateMS:(5,1),352,32;dwFileDateLS:(5,1),384,32;;VS_FIXEDFILEINFO:t(28,2)=(28,1)/usr/include/w32api/winnetwk.h_NETRESOURCEA:T(29,1)=s32dwScope:(5,1),0,32;dwType:(5,1),32,32;dwDisplayType:(5,1),64,32;dwUsage:(5,1),96,32;lpLocalName:(6,32),128,32;lpRemoteName:(6,32),160,32;lpComment:(6,32),192,32;lpProvider:(6,32),224,32;;NETRESOURCEA:t(29,2)=(29,1)LPNETRESOURCEA:t(29,3)=(29,4)=*(29,1)_NETRESOURCEW:T(29,5)=s32dwScope:(5,1),0,32;dwType:(5,1),32,32;dwDisplayType:(5,1),64,32;dwUsage:(5,1),96,32;lpLocalName:(6,20),128,32;lpRemoteName:(6,20),160,32;lpComment:(6,20),192,32;lpProvider:(6,20),224,32;;NETRESOURCEW:t(29,6)=(29,5)LPNETRESOURCEW:t(29,7)=(29,8)=*(29,5)_CONNECTDLGSTRUCTA:T(29,9)=s20cbStructure:(5,1),0,32;hwndOwner:(5,121),32,32;lpConnRes:(29,3),64,32;dwFlags:(5,1),96,32;dwDevNum:(5,1),128,32;;CONNECTDLGSTRUCTA:t(29,10)=(29,9)LPCONNECTDLGSTRUCTA:t(29,11)=(29,12)=*(29,9)_CONNECTDLGSTRUCTW:T(29,13)=s20cbStructure:(5,1),0,32;hwndOwner:(5,121),32,32;lpConnRes:(29,7),64,32;dwFlags:(5,1),96,32;dwDevNum:(5,1),128,32;;CONNECTDLGSTRUCTW:t(29,14)=(29,13)LPCONNECTDLGSTRUCTW:t(29,15)=(29,16)=*(29,13)_DISCDLGSTRUCTA:T(29,17)=s20cbStructure:(5,1),0,32;hwndOwner:(5,121),32,32;lpLocalName:(6,32),64,32;lpRemoteName:(6,32),96,32;dwFlags:(5,1),128,32;;DISCDLGSTRUCTA:t(29,18)=(29,17)LPDISCDLGSTRUCTA:t(29,19)=(29,20)=*(29,17)_DISCDLGSTRUCTW:T(29,21)=s20cbStructure:(5,1),0,32;hwndOwner:(5,121),32,32;lpLocalName:(6,20),64,32;lpRemoteName:(6,20),96,32;dwFlags:(5,1),128,32;;DISCDLGSTRUCTW:t(29,22)=(29,21)LPDISCDLGSTRUCTW:t(29,23)=(29,24)=*(29,21)_UNIVERSAL_NAME_INFOA:T(29,25)=s4lpUniversalName:(6,32),0,32;;UNIVERSAL_NAME_INFOA:t(29,26)=(29,25)LPUNIVERSAL_NAME_INFOA:t(29,27)=(29,28)=*(29,25)_UNIVERSAL_NAME_INFOW:T(29,29)=s4lpUniversalName:(6,20),0,32;;UNIVERSAL_NAME_INFOW:t(29,30)=(29,29)LPUNIVERSAL_NAME_INFOW:t(29,31)=(29,32)=*(29,29)_REMOTE_NAME_INFOA:T(29,33)=s12lpUniversalName:(6,32),0,32;lpConnectionName:(6,32),32,32;lpRemainingPath:(6,32),64,32;;REMOTE_NAME_INFOA:t(29,34)=(29,33)LPREMOTE_NAME_INFOA:t(29,35)=(29,36)=*(29,33)_REMOTE_NAME_INFOW:T(29,37)=s12lpUniversalName:(6,20),0,32;lpConnectionName:(6,20),32,32;lpRemainingPath:(6,20),64,32;;REMOTE_NAME_INFOW:t(29,38)=(29,37)LPREMOTE_NAME_INFOW:t(29,39)=(29,40)=*(29,37)_NETINFOSTRUCT:T(29,41)=s32cbStructure:(5,1),0,32;dwProviderVersion:(5,1),32,32;dwStatus:(5,1),64,32;dwCharacteristics:(5,1),96,32;dwHandle:(5,1),128,32;wNetType:(5,11),160,16;dwPrinters:(5,1),192,32;dwDrives:(5,1),224,32;;NETINFOSTRUCT:t(29,42)=(29,41)LPNETINFOSTRUCT:t(29,43)=(29,44)=*(29,41)PFNGETPROFILEPATHA:t(29,45)=(29,46)=*(29,47)=f(5,34)PFNGETPROFILEPATHW:t(29,48)=(29,49)=*(29,50)=f(5,34)PFNRECONCILEPROFILEA:t(29,51)=(29,52)=*(29,53)=f(5,34)PFNRECONCILEPROFILEW:t(29,54)=(29,55)=*(29,56)=f(5,34)PFNPROCESSPOLICIESA:t(29,57)=(29,58)=*(29,59)=f(5,6)PFNPROCESSPOLICIESW:t(29,60)=(29,61)=*(29,62)=f(5,6)_NETCONNECTINFOSTRUCT:T(29,63)=s20cbStructure:(5,1),0,32;dwFlags:(5,1),32,32;dwSpeed:(5,1),64,32;dwDelay:(5,1),96,32;dwOptDataSize:(5,1),128,32;;NETCONNECTINFOSTRUCT:t(29,64)=(29,63)LPNETCONNECTINFOSTRUCT:t(29,65)=(29,66)=*(29,63)NETRESOURCE:t(29,67)=(29,2)LPNETRESOURCE:t(29,68)=(29,69)=*(29,2)CONNECTDLGSTRUCT:t(29,70)=(29,10)LPCONNECTDLGSTRUCT:t(29,71)=(29,72)=*(29,10)DISCDLGSTRUCT:t(29,73)=(29,18)LPDISCDLGSTRUCT:t(29,74)=(29,75)=*(29,18)UNIVERSAL_NAME_INFO:t(29,76)=(29,26)LPUNIVERSAL_NAME_INFO:t(29,77)=(29,78)=*(29,26)REMOTE_NAME_INFO:t(29,79)=(29,34)LPREMOTE_NAME_INFO:t(29,80)=(29,81)=*(29,34)/usr/include/w32api/winreg.hREGSAM:t(30,1)=(6,72)value_entA:T(30,2)=s16ve_valuename:(6,32),0,32;ve_valuelen:(5,1),32,32;ve_valueptr:(5,1),64,32;ve_type:(5,1),96,32;;VALENTA:t(30,3)=(30,2)PVALENTA:t(30,4)=(30,5)=*(30,2)value_entW:T(30,6)=s16ve_valuename:(6,20),0,32;ve_valuelen:(5,1),32,32;ve_valueptr:(5,1),64,32;ve_type:(5,1),96,32;;VALENTW:t(30,7)=(30,6)PVALENTW:t(30,8)=(30,9)=*(30,6)VALENT:t(30,10)=(30,3)PVALENT:t(30,11)=(30,12)=*(30,3)/usr/include/w32api/winsvc.h_SERVICE_STATUS:T(31,1)=s28dwServiceType:(5,1),0,32;dwCurrentState:(5,1),32,32;dwControlsAccepted:(5,1),64,32;dwWin32ExitCode:(5,1),96,32;dwServiceSpecificExitCode:(5,1),128,32;dwCheckPoint:(5,1),160,32;dwWaitHint:(5,1),192,32;;SERVICE_STATUS:t(31,2)=(31,1)LPSERVICE_STATUS:t(31,3)=(31,4)=*(31,1)_ENUM_SERVICE_STATUSA:T(31,5)=s36lpServiceName:(6,32),0,32;lpDisplayName:(6,32),32,32;ServiceStatus:(31,2),64,224;;ENUM_SERVICE_STATUSA:t(31,6)=(31,5)LPENUM_SERVICE_STATUSA:t(31,7)=(31,8)=*(31,5)_ENUM_SERVICE_STATUSW:T(31,9)=s36lpServiceName:(6,20),0,32;lpDisplayName:(6,20),32,32;ServiceStatus:(31,2),64,224;;ENUM_SERVICE_STATUSW:t(31,10)=(31,9)LPENUM_SERVICE_STATUSW:t(31,11)=(31,12)=*(31,9)_QUERY_SERVICE_CONFIGA:T(31,13)=s36dwServiceType:(5,1),0,32;dwStartType:(5,1),32,32;dwErrorControl:(5,1),64,32;lpBinaryPathName:(6,32),96,32;lpLoadOrderGroup:(6,32),128,32;dwTagId:(5,1),160,32;lpDependencies:(6,32),192,32;lpServiceStartName:(6,32),224,32;lpDisplayName:(6,32),256,32;;QUERY_SERVICE_CONFIGA:t(31,14)=(31,13)LPQUERY_SERVICE_CONFIGA:t(31,15)=(31,16)=*(31,13)_QUERY_SERVICE_CONFIGW:T(31,17)=s36dwServiceType:(5,1),0,32;dwStartType:(5,1),32,32;dwErrorControl:(5,1),64,32;lpBinaryPathName:(6,20),96,32;lpLoadOrderGroup:(6,20),128,32;dwTagId:(5,1),160,32;lpDependencies:(6,20),192,32;lpServiceStartName:(6,20),224,32;lpDisplayName:(6,20),256,32;;QUERY_SERVICE_CONFIGW:t(31,18)=(31,17)LPQUERY_SERVICE_CONFIGW:t(31,19)=(31,20)=*(31,17)_QUERY_SERVICE_LOCK_STATUSA:T(31,21)=s12fIsLocked:(5,1),0,32;lpLockOwner:(6,32),32,32;dwLockDuration:(5,1),64,32;;QUERY_SERVICE_LOCK_STATUSA:t(31,22)=(31,21)LPQUERY_SERVICE_LOCK_STATUSA:t(31,23)=(31,24)=*(31,21)_QUERY_SERVICE_LOCK_STATUSW:T(31,25)=s12fIsLocked:(5,1),0,32;lpLockOwner:(6,20),32,32;dwLockDuration:(5,1),64,32;;QUERY_SERVICE_LOCK_STATUSW:t(31,26)=(31,25)LPQUERY_SERVICE_LOCK_STATUSW:t(31,27)=(31,28)=*(31,25)LPSERVICE_MAIN_FUNCTIONA:t(31,29)=(31,30)=*(31,31)=f(0,19)LPSERVICE_MAIN_FUNCTIONW:t(31,32)=(31,33)=*(31,34)=f(0,19)_SERVICE_TABLE_ENTRYA:T(31,35)=s8lpServiceName:(6,32),0,32;lpServiceProc:(31,29),32,32;;SERVICE_TABLE_ENTRYA:t(31,36)=(31,35)LPSERVICE_TABLE_ENTRYA:t(31,37)=(31,38)=*(31,35)_SERVICE_TABLE_ENTRYW:T(31,39)=s8lpServiceName:(6,20),0,32;lpServiceProc:(31,32),32,32;;SERVICE_TABLE_ENTRYW:t(31,40)=(31,39)LPSERVICE_TABLE_ENTRYW:t(31,41)=(31,42)=*(31,39)SC_HANDLE__:T(31,43)=s4i:(0,1),0,32;;SC_HANDLE:t(31,44)=(31,45)=*(31,43)LPSC_HANDLE:t(31,46)=(31,47)=*(31,44)SC_LOCK:t(31,48)=(5,28)SERVICE_STATUS_HANDLE:t(31,49)=(5,1)LPHANDLER_FUNCTION:t(31,50)=(24,220)ENUM_SERVICE_STATUS:t(31,51)=(31,6)LPENUM_SERVICE_STATUS:t(31,52)=(31,53)=*(31,6)QUERY_SERVICE_CONFIG:t(31,54)=(31,14)LPQUERY_SERVICE_CONFIG:t(31,55)=(31,56)=*(31,14)QUERY_SERVICE_LOCK_STATUS:t(31,57)=(31,22)LPQUERY_SERVICE_LOCK_STATUS:t(31,58)=(31,59)=*(31,22)SERVICE_TABLE_ENTRY:t(31,60)=(31,36)LPSERVICE_TABLE_ENTRY:t(31,61)=(31,62)=*(31,36)LPSERVICE_MAIN_FUNCTION:t(31,63)=(31,29)/usr/include/w32api/commdlg.h__CDHOOKPROC:t(32,1)=(32,2)=*(32,3)=f(5,34)LPCCHOOKPROC:t(32,4)=(32,1)LPCFHOOKPROC:t(32,5)=(32,1)LPFRHOOKPROC:t(32,6)=(32,1)LPOFNHOOKPROC:t(32,7)=(32,1)LPPAGEPAINTHOOK:t(32,8)=(32,1)LPPAGESETUPHOOK:t(32,9)=(32,1)LPSETUPHOOKPROC:t(32,10)=(32,1)LPPRINTHOOKPROC:t(32,11)=(32,1)tagCHOOSECOLORA:T(32,12)=s36lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,121),64,32;rgbResult:(5,131),96,32;lpCustColors:(32,13)=*(5,131),128,32;Flags:(5,1),160,32;lCustData:(5,39),192,32;lpfnHook:(32,4),224,32;lpTemplateName:(6,37),256,32;;CHOOSECOLORA:t(32,14)=(32,12)LPCHOOSECOLORA:t(32,15)=(32,16)=*(32,12)tagCHOOSECOLORW:T(32,17)=s36lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,121),64,32;rgbResult:(5,131),96,32;lpCustColors:(32,13),128,32;Flags:(5,1),160,32;lCustData:(5,39),192,32;lpfnHook:(32,4),224,32;lpTemplateName:(6,25),256,32;;CHOOSECOLORW:t(32,18)=(32,17)LPCHOOSECOLORW:t(32,19)=(32,20)=*(32,17)tagCHOOSEFONTA:T(32,21)=s60lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDC:(5,61),64,32;lpLogFont:(25,198),96,32;iPointSize:(5,33),128,32;Flags:(5,1),160,32;rgbColors:(5,1),192,32;lCustData:(5,39),224,32;lpfnHook:(32,5),256,32;lpTemplateName:(6,37),288,32;hInstance:(5,99),320,32;lpszStyle:(6,32),352,32;nFontType:(5,11),384,16;___MISSING_ALIGNMENT__:(5,11),400,16;nSizeMin:(5,33),416,32;nSizeMax:(5,33),448,32;;CHOOSEFONTA:t(32,22)=(32,21)LPCHOOSEFONTA:t(32,23)=(32,24)=*(32,21)tagCHOOSEFONTW:T(32,25)=s60lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDC:(5,61),64,32;lpLogFont:(25,203),96,32;iPointSize:(5,33),128,32;Flags:(5,1),160,32;rgbColors:(5,1),192,32;lCustData:(5,39),224,32;lpfnHook:(32,5),256,32;lpTemplateName:(6,25),288,32;hInstance:(5,99),320,32;lpszStyle:(6,20),352,32;nFontType:(5,11),384,16;___MISSING_ALIGNMENT__:(5,11),400,16;nSizeMin:(5,33),416,32;nSizeMax:(5,33),448,32;;CHOOSEFONTW:t(32,26)=(32,25)LPCHOOSEFONTW:t(32,27)=(32,28)=*(32,25)tagDEVNAMES:T(32,29)=s8wDriverOffset:(5,11),0,16;wDeviceOffset:(5,11),16,16;wOutputOffset:(5,11),32,16;wDefault:(5,11),48,16;;DEVNAMES:t(32,30)=(32,29)LPDEVNAMES:t(32,31)=(32,32)=*(32,29)FINDREPLACEA:t(32,33)=(32,34)=s40lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;Flags:(5,1),96,32;lpstrFindWhat:(6,32),128,32;lpstrReplaceWith:(6,32),160,32;wFindWhatLen:(5,11),192,16;wReplaceWithLen:(5,11),208,16;lCustData:(5,39),224,32;lpfnHook:(32,6),256,32;lpTemplateName:(6,37),288,32;;LPFINDREPLACEA:t(32,35)=(32,36)=*(32,34)FINDREPLACEW:t(32,37)=(32,38)=s40lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;Flags:(5,1),96,32;lpstrFindWhat:(6,20),128,32;lpstrReplaceWith:(6,20),160,32;wFindWhatLen:(5,11),192,16;wReplaceWithLen:(5,11),208,16;lCustData:(5,39),224,32;lpfnHook:(32,6),256,32;lpTemplateName:(6,25),288,32;;LPFINDREPLACEW:t(32,39)=(32,40)=*(32,38)tagOFNA:T(32,41)=s76lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;lpstrFilter:(6,37),96,32;lpstrCustomFilter:(6,32),128,32;nMaxCustFilter:(5,1),160,32;nFilterIndex:(5,1),192,32;lpstrFile:(6,32),224,32;nMaxFile:(5,1),256,32;lpstrFileTitle:(6,32),288,32;nMaxFileTitle:(5,1),320,32;lpstrInitialDir:(6,37),352,32;lpstrTitle:(6,37),384,32;Flags:(5,1),416,32;nFileOffset:(5,11),448,16;nFileExtension:(5,11),464,16;lpstrDefExt:(6,37),480,32;lCustData:(5,1),512,32;lpfnHook:(32,7),544,32;lpTemplateName:(6,37),576,32;;OPENFILENAMEA:t(32,42)=(32,41)LPOPENFILENAMEA:t(32,43)=(32,44)=*(32,41)tagOFNW:T(32,45)=s76lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hInstance:(5,99),64,32;lpstrFilter:(6,25),96,32;lpstrCustomFilter:(6,20),128,32;nMaxCustFilter:(5,1),160,32;nFilterIndex:(5,1),192,32;lpstrFile:(6,20),224,32;nMaxFile:(5,1),256,32;lpstrFileTitle:(6,20),288,32;nMaxFileTitle:(5,1),320,32;lpstrInitialDir:(6,25),352,32;lpstrTitle:(6,25),384,32;Flags:(5,1),416,32;nFileOffset:(5,11),448,16;nFileExtension:(5,11),464,16;lpstrDefExt:(6,25),480,32;lCustData:(5,1),512,32;lpfnHook:(32,7),544,32;lpTemplateName:(6,25),576,32;;OPENFILENAMEW:t(32,46)=(32,45)LPOPENFILENAMEW:t(32,47)=(32,48)=*(32,45)_OFNOTIFYA:T(32,49)=s20hdr:(26,145),0,96;lpOFN:(32,43),96,32;pszFile:(6,32),128,32;;OFNOTIFYA:t(32,50)=(32,49)LPOFNOTIFYA:t(32,51)=(32,52)=*(32,49)_OFNOTIFYW:T(32,53)=s20hdr:(26,145),0,96;lpOFN:(32,47),96,32;pszFile:(6,20),128,32;;OFNOTIFYW:t(32,54)=(32,53)LPOFNOTIFYW:t(32,55)=(32,56)=*(32,53)tagPSDA:T(32,57)=s84lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDevMode:(5,43),64,32;hDevNames:(5,43),96,32;Flags:(5,1),128,32;ptPaperSize:(5,152),160,64;rtMinMargin:(5,138),224,128;rtMargin:(5,138),352,128;hInstance:(5,99),480,32;lCustData:(5,39),512,32;lpfnPageSetupHook:(32,9),544,32;lpfnPagePaintHook:(32,8),576,32;lpPageSetupTemplateName:(6,37),608,32;hPageSetupTemplate:(5,43),640,32;;PAGESETUPDLGA:t(32,58)=(32,57)LPPAGESETUPDLGA:t(32,59)=(32,60)=*(32,57)tagPSDW:T(32,61)=s84lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDevMode:(5,43),64,32;hDevNames:(5,43),96,32;Flags:(5,1),128,32;ptPaperSize:(5,152),160,64;rtMinMargin:(5,138),224,128;rtMargin:(5,138),352,128;hInstance:(5,99),480,32;lCustData:(5,39),512,32;lpfnPageSetupHook:(32,9),544,32;lpfnPagePaintHook:(32,8),576,32;lpPageSetupTemplateName:(6,25),608,32;hPageSetupTemplate:(5,43),640,32;;PAGESETUPDLGW:t(32,62)=(32,61)LPPAGESETUPDLGW:t(32,63)=(32,64)=*(32,61)tagPDA:T(32,65)=s66lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDevMode:(6,54),64,32;hDevNames:(6,54),96,32;hDC:(5,61),128,32;Flags:(5,1),160,32;nFromPage:(5,11),192,16;nToPage:(5,11),208,16;nMinPage:(5,11),224,16;nMaxPage:(5,11),240,16;nCopies:(5,11),256,16;hInstance:(5,99),272,32;lCustData:(5,1),304,32;lpfnPrintHook:(32,11),336,32;lpfnSetupHook:(32,10),368,32;lpPrintTemplateName:(6,37),400,32;lpSetupTemplateName:(6,37),432,32;hPrintTemplate:(6,54),464,32;hSetupTemplate:(6,54),496,32;;PRINTDLGA:t(32,66)=(32,65)LPPRINTDLGA:t(32,67)=(32,68)=*(32,65)tagPDW:T(32,69)=s66lStructSize:(5,1),0,32;hwndOwner:(5,121),32,32;hDevMode:(6,54),64,32;hDevNames:(6,54),96,32;hDC:(5,61),128,32;Flags:(5,1),160,32;nFromPage:(5,11),192,16;nToPage:(5,11),208,16;nMinPage:(5,11),224,16;nMaxPage:(5,11),240,16;nCopies:(5,11),256,16;hInstance:(5,99),272,32;lCustData:(5,1),304,32;lpfnPrintHook:(32,11),336,32;lpfnSetupHook:(32,10),368,32;lpPrintTemplateName:(6,25),400,32;lpSetupTemplateName:(6,25),432,32;hPrintTemplate:(6,54),464,32;hSetupTemplate:(6,54),496,32;;PRINTDLGW:t(32,70)=(32,69)LPPRINTDLGW:t(32,71)=(32,72)=*(32,69)CHOOSECOLOR:t(32,73)=(32,14)LPCHOOSECOLOR:t(32,74)=(32,75)=*(32,14)CHOOSEFONT:t(32,76)=(32,22)LPCHOOSEFONT:t(32,77)=(32,78)=*(32,22)FINDREPLACE:t(32,79)=(32,33)LPFINDREPLACE:t(32,80)=(32,81)=*(32,33)OPENFILENAME:t(32,82)=(32,42)LPOPENFILENAME:t(32,83)=(32,84)=*(32,42)OFNOTIFY:t(32,85)=(32,50)LPOFNOTIFY:t(32,86)=(32,87)=*(32,50)PAGESETUPDLG:t(32,88)=(32,58)LPPAGESETUPDLG:t(32,89)=(32,90)=*(32,58)PRINTDLG:t(32,91)=(32,66)LPPRINTDLG:t(32,92)=(32,93)=*(32,66)/usr/include/w32api/cderr.h/usr/include/w32api/dde.hDDEACK:t(34,1)=(34,2)=s2bAppReturnCode:(0,9),0,8;reserved:(0,9),8,6;fBusy:(0,9),14,1;fAck:(0,9),15,1;;DDEADVISE:t(34,3)=(34,4)=s4reserved:(0,9),0,14;fDeferUpd:(0,9),14,1;fAckReq:(0,9),15,1;cfFormat:(0,8),16,16;;DDEDATA:t(34,5)=(34,6)=s6unused:(0,9),0,12;fResponse:(0,9),12,1;fRelease:(0,9),13,1;reserved:(0,9),14,1;fAckReq:(0,9),15,1;cfFormat:(0,8),16,16;Value:(6,304),32,8;;DDEPOKE:t(34,7)=(34,8)=s6unused:(0,9),0,13;fRelease:(0,9),13,1;fReserved:(0,9),14,2;cfFormat:(0,8),16,16;Value:(6,304),32,8;;DDELN:t(34,9)=(34,10)=s4unused:(0,9),0,13;fRelease:(0,9),13,1;fDeferUpd:(0,9),14,1;fAckReq:(0,9),15,1;cfFormat:(0,8),16,16;;DDEUP:t(34,11)=(34,12)=s6unused:(0,9),0,12;fAck:(0,9),12,1;fRelease:(0,9),13,1;fReserved:(0,9),14,1;fAckReq:(0,9),15,1;cfFormat:(0,8),16,16;rgb:(6,304),32,8;;/usr/include/w32api/ddeml.hHCONVLIST__:T(35,1)=s4i:(0,1),0,32;;HCONVLIST:t(35,2)=(35,3)=*(35,1)HCONV__:T(35,4)=s4i:(0,1),0,32;;HCONV:t(35,5)=(35,6)=*(35,4)HSZ__:T(35,7)=s4i:(0,1),0,32;;HSZ:t(35,8)=(35,9)=*(35,7)HDDEDATA__:T(35,10)=s4i:(0,1),0,32;;HDDEDATA:t(35,11)=(35,12)=*(35,10)FNCALLBACK:t(35,13)=(35,14)=f(35,11)PFNCALLBACK:t(35,15)=(35,16)=*(35,14)tagHSZPAIR:T(35,17)=s8hszSvc:(35,8),0,32;hszTopic:(35,8),32,32;;HSZPAIR:t(35,18)=(35,17)PHSZPAIR:t(35,19)=(35,20)=*(35,17)tagCONVCONTEXT:T(35,21)=s36cb:(5,34),0,32;wFlags:(5,34),32,32;wCountryID:(5,34),64,32;iCodePage:(0,1),96,32;dwLangID:(5,1),128,32;dwSecurity:(5,1),160,32;qos:(6,172),192,96;;CONVCONTEXT:t(35,22)=(35,21)PCONVCONTEXT:t(35,23)=(35,24)=*(35,21)tagCONVINFO:T(35,25)=s96cb:(5,1),0,32;hUser:(5,1),32,32;hConvPartner:(35,5),64,32;hszSvcPartner:(35,8),96,32;hszServiceReq:(35,8),128,32;hszTopic:(35,8),160,32;hszItem:(35,8),192,32;wFmt:(5,34),224,32;wType:(5,34),256,32;wStatus:(5,34),288,32;wConvst:(5,34),320,32;wLastError:(5,34),352,32;hConvList:(35,2),384,32;ConvCtxt:(35,22),416,288;hwnd:(5,121),704,32;hwndPartner:(5,121),736,32;;CONVINFO:t(35,26)=(35,25)PCONVINFO:t(35,27)=(35,28)=*(35,25)tagDDEML_MSG_HOOK_DATA:T(35,29)=s44uiLo:(5,34),0,32;uiHi:(5,34),32,32;cbData:(5,1),64,32;Data:(35,30)=ar(0,1);0;7;(5,1),96,256;;DDEML_MSG_HOOK_DATA:t(35,31)=(35,29)/usr/include/w32api/dlgs.htagCRGB:T(36,1)=s4bRed:(5,10),0,8;bGreen:(5,10),8,8;bBlue:(5,10),16,8;bExtra:(5,10),24,8;;CRGB:t(36,2)=(36,1)/usr/include/w32api/lzexpand.h/usr/include/w32api/mmsystem.hMCIERROR:t(38,1)=(5,1)MCIDEVICEID:t(38,2)=(5,34)YIELDPROC:t(38,3)=(38,4)=*(38,5)=f(5,34)MMVERSION:t(38,6)=(5,34)MMRESULT:t(38,7)=(5,34)mmtime_tag:T(38,8)=s12wType:(5,34),0,32;u:(38,9)=u8ms:(5,1),0,32;sample:(5,1),0,32;cb:(5,1),0,32;ticks:(5,1),0,32;smpte:(38,10)=s8hour:(5,10),0,8;min:(5,10),8,8;sec:(5,10),16,8;frame:(5,10),24,8;fps:(5,10),32,8;dummy:(5,10),40,8;pad:(6,422),48,16;;,0,64;midi:(38,11)=s4songptrpos:(5,1),0,32;;,0,32;;,32,64;;MMTIME:t(38,12)=(38,8)PMMTIME:t(38,13)=(38,14)=*(38,8)LPMMTIME:t(38,15)=(38,14)HDRVR__:T(38,16)=s4i:(0,1),0,32;;HDRVR:t(38,17)=(38,18)=*(38,16)tagDRVCONFIGINFO:T(38,19)=s12dwDCISize:(5,1),0,32;lpszDCISectionName:(6,25),32,32;lpszDCIAliasName:(6,25),64,32;;DRVCONFIGINFO:t(38,20)=(38,19)PDRVCONFIGINFO:t(38,21)=(38,22)=*(38,19)LPDRVCONFIGINFO:t(38,23)=(38,22)DRVCONFIGINFOEX:T(38,24)=s16dwDCISize:(5,1),0,32;lpszDCISectionName:(6,25),32,32;lpszDCIAliasName:(6,25),64,32;dnDevNode:(5,1),96,32;;DRVCONFIGINFOEX:t(38,25)=(38,24)PDRVCONFIGINFOEX:t(38,26)=(38,27)=*(38,24)LPDRVCONFIGINFOEX:t(38,28)=(38,27)DRIVERPROC:t(38,29)=(38,30)=*(38,31)=f(5,40)DRVCALLBACK:t(38,32)=(38,33)=f(0,19)LPDRVCALLBACK:t(38,34)=(38,35)=*(38,32)PDRVCALLBACK:t(38,36)=(38,35)HWAVE__:T(38,37)=s4i:(0,1),0,32;;HWAVE:t(38,38)=(38,39)=*(38,37)HWAVEIN__:T(38,40)=s4i:(0,1),0,32;;HWAVEIN:t(38,41)=(38,42)=*(38,40)HWAVEOUT__:T(38,43)=s4i:(0,1),0,32;;HWAVEOUT:t(38,44)=(38,45)=*(38,43)LPHWAVEIN:t(38,46)=(38,47)=*(38,41)LPHWAVEOUT:t(38,48)=(38,49)=*(38,44)WAVECALLBACK:t(38,50)=(38,32)LPWAVECALLBACK:t(38,51)=(38,52)=*(38,50)wavehdr_tag:T(38,53)=s32lpData:(6,32),0,32;dwBufferLength:(5,1),32,32;dwBytesRecorded:(5,1),64,32;dwUser:(5,1),96,32;dwFlags:(5,1),128,32;dwLoops:(5,1),160,32;lpNext:(38,54)=*(38,53),192,32;reserved:(5,1),224,32;;WAVEHDR:t(38,55)=(38,53)PWAVEHDR:t(38,56)=(38,54)LPWAVEHDR:t(38,57)=(38,54)tagWAVEOUTCAPSA:T(38,58)=s52wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;dwFormats:(5,1),320,32;wChannels:(5,11),352,16;wReserved1:(5,11),368,16;dwSupport:(5,1),384,32;;WAVEOUTCAPSA:t(38,59)=(38,58)PWAVEOUTCAPSA:t(38,60)=(38,61)=*(38,58)LPWAVEOUTCAPSA:t(38,62)=(38,61)tagWAVEOUTCAPSW:T(38,63)=s84wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;dwFormats:(5,1),576,32;wChannels:(5,11),608,16;wReserved1:(5,11),624,16;dwSupport:(5,1),640,32;;WAVEOUTCAPSW:t(38,64)=(38,63)PWAVEOUTCAPSW:t(38,65)=(38,66)=*(38,63)LPWAVEOUTCAPSW:t(38,67)=(38,66)tagWAVEINCAPSA:T(38,68)=s48wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;dwFormats:(5,1),320,32;wChannels:(5,11),352,16;wReserved1:(5,11),368,16;;WAVEINCAPSA:t(38,69)=(38,68)PWAVEINCAPSA:t(38,70)=(38,71)=*(38,68)LPWAVEINCAPSA:t(38,72)=(38,71)tagWAVEINCAPSW:T(38,73)=s80wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;dwFormats:(5,1),576,32;wChannels:(5,11),608,16;wReserved1:(5,11),624,16;;WAVEINCAPSW:t(38,74)=(38,73)PWAVEINCAPSW:t(38,75)=(38,76)=*(38,73)LPWAVEINCAPSW:t(38,77)=(38,76)waveformat_tag:T(38,78)=s14wFormatTag:(5,11),0,16;nChannels:(5,11),16,16;nSamplesPerSec:(5,1),32,32;nAvgBytesPerSec:(5,1),64,32;nBlockAlign:(5,11),96,16;;WAVEFORMAT:t(38,79)=(38,78)PWAVEFORMAT:t(38,80)=(38,81)=*(38,78)LPWAVEFORMAT:t(38,82)=(38,81)pcmwaveformat_tag:T(38,83)=s16wf:(38,79),0,112;wBitsPerSample:(5,11),112,16;;PCMWAVEFORMAT:t(38,84)=(38,83)PPCMWAVEFORMAT:t(38,85)=(38,86)=*(38,83)LPPCMWAVEFORMAT:t(38,87)=(38,86)tWAVEFORMATEX:T(38,88)=s18wFormatTag:(5,11),0,16;nChannels:(5,11),16,16;nSamplesPerSec:(5,1),32,32;nAvgBytesPerSec:(5,1),64,32;nBlockAlign:(5,11),96,16;wBitsPerSample:(5,11),112,16;cbSize:(5,11),128,16;;WAVEFORMATEX:t(38,89)=(38,88)PWAVEFORMATEX:t(38,90)=(38,91)=*(38,88)LPWAVEFORMATEX:t(38,92)=(38,91)LPCWAVEFORMATEX:t(38,93)=(38,94)=*(38,89)HMIDI__:T(38,95)=s4i:(0,1),0,32;;HMIDI:t(38,96)=(38,97)=*(38,95)HMIDIIN__:T(38,98)=s4i:(0,1),0,32;;HMIDIIN:t(38,99)=(38,100)=*(38,98)HMIDIOUT__:T(38,101)=s4i:(0,1),0,32;;HMIDIOUT:t(38,102)=(38,103)=*(38,101)HMIDISTRM__:T(38,104)=s4i:(0,1),0,32;;HMIDISTRM:t(38,105)=(38,106)=*(38,104)LPHMIDI:t(38,107)=(38,108)=*(38,96)LPHMIDIIN:t(38,109)=(38,110)=*(38,99)LPHMIDIOUT:t(38,111)=(38,112)=*(38,102)LPHMIDISTRM:t(38,113)=(38,114)=*(38,105)MIDICALLBACK:t(38,115)=(38,32)LPMIDICALLBACK:t(38,116)=(38,117)=*(38,115)PATCHARRAY:t(38,118)=(38,119)=ar(0,1);0;127;(5,11)LPPATCHARRAY:t(38,120)=(5,21)KEYARRAY:t(38,121)=(38,119)LPKEYARRAY:t(38,122)=(5,21)tagMIDIOUTCAPSA:T(38,123)=s52wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;wTechnology:(5,11),320,16;wVoices:(5,11),336,16;wNotes:(5,11),352,16;wChannelMask:(5,11),368,16;dwSupport:(5,1),384,32;;MIDIOUTCAPSA:t(38,124)=(38,123)PMIDIOUTCAPSA:t(38,125)=(38,126)=*(38,123)LPMIDIOUTCAPSA:t(38,127)=(38,126)tagMIDIOUTCAPSW:T(38,128)=s84wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;wTechnology:(5,11),576,16;wVoices:(5,11),592,16;wNotes:(5,11),608,16;wChannelMask:(5,11),624,16;dwSupport:(5,1),640,32;;MIDIOUTCAPSW:t(38,129)=(38,128)PMIDIOUTCAPSW:t(38,130)=(38,131)=*(38,128)LPMIDIOUTCAPSW:t(38,132)=(38,131)tagMIDIINCAPSA:T(38,133)=s44wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;dwSupport:(5,1),320,32;;MIDIINCAPSA:t(38,134)=(38,133)PMIDIINCAPSA:t(38,135)=(38,136)=*(38,133)LPMIDIINCAPSA:t(38,137)=(38,136)tagMIDIINCAPSW:T(38,138)=s76wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;dwSupport:(5,1),576,32;;MIDIINCAPSW:t(38,139)=(38,138)PMIDIINCAPSW:t(38,140)=(38,141)=*(38,138)NPMIDIINCAPSW:t(38,142)=(38,141)LPMIDIINCAPSW:t(38,143)=(38,141)midihdr_tag:T(38,144)=s64lpData:(6,32),0,32;dwBufferLength:(5,1),32,32;dwBytesRecorded:(5,1),64,32;dwUser:(5,1),96,32;dwFlags:(5,1),128,32;lpNext:(38,145)=*(38,144),160,32;reserved:(5,1),192,32;dwOffset:(5,1),224,32;dwReserved:(35,30),256,256;;MIDIHDR:t(38,146)=(38,144)PMIDIHDR:t(38,147)=(38,145)LPMIDIHDR:t(38,148)=(38,145)midievent_tag:T(38,149)=s16dwDeltaTime:(5,1),0,32;dwStreamID:(5,1),32,32;dwEvent:(5,1),64,32;dwParms:(6,188),96,32;;MIDIEVENT:t(38,150)=(38,149)midistrmbuffver_tag:T(38,151)=s12dwVersion:(5,1),0,32;dwMid:(5,1),32,32;dwOEMVersion:(5,1),64,32;;MIDISTRMBUFFVER:t(38,152)=(38,151)midiproptimediv_tag:T(38,153)=s8cbStruct:(5,1),0,32;dwTimeDiv:(5,1),32,32;;MIDIPROPTIMEDIV:t(38,154)=(38,153)LPMIDIPROPTIMEDIV:t(38,155)=(38,156)=*(38,153)midiproptempo_tag:T(38,157)=s8cbStruct:(5,1),0,32;dwTempo:(5,1),32,32;;MIDIPROPTEMPO:t(38,158)=(38,157)LPMIDIPROPTEMPO:t(38,159)=(38,160)=*(38,157)tagAUXCAPSA:T(38,161)=s48wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;wTechnology:(5,11),320,16;wReserved1:(5,11),336,16;dwSupport:(5,1),352,32;;AUXCAPSA:t(38,162)=(38,161)PAUXCAPSA:t(38,163)=(38,164)=*(38,161)LPAUXCAPSA:t(38,165)=(38,164)tagAUXCAPSW:T(38,166)=s80wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;wTechnology:(5,11),576,16;wReserved1:(5,11),592,16;dwSupport:(5,1),608,32;;AUXCAPSW:t(38,167)=(38,166)PAUXCAPSW:t(38,168)=(38,169)=*(38,166)LPAUXCAPSW:t(38,170)=(38,169)HMIXEROBJ__:T(38,171)=s4i:(0,1),0,32;;HMIXEROBJ:t(38,172)=(38,173)=*(38,171)LPHMIXEROBJ:t(38,174)=(38,175)=*(38,172)HMIXER__:T(38,176)=s4i:(0,1),0,32;;HMIXER:t(38,177)=(38,178)=*(38,176)LPHMIXER:t(38,179)=(38,180)=*(38,177)tagMIXERCAPSA:T(38,181)=s48wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(25,194),64,256;fdwSupport:(5,1),320,32;cDestinations:(5,1),352,32;;MIXERCAPSA:t(38,182)=(38,181)PMIXERCAPSA:t(38,183)=(38,184)=*(38,181)LPMIXERCAPSA:t(38,185)=(38,184)tagMIXERCAPSW:T(38,186)=s80wMid:(5,11),0,16;wPid:(5,11),16,16;vDriverVersion:(38,6),32,32;szPname:(24,153),64,512;fdwSupport:(5,1),576,32;cDestinations:(5,1),608,32;;MIXERCAPSW:t(38,187)=(38,186)PMIXERCAPSW:t(38,188)=(38,189)=*(38,186)LPMIXERCAPSW:t(38,190)=(38,189)tagMIXERLINEA:T(38,191)=s168cbStruct:(5,1),0,32;dwDestination:(5,1),32,32;dwSource:(5,1),64,32;dwLineID:(5,1),96,32;fdwLine:(5,1),128,32;dwUser:(5,1),160,32;dwComponentType:(5,1),192,32;cChannels:(5,1),224,32;cConnections:(5,1),256,32;cControls:(5,1),288,32;szShortName:(38,192)=ar(0,1);0;15;(6,1),320,128;szName:(38,193)=ar(0,1);0;63;(6,1),448,512;Target:(38,194)=s48dwType:(5,1),0,32;dwDeviceID:(5,1),32,32;wMid:(5,11),64,16;wPid:(5,11),80,16;vDriverVersion:(38,6),96,32;szPname:(25,194),128,256;;,960,384;;MIXERLINEA:t(38,195)=(38,191)PMIXERLINEA:t(38,196)=(38,197)=*(38,191)LPMIXERLINEA:t(38,198)=(38,197)tagMIXERLINEW:T(38,199)=s280cbStruct:(5,1),0,32;dwDestination:(5,1),32,32;dwSource:(5,1),64,32;dwLineID:(5,1),96,32;fdwLine:(5,1),128,32;dwUser:(5,1),160,32;dwComponentType:(5,1),192,32;cChannels:(5,1),224,32;cConnections:(5,1),256,32;cControls:(5,1),288,32;szShortName:(38,200)=ar(0,1);0;15;(6,14),320,256;szName:(25,212),576,1024;Target:(38,201)=s80dwType:(5,1),0,32;dwDeviceID:(5,1),32,32;wMid:(5,11),64,16;wPid:(5,11),80,16;vDriverVersion:(38,6),96,32;szPname:(24,153),128,512;;,1600,640;;MIXERLINEW:t(38,202)=(38,199)PMIXERLINEW:t(38,203)=(38,204)=*(38,199)LPMIXERLINEW:t(38,205)=(38,204)tagMIXERCONTROLA:T(38,206)=s148cbStruct:(5,1),0,32;dwControlID:(5,1),32,32;dwControlType:(5,1),64,32;fdwControl:(5,1),96,32;cMultipleItems:(5,1),128,32;szShortName:(38,192),160,128;szName:(38,193),288,512;Bounds:(38,207)=u24:(38,208)=s8lMinimum:(6,3),0,32;lMaximum:(6,3),32,32;;,0,64;:(38,209)=s8dwMinimum:(5,1),0,32;dwMaximum:(5,1),32,32;;,0,64;dwReserved:(38,210)=ar(0,1);0;5;(5,1),0,192;;,800,192;Metrics:(38,211)=u24cSteps:(5,1),0,32;cbCustomData:(5,1),0,32;dwReserved:(38,210),0,192;;,992,192;;MIXERCONTROLA:t(38,212)=(38,206)PMIXERCONTROLA:t(38,213)=(38,214)=*(38,206)LPMIXERCONTROLA:t(38,215)=(38,214)tagMIXERCONTROLW:T(38,216)=s228cbStruct:(5,1),0,32;dwControlID:(5,1),32,32;dwControlType:(5,1),64,32;fdwControl:(5,1),96,32;cMultipleItems:(5,1),128,32;szShortName:(38,200),160,256;szName:(25,212),416,1024;Bounds:(38,217)=u24:(38,218)=s8lMinimum:(6,3),0,32;lMaximum:(6,3),32,32;;,0,64;:(38,219)=s8dwMinimum:(5,1),0,32;dwMaximum:(5,1),32,32;;,0,64;dwReserved:(38,210),0,192;;,1440,192;Metrics:(38,220)=u24cSteps:(5,1),0,32;cbCustomData:(5,1),0,32;dwReserved:(38,210),0,192;;,1632,192;;MIXERCONTROLW:t(38,221)=(38,216)PMIXERCONTROLW:t(38,222)=(38,223)=*(38,216)LPMIXERCONTROLW:t(38,224)=(38,223)tagMIXERLINECONTROLSA:T(38,225)=s24cbStruct:(5,1),0,32;dwLineID:(5,1),32,32;:(38,226)=u4dwControlID:(5,1),0,32;dwControlType:(5,1),0,32;;,64,32;cControls:(5,1),96,32;cbmxctrl:(5,1),128,32;pamxctrl:(38,215),160,32;;MIXERLINECONTROLSA:t(38,227)=(38,225)PMIXERLINECONTROLSA:t(38,228)=(38,229)=*(38,225)LPMIXERLINECONTROLSA:t(38,230)=(38,229)tagMIXERLINECONTROLSW:T(38,231)=s24cbStruct:(5,1),0,32;dwLineID:(5,1),32,32;:(38,232)=u4dwControlID:(5,1),0,32;dwControlType:(5,1),0,32;;,64,32;cControls:(5,1),96,32;cbmxctrl:(5,1),128,32;pamxctrl:(38,224),160,32;;MIXERLINECONTROLSW:t(38,233)=(38,231)PMIXERLINECONTROLSW:t(38,234)=(38,235)=*(38,231)LPMIXERLINECONTROLSW:t(38,236)=(38,235)tMIXERCONTROLDETAILS:T(38,237)=s24cbStruct:(5,1),0,32;dwControlID:(5,1),32,32;cChannels:(5,1),64,32;:(38,238)=u4hwndOwner:(5,121),0,32;cMultipleItems:(5,1),0,32;;,96,32;cbDetails:(5,1),128,32;paDetails:(5,28),160,32;;MIXERCONTROLDETAILS:t(38,239)=(38,237)PMIXERCONTROLDETAILS:t(38,240)=(38,241)=*(38,237)LPMIXERCONTROLDETAILS:t(38,242)=(38,241)tagMIXERCONTROLDETAILS_LISTTEXTA:T(38,243)=s72dwParam1:(5,1),0,32;dwParam2:(5,1),32,32;szName:(38,193),64,512;;MIXERCONTROLDETAILS_LISTTEXTA:t(38,244)=(38,243)PMIXERCONTROLDETAILS_LISTTEXTA:t(38,245)=(38,246)=*(38,243)LPMIXERCONTROLDETAILS_LISTTEXTA:t(38,247)=(38,246)tagMIXERCONTROLDETAILS_LISTTEXTW:T(38,248)=s136dwParam1:(5,1),0,32;dwParam2:(5,1),32,32;szName:(25,212),64,1024;;MIXERCONTROLDETAILS_LISTTEXTW:t(38,249)=(38,248)PMIXERCONTROLDETAILS_LISTTEXTW:t(38,250)=(38,251)=*(38,248)LPMIXERCONTROLDETAILS_LISTTEXTW:t(38,252)=(38,251)tMIXERCONTROLDETAILS_BOOLEAN:T(38,253)=s4fValue:(6,3),0,32;;MIXERCONTROLDETAILS_BOOLEAN:t(38,254)=(38,253)PMIXERCONTROLDETAILS_BOOLEAN:t(38,255)=(38,256)=*(38,253)LPMIXERCONTROLDETAILS_BOOLEAN:t(38,257)=(38,256)tMIXERCONTROLDETAILS_SIGNED:T(38,258)=s4lValue:(6,3),0,32;;MIXERCONTROLDETAILS_SIGNED:t(38,259)=(38,258)PMIXERCONTROLDETAILS_SIGNED:t(38,260)=(38,261)=*(38,258)LPMIXERCONTROLDETAILS_SIGNED:t(38,262)=(38,261)tMIXERCONTROLDETAILS_UNSIGNED:T(38,263)=s4dwValue:(5,1),0,32;;MIXERCONTROLDETAILS_UNSIGNED:t(38,264)=(38,263)PMIXERCONTROLDETAILS_UNSIGNED:t(38,265)=(38,266)=*(38,263)LPMIXERCONTROLDETAILS_UNSIGNED:t(38,267)=(38,266)TIMECALLBACK:t(38,268)=(38,269)=f(0,19)LPTIMECALLBACK:t(38,270)=(38,271)=*(38,268)timecaps_tag:T(38,272)=s8wPeriodMin:(5,34),0,32;wPeriodMax:(5,34),32,32;;TIMECAPS:t(38,273)=(38,272)PTIMECAPS:t(38,274)=(38,275)=*(38,272)LPTIMECAPS:t(38,276)=(38,275)tagJOYCAPSA:T(38,277)=s404wMid:(5,11),0,16;wPid:(5,11),16,16;szPname:(25,194),32,256;wXmin:(5,34),288,32;wXmax:(5,34),320,32;wYmin:(5,34),352,32;wYmax:(5,34),384,32;wZmin:(5,34),416,32;wZmax:(5,34),448,32;wNumButtons:(5,34),480,32;wPeriodMin:(5,34),512,32;wPeriodMax:(5,34),544,32;wRmin:(5,34),576,32;wRmax:(5,34),608,32;wUmin:(5,34),640,32;wUmax:(5,34),672,32;wVmin:(5,34),704,32;wVmax:(5,34),736,32;wCaps:(5,34),768,32;wMaxAxes:(5,34),800,32;wNumAxes:(5,34),832,32;wMaxButtons:(5,34),864,32;szRegKey:(25,194),896,256;szOEMVxD:(24,109),1152,2080;;JOYCAPSA:t(38,278)=(38,277)PJOYCAPSA:t(38,279)=(38,280)=*(38,277)LPJOYCAPSA:t(38,281)=(38,280)tagJOYCAPSW:T(38,282)=s728wMid:(5,11),0,16;wPid:(5,11),16,16;szPname:(24,153),32,512;wXmin:(5,34),544,32;wXmax:(5,34),576,32;wYmin:(5,34),608,32;wYmax:(5,34),640,32;wZmin:(5,34),672,32;wZmax:(5,34),704,32;wNumButtons:(5,34),736,32;wPeriodMin:(5,34),768,32;wPeriodMax:(5,34),800,32;wRmin:(5,34),832,32;wRmax:(5,34),864,32;wUmin:(5,34),896,32;wUmax:(5,34),928,32;wVmin:(5,34),960,32;wVmax:(5,34),992,32;wCaps:(5,34),1024,32;wMaxAxes:(5,34),1056,32;wNumAxes:(5,34),1088,32;wMaxButtons:(5,34),1120,32;szRegKey:(24,153),1152,512;szOEMVxD:(24,115),1664,4160;;JOYCAPSW:t(38,283)=(38,282)PJOYCAPSW:t(38,284)=(38,285)=*(38,282)LPJOYCAPSW:t(38,286)=(38,285)joyinfo_tag:T(38,287)=s16wXpos:(5,34),0,32;wYpos:(5,34),32,32;wZpos:(5,34),64,32;wButtons:(5,34),96,32;;JOYINFO:t(38,288)=(38,287)PJOYINFO:t(38,289)=(38,290)=*(38,287)LPJOYINFO:t(38,291)=(38,290)joyinfoex_tag:T(38,292)=s52dwSize:(5,1),0,32;dwFlags:(5,1),32,32;dwXpos:(5,1),64,32;dwYpos:(5,1),96,32;dwZpos:(5,1),128,32;dwRpos:(5,1),160,32;dwUpos:(5,1),192,32;dwVpos:(5,1),224,32;dwButtons:(5,1),256,32;dwButtonNumber:(5,1),288,32;dwPOV:(5,1),320,32;dwReserved1:(5,1),352,32;dwReserved2:(5,1),384,32;;JOYINFOEX:t(38,293)=(38,292)PJOYINFOEX:t(38,294)=(38,295)=*(38,292)LPJOYINFOEX:t(38,296)=(38,295)FOURCC:t(38,297)=(5,1)HPSTR:t(38,298)=(15,13)HMMIO__:T(38,299)=s4i:(0,1),0,32;;HMMIO:t(38,300)=(38,301)=*(38,299)MMIOPROC:t(38,302)=(38,303)=f(5,40)LPMMIOPROC:t(38,304)=(38,305)=*(38,302)_MMIOINFO:T(38,306)=s72dwFlags:(5,1),0,32;fccIOProc:(38,297),32,32;pIOProc:(38,304),64,32;wErrorRet:(5,34),96,32;htask:(5,118),128,32;cchBuffer:(6,3),160,32;pchBuffer:(38,298),192,32;pchNext:(38,298),224,32;pchEndRead:(38,298),256,32;pchEndWrite:(38,298),288,32;lBufOffset:(6,3),320,32;lDiskOffset:(6,3),352,32;adwInfo:(6,513),384,96;dwReserved1:(5,1),480,32;dwReserved2:(5,1),512,32;hmmio:(38,300),544,32;;MMIOINFO:t(38,307)=(38,306)PMMIOINFO:t(38,308)=(38,309)=*(38,306)LPMMIOINFO:t(38,310)=(38,309)LPCMMIOINFO:t(38,311)=(38,312)=*(38,307)_MMCKINFO:T(38,313)=s20ckid:(38,297),0,32;cksize:(5,1),32,32;fccType:(38,297),64,32;dwDataOffset:(5,1),96,32;dwFlags:(5,1),128,32;;MMCKINFO:t(38,314)=(38,313)PMMCKINFO:t(38,315)=(38,316)=*(38,313)LPMMCKINFO:t(38,317)=(38,316)LPCMMCKINFO:t(38,318)=(38,319)=*(38,314)tagMCI_GENERIC_PARMS:T(38,320)=s4dwCallback:(5,1),0,32;;MCI_GENERIC_PARMS:t(38,321)=(38,320)PMCI_GENERIC_PARMS:t(38,322)=(38,323)=*(38,320)LPMCI_GENERIC_PARMS:t(38,324)=(38,323)tagMCI_OPEN_PARMSA:T(38,325)=s20dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,37),64,32;lpstrElementName:(6,37),96,32;lpstrAlias:(6,37),128,32;;MCI_OPEN_PARMSA:t(38,326)=(38,325)PMCI_OPEN_PARMSA:t(38,327)=(38,328)=*(38,325)LPMCI_OPEN_PARMSA:t(38,329)=(38,328)tagMCI_OPEN_PARMSW:T(38,330)=s20dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,25),64,32;lpstrElementName:(6,25),96,32;lpstrAlias:(6,25),128,32;;MCI_OPEN_PARMSW:t(38,331)=(38,330)PMCI_OPEN_PARMSW:t(38,332)=(38,333)=*(38,330)LPMCI_OPEN_PARMSW:t(38,334)=(38,333)tagMCI_PLAY_PARMS:T(38,335)=s12dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;;MCI_PLAY_PARMS:t(38,336)=(38,335)PMCI_PLAY_PARMS:t(38,337)=(38,338)=*(38,335)LPMCI_PLAY_PARMS:t(38,339)=(38,338)tagMCI_SEEK_PARMS:T(38,340)=s8dwCallback:(5,1),0,32;dwTo:(5,1),32,32;;MCI_SEEK_PARMS:t(38,341)=(38,340)PMCI_SEEK_PARMS:t(38,342)=(38,343)=*(38,340)LPMCI_SEEK_PARMS:t(38,344)=(38,343)tagMCI_STATUS_PARMS:T(38,345)=s16dwCallback:(5,1),0,32;dwReturn:(5,1),32,32;dwItem:(5,1),64,32;dwTrack:(5,1),96,32;;MCI_STATUS_PARMS:t(38,346)=(38,345)PMCI_STATUS_PARMS:t(38,347)=(38,348)=*(38,345)LPMCI_STATUS_PARMS:t(38,349)=(38,348)tagMCI_INFO_PARMSA:T(38,350)=s12dwCallback:(5,1),0,32;lpstrReturn:(6,32),32,32;dwRetSize:(5,1),64,32;;MCI_INFO_PARMSA:t(38,351)=(38,350)LPMCI_INFO_PARMSA:t(38,352)=(38,353)=*(38,350)tagMCI_INFO_PARMSW:T(38,354)=s12dwCallback:(5,1),0,32;lpstrReturn:(6,20),32,32;dwRetSize:(5,1),64,32;;MCI_INFO_PARMSW:t(38,355)=(38,354)LPMCI_INFO_PARMSW:t(38,356)=(38,357)=*(38,354)tagMCI_GETDEVCAPS_PARMS:T(38,358)=s12dwCallback:(5,1),0,32;dwReturn:(5,1),32,32;dwItem:(5,1),64,32;;MCI_GETDEVCAPS_PARMS:t(38,359)=(38,358)PMCI_GETDEVCAPS_PARMS:t(38,360)=(38,361)=*(38,358)LPMCI_GETDEVCAPS_PARMS:t(38,362)=(38,361)tagMCI_SYSINFO_PARMSA:T(38,363)=s20dwCallback:(5,1),0,32;lpstrReturn:(6,32),32,32;dwRetSize:(5,1),64,32;dwNumber:(5,1),96,32;wDeviceType:(5,34),128,32;;MCI_SYSINFO_PARMSA:t(38,364)=(38,363)PMCI_SYSINFO_PARMSA:t(38,365)=(38,366)=*(38,363)LPMCI_SYSINFO_PARMSA:t(38,367)=(38,366)tagMCI_SYSINFO_PARMSW:T(38,368)=s20dwCallback:(5,1),0,32;lpstrReturn:(6,20),32,32;dwRetSize:(5,1),64,32;dwNumber:(5,1),96,32;wDeviceType:(5,34),128,32;;MCI_SYSINFO_PARMSW:t(38,369)=(38,368)PMCI_SYSINFO_PARMSW:t(38,370)=(38,371)=*(38,368)LPMCI_SYSINFO_PARMSW:t(38,372)=(38,371)tagMCI_SET_PARMS:T(38,373)=s12dwCallback:(5,1),0,32;dwTimeFormat:(5,1),32,32;dwAudio:(5,1),64,32;;MCI_SET_PARMS:t(38,374)=(38,373)PMCI_SET_PARMS:t(38,375)=(38,376)=*(38,373)LPMCI_SET_PARMS:t(38,377)=(38,376)tagMCI_BREAK_PARMS:T(38,378)=s12dwCallback:(5,1),0,32;nVirtKey:(0,1),32,32;hwndBreak:(5,121),64,32;;MCI_BREAK_PARMS:t(38,379)=(38,378)PMCI_BREAK_PARMS:t(38,380)=(38,381)=*(38,378)LPMCI_BREAK_PARMS:t(38,382)=(38,381)tagMCI_SAVE_PARMSA:T(38,383)=s8dwCallback:(5,1),0,32;lpfilename:(6,37),32,32;;MCI_SAVE_PARMSA:t(38,384)=(38,383)PMCI_SAVE_PARMSA:t(38,385)=(38,386)=*(38,383)LPMCI_SAVE_PARMSA:t(38,387)=(38,386)tagMCI_SAVE_PARMSW:T(38,388)=s8dwCallback:(5,1),0,32;lpfilename:(6,25),32,32;;MCI_SAVE_PARMSW:t(38,389)=(38,388)PMCI_SAVE_PARMSW:t(38,390)=(38,391)=*(38,388)LPMCI_SAVE_PARMSW:t(38,392)=(38,391)tagMCI_LOAD_PARMSA:T(38,393)=s8dwCallback:(5,1),0,32;lpfilename:(6,37),32,32;;MCI_LOAD_PARMSA:t(38,394)=(38,393)PMCI_LOAD_PARMSA:t(38,395)=(38,396)=*(38,393)LPMCI_LOAD_PARMSA:t(38,397)=(38,396)tagMCI_LOAD_PARMSW:T(38,398)=s8dwCallback:(5,1),0,32;lpfilename:(6,25),32,32;;MCI_LOAD_PARMSW:t(38,399)=(38,398)PMCI_LOAD_PARMSW:t(38,400)=(38,401)=*(38,398)LPMCI_LOAD_PARMSW:t(38,402)=(38,401)tagMCI_RECORD_PARMS:T(38,403)=s12dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;;MCI_RECORD_PARMS:t(38,404)=(38,403)LPMCI_RECORD_PARMS:t(38,405)=(38,406)=*(38,403)tagMCI_VD_PLAY_PARMS:T(38,407)=s16dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;dwSpeed:(5,1),96,32;;MCI_VD_PLAY_PARMS:t(38,408)=(38,407)PMCI_VD_PLAY_PARMS:t(38,409)=(38,410)=*(38,407)LPMCI_VD_PLAY_PARMS:t(38,411)=(38,410)tagMCI_VD_STEP_PARMS:T(38,412)=s8dwCallback:(5,1),0,32;dwFrames:(5,1),32,32;;MCI_VD_STEP_PARMS:t(38,413)=(38,412)PMCI_VD_STEP_PARMS:t(38,414)=(38,415)=*(38,412)LPMCI_VD_STEP_PARMS:t(38,416)=(38,415)tagMCI_VD_ESCAPE_PARMSA:T(38,417)=s8dwCallback:(5,1),0,32;lpstrCommand:(6,37),32,32;;MCI_VD_ESCAPE_PARMSA:t(38,418)=(38,417)PMCI_VD_ESCAPE_PARMSA:t(38,419)=(38,420)=*(38,417)LPMCI_VD_ESCAPE_PARMSA:t(38,421)=(38,420)tagMCI_VD_ESCAPE_PARMSW:T(38,422)=s8dwCallback:(5,1),0,32;lpstrCommand:(6,25),32,32;;MCI_VD_ESCAPE_PARMSW:t(38,423)=(38,422)PMCI_VD_ESCAPE_PARMSW:t(38,424)=(38,425)=*(38,422)LPMCI_VD_ESCAPE_PARMSW:t(38,426)=(38,425)tagMCI_WAVE_OPEN_PARMSA:T(38,427)=s24dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,37),64,32;lpstrElementName:(6,37),96,32;lpstrAlias:(6,37),128,32;dwBufferSeconds:(5,1),160,32;;MCI_WAVE_OPEN_PARMSA:t(38,428)=(38,427)PMCI_WAVE_OPEN_PARMSA:t(38,429)=(38,430)=*(38,427)LPMCI_WAVE_OPEN_PARMSA:t(38,431)=(38,430)tagMCI_WAVE_OPEN_PARMSW:T(38,432)=s24dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,25),64,32;lpstrElementName:(6,25),96,32;lpstrAlias:(6,25),128,32;dwBufferSeconds:(5,1),160,32;;MCI_WAVE_OPEN_PARMSW:t(38,433)=(38,432)PMCI_WAVE_OPEN_PARMSW:t(38,434)=(38,435)=*(38,432)LPMCI_WAVE_OPEN_PARMSW:t(38,436)=(38,435)tagMCI_WAVE_DELETE_PARMS:T(38,437)=s12dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;;MCI_WAVE_DELETE_PARMS:t(38,438)=(38,437)PMCI_WAVE_DELETE_PARMS:t(38,439)=(38,440)=*(38,437)LPMCI_WAVE_DELETE_PARMS:t(38,441)=(38,440)tagMCI_WAVE_SET_PARMS:T(38,442)=s44dwCallback:(5,1),0,32;dwTimeFormat:(5,1),32,32;dwAudio:(5,1),64,32;wInput:(5,34),96,32;wOutput:(5,34),128,32;wFormatTag:(5,11),160,16;wReserved2:(5,11),176,16;nChannels:(5,11),192,16;wReserved3:(5,11),208,16;nSamplesPerSec:(5,1),224,32;nAvgBytesPerSec:(5,1),256,32;nBlockAlign:(5,11),288,16;wReserved4:(5,11),304,16;wBitsPerSample:(5,11),320,16;wReserved5:(5,11),336,16;;MCI_WAVE_SET_PARMS:t(38,443)=(38,442)PMCI_WAVE_SET_PARMS:t(38,444)=(38,445)=*(38,442)LPMCI_WAVE_SET_PARMS:t(38,446)=(38,445)tagMCI_SEQ_SET_PARMS:T(38,447)=s32dwCallback:(5,1),0,32;dwTimeFormat:(5,1),32,32;dwAudio:(5,1),64,32;dwTempo:(5,1),96,32;dwPort:(5,1),128,32;dwSlave:(5,1),160,32;dwMaster:(5,1),192,32;dwOffset:(5,1),224,32;;MCI_SEQ_SET_PARMS:t(38,448)=(38,447)PMCI_SEQ_SET_PARMS:t(38,449)=(38,450)=*(38,447)LPMCI_SEQ_SET_PARMS:t(38,451)=(38,450)tagMCI_ANIM_OPEN_PARMSA:T(38,452)=s28dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,37),64,32;lpstrElementName:(6,37),96,32;lpstrAlias:(6,37),128,32;dwStyle:(5,1),160,32;hWndParent:(5,121),192,32;;MCI_ANIM_OPEN_PARMSA:t(38,453)=(38,452)PMCI_ANIM_OPEN_PARMSA:t(38,454)=(38,455)=*(38,452)LPMCI_ANIM_OPEN_PARMSA:t(38,456)=(38,455)tagMCI_ANIM_OPEN_PARMSW:T(38,457)=s28dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,25),64,32;lpstrElementName:(6,25),96,32;lpstrAlias:(6,25),128,32;dwStyle:(5,1),160,32;hWndParent:(5,121),192,32;;MCI_ANIM_OPEN_PARMSW:t(38,458)=(38,457)PMCI_ANIM_OPEN_PARMSW:t(38,459)=(38,460)=*(38,457)LPMCI_ANIM_OPEN_PARMSW:t(38,461)=(38,460)tagMCI_ANIM_PLAY_PARMS:T(38,462)=s16dwCallback:(5,1),0,32;dwFrom:(5,1),32,32;dwTo:(5,1),64,32;dwSpeed:(5,1),96,32;;MCI_ANIM_PLAY_PARMS:t(38,463)=(38,462)PMCI_ANIM_PLAY_PARMS:t(38,464)=(38,465)=*(38,462)LPMCI_ANIM_PLAY_PARMS:t(38,466)=(38,465)tagMCI_ANIM_STEP_PARMS:T(38,467)=s8dwCallback:(5,1),0,32;dwFrames:(5,1),32,32;;MCI_ANIM_STEP_PARMS:t(38,468)=(38,467)PMCI_ANIM_STEP_PARMS:t(38,469)=(38,470)=*(38,467)LPMCI_ANIM_STEP_PARMS:t(38,471)=(38,470)tagMCI_ANIM_WINDOW_PARMSA:T(38,472)=s16dwCallback:(5,1),0,32;hWnd:(5,121),32,32;nCmdShow:(5,34),64,32;lpstrText:(6,37),96,32;;MCI_ANIM_WINDOW_PARMSA:t(38,473)=(38,472)PMCI_ANIM_WINDOW_PARMSA:t(38,474)=(38,475)=*(38,472)LPMCI_ANIM_WINDOW_PARMSA:t(38,476)=(38,475)tagMCI_ANIM_WINDOW_PARMSW:T(38,477)=s16dwCallback:(5,1),0,32;hWnd:(5,121),32,32;nCmdShow:(5,34),64,32;lpstrText:(6,25),96,32;;MCI_ANIM_WINDOW_PARMSW:t(38,478)=(38,477)PMCI_ANIM_WINDOW_PARMSW:t(38,479)=(38,480)=*(38,477)LPMCI_ANIM_WINDOW_PARMSW:t(38,481)=(38,480)tagMCI_ANIM_RECT_PARMS:T(38,482)=s20dwCallback:(5,1),0,32;rc:(5,138),32,128;;MCI_ANIM_RECT_PARMS:t(38,483)=(38,482)PMCI_ANIM_RECT_PARMS:t(38,484)=(38,485)=*(38,482)LPMCI_ANIM_RECT_PARMS:t(38,486)=(38,485)tagMCI_ANIM_UPDATE_PARMS:T(38,487)=s24dwCallback:(5,1),0,32;rc:(5,138),32,128;hDC:(5,61),160,32;;MCI_ANIM_UPDATE_PARMS:t(38,488)=(38,487)PMCI_ANIM_UPDATE_PARMS:t(38,489)=(38,490)=*(38,487)LPMCI_ANIM_UPDATE_PARMS:t(38,491)=(38,490)tagMCI_OVLY_OPEN_PARMSA:T(38,492)=s28dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,37),64,32;lpstrElementName:(6,37),96,32;lpstrAlias:(6,37),128,32;dwStyle:(5,1),160,32;hWndParent:(5,121),192,32;;MCI_OVLY_OPEN_PARMSA:t(38,493)=(38,492)PMCI_OVLY_OPEN_PARMSA:t(38,494)=(38,495)=*(38,492)LPMCI_OVLY_OPEN_PARMSA:t(38,496)=(38,495)tagMCI_OVLY_OPEN_PARMSW:T(38,497)=s28dwCallback:(5,1),0,32;wDeviceID:(38,2),32,32;lpstrDeviceType:(6,25),64,32;lpstrElementName:(6,25),96,32;lpstrAlias:(6,25),128,32;dwStyle:(5,1),160,32;hWndParent:(5,121),192,32;;MCI_OVLY_OPEN_PARMSW:t(38,498)=(38,497)PMCI_OVLY_OPEN_PARMSW:t(38,499)=(38,500)=*(38,497)LPMCI_OVLY_OPEN_PARMSW:t(38,501)=(38,500)tagMCI_OVLY_WINDOW_PARMSA:T(38,502)=s16dwCallback:(5,1),0,32;hWnd:(5,121),32,32;nCmdShow:(5,34),64,32;lpstrText:(6,37),96,32;;MCI_OVLY_WINDOW_PARMSA:t(38,503)=(38,502)PMCI_OVLY_WINDOW_PARMSA:t(38,504)=(38,505)=*(38,502)LPMCI_OVLY_WINDOW_PARMSA:t(38,506)=(38,505)tagMCI_OVLY_WINDOW_PARMSW:T(38,507)=s16dwCallback:(5,1),0,32;hWnd:(5,121),32,32;nCmdShow:(5,34),64,32;lpstrText:(6,25),96,32;;MCI_OVLY_WINDOW_PARMSW:t(38,508)=(38,507)PMCI_OVLY_WINDOW_PARMSW:t(38,509)=(38,510)=*(38,507)LPMCI_OVLY_WINDOW_PARMSW:t(38,511)=(38,510)tagMCI_OVLY_RECT_PARMS:T(38,512)=s20dwCallback:(5,1),0,32;rc:(5,138),32,128;;MCI_OVLY_RECT_PARMS:t(38,513)=(38,512)PMCI_OVLY_RECT_PARMS:t(38,514)=(38,515)=*(38,512)LPMCI_OVLY_RECT_PARMS:t(38,516)=(38,515)tagMCI_OVLY_SAVE_PARMSA:T(38,517)=s24dwCallback:(5,1),0,32;lpfilename:(6,37),32,32;rc:(5,138),64,128;;MCI_OVLY_SAVE_PARMSA:t(38,518)=(38,517)PMCI_OVLY_SAVE_PARMSA:t(38,519)=(38,520)=*(38,517)LPMCI_OVLY_SAVE_PARMSA:t(38,521)=(38,520)tagMCI_OVLY_SAVE_PARMSW:T(38,522)=s24dwCallback:(5,1),0,32;lpfilename:(6,25),32,32;rc:(5,138),64,128;;MCI_OVLY_SAVE_PARMSW:t(38,523)=(38,522)PMCI_OVLY_SAVE_PARMSW:t(38,524)=(38,525)=*(38,522)LPMCI_OVLY_SAVE_PARMSW:t(38,526)=(38,525)tagMCI_OVLY_LOAD_PARMSA:T(38,527)=s24dwCallback:(5,1),0,32;lpfilename:(6,37),32,32;rc:(5,138),64,128;;MCI_OVLY_LOAD_PARMSA:t(38,528)=(38,527)PMCI_OVLY_LOAD_PARMSA:t(38,529)=(38,530)=*(38,527)LPMCI_OVLY_LOAD_PARMSA:t(38,531)=(38,530)tagMCI_OVLY_LOAD_PARMSW:T(38,532)=s24dwCallback:(5,1),0,32;lpfilename:(6,25),32,32;rc:(5,138),64,128;;MCI_OVLY_LOAD_PARMSW:t(38,533)=(38,532)PMCI_OVLY_LOAD_PARMSW:t(38,534)=(38,535)=*(38,532)LPMCI_OVLY_LOAD_PARMSW:t(38,536)=(38,535)WAVEOUTCAPS:t(38,537)=(38,59)PWAVEOUTCAPS:t(38,538)=(38,539)=*(38,59)LPWAVEOUTCAPS:t(38,540)=(38,539)WAVEINCAPS:t(38,541)=(38,69)PWAVEINCAPS:t(38,542)=(38,543)=*(38,69)LPWAVEINCAPS:t(38,544)=(38,543)MIDIOUTCAPS:t(38,545)=(38,124)PMIDIOUTCAPS:t(38,546)=(38,547)=*(38,124)LPMIDIOUTCAPS:t(38,548)=(38,547)MIDIINCAPS:t(38,549)=(38,134)PMIDIINCAPS:t(38,550)=(38,551)=*(38,134)LPMIDIINCAPS:t(38,552)=(38,551)AUXCAPS:t(38,553)=(38,162)PAUXCAPS:t(38,554)=(38,555)=*(38,162)LPAUXCAPS:t(38,556)=(38,555)MIXERCAPS:t(38,557)=(38,182)PMIXERCAPS:t(38,558)=(38,559)=*(38,182)LPMIXERCAPS:t(38,560)=(38,559)MIXERLINE:t(38,561)=(38,195)PMIXERLINE:t(38,562)=(38,563)=*(38,195)LPMIXERLINE:t(38,564)=(38,563)MIXERCONTROL:t(38,565)=(38,212)PMIXERCONTROL:t(38,566)=(38,567)=*(38,212)LPMIXERCONTROL:t(38,568)=(38,567)MIXERLINECONTROLS:t(38,569)=(38,227)PMIXERLINECONTROLS:t(38,570)=(38,571)=*(38,227)LPMIXERLINECONTROLS:t(38,572)=(38,571)MIXERCONTROLDETAILS_LISTTEXT:t(38,573)=(38,244)PMIXERCONTROLDETAILS_LISTTEXT:t(38,574)=(38,575)=*(38,244)LPMIXERCONTROLDETAILS_LISTTEXT:t(38,576)=(38,575)JOYCAPS:t(38,577)=(38,278)PJOYCAPS:t(38,578)=(38,579)=*(38,278)LPJOYCAPS:t(38,580)=(38,579)MCI_OPEN_PARMS:t(38,581)=(38,326)PMCI_OPEN_PARMS:t(38,582)=(38,583)=*(38,326)LPMCI_OPEN_PARMS:t(38,584)=(38,583)MCI_INFO_PARMS:t(38,585)=(38,351)LPMCI_INFO_PARMS:t(38,586)=(38,587)=*(38,351)MCI_SYSINFO_PARMS:t(38,588)=(38,364)PMCI_SYSINFO_PARMS:t(38,589)=(38,590)=*(38,364)LPMCI_SYSINFO_PARMS:t(38,591)=(38,590)MCI_SAVE_PARMS:t(38,592)=(38,384)PMCI_SAVE_PARMS:t(38,593)=(38,594)=*(38,384)LPMCI_SAVE_PARMS:t(38,595)=(38,594)MCI_LOAD_PARMS:t(38,596)=(38,394)PMCI_LOAD_PARMS:t(38,597)=(38,598)=*(38,394)LPMCI_LOAD_PARMS:t(38,599)=(38,598)MCI_VD_ESCAPE_PARMS:t(38,600)=(38,418)PMCI_VD_ESCAPE_PARMS:t(38,601)=(38,602)=*(38,418)LPMCI_VD_ESCAPE_PARMS:t(38,603)=(38,602)MCI_WAVE_OPEN_PARMS:t(38,604)=(38,428)PMCI_WAVE_OPEN_PARMS:t(38,605)=(38,606)=*(38,428)LPMCI_WAVE_OPEN_PARMS:t(38,607)=(38,606)MCI_ANIM_OPEN_PARMS:t(38,608)=(38,453)PMCI_ANIM_OPEN_PARMS:t(38,609)=(38,610)=*(38,453)LPMCI_ANIM_OPEN_PARMS:t(38,611)=(38,610)MCI_ANIM_WINDOW_PARMS:t(38,612)=(38,473)PMCI_ANIM_WINDOW_PARMS:t(38,613)=(38,614)=*(38,473)LPMCI_ANIM_WINDOW_PARMS:t(38,615)=(38,614)MCI_OVLY_OPEN_PARMS:t(38,616)=(38,493)PMCI_OVLY_OPEN_PARMS:t(38,617)=(38,618)=*(38,493)LPMCI_OVLY_OPEN_PARMS:t(38,619)=(38,618)MCI_OVLY_WINDOW_PARMS:t(38,620)=(38,503)PMCI_OVLY_WINDOW_PARMS:t(38,621)=(38,622)=*(38,503)LPMCI_OVLY_WINDOW_PARMS:t(38,623)=(38,622)MCI_OVLY_SAVE_PARMS:t(38,624)=(38,518)PMCI_OVLY_SAVE_PARMS:t(38,625)=(38,626)=*(38,518)LPMCI_OVLY_SAVE_PARMS:t(38,627)=(38,626)/usr/include/w32api/nb30.h_ACTION_HEADER:T(39,1)=s8transport_id:(6,10),0,32;action_code:(6,7),32,16;reserved:(6,7),48,16;;ACTION_HEADER:t(39,2)=(39,1)PACTION_HEADER:t(39,3)=(39,4)=*(39,1)_ADAPTER_STATUS:T(39,5)=s60adapter_address:(39,6)=ar(0,1);0;5;(6,5),0,48;rev_major:(6,5),48,8;reserved0:(6,5),56,8;adapter_type:(6,5),64,8;rev_minor:(6,5),72,8;duration:(5,11),80,16;frmr_recv:(5,11),96,16;frmr_xmit:(5,11),112,16;iframe_recv_err:(5,11),128,16;xmit_aborts:(5,11),144,16;xmit_success:(5,1),160,32;recv_success:(5,1),192,32;iframe_xmit_err:(5,11),224,16;recv_buff_unavail:(5,11),240,16;t1_timeouts:(5,11),256,16;ti_timeouts:(5,11),272,16;reserved1:(5,1),288,32;free_ncbs:(5,11),320,16;max_cfg_ncbs:(5,11),336,16;max_ncbs:(5,11),352,16;xmit_buf_unavail:(5,11),368,16;max_dgram_size:(5,11),384,16;pending_sess:(5,11),400,16;max_cfg_sess:(5,11),416,16;max_sess:(5,11),432,16;max_sess_pkt_size:(5,11),448,16;name_count:(5,11),464,16;;ADAPTER_STATUS:t(39,7)=(39,5)PADAPTER_STATUS:t(39,8)=(39,9)=*(39,5)_FIND_NAME_BUFFER:T(39,10)=s33length:(6,5),0,8;access_control:(6,5),8,8;frame_control:(6,5),16,8;destination_addr:(39,6),24,48;source_addr:(39,6),72,48;routing_info:(39,11)=ar(0,1);0;17;(6,5),120,144;;FIND_NAME_BUFFER:t(39,12)=(39,10)PFIND_NAME_BUFFER:t(39,13)=(39,14)=*(39,10)_FIND_NAME_HEADER:T(39,15)=s4node_count:(5,11),0,16;reserved:(6,5),16,8;unique_group:(6,5),24,8;;FIND_NAME_HEADER:t(39,16)=(39,15)PFIND_NAME_HEADER:t(39,17)=(39,18)=*(39,15)_LANA_ENUM:T(39,19)=s256length:(6,5),0,8;lana:(39,20)=ar(0,1);0;254;(6,5),8,2040;;LANA_ENUM:t(39,21)=(39,19)PLANA_ENUM:t(39,22)=(39,23)=*(39,19)_NAME_BUFFER:T(39,24)=s18name:(39,25)=ar(0,1);0;15;(6,5),0,128;name_num:(6,5),128,8;name_flags:(6,5),136,8;;NAME_BUFFER:t(39,26)=(39,24)PNAME_BUFFER:t(39,27)=(39,28)=*(39,24)_NCB:T(39,29)=s64ncb_command:(6,5),0,8;ncb_retcode:(6,5),8,8;ncb_lsn:(6,5),16,8;ncb_num:(6,5),24,8;ncb_buffer:(6,6),32,32;ncb_length:(5,11),64,16;ncb_callname:(39,25),80,128;ncb_name:(39,25),208,128;ncb_rto:(6,5),336,8;ncb_sto:(6,5),344,8;ncb_post:(39,30)=*(39,31)=f(0,19),352,32;ncb_lana_num:(6,5),384,8;ncb_cmd_cplt:(6,5),392,8;ncb_reserve:(39,32)=ar(0,1);0;9;(6,5),400,80;ncb_event:(6,54),480,32;;NCB:t(39,33)=(39,29)PNCB:t(39,34)=(39,35)=*(39,29)_SESSION_BUFFER:T(39,36)=s36lsn:(6,5),0,8;state:(6,5),8,8;local_name:(39,25),16,128;remote_name:(39,25),144,128;rcvs_outstanding:(6,5),272,8;sends_outstanding:(6,5),280,8;;SESSION_BUFFER:t(39,37)=(39,36)PSESSION_BUFFER:t(39,38)=(39,39)=*(39,36)_SESSION_HEADER:T(39,40)=s4sess_name:(6,5),0,8;num_sess:(6,5),8,8;rcv_dg_outstanding:(6,5),16,8;rcv_any_outstanding:(6,5),24,8;;SESSION_HEADER:t(39,41)=(39,40)PSESSION_HEADER:t(39,42)=(39,43)=*(39,40)/usr/include/w32api/rpc.h/usr/include/w32api/windows.hI_RPC_HANDLE:t(40,1)=(4,2)RPC_STATUS:t(40,2)=(0,3)/usr/include/w32api/rpcdce.hRPC_BINDING_HANDLE:t(42,1)=(40,1)handle_t:t(42,2)=(42,1)_RPC_BINDING_VECTOR:T(42,3)=s8Count:(0,5),0,32;BindingH:(42,4)=ar(0,1);0;0;(42,1),32,32;;RPC_BINDING_VECTOR:t(42,5)=(42,3)_UUID_VECTOR:T(42,6)=s8Count:(0,5),0,32;Uuid:(42,7)=ar(0,1);0;0;(42,8)=*(22,1),32,32;;UUID_VECTOR:t(42,9)=(42,6)RPC_IF_HANDLE:t(42,10)=(4,2)_RPC_IF_ID:T(42,11)=s20Uuid:(22,1),0,128;VersMajor:(0,9),128,16;VersMinor:(0,9),144,16;;RPC_IF_ID:t(42,12)=(42,11)_RPC_POLICY:T(42,13)=s12Length:(0,4),0,32;EndpointFlags:(0,5),32,32;NICFlags:(0,5),64,32;;RPC_POLICY:t(42,14)=(42,13)PRPC_POLICY:t(42,15)=(42,16)=*(42,13)RPC_OBJECT_INQ_FN:t(42,17)=(42,18)=f(0,19)RPC_IF_CALLBACK_FN:t(42,19)=(42,20)=f(40,2)RPC_STATS_VECTOR:t(42,21)=(42,22)=s8Count:(0,4),0,32;Stats:(42,23)=ar(0,1);0;0;(0,5),32,32;;RPC_IF_ID_VECTOR:t(42,24)=(42,25)=s8Count:(0,5),0,32;IfId:(42,26)=ar(0,1);0;0;(42,27)=*(42,12),32,32;;RPC_AUTH_IDENTITY_HANDLE:t(42,28)=(4,2)RPC_AUTHZ_HANDLE:t(42,29)=(4,2)_RPC_SECURITY_QOS:T(42,30)=s16Version:(0,5),0,32;Capabilities:(0,5),32,32;IdentityTracking:(0,5),64,32;ImpersonationType:(0,5),96,32;;RPC_SECURITY_QOS:t(42,31)=(42,30)PRPC_SECURITY_QOS:t(42,32)=(42,33)=*(42,30)_SEC_WINNT_AUTH_IDENTITY_W:T(42,34)=s28User:(6,9),0,32;UserLength:(0,5),32,32;Domain:(6,9),64,32;DomainLength:(0,5),96,32;Password:(6,9),128,32;PasswordLength:(0,5),160,32;Flags:(0,5),192,32;;SEC_WINNT_AUTH_IDENTITY_W:t(42,35)=(42,34)PSEC_WINNT_AUTH_IDENTITY_W:t(42,36)=(42,37)=*(42,34)_SEC_WINNT_AUTH_IDENTITY_A:T(42,38)=s28User:(11,15),0,32;UserLength:(0,5),32,32;Domain:(11,15),64,32;DomainLength:(0,5),96,32;Password:(11,15),128,32;PasswordLength:(0,5),160,32;Flags:(0,5),192,32;;SEC_WINNT_AUTH_IDENTITY_A:t(42,39)=(42,38)PSEC_WINNT_AUTH_IDENTITY_A:t(42,40)=(42,41)=*(42,38)RPC_CLIENT_INFORMATION1:t(42,42)=(42,43)=s16UserName:(11,15),0,32;ComputerName:(11,15),32,32;Privilege:(0,9),64,16;AuthFlags:(0,5),96,32;;PRPC_CLIENT_INFORMATION1:t(42,44)=(42,45)=*(42,43)RPC_EP_INQ_HANDLE:t(42,46)=(42,47)=*(40,1)RPC_MGMT_AUTHORIZATION_FN:t(42,48)=(42,49)=*(42,50)=f(0,1)_RPC_PROTSEQ_VECTORA:T(42,51)=s8Count:(0,4),0,32;Protseq:(42,52)=ar(0,1);0;0;(11,15),32,32;;RPC_PROTSEQ_VECTORA:t(42,53)=(42,51)_RPC_PROTSEQ_VECTORW:T(42,54)=s8Count:(0,4),0,32;Protseq:(42,55)=ar(0,1);0;0;(6,9),32,32;;RPC_PROTSEQ_VECTORW:t(42,56)=(42,54)RPC_AUTH_KEY_RETRIEVAL_FN:t(42,57)=(42,58)=*(42,59)=f(0,19)/usr/include/w32api/rpcdcep.h_RPC_VERSION:T(43,1)=s4MajorVersion:(0,9),0,16;MinorVersion:(0,9),16,16;;RPC_VERSION:t(43,2)=(43,1)_RPC_SYNTAX_IDENTIFIER:T(43,3)=s20SyntaxGUID:(6,75),0,128;SyntaxVersion:(43,2),128,32;;RPC_SYNTAX_IDENTIFIER:t(43,4)=(43,3)PRPC_SYNTAX_IDENTIFIER:t(43,5)=(43,6)=*(43,3)_RPC_MESSAGE:T(43,7)=s44Handle:(6,54),0,32;DataRepresentation:(0,5),32,32;Buffer:(4,2),64,32;BufferLength:(0,4),96,32;ProcNum:(0,4),128,32;TransferSyntax:(43,5),160,32;RpcInterfaceInformation:(4,2),192,32;ReservedForRuntime:(4,2),224,32;ManagerEpv:(4,2),256,32;ImportContext:(4,2),288,32;RpcFlags:(0,5),320,32;;RPC_MESSAGE:t(43,8)=(43,7)PRPC_MESSAGE:t(43,9)=(43,10)=*(43,7)RPC_FORWARD_FUNCTION:t(43,11)=(43,12)=f(0,3)RPC_DISPATCH_FUNCTION:t(43,13)=(43,14)=*(43,15)=f(0,19)RPC_DISPATCH_TABLE:t(43,16)=(43,17)=s12DispatchTableCount:(0,4),0,32;DispatchTable:(43,18)=*(43,13),32,32;Reserved:(0,1),64,32;;PRPC_DISPATCH_TABLE:t(43,19)=(43,20)=*(43,17)_RPC_PROTSEQ_ENDPOINT:T(43,21)=s8RpcProtocolSequence:(11,15),0,32;Endpoint:(11,15),32,32;;RPC_PROTSEQ_ENDPOINT:t(43,22)=(43,21)PRPC_PROTSEQ_ENDPOINT:t(43,23)=(43,24)=*(43,21)_RPC_SERVER_INTERFACE:T(43,25)=s64Length:(0,4),0,32;InterfaceId:(43,4),32,160;TransferSyntax:(43,4),192,160;DispatchTable:(43,19),352,32;RpcProtseqEndpointCount:(0,4),384,32;RpcProtseqEndpoint:(43,23),416,32;DefaultManagerEpv:(4,2),448,32;InterpreterInfo:(5,31),480,32;;RPC_SERVER_INTERFACE:t(43,26)=(43,25)PRPC_SERVER_INTERFACE:t(43,27)=(43,28)=*(43,25)_RPC_CLIENT_INTERFACE:T(43,29)=s64Length:(0,4),0,32;InterfaceId:(43,4),32,160;TransferSyntax:(43,4),192,160;DispatchTable:(43,19),352,32;RpcProtseqEndpointCount:(0,4),384,32;RpcProtseqEndpoint:(43,23),416,32;Reserved:(0,5),448,32;InterpreterInfo:(5,31),480,32;;RPC_CLIENT_INTERFACE:t(43,30)=(43,29)PRPC_CLIENT_INTERFACE:t(43,31)=(43,32)=*(43,29)I_RPC_MUTEX:t(43,33)=(4,2)_RPC_TRANSFER_SYNTAX:T(43,34)=s20Uuid:(6,75),0,128;VersMajor:(0,9),128,16;VersMinor:(0,9),144,16;;RPC_TRANSFER_SYNTAX:t(43,35)=(43,34)RPC_BLOCKING_FUNCTION:t(43,36)=(43,37)=*(43,38)=f(0,3)PRPC_RUNDOWN:t(43,39)=(43,40)=*(43,41)=f(0,19)/usr/include/w32api/rpcnsi.hRPC_NS_HANDLE:t(44,1)=(4,2)/usr/include/w32api/rpcnterr.h/usr/include/w32api/shellapi.hFILEOP_FLAGS:t(46,1)=(5,11)PRINTEROP_FLAGS:t(46,2)=(5,11)_AppBarData:T(46,3)=s36cbSize:(5,1),0,32;hWnd:(5,121),32,32;uCallbackMessage:(5,34),64,32;uEdge:(5,34),96,32;rc:(5,138),128,128;lParam:(5,39),256,32;;APPBARDATA:t(46,4)=(46,3)PAPPBARDATA:t(46,5)=(46,6)=*(46,3)HDROP__:T(46,7)=s4i:(0,1),0,32;;HDROP:t(46,8)=(46,9)=*(46,7)_NOTIFYICONDATAA:T(46,10)=s88cbSize:(5,1),0,32;hWnd:(5,121),32,32;uID:(5,34),64,32;uFlags:(5,34),96,32;uCallbackMessage:(5,34),128,32;hIcon:(5,76),160,32;szTip:(38,193),192,512;;NOTIFYICONDATAA:t(46,11)=(46,10)PNOTIFYICONDATAA:t(46,12)=(46,13)=*(46,10)_NOTIFYICONDATAW:T(46,14)=s152cbSize:(5,1),0,32;hWnd:(5,121),32,32;uID:(5,34),64,32;uFlags:(5,34),96,32;uCallbackMessage:(5,34),128,32;hIcon:(5,76),160,32;szTip:(25,212),192,1024;;NOTIFYICONDATAW:t(46,15)=(46,14)PNOTIFYICONDATAW:t(46,16)=(46,17)=*(46,14)_SHELLEXECUTEINFOA:T(46,18)=s60cbSize:(5,1),0,32;fMask:(6,10),32,32;hwnd:(5,121),64,32;lpVerb:(6,37),96,32;lpFile:(6,37),128,32;lpParameters:(6,37),160,32;lpDirectory:(6,37),192,32;nShow:(0,1),224,32;hInstApp:(5,99),256,32;lpIDList:(5,28),288,32;lpClass:(6,37),320,32;hkeyClass:(5,79),352,32;dwHotKey:(5,1),384,32;hIcon:(6,54),416,32;hProcess:(6,54),448,32;;SHELLEXECUTEINFOA:t(46,19)=(46,18)LPSHELLEXECUTEINFOA:t(46,20)=(46,21)=*(46,18)_SHELLEXECUTEINFOW:T(46,22)=s60cbSize:(5,1),0,32;fMask:(6,10),32,32;hwnd:(5,121),64,32;lpVerb:(6,25),96,32;lpFile:(6,25),128,32;lpParameters:(6,25),160,32;lpDirectory:(6,25),192,32;nShow:(0,1),224,32;hInstApp:(5,99),256,32;lpIDList:(5,28),288,32;lpClass:(6,25),320,32;hkeyClass:(5,79),352,32;dwHotKey:(5,1),384,32;hIcon:(6,54),416,32;hProcess:(6,54),448,32;;SHELLEXECUTEINFOW:t(46,23)=(46,22)LPSHELLEXECUTEINFOW:t(46,24)=(46,25)=*(46,22)_SHFILEOPSTRUCTA:T(46,26)=s32hwnd:(5,121),0,32;wFunc:(5,34),32,32;pFrom:(6,37),64,32;pTo:(6,37),96,32;fFlags:(46,1),128,16;fAnyOperationsAborted:(5,6),160,32;hNameMappings:(5,28),192,32;lpszProgressTitle:(6,37),224,32;;SHFILEOPSTRUCTA:t(46,27)=(46,26)LPSHFILEOPSTRUCTA:t(46,28)=(46,29)=*(46,26)_SHFILEOPSTRUCTW:T(46,30)=s32hwnd:(5,121),0,32;wFunc:(5,34),32,32;pFrom:(6,25),64,32;pTo:(6,25),96,32;fFlags:(46,1),128,16;fAnyOperationsAborted:(5,6),160,32;hNameMappings:(5,28),192,32;lpszProgressTitle:(6,25),224,32;;SHFILEOPSTRUCTW:t(46,31)=(46,30)LPSHFILEOPSTRUCTW:t(46,32)=(46,33)=*(46,30)_SHFILEINFOA:T(46,34)=s352hIcon:(5,76),0,32;iIcon:(0,1),32,32;dwAttributes:(5,1),64,32;szDisplayName:(24,109),96,2080;szTypeName:(24,130),2176,640;;SHFILEINFOA:t(46,35)=(46,34)_SHFILEINFOW:T(46,36)=s692hIcon:(5,76),0,32;iIcon:(0,1),32,32;dwAttributes:(5,1),64,32;szDisplayName:(24,115),96,4160;szTypeName:(24,136),4256,1280;;SHFILEINFOW:t(46,37)=(46,36)NOTIFYICONDATA:t(46,38)=(46,11)PNOTIFYICONDATA:t(46,39)=(46,40)=*(46,11)SHELLEXECUTEINFO:t(46,41)=(46,19)LPSHELLEXECUTEINFO:t(46,42)=(46,43)=*(46,19)SHFILEOPSTRUCT:t(46,44)=(46,27)LPSHFILEOPSTRUCT:t(46,45)=(46,46)=*(46,27)SHFILEINFO:t(46,47)=(46,35)/usr/include/w32api/winperf.h_PERF_DATA_BLOCK:T(47,1)=s88Signature:(47,2)=ar(0,1);0;3;(6,14),0,64;LittleEndian:(5,1),64,32;Version:(5,1),96,32;Revision:(5,1),128,32;TotalByteLength:(5,1),160,32;HeaderLength:(5,1),192,32;NumObjectTypes:(5,1),224,32;DefaultObject:(6,3),256,32;SystemTime:(24,101),288,128;PerfTime:(6,141),448,64;PerfFreq:(6,141),512,64;PerfTime100nSec:(6,141),576,64;SystemNameLength:(5,1),640,32;SystemNameOffset:(5,1),672,32;;PERF_DATA_BLOCK:t(47,3)=(47,1)PPERF_DATA_BLOCK:t(47,4)=(47,5)=*(47,1)_PERF_OBJECT_TYPE:T(47,6)=s64TotalByteLength:(5,1),0,32;DefinitionLength:(5,1),32,32;HeaderLength:(5,1),64,32;ObjectNameTitleIndex:(5,1),96,32;ObjectNameTitle:(6,20),128,32;ObjectHelpTitleIndex:(5,1),160,32;ObjectHelpTitle:(6,20),192,32;DetailLevel:(5,1),224,32;NumCounters:(5,1),256,32;DefaultCounter:(6,3),288,32;NumInstances:(6,3),320,32;CodePage:(5,1),352,32;PerfTime:(6,141),384,64;PerfFreq:(6,141),448,64;;PERF_OBJECT_TYPE:t(47,7)=(47,6)PPERF_OBJECT_TYPE:t(47,8)=(47,9)=*(47,6)_PERF_COUNTER_DEFINITION:T(47,10)=s40ByteLength:(5,1),0,32;CounterNameTitleIndex:(5,1),32,32;CounterNameTitle:(6,20),64,32;CounterHelpTitleIndex:(5,1),96,32;CounterHelpTitle:(6,20),128,32;DefaultScale:(6,3),160,32;DetailLevel:(5,1),192,32;CounterType:(5,1),224,32;CounterSize:(5,1),256,32;CounterOffset:(5,1),288,32;;PERF_COUNTER_DEFINITION:t(47,11)=(47,10)PPERF_COUNTER_DEFINITION:t(47,12)=(47,13)=*(47,10)_PERF_INSTANCE_DEFINITION:T(47,14)=s24ByteLength:(5,1),0,32;ParentObjectTitleIndex:(5,1),32,32;ParentObjectInstance:(5,1),64,32;UniqueID:(6,3),96,32;NameOffset:(5,1),128,32;NameLength:(5,1),160,32;;PERF_INSTANCE_DEFINITION:t(47,15)=(47,14)PPERF_INSTANCE_DEFINITION:t(47,16)=(47,17)=*(47,14)_PERF_COUNTER_BLOCK:T(47,18)=s4ByteLength:(5,1),0,32;;PERF_COUNTER_BLOCK:t(47,19)=(47,18)PPERF_COUNTER_BLOCK:t(47,20)=(47,21)=*(47,18)PM_OPEN_PROC:t(47,22)=(47,23)=f(5,1)PM_COLLECT_PROC:t(47,24)=(47,25)=f(5,1)PM_CLOSE_PROC:t(47,26)=(47,27)=f(5,1)/usr/include/w32api/winspool.h_ADDJOB_INFO_1A:T(48,1)=s8Path:(6,32),0,32;JobId:(5,1),32,32;;ADDJOB_INFO_1A:t(48,2)=(48,1)PADDJOB_INFO_1A:t(48,3)=(48,4)=*(48,1)LPADDJOB_INFO_1A:t(48,5)=(48,4)_ADDJOB_INFO_1W:T(48,6)=s8Path:(6,20),0,32;JobId:(5,1),32,32;;ADDJOB_INFO_1W:t(48,7)=(48,6)PADDJOB_INFO_1W:t(48,8)=(48,9)=*(48,6)LPADDJOB_INFO_1W:t(48,10)=(48,9)_DATATYPES_INFO_1A:T(48,11)=s4pName:(6,32),0,32;;DATATYPES_INFO_1A:t(48,12)=(48,11)PDATATYPES_INFO_1A:t(48,13)=(48,14)=*(48,11)LPDATATYPES_INFO_1A:t(48,15)=(48,14)_DATATYPES_INFO_1W:T(48,16)=s4pName:(6,20),0,32;;DATATYPES_INFO_1W:t(48,17)=(48,16)PDATATYPES_INFO_1W:t(48,18)=(48,19)=*(48,16)LPDATATYPES_INFO_1W:t(48,20)=(48,19)_JOB_INFO_1A:T(48,21)=s64JobId:(5,1),0,32;pPrinterName:(6,32),32,32;pMachineName:(6,32),64,32;pUserName:(6,32),96,32;pDocument:(6,32),128,32;pDatatype:(6,32),160,32;pStatus:(6,32),192,32;Status:(5,1),224,32;Priority:(5,1),256,32;Position:(5,1),288,32;TotalPages:(5,1),320,32;PagesPrinted:(5,1),352,32;Submitted:(24,101),384,128;;JOB_INFO_1A:t(48,22)=(48,21)PJOB_INFO_1A:t(48,23)=(48,24)=*(48,21)LPJOB_INFO_1A:t(48,25)=(48,24)_JOB_INFO_1W:T(48,26)=s64JobId:(5,1),0,32;pPrinterName:(6,20),32,32;pMachineName:(6,20),64,32;pUserName:(6,20),96,32;pDocument:(6,20),128,32;pDatatype:(6,20),160,32;pStatus:(6,20),192,32;Status:(5,1),224,32;Priority:(5,1),256,32;Position:(5,1),288,32;TotalPages:(5,1),320,32;PagesPrinted:(5,1),352,32;Submitted:(24,101),384,128;;JOB_INFO_1W:t(48,27)=(48,26)PJOB_INFO_1W:t(48,28)=(48,29)=*(48,26)LPJOB_INFO_1W:t(48,30)=(48,29)_JOB_INFO_2A:T(48,31)=s104JobId:(5,1),0,32;pPrinterName:(6,32),32,32;pMachineName:(6,32),64,32;pUserName:(6,32),96,32;pDocument:(6,32),128,32;pNotifyName:(6,32),160,32;pDatatype:(6,32),192,32;pPrintProcessor:(6,32),224,32;pParameters:(6,32),256,32;pDriverName:(6,32),288,32;pDevMode:(25,77),320,32;pStatus:(6,32),352,32;pSecurityDescriptor:(6,237),384,32;Status:(5,1),416,32;Priority:(5,1),448,32;Position:(5,1),480,32;StartTime:(5,1),512,32;UntilTime:(5,1),544,32;TotalPages:(5,1),576,32;Size:(5,1),608,32;Submitted:(24,101),640,128;Time:(5,1),768,32;PagesPrinted:(5,1),800,32;;JOB_INFO_2A:t(48,32)=(48,31)PJOB_INFO_2A:t(48,33)=(48,34)=*(48,31)LPJOB_INFO_2A:t(48,35)=(48,34)_JOB_INFO_2W:T(48,36)=s104JobId:(5,1),0,32;pPrinterName:(6,20),32,32;pMachineName:(6,20),64,32;pUserName:(6,20),96,32;pDocument:(6,20),128,32;pNotifyName:(6,20),160,32;pDatatype:(6,20),192,32;pPrintProcessor:(6,20),224,32;pParameters:(6,20),256,32;pDriverName:(6,20),288,32;pDevMode:(25,82),320,32;pStatus:(6,20),352,32;pSecurityDescriptor:(6,237),384,32;Status:(5,1),416,32;Priority:(5,1),448,32;Position:(5,1),480,32;StartTime:(5,1),512,32;UntilTime:(5,1),544,32;TotalPages:(5,1),576,32;Size:(5,1),608,32;Submitted:(24,101),640,128;Time:(5,1),768,32;PagesPrinted:(5,1),800,32;;JOB_INFO_2W:t(48,37)=(48,36)PJOB_INFO_2W:t(48,38)=(48,39)=*(48,36)LPJOB_INFO_2W:t(48,40)=(48,39)_DOC_INFO_1A:T(48,41)=s12pDocName:(6,32),0,32;pOutputFile:(6,32),32,32;pDatatype:(6,32),64,32;;DOC_INFO_1A:t(48,42)=(48,41)PDOC_INFO_1A:t(48,43)=(48,44)=*(48,41)LPDOC_INFO_1A:t(48,45)=(48,44)_DOC_INFO_1W:T(48,46)=s12pDocName:(6,20),0,32;pOutputFile:(6,20),32,32;pDatatype:(6,20),64,32;;DOC_INFO_1W:t(48,47)=(48,46)PDOC_INFO_1W:t(48,48)=(48,49)=*(48,46)LPDOC_INFO_1W:t(48,50)=(48,49)_DOC_INFO_2A:T(48,51)=s20pDocName:(6,32),0,32;pOutputFile:(6,32),32,32;pDatatype:(6,32),64,32;dwMode:(5,1),96,32;JobId:(5,1),128,32;;DOC_INFO_2A:t(48,52)=(48,51)PDOC_INFO_2A:t(48,53)=(48,54)=*(48,51)LPDOC_INFO_2A:t(48,55)=(48,54)_DOC_INFO_2W:T(48,56)=s20pDocName:(6,20),0,32;pOutputFile:(6,20),32,32;pDatatype:(6,20),64,32;dwMode:(5,1),96,32;JobId:(5,1),128,32;;DOC_INFO_2W:t(48,57)=(48,56)PDOC_INFO_2W:t(48,58)=(48,59)=*(48,56)LPDOC_INFO_2W:t(48,60)=(48,59)_DRIVER_INFO_1A:T(48,61)=s4pName:(6,32),0,32;;DRIVER_INFO_1A:t(48,62)=(48,61)PDRIVER_INFO_1A:t(48,63)=(48,64)=*(48,61)LPDRIVER_INFO_1A:t(48,65)=(48,64)_DRIVER_INFO_1W:T(48,66)=s4pName:(6,20),0,32;;DRIVER_INFO_1W:t(48,67)=(48,66)PDRIVER_INFO_1W:t(48,68)=(48,69)=*(48,66)LPDRIVER_INFO_1W:t(48,70)=(48,69)_DRIVER_INFO_2A:T(48,71)=s24cVersion:(5,1),0,32;pName:(6,32),32,32;pEnvironment:(6,32),64,32;pDriverPath:(6,32),96,32;pDataFile:(6,32),128,32;pConfigFile:(6,32),160,32;;DRIVER_INFO_2A:t(48,72)=(48,71)PDRIVER_INFO_2A:t(48,73)=(48,74)=*(48,71)LPDRIVER_INFO_2A:t(48,75)=(48,74)_DRIVER_INFO_2W:T(48,76)=s24cVersion:(5,1),0,32;pName:(6,20),32,32;pEnvironment:(6,20),64,32;pDriverPath:(6,20),96,32;pDataFile:(6,20),128,32;pConfigFile:(6,20),160,32;;DRIVER_INFO_2W:t(48,77)=(48,76)PDRIVER_INFO_2W:t(48,78)=(48,79)=*(48,76)LPDRIVER_INFO_2W:t(48,80)=(48,79)_DRIVER_INFO_3A:T(48,81)=s40cVersion:(5,1),0,32;pName:(6,32),32,32;pEnvironment:(6,32),64,32;pDriverPath:(6,32),96,32;pDataFile:(6,32),128,32;pConfigFile:(6,32),160,32;pHelpFile:(6,32),192,32;pDependentFiles:(6,32),224,32;pMonitorName:(6,32),256,32;pDefaultDataType:(6,32),288,32;;DRIVER_INFO_3A:t(48,82)=(48,81)PDRIVER_INFO_3A:t(48,83)=(48,84)=*(48,81)LPDRIVER_INFO_3A:t(48,85)=(48,84)_DRIVER_INFO_3W:T(48,86)=s40cVersion:(5,1),0,32;pName:(6,20),32,32;pEnvironment:(6,20),64,32;pDriverPath:(6,20),96,32;pDataFile:(6,20),128,32;pConfigFile:(6,20),160,32;pHelpFile:(6,20),192,32;pDependentFiles:(6,20),224,32;pMonitorName:(6,20),256,32;pDefaultDataType:(6,20),288,32;;DRIVER_INFO_3W:t(48,87)=(48,86)PDRIVER_INFO_3W:t(48,88)=(48,89)=*(48,86)LPDRIVER_INFO_3W:t(48,90)=(48,89)_MONITOR_INFO_1A:T(48,91)=s4pName:(6,32),0,32;;MONITOR_INFO_1A:t(48,92)=(48,91)PMONITOR_INFO_1A:t(48,93)=(48,94)=*(48,91)LPMONITOR_INFO_1A:t(48,95)=(48,94)_MONITOR_INFO_1W:T(48,96)=s4pName:(6,20),0,32;;MONITOR_INFO_1W:t(48,97)=(48,96)PMONITOR_INFO_1W:t(48,98)=(48,99)=*(48,96)LPMONITOR_INFO_1W:t(48,100)=(48,99)_PORT_INFO_1A:T(48,101)=s4pName:(6,32),0,32;;PORT_INFO_1A:t(48,102)=(48,101)PPORT_INFO_1A:t(48,103)=(48,104)=*(48,101)LPPORT_INFO_1A:t(48,105)=(48,104)_PORT_INFO_1W:T(48,106)=s4pName:(6,20),0,32;;PORT_INFO_1W:t(48,107)=(48,106)PPORT_INFO_1W:t(48,108)=(48,109)=*(48,106)LPPORT_INFO_1W:t(48,110)=(48,109)_MONITOR_INFO_2A:T(48,111)=s12pName:(6,32),0,32;pEnvironment:(6,32),32,32;pDLLName:(6,32),64,32;;MONITOR_INFO_2A:t(48,112)=(48,111)PMONITOR_INFO_2A:t(48,113)=(48,114)=*(48,111)LPMONITOR_INFO_2A:t(48,115)=(48,114)_MONITOR_INFO_2W:T(48,116)=s12pName:(6,20),0,32;pEnvironment:(6,20),32,32;pDLLName:(6,20),64,32;;MONITOR_INFO_2W:t(48,117)=(48,116)PMONITOR_INFO_2W:t(48,118)=(48,119)=*(48,116)LPMONITOR_INFO_2W:t(48,120)=(48,119)_PORT_INFO_2A:T(48,121)=s20pPortName:(6,32),0,32;pMonitorName:(6,32),32,32;pDescription:(6,32),64,32;fPortType:(5,1),96,32;Reserved:(5,1),128,32;;PORT_INFO_2A:t(48,122)=(48,121)PPORT_INFO_2A:t(48,123)=(48,124)=*(48,121)LPPORT_INFO_2A:t(48,125)=(48,124)_PORT_INFO_2W:T(48,126)=s20pPortName:(6,20),0,32;pMonitorName:(6,20),32,32;pDescription:(6,20),64,32;fPortType:(5,1),96,32;Reserved:(5,1),128,32;;PORT_INFO_2W:t(48,127)=(48,126)PPORT_INFO_2W:t(48,128)=(48,129)=*(48,126)LPPORT_INFO_2W:t(48,130)=(48,129)_PORT_INFO_3A:T(48,131)=s12dwStatus:(5,1),0,32;pszStatus:(6,32),32,32;dwSeverity:(5,1),64,32;;PORT_INFO_3A:t(48,132)=(48,131)PPORT_INFO_3A:t(48,133)=(48,134)=*(48,131)LPPORT_INFO_3A:t(48,135)=(48,134)_PORT_INFO_3W:T(48,136)=s12dwStatus:(5,1),0,32;pszStatus:(6,20),32,32;dwSeverity:(5,1),64,32;;PORT_INFO_3W:t(48,137)=(48,136)PPORT_INFO_3W:t(48,138)=(48,139)=*(48,136)LPPORT_INFO_3W:t(48,140)=(48,139)_PRINTER_INFO_1A:T(48,141)=s16Flags:(5,1),0,32;pDescription:(6,32),32,32;pName:(6,32),64,32;pComment:(6,32),96,32;;PRINTER_INFO_1A:t(48,142)=(48,141)PPRINTER_INFO_1A:t(48,143)=(48,144)=*(48,141)LPPRINTER_INFO_1A:t(48,145)=(48,144)_PRINTER_INFO_1W:T(48,146)=s16Flags:(5,1),0,32;pDescription:(6,20),32,32;pName:(6,20),64,32;pComment:(6,20),96,32;;PRINTER_INFO_1W:t(48,147)=(48,146)PPRINTER_INFO_1W:t(48,148)=(48,149)=*(48,146)LPPRINTER_INFO_1W:t(48,150)=(48,149)_PRINTER_INFO_2A:T(48,151)=s84pServerName:(6,32),0,32;pPrinterName:(6,32),32,32;pShareName:(6,32),64,32;pPortName:(6,32),96,32;pDriverName:(6,32),128,32;pComment:(6,32),160,32;pLocation:(6,32),192,32;pDevMode:(25,77),224,32;pSepFile:(6,32),256,32;pPrintProcessor:(6,32),288,32;pDatatype:(6,32),320,32;pParameters:(6,32),352,32;pSecurityDescriptor:(6,237),384,32;Attributes:(5,1),416,32;Priority:(5,1),448,32;DefaultPriority:(5,1),480,32;StartTime:(5,1),512,32;UntilTime:(5,1),544,32;Status:(5,1),576,32;cJobs:(5,1),608,32;AveragePPM:(5,1),640,32;;PRINTER_INFO_2A:t(48,152)=(48,151)PPRINTER_INFO_2A:t(48,153)=(48,154)=*(48,151)LPPRINTER_INFO_2A:t(48,155)=(48,154)_PRINTER_INFO_2W:T(48,156)=s84pServerName:(6,20),0,32;pPrinterName:(6,20),32,32;pShareName:(6,20),64,32;pPortName:(6,20),96,32;pDriverName:(6,20),128,32;pComment:(6,20),160,32;pLocation:(6,20),192,32;pDevMode:(25,82),224,32;pSepFile:(6,20),256,32;pPrintProcessor:(6,20),288,32;pDatatype:(6,20),320,32;pParameters:(6,20),352,32;pSecurityDescriptor:(6,237),384,32;Attributes:(5,1),416,32;Priority:(5,1),448,32;DefaultPriority:(5,1),480,32;StartTime:(5,1),512,32;UntilTime:(5,1),544,32;Status:(5,1),576,32;cJobs:(5,1),608,32;AveragePPM:(5,1),640,32;;PRINTER_INFO_2W:t(48,157)=(48,156)PPRINTER_INFO_2W:t(48,158)=(48,159)=*(48,156)LPPRINTER_INFO_2W:t(48,160)=(48,159)_PRINTER_INFO_3:T(48,161)=s4pSecurityDescriptor:(6,237),0,32;;PRINTER_INFO_3:t(48,162)=(48,161)PPRINTER_INFO_3:t(48,163)=(48,164)=*(48,161)LPPRINTER_INFO_3:t(48,165)=(48,164)_PRINTER_INFO_4A:T(48,166)=s12pPrinterName:(6,32),0,32;pServerName:(6,32),32,32;Attributes:(5,1),64,32;;PRINTER_INFO_4A:t(48,167)=(48,166)PPRINTER_INFO_4A:t(48,168)=(48,169)=*(48,166)LPPRINTER_INFO_4A:t(48,170)=(48,169)_PRINTER_INFO_4W:T(48,171)=s12pPrinterName:(6,20),0,32;pServerName:(6,20),32,32;Attributes:(5,1),64,32;;PRINTER_INFO_4W:t(48,172)=(48,171)PPRINTER_INFO_4W:t(48,173)=(48,174)=*(48,171)LPPRINTER_INFO_4W:t(48,175)=(48,174)_PRINTER_INFO_5A:T(48,176)=s20pPrinterName:(6,32),0,32;pPortName:(6,32),32,32;Attributes:(5,1),64,32;DeviceNotSelectedTimeout:(5,1),96,32;TransmissionRetryTimeout:(5,1),128,32;;PRINTER_INFO_5A:t(48,177)=(48,176)PPRINTER_INFO_5A:t(48,178)=(48,179)=*(48,176)LPPRINTER_INFO_5A:t(48,180)=(48,179)_PRINTER_INFO_5W:T(48,181)=s20pPrinterName:(6,20),0,32;pPortName:(6,20),32,32;Attributes:(5,1),64,32;DeviceNotSelectedTimeout:(5,1),96,32;TransmissionRetryTimeout:(5,1),128,32;;PRINTER_INFO_5W:t(48,182)=(48,181)PPRINTER_INFO_5W:t(48,183)=(48,184)=*(48,181)LPPRINTER_INFO_5W:t(48,185)=(48,184)_PRINTPROCESSOR_INFO_1A:T(48,186)=s4pName:(6,32),0,32;;PRINTPROCESSOR_INFO_1A:t(48,187)=(48,186)PPRINTPROCESSOR_INFO_1A:t(48,188)=(48,189)=*(48,186)LPPRINTPROCESSOR_INFO_1A:t(48,190)=(48,189)_PRINTPROCESSOR_INFO_1W:T(48,191)=s4pName:(6,20),0,32;;PRINTPROCESSOR_INFO_1W:t(48,192)=(48,191)PPRINTPROCESSOR_INFO_1W:t(48,193)=(48,194)=*(48,191)LPPRINTPROCESSOR_INFO_1W:t(48,195)=(48,194)_PRINTER_NOTIFY_INFO_DATA:T(48,196)=s20Type:(5,11),0,16;Field:(5,11),16,16;Reserved:(5,1),32,32;Id:(5,1),64,32;NotifyData:(48,197)=u8adwData:(6,324),0,64;Data:(48,198)=s8cbBuf:(5,1),0,32;pBuf:(5,28),32,32;;,0,64;;,96,64;;PRINTER_NOTIFY_INFO_DATA:t(48,199)=(48,196)PPRINTER_NOTIFY_INFO_DATA:t(48,200)=(48,201)=*(48,196)LPPRINTER_NOTIFY_INFO_DATA:t(48,202)=(48,201)_PRINTER_NOTIFY_INFO:T(48,203)=s32Version:(5,1),0,32;Flags:(5,1),32,32;Count:(5,1),64,32;aData:(48,204)=ar(0,1);0;0;(48,199),96,160;;PRINTER_NOTIFY_INFO:t(48,205)=(48,203)PPRINTER_NOTIFY_INFO:t(48,206)=(48,207)=*(48,203)LPPRINTER_NOTIFY_INFO:t(48,208)=(48,207)_FORM_INFO_1A:T(48,209)=s32Flags:(5,1),0,32;pName:(6,32),32,32;Size:(5,161),64,64;ImageableArea:(5,145),128,128;;FORM_INFO_1A:t(48,210)=(48,209)PFORM_INFO_1A:t(48,211)=(48,212)=*(48,209)LPFORM_INFO_1A:t(48,213)=(48,212)_FORM_INFO_1W:T(48,214)=s32Flags:(5,1),0,32;pName:(6,20),32,32;Size:(5,161),64,64;ImageableArea:(5,145),128,128;;FORM_INFO_1W:t(48,215)=(48,214)PFORM_INFO_1W:t(48,216)=(48,217)=*(48,214)LPFORM_INFO_1W:t(48,218)=(48,217)_PRINTER_DEFAULTSA:T(48,219)=s12pDatatype:(6,32),0,32;pDevMode:(25,691),32,32;DesiredAccess:(6,72),64,32;;PRINTER_DEFAULTSA:t(48,220)=(48,219)PPRINTER_DEFAULTSA:t(48,221)=(48,222)=*(48,219)LPPRINTER_DEFAULTSA:t(48,223)=(48,222)_PRINTER_DEFAULTSW:T(48,224)=s12pDatatype:(6,20),0,32;pDevMode:(25,691),32,32;DesiredAccess:(6,72),64,32;;PRINTER_DEFAULTSW:t(48,225)=(48,224)PPRINTER_DEFAULTSW:t(48,226)=(48,227)=*(48,224)LPPRINTER_DEFAULTSW:t(48,228)=(48,227)JOB_INFO_1:t(48,229)=(48,22)PJOB_INFO_1:t(48,230)=(48,231)=*(48,22)LPJOB_INFO_1:t(48,232)=(48,231)JOB_INFO_2:t(48,233)=(48,32)PJOB_INFO_2:t(48,234)=(48,235)=*(48,32)LPJOB_INFO_2:t(48,236)=(48,235)ADDJOB_INFO_1:t(48,237)=(48,2)PADDJOB_INFO_1:t(48,238)=(48,239)=*(48,2)LPADDJOB_INFO_1:t(48,240)=(48,239)DATATYPES_INFO_1:t(48,241)=(48,12)PDATATYPES_INFO_1:t(48,242)=(48,243)=*(48,12)LPDATATYPES_INFO_1:t(48,244)=(48,243)MONITOR_INFO_1:t(48,245)=(48,92)PMONITOR_INFO_1:t(48,246)=(48,247)=*(48,92)LPMONITOR_INFO_1:t(48,248)=(48,247)MONITOR_INFO_2:t(48,249)=(48,112)PMONITOR_INFO_2:t(48,250)=(48,251)=*(48,112)LPMONITOR_INFO_2:t(48,252)=(48,251)DOC_INFO_1:t(48,253)=(48,42)PDOC_INFO_1:t(48,254)=(48,255)=*(48,42)LPDOC_INFO_1:t(48,256)=(48,255)DOC_INFO_2:t(48,257)=(48,52)PDOC_INFO_2:t(48,258)=(48,259)=*(48,52)LPDOC_INFO_2:t(48,260)=(48,259)PORT_INFO_1:t(48,261)=(48,102)PPORT_INFO_1:t(48,262)=(48,263)=*(48,102)LPPORT_INFO_1:t(48,264)=(48,263)PORT_INFO_2:t(48,265)=(48,122)PPORT_INFO_2:t(48,266)=(48,267)=*(48,122)LPPORT_INFO_2:t(48,268)=(48,267)PORT_INFO_3:t(48,269)=(48,132)PPORT_INFO_3:t(48,270)=(48,271)=*(48,132)LPPORT_INFO_3:t(48,272)=(48,271)DRIVER_INFO_2:t(48,273)=(48,72)PDRIVER_INFO_2:t(48,274)=(48,275)=*(48,72)LPDRIVER_INFO_2:t(48,276)=(48,275)PRINTER_INFO_1:t(48,277)=(48,142)PPRINTER_INFO_1:t(48,278)=(48,279)=*(48,142)LPPRINTER_INFO_1:t(48,280)=(48,279)PRINTER_INFO_2:t(48,281)=(48,152)PPRINTER_INFO_2:t(48,282)=(48,283)=*(48,152)LPPRINTER_INFO_2:t(48,284)=(48,283)PRINTER_INFO_4:t(48,285)=(48,167)PPRINTER_INFO_4:t(48,286)=(48,287)=*(48,167)LPPRINTER_INFO_4:t(48,288)=(48,287)PRINTER_INFO_5:t(48,289)=(48,177)PPRINTER_INFO_5:t(48,290)=(48,291)=*(48,177)LPPRINTER_INFO_5:t(48,292)=(48,291)PRINTPROCESSOR_INFO_1:t(48,293)=(48,187)PPRINTPROCESSOR_INFO_1:t(48,294)=(48,295)=*(48,187)LPPRINTPROCESSOR_INFO_1:t(48,296)=(48,295)FORM_INFO_1:t(48,297)=(48,210)PFORM_INFO_1:t(48,298)=(48,299)=*(48,210)LPFORM_INFO_1:t(48,300)=(48,299)PRINTER_DEFAULTS:t(48,301)=(48,220)PPRINTER_DEFAULTS:t(48,302)=(48,303)=*(48,220)LPPRINTER_DEFAULTS:t(48,304)=(48,303)/usr/include/gl/gl.hGLenum:t(49,1)=(0,4)GLboolean:t(49,2)=(0,11)GLbitfield:t(49,3)=(0,4)GLbyte:t(49,4)=(0,10)GLshort:t(49,5)=(0,8)GLint:t(49,6)=(0,1)GLsizei:t(49,7)=(0,1)GLubyte:t(49,8)=(0,11)GLushort:t(49,9)=(0,9)GLuint:t(49,10)=(0,4)GLfloat:t(49,11)=(0,12)GLclampf:t(49,12)=(0,12)GLdouble:t(49,13)=(0,13)GLclampd:t(49,14)=(0,13)GLvoid:t(49,15)=(0,19)_GLfuncptr:t(49,16)=(49,17)=*(49,18)=f(0,19)glwin_window:t(1,2)=(1,3)=xsglwin_window:glwin_desc:T(1,4)=s76data:(4,2),0,32;winName:(11,30),32,32;winX:(49,6),64,32;winY:(49,6),96,32;winWidth:(49,7),128,32;winHeight:(49,7),160,32;Create:(1,5)=*(1,6)=f(0,19),192,32;Destroy:(1,5),224,32;ChangeSize:(1,7)=*(1,8)=f(0,19),256,32;Idle:(1,5),288,32;Render:(1,5),320,32;KeyPress:(1,9)=*(1,10)=f(0,1),352,32;KeyDown:(1,9),384,32;KeyUp:(1,9),416,32;MouseDown:(1,11)=*(1,12)=f(0,1),448,32;MouseUp:(1,11),480,32;MouseMove:(1,13)=*(1,14)=f(0,1),512,32;MouseDrag:(1,13),544,32;MouseZ:(1,15)=*(1,16)=f(0,1),576,32;;glwin_desc:t(1,17)=(1,4)glwin_window:T(1,3)=s436data:(4,2),0,32;winX:(49,6),32,32;winY:(49,6),64,32;winWidth:(49,7),96,32;winHeight:(49,7),128,32;viewWidth:(49,11),160,32;viewHeight:(49,11),192,32;desc:(1,17),224,608;created:(0,8),832,16;idleEnabled:(0,8),848,16;hInstance:(5,99),864,32;hWnd:(5,121),896,32;hPalette:(5,103),928,32;hRC:(5,64),960,32;hDC:(5,61),992,32;keyState:(1,18)=ar(0,1);0;255;(0,11),1024,2048;nKeysDown:(0,1),3072,32;nKeysDownPrev:(0,1),3104,32;buttonState:(1,19)=ar(0,1);0;3;(0,11),3136,32;buttonDownX:(1,20)=ar(0,1);0;3;(0,1),3168,128;buttonDownY:(1,20),3296,128;nButtonsDown:(0,1),3424,32;nButtonsDownPrev:(0,1),3456,32;;/usr/include/gl/glu.h/usr/include/GL/gl.hGLUnurbs:t(50,1)=(50,2)=xsGLUnurbs:GLUquadric:t(50,3)=(50,4)=xsGLUquadric:GLUtesselator:t(50,5)=(50,6)=xsGLUtesselator:GLUnurbsObj:t(50,7)=(50,2)GLUquadricObj:t(50,8)=(50,4)GLUtesselatorObj:t(50,9)=(50,6)GLUtriangulatorObj:t(50,10)=(50,6)/usr/include/stdio.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hfpos_t:t(52,1)=(11,16)FILE:t(52,2)=(11,5)/usr/include/stdlib.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hdiv_t:t(54,1)=(54,2)=s8quot:(0,1),0,32;rem:(0,1),32,32;;ldiv_t:t(54,3)=(54,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;GetOpenGLPalette:f(5,103)hDC:p(5,61)hRetPal:(5,103)pfd:(25,568)pPal:(0,21)=*(25,158)nPixelFormat:(0,1)nColors:(0,1)i:(0,1)RedRange:(5,10)GreenRange:(5,10)BlueRange:(5,10)showOpenGLInfo:f(0,19)hDC:p(5,61)pixelFormat:p(0,1)type:(11,30)pfd_new:(25,568)generic_format:(0,1)generic_accelerated:(0,1)once:V(0,1)SetDCPixelFormat:f(0,1)hDC:p(5,61)nPixelFormat:(0,1)pfd:V(25,568)glwin_process_key:F(0,1)win:p(0,22)=*(1,2)key:p(0,1)down:p(0,1)glwin_key_down:F(0,1)win:p(0,22)key:p(0,1)glwin_nkeys_down:F(0,1)win:p(0,22)glwin_nkeys_down_prev:F(0,1)win:p(0,22)glwin_process_button:F(0,1)win:p(0,22)button:p(0,1)down:p(0,1)x:p(0,1)y:p(0,1)glwin_button_down:F(0,1)win:p(0,22)button:p(0,1)glwin_nbuttons_down:F(0,1)win:p(0,22)glwin_nbuttons_down_prev:F(0,1)win:p(0,22)glwin_window_WndProc:f(5,40)hWnd:p(5,121)message:p(5,34)wParam:p(5,38)lParam:p(5,39)win:(0,22)x:(0,1)y:(0,1)pixelFormat:(0,1)w:(49,6)h:(49,6)nRet:(0,1)dz:(0,13)glwin_create:F(0,22)desc:p(0,23)=*(1,17)data:p(4,2)win:(0,22)wClassName:V(11,30)hWnd:(5,121)wc:(26,347)glwin_destroy:F(0,19)win:p(0,22)glwin_show:F(0,19)win:p(0,22)glwin_update:F(0,19)win:p(0,22)glwin_redraw:F(0,19)win:p(0,22)glwin_idle:F(0,19)win:p(0,22)enable:p(0,1)glwin_quit:F(0,19)win:p(0,22)exitcode:p(0,1)glwin_mainloop:F(0,1)msg:(26,136)WinMain:F(0,1)hInstance:p(5,99)hPrevInstance:p(5,99)lpCmdLine:p(6,32)nCmdShow:p(0,1)_argc:(0,1)_argv:(0,24)=ar(0,1);0;1;(15,13)win_created:S(0,22)glwin_hInstance:G(5,99)+,S .  -.-/<RM `,    0Q""1   0Q"1- 2 70@QP1[ ` e0nQ~1  0Q2  0Q2  0Q"3'"44 5 $ $' $= 6T Y 0b Qj P  0 Q P 7 8 9 7> 7P :k ; R <A=v>?./=.+/=@  0Q 0QA"" *"B +*DC_"nD~"SO#*.$7*"E$R6F;GYHy=IJ<K4LCMo ~*N   (   h" "L x ،  h   H   " h   @  H  $Ԝ .filegglwin.c%=@U _once.9gD _pfd.13 w H 8 \ p     -  FSHb p  ( H d    \  .text.dataL.bss.stab؜.stabstr'9KXgw_GetDC@4!4CScv,@ _memset _abort _fprintf _free _malloc Lgcc2_compiled.___gnu_compiled_c___rcs_id_glwin_glwin_c___rcs_id_glwin_glwin_h_GetOpenGLPalette_showOpenGLInfo_SetDCPixelFormat_glwin_process_key_glwin_key_down_glwin_nkeys_down_glwin_nkeys_down_prev_glwin_process_button_glwin_button_down_glwin_nbuttons_down_glwin_nbuttons_down_prev_glwin_window_WndProc@16_win_created_wClassName.44_glwin_create_glwin_destroy_glwin_show_glwin_update_glwin_redraw_glwin_quit_glwin_mainloop_WinMain@16_glwin_idle_glwin_hInstance_GetPixelFormat@4_DescribePixelFormat@16_CreatePalette@4_SelectPalette@12_RealizePalette@4__impure_ptr_glGetString@4_gluGetString@4_ChoosePixelFormat@8_SetPixelFormat@12_GetWindowLongA@8_SetWindowLongA@12_wglMakeCurrent@8_wglCreateContext@4_wglDeleteContext@4_DeleteObject@4_PostQuitMessage@4_InvalidateRect@12_SwapBuffers@4_ValidateRect@8_UpdateColors@4_DefWindowProcA@16_UnregisterClassA@8_LoadCursorA@8_RegisterClassA@4_CreateWindowExA@48_DestroyWindow@4_ShowWindow@8_UpdateWindow@4_SetTimer@16_KillTimer@8_GetMessageA@16_TranslateMessage@4_DispatchMessageA@4_glwin_maingmv0.9/src/glwin/mak_gen/CYGWIN_98-4.10/t/0040755000175200017560000000000007250012532020011 5ustar stephensstephenggmv0.9/src/glwin/mak_gen/Linux/0040755000175200017560000000000007262507245016762 5ustar stephensstephenggmv0.9/src/glwin/mak_gen/Linux/od/0040755000175200017560000000000007262560731017363 5ustar stephensstephenggmv0.9/src/glwin/mak_gen/Linux/od/build_vars.h0100644000175200017560000000037007264205325021660 0ustar stephensstepheng/* DO NOT MODIFY Generated by maks/pre.mak. */ #define BUILD_TARGET "Linux" #define BUILD_DATE "Sun Apr 8 20:05:25 CDT 2001" #define BUILD_HOST "ion02.dev.ionink.com" #define BUILD_USER "stephens" #define BUILD_ROOT "/home/stephens/ion/src/glwin" gmv0.9/src/glwin/mak_gen/Linux/od/glwin.o0100644000175200017560000007135407262560731020672 0ustar stephensstephengELFa4( UE UElp}taEU ` <EU ` ElExPEu u@PЃtljEU ` <tEU ` El~ ElExTt!Eu u@TЃtÐUE EU ` ]ÉUEl]UEp]UEU}EU p<EU pEUE pB‹EUE B‹EExXtyEu uuu@XЃ`EU p<tEU p E~ EEx\tEu uuu@\ЃÐUE EU p]ÍvUE]UE]UWV hEhjuUE EUxUE@$BUE@(BUE@,B UE@0BUE@,ZUE@0ZEe^_]ÍvU uÉUE}x }hvhhhvEUE}E} E Ex@tEu uu@@ЃUUEExHt Eu@HЃÍvUEEPjuEPjuEPjuÍvUEHE}kUEpEqErEsEtEuEvEwExEyEzvvE{jvE%^vE&RvE'FvE(:vE!.vE""vE$vE# vE-EÉUEEE}t$} }t .}t$E#vEvE vvE E}t }tE  vE u uuu uu ÍvUEEx`tEu uu@`ЃEt ExdtEu uu@dЃÉUEEE uC EPEExLtUEPuBLЃEkf%ft/Ekf%ft EPEjEPuUEEE u EPEEkf%ft/Ekf%ft EPEjEPuÍvU-EExDt,Eft Eu@DЃ uÐUu uE jEpEpEpEp  Ep ‹EExEh`hhhvE<th`hhhE EEuh5 h h h hd h hEÐU E EU E EU EÍvU EÍvU EÍvU E} t,EfuFUE f h'EftUE f jÍvU u vUE 0uÐU01.013 d'd/<>h&w"Lu'Lv&&@1FZr3Jbz ! 7 `  . G +  ? W !o " # % & 1 2 3 4/ 5H 6b 8{ 9 ; = > ?@A1BKCbD{EFGHIN:QSRuSTUVX[^,bEx{~6Ur4Uo#+46<CFSuZ^1 ;3L8H#)>SGJ4KeTY] `Da|)9]578 9 :; t O!$?4$V[$_$g$j$I$%%,%e%b%j%%!&"&#3&$I&%_&&w&'&*&.&:&?&D'I'N1'`H'e^'jw'o'p't''F'R(^(V(k((((((( )#)<)U)o)))))) *U*i**0*3** +&+B++p,,,,-<-R-g-..$/.B. M.DDDD!D'D?DPDYDfDDDDDDDDDD$Y.$o.{. DDD D $".$.DDD$.$.DDD$.$ . .  / / / D DDD"D=DQDZDvDDDDDD D!D#D$D)D*$'/$.@/-L/- D.D/D1 D2#$%Z/$6u/5D6D7D8$/$</;D<D=D>$/$L/K/K DLDODPDR0DS8DTKDUWDVcDWoDX{DYD[D\/M$/$`0_D`DaDb$0$TDDDD<DR(0$T20$I0V0 DDDDDD#D*D3DJd0$Lo0$DDDDD*D/0$10$(0DDDD'DAD[0$]0$0DDD$D0D<DHDTD`DlDxDDDDDDDDDDDD D DD $"0$00 11DDDD4D@DLDXD `D$rD!wD"D)D+D,1$'1$0d=1/F1/ D0D1D7D8D:0D;<D<ED?\O11$^Z1$Cr1B}1B 1BDCDD DFDH$DJ9DKBDO\DPDSDT1B1D$1$X1W1W 1WDXDY D[D]$D_9D`mDcDd1W1Y$1$hDhDiDmDn&Do7DqE2i$G2$u&2t32t DuDxDzD{)D|@D}WDhDxDDDD$D4DDDTDdDtDD@2v$K2$_2DDDD.$0k2$2DDDD.$02$2DDDD$!2$2DDDD$!2$2DDDD$!2$3 3 DDDD D-D:DJDLD YD fDs$u3$.3:3 DDD!$J3$%a3$v3$ D%D+D0$3$3D3D@DA DE$3(dv glwin.c/home/stephens/ion/src/glwin/glwin.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)__rcs_id_glwin_glwin_c:S(0,21)=ar(0,22)=r(0,22);0000000000000;0037777777777;;0;53;(0,2)glwin.h__rcs_id_glwin_glwin_h:S(1,1)=ar(0,22);0;53;(0,2)/usr/include/GL/gl.hGLenum:t(2,1)=(0,4)GLboolean:t(2,2)=(0,11)GLbitfield:t(2,3)=(0,4)GLvoid:t(2,4)=(0,20)GLbyte:t(2,5)=(0,10)GLshort:t(2,6)=(0,8)GLint:t(2,7)=(0,1)GLubyte:t(2,8)=(0,11)GLushort:t(2,9)=(0,9)GLuint:t(2,10)=(0,4)GLsizei:t(2,11)=(0,1)GLfloat:t(2,12)=(0,12)GLclampf:t(2,13)=(0,12)GLdouble:t(2,14)=(0,13)GLclampd:t(2,15)=(0,13)glwin.swigglwin_desc:t(3,1)=(3,2)=xsglwin_desc:glwin_window:t(3,3)=(3,4)=xsglwin_window:glwin_desc:T(3,2)=s80data:(0,19),0,32;winName:(1,2)=*(0,2),32,32;winX:(2,7),64,32;winY:(2,7),96,32;winWidth:(2,11),128,32;winHeight:(2,11),160,32;Create:(1,3)=*(1,4)=f(0,20),192,32;Destroy:(1,3),224,32;Close:(1,3),256,32;ChangeSize:(1,5)=*(1,6)=f(0,20),288,32;Idle:(1,3),320,32;Render:(1,3),352,32;KeyPress:(1,7)=*(1,8)=f(0,1),384,32;KeyDown:(1,7),416,32;KeyUp:(1,7),448,32;MouseDown:(1,9)=*(1,10)=f(0,1),480,32;MouseUp:(1,9),512,32;MouseMove:(1,11)=*(1,12)=f(0,1),544,32;MouseDrag:(1,11),576,32;MouseZ:(1,13)=*(1,14)=f(0,1),608,32;;glwin_window:T(3,4)=s424data:(0,19),0,32;winX:(2,7),32,32;winY:(2,7),64,32;winWidth:(2,11),96,32;winHeight:(2,11),128,32;viewWidth:(2,12),160,32;viewHeight:(2,12),192,32;desc:(3,1),224,640;keyState:(1,15)=ar(0,22);0;255;(0,11),864,2048;nKeysDown:(0,1),2912,32;nKeysDownPrev:(0,1),2944,32;buttonState:(1,16)=ar(0,22);0;3;(0,11),2976,32;buttonDownX:(1,17)=ar(0,22);0;3;(0,1),3008,128;buttonDownY:(1,17),3136,128;nButtonsDown:(0,1),3264,32;nButtonsDownPrev:(0,1),3296,32;created:(0,8),3328,16;idleEnabled:(0,8),3344,16;_glut_win:(0,1),3360,32;;/usr/include/GL/glu.hGLUquadricObj:t(4,1)=(4,2)=xsGLUquadric:GLUnurbsObj:t(4,3)=(4,4)=xsGLUnurbs:GLUtesselator:t(4,5)=(4,6)=xsGLUtesselator:GLUtriangulatorObj:t(4,7)=(4,5)/usr/include/GL/glut.h/usr/include/stdio.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(10,1)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(11,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(12,1)=(0,11)__u_short:t(12,2)=(0,9)__u_int:t(12,3)=(0,4)__u_long:t(12,4)=(0,5)__u_quad_t:t(12,5)=(0,7)__quad_t:t(12,6)=(0,6)__int8_t:t(12,7)=(0,10)__uint8_t:t(12,8)=(0,11)__int16_t:t(12,9)=(0,8)__uint16_t:t(12,10)=(0,9)__int32_t:t(12,11)=(0,1)__uint32_t:t(12,12)=(0,4)__int64_t:t(12,13)=(0,6)__uint64_t:t(12,14)=(0,7)__qaddr_t:t(12,15)=(12,16)=*(12,6)__dev_t:t(12,17)=(12,5)__uid_t:t(12,18)=(12,3)__gid_t:t(12,19)=(12,3)__ino_t:t(12,20)=(12,4)__mode_t:t(12,21)=(12,3)__nlink_t:t(12,22)=(12,3)__off_t:t(12,23)=(0,3)__loff_t:t(12,24)=(12,6)__pid_t:t(12,25)=(0,1)__ssize_t:t(12,26)=(0,1)__rlim_t:t(12,27)=(12,4)__rlim64_t:t(12,28)=(12,5)__id_t:t(12,29)=(12,3)__fsid_t:t(12,30)=(12,31)=s8__val:(12,32)=ar(0,22);0;1;(0,1),0,64;;__daddr_t:t(12,33)=(0,1)__caddr_t:t(12,34)=(12,35)=*(0,2)__time_t:t(12,36)=(0,3)__useconds_t:t(12,37)=(0,4)__suseconds_t:t(12,38)=(0,3)__swblk_t:t(12,39)=(0,3)__clock_t:t(12,40)=(0,3)__clockid_t:t(12,41)=(0,1)__timer_t:t(12,42)=(0,1)__fd_mask:t(12,43)=(0,5)__fd_set:t(12,44)=(12,45)=s128__fds_bits:(12,46)=ar(0,22);0;31;(12,43),0,1024;;__key_t:t(12,47)=(0,1)__ipc_pid_t:t(12,48)=(0,9)__blksize_t:t(12,49)=(0,3)__blkcnt_t:t(12,50)=(0,3)__blkcnt64_t:t(12,51)=(12,6)__fsblkcnt_t:t(12,52)=(12,4)__fsblkcnt64_t:t(12,53)=(12,5)__fsfilcnt_t:t(12,54)=(12,4)__fsfilcnt64_t:t(12,55)=(12,5)__ino64_t:t(12,56)=(12,5)__off64_t:t(12,57)=(12,24)__t_scalar_t:t(12,58)=(0,3)__t_uscalar_t:t(12,59)=(0,5)__intptr_t:t(12,60)=(0,1)__socklen_t:t(12,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(15,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(14,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(14,2)=(14,3)=*(14,4)=xs_pthread_descr_struct:pthread_attr_t:t(14,5)=(14,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(15,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(10,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(10,1),256,32;;pthread_cond_t:t(14,7)=(14,8)=s12__c_lock:(14,1),0,64;__c_waiting:(14,2),64,32;;pthread_condattr_t:t(14,9)=(14,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(14,11)=(0,4)pthread_mutex_t:t(14,12)=(14,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(14,2),64,32;__m_kind:(0,1),96,32;__m_lock:(14,1),128,64;;pthread_mutexattr_t:t(14,14)=(14,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(14,16)=(0,1)pthread_t:t(14,17)=(0,5)FILE:t(6,1)=(6,2)=xs_IO_FILE:__FILE:t(6,3)=(6,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(18,1)=(0,3)wint_t:t(18,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(19,1)=(19,2)=s8__count:(0,1),0,32;__value:(19,3)=u4__wch:(18,2),0,32;__wchb:(19,4)=ar(0,22);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(17,1)=(17,2)=s12__pos:(12,23),0,32;__state:(19,1),32,64;;_G_fpos64_t:t(17,3)=(17,4)=s16__pos:(12,57),0,64;__state:(19,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(22,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(22,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(22,3)=(22,4)=*(22,5)=f(0,1)__gconv_init_fct:t(22,6)=(22,7)=*(22,8)=f(0,1)__gconv_end_fct:t(22,9)=(22,10)=*(22,11)=f(0,20)__gconv_trans_fct:t(22,12)=(22,13)=*(22,14)=f(0,1)__gconv_trans_context_fct:t(22,15)=(22,16)=*(22,17)=f(0,1)__gconv_trans_query_fct:t(22,18)=(22,19)=*(22,20)=f(0,1)__gconv_trans_init_fct:t(22,21)=(22,22)=*(22,23)=f(0,1)__gconv_trans_end_fct:t(22,24)=(22,25)=*(22,26)=f(0,20)__gconv_trans_data:T(22,27)=s20__trans_fct:(22,12),0,32;__trans_context_fct:(22,15),32,32;__trans_end_fct:(22,24),64,32;__data:(0,19),96,32;__next:(22,28)=*(22,27),128,32;;__gconv_step:T(22,29)=s56__shlib_handle:(22,30)=*(22,31)=xs__gconv_loaded_object:,0,32;__modname:(1,2),32,32;__counter:(0,1),64,32;__from_name:(12,35),96,32;__to_name:(12,35),128,32;__fct:(22,3),160,32;__init_fct:(22,6),192,32;__end_fct:(22,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(22,32)=s36__outbuf:(22,33)=*(0,11),0,32;__outbufend:(22,33),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(22,34)=*(19,1),160,32;__state:(19,1),192,64;__trans:(22,28),256,32;;__gconv_info:T(22,35)=s8__nsteps:(10,1),0,32;__steps:(22,36)=*(22,29),32,32;__data:(22,37)=ar(0,22);0;-1;(22,32),64,0;;__gconv_t:t(22,38)=(22,39)=*(22,35)_G_iconv_t:t(17,5)=(17,6)=u44__cd:(22,35),0,64;__combined:(17,7)=s44__cd:(22,35),0,64;__data:(22,32),64,288;;,0,352;;_G_int16_t:t(17,8)=(0,8)_G_int32_t:t(17,9)=(0,1)_G_uint16_t:t(17,10)=(0,9)_G_uint32_t:t(17,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(16,1)=(0,20)_IO_marker:T(16,2)=s12_next:(16,3)=*(16,2),0,32;_sbuf:(16,4)=*(6,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(16,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(6,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(12,35),32,32;_IO_read_end:(12,35),64,32;_IO_read_base:(12,35),96,32;_IO_write_base:(12,35),128,32;_IO_write_ptr:(12,35),160,32;_IO_write_end:(12,35),192,32;_IO_buf_base:(12,35),224,32;_IO_buf_end:(12,35),256,32;_IO_save_base:(12,35),288,32;_IO_backup_base:(12,35),320,32;_IO_save_end:(12,35),352,32;_markers:(16,3),384,32;_chain:(16,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(12,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(16,6)=ar(0,22);0;0;(0,2),568,8;_lock:(16,7)=*(16,1),576,32;_offset:(12,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(16,8)=ar(0,22);0;51;(0,2),768,416;;_IO_FILE:t(16,9)=(6,2)__io_read_fn:t(16,10)=(16,11)=f(12,26)__io_write_fn:t(16,12)=(16,13)=f(12,26)__io_seek_fn:t(16,14)=(16,15)=f(0,1)__io_close_fn:t(16,16)=(16,17)=f(0,1)fpos_t:t(6,4)=(17,1)/usr/include/bits/stdio_lim.hoff_t:t(6,5)=(12,23)/usr/include/stdlib.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hdiv_t:t(28,1)=(28,2)=s8quot:(0,1),0,32;rem:(0,1),32,32;;ldiv_t:t(28,3)=(28,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;/usr/include/sys/types.hu_char:t(30,1)=(12,1)u_short:t(30,2)=(12,2)u_int:t(30,3)=(12,3)u_long:t(30,4)=(12,4)quad_t:t(30,5)=(12,6)u_quad_t:t(30,6)=(12,5)fsid_t:t(30,7)=(12,30)loff_t:t(30,8)=(12,24)ino_t:t(30,9)=(12,20)dev_t:t(30,10)=(12,17)gid_t:t(30,11)=(12,19)mode_t:t(30,12)=(12,21)nlink_t:t(30,13)=(12,22)uid_t:t(30,14)=(12,18)pid_t:t(30,15)=(12,25)id_t:t(30,16)=(12,29)ssize_t:t(30,17)=(12,26)daddr_t:t(30,18)=(12,33)caddr_t:t(30,19)=(12,34)key_t:t(30,20)=(12,47)/usr/include/time.htime_t:t(31,1)=(12,36)clockid_t:t(31,2)=(12,41)timer_t:t(31,3)=(12,42)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hulong:t(30,21)=(0,5)ushort:t(30,22)=(0,9)uint:t(30,23)=(0,4)int8_t:t(30,24)=(0,10)int16_t:t(30,25)=(0,8)int32_t:t(30,26)=(0,1)int64_t:t(30,27)=(0,6)u_int8_t:t(30,28)=(0,11)u_int16_t:t(30,29)=(0,9)u_int32_t:t(30,30)=(0,4)u_int64_t:t(30,31)=(0,7)register_t:t(30,32)=(0,1)/usr/include/endian.h/usr/include/bits/endian.h/usr/include/sys/select.h/usr/include/bits/select.h/usr/include/bits/sigset.h__sig_atomic_t:t(37,1)=(0,1)__sigset_t:t(37,2)=(37,3)=s128__val:(37,4)=ar(0,22);0;31;(0,5),0,1024;;/usr/include/time.htimespec:T(38,1)=s8tv_sec:(0,3),0,32;tv_nsec:(0,3),32,32;;fd_mask:t(35,1)=(12,43)fd_set:t(35,2)=(12,44)/usr/include/sys/sysmacros.hblkcnt_t:t(30,33)=(12,50)fsblkcnt_t:t(30,34)=(12,52)fsfilcnt_t:t(30,35)=(12,54)random_data:T(28,5)=s28fptr:(28,6)=*(30,26),0,32;rptr:(28,6),32,32;state:(28,6),64,32;rand_type:(0,1),96,32;rand_deg:(0,1),128,32;rand_sep:(0,1),160,32;end_ptr:(28,6),192,32;;drand48_data:T(28,7)=s24x:(28,8)=ar(0,22);0;2;(0,9),0,48;a:(28,8),48,48;c:(0,9),96,16;old_x:(28,8),112,48;init:(0,1),160,32;;/usr/include/alloca.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__compar_fn_t:t(28,9)=(28,10)=*(28,11)=f(0,1)/usr/include/string.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/assert.h/usr/include/ctype.h :T(45,1)=e_ISupper:256,_ISlower:512,_ISalpha:1024,_ISdigit:2048,_ISxdigit:4096,_ISspace:8192,_ISprint:16384,_ISgraph:32768,_ISblank:1,_IScntrl:2,_ISpunct:4,_ISalnum:8,;vk.hglwin_process_key:f(0,1)win:p(0,23)=*(3,3)key:p(0,1)down:p(0,1)glwin_key_down:F(0,1)win:p(0,23)key:p(0,1)glwin_nkeys_down:F(0,1)win:p(0,23)glwin_nkeys_down_prev:F(0,1)win:p(0,23)glwin_process_button:F(0,1)win:p(0,23)button:p(0,1)down:p(0,1)x:p(0,1)y:p(0,1)glwin_button_down:F(0,1)win:p(0,23)button:p(0,1)glwin_nbuttons_down:F(0,1)win:p(0,23)glwin_nbuttons_down_prev:F(0,1)win:p(0,23)_glwin_create:F(0,23)desc:p(0,24)=*(3,1)data:p(0,19)win:(0,23)_glwin_destroy:F(0,20)win:p(0,23)_glut_2_glwin:f(0,23)win:(0,1)_glwin_Reshape:f(0,20)width:p(0,1)height:p(0,1)win:(0,23)_glwin_Display:f(0,20)win:(0,23)_glwin_mods:f(0,20)win:p(0,23)mods:(0,1)_glut_to_vk:f(0,1)key:p(0,1)_glwin_Mouse:f(0,20)button:p(0,1)state:p(0,1)x:p(0,1)y:p(0,1)win:(0,23)_glwin_Motion:f(0,20)x:p(0,1)y:p(0,1)win:(0,23)_glwin_Keyboard:f(0,20)key:p(0,1)x:p(0,1)y:p(0,1)key:(0,11)win:(0,23)_glwin_KeyboardUp:f(0,20)key:p(0,1)x:p(0,1)y:p(0,1)key:(0,11)win:(0,23)_glwin_Idle:f(0,20)win:(0,23)glwin_create:F(0,23)desc:p(0,24)data:p(0,19)win:(0,23)glwin_close:F(0,20)win:p(0,23)glwin_destroy:F(0,20)win:p(0,23)glwin_show:F(0,20)win:p(0,23)glwin_update:F(0,20)win:p(0,23)glwin_redraw:F(0,20)win:p(0,23)glwin_idle:F(0,20)win:p(0,23)enable:p(0,1)glwin_quit:F(0,20)win:p(0,23)exitcode:p(0,1)glwin_initmain:F(0,20)argcp:p(0,25)=*(0,1)argvp:p(0,26)=*(0,27)=*(12,35)glwin_mainloop:F(0,1)__glut_2_glwin:S(0,28)=ar(0,22);0;127;(0,23)$Id: glwin.c,v 1.6 2001/03/20 03:44:50 stephens Exp $$Id: glwin.h,v 1.5 2001/03/20 03:44:52 stephens Exp $_glut_2_glwinglwin.c0 <= (win) && (win) < 128 $0<HT`lxglwin_create0 <= (win->_glut_win) && (win->_glut_win) < 128__glut_2_glwin[win->_glut_win] == 0%p->_glut_win = %d GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.stab.rel.stab.stabstr.rodata.rel.rodata.comment4v ! : @ : @ :  B( BA DZ Fk H 4 \$"4< pl,9h<=?d+AlCEG\h  $(,048<@DHLPTX\`dhlptx|  $(,048<@DHLPTX\gmv0.9/src/glwin/mak_gen/Linux/od/glwin_swig_tcl8.c0100644000175200017560000004215207262524413022630 0ustar stephensstepheng/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3u-20010403-2046 (Alpha 5) * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ /*********************************************************************** * common.swg * * This file contains generic SWIG runtime support for pointer * type checking as well as a few commonly used macros to control * external linkage. * * Author : David Beazley (beazley@cs.uchicago.edu) * * Copyright (c) 1999-2000, The University of Chicago * * This file may be freely redistributed without license or fee provided * this copyright message remains intact. ************************************************************************/ #include #if defined(_WIN32) || defined(__WIN32__) # if defined(_MSC_VER) # if defined(STATIC_LINKED) # define SWIGEXPORT(a) a # else # define SWIGEXPORT(a) __declspec(dllexport) a # endif # else # if defined(__BORLANDC__) # define SWIGEXPORT(a) a _export # else # define SWIGEXPORT(a) a # endif #endif #else # define SWIGEXPORT(a) a #endif #ifdef SWIG_GLOBAL #define SWIGRUNTIME(a) SWIGEXPORT(a) #else #define SWIGRUNTIME(a) static a #endif #ifdef __cplusplus extern "C" { #endif typedef struct swig_type_info { char *name; void *(*converter)(void *); char *str; struct swig_type_info *next; struct swig_type_info *prev; } swig_type_info; #ifdef SWIG_NOINCLUDE SWIGEXPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *); SWIGEXPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *); SWIGEXPORT(void *) SWIG_TypeCast(swig_type_info *, void *); #else static swig_type_info *swig_type_list = 0; /* Register a type mapping with the type-checking */ SWIGRUNTIME(swig_type_info *) SWIG_TypeRegister(swig_type_info *ti) { swig_type_info *tc, *head, *ret, *next; /* Check to see if this type has already been registered */ tc = swig_type_list; while (tc) { if (strcmp(tc->name, ti->name) == 0) { /* Already exists in the table. Just add additional types to the list */ head = tc; next = tc->next; goto l1; } tc = tc->prev; } head = ti; next = 0; /* Place in list */ ti->prev = swig_type_list; swig_type_list = ti; /* Build linked lists */ l1: ret = head; tc = ti + 1; /* Patch up the rest of the links */ while (tc->name) { head->next = tc; tc->prev = head; head = tc; tc++; } head->next = next; return ret; } /* Check the typename */ SWIGRUNTIME(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *ty) { swig_type_info *s; if (!ty) return 0; /* Void pointer */ s = ty->next; /* First element always just a name */ while (s) { if (strcmp(s->name,c) == 0) { if (s == ty->next) return s; /* Move s to the top of the linked list */ s->prev->next = s->next; if (s->next) { s->next->prev = s->prev; } /* Insert s as second element in the list */ s->next = ty->next; if (ty->next) ty->next->prev = s; ty->next = s; return s; } s = s->next; } return 0; } /* Cast a pointer (needed for C++ inheritance */ SWIGRUNTIME(void *) SWIG_TypeCast(swig_type_info *ty, void *ptr) { if ((!ty) || (!ty->converter)) return ptr; return (*ty->converter)(ptr); } /* Search for a swig_type_info structure */ SWIGRUNTIME(void *) SWIG_TypeQuery(const char *name) { swig_type_info *ty = swig_type_list; while (ty) { if (ty->str && (strcmp(name,ty->str) == 0)) return ty; if (ty->name && (strcmp(name,ty->name) == 0)) return ty; ty = ty->prev; } return 0; } #endif #ifdef __cplusplus } #endif /* * $Header: /cvs/projects/SWIG/Lib/tcl/swigtcl8.swg,v 1.8 2000/09/02 16:25:29 beazley Exp $ * * swigtcl8.swg */ #include #include #include #ifdef __cplusplus extern "C" { #endif #ifdef SWIG_NOINCLUDE SWIGEXPORT(int) SWIG_ConvertPtrFromString(Tcl_Interp *, char *, void **, swig_type_info *); SWIGEXPORT(int) SWIG_ConvertPtr(Tcl_Interp *, Tcl_Obj *, void **, swig_type_info *); SWIGEXPORT(void) SWIG_MakePtr(char *, void *, swig_type_info *); SWIGEXPORT(Tcl_Obj *) SWIG_NewPointerObj(void *, swig_type_info *); SWIGEXPORT(int) SWIG_GetArgs(Tcl_Interp *, int, Tcl_Obj *CONST [], const char *, ...); SWIGEXPORT(char *) SWIG_PointerTypeFromString(char *c); #else /* Convert a pointer value */ SWIGRUNTIME(int) SWIG_ConvertPtrFromString(Tcl_Interp *interp, char *c, void **ptr, swig_type_info *ty) { unsigned long p; register int d; swig_type_info *tc; p = 0; /* Pointer values must start with leading underscore */ if (*c != '_') { *ptr = (void *) 0; if (strcmp(c,"NULL") == 0) return TCL_OK; Tcl_SetResult(interp,"Type error. Expected a pointer", TCL_STATIC); return TCL_ERROR; } c++; /* Extract hex value from pointer */ while ((d = *c)) { if ((d >= '0') && (d <= '9')) p = (p << 4) + (d - '0'); else if ((d >= 'a') && (d <= 'f')) p = (p << 4) + (d - ('a'-10)); else break; c++; } *ptr = (void *) p; if (ty) { tc = SWIG_TypeCheck(c,ty); if (!tc) { Tcl_SetResult(interp,"Type error. Expected ", TCL_STATIC); Tcl_AppendElement(interp, ty->name); return TCL_ERROR; } *ptr = SWIG_TypeCast(tc,(void *)p); } return TCL_OK; } /* Convert a pointer value */ SWIGRUNTIME(int) SWIG_ConvertPtr(Tcl_Interp *interp, Tcl_Obj *oc, void **ptr, swig_type_info *ty) { return SWIG_ConvertPtrFromString(interp, Tcl_GetStringFromObj(oc,NULL), ptr, ty); } /* Convert a pointer value */ SWIGRUNTIME(char *) SWIG_PointerTypeFromString(char *c) { char d; /* Pointer values must start with leading underscore */ if (*c != '_') { return 0; } c++; /* Extract hex value from pointer */ while (d = *c) { if (!(((d >= '0') && (d <= '9')) || ((d >= 'a') && (d <= 'f')))) break; c++; } return c; } /* Take a pointer and convert it to a string */ SWIGRUNTIME(void) SWIG_MakePtr(char *c, void *ptr, swig_type_info *ty) { static char hex[17] = "0123456789abcdef"; unsigned long p, s; char result[24], *r; r = result; p = (unsigned long) ptr; if (p > 0) { while (p > 0) { s = p & 0xf; *(r++) = hex[s]; p = p >> 4; } *r = '_'; while (r >= result) *(c++) = *(r--); strcpy (c, ty->name); } else { strcpy (c, "NULL"); } } /* Create a new pointer object */ SWIGRUNTIME(Tcl_Obj *) SWIG_NewPointerObj(void *ptr, swig_type_info *type) { char result[256]; Tcl_Obj *robj; SWIG_MakePtr(result,ptr,type); robj = Tcl_NewStringObj(result,-1); return robj; } /* Get arguments */ SWIGRUNTIME(int) SWIG_GetArgs(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], const char *fmt, ...) { int argno = 0, opt = 0, tempi; int us = 0; double tempd; const char *c; va_list ap; void *vptr; swig_type_info *ty; va_start(ap,fmt); for (c = fmt; (*c && (*c != ':')); c++,argno++) { if (*c == '|') { opt = 1; c++; } if (argno >= (objc-1)) { if (!opt) { Tcl_SetResult(interp,"Wrong # args. ", TCL_STATIC); goto argerror; } else { va_end(ap); return TCL_OK; } } vptr = va_arg(ap,void *); if (vptr) { us = 0; if (*c == 'u') { us = 1; c++; } switch(*c) { case 'i': case 'l': case 'h': case 'b': if (Tcl_GetIntFromObj(interp,objv[argno+1],&tempi) != TCL_OK) goto argerror; if (*c == 'i') *((int *)vptr) = tempi; else if (*c == 'l') *((long *)vptr) = tempi; else if (*c == 'h') *((short*)vptr) = tempi; else if (*c == 'b') *((unsigned char *)vptr) = tempi; break; case 'f': case 'd': if (Tcl_GetDoubleFromObj(interp,objv[argno+1],&tempd) != TCL_OK) goto argerror; if (*c == 'f') *((float *) vptr) = tempd; else if (*c == 'd') *((double*) vptr) = tempd; break; case 's': if (*(c+1) == '#') { int *vlptr = (int *) va_arg(ap, void *); *((char **) vptr) = Tcl_GetStringFromObj(objv[argno+1], vlptr); c++; } else { *((char **)vptr) = Tcl_GetStringFromObj(objv[argno+1],NULL); } break; case 'c': *((char *)vptr) = *(Tcl_GetStringFromObj(objv[argno+1],NULL)); break; case 'p': ty = (swig_type_info *) va_arg(ap, void *); if (SWIG_ConvertPtr(interp, objv[argno+1], (void **) vptr, ty) == TCL_ERROR) goto argerror; break; case 'o': *((Tcl_Obj **)vptr) = objv[argno+1]; break; default: break; } } } if ((objc-1) > argno) { Tcl_SetResult(interp,"Wrong # args.", TCL_STATIC); goto argerror; } va_end(ap); return TCL_OK; argerror: { char temp[32]; sprintf(temp,"%d", argno); Tcl_AppendResult(interp,strchr(fmt,':'), " argument ", temp, NULL); va_end(ap); return TCL_ERROR; } } #endif /* Structure for command table */ typedef struct { const char *name; int (*wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []); ClientData clientdata; } swig_command_info; /* Structure for variable linking table */ typedef struct { const char *name; void *addr; char * (*get)(ClientData, Tcl_Interp *, char *, char *, int); char * (*set)(ClientData, Tcl_Interp *, char *, char *, int); } swig_var_info; #ifdef __cplusplus } #endif /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_glwin_window swig_types[0] static swig_type_info *swig_types[2]; /* -------- TYPES TABLE (END) -------- */ #define SWIG_init Glwin_Init #define SWIG_name "glwin" #define SWIG_prefix "glwin::" #define SWIG_namespace "glwin" #ifdef __cplusplus extern "C" { #endif #ifdef MAC_TCL #pragma export on #endif SWIGEXPORT(int) Glwin_Init(Tcl_Interp *); #ifdef MAC_TCL #pragma export off #endif #ifdef __cplusplus } #endif #include "glwin/glwin.swig" static int _wrap_glwin_close(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_closewin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; glwin_close(arg0); return TCL_OK; } static int _wrap_glwin_destroy(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_destroywin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; glwin_destroy(arg0); return TCL_OK; } static int _wrap_glwin_show(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_showwin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; glwin_show(arg0); return TCL_OK; } static int _wrap_glwin_update(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_updatewin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; glwin_update(arg0); return TCL_OK; } static int _wrap_glwin_redraw(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_redrawwin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; glwin_redraw(arg0); return TCL_OK; } static int _wrap_glwin_idle(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; int arg1 ; if (SWIG_GetArgs(interp, objc, objv,"pi:glwin::glwin_idlewin enable ",&arg0, SWIGTYPE_p_glwin_window,&arg1) == TCL_ERROR) return TCL_ERROR; glwin_idle(arg0,arg1); return TCL_OK; } static int _wrap_glwin_quit(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; int arg1 ; if (SWIG_GetArgs(interp, objc, objv,"pi:glwin::glwin_quitwin exitcode ",&arg0, SWIGTYPE_p_glwin_window,&arg1) == TCL_ERROR) return TCL_ERROR; glwin_quit(arg0,arg1); return TCL_OK; } static int _wrap_glwin_key_down(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; int arg1 ; int result ; if (SWIG_GetArgs(interp, objc, objv,"pi:glwin::glwin_key_downwin key ",&arg0, SWIGTYPE_p_glwin_window,&arg1) == TCL_ERROR) return TCL_ERROR; result = (int )glwin_key_down(arg0,arg1); Tcl_SetObjResult(interp,Tcl_NewIntObj((long) result)); return TCL_OK; } static int _wrap_glwin_nkeys_down(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; int result ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_nkeys_downwin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; result = (int )glwin_nkeys_down(arg0); Tcl_SetObjResult(interp,Tcl_NewIntObj((long) result)); return TCL_OK; } static int _wrap_glwin_nkeys_down_prev(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; int result ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_nkeys_down_prevwin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; result = (int )glwin_nkeys_down_prev(arg0); Tcl_SetObjResult(interp,Tcl_NewIntObj((long) result)); return TCL_OK; } static int _wrap_glwin_button_down(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; int arg1 ; int result ; if (SWIG_GetArgs(interp, objc, objv,"pi:glwin::glwin_button_downwin button ",&arg0, SWIGTYPE_p_glwin_window,&arg1) == TCL_ERROR) return TCL_ERROR; result = (int )glwin_button_down(arg0,arg1); Tcl_SetObjResult(interp,Tcl_NewIntObj((long) result)); return TCL_OK; } static int _wrap_glwin_nbuttons_down(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; int result ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_nbuttons_downwin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; result = (int )glwin_nbuttons_down(arg0); Tcl_SetObjResult(interp,Tcl_NewIntObj((long) result)); return TCL_OK; } static int _wrap_glwin_nbuttons_down_prev(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { glwin_window *arg0 ; int result ; if (SWIG_GetArgs(interp, objc, objv,"p:glwin::glwin_nbuttons_down_prevwin ",&arg0, SWIGTYPE_p_glwin_window) == TCL_ERROR) return TCL_ERROR; result = (int )glwin_nbuttons_down_prev(arg0); Tcl_SetObjResult(interp,Tcl_NewIntObj((long) result)); return TCL_OK; } static swig_command_info swig_commands[] = { { SWIG_prefix "glwin_close", _wrap_glwin_close, NULL}, { SWIG_prefix "glwin_destroy", _wrap_glwin_destroy, NULL}, { SWIG_prefix "glwin_show", _wrap_glwin_show, NULL}, { SWIG_prefix "glwin_update", _wrap_glwin_update, NULL}, { SWIG_prefix "glwin_redraw", _wrap_glwin_redraw, NULL}, { SWIG_prefix "glwin_idle", _wrap_glwin_idle, NULL}, { SWIG_prefix "glwin_quit", _wrap_glwin_quit, NULL}, { SWIG_prefix "glwin_key_down", _wrap_glwin_key_down, NULL}, { SWIG_prefix "glwin_nkeys_down", _wrap_glwin_nkeys_down, NULL}, { SWIG_prefix "glwin_nkeys_down_prev", _wrap_glwin_nkeys_down_prev, NULL}, { SWIG_prefix "glwin_button_down", _wrap_glwin_button_down, NULL}, { SWIG_prefix "glwin_nbuttons_down", _wrap_glwin_nbuttons_down, NULL}, { SWIG_prefix "glwin_nbuttons_down_prev", _wrap_glwin_nbuttons_down_prev, NULL}, {0, 0, 0} }; static swig_var_info swig_variables[] = { {0,0,0,0} }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static swig_type_info _swigt__p_glwin_window[] = {{"_p_glwin_window", 0, "glwin_window *"},{"_p_glwin_window"},{0}}; static swig_type_info *swig_types_initial[] = { _swigt__p_glwin_window, 0 }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ SWIGEXPORT(int) Glwin_Init(Tcl_Interp *interp) { int i; if (interp == 0) return TCL_ERROR; Tcl_Eval(interp,"namespace eval glwin { }"); for (i = 0; swig_types_initial[i]; i++) { swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]); } for (i = 0; swig_commands[i].name; i++) { Tcl_CreateObjCommand(interp, (char *) swig_commands[i].name, swig_commands[i].wrapper, swig_commands[i].clientdata, NULL); } for (i = 0; swig_variables[i].name; i++) { Tcl_SetVar(interp, (char *) swig_variables[i].name, "", TCL_GLOBAL_ONLY); Tcl_TraceVar(interp, (char *) swig_variables[i].name, TCL_TRACE_READS | TCL_GLOBAL_ONLY, swig_variables[i].get, (ClientData) swig_variables[i].addr); Tcl_TraceVar(interp, (char *) swig_variables[i].name, TCL_TRACE_WRITES | TCL_GLOBAL_ONLY, swig_variables[i].set, (ClientData) swig_variables[i].addr); } return TCL_OK; } gmv0.9/src/glwin/mak_gen/Linux/od/glwin_swig.c0100644000175200017560000000000007262524674021671 0ustar stephensstephenggmv0.9/src/glwin/mak_gen/Linux/od/glwin_swig.o0100644000175200017560000000407407262534074021717 0ustar stephensstephengELF4( 01.01d,dJ<YA=gBgdglwin_swig.c/home/stephens/ion/src/glwin/mak_gen/Linux/od/glwin_swig.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.data.bss.note.stab.rel.stab.stabstr.comment4!4'4,42H  8 $ BhK".PT  glwin_swig.c gmv0.9/src/glwin/mak_gen/Linux/od/glwin_swig_tcl8.o0100644000175200017560000016263007262534074022654 0ustar stephensstephengELF4( UE}u(&FG$KaJDKDNDODPDR5DS;DTDDVHDWQDXTDYZD\aD]lDatDbzDdDeDfDgDhDiDjDkDllLvLLL$$qpp DqDsDtDu!Dv0DwKDy`DzoD{xD~DDDDDDDr$$ DDDD1$3$DDDDDDDpDyD|D&$0CX+: R!j"#%&1234*5C6]8v9;=>?@ A, BF C] Dv E F G H I N\ Qu R S T U V X [- ^F b_ x { ~  4 Q p  4 O p #F4O<CFSZ^1#;7Le81H#CXmGJNKTY]&`^aCRv57899:Th-?DVk_gjI & _ nu L t !vD!wv!x!y!z"{T"|z"}"~"#D#y### $8$w$$%-%V%%%%&&9&(]&)&*&+&-&0 '2:'6h'7'8':'<'>(?:(@V(Av(B(C(D(F)H+)IR)Kx)L)M)O)P *R7*S\*U*W*X*+q+,,- ...//0>11Q122%4D4445`5D55X5Z5[*6Z66666(7X7777K8o8:%:::d; ;F<&h<<c<>>8>>??Rbjņކ!" # $6%L&d'{*.:?ևDIN`5eKjdo}ptF؈R^ CXnljމ)B\rŠ݊CW03ދ0_u܍$H +DDD DDDDDYDdDiDDDDDDDDDDDDDD D8D=6>F$?P$gw DDD+$-$DDDDDD,DHDKDPDUǎ$Wώ$ DDD DDD D)D>D DD HD ND XDkD pDD&(08[$d$ DD D!D=DE$Gʏ$ ޏ D D!D"D)D*!D+DD,LD-SD/XD0aD1gD2|D5D8D9D:D;D<D=D?DDDEDF,DGDDH\DIpDLxDMDNDODQDRDSDTDUDV DXBDZDD[fD]hD^vDaD*DhDiDjDmDqDrDsDu(Dv-Dw-!(!2!>"G#T$]%g&s'}Rq$/ Ñ$$ *6DDD8DFDKC$MW$tr DDD8DFDK$M$ђ DDD8DFDK $M$ 2D T`DDD8DFDKm$My$d  DDD8DFDKΓ$Mړ$   DDD<DMDR-9$TD$ \n ~DDD<DMDR$T$\ ʔܔ DDD<DRDqDv$x)$ GY iuDDD8DKDjDo$q$H Е DDD 8D KD jD o$q$ 1C S_DDD<DRDqDvlx$x$4 Ö ӖߖDDD 8D!KD"jD#o$q$& +&=& M&Y&D&D*D+8D,KD-jD.of'r($q&1&Bԗ&H&J 6$RHRDRDTDUDV+DWPDVDYDZDYD\D]@D^dD_D\DaDbXS$`(dglwin_swig_tcl8.c/home/stephens/ion/src/glwin/mak_gen/Linux/od/glwin_swig_tcl8.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)/usr/include/string.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(5,1)=(0,4)swig_type_info:T(0,21)=s20name:(0,22)=*(0,2),0,32;converter:(0,23)=*(0,24)=f(0,19),32,32;str:(0,22),64,32;next:(0,25)=*(0,21),96,32;prev:(0,25),128,32;;swig_type_info:t(0,26)=(0,21)swig_type_list:S(0,27)=*(0,26)SWIG_TypeRegister:f(0,27)ti:p(0,27)tc:(0,27)head:(0,27)ret:(0,27)next:(0,27)SWIG_TypeCheck:f(0,27)c:p(0,22)ty:p(0,27)s:(0,27)SWIG_TypeCast:f(0,19)ty:p(0,27)ptr:p(0,19)SWIG_TypeQuery:f(0,19)name:p(0,28)=*(0,2)ty:(0,27)/usr/include/tcl.h/usr/include/stdio.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(9,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(10,1)=(0,11)__u_short:t(10,2)=(0,9)__u_int:t(10,3)=(0,4)__u_long:t(10,4)=(0,5)__u_quad_t:t(10,5)=(0,7)__quad_t:t(10,6)=(0,6)__int8_t:t(10,7)=(0,10)__uint8_t:t(10,8)=(0,11)__int16_t:t(10,9)=(0,8)__uint16_t:t(10,10)=(0,9)__int32_t:t(10,11)=(0,1)__uint32_t:t(10,12)=(0,4)__int64_t:t(10,13)=(0,6)__uint64_t:t(10,14)=(0,7)__qaddr_t:t(10,15)=(10,16)=*(10,6)__dev_t:t(10,17)=(10,5)__uid_t:t(10,18)=(10,3)__gid_t:t(10,19)=(10,3)__ino_t:t(10,20)=(10,4)__mode_t:t(10,21)=(10,3)__nlink_t:t(10,22)=(10,3)__off_t:t(10,23)=(0,3)__loff_t:t(10,24)=(10,6)__pid_t:t(10,25)=(0,1)__ssize_t:t(10,26)=(0,1)__rlim_t:t(10,27)=(10,4)__rlim64_t:t(10,28)=(10,5)__id_t:t(10,29)=(10,3)__fsid_t:t(10,30)=(10,31)=s8__val:(10,32)=ar(10,33)=r(10,33);0000000000000;0037777777777;;0;1;(0,1),0,64;;__daddr_t:t(10,34)=(0,1)__caddr_t:t(10,35)=(0,22)__time_t:t(10,36)=(0,3)__useconds_t:t(10,37)=(0,4)__suseconds_t:t(10,38)=(0,3)__swblk_t:t(10,39)=(0,3)__clock_t:t(10,40)=(0,3)__clockid_t:t(10,41)=(0,1)__timer_t:t(10,42)=(0,1)__fd_mask:t(10,43)=(0,5)__fd_set:t(10,44)=(10,45)=s128__fds_bits:(10,46)=ar(10,33);0;31;(10,43),0,1024;;__key_t:t(10,47)=(0,1)__ipc_pid_t:t(10,48)=(0,9)__blksize_t:t(10,49)=(0,3)__blkcnt_t:t(10,50)=(0,3)__blkcnt64_t:t(10,51)=(10,6)__fsblkcnt_t:t(10,52)=(10,4)__fsblkcnt64_t:t(10,53)=(10,5)__fsfilcnt_t:t(10,54)=(10,4)__fsfilcnt64_t:t(10,55)=(10,5)__ino64_t:t(10,56)=(10,5)__off64_t:t(10,57)=(10,24)__t_scalar_t:t(10,58)=(0,3)__t_uscalar_t:t(10,59)=(0,5)__intptr_t:t(10,60)=(0,1)__socklen_t:t(10,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(13,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(12,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(12,2)=(12,3)=*(12,4)=xs_pthread_descr_struct:pthread_attr_t:t(12,5)=(12,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(13,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(5,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(5,1),256,32;;pthread_cond_t:t(12,7)=(12,8)=s12__c_lock:(12,1),0,64;__c_waiting:(12,2),64,32;;pthread_condattr_t:t(12,9)=(12,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(12,11)=(0,4)pthread_mutex_t:t(12,12)=(12,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(12,2),64,32;__m_kind:(0,1),96,32;__m_lock:(12,1),128,64;;pthread_mutexattr_t:t(12,14)=(12,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(12,16)=(0,1)pthread_t:t(12,17)=(0,5)FILE:t(7,1)=(7,2)=xs_IO_FILE:__FILE:t(7,3)=(7,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(16,1)=(0,3)wint_t:t(16,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(17,1)=(17,2)=s8__count:(0,1),0,32;__value:(17,3)=u4__wch:(16,2),0,32;__wchb:(17,4)=ar(10,33);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(15,1)=(15,2)=s12__pos:(10,23),0,32;__state:(17,1),32,64;;_G_fpos64_t:t(15,3)=(15,4)=s16__pos:(10,57),0,64;__state:(17,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(20,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(20,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(20,3)=(20,4)=*(20,5)=f(0,1)__gconv_init_fct:t(20,6)=(20,7)=*(20,8)=f(0,1)__gconv_end_fct:t(20,9)=(20,10)=*(20,11)=f(0,20)__gconv_trans_fct:t(20,12)=(20,13)=*(20,14)=f(0,1)__gconv_trans_context_fct:t(20,15)=(20,16)=*(20,17)=f(0,1)__gconv_trans_query_fct:t(20,18)=(20,19)=*(20,20)=f(0,1)__gconv_trans_init_fct:t(20,21)=(20,22)=*(20,23)=f(0,1)__gconv_trans_end_fct:t(20,24)=(20,25)=*(20,26)=f(0,20)__gconv_trans_data:T(20,27)=s20__trans_fct:(20,12),0,32;__trans_context_fct:(20,15),32,32;__trans_end_fct:(20,24),64,32;__data:(0,19),96,32;__next:(20,28)=*(20,27),128,32;;__gconv_step:T(20,29)=s56__shlib_handle:(20,30)=*(20,31)=xs__gconv_loaded_object:,0,32;__modname:(0,28),32,32;__counter:(0,1),64,32;__from_name:(0,22),96,32;__to_name:(0,22),128,32;__fct:(20,3),160,32;__init_fct:(20,6),192,32;__end_fct:(20,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(20,32)=s36__outbuf:(20,33)=*(0,11),0,32;__outbufend:(20,33),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(20,34)=*(17,1),160,32;__state:(17,1),192,64;__trans:(20,28),256,32;;__gconv_info:T(20,35)=s8__nsteps:(5,1),0,32;__steps:(20,36)=*(20,29),32,32;__data:(20,37)=ar(10,33);0;-1;(20,32),64,0;;__gconv_t:t(20,38)=(20,39)=*(20,35)_G_iconv_t:t(15,5)=(15,6)=u44__cd:(20,35),0,64;__combined:(15,7)=s44__cd:(20,35),0,64;__data:(20,32),64,288;;,0,352;;_G_int16_t:t(15,8)=(0,8)_G_int32_t:t(15,9)=(0,1)_G_uint16_t:t(15,10)=(0,9)_G_uint32_t:t(15,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(14,1)=(0,20)_IO_marker:T(14,2)=s12_next:(14,3)=*(14,2),0,32;_sbuf:(14,4)=*(7,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(14,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(7,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(0,22),32,32;_IO_read_end:(0,22),64,32;_IO_read_base:(0,22),96,32;_IO_write_base:(0,22),128,32;_IO_write_ptr:(0,22),160,32;_IO_write_end:(0,22),192,32;_IO_buf_base:(0,22),224,32;_IO_buf_end:(0,22),256,32;_IO_save_base:(0,22),288,32;_IO_backup_base:(0,22),320,32;_IO_save_end:(0,22),352,32;_markers:(14,3),384,32;_chain:(14,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(10,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(14,6)=ar(10,33);0;0;(0,2),568,8;_lock:(14,7)=*(14,1),576,32;_offset:(10,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(14,8)=ar(10,33);0;51;(0,2),768,416;;_IO_FILE:t(14,9)=(7,2)__io_read_fn:t(14,10)=(14,11)=f(10,26)__io_write_fn:t(14,12)=(14,13)=f(10,26)__io_seek_fn:t(14,14)=(14,15)=f(0,1)__io_close_fn:t(14,16)=(14,17)=f(0,1)fpos_t:t(7,4)=(15,1)/usr/include/bits/stdio_lim.hoff_t:t(7,5)=(10,23)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.hva_list:t(26,1)=(9,1)ClientData:t(6,1)=(0,19)Tcl_Interp:T(6,2)=s12result:(0,22),0,32;freeProc:(6,3)=*(6,4)=f(0,20),32,32;errorLine:(0,1),64,32;;Tcl_Interp:t(6,5)=(6,2)Tcl_AsyncHandler:t(6,6)=(6,7)=*(6,8)=xsTcl_AsyncHandler_:Tcl_Channel:t(6,9)=(6,10)=*(6,11)=xsTcl_Channel_:Tcl_Command:t(6,12)=(6,13)=*(6,14)=xsTcl_Command_:Tcl_Condition:t(6,15)=(6,16)=*(6,17)=xsTcl_Condition_:Tcl_EncodingState:t(6,18)=(6,19)=*(6,20)=xsTcl_EncodingState_:Tcl_Encoding:t(6,21)=(6,22)=*(6,23)=xsTcl_Encoding_:Tcl_Event:t(6,24)=(6,25)=xsTcl_Event:Tcl_Mutex:t(6,26)=(6,27)=*(6,28)=xsTcl_Mutex_:Tcl_Pid:t(6,29)=(6,30)=*(6,31)=xsTcl_Pid_:Tcl_RegExp:t(6,32)=(6,33)=*(6,34)=xsTcl_RegExp_:Tcl_ThreadDataKey:t(6,35)=(6,36)=*(6,37)=xsTcl_ThreadDataKey_:Tcl_ThreadId:t(6,38)=(6,39)=*(6,40)=xsTcl_ThreadId_:Tcl_TimerToken:t(6,41)=(6,42)=*(6,43)=xsTcl_TimerToken_:Tcl_Trace:t(6,44)=(6,45)=*(6,46)=xsTcl_Trace_:Tcl_Var:t(6,47)=(6,48)=*(6,49)=xsTcl_Var_:Tcl_ThreadCreateProc:t(6,50)=(6,51)=f(0,20)Tcl_RegExpIndices:T(6,52)=s8start:(0,3),0,32;end:(0,3),32,32;;Tcl_RegExpIndices:t(6,53)=(6,52)Tcl_RegExpInfo:T(6,54)=s16nsubs:(0,1),0,32;matches:(6,55)=*(6,53),32,32;extendStart:(0,3),64,32;reserved:(0,3),96,32;;Tcl_RegExpInfo:t(6,56)=(6,54)Tcl_Stat_:t(6,57)=(6,58)=*(6,59)=xsstat: :T(6,60)=eTCL_INT:0,TCL_DOUBLE:1,TCL_EITHER:2,;Tcl_ValueType:t(6,61)=(6,60)Tcl_Value:T(6,62)=s16type:(6,61),0,32;intValue:(0,3),32,32;doubleValue:(0,13),64,64;;Tcl_Value:t(6,63)=(6,62)Tcl_AppInitProc:t(6,64)=(6,65)=f(0,1)Tcl_AsyncProc:t(6,66)=(6,67)=f(0,1)Tcl_ChannelProc:t(6,68)=(6,69)=f(0,20)Tcl_CloseProc:t(6,70)=(6,51)Tcl_CmdDeleteProc:t(6,71)=(6,51)Tcl_CmdProc:t(6,72)=(6,73)=f(0,1)Tcl_CmdTraceProc:t(6,74)=(6,75)=f(0,20)Tcl_DupInternalRepProc:t(6,76)=(6,77)=f(0,20)Tcl_EncodingConvertProc:t(6,78)=(6,79)=f(0,1)Tcl_EncodingFreeProc:t(6,80)=(6,51)Tcl_EventProc:t(6,81)=(6,82)=f(0,1)Tcl_EventCheckProc:t(6,83)=(6,69)Tcl_EventDeleteProc:t(6,84)=(6,85)=f(0,1)Tcl_EventSetupProc:t(6,86)=(6,69)Tcl_ExitProc:t(6,87)=(6,51)Tcl_FileProc:t(6,88)=(6,69)Tcl_FileFreeProc:t(6,89)=(6,51)Tcl_FreeInternalRepProc:t(6,90)=(6,91)=f(0,20)Tcl_FreeProc:t(6,92)=(6,4)Tcl_IdleProc:t(6,93)=(6,51)Tcl_InterpDeleteProc:t(6,94)=(6,95)=f(0,20)Tcl_MathProc:t(6,96)=(6,97)=f(0,1)Tcl_NamespaceDeleteProc:t(6,98)=(6,51)Tcl_ObjCmdProc:t(6,99)=(6,100)=f(0,1)Tcl_PackageInitProc:t(6,101)=(6,65)Tcl_PanicProc:t(6,102)=(6,103)=f(0,20)Tcl_TcpAcceptProc:t(6,104)=(6,105)=f(0,20)Tcl_TimerProc:t(6,106)=(6,51)Tcl_SetFromAnyProc:t(6,107)=(6,108)=f(0,1)Tcl_UpdateStringProc:t(6,109)=(6,91)Tcl_VarTraceProc:t(6,110)=(6,111)=f(0,22)Tcl_CreateFileHandlerProc:t(6,112)=(6,113)=f(0,20)Tcl_DeleteFileHandlerProc:t(6,114)=(6,115)=f(0,20)Tcl_ObjType:T(6,116)=s20name:(0,22),0,32;freeIntRepProc:(6,117)=*(6,90),32,32;dupIntRepProc:(6,118)=*(6,76),64,32;updateStringProc:(6,119)=*(6,109),96,32;setFromAnyProc:(6,120)=*(6,107),128,32;;Tcl_ObjType:t(6,121)=(6,116)Tcl_Obj:T(6,122)=s24refCount:(0,1),0,32;bytes:(0,22),32,32;length:(0,1),64,32;typePtr:(6,123)=*(6,121),96,32;internalRep:(6,124)=u8longValue:(0,3),0,32;doubleValue:(0,13),0,64;otherValuePtr:(0,19),0,32;twoPtrValue:(6,125)=s8ptr1:(0,19),0,32;ptr2:(0,19),32,32;;,0,64;;,128,64;;Tcl_Obj:t(6,126)=(6,122)Tcl_SavedResult:T(6,127)=s228result:(0,22),0,32;freeProc:(6,128)=*(6,92),32,32;objResultPtr:(6,129)=*(6,126),64,32;appendResult:(0,22),96,32;appendAvl:(0,1),128,32;appendUsed:(0,1),160,32;resultSpace:(6,130)=ar(10,33);0;200;(0,2),192,1608;;Tcl_SavedResult:t(6,131)=(6,127)Tcl_Namespace:T(6,132)=s20name:(0,22),0,32;fullName:(0,22),32,32;clientData:(6,1),64,32;deleteProc:(6,133)=*(6,98),96,32;parentPtr:(6,134)=*(6,132),128,32;;Tcl_Namespace:t(6,135)=(6,132)Tcl_CallFrame:T(6,136)=s44nsPtr:(6,137)=*(6,135),0,32;dummy1:(0,1),32,32;dummy2:(0,1),64,32;dummy3:(0,22),96,32;dummy4:(0,22),128,32;dummy5:(0,22),160,32;dummy6:(0,1),192,32;dummy7:(0,22),224,32;dummy8:(0,22),256,32;dummy9:(0,1),288,32;dummy10:(0,22),320,32;;Tcl_CallFrame:t(6,138)=(6,136)Tcl_CmdInfo:T(6,139)=s32isNativeObjectProc:(0,1),0,32;objProc:(6,140)=*(6,99),32,32;objClientData:(6,1),64,32;proc:(6,141)=*(6,72),96,32;clientData:(6,1),128,32;deleteProc:(6,142)=*(6,71),160,32;deleteData:(6,1),192,32;namespacePtr:(6,137),224,32;;Tcl_CmdInfo:t(6,143)=(6,139)Tcl_DString:T(6,144)=s212string:(0,22),0,32;length:(0,1),32,32;spaceAvl:(0,1),64,32;staticSpace:(6,145)=ar(10,33);0;199;(0,2),96,1600;;Tcl_DString:t(6,146)=(6,144)Tcl_HashEntry:T(6,147)=s20nextPtr:(6,148)=*(6,147),0,32;tablePtr:(6,149)=*(6,150)=xsTcl_HashTable:,32,32;bucketPtr:(6,151)=*(6,148),64,32;clientData:(6,1),96,32;key:(6,152)=u4oneWordValue:(0,22),0,32;words:(6,153)=ar(10,33);0;0;(0,1),0,32;string:(17,4),0,32;;,128,32;;Tcl_HashEntry:t(6,154)=(6,147)Tcl_HashTable:T(6,150)=s52buckets:(6,155)=*(6,156)=*(6,154),0,32;staticBuckets:(6,157)=ar(10,33);0;3;(6,156),32,128;numBuckets:(0,1),160,32;numEntries:(0,1),192,32;rebuildSize:(0,1),224,32;downShift:(0,1),256,32;mask:(0,1),288,32;keyType:(0,1),320,32;findProc:(6,158)=*(6,159)=f(6,156),352,32;createProc:(6,160)=*(6,161)=f(6,156),384,32;;Tcl_HashTable:t(6,162)=(6,150)Tcl_HashSearch:T(6,163)=s12tablePtr:(6,164)=*(6,162),0,32;nextIndex:(0,1),32,32;nextEntryPtr:(6,156),64,32;;Tcl_HashSearch:t(6,165)=(6,163)Tcl_Event:T(6,25)=s8proc:(6,166)=*(6,81),0,32;nextPtr:(6,167)=*(6,25),32,32;; :T(6,168)=eTCL_QUEUE_TAIL:0,TCL_QUEUE_HEAD:1,TCL_QUEUE_MARK:2,;Tcl_QueuePosition:t(6,169)=(6,168)Tcl_Time:T(6,170)=s8sec:(0,3),0,32;usec:(0,3),32,32;;Tcl_Time:t(6,171)=(6,170)Tcl_SetTimerProc:t(6,172)=(6,173)=f(0,20)Tcl_WaitForEventProc:t(6,174)=(6,175)=f(0,1)Tcl_DriverBlockModeProc:t(6,176)=(6,177)=f(0,1)Tcl_DriverCloseProc:t(6,178)=(6,179)=f(0,1)Tcl_DriverClose2Proc:t(6,180)=(6,67)Tcl_DriverInputProc:t(6,181)=(6,182)=f(0,1)Tcl_DriverOutputProc:t(6,183)=(6,182)Tcl_DriverSeekProc:t(6,184)=(6,185)=f(0,1)Tcl_DriverSetOptionProc:t(6,186)=(6,187)=f(0,1)Tcl_DriverGetOptionProc:t(6,188)=(6,189)=f(0,1)Tcl_DriverWatchProc:t(6,190)=(6,69)Tcl_DriverGetHandleProc:t(6,191)=(6,192)=f(0,1)Tcl_EolTranslation:T(6,193)=eTCL_TRANSLATE_AUTO:0,TCL_TRANSLATE_CR:1,TCL_TRANSLATE_LF:2,TCL_TRANSLATE_CRLF:3,;Tcl_EolTranslation:t(6,194)=(6,193)Tcl_ChannelType:T(6,195)=s44typeName:(0,22),0,32;blockModeProc:(6,196)=*(6,176),32,32;closeProc:(6,197)=*(6,178),64,32;inputProc:(6,198)=*(6,181),96,32;outputProc:(6,199)=*(6,183),128,32;seekProc:(6,200)=*(6,184),160,32;setOptionProc:(6,201)=*(6,186),192,32;getOptionProc:(6,202)=*(6,188),224,32;watchProc:(6,203)=*(6,190),256,32;getHandleProc:(6,204)=*(6,191),288,32;close2Proc:(6,205)=*(6,180),320,32;;Tcl_ChannelType:t(6,206)=(6,195)Tcl_PathType:T(6,207)=eTCL_PATH_ABSOLUTE:0,TCL_PATH_RELATIVE:1,TCL_PATH_VOLUME_RELATIVE:2,;Tcl_PathType:t(6,208)=(6,207)Tcl_NotifierProcs:T(6,209)=s16setTimerProc:(6,210)=*(6,172),0,32;waitForEventProc:(6,211)=*(6,174),32,32;createFileHandlerProc:(6,212)=*(6,112),64,32;deleteFileHandlerProc:(6,213)=*(6,114),96,32;;Tcl_NotifierProcs:t(6,214)=(6,209)Tcl_EncodingType:T(6,215)=s24encodingName:(0,28),0,32;toUtfProc:(6,216)=*(6,78),32,32;fromUtfProc:(6,216),64,32;freeProc:(6,217)=*(6,80),96,32;clientData:(6,1),128,32;nullSize:(0,1),160,32;;Tcl_EncodingType:t(6,218)=(6,215)Tcl_Token:T(6,219)=s16type:(0,1),0,32;start:(0,22),32,32;size:(0,1),64,32;numComponents:(0,1),96,32;;Tcl_Token:t(6,220)=(6,219)Tcl_Parse:T(6,221)=s376commentStart:(0,22),0,32;commentSize:(0,1),32,32;commandStart:(0,22),64,32;commandSize:(0,1),96,32;numWords:(0,1),128,32;tokenPtr:(6,222)=*(6,220),160,32;numTokens:(0,1),192,32;tokensAvailable:(0,1),224,32;errorType:(0,1),256,32;string:(0,22),288,32;end:(0,22),320,32;interp:(6,223)=*(6,5),352,32;term:(0,22),384,32;incomplete:(0,1),416,32;staticTokens:(6,224)=ar(10,33);0;19;(6,220),448,2560;;Tcl_Parse:t(6,225)=(6,221)Tcl_UniChar:t(6,226)=(0,9)/usr/include/tclDecls.hTclStubHooks:T(27,1)=s12tclPlatStubs:(27,2)=*(27,3)=xsTclPlatStubs:,0,32;tclIntStubs:(27,4)=*(27,5)=xsTclIntStubs:,32,32;tclIntPlatStubs:(27,6)=*(27,7)=xsTclIntPlatStubs:,64,32;;TclStubHooks:t(27,8)=(27,1)TclStubs:T(27,9)=s1584magic:(0,1),0,32;hooks:(27,10)=*(27,1),32,32;tcl_PkgProvideEx:(27,11)=*(27,12)=f(0,1),64,32;tcl_PkgRequireEx:(27,13)=*(27,14)=f(0,22),96,32;tcl_Panic:(27,15)=*(6,103),128,32;tcl_Alloc:(27,16)=*(27,17)=f(0,22),160,32;tcl_Free:(6,3),192,32;tcl_Realloc:(27,18)=*(27,19)=f(0,22),224,32;tcl_DbCkalloc:(27,20)=*(27,21)=f(0,22),256,32;tcl_DbCkfree:(27,22)=*(27,23)=f(0,1),288,32;tcl_DbCkrealloc:(27,24)=*(27,25)=f(0,22),320,32;tcl_CreateFileHandler:(27,26)=*(6,113),352,32;tcl_DeleteFileHandler:(27,27)=*(6,115),384,32;tcl_SetTimer:(27,28)=*(6,173),416,32;tcl_Sleep:(27,27),448,32;tcl_WaitForEvent:(27,29)=*(6,175),480,32;tcl_AppendAllObjTypes:(27,30)=*(27,31)=f(0,1),512,32;tcl_AppendStringsToObj:(27,32)=*(27,33)=f(0,20),544,32;tcl_AppendToObj:(27,34)=*(27,35)=f(0,20),576,32;tcl_ConcatObj:(27,36)=*(27,37)=f(6,129),608,32;tcl_ConvertToType:(27,38)=*(27,39)=f(0,1),640,32;tcl_DbDecrRefCount:(27,34),672,32;tcl_DbIncrRefCount:(27,34),704,32;tcl_DbIsShared:(27,40)=*(27,41)=f(0,1),736,32;tcl_DbNewBooleanObj:(27,42)=*(27,43)=f(6,129),768,32;tcl_DbNewByteArrayObj:(27,44)=*(27,45)=f(6,129),800,32;tcl_DbNewDoubleObj:(27,46)=*(27,47)=f(6,129),832,32;tcl_DbNewListObj:(27,48)=*(27,49)=f(6,129),864,32;tcl_DbNewLongObj:(27,50)=*(27,51)=f(6,129),896,32;tcl_DbNewObj:(27,52)=*(27,53)=f(6,129),928,32;tcl_DbNewStringObj:(27,54)=*(27,55)=f(6,129),960,32;tcl_DuplicateObj:(27,56)=*(27,57)=f(6,129),992,32;tclFreeObj:(27,58)=*(27,59)=f(0,20),1024,32;tcl_GetBoolean:(27,60)=*(27,61)=f(0,1),1056,32;tcl_GetBooleanFromObj:(27,62)=*(27,63)=f(0,1),1088,32;tcl_GetByteArrayFromObj:(27,64)=*(27,65)=f(20,33),1120,32;tcl_GetDouble:(27,66)=*(27,67)=f(0,1),1152,32;tcl_GetDoubleFromObj:(27,68)=*(27,69)=f(0,1),1184,32;tcl_GetIndexFromObj:(27,70)=*(27,71)=f(0,1),1216,32;tcl_GetInt:(27,60),1248,32;tcl_GetIntFromObj:(27,62),1280,32;tcl_GetLongFromObj:(27,72)=*(27,73)=f(0,1),1312,32;tcl_GetObjType:(27,74)=*(27,75)=f(6,123),1344,32;tcl_GetStringFromObj:(27,76)=*(27,77)=f(0,22),1376,32;tcl_InvalidateStringRep:(27,58),1408,32;tcl_ListObjAppendList:(27,78)=*(27,79)=f(0,1),1440,32;tcl_ListObjAppendElement:(27,78),1472,32;tcl_ListObjGetElements:(27,80)=*(27,81)=f(0,1),1504,32;tcl_ListObjIndex:(27,82)=*(27,83)=f(0,1),1536,32;tcl_ListObjLength:(27,62),1568,32;tcl_ListObjReplace:(27,84)=*(27,85)=f(0,1),1600,32;tcl_NewBooleanObj:(27,86)=*(27,87)=f(6,129),1632,32;tcl_NewByteArrayObj:(27,88)=*(27,89)=f(6,129),1664,32;tcl_NewDoubleObj:(27,90)=*(27,91)=f(6,129),1696,32;tcl_NewIntObj:(27,86),1728,32;tcl_NewListObj:(27,36),1760,32;tcl_NewLongObj:(27,92)=*(27,93)=f(6,129),1792,32;tcl_NewObj:(27,94)=*(27,95)=f(6,129),1824,32;tcl_NewStringObj:(27,96)=*(27,97)=f(6,129),1856,32;tcl_SetBooleanObj:(27,98)=*(27,99)=f(0,20),1888,32;tcl_SetByteArrayLength:(27,100)=*(27,101)=f(20,33),1920,32;tcl_SetByteArrayObj:(27,102)=*(27,103)=f(0,20),1952,32;tcl_SetDoubleObj:(27,104)=*(27,105)=f(0,20),1984,32;tcl_SetIntObj:(27,98),2016,32;tcl_SetListObj:(27,106)=*(27,107)=f(0,20),2048,32;tcl_SetLongObj:(27,108)=*(27,109)=f(0,20),2080,32;tcl_SetObjLength:(27,98),2112,32;tcl_SetStringObj:(27,34),2144,32;tcl_AddErrorInfo:(27,110)=*(27,111)=f(0,20),2176,32;tcl_AddObjErrorInfo:(27,112)=*(27,113)=f(0,20),2208,32;tcl_AllowExceptions:(27,114)=*(27,115)=f(0,20),2240,32;tcl_AppendElement:(27,110),2272,32;tcl_AppendResult:(27,116)=*(27,117)=f(0,20),2304,32;tcl_AsyncCreate:(27,118)=*(27,119)=f(6,6),2336,32;tcl_AsyncDelete:(27,120)=*(27,121)=f(0,20),2368,32;tcl_AsyncInvoke:(27,122)=*(27,123)=f(0,1),2400,32;tcl_AsyncMark:(27,120),2432,32;tcl_AsyncReady:(27,124)=*(27,125)=f(0,1),2464,32;tcl_BackgroundError:(27,114),2496,32;tcl_Backslash:(27,126)=*(27,127)=f(0,2),2528,32;tcl_BadChannelOption:(27,128)=*(27,129)=f(0,1),2560,32;tcl_CallWhenDeleted:(27,130)=*(27,131)=f(0,20),2592,32;tcl_CancelIdleCall:(27,132)=*(27,133)=f(0,20),2624,32;tcl_Close:(27,134)=*(27,135)=f(0,1),2656,32;tcl_CommandComplete:(27,136)=*(27,137)=f(0,1),2688,32;tcl_Concat:(27,138)=*(27,139)=f(0,22),2720,32;tcl_ConvertElement:(27,140)=*(27,141)=f(0,1),2752,32;tcl_ConvertCountedElement:(27,142)=*(27,143)=f(0,1),2784,32;tcl_CreateAlias:(27,144)=*(27,145)=f(0,1),2816,32;tcl_CreateAliasObj:(27,146)=*(27,147)=f(0,1),2848,32;tcl_CreateChannel:(27,148)=*(27,149)=f(6,9),2880,32;tcl_CreateChannelHandler:(27,150)=*(27,151)=f(0,20),2912,32;tcl_CreateCloseHandler:(27,152)=*(27,153)=f(0,20),2944,32;tcl_CreateCommand:(27,154)=*(27,155)=f(6,12),2976,32;tcl_CreateEventSource:(27,156)=*(27,157)=f(0,20),3008,32;tcl_CreateExitHandler:(27,158)=*(27,159)=f(0,20),3040,32;tcl_CreateInterp:(27,160)=*(27,161)=f(6,223),3072,32;tcl_CreateMathFunc:(27,162)=*(27,163)=f(0,20),3104,32;tcl_CreateObjCommand:(27,164)=*(27,165)=f(6,12),3136,32;tcl_CreateSlave:(27,166)=*(27,167)=f(6,223),3168,32;tcl_CreateTimerHandler:(27,168)=*(27,169)=f(6,41),3200,32;tcl_CreateTrace:(27,170)=*(27,171)=f(6,44),3232,32;tcl_DeleteAssocData:(27,172)=*(27,173)=f(0,20),3264,32;tcl_DeleteChannelHandler:(27,174)=*(27,175)=f(0,20),3296,32;tcl_DeleteCloseHandler:(27,152),3328,32;tcl_DeleteCommand:(27,176)=*(27,177)=f(0,1),3360,32;tcl_DeleteCommandFromToken:(27,178)=*(27,179)=f(0,1),3392,32;tcl_DeleteEvents:(27,180)=*(27,181)=f(0,20),3424,32;tcl_DeleteEventSource:(27,156),3456,32;tcl_DeleteExitHandler:(27,158),3488,32;tcl_DeleteHashEntry:(27,182)=*(27,183)=f(0,20),3520,32;tcl_DeleteHashTable:(27,184)=*(27,185)=f(0,20),3552,32;tcl_DeleteInterp:(27,114),3584,32;tcl_DetachPids:(27,186)=*(27,187)=f(0,20),3616,32;tcl_DeleteTimerHandler:(27,188)=*(27,189)=f(0,20),3648,32;tcl_DeleteTrace:(27,190)=*(27,191)=f(0,20),3680,32;tcl_DontCallWhenDeleted:(27,130),3712,32;tcl_DoOneEvent:(27,192)=*(27,193)=f(0,1),3744,32;tcl_DoWhenIdle:(27,132),3776,32;tcl_DStringAppend:(27,194)=*(27,195)=f(0,22),3808,32;tcl_DStringAppendElement:(27,196)=*(27,197)=f(0,22),3840,32;tcl_DStringEndSublist:(27,198)=*(27,199)=f(0,20),3872,32;tcl_DStringFree:(27,198),3904,32;tcl_DStringGetResult:(27,200)=*(27,201)=f(0,20),3936,32;tcl_DStringInit:(27,198),3968,32;tcl_DStringResult:(27,200),4000,32;tcl_DStringSetLength:(27,202)=*(27,203)=f(0,20),4032,32;tcl_DStringStartSublist:(27,198),4064,32;tcl_Eof:(27,204)=*(27,205)=f(0,1),4096,32;tcl_ErrnoId:(27,206)=*(27,207)=f(0,22),4128,32;tcl_ErrnoMsg:(27,208)=*(27,209)=f(0,22),4160,32;tcl_Eval:(27,176),4192,32;tcl_EvalFile:(27,176),4224,32;tcl_EvalObj:(27,30),4256,32;tcl_EventuallyFree:(27,210)=*(27,211)=f(0,20),4288,32;tcl_Exit:(27,27),4320,32;tcl_ExposeCommand:(27,128),4352,32;tcl_ExprBoolean:(27,60),4384,32;tcl_ExprBooleanObj:(27,62),4416,32;tcl_ExprDouble:(27,66),4448,32;tcl_ExprDoubleObj:(27,68),4480,32;tcl_ExprLong:(27,212)=*(27,213)=f(0,1),4512,32;tcl_ExprLongObj:(27,72),4544,32;tcl_ExprObj:(27,214)=*(27,215)=f(0,1),4576,32;tcl_ExprString:(27,176),4608,32;tcl_Finalize:(27,216)=*(27,217)=f(0,20),4640,32;tcl_FindExecutable:(27,218)=*(27,219)=f(0,20),4672,32;tcl_FirstHashEntry:(27,220)=*(27,221)=f(6,156),4704,32;tcl_Flush:(27,204),4736,32;tcl_FreeResult:(27,114),4768,32;tcl_GetAlias:(27,222)=*(27,223)=f(0,1),4800,32;tcl_GetAliasObj:(27,224)=*(27,225)=f(0,1),4832,32;tcl_GetAssocData:(27,226)=*(27,227)=f(6,1),4864,32;tcl_GetChannel:(27,228)=*(27,229)=f(6,9),4896,32;tcl_GetChannelBufferSize:(27,204),4928,32;tcl_GetChannelHandle:(27,230)=*(27,231)=f(0,1),4960,32;tcl_GetChannelInstanceData:(27,232)=*(27,233)=f(6,1),4992,32;tcl_GetChannelMode:(27,204),5024,32;tcl_GetChannelName:(27,234)=*(27,235)=f(0,22),5056,32;tcl_GetChannelOption:(27,236)=*(27,237)=f(0,1),5088,32;tcl_GetChannelType:(27,238)=*(27,239)=f(27,240)=*(6,206),5120,32;tcl_GetCommandInfo:(27,241)=*(27,242)=f(0,1),5152,32;tcl_GetCommandName:(27,243)=*(27,244)=f(0,22),5184,32;tcl_GetErrno:(27,124),5216,32;tcl_GetHostName:(27,206),5248,32;tcl_GetInterpPath:(27,245)=*(27,246)=f(0,1),5280,32;tcl_GetMaster:(27,247)=*(27,248)=f(6,223),5312,32;tcl_GetNameOfExecutable:(27,249)=*(27,250)=f(0,28),5344,32;tcl_GetObjResult:(27,251)=*(27,252)=f(6,129),5376,32;tcl_GetOpenFile:(27,253)=*(27,254)=f(0,1),5408,32;tcl_GetPathType:(27,255)=*(27,256)=f(6,208),5440,32;tcl_Gets:(27,257)=*(27,258)=f(0,1),5472,32;tcl_GetsObj:(27,259)=*(27,260)=f(0,1),5504,32;tcl_GetServiceMode:(27,124),5536,32;tcl_GetSlave:(27,261)=*(27,262)=f(6,223),5568,32;tcl_GetStdChannel:(27,263)=*(27,264)=f(6,9),5600,32;tcl_GetStringResult:(27,265)=*(27,266)=f(0,22),5632,32;tcl_GetVar:(27,267)=*(27,268)=f(0,22),5664,32;tcl_GetVar2:(27,269)=*(27,270)=f(0,22),5696,32;tcl_GlobalEval:(27,176),5728,32;tcl_GlobalEvalObj:(27,30),5760,32;tcl_HideCommand:(27,128),5792,32;tcl_Init:(27,271)=*(6,65),5824,32;tcl_InitHashTable:(27,272)=*(27,273)=f(0,20),5856,32;tcl_InputBlocked:(27,204),5888,32;tcl_InputBuffered:(27,204),5920,32;tcl_InterpDeleted:(27,271),5952,32;tcl_IsSafe:(27,271),5984,32;tcl_JoinPath:(27,274)=*(27,275)=f(0,22),6016,32;tcl_LinkVar:(27,276)=*(27,277)=f(0,1),6048,32;reserved188:(0,19),6080,32;tcl_MakeFileChannel:(27,278)=*(27,279)=f(6,9),6112,32;tcl_MakeSafe:(27,271),6144,32;tcl_MakeTcpClientChannel:(27,280)=*(27,281)=f(6,9),6176,32;tcl_Merge:(27,138),6208,32;tcl_NextHashEntry:(27,282)=*(27,283)=f(6,156),6240,32;tcl_NotifyChannel:(27,284)=*(27,285)=f(0,20),6272,32;tcl_ObjGetVar2:(27,286)=*(27,287)=f(6,129),6304,32;tcl_ObjSetVar2:(27,288)=*(27,289)=f(6,129),6336,32;tcl_OpenCommandChannel:(27,290)=*(27,291)=f(6,9),6368,32;tcl_OpenFileChannel:(27,292)=*(27,293)=f(6,9),6400,32;tcl_OpenTcpClient:(27,294)=*(27,295)=f(6,9),6432,32;tcl_OpenTcpServer:(27,296)=*(27,297)=f(6,9),6464,32;tcl_Preserve:(27,298)=*(6,51),6496,32;tcl_PrintDouble:(27,299)=*(27,300)=f(0,20),6528,32;tcl_PutEnv:(27,301)=*(27,302)=f(0,1),6560,32;tcl_PosixError:(27,265),6592,32;tcl_QueueEvent:(27,303)=*(27,304)=f(0,20),6624,32;tcl_Read:(27,305)=*(27,306)=f(0,1),6656,32;tcl_ReapDetachedProcs:(27,216),6688,32;tcl_RecordAndEval:(27,307)=*(27,308)=f(0,1),6720,32;tcl_RecordAndEvalObj:(27,309)=*(27,310)=f(0,1),6752,32;tcl_RegisterChannel:(27,311)=*(27,312)=f(0,20),6784,32;tcl_RegisterObjType:(27,313)=*(27,314)=f(0,20),6816,32;tcl_RegExpCompile:(27,315)=*(27,316)=f(6,32),6848,32;tcl_RegExpExec:(27,317)=*(27,318)=f(0,1),6880,32;tcl_RegExpMatch:(27,128),6912,32;tcl_RegExpRange:(27,319)=*(27,320)=f(0,20),6944,32;tcl_Release:(27,298),6976,32;tcl_ResetResult:(27,114),7008,32;tcl_ScanElement:(27,321)=*(27,322)=f(0,1),7040,32;tcl_ScanCountedElement:(27,323)=*(27,324)=f(0,1),7072,32;tcl_Seek:(27,325)=*(27,326)=f(0,1),7104,32;tcl_ServiceAll:(27,124),7136,32;tcl_ServiceEvent:(27,192),7168,32;tcl_SetAssocData:(27,327)=*(27,328)=f(0,20),7200,32;tcl_SetChannelBufferSize:(27,284),7232,32;tcl_SetChannelOption:(27,329)=*(27,330)=f(0,1),7264,32;tcl_SetCommandInfo:(27,241),7296,32;tcl_SetErrno:(27,27),7328,32;tcl_SetErrorCode:(27,116),7360,32;tcl_SetMaxBlockTime:(27,28),7392,32;tcl_SetPanicProc:(27,331)=*(27,332)=f(0,20),7424,32;tcl_SetRecursionLimit:(27,122),7456,32;tcl_SetResult:(27,333)=*(27,334)=f(0,20),7488,32;tcl_SetServiceMode:(27,192),7520,32;tcl_SetObjErrorCode:(27,335)=*(27,336)=f(0,20),7552,32;tcl_SetObjResult:(27,335),7584,32;tcl_SetStdChannel:(27,284),7616,32;tcl_SetVar:(27,269),7648,32;tcl_SetVar2:(27,337)=*(27,338)=f(0,22),7680,32;tcl_SignalId:(27,208),7712,32;tcl_SignalMsg:(27,208),7744,32;tcl_SourceRCFile:(27,114),7776,32;tcl_SplitList:(27,339)=*(27,340)=f(0,1),7808,32;tcl_SplitPath:(27,341)=*(27,342)=f(0,20),7840,32;tcl_StaticPackage:(27,343)=*(27,344)=f(0,20),7872,32;tcl_StringMatch:(27,345)=*(27,346)=f(0,1),7904,32;tcl_Tell:(27,204),7936,32;tcl_TraceVar:(27,347)=*(27,348)=f(0,1),7968,32;tcl_TraceVar2:(27,349)=*(27,350)=f(0,1),8000,32;tcl_TranslateFileName:(27,351)=*(27,352)=f(0,22),8032,32;tcl_Ungets:(27,353)=*(27,354)=f(0,1),8064,32;tcl_UnlinkVar:(27,172),8096,32;tcl_UnregisterChannel:(27,134),8128,32;tcl_UnsetVar:(27,307),8160,32;tcl_UnsetVar2:(27,276),8192,32;tcl_UntraceVar:(27,355)=*(27,356)=f(0,20),8224,32;tcl_UntraceVar2:(27,357)=*(27,358)=f(0,20),8256,32;tcl_UpdateLinkedVar:(27,172),8288,32;tcl_UpVar:(27,359)=*(27,360)=f(0,1),8320,32;tcl_UpVar2:(27,361)=*(27,362)=f(0,1),8352,32;tcl_VarEval:(27,363)=*(27,364)=f(0,1),8384,32;tcl_VarTraceInfo:(27,365)=*(27,366)=f(6,1),8416,32;tcl_VarTraceInfo2:(27,367)=*(27,368)=f(6,1),8448,32;tcl_Write:(27,305),8480,32;tcl_WrongNumArgs:(27,369)=*(27,370)=f(0,20),8512,32;tcl_DumpActiveMemory:(27,136),8544,32;tcl_ValidateAllMemory:(27,371)=*(27,372)=f(0,20),8576,32;tcl_AppendResultVA:(27,373)=*(27,374)=f(0,20),8608,32;tcl_AppendStringsToObjVA:(27,375)=*(27,376)=f(0,20),8640,32;tcl_HashStats:(27,377)=*(27,378)=f(0,22),8672,32;tcl_ParseVar:(27,379)=*(27,380)=f(0,22),8704,32;tcl_PkgPresent:(27,269),8736,32;tcl_PkgPresentEx:(27,13),8768,32;tcl_PkgProvide:(27,128),8800,32;tcl_PkgRequire:(27,269),8832,32;tcl_SetErrorCodeVA:(27,373),8864,32;tcl_VarEvalVA:(27,381)=*(27,382)=f(0,1),8896,32;tcl_WaitPid:(27,383)=*(27,384)=f(6,29),8928,32;tcl_PanicVA:(27,385)=*(27,386)=f(0,20),8960,32;tcl_GetVersion:(27,387)=*(27,388)=f(0,20),8992,32;tcl_InitMemory:(27,114),9024,32;tcl_StackChannel:(27,389)=*(27,390)=f(6,9),9056,32;tcl_UnstackChannel:(27,311),9088,32;tcl_GetStackedChannel:(27,391)=*(27,392)=f(6,9),9120,32;reserved284:(0,19),9152,32;reserved285:(0,19),9184,32;tcl_AppendObjToObj:(27,393)=*(27,394)=f(0,20),9216,32;tcl_CreateEncoding:(27,395)=*(27,396)=f(6,21),9248,32;tcl_CreateThreadExitHandler:(27,158),9280,32;tcl_DeleteThreadExitHandler:(27,158),9312,32;tcl_DiscardResult:(27,397)=*(27,398)=f(0,20),9344,32;tcl_EvalEx:(27,399)=*(27,400)=f(0,1),9376,32;tcl_EvalObjv:(27,401)=*(27,402)=f(0,1),9408,32;tcl_EvalObjEx:(27,309),9440,32;tcl_ExitThread:(27,27),9472,32;tcl_ExternalToUtf:(27,403)=*(27,404)=f(0,1),9504,32;tcl_ExternalToUtfDString:(27,405)=*(27,406)=f(0,22),9536,32;tcl_FinalizeThread:(27,216),9568,32;tcl_FinalizeNotifier:(27,298),9600,32;tcl_FreeEncoding:(27,407)=*(27,408)=f(0,20),9632,32;tcl_GetCurrentThread:(27,409)=*(27,410)=f(6,38),9664,32;tcl_GetEncoding:(27,411)=*(27,412)=f(6,21),9696,32;tcl_GetEncodingName:(27,413)=*(27,414)=f(0,22),9728,32;tcl_GetEncodingNames:(27,114),9760,32;tcl_GetIndexFromObjStruct:(27,415)=*(27,416)=f(0,1),9792,32;tcl_GetThreadData:(27,417)=*(27,418)=f(0,19),9824,32;tcl_GetVar2Ex:(27,419)=*(27,420)=f(6,129),9856,32;tcl_InitNotifier:(27,421)=*(27,422)=f(6,1),9888,32;tcl_MutexLock:(27,423)=*(27,424)=f(0,20),9920,32;tcl_MutexUnlock:(27,423),9952,32;tcl_ConditionNotify:(27,425)=*(27,426)=f(0,20),9984,32;tcl_ConditionWait:(27,427)=*(27,428)=f(0,20),10016,32;tcl_NumUtfChars:(27,429)=*(27,430)=f(0,1),10048,32;tcl_ReadChars:(27,431)=*(27,432)=f(0,1),10080,32;tcl_RestoreResult:(27,433)=*(27,434)=f(0,20),10112,32;tcl_SaveResult:(27,433),10144,32;tcl_SetSystemEncoding:(27,435)=*(27,436)=f(0,1),10176,32;tcl_SetVar2Ex:(27,437)=*(27,438)=f(6,129),10208,32;tcl_ThreadAlert:(27,439)=*(27,440)=f(0,20),10240,32;tcl_ThreadQueueEvent:(27,441)=*(27,442)=f(0,20),10272,32;tcl_UniCharAtIndex:(27,443)=*(27,444)=f(6,226),10304,32;tcl_UniCharToLower:(27,445)=*(27,446)=f(6,226),10336,32;tcl_UniCharToTitle:(27,445),10368,32;tcl_UniCharToUpper:(27,445),10400,32;tcl_UniCharToUtf:(27,447)=*(27,448)=f(0,1),10432,32;tcl_UtfAtIndex:(27,449)=*(27,450)=f(0,22),10464,32;tcl_UtfCharComplete:(27,429),10496,32;tcl_UtfBackslash:(27,451)=*(27,452)=f(0,1),10528,32;tcl_UtfFindFirst:(27,449),10560,32;tcl_UtfFindLast:(27,449),10592,32;tcl_UtfNext:(27,453)=*(27,454)=f(0,22),10624,32;tcl_UtfPrev:(27,455)=*(27,456)=f(0,22),10656,32;tcl_UtfToExternal:(27,403),10688,32;tcl_UtfToExternalDString:(27,405),10720,32;tcl_UtfToLower:(27,136),10752,32;tcl_UtfToTitle:(27,136),10784,32;tcl_UtfToUniChar:(27,457)=*(27,458)=f(0,1),10816,32;tcl_UtfToUpper:(27,136),10848,32;tcl_WriteChars:(27,459)=*(27,460)=f(0,1),10880,32;tcl_WriteObj:(27,259),10912,32;tcl_GetString:(27,461)=*(27,462)=f(0,22),10944,32;tcl_GetDefaultEncodingDir:(27,206),10976,32;tcl_SetDefaultEncodingDir:(6,3),11008,32;tcl_AlertNotifier:(27,298),11040,32;tcl_ServiceModeHook:(27,27),11072,32;tcl_UniCharIsAlnum:(27,192),11104,32;tcl_UniCharIsAlpha:(27,192),11136,32;tcl_UniCharIsDigit:(27,192),11168,32;tcl_UniCharIsLower:(27,192),11200,32;tcl_UniCharIsSpace:(27,192),11232,32;tcl_UniCharIsUpper:(27,192),11264,32;tcl_UniCharIsWordChar:(27,192),11296,32;tcl_UniCharLen:(27,463)=*(27,464)=f(0,1),11328,32;tcl_UniCharNcmp:(27,465)=*(27,466)=f(0,1),11360,32;tcl_UniCharToUtfDString:(27,467)=*(27,468)=f(0,22),11392,32;tcl_UtfToUniCharDString:(27,469)=*(27,470)=f(27,471)=*(6,226),11424,32;tcl_GetRegExpFromObj:(27,472)=*(27,473)=f(6,32),11456,32;tcl_EvalTokens:(27,474)=*(27,475)=f(6,129),11488,32;tcl_FreeParse:(27,476)=*(27,477)=f(0,20),11520,32;tcl_LogCommandInfo:(27,478)=*(27,479)=f(0,20),11552,32;tcl_ParseBraces:(27,480)=*(27,481)=f(0,1),11584,32;tcl_ParseCommand:(27,482)=*(27,483)=f(0,1),11616,32;tcl_ParseExpr:(27,484)=*(27,485)=f(0,1),11648,32;tcl_ParseQuotedString:(27,480),11680,32;tcl_ParseVarName:(27,486)=*(27,487)=f(0,1),11712,32;tcl_GetCwd:(27,488)=*(27,489)=f(0,22),11744,32;tcl_Chdir:(27,301),11776,32;tcl_Access:(27,429),11808,32;tcl_Stat:(27,490)=*(27,491)=f(0,1),11840,32;tcl_UtfNcmp:(27,492)=*(27,493)=f(0,1),11872,32;tcl_UtfNcasecmp:(27,492),11904,32;tcl_StringCaseMatch:(27,494)=*(27,495)=f(0,1),11936,32;tcl_UniCharIsControl:(27,192),11968,32;tcl_UniCharIsGraph:(27,192),12000,32;tcl_UniCharIsPrint:(27,192),12032,32;tcl_UniCharIsPunct:(27,192),12064,32;tcl_RegExpExecObj:(27,496)=*(27,497)=f(0,1),12096,32;tcl_RegExpGetInfo:(27,498)=*(27,499)=f(0,20),12128,32;tcl_NewUnicodeObj:(27,500)=*(27,501)=f(6,129),12160,32;tcl_SetUnicodeObj:(27,502)=*(27,503)=f(0,20),12192,32;tcl_GetCharLength:(27,504)=*(27,505)=f(0,1),12224,32;tcl_GetUniChar:(27,506)=*(27,507)=f(6,226),12256,32;tcl_GetUnicode:(27,508)=*(27,509)=f(27,471),12288,32;tcl_GetRange:(27,510)=*(27,511)=f(6,129),12320,32;tcl_AppendUnicodeToObj:(27,502),12352,32;tcl_RegExpMatchObj:(27,78),12384,32;tcl_SetNotifier:(27,512)=*(27,513)=f(0,20),12416,32;tcl_GetAllocMutex:(27,514)=*(27,515)=f(27,516)=*(6,26),12448,32;tcl_GetChannelNames:(27,271),12480,32;tcl_GetChannelNamesEx:(27,176),12512,32;tcl_ProcObjCmd:(27,517)=*(27,518)=f(0,1),12544,32;tcl_ConditionFinalize:(27,425),12576,32;tcl_MutexFinalize:(27,423),12608,32;tcl_CreateThread:(27,519)=*(27,520)=f(0,1),12640,32;;TclStubs:t(27,521)=(27,9)/usr/include/stdlib.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hdiv_t:t(28,1)=(28,2)=s8quot:(0,1),0,32;rem:(0,1),32,32;;ldiv_t:t(28,3)=(28,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;/usr/include/sys/types.hu_char:t(30,1)=(10,1)u_short:t(30,2)=(10,2)u_int:t(30,3)=(10,3)u_long:t(30,4)=(10,4)quad_t:t(30,5)=(10,6)u_quad_t:t(30,6)=(10,5)fsid_t:t(30,7)=(10,30)loff_t:t(30,8)=(10,24)ino_t:t(30,9)=(10,20)dev_t:t(30,10)=(10,17)gid_t:t(30,11)=(10,19)mode_t:t(30,12)=(10,21)nlink_t:t(30,13)=(10,22)uid_t:t(30,14)=(10,18)pid_t:t(30,15)=(10,25)id_t:t(30,16)=(10,29)ssize_t:t(30,17)=(10,26)daddr_t:t(30,18)=(10,34)caddr_t:t(30,19)=(10,35)key_t:t(30,20)=(10,47)/usr/include/time.htime_t:t(31,1)=(10,36)clockid_t:t(31,2)=(10,41)timer_t:t(31,3)=(10,42)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hulong:t(30,21)=(0,5)ushort:t(30,22)=(0,9)uint:t(30,23)=(0,4)int8_t:t(30,24)=(0,10)int16_t:t(30,25)=(0,8)int32_t:t(30,26)=(0,1)int64_t:t(30,27)=(0,6)u_int8_t:t(30,28)=(0,11)u_int16_t:t(30,29)=(0,9)u_int32_t:t(30,30)=(0,4)u_int64_t:t(30,31)=(0,7)register_t:t(30,32)=(0,1)/usr/include/endian.h/usr/include/bits/endian.h/usr/include/sys/select.h/usr/include/bits/select.h/usr/include/bits/sigset.h__sig_atomic_t:t(37,1)=(0,1)__sigset_t:t(37,2)=(37,3)=s128__val:(37,4)=ar(10,33);0;31;(0,5),0,1024;;/usr/include/time.htimespec:T(38,1)=s8tv_sec:(0,3),0,32;tv_nsec:(0,3),32,32;;fd_mask:t(35,1)=(10,43)fd_set:t(35,2)=(10,44)/usr/include/sys/sysmacros.hblkcnt_t:t(30,33)=(10,50)fsblkcnt_t:t(30,34)=(10,52)fsfilcnt_t:t(30,35)=(10,54)random_data:T(28,5)=s28fptr:(28,6)=*(30,26),0,32;rptr:(28,6),32,32;state:(28,6),64,32;rand_type:(0,1),96,32;rand_deg:(0,1),128,32;rand_sep:(0,1),160,32;end_ptr:(28,6),192,32;;drand48_data:T(28,7)=s24x:(28,8)=ar(10,33);0;2;(0,9),0,48;a:(28,8),48,48;c:(0,9),96,16;old_x:(28,8),112,48;init:(0,1),160,32;;/usr/include/alloca.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__compar_fn_t:t(28,9)=(28,10)=*(28,11)=f(0,1)SWIG_ConvertPtrFromString:f(0,1)interp:p(6,223)c:p(0,22)ptr:p(0,29)=*(0,19)ty:p(0,27)p:(0,5)d:(0,1)tc:(0,27)SWIG_ConvertPtr:f(0,1)interp:p(6,223)oc:p(6,129)ptr:p(0,29)ty:p(0,27)SWIG_PointerTypeFromString:f(0,22)c:p(0,22)d:(0,2)SWIG_MakePtr:f(0,20)c:p(0,22)ptr:p(0,19)ty:p(0,27)hex.0:V(0,30)=ar(10,33);0;16;(0,2)p:(0,5)s:(0,5)result:(0,31)=ar(10,33);0;23;(0,2)r:(0,22)SWIG_NewPointerObj:f(6,129)ptr:p(0,19)type:p(0,27)result:(0,32)=ar(10,33);0;255;(0,2)robj:(6,129)SWIG_GetArgs:f(0,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)=*(6,129)fmt:p(0,28)argno:(0,1)opt:(0,1)tempi:(0,1)us:(0,1)tempd:(0,13)c:(0,28)ap:(26,1)vptr:(0,19)ty:(0,27)vlptr:(0,34)=*(0,1)temp:(0,35)=ar(10,33);0;31;(0,2)swig_command_info:t(0,36)=(0,37)=s12name:(0,28),0,32;wrapper:(27,517),32,32;clientdata:(6,1),64,32;;swig_var_info:t(0,38)=(0,39)=s16name:(0,28),0,32;addr:(0,19),32,32;get:(0,40)=*(6,111),64,32;set:(0,40),96,32;;../glwin/glwin.swigglwin_desc:t(42,1)=(42,2)=xsglwin_desc:glwin_window:t(42,3)=(42,4)=xsglwin_window:_wrap_glwin_close:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)=*(42,3)_wrap_glwin_destroy:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)_wrap_glwin_show:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)_wrap_glwin_update:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)_wrap_glwin_redraw:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)_wrap_glwin_idle:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)arg1:(0,1)_wrap_glwin_quit:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)arg1:(0,1)_wrap_glwin_key_down:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)arg1:(0,1)result:(0,1)_wrap_glwin_nkeys_down:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)result:(0,1)_wrap_glwin_nkeys_down_prev:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)result:(0,1)_wrap_glwin_button_down:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)arg1:(0,1)result:(0,1)_wrap_glwin_nbuttons_down:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)result:(0,1)_wrap_glwin_nbuttons_down_prev:f(0,1)clientData:p(6,1)interp:p(6,223)objc:p(0,1)objv:p(0,33)arg0:(0,41)result:(0,1)swig_commands:S(0,42)=ar(0,1);0;-1;(0,36)swig_variables:S(0,43)=ar(0,1);0;-1;(0,38)_swigt__p_glwin_window:S(0,44)=ar(0,1);0;-1;(0,26)swig_types_initial:S(0,45)=ar(0,1);0;-1;(0,27)Glwin_Init:F(0,1)interp:p(6,223)i:(0,1)swig_types:S(0,46)=ar(10,33);0;1;(0,27)NULLType error. Expected a pointerType error. Expected Wrong # args. Wrong # args.%d argument 8ll\p:glwin::glwin_closewin p:glwin::glwin_destroywin p:glwin::glwin_showwin p:glwin::glwin_updatewin p:glwin::glwin_redrawwin pi:glwin::glwin_idlewin enable pi:glwin::glwin_quitwin exitcode pi:glwin::glwin_key_downwin key p:glwin::glwin_nkeys_downwin p:glwin::glwin_nkeys_down_prevwin pi:glwin::glwin_button_downwin button p:glwin::glwin_nbuttons_downwin p:glwin::glwin_nbuttons_down_prevwin glwin::glwin_nbuttons_down_prevglwin::glwin_nbuttons_downglwin::glwin_button_downglwin::glwin_nkeys_down_prevglwin::glwin_nkeys_downglwin::glwin_key_downglwin::glwin_quitglwin::glwin_idleglwin::glwin_redrawglwin::glwin_updateglwin::glwin_showglwin::glwin_destroyglwin::glwin_closeglwin_window *_p_glwin_windownamespace eval glwin { }GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.rel.data.bss.note.stab.rel.stab.stabstr.rodata.rel.rodata.comment4! h+T1 ;h@hF|&  L V7_^ g  s.,|(p( "4C3Q `H?z-WG/$MtM M M-d M@ TQ Tb\ xw qH q x4 q q </   BIWi~'2AO`q glwin_swig_tcl8.cswig_type_listSWIG_TypeRegisterSWIG_TypeCheckSWIG_TypeCastSWIG_TypeQuerySWIG_ConvertPtrFromStringSWIG_ConvertPtrSWIG_PointerTypeFromStringhex.0SWIG_MakePtrSWIG_NewPointerObjSWIG_GetArgs_wrap_glwin_closeswig_types_wrap_glwin_destroy_wrap_glwin_show_wrap_glwin_update_wrap_glwin_redraw_wrap_glwin_idle_wrap_glwin_quit_wrap_glwin_key_down_wrap_glwin_nkeys_down_wrap_glwin_nkeys_down_prev_wrap_glwin_button_down_wrap_glwin_nbuttons_down_wrap_glwin_nbuttons_down_prevswig_commandsswig_variables_swigt__p_glwin_windowswig_types_initialstrcmpTcl_SetResultTcl_AppendElementTcl_GetStringFromObjstrcpyTcl_NewStringObjTcl_GetIntFromObjTcl_GetDoubleFromObjsprintfstrchrTcl_AppendResultglwin_closeglwin_destroyglwin_showglwin_updateglwin_redrawglwin_idleglwin_quitglwin_key_downTcl_NewIntObjTcl_SetObjResultglwin_nkeys_downglwin_nkeys_down_prevglwin_button_downglwin_nbuttons_downglwin_nbuttons_down_prevGlwin_InitTcl_EvalTcl_CreateObjCommandTcl_SetVarTcl_TraceVar&(ep(((j r( )< D)W*+=t, ,-a i) ./+(+L+ ) 0 12/8 c3 4  5 (  S 6o x  7   8   N 9k t  : ; <    =) ;7 <S \  > ; <    ? ;& <? H  s @ ; <   A ; <8  @ C] |    $DK_ nyEFF $ (0 4< @H LT X` dl px |        8@PT4Hh  P!""T#$$X%d%p%|%%Bx&&gmv0.9/src/glwin/mak_gen/Linux/odd/0040755000175200017560000000000007262741246017531 5ustar stephensstephenggmv0.9/src/glwin/mak_gen/Linux/odd/glwin.o0100644000175200017560000007135407262741246021040 0ustar stephensstephengELFa4( UE UElp}taEU ` <EU ` ElExPEu u@PЃtljEU ` <tEU ` El~ ElExTt!Eu u@TЃtÐUE EU ` ]ÉUEl]UEp]UEU}EU p<EU pEUE pB‹EUE B‹EExXtyEu uuu@XЃ`EU p<tEU p E~ EEx\tEu uuu@\ЃÐUE EU p]ÍvUE]UE]UWV hEhjuUE EUxUE@$BUE@(BUE@,B UE@0BUE@,ZUE@0ZEe^_]ÍvU uÉUE}x }hvhhhvEUE}E} E Ex@tEu uu@@ЃUUEExHt Eu@HЃÍvUEEPjuEPjuEPjuÍvUEHE}kUEpEqErEsEtEuEvEwExEyEzvvE{jvE%^vE&RvE'FvE(:vE!.vE""vE$vE# vE-EÉUEEE}t$} }t .}t$E#vEvE vvE E}t }tE  vE u uuu uu ÍvUEEx`tEu uu@`ЃEt ExdtEu uu@dЃÉUEEE uC EPEExLtUEPuBLЃEkf%ft/Ekf%ft EPEjEPuUEEE u EPEEkf%ft/Ekf%ft EPEjEPuÍvU-EExDt,Eft Eu@DЃ uÐUu uE jEpEpEpEp  Ep ‹EExEh`hhhvE<th`hhhE EEuh5 h h h hd h hEÐU E EU E EU EÍvU EÍvU EÍvU E} t,EfuFUE f h'EftUE f jÍvU u vUE 0uÐU01.013 d'd/<>h&w"Lu'Lv&&@1FZr3Jbz ! 7 `  . G +  ? W !o " # % & 1 2 3 4/ 5H 6b 8{ 9 ; = > ?@A1BKCbD{EFGHIN:QSRuSTUVX[^,bEx{~6Ur4Uo#+46<CFSuZ^1 ;3L8H#)>SGJ4KeTY] `Da|)9]578 9 :; t O!$?4$V[$_$g$j$I$%%,%e%b%j%%!&"&#3&$I&%_&&w&'&*&.&:&?&D'I'N1'`H'e^'jw'o'p't''F'R(^(V(k((((((( )#)<)U)o)))))) *U*i**0*3** +&+B++p,,,,-<-R-g-..$/.B. M.DDDD!D'D?DPDYDfDDDDDDDDDD$Y.$o.{. DDD D $".$.DDD$.$.DDD$.$ . .  / / / D DDD"D=DQDZDvDDDDDD D!D#D$D)D*$'/$.@/-L/- D.D/D1 D2#$%Z/$6u/5D6D7D8$/$</;D<D=D>$/$L/K/K DLDODPDR0DS8DTKDUWDVcDWoDX{DYD[D\/M$/$`0_D`DaDb$0$TDDDD<DR(0$T20$I0V0 DDDDDD#D*D3DJd0$Lo0$DDDDD*D/0$10$(0DDDD'DAD[0$]0$0DDD$D0D<DHDTD`DlDxDDDDDDDDDDDD D DD $"0$00 11DDDD4D@DLDXD `D$rD!wD"D)D+D,1$'1$0d=1/F1/ D0D1D7D8D:0D;<D<ED?\O11$^Z1$Cr1B}1B 1BDCDD DFDH$DJ9DKBDO\DPDSDT1B1D$1$X1W1W 1WDXDY D[D]$D_9D`mDcDd1W1Y$1$hDhDiDmDn&Do7DqE2i$G2$u&2t32t DuDxDzD{)D|@D}WDhDxDDDD$D4DDDTDdDtDD@2v$K2$_2DDDD.$0k2$2DDDD.$02$2DDDD$!2$2DDDD$!2$2DDDD$!2$3 3 DDDD D-D:DJDLD YD fDs$u3$.3:3 DDD!$J3$%a3$v3$ D%D+D0$3$3D3D@DA DE$3(dv glwin.c/home/stephens/ion/src/glwin/glwin.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)__rcs_id_glwin_glwin_c:S(0,21)=ar(0,22)=r(0,22);0000000000000;0037777777777;;0;53;(0,2)glwin.h__rcs_id_glwin_glwin_h:S(1,1)=ar(0,22);0;53;(0,2)/usr/include/GL/gl.hGLenum:t(2,1)=(0,4)GLboolean:t(2,2)=(0,11)GLbitfield:t(2,3)=(0,4)GLvoid:t(2,4)=(0,20)GLbyte:t(2,5)=(0,10)GLshort:t(2,6)=(0,8)GLint:t(2,7)=(0,1)GLubyte:t(2,8)=(0,11)GLushort:t(2,9)=(0,9)GLuint:t(2,10)=(0,4)GLsizei:t(2,11)=(0,1)GLfloat:t(2,12)=(0,12)GLclampf:t(2,13)=(0,12)GLdouble:t(2,14)=(0,13)GLclampd:t(2,15)=(0,13)glwin.swigglwin_desc:t(3,1)=(3,2)=xsglwin_desc:glwin_window:t(3,3)=(3,4)=xsglwin_window:glwin_desc:T(3,2)=s80data:(0,19),0,32;winName:(1,2)=*(0,2),32,32;winX:(2,7),64,32;winY:(2,7),96,32;winWidth:(2,11),128,32;winHeight:(2,11),160,32;Create:(1,3)=*(1,4)=f(0,20),192,32;Destroy:(1,3),224,32;Close:(1,3),256,32;ChangeSize:(1,5)=*(1,6)=f(0,20),288,32;Idle:(1,3),320,32;Render:(1,3),352,32;KeyPress:(1,7)=*(1,8)=f(0,1),384,32;KeyDown:(1,7),416,32;KeyUp:(1,7),448,32;MouseDown:(1,9)=*(1,10)=f(0,1),480,32;MouseUp:(1,9),512,32;MouseMove:(1,11)=*(1,12)=f(0,1),544,32;MouseDrag:(1,11),576,32;MouseZ:(1,13)=*(1,14)=f(0,1),608,32;;glwin_window:T(3,4)=s424data:(0,19),0,32;winX:(2,7),32,32;winY:(2,7),64,32;winWidth:(2,11),96,32;winHeight:(2,11),128,32;viewWidth:(2,12),160,32;viewHeight:(2,12),192,32;desc:(3,1),224,640;keyState:(1,15)=ar(0,22);0;255;(0,11),864,2048;nKeysDown:(0,1),2912,32;nKeysDownPrev:(0,1),2944,32;buttonState:(1,16)=ar(0,22);0;3;(0,11),2976,32;buttonDownX:(1,17)=ar(0,22);0;3;(0,1),3008,128;buttonDownY:(1,17),3136,128;nButtonsDown:(0,1),3264,32;nButtonsDownPrev:(0,1),3296,32;created:(0,8),3328,16;idleEnabled:(0,8),3344,16;_glut_win:(0,1),3360,32;;/usr/include/GL/glu.hGLUquadricObj:t(4,1)=(4,2)=xsGLUquadric:GLUnurbsObj:t(4,3)=(4,4)=xsGLUnurbs:GLUtesselator:t(4,5)=(4,6)=xsGLUtesselator:GLUtriangulatorObj:t(4,7)=(4,5)/usr/include/GL/glut.h/usr/include/stdio.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(10,1)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(11,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(12,1)=(0,11)__u_short:t(12,2)=(0,9)__u_int:t(12,3)=(0,4)__u_long:t(12,4)=(0,5)__u_quad_t:t(12,5)=(0,7)__quad_t:t(12,6)=(0,6)__int8_t:t(12,7)=(0,10)__uint8_t:t(12,8)=(0,11)__int16_t:t(12,9)=(0,8)__uint16_t:t(12,10)=(0,9)__int32_t:t(12,11)=(0,1)__uint32_t:t(12,12)=(0,4)__int64_t:t(12,13)=(0,6)__uint64_t:t(12,14)=(0,7)__qaddr_t:t(12,15)=(12,16)=*(12,6)__dev_t:t(12,17)=(12,5)__uid_t:t(12,18)=(12,3)__gid_t:t(12,19)=(12,3)__ino_t:t(12,20)=(12,4)__mode_t:t(12,21)=(12,3)__nlink_t:t(12,22)=(12,3)__off_t:t(12,23)=(0,3)__loff_t:t(12,24)=(12,6)__pid_t:t(12,25)=(0,1)__ssize_t:t(12,26)=(0,1)__rlim_t:t(12,27)=(12,4)__rlim64_t:t(12,28)=(12,5)__id_t:t(12,29)=(12,3)__fsid_t:t(12,30)=(12,31)=s8__val:(12,32)=ar(0,22);0;1;(0,1),0,64;;__daddr_t:t(12,33)=(0,1)__caddr_t:t(12,34)=(12,35)=*(0,2)__time_t:t(12,36)=(0,3)__useconds_t:t(12,37)=(0,4)__suseconds_t:t(12,38)=(0,3)__swblk_t:t(12,39)=(0,3)__clock_t:t(12,40)=(0,3)__clockid_t:t(12,41)=(0,1)__timer_t:t(12,42)=(0,1)__fd_mask:t(12,43)=(0,5)__fd_set:t(12,44)=(12,45)=s128__fds_bits:(12,46)=ar(0,22);0;31;(12,43),0,1024;;__key_t:t(12,47)=(0,1)__ipc_pid_t:t(12,48)=(0,9)__blksize_t:t(12,49)=(0,3)__blkcnt_t:t(12,50)=(0,3)__blkcnt64_t:t(12,51)=(12,6)__fsblkcnt_t:t(12,52)=(12,4)__fsblkcnt64_t:t(12,53)=(12,5)__fsfilcnt_t:t(12,54)=(12,4)__fsfilcnt64_t:t(12,55)=(12,5)__ino64_t:t(12,56)=(12,5)__off64_t:t(12,57)=(12,24)__t_scalar_t:t(12,58)=(0,3)__t_uscalar_t:t(12,59)=(0,5)__intptr_t:t(12,60)=(0,1)__socklen_t:t(12,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(15,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(14,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(14,2)=(14,3)=*(14,4)=xs_pthread_descr_struct:pthread_attr_t:t(14,5)=(14,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(15,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(10,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(10,1),256,32;;pthread_cond_t:t(14,7)=(14,8)=s12__c_lock:(14,1),0,64;__c_waiting:(14,2),64,32;;pthread_condattr_t:t(14,9)=(14,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(14,11)=(0,4)pthread_mutex_t:t(14,12)=(14,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(14,2),64,32;__m_kind:(0,1),96,32;__m_lock:(14,1),128,64;;pthread_mutexattr_t:t(14,14)=(14,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(14,16)=(0,1)pthread_t:t(14,17)=(0,5)FILE:t(6,1)=(6,2)=xs_IO_FILE:__FILE:t(6,3)=(6,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(18,1)=(0,3)wint_t:t(18,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(19,1)=(19,2)=s8__count:(0,1),0,32;__value:(19,3)=u4__wch:(18,2),0,32;__wchb:(19,4)=ar(0,22);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(17,1)=(17,2)=s12__pos:(12,23),0,32;__state:(19,1),32,64;;_G_fpos64_t:t(17,3)=(17,4)=s16__pos:(12,57),0,64;__state:(19,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(22,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(22,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(22,3)=(22,4)=*(22,5)=f(0,1)__gconv_init_fct:t(22,6)=(22,7)=*(22,8)=f(0,1)__gconv_end_fct:t(22,9)=(22,10)=*(22,11)=f(0,20)__gconv_trans_fct:t(22,12)=(22,13)=*(22,14)=f(0,1)__gconv_trans_context_fct:t(22,15)=(22,16)=*(22,17)=f(0,1)__gconv_trans_query_fct:t(22,18)=(22,19)=*(22,20)=f(0,1)__gconv_trans_init_fct:t(22,21)=(22,22)=*(22,23)=f(0,1)__gconv_trans_end_fct:t(22,24)=(22,25)=*(22,26)=f(0,20)__gconv_trans_data:T(22,27)=s20__trans_fct:(22,12),0,32;__trans_context_fct:(22,15),32,32;__trans_end_fct:(22,24),64,32;__data:(0,19),96,32;__next:(22,28)=*(22,27),128,32;;__gconv_step:T(22,29)=s56__shlib_handle:(22,30)=*(22,31)=xs__gconv_loaded_object:,0,32;__modname:(1,2),32,32;__counter:(0,1),64,32;__from_name:(12,35),96,32;__to_name:(12,35),128,32;__fct:(22,3),160,32;__init_fct:(22,6),192,32;__end_fct:(22,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(22,32)=s36__outbuf:(22,33)=*(0,11),0,32;__outbufend:(22,33),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(22,34)=*(19,1),160,32;__state:(19,1),192,64;__trans:(22,28),256,32;;__gconv_info:T(22,35)=s8__nsteps:(10,1),0,32;__steps:(22,36)=*(22,29),32,32;__data:(22,37)=ar(0,22);0;-1;(22,32),64,0;;__gconv_t:t(22,38)=(22,39)=*(22,35)_G_iconv_t:t(17,5)=(17,6)=u44__cd:(22,35),0,64;__combined:(17,7)=s44__cd:(22,35),0,64;__data:(22,32),64,288;;,0,352;;_G_int16_t:t(17,8)=(0,8)_G_int32_t:t(17,9)=(0,1)_G_uint16_t:t(17,10)=(0,9)_G_uint32_t:t(17,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(16,1)=(0,20)_IO_marker:T(16,2)=s12_next:(16,3)=*(16,2),0,32;_sbuf:(16,4)=*(6,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(16,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(6,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(12,35),32,32;_IO_read_end:(12,35),64,32;_IO_read_base:(12,35),96,32;_IO_write_base:(12,35),128,32;_IO_write_ptr:(12,35),160,32;_IO_write_end:(12,35),192,32;_IO_buf_base:(12,35),224,32;_IO_buf_end:(12,35),256,32;_IO_save_base:(12,35),288,32;_IO_backup_base:(12,35),320,32;_IO_save_end:(12,35),352,32;_markers:(16,3),384,32;_chain:(16,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(12,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(16,6)=ar(0,22);0;0;(0,2),568,8;_lock:(16,7)=*(16,1),576,32;_offset:(12,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(16,8)=ar(0,22);0;51;(0,2),768,416;;_IO_FILE:t(16,9)=(6,2)__io_read_fn:t(16,10)=(16,11)=f(12,26)__io_write_fn:t(16,12)=(16,13)=f(12,26)__io_seek_fn:t(16,14)=(16,15)=f(0,1)__io_close_fn:t(16,16)=(16,17)=f(0,1)fpos_t:t(6,4)=(17,1)/usr/include/bits/stdio_lim.hoff_t:t(6,5)=(12,23)/usr/include/stdlib.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hdiv_t:t(28,1)=(28,2)=s8quot:(0,1),0,32;rem:(0,1),32,32;;ldiv_t:t(28,3)=(28,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;/usr/include/sys/types.hu_char:t(30,1)=(12,1)u_short:t(30,2)=(12,2)u_int:t(30,3)=(12,3)u_long:t(30,4)=(12,4)quad_t:t(30,5)=(12,6)u_quad_t:t(30,6)=(12,5)fsid_t:t(30,7)=(12,30)loff_t:t(30,8)=(12,24)ino_t:t(30,9)=(12,20)dev_t:t(30,10)=(12,17)gid_t:t(30,11)=(12,19)mode_t:t(30,12)=(12,21)nlink_t:t(30,13)=(12,22)uid_t:t(30,14)=(12,18)pid_t:t(30,15)=(12,25)id_t:t(30,16)=(12,29)ssize_t:t(30,17)=(12,26)daddr_t:t(30,18)=(12,33)caddr_t:t(30,19)=(12,34)key_t:t(30,20)=(12,47)/usr/include/time.htime_t:t(31,1)=(12,36)clockid_t:t(31,2)=(12,41)timer_t:t(31,3)=(12,42)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hulong:t(30,21)=(0,5)ushort:t(30,22)=(0,9)uint:t(30,23)=(0,4)int8_t:t(30,24)=(0,10)int16_t:t(30,25)=(0,8)int32_t:t(30,26)=(0,1)int64_t:t(30,27)=(0,6)u_int8_t:t(30,28)=(0,11)u_int16_t:t(30,29)=(0,9)u_int32_t:t(30,30)=(0,4)u_int64_t:t(30,31)=(0,7)register_t:t(30,32)=(0,1)/usr/include/endian.h/usr/include/bits/endian.h/usr/include/sys/select.h/usr/include/bits/select.h/usr/include/bits/sigset.h__sig_atomic_t:t(37,1)=(0,1)__sigset_t:t(37,2)=(37,3)=s128__val:(37,4)=ar(0,22);0;31;(0,5),0,1024;;/usr/include/time.htimespec:T(38,1)=s8tv_sec:(0,3),0,32;tv_nsec:(0,3),32,32;;fd_mask:t(35,1)=(12,43)fd_set:t(35,2)=(12,44)/usr/include/sys/sysmacros.hblkcnt_t:t(30,33)=(12,50)fsblkcnt_t:t(30,34)=(12,52)fsfilcnt_t:t(30,35)=(12,54)random_data:T(28,5)=s28fptr:(28,6)=*(30,26),0,32;rptr:(28,6),32,32;state:(28,6),64,32;rand_type:(0,1),96,32;rand_deg:(0,1),128,32;rand_sep:(0,1),160,32;end_ptr:(28,6),192,32;;drand48_data:T(28,7)=s24x:(28,8)=ar(0,22);0;2;(0,9),0,48;a:(28,8),48,48;c:(0,9),96,16;old_x:(28,8),112,48;init:(0,1),160,32;;/usr/include/alloca.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__compar_fn_t:t(28,9)=(28,10)=*(28,11)=f(0,1)/usr/include/string.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/assert.h/usr/include/ctype.h :T(45,1)=e_ISupper:256,_ISlower:512,_ISalpha:1024,_ISdigit:2048,_ISxdigit:4096,_ISspace:8192,_ISprint:16384,_ISgraph:32768,_ISblank:1,_IScntrl:2,_ISpunct:4,_ISalnum:8,;vk.hglwin_process_key:f(0,1)win:p(0,23)=*(3,3)key:p(0,1)down:p(0,1)glwin_key_down:F(0,1)win:p(0,23)key:p(0,1)glwin_nkeys_down:F(0,1)win:p(0,23)glwin_nkeys_down_prev:F(0,1)win:p(0,23)glwin_process_button:F(0,1)win:p(0,23)button:p(0,1)down:p(0,1)x:p(0,1)y:p(0,1)glwin_button_down:F(0,1)win:p(0,23)button:p(0,1)glwin_nbuttons_down:F(0,1)win:p(0,23)glwin_nbuttons_down_prev:F(0,1)win:p(0,23)_glwin_create:F(0,23)desc:p(0,24)=*(3,1)data:p(0,19)win:(0,23)_glwin_destroy:F(0,20)win:p(0,23)_glut_2_glwin:f(0,23)win:(0,1)_glwin_Reshape:f(0,20)width:p(0,1)height:p(0,1)win:(0,23)_glwin_Display:f(0,20)win:(0,23)_glwin_mods:f(0,20)win:p(0,23)mods:(0,1)_glut_to_vk:f(0,1)key:p(0,1)_glwin_Mouse:f(0,20)button:p(0,1)state:p(0,1)x:p(0,1)y:p(0,1)win:(0,23)_glwin_Motion:f(0,20)x:p(0,1)y:p(0,1)win:(0,23)_glwin_Keyboard:f(0,20)key:p(0,1)x:p(0,1)y:p(0,1)key:(0,11)win:(0,23)_glwin_KeyboardUp:f(0,20)key:p(0,1)x:p(0,1)y:p(0,1)key:(0,11)win:(0,23)_glwin_Idle:f(0,20)win:(0,23)glwin_create:F(0,23)desc:p(0,24)data:p(0,19)win:(0,23)glwin_close:F(0,20)win:p(0,23)glwin_destroy:F(0,20)win:p(0,23)glwin_show:F(0,20)win:p(0,23)glwin_update:F(0,20)win:p(0,23)glwin_redraw:F(0,20)win:p(0,23)glwin_idle:F(0,20)win:p(0,23)enable:p(0,1)glwin_quit:F(0,20)win:p(0,23)exitcode:p(0,1)glwin_initmain:F(0,20)argcp:p(0,25)=*(0,1)argvp:p(0,26)=*(0,27)=*(12,35)glwin_mainloop:F(0,1)__glut_2_glwin:S(0,28)=ar(0,22);0;127;(0,23)$Id: glwin.c,v 1.7 2001/04/04 09:06:12 stephens Exp $$Id: glwin.h,v 1.6 2001/04/04 09:06:12 stephens Exp $_glut_2_glwinglwin.c0 <= (win) && (win) < 128 $0<HT`lxglwin_create0 <= (win->_glut_win) && (win->_glut_win) < 128__glut_2_glwin[win->_glut_win] == 0%p->_glut_win = %d GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.stab.rel.stab.stabstr.rodata.rel.rodata.comment4v ! : @ : @ :  B( BA DZ Fk H 4 \$"4< pl,9h<=?d+AlCEG\h  $(,048<@DHLPTX\`dhlptx|  $(,048<@DHLPTX\gmv0.9/src/glwin/mak_gen/Linux/t/0040755000175200017560000000000007262507245017225 5ustar stephensstephenggmv0.9/src/glwin/AR.EXE.stackdump0100744000175200017560000000236207250061754017117 0ustar stephensstephengException: STATUS_ACCESS_VIOLATION at eip=E457E220 eax=836A9000 ebx=00000000 ecx=E1577210 edx=BFFC9490 esi=00000000 edi=6108D164 ebp=0257F980 esp=0257FC38 program=C:\APP\DEV\CYGWIN\BIN\AR.EXE cs=0167 ds=016F es=016F fs=57A7 gs=0000 ss=016F Stack trace: Frame Function Args 0257F980 E457E220 (00000000, 00000000, 00000000, 00000000) 0257FC3C E457E220 (FFFFFFFF, 00000000, 6108D164, 0040536B) 0257FC5C 61003D82 (00000000, 6106A078, 0257FC8C, 61004055) 0257FC7C 61003E73 (00000000, 045B1338, 0257FCAC, 61069CF9) 0257FCAC 61069D25 (00000000, 00000000, 0257FCCC, 00446E09) 0257FCCC 00446E15 (00000000, 145E2F54, 00000000, 00404992) 0257FD2C 004051CE (00000004, 145E2F48, 045B0008, FFFFFFFE) 0257FD88 61003859 (00000000, 00000000, 4D088DCE, 00000002) 0257FDB8 61003A3D (004047B4, 00000000, 81B5F8B0, 00000000) 0257FDD8 61003A7C (00000000, 00000000, FFFFFFFF, 00000001) 0257FE08 00449CAB (004047B4, 0257FC8C, BFFC9490, 0257FF68) 0257FE38 0040103D (00000000, 81B5F620, 00570000, 45007241) 0257FF78 BFF8B560 (81B5F86C, 00000008, 81B5F620, 00000000) 31464 [main] ar 378917 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION 31879 [main] ar 378917 handle_exceptions: Error while dumping state (probably corrupted stack) gmv0.9/src/glwin/diff.txt0100744000175200017560000001432707250340574015735 0ustar stephensstephengIndex: glwin.c =================================================================== RCS file: //cvs/ioncvs/cvsroot/home/ion/src/glwin/glwin.c,v retrieving revision 1.3 diff -r1.3 glwin.c 182a183,302 > /********************************************************************** > ** Keyboard tracking > */ > > int glwin_process_key(glwin_window *win, int key, int down) > { > key &= 0xff; > > #if 0 > fprintf(stderr, "key = '%c', 0x%x\n", key, key); > #endif > > win->nKeysDownPrev = win->nKeysDown; > > if ( down ) { > if ( win->keyState[key] == 0 ) { > win->keyState[key] ++; > win->nKeysDown ++; > > if ( win->desc.KeyDown ) { > if ( (win->desc.KeyDown)(win, key) ) { > return 1; > } > } > } > } else { > if ( win->keyState[key] > 0 ) { > win->keyState[key] --; > } > if ( win->nKeysDown > 0 ) > win->nKeysDown --; > > if ( win->desc.KeyUp ) { > if ( (win->desc.KeyUp)(win, key) ) { > return 1; > } > } > } > > return 0; > } > > > int glwin_key_down(glwin_window *win, int key) > { > key &= 0xff; > > return win->keyState[key]; > } > > > int glwin_nkeys_down(glwin_window *win) > { > return win->nKeysDown; > } > > > int glwin_nkeys_down_prev(glwin_window *win) > { > return win->nKeysDownPrev; > } > > > /********************************************************************** > ** Mouse button tracking. > */ > > int glwin_process_button(glwin_window *win, int button, int down, int x, int y) > { > win->nButtonsDownPrev = win->nButtonsDown; > > if ( down ) { > if ( win->buttonState[button] <= 0 ) { > ++ win->buttonState[button]; > ++ win->nButtonsDown; > > win->buttonDownX[button] = x; > win->buttonDownY[button] = y; > > if ( win->desc.MouseDown ) { > win->desc.MouseDown(win, x, y, button); > } > } > } else { > if ( win->buttonState[button] > 0 ) { > -- win->buttonState[button]; > } > if ( win->nButtonsDown > 0 ) { > -- win->nButtonsDown; > } > if ( win->desc.MouseUp ) { > win->desc.MouseUp(win, x, y, button); > } > } > > return 0; > } > > > int glwin_button_down(glwin_window *win, int button) > { > button &= 0xff; > > return win->buttonState[button]; > } > > > int glwin_nbuttons_down(glwin_window *win) > { > return win->nButtonsDown; > } > > > int glwin_nbuttons_down_prev(glwin_window *win) > { > return win->nButtonsDownPrev; > } > > > 194a315,317 > int x = LOWORD(lParam); > int y = HIWORD(lParam); > 199d321 < 280,281c402,403 < w = LOWORD(lParam); < h = HIWORD(lParam); --- > w = x; > h = y; 345,348c467,468 < if ( win->desc.KeyDown ) { < if ( ! (win->desc.KeyDown)(win, wParam) ) { < goto do_default; < } --- > if ( ! glwin_process_key(win, wParam, 1) ) { > goto do_default; 353,355c473,523 < if ( win->desc.KeyUp ) { < if ( ! (win->desc.KeyUp)(win, wParam) ) { < goto do_default; --- > if ( ! glwin_process_key(win, wParam, 0) ) { > goto do_default; > } > break; > > case WM_LBUTTONDOWN: > glwin_process_button(win, 0, 1, x, y); > break; > > case WM_LBUTTONUP: > glwin_process_button(win, 0, 0, x, y); > break; > > case WM_RBUTTONDOWN: > glwin_process_button(win, 1, 1, x, y); > break; > > case WM_RBUTTONUP: > glwin_process_button(win, 1, 0, x, y); > break; > > case WM_MBUTTONDOWN: > glwin_process_button(win, 2, 1, x, y); > break; > > case WM_MBUTTONUP: > glwin_process_button(win, 2, 0, x, y); > break; > > case WM_MOUSEWHEEL: > if ( win->desc.MouseZ ) { > double dz = (double) wParam / (double) (- (~0U >> 1)); > > fprintf(stderr, "WM_MOUSEWHEEL(%ld, dz = %g, x = %ld, y = %ld)\n", > (long) win, > (double) dz, > (long) x, > (long) y); > > win->desc.MouseZ(win, dz, x, y); > break; > } > goto do_default; > > case WM_MOUSEMOVE: > if ( win->desc.MouseMove ) { > win->desc.MouseMove(win, x, y); > } > if ( win->nButtonsDown ) { > if ( win->desc.MouseDrag ) { > win->desc.MouseDrag(win, x, y); 359c527,539 < --- > > case WM_MOUSEHOVER: > case WM_MOUSELEAVE: > fprintf(stderr, "WM_*BUTTON*(%ld, %ld, %ld, %ld): x = %d, y = %d\n", > (long) win, > (long) message, > (long) wParam, > (long) lParam, > (int) x, > (int) y); > goto do_default; > break; > Index: glwin.h =================================================================== RCS file: //cvs/ioncvs/cvsroot/home/ion/src/glwin/glwin.h,v retrieving revision 1.2 diff -r1.2 glwin.h 30c30,33 < void (*ChangeSize)(glwin_window *win, GLsizei w, GLsizei h); --- > void (*Create)(glwin_window *win); > void (*Destroy)(glwin_window *win); > > void (*ChangeSize)(glwin_window *win, int w, int h); 33a37 > /* Keyboard events. */ 38,39c42,48 < void (*Create)(glwin_window *win); < void (*Destroy)(glwin_window *win); --- > /* Mouse events. */ > int (*MouseDown)(glwin_window *win, int button, int x, int y); > int (*MouseUp)(glwin_window *win, int button, int x, int y); > int (*MouseMove)(glwin_window *win, int x, int y); > int (*MouseDrag)(glwin_window *win, int x, int y); > int (*MouseZ)(glwin_window *win, double dz, int x, int y); > 41a51 > 59a70,80 > /* Current key states. */ > unsigned char keyState[256]; > int nKeysDown; > int nKeysDownPrev; > > /* Current button states. */ > unsigned char buttonState[4]; > int buttonDownX[4]; > int buttonDownY[4]; > int nButtonsDown; > int nButtonsDownPrev; 61a83 > 68a91,100 > > int glwin_key_down(glwin_window *win, int key); > int glwin_nkeys_down(glwin_window *win); > int glwin_nkeys_down_prev(glwin_window *win); > > int glwin_button_down(glwin_window *win, int button); /* 0=LEFT, 1=RIGHT, 2=MIDDLE */ > int glwin_nbuttons_down(glwin_window *win); > int glwin_nbuttons_down_prev(glwin_window *win); > > int glwin_mouse_down(glwin_window *win, int button); gmv0.9/src/glwin/.#glwin.h.1.30100744000175200017560000000605107254311332016163 0ustar stephensstepheng#ifndef _glwin_glwin_h #ifndef __rcs_id__ #ifndef __rcs_id_glwin_glwin_h__ #define __rcs_id_glwin_glwin_h__ static const char __rcs_id_glwin_glwin_h[] = "$Id: glwin.h,v 1.3 2001/03/04 04:16:31 stephens Exp $"; #endif #endif /* __rcs_id__ */ #define _glwin_glwin_h #ifdef _WIN32 #include /* wchar_t */ #include #else #endif #include #ifdef __cplusplus extern "C" { #endif struct glwin_window; typedef struct glwin_window glwin_window; typedef struct glwin_desc { void *data; /* User data */ const char *winName; /* Window name */ GLint winX, winY; /* Window position */ GLsizei winWidth, winHeight; /* Window size */ /* Methods */ void (*Create)(glwin_window *win); void (*Destroy)(glwin_window *win); void (*ChangeSize)(glwin_window *win, int w, int h); void (*Idle)(glwin_window *win); void (*Render)(glwin_window *win); /* Keyboard events. */ int (*KeyPress)(glwin_window *win, int key); int (*KeyDown)(glwin_window *win, int key); int (*KeyUp)(glwin_window *win, int key); /* Mouse events. */ int (*MouseDown)(glwin_window *win, int button, int x, int y); int (*MouseUp)(glwin_window *win, int button, int x, int y); int (*MouseMove)(glwin_window *win, int x, int y); int (*MouseDrag)(glwin_window *win, int x, int y); int (*MouseZ)(glwin_window *win, double dz, int x, int y); } glwin_desc; struct glwin_window { void *data; /* User data */ GLint winX, winY; /* Current window pos */ GLsizei winWidth, winHeight; /* Current window size */ GLfloat viewWidth, viewHeight; /* View port info */ glwin_desc desc; /* Creation parameters */ /* Stuff your not supposed to know about */ short created; short idleEnabled; HINSTANCE hInstance; /* The application instance */ HWND hWnd; /* The window we are attached to */ HPALETTE hPalette; /* The palette we are attached to */ HGLRC hRC; /* Permenant Rendering context */ HDC hDC; /* Private GDI Device context */ /* Current key states. */ unsigned char keyState[256]; int nKeysDown; int nKeysDownPrev; /* Current button states. */ unsigned char buttonState[4]; int buttonDownX[4]; int buttonDownY[4]; int nButtonsDown; int nButtonsDownPrev; }; glwin_window *glwin_create(glwin_desc *desc, void *data); void glwin_destroy(glwin_window *win); void glwin_show(glwin_window *win); void glwin_update(glwin_window *win); void glwin_redraw(glwin_window *win); void glwin_idle(glwin_window *win, int enable); void glwin_quit(glwin_window *win, int exitcode); int glwin_key_down(glwin_window *win, int key); int glwin_nkeys_down(glwin_window *win); int glwin_nkeys_down_prev(glwin_window *win); int glwin_button_down(glwin_window *win, int button); /* 0=LEFT, 1=RIGHT, 2=MIDDLE */ int glwin_nbuttons_down(glwin_window *win); int glwin_nbuttons_down_prev(glwin_window *win); int glwin_mouse_down(glwin_window *win, int button); int glwin_mainloop(); int glwin_main(int argc, char **argv); #ifdef __cplusplus }; #endif #endif gmv0.9/src/glwin/glwin.swig0100744000175200017560000000315707270653505016301 0ustar stephensstepheng#ifndef _glwin_glwin_swig #define _glwin_glwin_swig #ifdef SWIG %module glwin %{ #include "glwin/glwin.swig" %} #endif struct glwin_desc; typedef struct glwin_desc glwin_desc; struct glwin_window; typedef struct glwin_window glwin_window; /**********************************************************/ extern void glwin_close(glwin_window *win); extern void glwin_destroy(glwin_window *win); extern void glwin_show(glwin_window *win); extern void glwin_update(glwin_window *win); extern void glwin_redraw(glwin_window *win); extern void glwin_idle(glwin_window *win, int enable); extern void glwin_quit(glwin_window *win, int exitcode); /**********************************************************/ extern int glwin_key_down(glwin_window *win, int key); extern int glwin_nkeys_down(glwin_window *win); extern int glwin_nkeys_down_prev(glwin_window *win); extern int glwin_button_down(glwin_window *win, int button); /* 0=LEFT, 1=RIGHT, 2=MIDDLE */ extern int glwin_button_count(glwin_window *win, int button); /* 0=LEFT, 1=RIGHT, 2=MIDDLE */ extern int glwin_nbuttons_down(glwin_window *win); extern int glwin_nbuttons_down_prev(glwin_window *win); /**********************************************************/ extern int glwin_process_key_press(glwin_window *win, int key); extern int glwin_process_key(glwin_window *win, int key, int state); extern int glwin_process_keysym(glwin_window *win, int key, int state); extern int glwin_process_button(glwin_window *win, int button, int state, int x, int y); extern int glwin_process_motion(glwin_window *win, int x, int y); /**********************************************************/ #endif gmv0.9/src/glwin/vk.h0100744000175200017560000000376107255551067015063 0ustar stephensstepheng#ifndef _gmv_VK_H #define _gmv_VK_H /* From w32api/winuser.h */ #ifndef _WINUSER_H #define VK_LBUTTON 1 #define VK_RBUTTON 2 #define VK_CANCEL 3 #define VK_MBUTTON 4 #define VK_BACK 8 #define VK_TAB 9 #define VK_CLEAR 12 #define VK_RETURN 13 #define VK_SHIFT 16 #define VK_CONTROL 17 #define VK_MENU 18 #define VK_PAUSE 19 #define VK_CAPITAL 20 #define VK_ESCAPE 0x1B #define VK_SPACE 32 #define VK_PRIOR 33 #define VK_NEXT 34 #define VK_END 35 #define VK_HOME 36 #define VK_LEFT 37 #define VK_UP 38 #define VK_RIGHT 39 #define VK_DOWN 40 #define VK_SELECT 41 #define VK_PRINT 42 #define VK_EXECUTE 43 #define VK_SNAPSHOT 44 #define VK_INSERT 45 #define VK_DELETE 46 #define VK_HELP 47 #define VK_LWIN 0x5B #define VK_RWIN 0x5C #define VK_APPS 0x5D #define VK_NUMPAD0 0x60 #define VK_NUMPAD1 0x61 #define VK_NUMPAD2 0x62 #define VK_NUMPAD3 0x63 #define VK_NUMPAD4 0x64 #define VK_NUMPAD5 0x65 #define VK_NUMPAD6 0x66 #define VK_NUMPAD7 0x67 #define VK_NUMPAD8 0x68 #define VK_NUMPAD9 0x69 #define VK_MULTIPLY 0x6A #define VK_ADD 0x6B #define VK_SEPARATOR 0x6C #define VK_SUBTRACT 0x6D #define VK_DECIMAL 0x6E #define VK_DIVIDE 0x6F #define VK_F1 0x70 #define VK_F2 0x71 #define VK_F3 0x72 #define VK_F4 0x73 #define VK_F5 0x74 #define VK_F6 0x75 #define VK_F7 0x76 #define VK_F8 0x77 #define VK_F9 0x78 #define VK_F10 0x79 #define VK_F11 0x7A #define VK_F12 0x7B #define VK_F13 0x7C #define VK_F14 0x7D #define VK_F15 0x7E #define VK_F16 0x7F #define VK_F17 0x80 #define VK_F18 0x81 #define VK_F19 0x82 #define VK_F20 0x83 #define VK_F21 0x84 #define VK_F22 0x85 #define VK_F23 0x86 #define VK_F24 0x87 #define VK_NUMLOCK 0x90 #define VK_SCROLL 0x91 #define VK_LSHIFT 0xA0 #define VK_RSHIFT 0xA1 #define VK_LCONTROL 0xA2 #define VK_RCONTROL 0xA3 #define VK_LMENU 0xA4 #define VK_RMENU 0xA5 #define VK_PROCESSKEY 0xE5 #define VK_ATTN 0xF6 #define VK_CRSEL 0xF7 #define VK_EXSEL 0xF8 #define VK_EREOF 0xF9 #define VK_PLAY 0xFA #define VK_ZOOM 0xFB #define VK_NONAME 0xFC #define VK_PA1 0xFD #define VK_OEM_CLEAR 0xFE #endif #endif gmv0.9/src/glwin/GUMakefile0100755000175200017560000000076707264403514016164 0ustar stephensstepheng# $Id: GUMakefile,v 1.2 2001/04/09 19:02:36 stephens Exp $ PROJECT=glwin# ########################################################################### INCLUDE_DIRS += .. ########################################################################### NAME:=glwin# C_FILES = glwin.c xk2vk.c H_FILES = glwin.h glwin.swig SWIG_FILES = glwin.swig LIBS:=GL GLU glut# include $(GUM)/lib ########################################################################### xk2vk.c : xk.pl GUMakefile perl xk.pl > $@ gmv0.9/src/glwin/.#glwin.c.1.110100744000175200017560000007171307267654575016273 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_glwin_glwin_c__ #define __rcs_id_glwin_glwin_c__ static const char __rcs_id_glwin_glwin_c[] = "$Id: glwin.c,v 1.11 2001/04/19 18:40:51 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "glwin.h" #include #if _GLWIN_GLUT #define GLUT_API_VERSION 4 #include /* Layer on top of glut.h */ #endif #if _GLWIN_TOGL #define TOGL_X11 1 #include "togl/togl.h" #include /* XAutoRepeat*() */ #ifdef KeyPress #undef KeyPress #endif typedef struct Togl Togl; #endif #include #include /* malloc(), free() */ #include /* memset() */ #include #include /* islower(), toupper() */ #include "vk.h" #if _GLWIN_WIN32 // If necessary, creates a 3-3-2 palette for the device context listed. static HPALETTE GetOpenGLPalette(HDC hDC) { HPALETTE hRetPal = NULL; // Handle to palette to be created PIXELFORMATDESCRIPTOR pfd; // Pixel Format Descriptor LOGPALETTE *pPal; // Pointer to memory for logical palette int nPixelFormat; // Pixel format index int nColors; // Number of entries in palette int i; // Counting variable BYTE RedRange, GreenRange, BlueRange; // Range for each color entry (7,7,and 3) // Get the pixel format index and retrieve the pixel format description nPixelFormat = GetPixelFormat(hDC); DescribePixelFormat(hDC, nPixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd); // Does this pixel format require a palette? If not, do not create a // palette and just return NULL if(!(pfd.dwFlags & PFD_NEED_PALETTE)) return NULL; // Number of entries in palette. 8 bits yields 256 entries nColors = 1 << pfd.cColorBits; // Allocate space for a logical palette structure plus all the palette entries pPal = (LOGPALETTE*)malloc(sizeof(LOGPALETTE) + nColors * sizeof(PALETTEENTRY)); // Fill in palette header pPal->palVersion = 0x300; // Windows 3.0 pPal->palNumEntries = nColors; // table size // Build mask of all 1's. This creates a number represented by having // the low order x bits set, where x = pfd.cRedBits, pfd.cGreenBits, and // pfd.cBlueBits. RedRange = (1 << pfd.cRedBits) - 1; GreenRange = (1 << pfd.cGreenBits) - 1; BlueRange = (1 << pfd.cBlueBits) - 1; // Loop through all the palette entries for(i = 0; i < nColors; i++) { // Fill in the 8-bit equivalents for each component pPal->palPalEntry[i].peRed = (i >> pfd.cRedShift) & RedRange; pPal->palPalEntry[i].peRed = (unsigned char)( (double) pPal->palPalEntry[i].peRed * 255.0 / RedRange); pPal->palPalEntry[i].peGreen = (i >> pfd.cGreenShift) & GreenRange; pPal->palPalEntry[i].peGreen = (unsigned char)( (double)pPal->palPalEntry[i].peGreen * 255.0 / GreenRange); pPal->palPalEntry[i].peBlue = (i >> pfd.cBlueShift) & BlueRange; pPal->palPalEntry[i].peBlue = (unsigned char)( (double)pPal->palPalEntry[i].peBlue * 255.0 / BlueRange); pPal->palPalEntry[i].peFlags = (unsigned char) NULL; } // Create the palette hRetPal = CreatePalette(pPal); // Go ahead and select and realize the palette for this device context SelectPalette(hDC,hRetPal,FALSE); RealizePalette(hDC); // Free the memory used for the logical palette structure free(pPal); // Return the handle to the new palette return hRetPal; } #endif /* _GLWIN_WIN32 */ static void showOpenGLInfo( #if _GLWIN_WIN32 HDC hDC, int pixelFormat #endif ) { const char *type = "unknown"; // OpenGL Implementation type. #if _GLWIN_WIN32 // Find out if hardware acceleration is enabled. { PIXELFORMATDESCRIPTOR pfd_new; int generic_format; int generic_accelerated; DescribePixelFormat (hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd_new); #if 0 fprintf(stderr, "pfd_new.dwFlags = 0x%lx\n", (unsigned long) pfd_new.dwFlags); #endif generic_format = pfd_new.dwFlags & PFD_GENERIC_FORMAT; #ifndef PFD_GENERIC_ACCELERATED /* Good guess?? */ #define PFD_GENERIC_ACCELERATED ((PFD_GENERIC_FORMAT) << 1) #endif generic_accelerated = pfd_new.dwFlags & PFD_GENERIC_ACCELERATED; if (generic_format && ! generic_accelerated) { type = "software"; } else if (generic_format && generic_accelerated) { type = "hardware - MCD"; } else if (! generic_format && ! generic_accelerated) { type = "hardware - ICD"; } } #endif /* _GLWIN_WIN32 */ fprintf(stderr, "OpenGL implementation: %s\n", type); { static int once = 0; if ( ! once ) { once ++; #define P(X) fprintf(stderr, "%s = \"%s\"\n" , #X, X); P(glGetString(GL_VENDOR)); P(glGetString(GL_RENDERER)); P(glGetString(GL_VERSION)); P(glGetString(GL_EXTENSIONS)); P(gluGetString(GLU_VERSION)); P(gluGetString(GLU_EXTENSIONS)); #undef P } } } #if _GLWIN_WIN32 // Select the pixel format for a given device context static int SetDCPixelFormat(HDC hDC) { int nPixelFormat; static PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // Size of this structure 1, // Version of this structure PFD_DRAW_TO_WINDOW | // Draw to Window (not to bitmap) PFD_SUPPORT_OPENGL | // Support OpenGL calls in window PFD_DOUBLEBUFFER, // Double buffered mode PFD_TYPE_RGBA, // RGBA Color mode 16, // Want 16 bit color 0,0,0,0,0,0, // Not used to select mode 0,0, // Not used to select mode 0,0,0,0,0, // Not used to select mode 16, // Size of depth buffer 0, // Not used to select mode 0, // Not used to select mode PFD_MAIN_PLANE, // Draw in main plane 0, // Not used to select mode 0,0,0 }; // Not used to select mode // Choose a pixel format that best matches that described in pfd nPixelFormat = ChoosePixelFormat(hDC, &pfd); // Set the pixel format for the device context SetPixelFormat(hDC, nPixelFormat, &pfd); return nPixelFormat; } #endif /* _GLWIN_WIN32 */ /********************************************************************** ** Basic tracking */ glwin_window *_glwin_create(glwin_desc *desc, void *data) { glwin_window *win; win = malloc(sizeof(*win)); memset(win, 0, sizeof(*win)); win->data = data; win->desc = *desc; win->winX = win->desc.winX; win->winY = win->desc.winY; win->winWidth = win->desc.winWidth; win->winHeight = win->desc.winHeight; win->viewWidth = win->desc.winWidth; win->viewHeight = win->desc.winHeight; return win; } void _glwin_destroy(glwin_window *win) { free(win); } static int glwin_process_idle(glwin_window *win) { int result = 0; if ( win->desc.Idle ) result = (win->desc.Idle)(win); return result; } int glwin_process_size(glwin_window *win, int w, int h) { if ( win->desc.ChangeSize ) (win->desc.ChangeSize)(win, w, h); win->winWidth = w; win->winHeight = h; return 0; } int glwin_process_create(glwin_window *win) { int result = 0; if ( ! win->created ) { win->created = 1; if ( win->desc.Create ) { void (*func)(glwin_window*) = win->desc.Create; win->desc.Create = 0; (func)(win); result = 1; } glwin_process_size(win, win->winWidth, win->winHeight); glwin_process_idle(win); } return result; } int glwin_process_render(glwin_window *win) { if ( win->desc.Render ) { return win->desc.Render(win); } return 0; } int glwin_process_close(glwin_window *win) { if ( win->desc.Close ) { (win->desc.Close)(win); return 1; } return 0; } int glwin_process_destroy(glwin_window *win) { int result = 0; result |= glwin_process_close(win); if ( win->desc.Destroy ) { void (*func)(glwin_window*) = win->desc.Destroy; win->desc.Destroy = 0; (func)(win); _glwin_destroy(win); result |= 1; } return result; } int glwin_process_motion(glwin_window *win, int x, int y) { int result = 0; if ( win->desc.MouseMove ) { result |= win->desc.MouseMove(win, x, y); } if ( win->nButtonsDown ) { if ( win->desc.MouseDrag ) { result |= win->desc.MouseDrag(win, x, y); } } return result; } /********************************************************************** ** Keyboard tracking */ int glwin_process_key_press(glwin_window *win, int key) { if ( win->desc.KeyPress ) { return (win->desc.KeyPress)(win, key); } return 0; } static int _glwin_process_key(glwin_window *win, int key, int down) { int result; key &= 0xff; /* Callbacks expect upper case. */ if ( isalpha(key) && islower(key) ) { key = toupper(key); } #if 0 fprintf(stderr, "key = '%c', 0x%x %s\n", key, key, down ? "DOWN" : "UP"); #endif win->nKeysDownPrev = win->nKeysDown; if ( down ) { if ( win->keyState[key] == 0 ) { ++ win->keyState[key]; if ( ++ win->nKeysDown == 1 ) { #if _GLWIN_TOGL #define DISPLAY Togl_Display(win->_togl_win) XKeyboardState xks; XGetKeyboardControl(DISPLAY, &xks); win->_x_auto_repeat_mode = xks.global_auto_repeat; if ( win->_x_auto_repeat_mode == AutoRepeatModeOn ) { // fprintf(stderr, "XAutoRepeatOff(%p)\n", DISPLAY); XAutoRepeatOff(DISPLAY); } #endif } if ( win->desc.KeyDown ) { result = (win->desc.KeyDown)(win, key); } } } else { if ( win->keyState[key] > 0 ) { -- win->keyState[key]; } if ( win->nKeysDown > 0 ) { if ( -- win->nKeysDown == 0 ) { #if _GLWIN_TOGL if ( win->_x_auto_repeat_mode == AutoRepeatModeOn ) { // fprintf(stderr, "XAutoRepeatOn(%p)\n", DISPLAY); XAutoRepeatOn(DISPLAY); } #undef DISPLAY #endif } } if ( win->desc.KeyUp ) { result = (win->desc.KeyUp)(win, key); } } return result; } int glwin_process_key(glwin_window *win, int key, int down) { int result = 0; int other = 0; /* Handle aliases. */ switch ( key ) { case VK_RSHIFT: case VK_LSHIFT: other = VK_SHIFT; break; case VK_LMENU: case VK_RMENU: other = VK_MENU; break; case VK_LCONTROL: case VK_RCONTROL: other = VK_CONTROL; break; case VK_NUMPAD0: case VK_NUMPAD1: case VK_NUMPAD2: case VK_NUMPAD3: case VK_NUMPAD4: case VK_NUMPAD5: case VK_NUMPAD6: case VK_NUMPAD7: case VK_NUMPAD8: case VK_NUMPAD9: other = key - VK_NUMPAD0 + '0'; break; case VK_MULTIPLY: other = '*'; break; case VK_ADD: other = '+'; break; case VK_SEPARATOR: other = '/'; break; case VK_SUBTRACT: other = '-'; break; case VK_DECIMAL: other = '.'; break; case VK_DIVIDE: other = '/'; break; default: other = 0; break; } result = _glwin_process_key(win, key, down); if ( other ) { /* fprintf(stderr, "PK %d -> %d\n", key, other); */ result |= _glwin_process_key(win, other, down); } return result; } extern int glwin_XK_to_VK(int keysym); int glwin_process_keysym(glwin_window *win, int key, int state) { key = glwin_XK_to_VK(key); return glwin_process_key(win, key, state); } int glwin_key_down(glwin_window *win, int key) { key &= 0xff; return win->keyState[key]; } int glwin_nkeys_down(glwin_window *win) { return win->nKeysDown; } int glwin_nkeys_down_prev(glwin_window *win) { return win->nKeysDownPrev; } /********************************************************************** ** Mouse button tracking. */ int glwin_process_button(glwin_window *win, int button, int down, int x, int y) { int result = 0; int count = down; assert(0 <= button && button <= 3); if ( count == 0 ) { count = win->buttonCount[button]; } win->nButtonsDownPrev = win->nButtonsDown; if ( down ) { if ( win->buttonState[button] == 0 ) { ++ win->nButtonsDown; } win->buttonCount[button] = count; if ( win->buttonState[button] <= count ) { win->buttonState[button] = count; win->buttonDownX[button] = x; win->buttonDownY[button] = y; if ( win->desc.MouseDown ) { result = win->desc.MouseDown(win, x, y, button, count); } } } else { win->buttonState[button] = 0; if ( win->nButtonsDown > 0 ) { -- win->nButtonsDown; } if ( win->desc.MouseUp ) { result = win->desc.MouseUp(win, x, y, button, count); } // glwin_process_key(); } return result; } int glwin_button_down(glwin_window *win, int button) { button &= 0xff; return win->buttonState[button]; } int glwin_button_count(glwin_window *win, int button) { button &= 0xff; return win->buttonCount[button]; } int glwin_nbuttons_down(glwin_window *win) { return win->nButtonsDown; } int glwin_nbuttons_down_prev(glwin_window *win) { return win->nButtonsDownPrev; } #if _GLWIN_WIN32 // Window procedure, handles all messages for this program static glwin_window *win_created; static LRESULT CALLBACK glwin_window_WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { glwin_window *win; int x = LOWORD(lParam); int y = HIWORD(lParam); #define hRC win->hRC #define hDC win->hDC #define hPalette win->hPalette /* get the window's glwin_window ptr */ win = (void*) GetWindowLong(hWnd, 0); if ( ! win ) { if ( win_created ) { win = win_created; /* ARRGGH! */ win_created = 0; SetWindowLong(hWnd, 0, (LONG) win); win->hWnd = hWnd; } else { fprintf(stderr, "glwin_window: cannot attach HWND\n"); abort(); } } /* Validate */ if ( win->hWnd && win->hWnd != hWnd ) { fprintf(stderr, "glwin_window: corrupted window struct\n"); abort(); } /* We're not being destroyed or created */ if ( message != WM_CREATE || message != WM_DESTROY ) { if ( hDC != 0 && hRC != 0 ) { /* Switch to our gl context */ wglMakeCurrent(hDC, hRC); /* call our Create function if needed */ glwin_process_create(win); } } } // fprintf(stderr, "message %u wParam %ld %ld\n", message, (long) wParam, (long) lParam); switch (message) { case WM_CREATE: { int pixelFormat; hDC = GetDC(hWnd); pixelFormat = SetDCPixelFormat(hDC); hRC = wglCreateContext(hDC); wglMakeCurrent(hDC, hRC); hPalette = GetOpenGLPalette(hDC); showOpenGLInfo(hDC, pixelFormat); } break; case WM_DESTROY: glwin_idle(win, 0); wglMakeCurrent(hDC, hRC); wglDeleteContext(hRC); wglMakeCurrent(hDC, 0); if(hPalette != NULL) DeleteObject(hPalette); glwin_process_destroy(win); break; case WM_SIZE: { GLint w, h; w = x; h = y; if ( w < 1 ) { w = 1; } if ( h < 1 ) { h = 1; } glwin_process_size(win, w, h); } break; case WM_TIMER: glwin_process_idle(win); break; case WM_PAINT: glwin_process_render(win); SwapBuffers(hDC); ValidateRect(hWnd, NULL); break; case WM_QUERYNEWPALETTE: if(hPalette) { int nRet; SelectPalette(hDC, hPalette, FALSE); nRet = RealizePalette(hDC); InvalidateRect(hWnd, NULL, FALSE); return nRet; } break; case WM_PALETTECHANGED: if((hPalette != NULL) && ((HWND)wParam != hWnd)) { SelectPalette(hDC, hPalette, FALSE); RealizePalette(hDC); UpdateColors(hDC); return 0; } break; case WM_CHAR: if ( glwin_process_key_press(win, wParam); if ( win->desc.KeyPress ) { if ( ! (win->desc.KeyPress)(win, wParam) ) { goto do_default; } } break; case WM_KEYDOWN: if ( ! glwin_process_key(win, wParam, 1) ) { goto do_default; } break; case WM_KEYUP: if ( ! glwin_process_key(win, wParam, 0) ) { goto do_default; } break; case WM_LBUTTONDOWN: // fprintf(stderr, "WM_LBUTTONDOWN %d %d, %ld %ld\n", (int) x, (int) y, (long) wParam, (long) lParam); glwin_process_button(win, 0, 1, x, y); break; case WM_LBUTTONUP: // fprintf(stderr, "WM_LBUTTONUP %d %d, %ld %ld\n", (int) x, (int) y, (long) wParam, (long) lParam); glwin_process_button(win, 0, 0, x, y); break; case WM_RBUTTONDOWN: glwin_process_button(win, 1, 1, x, y); break; case WM_RBUTTONUP: glwin_process_button(win, 1, 0, x, y); break; case WM_MBUTTONDOWN: glwin_process_button(win, 2, 1, x, y); break; case WM_MBUTTONUP: glwin_process_button(win, 2, 0, x, y); break; case WM_MOUSEWHEEL: if ( win->desc.MouseZ ) { double dz = (double) wParam / (double) (- (~0U >> 1)); fprintf(stderr, "WM_MOUSEWHEEL(%ld, dz = %g, x = %ld, y = %ld)\n", (long) win, (double) dz, (long) x, (long) y); win->desc.MouseZ(win, x, y, dz); break; } goto do_default; case WM_MOUSEMOVE: glwin_process_motion(win, x, y); break; case WM_MOUSEHOVER: case WM_MOUSELEAVE: fprintf(stderr, "WM_*BUTTON*(%ld, %ld, %ld, %ld): x = %d, y = %d\n", (long) win, (long) message, (long) wParam, (long) lParam, (int) x, (int) y); goto do_default; break; default: do_default: return (DefWindowProc(hWnd, message, wParam, lParam)); } #undef hRc #undef hDc #undef hPalette return (0L); } HINSTANCE glwin_hInstance; #endif /* _GLWIN_WIN32 */ #if _GLWIN_WIN32 glwin_window *glwin_create(glwin_desc *desc, void *data) { glwin_window *win; static const char *wClassName = 0; HWND hWnd; /* The window we are attached to */ if ( ! glwin_hInstance ) { glwin_hInstance = GetModuleHandle(NULL); fprintf(stderr, "glwin_hInstance = %p\n", (void*) glwin_hInstance); } if ( ! wClassName ) { WNDCLASS wc; wClassName = "glwin_window"; UnregisterClass(wClassName, glwin_hInstance); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC) glwin_window_WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = sizeof(win); wc.hInstance = glwin_hInstance; wc.hIcon = NULL; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = NULL; wc.lpszMenuName = NULL; wc.lpszClassName = wClassName; if(RegisterClass(&wc) == 0) { wClassName = 0; return 0; } } win = _glwin_create(desc, data); win->hInstance = glwin_hInstance; win_created = win; hWnd = CreateWindow( wClassName, desc->winName, /* OpenGL requires WS_CLIPCHILDREN | WS_CLIPSIBLINGS */ WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, desc->winX > 0 ? desc->winX : CW_USEDEFAULT, desc->winY > 0 ? desc->winY : CW_USEDEFAULT, desc->winWidth > 0 ? desc->winWidth : CW_USEDEFAULT, desc->winHeight > 0 ? desc->winHeight : CW_USEDEFAULT, NULL, NULL, glwin_hInstance, win); win_created = 0; if(hWnd == NULL) { free(win); return 0; } win->hWnd = hWnd; SetWindowLong(hWnd, 0, (LONG) win); return win; } #endif /* _GLWIN_WIN32 */ #if _GLWIN_GLUT #define _glutwin_max 128 static glwin_window *__glut_2_glwin[_glutwin_max]; #define _glutWinAssert(glut_win) assert(0 <= (glut_win) && (glut_win) < _glutwin_max); static glwin_window *_glut_2_glwin() { int win = glutGetWindow(); _glutWinAssert(win); return __glut_2_glwin[win]; } #define WIN _glut_2_glwin() static void _glut_Reshape(int width, int height) { glwin_window *win = WIN; glwin_process_create(win); if ( width <= 0 ) width = 1; if ( height <= 0 ) height = 1; glwin_process_sie(win, width, height); } static void _glut_Display() { glwin_window *win = WIN; glwin_process_create(win); glwin_process_render(win); glutSwapBuffers(); } static void _glut_mods(glwin_window *win) { /* Do mods. */ int mods = glutGetModifiers(); // fprintf(stderr, "_glut_mods(): %d\n", mods); glwin_process_key(win, VK_SHIFT, mods & GLUT_ACTIVE_SHIFT ? 1 : 0); glwin_process_key(win, VK_CONTROL, mods & GLUT_ACTIVE_CTRL ? 1 : 0); glwin_process_key(win, VK_MENU, mods & GLUT_ACTIVE_ALT ? 1 : 0); } static int _glut_to_vk(int key) { // fprintf(stderr, "_glut_to_vk(%d): ", key); /* Map GLUT keys to VK keys. */ switch ( key ) { /* function keys */ case GLUT_KEY_F1: key = VK_F1; break; case GLUT_KEY_F2: key = VK_F2; break; case GLUT_KEY_F3: key = VK_F3; break; case GLUT_KEY_F4: key = VK_F4; break; case GLUT_KEY_F5: key = VK_F5; break; case GLUT_KEY_F6: key = VK_F6; break; case GLUT_KEY_F7: key = VK_F7; break; case GLUT_KEY_F8: key = VK_F8; break; case GLUT_KEY_F9: key = VK_F9; break; case GLUT_KEY_F10: key = VK_F10; break; case GLUT_KEY_F11: key = VK_F11; break; case GLUT_KEY_F12: key = VK_F12; break; /* directional keys */ case GLUT_KEY_LEFT: key = VK_LEFT; break; case GLUT_KEY_UP: key = VK_UP; break; case GLUT_KEY_RIGHT: key = VK_RIGHT; break; case GLUT_KEY_DOWN: key = VK_DOWN; break; case GLUT_KEY_PAGE_UP: key = VK_PRIOR; break; case GLUT_KEY_PAGE_DOWN: key = VK_NEXT; break; case GLUT_KEY_HOME: key = VK_HOME; break; case GLUT_KEY_END: key = VK_END; break; case GLUT_KEY_INSERT: key = VK_INSERT; break; default: break; } // fprintf(stderr, "%d\n", key); return key; } static void _glut_Mouse(int button, int state, int x, int y) { glwin_window *win = WIN; switch ( button ) { case GLUT_LEFT_BUTTON: button = 0; break; case GLUT_MIDDLE_BUTTON: button = 2; break; case GLUT_RIGHT_BUTTON: button = 1; break; default: abort(); } switch ( state ) { case GLUT_DOWN: state = 1; break; case GLUT_UP: state = 0; break; default: abort(); } // fprintf(stderr, "_glut_Mouse(%d, %d, %d, %d)\n", button, state, x, y); _glut_mods(win); glwin_process_button(win, button, state, x, y); } static void _glut_Motion(int x, int y) { glwin_window *win = WIN; glwin_process_create(win); /* _glut_mods(win); */ // fprintf(stderr, "_glut_Motion(%d, %d)\n", x, y); glwin_process_motion(win, x, y); } static void _glut_Keyboard(unsigned char key, int x, int y) { glwin_window *win = WIN; glwin_process_create(win); key = _glut_to_vk(key); glwin_process_key_press(win, key); _glut_mods(win); glwin_process_key(win, key, 1); } static void _glut_KeyboardUp(unsigned char key, int x, int y) { glwin_window *win = WIN; glwin_process_create(win); _glut_mods(win); key = _glut_to_vk(key); glwin_process_key(win, key, 0); } static void _glut_Idle() { glwin_window *win = WIN; glwin_process_create(win); glwin_process_idle(win); } glwin_window *glwin_create(glwin_desc *desc, void *data) { glwin_window *win; win = _glut_create(desc, data); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowPosition(win->winX, win->winY); glutInitWindowSize(win->winWidth, win->winHeight); glutCreateWindow(win->desc.winName); /* Create a glut window. */ win->_glut_win = glutGetWindow(); _glutWinAssert(win->_glut_win); /* Associate a glut win id with a glwin struct. */ assert(__glut_2_glwin[win->_glut_win] == 0); __glut_2_glwin[win->_glut_win] = win; fprintf(stderr, "%p->_glut_win = %d\n", win, win->_glut_win); /* Register glut callbacks. */ glutReshapeFunc(_glut_Reshape); glutDisplayFunc(_glut_Display); glutMouseFunc(_glut_Mouse); glutMotionFunc(_glut_Motion); glutKeyboardFunc(_glut_Keyboard); glutKeyboardUpFunc(_glut_KeyboardUp); /* Do create later. */ return win; } #endif #if _GLWIN_TOGL #define WIN (glwin_window *) Togl_GetClientData(togl) static glwin_window *togl_win = 0; static Togl *togl_created = 0; static void _togl_Create(Togl *togl) { glwin_window *win = togl_win; togl_created = togl; /* Do links. */ win->_togl_win = togl; Togl_SetClientData(togl, (ClientData) win); glwin_process_create(win); } static void _togl_Destroy(Togl *togl) { glwin_window *win = WIN; if ( win ) { glwin_process_destroy(win); } } static void _togl_Display(Togl *togl) { glwin_window *win = WIN; glwin_process_render(win); Togl_SwapBuffers(togl); } static void _togl_Reshape(Togl *togl) { glwin_window *win = WIN; glwin_process_size(win, Togl_Width(togl), Togl_Height(togl)); Togl_PostRedisplay(togl); } static void _togl_Timer(Togl *togl) { glwin_window *win = WIN; glwin_process_idle(win); } static Tcl_Interp *_tcl_interp; static int _tcl_argc; static char **_tcl_argv; int glwin_tk_options(void *clientData, void *interp, int argc, char **argv) { int i; if ( _tcl_argv ) { for ( i = 0; i < _tcl_argc; ++ i ) { free(_tcl_argv[i]); } free(_tcl_argv); } _tcl_interp = (Tcl_Interp*) interp; _tcl_argc = argc; _tcl_argv = malloc(sizeof(_tcl_argv[0]) * (_tcl_argc + 1)); for ( i = 0; i < _tcl_argc; ++ i ) { _tcl_argv[i] = strcpy(malloc(strlen(argv[i]) + 1), argv[i]); } _tcl_argv[i] = 0; return TCL_OK; } glwin_window *glwin_create(glwin_desc *desc, void *data) { glwin_window *win; Tcl_Interp *interp; struct Togl *togl; interp = desc->_tcl_interp = desc->_tcl_interp ? desc->_tcl_interp : _tcl_interp; assert(interp); /* Allocate win struct. */ win = _glwin_create(desc, data); /* Remember. */ togl_win = win; /* Set up callback before creating widget. */ Togl_CreateFunc(_togl_Create); Togl_DisplayFunc(_togl_Display); Togl_ReshapeFunc(_togl_Reshape); Togl_DestroyFunc(_togl_Destroy); Togl_TimerFunc(_togl_Timer); /* Lookup "togl" command and run with glwin_tk_options() args. */ { int error; Tcl_CmdInfo cmd; memset(&cmd, 0, sizeof(cmd)); Tcl_GetCommandInfo(interp, "togl", &cmd); if ( ! cmd.proc ) { /* Cannot find procedure!! */ _glwin_destroy(win); return 0; } if ( (error = (cmd.proc)(cmd.clientData, interp, _tcl_argc, _tcl_argv)) != TCL_OK ) { /* Something was wrong. */ _glwin_destroy(win); return 0; } assert(togl_created); togl = togl_created; togl_created = 0; } /* Just incase. */ Togl_SetCreateFunc(togl, _togl_Create); Togl_SetDisplayFunc(togl, _togl_Display); Togl_SetReshapeFunc(togl, _togl_Reshape); Togl_SetDestroyFunc(togl, _togl_Destroy); return win; } #endif /* _GLWIN_TOGL */ void glwin_close(glwin_window *win) { #if _GLWIN_WIN32 DestroyWindow(win->hWnd); return; #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); glutDestroyWindow(win->_glut_win); return; #endif #if _GLWIN_TOGL #define INTERP \ Togl *togl = win->_togl_win; \ Tcl_Interp *interp = Togl_Interp(togl); \ const char *ident = Togl_Ident(togl) { INTERP; char buf[128]; sprintf(buf, "after 20 destroy %s", ident); Tcl_Eval(interp, buf); return; } #endif abort(); } void glwin_destroy(glwin_window *win) { glwin_close(win); } void glwin_show(glwin_window *win) { #if _GLWIN_WIN32 ShowWindow(win->hWnd, SW_SHOW); return; #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); glutShowWindow(); return; #endif #if _GLWIN_TOGL { INTERP; Togl_MakeCurrent(togl); return; } #endif abort(); } void glwin_update(glwin_window *win) { #if _GLWIN_WIN32 UpdateWindow(win->hWnd); return; #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); glutPostRedisplay(); return; #endif #if _GLWIN_TOGL { INTERP; Togl_PostRedisplay(togl); return; } #endif abort(); } void glwin_redraw(glwin_window *win) { #if _GLWIN_WIN32 InvalidateRect(win->hWnd, NULL, FALSE); return; #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); glutPostRedisplay(); return; #endif #if _GLWIN_TOGL { INTERP; Togl_PostRedisplay(togl); return; } #endif abort(); } int _glwin_idle(glwin_window *win, int enable) { if ( enable ) { if ( ! win->idleEnabled ) { win->idleEnabled = enable; return 1; } } else { if ( win->idleEnabled ) { win->idleEnabled = enable; return 1; } } return 0; } void glwin_idle(glwin_window *win, int enable) { #if _GLWIN_WIN32 #ifndef glwin_TIMER_ID #define glwin_TIMER_ID 101 #endif if ( enable && _glwin_idle(win, enable) ) { SetTimer(win->hWnd, glwin_TIMER_ID, 1, NULL); } if ( ! enable && _glwin_idle(win, enable) ) { KillTimer(win->hWnd, glwin_TIMER_ID); } return; #undef glwin_TIMER_ID #endif #if _GLWIN_GLUT glutSetWindow(win->_glut_win); if ( enable && _glwin_idle(win, enable) ) { glutIdleFunc(_glut_Idle); } if ( ! enable && _glwin_idle(win, enable) ) { glutIdleFunc(_glut_Idle); } return; #endif #if _GLWIN_TOGL _glwin_idle(win, enable); return; #endif abort(); } void glwin_quit(glwin_window *win, int exitcode) { #if _GLWIN_WIN32 PostQuitMessage(exitcode); return; #endif #if _GLWIN_GLUT exit(exitcode); return; #endif #if _GLWIN_TOGL exit(exitcode); return; #endif abort(); } void glwin_initmain(int *argcp, char ***argvp) { #if _GLWIN_WIN32 return; #endif #if _GLWIN_GLUT glutInit(argcp, *argvp); return; #endif #if _GLWIN_TOGL Togl_TimerFunc(_togl_Timer); return; #endif abort(); } int glwin_mainloop() { #if _GLWIN_WIN32 MSG msg; while( GetMessage(&msg, NULL, 0, 0) ) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; #endif #if _GLWIN_GLUT glutMainLoop(); return 0; #endif #if _GLWIN_TOGL return 0; #endif abort(); } gmv0.9/src/glwin/xk.pl0100644000175200017560000000664607264452715015255 0ustar stephensstepheng#!/usr/bin/perl # $Id: xk.pl,v 1.2 2001/04/10 00:37:33 stephens Exp $ # Author: kurtstephens@acm.org 2001/04/08 # Create a C switch case to transform X XK_* symsyms to # Window VK_* symbols. my $xk = (grep(-r $_, "/usr/X11R6/include/X11/keysymdef.h", "/usr/X11/include/X11/keysymdef.h", "xk.h"))[0]; my $vk = "vk.h"; my %xk; my @xk; open(XK, $xk) || die "Cannot read $xk"; while ( defined($_ = ) ) { chop; if ( /^\s*#\s*define\s+(XK_(\w+))\s+(\w+)/ ) { push(@xk, $2); $xk{$2} = $3; } } close(XK); my %vk; my @vk; open(VK, $vk) || die "Cannot read $vk"; while ( defined($_ = ) ) { chop; if ( /^\s*#\s*define\s+(VK_(\w+))\s+(\w+)/ ) { push(@vk, $2); $vk{$2} = $3; } } close(VK); my %xk_case = (); sub xk_2_vk { my ($xk, $vk, $comment) = @_; $comment |= $xk_case{$xk{$xk}}; $xk_case{$xk{$xk}} = $xk{$xk}; print "/* " if ( $comment ); print "#if defined(XK_$xk)\n"; print "case XK_$xk: vk = $vk; break;\n"; print "#endif\n"; print " $comment*/" if ( $comment ); print "\n"; } sub L { $_[0] eq "\\" || $_[0] eq "'" ? "'\\$_[0]'" : "'$_[0]'"; } my %xk_2_vk = ( 'BackSpace' => L('\b'), 'exclam' => L('!'), 'quotedbl' => L('"'), 'numbersign' => L('#'), 'dollar' => L('$'), 'percent' => L('%'), 'ampersand' => L('&'), 'apostrophe' => L("'"), 'quoteright' => L("'"), 'parenleft' => L('('), 'parenright' => L(')'), 'asterisk' => L('*'), 'plus' => L('+'), 'comma' => L(','), 'minus' => L('-'), 'period' => L('.'), 'slash' => L('/'), 'colon' => L(':'), 'semicolon' => L(';'), 'less' => L('<'), 'equal' => L('='), 'greater' => L('>'), 'question' => L('?'), 'at' => L('@'), 'bracketleft' => L('['), 'bracketright' => L(']'), 'braceleft' => L('{'), 'braceright' => L('}'), 'backslash' => L("\\"), 'underscore' => L('_'), 'grave' => L('`'), 'quoteleft' => L('`'), 'bar' => L('_'), 'vertbar' => L('|'), 'brokenbar' => L('|'), 'asciitilde' => L('~'), 'Caps_Lock' => 'VK_CAPITAL', 'Shift_Lock' => 'VK_CAPITAL', 'Scroll_Lock' => 'VK_SCROLL', 'Sys_Req' => 'VK_ATTN', 'Enter' => 'VK_RETURN', 'Page_Down' => 'VK_NEXT', 'Page_Up' => 'VK_PRIOR', 'Begin' => 'VK_HOME', 'End' => 'VK_END', ); my %xk_mod_2_vk = ( 'Shift' => 'SHIFT', 'Control' => 'CONTROL', 'Alt' => 'MENU', 'Meta' => 'WIN', 'Super' => 'APPS', ); my $xk_mods = join('|', keys(%xk_mod_2_vk)); print q@/* Generated by xk.pl from $xk $vk : DO NOT MODIFY. */ #include "xk.h" #include "vk.h" int glwin_XK_to_VK(int xk) { int vk = xk; switch ( xk ) { @; for my $xk ( @xk ) { my $vk; my $xk_ = $xk; $xk_ =~ s/_//g; my $xk_uc = uc($xk_); my $xk_lc = lc($xk_); if ( $vk = $xk_2_vk{$xk} ) { xk_2_vk($xk, $vk) } elsif ( ($xk =~ /^KP_(.*)$/) && ($vk = $xk_2_vk{$1}) ) { xk_2_vk($xk, $vk) } elsif ( $vk = $vk{$xk_} ) { xk_2_vk($xk, "VK_$xk_") } elsif ( $vk = $vk{$xk_uc} ) { xk_2_vk($xk, "VK_$xk_uc") } elsif ( $xk_ =~ /^[0-9A-Za-z]$/ ) { xk_2_vk($xk, "'$xk'") } elsif ( ($xk =~ /^KP_(.*)$/) && ($vk{$vk = uc($1)} || $vk{$vk = "NUMPAD$1"}) ) { xk_2_vk($xk, "VK_$vk"); } elsif ( ($xk =~ /^($xk_mods)(_([LR]))?$/o) && ($vk{$vk = $3 . $xk_mod_2_vk{$1}} || $vk{$vk = $xk_mod_2_vk{$1}}) ) { xk_2_vk($xk, "VK_$vk"); } elsif ( ($xk =~ /^(left|right|down|up)arrow$/) && ($vk{$vk = uc($1)}) ) { xk_2_vk($xk, "VK_$vk"); } else { xk_2_vk($xk, "UNKNOWN", 1); } } print " } return vk; } "; 1; gmv0.9/src/glwin/.#glwin.swig.1.50100744000175200017560000000315707267634526016734 0ustar stephensstepheng#ifndef _glwin_glwin_swig #define _glwin_glwin_swig #ifdef SWIG %module glwin %{ #include "glwin/glwin.swig" %} #endif struct glwin_desc; typedef struct glwin_desc glwin_desc; struct glwin_window; typedef struct glwin_window glwin_window; /**********************************************************/ extern void glwin_close(glwin_window *win); extern void glwin_destroy(glwin_window *win); extern void glwin_show(glwin_window *win); extern void glwin_update(glwin_window *win); extern void glwin_redraw(glwin_window *win); extern void glwin_idle(glwin_window *win, int enable); extern void glwin_quit(glwin_window *win, int exitcode); /**********************************************************/ extern int glwin_key_down(glwin_window *win, int key); extern int glwin_nkeys_down(glwin_window *win); extern int glwin_nkeys_down_prev(glwin_window *win); extern int glwin_button_down(glwin_window *win, int button); /* 0=LEFT, 1=RIGHT, 2=MIDDLE */ extern int glwin_button_count(glwin_window *win, int button); /* 0=LEFT, 1=RIGHT, 2=MIDDLE */ extern int glwin_nbuttons_down(glwin_window *win); extern int glwin_nbuttons_down_prev(glwin_window *win); /**********************************************************/ extern int glwin_process_key_press(glwin_window *win, int key); extern int glwin_process_key(glwin_window *win, int key, int state); extern int glwin_process_keysym(glwin_window *win, int key, int state); extern int glwin_process_button(glwin_window *win, int button, int state, int x, int y); extern int glwin_process_motion(glwin_window *win, int x, int y); /**********************************************************/ #endif gmv0.9/src/util/0040755000175200017560000000000007306140400014100 5ustar stephensstephenggmv0.9/src/util/CVS/0040755000175200017560000000000007270653774014562 5ustar stephensstephenggmv0.9/src/util/CVS/Root0100644000175200017560000000003407236675453015422 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/util/CVS/Repository0100644000175200017560000000002207236675453016653 0ustar stephensstephenghome/ion/src/util gmv0.9/src/util/CVS/Entries0100644000175200017560000000341607270653774016117 0ustar stephensstepheng/ConfigInfo.c/1.9/Tue Jan 4 06:22:24 2000// /ConfigInfo.h/1.4/Mon Apr 5 19:04:21 1999// /Makefile/1.15/Tue Jan 4 06:22:24 2000// /Makefile.use/1.2/Fri Feb 19 09:26:46 1999// /PKG/1.7/Fri May 7 12:30:05 1999// /bitset.h/1.1/Fri Jan 7 09:39:13 2000// /charset.c/1.2/Thu Sep 30 18:53:44 1999// /charset.h/1.1/Thu Apr 22 05:45:47 1999// /enum.c/1.8/Thu Jan 13 14:03:55 2000// /enum.h/1.7/Thu Jan 13 13:58:11 2000// /errlist.h/1.5/Thu Jan 13 11:22:31 2000// /errlist.pl/1.6/Tue Oct 26 23:41:37 1999// /file.c/1.4/Thu Feb 1 06:22:18 2001// /file.h/1.4/Thu Feb 1 06:22:18 2001// /host.c/1.2/Tue Jan 4 06:22:24 2000// /host.h/1.3/Tue Jan 4 06:34:47 2000// /lockfile.c/1.6/Tue Jan 4 06:22:24 2000// /lockfile.h/1.3/Wed Jun 9 05:43:23 1999// /lockfile_main.c/1.1/Wed Jun 9 05:43:31 1999// /mem.c/1.2/Fri Feb 19 09:26:47 1999// /mem.h/1.5/Mon Jun 28 14:04:14 1999// /midi.h/1.1/Wed Oct 13 17:30:44 1999// /outbuf.c/1.3/Tue Jan 4 06:22:24 2000// /outbuf.h/1.2/Thu Sep 30 18:49:28 1999// /path.c/1.5/Mon Jun 28 14:04:14 1999// /path.h/1.2/Fri Feb 19 09:26:47 1999// /port.c/1.2/Tue Jan 4 06:22:24 2000// /port.h/1.3/Tue Jan 4 06:34:47 2000// /prime.c/1.6/Thu Jan 13 13:29:50 2000// /prime.h/1.3/Thu Jan 13 13:25:04 2000// /rc4.c/1.4/Wed May 10 03:55:22 2000// /rc4.h/1.4/Wed May 10 03:55:22 2000// /setenv.c/1.3/Mon Apr 5 19:04:22 1999// /setenv.h/1.3/Mon Apr 5 19:04:22 1999// /sig.c/1.2/Tue Jan 4 05:53:51 2000// /sig.h/1.2/Tue Jan 4 05:53:51 2000// /sigs.pl/1.4/Tue Jan 4 05:53:51 2000// /ssprintf.c/1.2/Tue Jan 4 06:22:24 2000// /ssprintf.h/1.1/Thu Apr 22 05:07:25 1999// D/test//// /refcntptr.cc/1.1/Thu Apr 5 20:23:33 2001// /memcpy.h/1.1/Fri Apr 6 03:05:28 2001// /refcntptr.hh/1.3/Thu Apr 19 18:54:30 2001// /nurbs.c/1.1/Sun Apr 22 21:53:39 2001// /nurbs.h/1.1/Sun Apr 22 21:53:39 2001// gmv0.9/src/util/ConfigInfo.c0100644000175200017560000005104607034310640016273 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_util_ConfigInfo_c__ #define __rcs_id_util_ConfigInfo_c__ static const char __rcs_id_util_ConfigInfo_c[] = "$Id: ConfigInfo.c,v 1.9 2000/01/04 06:22:24 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include "ConfigInfo.h" #include #include #include /* isspace() */ #include #include #include #include #ifdef __NeXT__ #include /* open, read, close */ #endif #include #include #include #ifdef MEMDEBUG #include "memdebug/memdebug.h" #endif ConfigInfoError ConfigInfoError_OK = "OK", ConfigInfoError_CannotStat = "Cannot stat file", ConfigInfoError_CannotAlloc = "Cannot allocate memory", ConfigInfoError_CannotOpen = "Cannot open file", ConfigInfoError_CannotRead = "Cannot read file", ConfigInfoError_; ConfigInfoError ConfigInfo_dump(ConfigInfo *c, FILE *fp, ConfigInfo *style, int depth) /* Dumps the config ^c^ to ^fp^, using ^style^'s lexical controls. Recurses to ^depth^, or to bottom of config chain if ^depth^ < 0. */ { if ( ! style ) { static ConfigInfo defaultStyle; defaultStyle.fieldSep = "\t"; defaultStyle.recordSep = "\n"; defaultStyle.commentBegin = "#"; defaultStyle.commentEnd = defaultStyle.recordSep; style = &defaultStyle; } while ( c ) { int i; fprintf(fp, "%sfrom %s%s", style->commentBegin ? style->commentBegin : "", c->from_where ? c->from_where : "", style->commentEnd ? style->commentEnd : ""); for ( i = 0; i < c->nconfigs; i ++ ) { int j; for ( j = 0; j < c->nfields[i]; ) { fwrite(c->configs[i][j], 1, strlen(c->configs[i][j]), fp); if ( ++ j < c->nfields[i] ) { fwrite(style->fieldSep, 1, strlen(style->fieldSep), fp); } } fwrite(style->recordSep, 1, strlen(style->recordSep), fp); } if ( depth > 0 ) { depth --; } if ( depth == 0 ) break; c = c->chain; } return ConfigInfoError_OK; } ConfigInfoError ConfigInfo_destroy(ConfigInfo *c) /* Destroys storage assocated with ^c^. */ { if ( ! c ) return ConfigInfoError_OK; if ( c->from_where ) { free(c->from_where); c->from_where = 0; } if ( c->configs ) { int i; for ( i = 0; i < c->nconfigs; i ++ ) { int j; /* Free externally allocated config data */ for ( j = 0; j < c->nfields[i]; j ++ ) { #if 1 if ( ! (c->buf <= c->configs[i][j] && c->configs[i][j] < c->buf + c->bufsize) ) { fprintf(stderr, "ConfigInfo_destroy(%p): freeing external string at [%d][%d] '%s'\n", c, i, j, c->configs[i][j]); free(c->configs[i][j]); } #endif c->configs[i][j] = 0; } free(c->configs[i]); c->configs[i] = 0; c->nfields[i] = 0; } free(c->configs); c->configs = 0; } c->nconfigs = 0; if ( c->nfields ) { free(c->nfields); c->nfields = 0; } if ( c->buf ) { memset(c->buf, 0, c->bufsize); free(c->buf); c->buf = 0; } c->bufsize = 0; c->instance_id = 0; return ConfigInfoError_OK; } ConfigInfoError ConfigInfo_free(ConfigInfo *c, int free_chain) /* Destroy storage assocated with ^c^ and frees ^c^. Recurses on all chains if ^free_chain^ is non-zero. */ { while ( c ) { ConfigInfo *chain; chain = c->chain; ConfigInfo_destroy(c); memset(c, 0, sizeof(*c)); free(c); if ( ! free_chain ) { break; } c = chain; } return ConfigInfoError_OK; } static int strprefix(const char *str, const char *pre) { if ( ! pre ) return 0; while ( *pre ) { if ( *str != *pre ) return 0; str ++; pre ++; } return 1; } ConfigInfoError ConfigInfo_initFromBuffer(ConfigInfo *c, char *buf, size_t bufsize) { ConfigInfoError result = ConfigInfoError_OK; int commentEndIsRecordSep; int i, j; char *s, *next_line; char *bufend; #define return(X) do { result = (X); goto rtn; } while(0) c->buf = buf; c->bufsize = bufsize != (size_t) -1 ? bufsize : strlen(buf) + 1; c->chain = 0; bufend = c->buf + c->bufsize; if ( ! c->recordSep ) { c->recordSep = "\n"; } if ( ! c->fieldSep ) { c->fieldSep = "\t"; } if ( ! c->commentEnd ) { c->commentEnd = c->recordSep; } commentEndIsRecordSep = ! strcmp(c->commentEnd, c->recordSep); /* Count the number of lines so we can guesstimate the length of c->configs */ for ( s = c->buf, i = 0; *s; ) { if ( strprefix(s, c->recordSep) ) { s += strlen(c->recordSep); i ++; } else { s ++; } } /* Allocate the config buffer */ if ( (c->configs = calloc(sizeof(c->configs[0]), (i + 1))) == 0 ) { return ConfigInfoError_CannotAlloc; } /* Allocate the nfields buffer */ if ( (c->nfields = calloc(sizeof(c->nfields[0]), (i + 1))) == 0 ) { return ConfigInfoError_CannotAlloc; } /* Skip header records */ for ( s = c->buf, i = c->skipHeaderRecords; i && s < bufend; ) { if ( strprefix(s, c->recordSep) ) { s += strlen(c->recordSep); i --; } else { s ++; } } /* Begin parsing each config */ for ( i = 0; *s && s < bufend; s = next_line ) { char *t; /* Skip leading whitespace */ if ( c->skipLeadingWhiteSpace ) { while ( *s && isspace(*s) ) s ++; } /* Find next_line */ next_line = s; while ( *next_line && next_line < bufend ) { if ( strprefix(next_line, c->recordSep) ) { next_line += strlen(c->recordSep); break; } next_line ++; } /* Skip trailing whitespace */ if ( c->skipTrailingWhiteSpace ) { t = next_line; t -= strlen(c->recordSep); while ( t > s ) { if ( isspace(*t) ) { char *dst = t; const char *src = c->recordSep; while ( *src ) *(dst ++) = *(src ++); t --; } else { break; } } } /* Skip comment only lines */ #define SKIP_COMMENTS(s,E) if ( strprefix(s, c->commentBegin) ) { (void) (E); s += strlen(c->commentBegin); while ( *s && ! strprefix(s, c->commentEnd) ) s ++; if ( *s && ! commentEndIsRecordSep ) { s += strlen(c->commentEnd); } } SKIP_COMMENTS(s,0) /* Skip blank lines */ if ( c->skipBlankRecords && strprefix(s, c->recordSep) ) { s += strlen(c->recordSep); continue; } /* Count the number of field separators to g */ for ( t = s, j = 1; *t && ! strprefix(t, c->recordSep); ) { SKIP_COMMENTS(t,0) else if ( strprefix(t, c->fieldSep) ) { t += strlen(c->fieldSep); j ++; } else { t ++; } } if ( c->maxFields && j > c->maxFields ) { j = c->maxFields; } c->nfields[i] = j; /* Allocate an array for the fields */ if ( (c->configs[i] = calloc(sizeof(c->configs[0][0]), (j + 1))) == 0 ) { return(ConfigInfoError_CannotAlloc); } /* Parse out the fields */ for ( t = s, j = 1, c->configs[i][0] = t; *t && ! strprefix(t, c->recordSep) ; ) { if ( j == c->nfields[i] ) { while ( *t && ! strprefix(t, c->recordSep) ) { SKIP_COMMENTS(t,*t = '\0') else t ++; } break; } SKIP_COMMENTS(t,*t = '\0') if ( strprefix(t, c->fieldSep) ) { *t = '\0'; t += strlen(c->fieldSep); c->configs[i][j ++] = t; } else { t ++; } } if ( strprefix(t, c->recordSep) ) { *t = '\0'; t += strlen(c->recordSep); } s = t; c->configs[i][j] = 0; c->nfields[i] = j; i ++; } c->nconfigs = i; if ( c->from_where ) { c->from_where = strcpy(ConfigInfo_MALLOC(strlen(c->from_where) + 1), c->from_where); } { static int instance_id = 0; c->instance_id = ++ instance_id; } /* ConfigInfo_dump(c, stderr, 0, 0); */ rtn: if ( result != ConfigInfoError_OK ) { ConfigInfo_destroy(c); } #undef return return result; } ConfigInfoError ConfigInfo_initFromFile(ConfigInfo *c, const char *file) { ConfigInfoError result = ConfigInfoError_OK; int fd = -1; char *buf; size_t bufsize; #define return(X) do { result = (X); goto rtn; } while(0) /* Determine the size of the parse buffer */ { struct stat s; if ( stat(file, &s) == -1 ) { return(ConfigInfoError_CannotStat); } bufsize = s.st_size; } /* Allocate the parse buffer */ if ( (buf = malloc(sizeof(buf[0]) * (bufsize + 1))) == 0 ) { return(ConfigInfoError_CannotAlloc); } /* Open the file and read into the parse buffer */ if ( (fd = open(file, O_RDONLY)) >= 0 ) { size_t r; size_t bufi = 0; size_t bufs = bufsize; bufsize = 0; while ( (r = read(fd, buf + bufi, bufs)) > 0 ) { bufi += r; bufs -= r; bufsize += r; } if ( bufsize > 0 ) { buf[bufsize] = '\0'; } else { return(ConfigInfoError_CannotRead); } close(fd); fd = -1; } else { return(ConfigInfoError_CannotOpen); } c->from_where = (char*) file; result = ConfigInfo_initFromBuffer(c, buf, bufsize + 1); rtn: if ( result != ConfigInfoError_OK ) { if ( fd != -1 ) close(fd); } #undef return return result; } ConfigInfoError ConfigInfo_initFromValueArray(ConfigInfo *c, const char **values) { char *buf; size_t bufsize; char *s, *t; char **v; bufsize = 0; v = (char **) values; while ( (t = *(v ++)) ) { bufsize += strlen(t) + 3; while ( (t = *(v ++)) ) { bufsize += strlen(t) + 3; } } c->fieldSep = "\02"; c->recordSep = "\01"; c->commentBegin = c->commentEnd = 0; c->maxFields = 0; if ( (buf = malloc(sizeof(buf[0]) * (bufsize + 1))) == 0 ) { return(ConfigInfoError_CannotAlloc); } s = buf; v = (char **) values; while ( (t = *(v ++)) ) { assert(s < buf + bufsize); strcpy(s, t); while ( (t = *(v ++)) ) { assert(s < buf + bufsize); strcat(s, c->fieldSep); strcat(s, t); s = strchr(s, '\0'); } strcat(s, c->recordSep); s = strchr(s, '\0'); } assert(s < buf + bufsize); *s = '\0'; if ( ! c->from_where ) c->from_where = "values"; return ConfigInfo_initFromBuffer(c, buf, -1); } ConfigInfoError ConfigInfo_initFromValues(ConfigInfo *c, ...) { const char *t; va_list vap; int nvalues = 0; const char **values = 0; ConfigInfoError error = ConfigInfoError_OK; va_start(vap, c); while ( (t = va_arg(vap, char*)) ) { nvalues ++; while ( (t = va_arg(vap, char*)) ) { nvalues ++; } nvalues ++; /* null term */ } va_end(vap); nvalues ++; /* null term */ values = malloc(sizeof(values[0]) * nvalues); va_start(vap, c); nvalues = 0; while ( (t = va_arg(vap, char*)) ) { values[nvalues ++] = t; while ( (t = va_arg(vap, char*)) ) { values[nvalues ++] = t; } values[nvalues ++] = t; } va_end(vap); values[nvalues ++] = t; error = ConfigInfo_initFromValueArray(c, values); free(values); return error; } ConfigInfoError ConfigInfo_initFromEnvironment(ConfigInfo *c, const char **env) { ConfigInfoError error = ConfigInfoError_OK; char *buf; size_t bufsize; int i; char *s; bufsize = 1; for ( i = 0; env[i]; i ++ ) { bufsize += strlen(env[i]) + 1; } if ( (buf = malloc(sizeof(buf[0]) * (bufsize + 1))) == 0 ) { return(ConfigInfoError_CannotAlloc); } c->commentBegin = c->commentEnd = 0; c->fieldSep = "="; c->recordSep = "\01"; c->maxFields = 2; for ( s = buf, i = 0; env[i]; i ++ ) { assert(s < buf + bufsize); strcpy(s, env[i]); strcat(s, c->recordSep); s = strchr(s, '\0'); } assert(s < buf + bufsize); assert(s == buf + bufsize - 1); c->from_where = "environment"; error = ConfigInfo_initFromBuffer(c, buf, bufsize); return error; } const char *ConfigInfo_ARGV0 = "*argv0*", *ConfigInfo_ARGV = "*argv*", *ConfigInfo_ARGV0_BASENAME = "*argv0-basename*"; ConfigInfoError ConfigInfo_initFromArgv(ConfigInfo *c, int argc, const char **argv, const char *opts) { char *buf; size_t bufsize; int i; char *s; const char *argv0_basename; if ( ! opts ) opts = ""; argv0_basename = (argv0_basename = strrchr(argv[0], '/')) ? argv0_basename + 1 : argv[0]; bufsize = 0; bufsize += strlen(ConfigInfo_ARGV) + 3; bufsize += strlen(ConfigInfo_ARGV0) + strlen(argv[0]) + 3; bufsize += strlen(ConfigInfo_ARGV0_BASENAME) + strlen(argv0_basename) + 3; for ( i = 0; i < argc && argv[i]; i ++ ) { bufsize += (strlen(argv[i]) + 3) * 2; } if ( (buf = malloc(sizeof(buf[0]) * (bufsize + 1))) == 0 ) { return(ConfigInfoError_CannotAlloc); } c->fieldSep = "\02"; c->recordSep = "\01"; c->commentBegin = c->commentEnd = 0; c->maxFields = 0; s = buf; strcpy(s, ConfigInfo_ARGV0); strcat(s, c->fieldSep); strcat(s, argv[0]); strcat(s, c->recordSep); s = strchr(s, '\0'); strcpy(s, ConfigInfo_ARGV0_BASENAME); strcat(s, c->fieldSep); strcat(s, argv0_basename); strcat(s, c->recordSep); s = strchr(s, '\0'); for ( i = 1; i < argc && argv[i]; i ++ ) { const char *arg = argv[i]; const char *t; assert(s < buf + bufsize); /* Does the arg start with '-'? */ if ( *arg != '-' ) break; /* It might be a switch */ /* Skip extra '-' */ arg ++; if ( *arg == '-' ) arg ++; /* Not a switch */ if ( ! *arg ) break; /* Look for "--[" ... "]" */ if ( arg[0] == '[' && arg[1] == '\0' ) { i ++; while ( i < argc && argv[i] && strcmp(argv[i], "]") != 0 ) { strcat(s, argv[i]); if ( ++ i < argc ) { strcat(s, c->fieldSep); } } } else /* Look for "--?option=value" */ if ( (t = strchr(arg, '=')) ) { strncpy(s, arg, t - arg); s += t - arg; strcpy(s, c->fieldSep); strcat(s, t + 1); } else { strcpy(s, arg); strcat(s, c->fieldSep); /* Is a a single op char? */ if ( arg[1] == '\0' && strchr(opts, arg[0]) ) { strcat(s, "1"); } else { /* Must be "--?option" "value" */ i ++; if ( i < argc && argv[i] ) { strcat(s, argv[i]); } } } strcat(s, c->recordSep); s = strchr(s, '\0'); } /* Store remaining args in *argv* */ strcpy(s, ConfigInfo_ARGV); s = strchr(s, '\0'); for ( ; i < argc && argv[i]; i ++ ) { assert(s < buf + bufsize); strcpy(s, c->fieldSep); strcat(s, argv[i]); s = strchr(s, '\0'); } strcpy(s, c->recordSep); s = strchr(s, '\0'); assert(s < buf + bufsize); c->from_where = "argv"; return ConfigInfo_initFromBuffer(c, buf, -1); } int ConfigInfo_getRowIndexForKey(ConfigInfo *c, int keyfield, const char *key, ConfigInfo **fc) { if ( fc ) { *fc = 0; } if ( key ) while ( c ) { int i; for ( i = 0; i < c->nconfigs; i ++ ) { if ( keyfield < c->nfields[i] && strcmp(c->configs[i][keyfield], key) == 0 ) { if ( fc ) *fc = c; return i; } } c = c->chain; } return -1; } const char **ConfigInfo_getRowForKey(ConfigInfo *c, int keyfield, const char *key) { ConfigInfo *fc = 0; int i = ConfigInfo_getRowIndexForKey(c, keyfield, key, &fc); if ( i >= 0 && fc ) { return (const char **) fc->configs[i]; } return 0; } const char *ConfigInfo_getValue1(ConfigInfo *c, const char *key) { if ( key && c ) { int i; int keyfield = 0; for ( i = 0; i < c->nconfigs; i ++ ) { if ( keyfield < c->nfields[i] && strcmp(c->configs[i][keyfield], key) == 0 ) { return c->configs[i][1]; } } } return 0; } const char *ConfigInfo_getValue(ConfigInfo *c, const char *key) { const char **row; return (const char *) ((row = ConfigInfo_getRowForKey(c, 0, key)) ? row[1] : 0); } const char *ConfigInfo_getValueOr(ConfigInfo *c, const char *key, const char *alt) { const char *value = ConfigInfo_getValue(c, key); return value ? value : alt; } int ConfigInfo_strToIntValue(const char *value) { if ( value ) { int c; while ( *value && isspace(*value) ) value ++; c = tolower(value[0]); if ( c == 'y' || c == 't' ) { return -1; } else if ( c == 'n' || c == 'f' ) { return 0; } else if ( *value ) { return atoi(value); } } return 0; } int ConfigInfo_strToBooleanValue(const char *str) { return ConfigInfo_strToIntValue(str); } int ConfigInfo_getIntValue(ConfigInfo *c, const char *key) { return ConfigInfo_strToIntValue(ConfigInfo_getValue(c, key)); } double ConfigInfo_getDoubleValue(ConfigInfo *c, const char *key) { const char *value; return (value = ConfigInfo_getValue(c, key)) ? atof(value) : 0; } int ConfigInfo_getBooleanValue(ConfigInfo *c, const char *key) { return ConfigInfo_strToBooleanValue(ConfigInfo_getValue(c, key)); } /*********************************************************************/ ConfigInfoError ConfigInfo_initFromDefaults(ConfigInfo *options, ConfigInfo *defaults, int argc, char **argv, char **env, ConfigInfo **configp) { ConfigInfo *config = 0; ConfigInfo *defaultConfig = 0, *envConfig = 0, *argvConfig = 0, *fileConfig = 0; static char error_buf[1024]; ConfigInfoError error = ConfigInfoError_OK; const char *opts = ConfigInfo_getValue(options, "opts"); *configp = 0; /* Config search should be Argv -> Configfile -> Env -> Defaults */ /* Defaults */ defaultConfig = defaults; /* Environment */ envConfig = ConfigInfo_MALLOC(sizeof(*envConfig)); memset(envConfig, 0, sizeof(*envConfig)); error = ConfigInfo_initFromEnvironment(envConfig, (const char **) env); if ( error != ConfigInfoError_OK ) { goto rtn; } envConfig->chain = defaults; config = envConfig; /* Config chain is now: env, defaults */ /* Argv */ argvConfig = ConfigInfo_MALLOC(sizeof(*argvConfig)); memset(argvConfig, 0, sizeof(*argvConfig)); error = ConfigInfo_initFromArgv(argvConfig, argc, (const char **) argv, opts); if ( error != ConfigInfoError_OK ) { goto rtn; } /* Config chain: argv, environment, defaults */ argvConfig->chain = envConfig; config = argvConfig; /* config file */ { const char *configfile; const char *basename; const char *template; char filename[1024]; /* Check for option configfile name override */ configfile = ConfigInfo_getValue(config, "configfile"); /* fprintf(stderr, "configfile = '%s'\n", configfile); */ if ( ! (configfile && *configfile) ) { /* Try to get the name of a config file */ basename = ConfigInfo_getValueOr(options, "configfile/basename", ConfigInfo_ARGV0_BASENAME); basename = ConfigInfo_getValueOr(config, basename, ""); template = ConfigInfo_getValueOr(options, "configfile/template", "configfile"); template = ConfigInfo_getValueOr(config, template, ""); sprintf(filename, template, basename); configfile = filename; } if ( *configfile ) { if ( ConfigInfo_getIntValue(config, "debug") ) { fprintf(stderr, "Loading config... \"%s\" ", configfile); fflush(stderr); } /* Allocate */ fileConfig = ConfigInfo_MALLOC(sizeof(*fileConfig)); memset(fileConfig, 0, sizeof(*fileConfig)); /* Fill in scanning options and defaults */ fileConfig->recordSep = ConfigInfo_getValueOr(options, "configfile/recordSep", "\n"); fileConfig->fieldSep = ConfigInfo_getValueOr(options, "configfile/fieldSep", "\t"); fileConfig->commentBegin = ConfigInfo_getValueOr(options, "configfile/commentBegin", "#"); fileConfig->commentEnd = ConfigInfo_getValueOr(options, "configfile/commentEnd", fileConfig->recordSep); fileConfig->skipLeadingWhiteSpace = ConfigInfo_strToBooleanValue(ConfigInfo_getValueOr(options, "configfile/skipLeadingWhiteSpace", "1")); fileConfig->skipTrailingWhiteSpace = ConfigInfo_strToBooleanValue(ConfigInfo_getValueOr(options, "configfile/skipTrailingWhiteSpace", "1")); fileConfig->skipBlankRecords = ConfigInfo_strToBooleanValue(ConfigInfo_getValueOr(options, "configfile/skipBlankRecords", "1")); fileConfig->maxFields = ConfigInfo_strToIntValue(ConfigInfo_getValueOr(options, "configfile/maxFields", "0")); if ( (error = ConfigInfo_initFromFile(fileConfig, configfile)) != ConfigInfoError_OK ) { sprintf(error_buf, "%s: Cannot read configfile \"%s\"\n", error, configfile); error = error_buf; goto rtn; } fileConfig->chain = envConfig; argvConfig->chain = fileConfig; config = argvConfig; /* Config chain is now: argv, configfile, environment, defaults */ if ( ConfigInfo_getIntValue(config, "debug") ) { fprintf(stderr, "done.\n"); fflush(stderr); } } } rtn: if ( error != ConfigInfoError_OK ) { ConfigInfo_free(argvConfig, 0); ConfigInfo_free(envConfig, 0); ConfigInfo_free(defaultConfig, 0); ConfigInfo_free(fileConfig, 0); config = 0; } *configp = config; return error; } /* EOF */ gmv0.9/src/util/ConfigInfo.h0100644000175200017560000001133206702204465016302 0ustar stephensstepheng#ifndef _ConfigInfo_h #define _ConfigInfo_h #ifndef __rcs_id__ #ifndef __rcs_id_util_ConfigInfo_h__ #define __rcs_id_util_ConfigInfo_h__ static const char __rcs_id_util_ConfigInfo_h[] = "$Id: ConfigInfo.h,v 1.4 1999/04/05 19:04:21 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include /* size_t */ #include /* FILE */ #define ConfigInfo_MALLOC(X) malloc(X) #define ConfigInfo_REALLOC(X,Y) realloc(X,Y) #define ConfigInfo_FREE(X) free(X) typedef struct ConfigInfo { /* Contains the state for a ConfigInfo node. */ /*

Configuration Data
*/ char ***configs; /* Configurations are records containing any number of fields; generally configs[i][0] is the key for finding a configuration value. */ int *nfields; /* The number of fields for a configs[i]. */ int nconfigs; /* The number of rows in configs */ void **user; /* User-row data */ /*

Memory
*/ char *buf; /* Buffer allocated for initialization; all config values are within this buffer. */ size_t bufsize; /* The size of buf. */ /*

Lexical Controls
*/ const char *commentBegin; /* The string that begins a comment. */ const char *commentEnd; /* The string that ends a comment. */ const char *fieldSep; /* The string that delimits a field. */ const char *recordSep; /* The string that delimits a record. */ int skipLeadingWhiteSpace; /* If !0, skip any leading whitespace chars. */ int skipTrailingWhiteSpace; /* If !0, skip any leading whitespace chars. */ int skipBlankRecords; /* If !0, skip any records with no fields. */ int skipHeaderRecords; /* If !0, skip this number of records at the beginning. */ int maxFields; /* Specifies the max number of fields. */ /*

Search Chain
*/ struct ConfigInfo *chain; /* The next node to search if a search failed. ConfigInfo nodes can be chained to allow different configuration sources, like command line options, environment variables, default configurations and configuration files seem like one configuration. */ /*

Initialization
*/ char *from_where; /* Where is this ConfigInfo from? */ int instance_id; /* Each ConfigInfo struct gets a unique id when initialized. Use this to determine if a configuration has been reinitialized. */ } ConfigInfo; /* */ typedef const char *ConfigInfoError; extern ConfigInfoError ConfigInfoError_OK, ConfigInfoError_CannotStat, ConfigInfoError_CannotAlloc, ConfigInfoError_CannotOpen, ConfigInfoError_CannotRead; #if 0 ConfigInfoError ConfigInfo_setUserData(ConfigInfo *c, int row, void *ptr); void *ConfigInfo_userData(ConfigInfo *c, int row, void *ptr); #endif ConfigInfoError ConfigInfo_dump(ConfigInfo *c, FILE *fp, ConfigInfo *style, int depth); ConfigInfoError ConfigInfo_destroy(ConfigInfo *c); ConfigInfoError ConfigInfo_free(ConfigInfo *c, int free_chain); ConfigInfoError ConfigInfo_initFromBuffer(ConfigInfo *c, char *buf, size_t bufsize); ConfigInfoError ConfigInfo_initFromValueArray(ConfigInfo *c, const char **values); ConfigInfoError ConfigInfo_initFromValues(ConfigInfo *c, ...); ConfigInfoError ConfigInfo_initFromFile(ConfigInfo *c, const char *file); ConfigInfoError ConfigInfo_initFromEnvironment(ConfigInfo *c, const char **env); extern const char *ConfigInfo_ARGV0, *ConfigInfo_ARGV; ConfigInfoError ConfigInfo_initFromArgv(ConfigInfo *c, int argc, const char **argv, const char *opts); int ConfigInfo_getRowIndexForKey(ConfigInfo *c, int keyfield, const char *key, ConfigInfo **cfound); const char **ConfigInfo_getRowForKey(ConfigInfo *c, int keyfield, const char *key); const char *ConfigInfo_getValue1(ConfigInfo *c, const char *key); const char *ConfigInfo_getValue(ConfigInfo *c, const char *key); /* same as ConfigInfo_getRowForKey(c, 0, key)[1] */ const char *ConfigInfo_getValueOr(ConfigInfo *c, const char *key, const char *or); /* same as ConfigInfo_getRowForKey(c, 0, key)[1] */ ConfigInfoError ConfigInfo_initFromDefaults(ConfigInfo *options, ConfigInfo *defaults, int argc, char **argv, char **env, ConfigInfo **configp); int ConfigInfo_strToIntValue(const char *str); #define ConfigInfo_strToInt ConfigInfo_strToIntValue int ConfigInfo_strToBooleanValue(const char *str); #define ConfigInfo_strToBoolean ConfigInfo_strToBooleanValue int ConfigInfo_getIntValue(ConfigInfo *c, const char *key); double ConfigInfo_getDoubleValue(ConfigInfo *c, const char *key); int ConfigInfo_getBooleanValue(ConfigInfo *c, const char *key); #endif gmv0.9/src/util/Makefile0100644000175200017560000000207107034310640015540 0ustar stephensstepheng# $Id: Makefile,v 1.15 2000/01/04 06:22:24 stephensk Exp $ INCLS += .. H_FILES = \ path.h \ ConfigInfo.h \ enum.h \ setenv.h \ sig.h \ signals.h \ errlist.h \ prime.h \ lockfile.h \ rc4.h \ ssprintf.h \ outbuf.h \ file.h \ host.h \ port.h C_FILES = \ path.c \ ConfigInfo.c \ enum.c \ setenv.c \ sig.c \ errlist.c \ prime.c \ lockfile.c \ rc4.c \ ssprintf.c \ outbuf.c \ file.c \ host.c \ port.c ################################################################# include $(MAKS)/pre.mak ################################################################# # Create LIB_NAME:=ionutil include $(MAKS)/lib.mak ################################################################# # Basic include $(MAKS)/basic.mak ################################################################# signals.h : sigs.pl perl sigs.pl < /usr/include/sys/signal.h > $@ ################################################################# errlist.c : errlist.pl perl errlist.pl < /usr/include/sys/errno.h > $@ ################################################################# gmv0.9/src/util/Makefile.use0100644000175200017560000000012606663227126016347 0ustar stephensstepheng# $Id: Makefile.use,v 1.2 1999/02/19 09:26:46 stephensk Exp $ LIBS:=ionutil $(LIBS) gmv0.9/src/util/PKG0100644000175200017560000000037106714556315014464 0ustar stephensstephengNAME=util VERSION=0.4 RCS_ID="$Id: PKG,v 1.7 1999/05/07 12:30:05 stephensk Exp $" DESC="A C library with path, mem, and other functions." CHANGES_RELEASES="0.4 0.3 0.2 0.1" CATEGORY="Development Tools" REQUIRES_PKGS="../maks" REQUIRES_OTHERS="perl" gmv0.9/src/util/bitset.h0100644000175200017560000000131007035332101015533 0ustar stephensstepheng#ifndef BITSET_H #define BITSET_H /* $Id: bitset.h,v 1.1 2000/01/07 09:39:13 stephensk Exp $ */ /* Bitset ops. */ typedef unsigned int bitset_t; #ifndef bitset_BITS_PER_BYTE #define bitset_BITS_PER_BYTE 8 #endif #define bitset_ELEM_BSIZE (sizeof(bitset_t) * bitset_BITS_PER_BYTE) #define bitset_ELEM_LEN(S) (S / bitset_ELEM_BSIZE) #define bitset_MASK (bitset_ELEM_BSIZE-1) #define bitset_SHIFT (sizeof(bitset_t) == 4 ? 5 : 4) #define bitset_BIT(i) (1<<((i)&bitset_MASK)) #define bitset_OFF(i) ((i)>>bitset_SHIFT) #define bitset_get(bs, i) (bs[bitset_OFF(i)] & bitset_BIT(i)) #define bitset_set(bs, i) (bs[bitset_OFF(i)] |= bitset_BIT(i)) #define bitset_clr(bs, i) (bs[bitset_OFF(i)] &= ~bitset_BIT(i)) #endif gmv0.9/src/util/charset.c0100644000175200017560000001073306774730670015724 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_misc_charset_c__ #define __rcs_id_misc_charset_c__ static const char __rcs_id_misc_charset_c[] = "$Id: charset.c,v 1.2 1999/09/30 18:53:44 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include #include /* strchr() */ #include /* isdigit(), isxdigit(), isprint(), iscntrl() */ #include "charset.h" #define PUTC(x) (*(s ++) = (x)) #define GETC() (*s ? *(s ++) : -1) #define PEEKC() (*s ? *s : -1) #define UNGETC(c) (*(-- s)) #define MATCHC(X) ({ if ( PEEKC() != (X) ) goto SYNTAX_ERROR; GETC(); }) #define PEEKCMATCHC(X) (PEEKC() == (X) ? (GETC(), 1) : 0) static const char escape_chars[] = "n\nr\rt\tf\fb\ba\av\ve\033"; int getc_escaped(char **_s) { unsigned char *s = (unsigned char *)*_s; int c; c = GETC(); if ( c == '\\' ) { const char *r; c = GETC(); if ( (r = strchr(escape_chars, c)) && ((r - escape_chars) % 2 == 0) ) { c = r[1]; } else if ( '0' <= c && c <= '7' ) { /* \012 -> \n */ int n = c; int ndigits = 0; c = 0; do { c <<= 3; c += n - '0'; ndigits ++; } while ( ndigits < 3 && (n = PEEKC(), '0' <= n && n <= '7' && GETC()) ); } else if ( tolower(c) == 'x' ) { /* \xff -> 0xff */ int n; int ndigits = 0; c = 0; while ( ndigits < 2 && (n = PEEKC(), isxdigit(n) && GETC()) ) { c <<= 4; c += isdigit(n) ? n - '0' : 'a' <= n && n <= 'f' ? n - 'a' + 10 : n - 'A' + 10; ndigits ++; } if ( ! ndigits ) { goto SYNTAX_ERROR; } } else if ( tolower(c) == 'c' ) { /* \cC -> Control-C */ c = GETC(); c &= 0x1F; /* leave bottom 5 bits */ } if ( c < 0 || c >= (UCHAR_MAX+1) ) { return -2; } } *_s = (char*) s; return c; SYNTAX_ERROR: *_s = (char*) s; return -2; } #define GETC_ESCAPED() ({ int c = getc_escaped((char **)&s); if ( c < 0 ) goto SYNTAX_ERROR; c; }) int putc_escaped(char **_s, int i) { char *s = *_s; char *r; if ( isprint(i) && isascii(i) && ! iscntrl(i) ) { PUTC(i); } else if ( (r = strchr(escape_chars, i)) && ((r - escape_chars) % 2 == 1) ) { PUTC('\\'); PUTC(r[-1]); } else { PUTC('\\'); PUTC(((i >> 6) & 0x7) + '0'); PUTC(((i >> 3) & 0x7) + '0'); PUTC(((i >> 0) & 0x7) + '0'); } *_s = (char*) s; return 0; } int charset_compile(charset *cs, char **_s) { unsigned char *s = (unsigned char*) *_s; short invert = 0; int c; charset_CLEAR(*cs); MATCHC('['); invert = PEEKCMATCHC('^'); while ( (c = PEEKC()) >= 0 && c != ']' ) { c = GETC_ESCAPED(); charset_SET(cs,c); if ( PEEKCMATCHC('-') ) { int oc = GETC_ESCAPED(); if ( c > oc ) { int t; t = c; c = oc; oc = t; } while ( c <= oc ) { charset_SET(cs,c); c ++; } } } MATCHC(']'); if ( invert ) { charset_INVERT(cs); } *_s = (char*) s; return 0; SYNTAX_ERROR: *_s = (char*) s; return -2; } int charset_print(charset *cs, char **_s) { char *s = *_s; int i, j; int invert; PUTC('['); if ( (invert = charset_MATCH(cs,(UCHAR_MAX+1))) ) { PUTC('^'); charset_INVERT(cs); /* Temporarly invert */ } for ( i = 0; i < (UCHAR_MAX+1); i ++ ) { if ( charset_MATCH(cs,i) ) { if ( i == '^' || i == '-' ) { PUTC('\\'); PUTC(i); } else { putc_escaped(&s, i); } for ( j = i + 1; j < (UCHAR_MAX+1); j ++ ) { if ( ! charset_MATCH(cs,j) ) break; } if ( j - i > 3 ) { i = j - 1; PUTC('-'); putc_escaped(&s, i); } } } if ( invert ) { charset_INVERT(cs); /* revert */ } PUTC(']'); *_s = (char*) s; return 0; } #undef GETC #undef PEEKC #undef UNGETC #undef MATCHC #undef PEEKCMATCHC #undef GETC_ESCAPED #ifdef TEST int main(int argc, char **argv) { int i; /* printf("sizeof(charset) = %d\n", (int) sizeof(charset)); */ for ( i = 1; i < argc; i ++ ) { char *t; if ( strcmp(argv[i], "-e") == 0 ) { i ++; for ( t = argv[i]; *t; ) { int c; unsigned char *s = t; c = getc_escaped(&t); printf("%s -> %d\n", s, c); } } else if ( strcmp(argv[i], "-c") == 0 ) { i ++; for ( t = argv[i]; *t; ) { unsigned char *s = t; charset cs; char buf[1024], *b = buf; if ( charset_compile(&cs,&t) < 0 ) { printf("syntax error at %s in %s\n", t, s); } else { charset_print(&cs,&b); } printf("%s -> %s\n", s, buf); } } } return 0; } #endif gmv0.9/src/util/charset.h0100644000175200017560000000165706707533613015730 0ustar stephensstepheng#ifndef _charset_h #ifndef __rcs_id__ #ifndef __rcs_id_misc_charset_h__ #define __rcs_id_misc_charset_h__ static const char __rcs_id_misc_charset_h[] = "$Id: charset.h,v 1.1 1999/04/22 05:45:47 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #define _charset_h #ifndef BITS_PER_CHAR #define BITS_PER_CHAR 8 #endif #ifndef UCHAR_MAX #define UCHAR_MAX 255 #endif typedef unsigned char charset[(UCHAR_MAX+1+1+BITS_PER_CHAR-1)/BITS_PER_CHAR]; #define charset_CLEAR(cs) bzero(cs, sizeof(charset)) #define charset_SET(cs,x) ((*(cs))[(x)/BITS_PER_CHAR]|=(1<<((x)%BITS_PER_CHAR))) #define charset_MATCH(cs,x) ((*(cs))[(x)/BITS_PER_CHAR]&(1<<((x)%BITS_PER_CHAR))) #define charset_INVERT(cs) do { \ int i; \ for ( i = 0; i < sizeof(charset); i ++ ) (*(cs))[i] ^= ~ 0; \ } while(0) int getc_escaped(char **_s); int putc_escaped(char **_s, int i); int charset_compile(charset *cs, char **_s); int charset_print(charset *cs, char **_s); #endif gmv0.9/src/util/enum.c0100644000175200017560000000655607037355513015237 0ustar stephensstepheng/* Copyright (c) 1998, 1999 Kurt A. Stephens and Ion, Inc. */ #ifndef __rcs_id__ #ifndef __rcs_id_util_enum_c__ #define __rcs_id_util_enum_c__ static const char __rcs_id_util_enum_c[] = "$Id: enum.c,v 1.8 2000/01/13 14:03:55 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include "enum.h" #include #include #include int C_enum_str_to_value(const C_enum *table, const char *name, size_t name_len, long *result) { int i; if ( ! name ) return 0; if ( name_len == (size_t) -1 ) name_len = strlen(name); for ( i = 0; table[i].name; i ++ ) { if ( strncmp(table[i].name, name, name_len) == 0 && table[i].name[name_len] == '\0' ) { *result = table[i].value; return 1; } } return 0; } int C_enum_str_to_or_value(const C_enum *table, const char *name, size_t name_len, long *resultp) { long result = 0; const char *s; const char *e; if ( ! name ) return 0; if ( name_len == (size_t) -1 ) name_len = strlen(name); s = name; e = name + name_len; while ( s < e ) { long eresult = 0; const char *t; /* Scan for '|' or end of s */ for ( t = s; t != e; ++ t ) { if ( *t == '|' ) { break; } } if ( C_enum_str_to_value(table, s, t - s, &eresult) ) { result |= eresult; } else { return 0; } s = t + 1; } *resultp = result; return 1; } const char * C_enum_value_to_str(const C_enum *table, long value) { int i; for ( i = 0; table[i].name; ++ i ) { if ( table[i].value == value ) { return table[i].name; } } return 0; } const char * C_enum_or_value_to_str(const C_enum *table, long value, char *buf, size_t buf_len) { if ( value == 0 ) { /* There might be an enum of 0! */ return C_enum_value_to_str(table, value); } else { int i; /* table[i] */ char *bp; /* Current buf write position. */ int new_buf; /* Was the buf allocated by us? */ /* Calculate buf_len if not specified. */ if ( ! buf_len ) { buf_len = table[i].name ? strlen(table[i].name) + 1 : 16; } /* Allocate buffer if not specified. */ if ( ! buf ) { new_buf = 1; buf = malloc(buf_len); } else { new_buf = 0; } /* Initialize buffer and buffer pointer. */ buf[0] = '\0'; bp = buf; /* While value still has bits: */ while ( value ) { for ( i = 0; table[i].name; ++ i ) { /* If value has enum value's bits? */ if ( (value & table[i].value) == table[i].value ) { size_t len = (bp - buf); size_t name_len = strlen(table[i].name); size_t new_len = len + name_len + 2; /* Resize buffer if possible. */ if ( new_len > buf_len ) { if ( new_buf ) { buf = realloc(buf, new_len); bp = buf + len; } else { /* Buffer to small! */ return 0; } } /* Append trailing '|'. */ if ( buf[0] ) { *(bp ++) = '|'; } /* Append table[i].name. */ { const char *s = table[i].name; while ( *s ) { *(bp ++) = *(s ++); } } /* Remove enum value bits from value. */ value &= ~table[i].value; /* Try more values. */ goto next_value; } /* Try next enum value. */ } /* An enum value for values bits was not found. */ return 0; /* ERROR */ next_value: /* Try more values. */ (void) 0; } *bp = '\0'; return buf; } } gmv0.9/src/util/enum.h0100644000175200017560000000142607037354763015241 0ustar stephensstepheng/* Copyright (c) 1998, 1999 Kurt A. Stephens and Ion, Inc. */ #ifndef _util_enum_h #define _util_enum_h #ifndef __rcs_id__ #ifndef __rcs_id_util_enum_h__ #define __rcs_id_util_enum_h__ static const char __rcs_id_util_enum_h[] = "$Id: enum.h,v 1.7 2000/01/13 13:58:11 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include /* size_t */ typedef struct C_enum { const char *name; long value; } C_enum; int C_enum_str_to_value(const C_enum *table, const char *name, size_t name_len, long *result); int C_enum_str_to_or_value(const C_enum *table, const char *name, size_t name_len, long *resultp); const char * C_enum_value_to_str(const C_enum *table, long value); const char * C_enum_or_value_to_str(const C_enum *table, long value, char *buf, size_t buf_len); #endif gmv0.9/src/util/errlist.h0100644000175200017560000000027007037332567015753 0ustar stephensstepheng#ifndef _util_errlist_h #define _util_errlist_h #include #ifndef Linux #ifndef NeXT extern const char * const sys_errlist[]; extern int sys_nerr; #endif #endif #endif gmv0.9/src/util/errlist.pl0100644000175200017560000000125407005436061016127 0ustar stephensstepheng#!/bin/perl # $Id: errlist.pl,v 1.6 1999/10/26 23:41:37 stephensk Exp $ @errs = (); while ( <> ) { #print; if ( m@^\s*#define\s+E(\w+)\s+([0-9]+)(\s+/\*\s*(.*)\s*(\*/))?@ ) { $name = $1; $err = $2; $comment = $4; $comment =~ s/\s+$//g; $errs[$err] = $comment; } } print "/* DO NOT MODIFY! Generated by $0 ", join(" ", @ARGV), " */\n"; print "#ifndef sun\n"; print "#ifndef NeXT\n"; print "const char *sys_errlist[] = {\n"; foreach $err ( 0 .. $#errs ) { if ( ! $errs[$err] ) { $errs[$err] = "Error $err"; } print '"', $errs[$err], '", ', "\n"; } print " 0\n};\n"; print "int sys_nerr = ", $#errs + 1, ";\n"; print "#endif\n"; print "#endif\n"; 1; gmv0.9/src/util/file.c0100644000175200017560000002664607236200232015200 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_util_file_c__ #define __rcs_id_util_file_c__ static const char __rcs_id_util_file_c[] = "$Id: file.c,v 1.4 2001/02/01 06:22:18 ion Exp $"; #endif #endif /* __rcs_id__ */ #include "util/file.h" #include #include #include #include #include #include #include #include #include #include #include #include "util/path.h" static void write_error(const char *s) { write(2, s, strlen(s)); } static void *xmalloc(size_t s) { void *ptr = malloc(s); if ( ! ptr ) { write_error("out of memory in "); write_error(__FILE__); write_error("\n"); abort(); } return ptr; } time_t file_mtime(const char *fname) { struct stat s; #if 0 fprintf(stderr, "file_mtime(\"%s\")\n", fname); #endif return stat(fname, &s) == 0 ? (time_t) s.st_mtime : (time_t) 0; } int file_mode_masked(const char *fname, int euid, int egid) { struct stat s; int mask; if ( euid < 0 ) euid = geteuid(); if ( egid < 0 ) egid = getegid(); if ( stat(fname, &s) ) return 0; mask = euid == s.st_uid ? S_IRWXU : 0; mask |= egid == s.st_gid ? S_IRWXG : 0; mask |= (euid != s.st_uid && egid != s.st_gid) ? S_IRWXO : 0; return s.st_mode & mask; } int file_executable(const char *fname) { #if defined(WIN32) { const char *suffix = path_suffix(fname); return suffix && (strcasecmp(suffix, ".exe") == 0 || strcasecmp(suffix, ".con") == 0 || strcasecmp(suffix, ".bat") == 0 || strcasecmp(suffix, ".dll") == 0); } #else return file_mode_masked(fname, -1, -1) & (S_IXUSR|S_IXGRP|S_IXOTH); #endif } static int progname_try(char *buf) { #if 0 fprintf(stderr, "progname_try(\"%s\")\n", buf); #endif #if defined(_WIN32) || defined(WINNT) /* Try .exe */ strcat(buf, ".exe"); if ( file_mtime(buf) ) { return 1; } /* Try .com */ strcpy(strchr(buf, 0) - 4, ".com"); if ( file_mtime(buf) ) { return 1; } /* Try .dll */ strcpy(strchr(buf, 0) - 4, ".dll"); if ( file_mtime(buf) ) { return 1; } /* Try .bat */ strcpy(strchr(buf, 0) - 4, ".bat"); if ( file_mtime(buf) ) { return 1; } *(strchr(buf, 0) - 4) = 0; #else /* Try filename alone */ if ( file_executable(buf) ) { return 1; } #endif return 0; } int file_in_path(const char *argv0, const char *PATH, char *buf) { char dir_sep[] = "/"; if ( ! (argv0[0] == '/' || argv0[0] == '\\') ) { if ( (PATH || (PATH = getenv("PATH"))) && *PATH ) { const char *p, *pe, *pn; int path_sep = ':'; if ( strchr(PATH, ';') ) path_sep = ';'; for ( p = PATH, pe = PATH; *p; p = pn) { if ( (pe = strchr(p, path_sep)) ) { pn = pe + 1; } else { pn = ""; } if ( *p ) { strncpy(buf, p, pe - p); buf[pe - p] = 0; strcat(buf, dir_sep); strcat(buf, argv0); if ( progname_try(buf) ) return 1; } } } } strcpy(buf, argv0); if ( progname_try(buf) ) return 1; strcpy(buf, argv0); return 0; } size_t file_size(const char *file) { struct stat s; return stat(file, &s) ? 0 : s.st_size; } int file_touch(const char *file) { int fd; if ( (fd = open(file, O_RDWR, 0644)) >= 0 ) { char buf[1]; size_t bytes = sizeof(buf); buf[0] = 0; lseek(fd, 0, SEEK_SET); bytes = read(fd, buf, bytes); lseek(fd, 0, SEEK_SET); bytes = write(fd, buf, bytes); lseek(fd, 0, SEEK_END); close(fd); return 0; } return -1; } char *FILE_get_line_at_pos(FILE *fp, int linesize, pos_t pos, size_t *lenp, pos_t *line_pos) { /* ** Read a buffer twice the expected maximum linesize to handle ** hopefully to get a beginning and ending newline bounding the ** file position (pos) wanted. */ size_t bufsize = linesize * 2 + 3; /* The buffer read. */ char *buf = xmalloc(bufsize + 1); /* The size of the buffer read. */ pos_t readpos; /* Where the read began. */ do { /* Where to begin reading lines from. */ if ( pos < linesize ) { /* Dont read before beginning of file! */ readpos = 0; } else { readpos = pos - linesize; } /* Read a buffer and terminate it. */ fseek(fp, readpos, SEEK_SET); bufsize = fread(buf, 1, bufsize, fp); buf[bufsize] = '\0'; /* Guard. */ { /* Buffer begin/end */ const char *bb = buf, *be = buf + bufsize; /* Position wanted within the buffer. */ const char *pp = bb + (pos - readpos); /* Line begin/end */ const char *lb = bb, *le; /* Find beginning of first line. */ if ( readpos > 0 ) { while ( *lb != '\n' ) { if ( lb == be ) { /* Beginning of first line not found. */ goto bigger; } ++ lb; } /* Skip newline. */ ++ lb; } do { /* Find end of current line. */ le = lb; while ( *le != '\n' ) { if ( le == be ) { /* End of line not found. */ goto bigger; } ++ le; } /* Skip newline. */ ++ le; /* ** If found end of line and ** the position wanted is within the line found. */ if ( lb <= pp && pp < le ) { /* Return beginning of line position. */ if ( line_pos ) *line_pos = readpos + (lb - bb); /* ** Got the line. ** Shrink buffer. */ bufsize = le - lb; memmove(buf, lb, bufsize); buf = realloc(buf, bufsize + 1); buf[bufsize] = '\0'; #if 0 fprintf(stderr, "line = '%s'\n", buf); #endif /* Return buffer and length. */ if ( lenp ) { *lenp = bufsize; } return buf; } /* Try next line. */ lb = le; } while ( lb != be ); } /* Try again with a larger buffer. */ bigger: bufsize *= 2; buf = realloc(buf, bufsize); } while ( 1 ); /* Give up. */ free(buf); return 0; } int FILE_print_line_at_pos(FILE *fp, int linesize, pos_t pos, pos_t *line_pos, FILE *out) { int result = 0; size_t len; pos_t new_line_pos = line_pos ? *line_pos : -1; char *line = FILE_get_line_at_pos(fp, linesize, pos, &len, &new_line_pos); if ( ! line ) { result = -1; } else { /* Do not print any lines that we all ready printed. */ if ( ! (line_pos && *line_pos == new_line_pos) ) { fprintf(out, "%lu\t", (unsigned long) new_line_pos); fwrite(line, 1, len, out); } free(line); } if ( line_pos ) *line_pos = new_line_pos; return result; } int file_print_line_at_pos(const char *file, int linesize, pos_t pos, pos_t *line_pos, FILE *out) { int result = 0; FILE *fp; if ( ! (fp = fopen(file, "r")) ) { result = -1; } else { result = FILE_print_line_at_pos(fp, linesize, pos, line_pos, out); fclose(fp); } return result; } static const char *_file = ""; /* for debugging. */ #if 0 #define PDEBUG(X) fprintf X #else #define PDEBUG(X) #endif char *FILE_read_from_end(FILE *fp, size_t *buflenp, pos_t *posp) { static const char _funcname[] = "FILE_read_from_end"; char *buf; size_t buflen = 1024; /* Arbitrary bufsize. */ long savepos; if ( buflenp && *buflenp ) { buflen = *buflenp; } buf = (char*) xmalloc(sizeof(buf[0]) * (buflen + 1)); memset(buf, 0, sizeof(buf[0]) * (buflen + 1)); /* Save current pos. */ savepos = ftell(fp); /* ** If buflen is bigger than the file's size, ** read from beginning as much as possible. */ if ( fseek(fp, - (long) buflen, SEEK_END) ) { #if 0 fprintf(stderr, "%s('%s'): fseek(%ld, SEEK_END) error.\n", _funcname, _file, - (long) buflen); #endif clearerr(fp); fseek(fp, 0, SEEK_SET); } /* Remember where read started from. */ if ( posp ) { *posp = (pos_t) ftell(fp); } /* Read any remember the actual size read. */ buflen = fread(buf, sizeof(buf[0]), buflen, fp); /* Check for read error. */ if ( buflen == 0 && ferror(fp) ) { fprintf(stderr, "%s('%s'): read error.\n", _funcname, _file); clearerr(fp); free(buf); buf = 0; } /* Restore fp pos. */ fseek(fp, savepos, SEEK_SET); if ( buf ) { /* Realloc buf. */ buf = realloc(buf, sizeof(buf[0]) * (buflen + 1)); /* Null terminate. */ buf[buflen] = '\0'; } #if 0 fprintf(stderr, "%s('%s'): return '%s', buflen %ld.\n", _funcname, _file, buf, (long) buflen ); #endif if ( buflenp ) *buflenp = buflen; return buf; } char *file_read_from_end(const char *file, size_t *buflenp, pos_t *posp) { FILE *fp; char *buf; _file = file; if ( ! (fp = fopen(file, "r")) ) return 0; buf = FILE_read_from_end(fp, buflenp, posp); fclose(fp); return buf; } char *FILE_get_line_at_end(FILE *fp, size_t *buflenp, pos_t *posp) { char *buf = 0; size_t buflen = 1024; char *line = 0; /* The line found. */ pos_t pos = 0; /* The position in the file the line was found. */ char *b, *e; /* Search range in buffer. */ static const char _funcname[] = "FILE_get_line_at_end"; if ( buflenp && *buflenp ) { buflen = *buflenp; } do { if ( buf ) free(buf); buf = FILE_read_from_end(fp, &buflen, &pos); if ( ! buf ) break; /* ** If buflen is 0, ** the file is empty. */ if ( buflen == 0 ) { PDEBUG((stderr, "%s('%s'): file is empty\n", _funcname, _file)); line = 0; break; } /* Begin scanning backwards for a newline before last line. */ e = buf + buflen; /* end of buffer (hence, end of possible line). */ b = e - 1; /* beginning of possible line. */ /* Skip trailing newline only if it exists. */ if ( *b == '\n' ) { b --; } else { PDEBUG((stderr, "%s('%s'): no trailing newline found.\n", _funcname, _file)); } /* Find newline before trailing newline. */ while ( b >= buf ) { if ( *b == '\n' ) { line = b + 1; PDEBUG((stderr, "%s('%s'): found previous newline.\n", _funcname, _file)); break; } -- b; } /* ** If no newline was found and ** if buf starts at beginning of file, ** the buf is the first line. */ if ( (! line) && pos == 0 ) { PDEBUG((stderr, "%s('%s'): read entire file.\n", _funcname, _file)); line = buf; break; } /* ** Try growing buflen until a complete line is read. */ } while ( (! line) && (buflen *= 2) ); if ( line ) { assert(buf); /* ** The line's start position is offset from ** the buffer's start position by the offset of the line ** in the buffer. Got it? */ pos += (line - buf); /* ** Resize buf to only contain the line. */ buflen = e - line; memmove(buf, line, sizeof(buf[0]) * buflen); buf = realloc(buf, sizeof(buf[0]) * (buflen + 1)); buf[buflen] = '\0'; line = buf; /* ** Pass back bufsize and line pos. */ if ( buflenp ) *buflenp = buflen; if ( posp ) *posp = pos; } else { /* Done with buf. */ if ( buf ) free(buf); } PDEBUG((stderr, "%s('%s'): return '%s': buflen %ld pos %ld\n", _funcname, _file, line ? line : "", (long) buflen, (long) pos)); return line; } char *file_get_line_at_end(const char *file, size_t *buflenp, pos_t *posp) { FILE *fp; char *buf; _file = file; /* for debugging. */ if ( ! (fp = fopen(file, "r")) ) { fprintf(stderr, "file_get_line_at_end('%s'): cannot open: %s\n", file, strerror(errno)); fflush(stderr); return 0; } buf = FILE_get_line_at_end(fp, buflenp, posp); fclose(fp); _file = ""; /* for debugging. */ return buf; } gmv0.9/src/util/file.h0100644000175200017560000000237407236200232015175 0ustar stephensstepheng#ifndef _util_file_h #define _util_file_h #ifndef __rcs_id__ #ifndef __rcs_id_util_file_h__ #define __rcs_id_util_file_h__ static const char __rcs_id_util_file_h[] = "$Id: file.h,v 1.4 2001/02/01 06:22:18 ion Exp $"; #endif #endif /* __rcs_id__ */ #ifdef __cplusplus extern "C" { #endif #include /* FILE */ #include /* time_t */ time_t file_mtime(const char *fname); size_t file_size(const char *file); typedef long pos_t; int file_touch(const char *file); int file_mode_masked(const char *fname, int euid, int egid); int file_executable(const char *fname); int file_in_path(const char *argv, const char *PATH, char *buf); char *FILE_get_line_at_pos(FILE *fp, int linesize, pos_t pos, size_t *lenp, pos_t *line_pos); int FILE_print_line_at_pos(FILE *fp, int linesize, pos_t pos, pos_t *line_pos, FILE *out); int file_print_line_at_pos(const char *file, int linesize, pos_t pos, pos_t *line_pos, FILE *out); char *FILE_read_from_end(FILE *file, size_t *buflenp, pos_t *posp); char *file_read_from_end(const char *file, size_t *buflenp, pos_t *bufposp); char *FILE_get_line_at_end(FILE *fp, size_t *bufsize, pos_t *lineposp); char *file_get_line_at_end(const char *file, size_t *bufsize, pos_t *lineposp); #ifdef __cplusplus } #endif #endif gmv0.9/src/util/host.c0100644000175200017560000000213107034310640015216 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_util_host_c__ #define __rcs_id_util_host_c__ static const char __rcs_id_util_host_c[] = "$Id: host.c,v 1.2 2000/01/04 06:22:24 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include "host.h" #include #include /* MAXHOSTNAMELEN */ int hostname_matches_hostent(const char *h, const struct hostent *he) { int i; if ( strcmp(h, he->h_name) == 0 ) return 1; for ( i = 0; he->h_aliases[i]; i ++ ) { if ( strcmp(h, he->h_aliases[i]) == 0 ) return 1; } return 0; } int hostname_matches_hostname(const char *h1, const char *h2) { struct hostent *he1, *he2; char hostname[MAXHOSTNAMELEN + 1]; if ( ! (h1 && *h1) ) { if ( gethostname(hostname, sizeof(hostname)) ) return 0; h1 = hostname; } if ( ! (h2 && *h2) ) { if ( gethostname(hostname, sizeof(hostname)) ) return 0; h2 = hostname; } if ( strcmp(h1, h2) == 0 ) return 1; if ( ! (he1 = gethostbyname(h1)) ) return 0; if ( ! (he2 = gethostbyname(h2)) ) return 0; return strcmp(he1->h_name, he2->h_name) == 0; } gmv0.9/src/util/host.h0100644000175200017560000000051707034312207015232 0ustar stephensstepheng/* $Id: host.h,v 1.3 2000/01/04 06:34:47 stephensk Exp $ */ #ifndef _util_host_h #define _util_host_h #include #ifdef __cplusplus extern "C" { #endif int hostname_matches_hostent(const char *h, const struct hostent *he); int hostname_matches_hostname(const char *h1, const char *h2); #ifdef __cplusplus } #endif #endif gmv0.9/src/util/lockfile.c0100644000175200017560000001322607034310640016040 0ustar stephensstepheng/* $Id: lockfile.c,v 1.6 2000/01/04 06:22:24 stephensk Exp $ */ #include "lockfile.h" #include #include #include #include #include #include #include #include #include #include #include #include "errlist.h" #ifdef MEMDEBUG #include "memdebug/memdebug.h" #endif /* NOT THREAD-SAFE */ const char *lockfile_progname = ""; /* The program name for lockfile contents. */ /* A lockfile list entry. */ typedef struct lockfile_stat { struct lockfile_stat *next; char *file; int locks; } lockfile_stat; /* A list of lockfiles aquired by this process. */ static lockfile_stat *lockfile_stats; /* Has lockfile_atexit been installed into atexit? */ static int lockfile_atexit_installed; void lockfile_release_all() { lockfile_stat *l = lockfile_stats; while ( l ) { lockfile_stat *ln = l->next; unlink(l->file); free(l->file); free(l); l = ln; } } int lockfile_unlock_at_exit = 1; void lockfile_atexit() { if ( lockfile_unlock_at_exit ) { lockfile_release_all(); } } static void lockfile_stat_add(const char *file) { lockfile_stat *l; l = malloc(sizeof(*l)); l->file = strcpy(malloc(strlen(file) + 1), file); l->locks = 1; l->next = lockfile_stats; lockfile_stats = l; /* Install an atexit handler to unaquire all lockfiles this process has created. */ if ( ! lockfile_atexit_installed ) { lockfile_atexit_installed ++; atexit(lockfile_atexit); } } static lockfile_stat **lockfile_stat_find(const char *file) { lockfile_stat **l = &lockfile_stats; while ( *l ) { if ( strcmp(file, (*l)->file) == 0 ) { return l; } l = &((*l)->next); } return 0; } int lockfile_mode = 0666; /* The error handler. */ int lockfile_error_default(const char *file, const char *msg) { fprintf(stderr, "lockfile '%s': %s\n", file, msg); return 0; } int (*lockfile_error)(const char *file, const char *msg) = lockfile_error_default; int lockfile_acquire(const char *file, int retries, int wait) { lockfile_stat **l; int rtnval = 0; int nretries = 0; if ( retries < 0 ) { retries = 10; } if ( wait < 0 ) { wait = 60; } /* Has this process already acquired the lockfile? */ if ( (l = lockfile_stat_find(file)) ) { /* Increment lock count. */ (*l)->locks ++; /* Success. */ return 0; } else { int fd; char buf[1024]; int lockfile_read = 0; char msg[1024]; int broke_lock = 0; buf[0] = '\0'; while ( 1 ) { /* Attempt to create the file atomically. */ fd = open(file, O_RDWR|O_CREAT|O_EXCL, 0666); if ( fd < 0 ) { /* Couldn't create the file atomically. */ /* It already existed and was not created by our process id. */ if ( errno == EEXIST ) { /* Read the contents of the lockfile for the error msg. */ if ( ! lockfile_read ) { size_t rlen; fd = open(file, O_RDONLY); rlen = read(fd, buf, sizeof(buf) - 1); /* Remove newline. */ if ( rlen > 0 && rlen != (size_t) -1 ) buf[rlen - 1] = '\0'; close(fd); lockfile_read = 1; sprintf(msg, "acquired by '%s'", buf); if ( (rtnval = lockfile_error(file, msg)) ) return rtnval; } /* Sleep if retries are left. */ if ( -- retries > 0 ) { nretries ++; if ( nretries == 1 ) { sprintf(msg, "sleeping for %d secs for %d times", wait, retries + 1); if ( (rtnval = lockfile_error(file, msg)) ) return rtnval; } /* Sleep for a while then retry */ sleep(wait); } /* If out of retries, attempt to break the lock. */ if ( retries <= 0 ) { if ( ! broke_lock ) { if ( (rtnval = lockfile_error(file, "attempting to break lock")) ) return rtnval; /* Attempt one retry after breaking the lock. */ broke_lock ++; retries = 1; unlink(file); } else { /* Out of retries. */ if ( (rtnval = lockfile_error(file, "giving up")) ) return rtnval; /* Failure! */ return -1; } } } else { /* Failed to create the lockfile for some other reason. */ sprintf(msg, "cannot create: %s", sys_errlist[errno]); if ( (rtnval = lockfile_error(file, msg)) ) return rtnval; /* Failure! */ return -1; } } else { /* Fill the lockfile with hostname, username, programname, and process id */ char hostname[64]; char username[64]; struct passwd *pw; strcpy(hostname, "localhost"); gethostname(hostname, sizeof(hostname) - 1); strcpy(username, ""); if ( (pw = getpwuid(geteuid())) ) { memset(username, 0, sizeof(username)); strncpy(username, pw->pw_name, sizeof(username) - 1); } sprintf(buf, "%s %s %s %d\n", hostname, username, lockfile_progname, getpid()); write(fd, buf, strlen(buf)); /* Add it to our process's list of lockfiles */ lockfile_stat_add(file); close(fd); /* Chmod to default mode */ chmod(file, lockfile_mode); /* Success! */ return 0; } } } } int lockfile_release(const char *file) { lockfile_stat **lp; /* Has this process acquired the lockfile? */ if ( (lp = lockfile_stat_find(file)) ) { lockfile_stat *l = *lp; /* Decrement lock count. */ if ( -- l->locks == 0 ) { lockfile_stat *ln = l->next; /* Delete the lockfile. */ unlink(l->file); /* Free and remove the lockfile list entry. */ free(l->file); free(l); *lp = ln; } } else { int rtnval; /* This process has not acquired the lockfile, so it cannot release it. */ if ( (rtnval = lockfile_error(file, "not acquired")) ) return rtnval; return -1; } return 0; } gmv0.9/src/util/lockfile.h0100644000175200017560000000141506727377373016072 0ustar stephensstepheng#ifndef _util_lockfile_h #define _util_lockfile_h /* $Id: lockfile.h,v 1.3 1999/06/09 05:43:23 stephensk Exp $ */ /* Options */ extern const char *lockfile_progname; extern int lockfile_mode; /* Lockfile creation perms */ extern int lockfile_unlock_at_exit; /* Release lockfiles at exit? */ /* Error handling. */ extern int (*lockfile_error)(const char *file, const char *msg); int lockfile_error_default(const char *file, const char *msg); /* Prints "lockfile '': " to stderr; returns 0. */ /* Acquire/Release. */ int lockfile_acquire(const char *file, int retries, int wait); int lockfile_release(const char *file); /* Release all lockfiles. */ void lockfile_release_all(); void lockfile_atexit(); /* lockfile_release_all() if lockfile_unlock_at_exit. */ #endif gmv0.9/src/util/lockfile_main.c0100644000175200017560000000166506727377403017072 0ustar stephensstepheng/* $Id: lockfile_main.c,v 1.1 1999/06/09 05:43:31 stephensk Exp $ */ #include "lockfile.h" #include #include #include #include int main(int argc, char **argv) { int errors = 0; int i; lockfile_progname = argv[0]; lockfile_unlock_at_exit = 0; switch ( argv[1] && argv[1][0] == '-' ? argv[1][1] : 0 ) { case 'l': case 'a': for ( i = 2; i < argc; i ++ ) { if ( lockfile_acquire(argv[i], 60, 10) ) { errors ++; } } break; case 'u': case 'r': for ( i = 2; i < argc; i ++ ) { if ( unlink(argv[i]) ) { fprintf(stderr, "%s: cannot unlink: '%s'\n", argv[0], argv[i]); errors ++; } } break; default: fprintf(stderr, "%s: bad option: '%s'\n", argv[0], argv[1]); errors ++; /* FALL THROUGH */ case 'h': case '?': fprintf(stderr, "%s: USAGE: %s [-lock|-unlock] files...\n", argv[0], argv[0]); break; } return errors; } gmv0.9/src/util/mem.c0100644000175200017560000000611206663227127015040 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_util_mem_c__ #define __rcs_id_util_mem_c__ static const char __rcs_id_util_mem_c[] = "$Id: mem.c,v 1.2 1999/02/19 09:26:47 stephensk Exp $"; #endif #endif /* __rcs_id__ */ /* ** Unrolled memcpy */ void memcpy_fast(char *_dst, const char *_src, unsigned int _len) { if ( _len == 0 ) return; #define MEMSET_4() *(long*)_dst = *(long*)_src; _dst += sizeof(long); _src += sizeof(long) #define MEMSET_1() *(_dst ++) = *(_src ++) /* Align to 4 dword */ switch ( ((unsigned int) _dst) & 3 ) { case 1: if ( _len -- <= 0 ) return; MEMSET_1(); case 2: if ( _len -- <= 0 ) return; MEMSET_1(); case 3: if ( _len -- <= 0 ) return; MEMSET_1(); } /* Do blocks of 64 bytes */ while ( _len >= 64 ) { MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); _len -= 64; } /* Do remaining dwords */ switch ( _len / 4 ) { case 16: MEMSET_4(); case 15: MEMSET_4(); case 14: MEMSET_4(); case 13: MEMSET_4(); case 12: MEMSET_4(); case 11: MEMSET_4(); case 10: MEMSET_4(); case 9: MEMSET_4(); case 8: MEMSET_4(); case 7: MEMSET_4(); case 6: MEMSET_4(); case 5: MEMSET_4(); case 4: MEMSET_4(); case 3: MEMSET_4(); case 2: MEMSET_4(); case 1: MEMSET_4(); case 0: break; } /* Do remaining bytes */ switch ( _len & 3 ) { case 3: MEMSET_1(); case 2: MEMSET_1(); case 1: MEMSET_1(); case 0: break; } #undef MEMSET_4 #undef MEMSET_1 } /* ** Unrolled memset */ void memset_fast(unsigned char *_dst, int val, unsigned int _len) { unsigned long _val; if ( _len == 0 ) return; _val = val; _val |= _val << 8 | _val << 16 | _val << 24; #define MEMSET_4() (* ((unsigned long*) _dst)) = _val; _dst += sizeof(unsigned long) #define MEMSET_1() *(_dst ++) = _val; /* Align to 4 dword */ switch ( ((unsigned int) _dst) & 3 ) { case 1: if ( _len -- <= 0 ) return; MEMSET_1(); case 2: if ( _len -- <= 0 ) return; MEMSET_1(); case 3: if ( _len -- <= 0 ) return; MEMSET_1(); } /* Do blocks of 64 bytes */ while ( _len >= 64 ) { MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); MEMSET_4(); _len -= 64; } /* Do remaining dwords */ switch ( _len / 4 ) { case 16: MEMSET_4(); case 15: MEMSET_4(); case 14: MEMSET_4(); case 13: MEMSET_4(); case 12: MEMSET_4(); case 11: MEMSET_4(); case 10: MEMSET_4(); case 9: MEMSET_4(); case 8: MEMSET_4(); case 7: MEMSET_4(); case 6: MEMSET_4(); case 5: MEMSET_4(); case 4: MEMSET_4(); case 3: MEMSET_4(); case 2: MEMSET_4(); case 1: MEMSET_4(); case 0: break; } /* Do remaining bytes */ switch ( _len & 3 ) { case 3: MEMSET_1(); case 2: MEMSET_1(); case 1: MEMSET_1(); case 0: break; } #undef MEMSET_4 #undef MEMSET_1 } gmv0.9/src/util/mem.h0100644000175200017560000000107706735700336015050 0ustar stephensstepheng/* Copyright (c) 1998, 1999 Kurt A. Stephens and Ion, Inc. */ #ifndef _util_mem_h #define _util_mem_h #ifndef __rcs_id__ #ifndef __rcs_id_util_mem_h__ #define __rcs_id_util_mem_h__ static const char __rcs_id_util_mem_h[] = "$Id: mem.h,v 1.5 1999/06/28 14:04:14 stephensk Exp $"; #endif #endif /* __rcs_id__ */ void memcpy_fast(void *, const void *, unsigned int); void memset_fast(void *, int, unsigned int); #ifdef memcpy #undef memcpy #endif #define memcpy(x,y,z) memcpy_fast(x,y,z) #ifdef memset #undef memset #endif #define memset(x,y,z) memset_fast(x,y,z) #endif gmv0.9/src/util/midi.h0100644000175200017560000000352307001140704015172 0ustar stephensstepheng /* NAME, CODE, BYTES, PATTERN, COMMENT */ MIDI(NOTE_OFF, "\x80\x00\x00", 3, "1000cccc 0nnnnnnn 0vvvvvvv", "") MIDI(NOTE_ON, "\x90\x00\x00", 3, "1001cccc 0nnnnnnn 0vvvvvvv", "") MIDI(KEY_PRESSURE, "\xA0\x00\x00", 3, "1010cccc 0nnnnnnn 0aaaaaaa", "") MIDI(CONTROL_CNG, "\xB0\x00\x00", 3, "1011cccc 0xxxxxxx 0yyyyyyy", "") MIDI(CC_RESET, "\xB0\x79\x00", 3, "1011cccc", "") MIDI(LOCAL_CNTRL, "\xB0\x7A\x00", 3, "1011cccc @@@@@@@@ 0xxxxxxx", "") MIDI(ALL_NOTES_OFF, "\xB0\x7B\x00", 3, "1011cccc", "") MIDI(OMNI_MODE_OFF, "\xB0\x7C\x00", 3, "1011cccc", "") MIDI(OMNI_MODE_ON, "\xB0\x7D\x00", 3, "1011cccc", "") MIDI(MONO_MODE_ON, "\xB0\x7E\x00", 3, "1011cccc @@@@@@@@ 0vvvvvvv", "") MIDI(POLY_MODE_ON, "\xB0\x7F\x00", 3, "1011cccc", "") MIDI(PROGRAM_CNG, "\xC0", 2, "1100cccc 0ppppppp", "") MIDI(CH_PRESSURE, "\xD0", 2, "1101cccc 0aaaaaaa", "") MIDI(PITCHBEND, "\xE0", 3, "1110cccc 0xxxxxxx 0XXXXXXX", "") MIDI(SYSEX, "\xF0", MIDI_EOX(), "11110000 ...", "") MIDI(MTC_1_4th, "\xF1", "") MIDI(SONG_PTR, "\xF2\x00\x00", 3, "11110010 0xxxxxxx 0XXXXXXX", "") MIDI(SONG_SEL, "\xF3\x00", 2, "11110011 0xxxxxxx", "") MIDI(UNDEF1, "\xF4", "") MIDI(UNDEF2, "\xF5", "") MIDI(TUNE_REQ, "\xF6", "") MIDI(EOX, "\xF7", "") MIDI(TIMING_CLK, "\xF8", 1, "") MIDI(UNDEF3, "\xF9", "") MIDI(START, "\xFA", 1, "") MIDI(CONTINUE, "\xFB", 1, "") MIDI(STOP, "\xFC", 1, "") MIDI(UNDEF4, "\xFD", "") MIDI(ACTIVE_SENSING, "\xFE", 1, "") MIDI(SYS_RESET, "\xFF", 1, "") gmv0.9/src/util/outbuf.c0100644000175200017560000000345507034310640015557 0ustar stephensstepheng/* $Id: outbuf.c,v 1.3 2000/01/04 06:22:24 stephensk Exp $ */ #include "outbuf.h" #include #ifdef MEMDEBUG #include "memdebug/memdebug.h" #endif #include /* memmove */ int outbuf_write(outbuf *ob, const void *buf, size_t size) { int rtn = 0; if ( ! ob ) return -1; if ( ! size ) return 0; if ( ! buf ) return -1; /* allocate buffer */ if ( ! ob->buf ) { if ( ob->size < size ) ob->size = size; ob->buf = malloc(ob->size + 1); /* resize buffer? */ } else if ( ob->size < ob->len + size ) { ob->size = ob->len + size; ob->buf = realloc(ob->buf, ob->size + 1); } /* Append to buffer */ memcpy(ob->buf + ob->len, buf, size); ob->len += size; ob->buf[ob->len] = '\0'; return rtn; } int outbuf_flush(outbuf *ob) { int rtn = 0; if ( ! ob ) return 0; /* nothing to flush */ if ( ! ob->len ) return 0; /* nothing to flush */ /* Don't call flush recursively */ if ( ! ob->flushing ) { ob->flushing ++; if ( ob->flush ) { /* Make a copy of the buffer to allow re-entry into ob_write(), during ob->flush() */ size_t oblen = ob->len; char *buf_copy = malloc(ob->len + 1); memcpy(buf_copy, ob->buf, ob->len + 1); if ( ! (rtn = (ob->flush)(ob, buf_copy, ob->len)) ) { /* Remove flushed portion from front */ size_t l = ob->len - oblen; memmove(ob->buf, ob->buf + oblen, l); ob->len = l; ob->buf[ob->len] = '\0'; ob->failed_flush = 0; } else { ob->failed_flush ++; } free(buf_copy); } ob->flushing --; } return rtn; } int outbuf_destroy(outbuf *ob) { int rtn = 0; if ( ! ob ) return 0; if ( ob->destroy ) { if ( ! (rtn = ob->destroy(ob)) ) return rtn; } if ( ob->buf ) { free(ob->buf); ob->buf = 0; } return rtn; } gmv0.9/src/util/outbuf.h0100644000175200017560000000132606774730270015576 0ustar stephensstepheng/* $Id: outbuf.h,v 1.2 1999/09/30 18:49:28 stephensk Exp $ */ #ifndef _util_outbuf_h #define _util_outbuf_h #include /* size_t */ typedef struct outbuf { int (*flush)(struct outbuf *ob, void *buf, size_t size); /* flush method. Can modify buf. */ int (*destroy)(struct outbuf *ob); /* destroy method. */ void *data[4]; /* user data. */ char *buf; /* the buffered data. */ size_t len; /* length of current buf contents. */ size_t size; /* size of buf. */ int failed_flush; /* no. of failed flush ops. */ int flushing; /* currently flushing? */ } outbuf; int outbuf_write(outbuf *ob, const void *buf, size_t size); int outbuf_flush(outbuf *ob); int outbuf_destroy(outbuf *ob); #endif gmv0.9/src/util/path.c0100644000175200017560000000506106735700336015216 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_util_path_c__ #define __rcs_id_util_path_c__ static const char __rcs_id_util_path_c[] = "$Id: path.c,v 1.5 1999/06/28 14:04:14 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include "util/path.h" #include #include const char *path_sep = "/"; const char *path_cwd = "."; const char *path_file(const char *p) { const char *s; s = strrchr(p, path_sep[0]); if ( s ) { s ++; } else { s = p; } return s; } const char *path_dir(const char *p, char *buf) { const char *s; s = strrchr(p, path_sep[0]); if ( s ) { const char *r = p; char *t = buf; while ( r < s ) { *(t ++) = *(r ++); } *t = '\0'; } else { strcpy(buf, path_cwd); } return buf; } const char *path_absolute(const char *p, char *buf) { if ( p[0] == path_sep[0] ) { return p; } else { strcpy(buf, path_cwd); if ( ! strrchr(buf, path_sep[0]) ) { strcat(buf, path_sep); } strcat(buf, p); return buf; } } const char *path_suffix(const char *p) { const char *s; s = strrchr(path_file(p), '.'); return s; } const char *path_no_suffix(const char *p, char *buf) { const char *s; s = path_suffix(p); if ( s ) { strncpy(buf, p, s - p); buf[s - p] = '\0'; return buf; } else { return p; } } char *path_simplify(const char *p, char *buf) { const char *s; char *t; t = buf; s = p; while ( *s ) { /* replace "//" with "/" */ if ( s[0] == path_sep[0] && s[1] == path_sep[0] ) { s ++; } else /* replace "./" with "" */ if ( (s == p || s[-1] == path_sep[0]) && s[0] == '.' && s[1] == path_sep[0] ) { s += 2; } else { *(t ++) = *(s ++); } } *t = '\0'; /* replace "//../" where != ".." with "" */ t = buf; s = buf; while ( *s ) { if ( s[0] == path_sep[0] && s[1] == '.' && s[2] == '.' && s[3] == path_sep[0] ) { if ( s - buf >= 3 && ! ( s[-3] == path_sep[0] && s[-2] == '.' && s[-1] == '.' ) ) { t = (char*) s - 1; s += 3; while ( t > buf && *t != path_sep[0] ) { t --; } } else { *(t ++) = *(s ++); *(t ++) = *(s ++); } } *(t ++) = *(s ++); } *t = '\0'; return buf; } const char *path_2_dos(const char *s, char *buf) { char *p = buf; if ( s[0] == path_sep[0] && s[1] == path_sep[0] && isalpha(s[2]) && s[3] == path_sep[0] ) { *(p ++) = toupper(s[2]); *(p ++) = ':'; *(p ++) = '\\'; s += 4; } while ( *s ) { *(p ++) = *s == path_sep[0] ? '\\' : toupper(*s); s ++; } *p = '\0'; return buf; } gmv0.9/src/util/path.h0100644000175200017560000000121306663227127015220 0ustar stephensstepheng#ifndef _util_path_h #ifndef __rcs_id__ #ifndef __rcs_id_util_path_h__ #define __rcs_id_util_path_h__ static const char __rcs_id_util_path_h[] = "$Id: path.h,v 1.2 1999/02/19 09:26:47 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #define _util_path_h extern const char *path_sep; /* defaults to "/" */ extern const char *path_cwd; /* defaults to "." */ const char *path_file(const char *s); const char *path_dir(const char *s, char *buf); const char *path_absolute(const char *s, char *buf); const char *path_suffix(const char *s); const char *path_no_suffix(const char *s, char *buf); const char *path_2_dos(const char *s, char *buf); #endif gmv0.9/src/util/port.c0100644000175200017560000000161007034310640015226 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_util_port_c__ #define __rcs_id_util_port_c__ static const char __rcs_id_util_port_c[] = "$Id: port.c,v 1.2 2000/01/04 06:22:24 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include "port.h" #include #include #include #include int port_by_name(const char *port, const char *proto) { if ( isdigit(*port) ) { return atoi(port); } else { struct servent *se; char service[64]; if ( ! (proto && *proto) ) { const char *r; /* parse "service/protocol"? */ if ( (r = strchr(port, '/')) ) { strncpy(service, port, r - port); service[r - port] = 0; port = service; proto = r + 1; /* Default to "tcp" */ if ( ! *proto ) { proto = "tcp"; } } else { proto = "tcp"; } } if ( ! (se = getservbyname(port, proto)) ) return 0; return se->s_port; } } gmv0.9/src/util/port.h0100644000175200017560000000035407034312207015240 0ustar stephensstepheng/* $Id: port.h,v 1.3 2000/01/04 06:34:47 stephensk Exp $ */ #ifndef _util_port_h #define _util_port_h #ifdef __cplusplus extern "C" { #endif int port_by_name(const char *port, const char *proto); #ifdef __cplusplus } #endif #endif gmv0.9/src/util/prime.c0100644000175200017560000001041607037351516015374 0ustar stephensstepheng/* $Id: prime.c,v 1.6 2000/01/13 13:29:50 stephensk Exp $ */ #include "prime.h" #ifdef UNIT_TEST #include #endif #include #include #ifdef MEMDEBUG #include "memdebug/memdebug.h" #endif #ifndef EXTERN #define EXTERN #endif struct prime_list { prime_t x; struct prime_list *next; }; static struct prime_list pl_3 = { 3 }, pl_2 = { 2, &pl_3 }, *pl = &pl_2, *pl_last = &pl_3; static const prime_t *prime_new(prime_t x) { struct prime_list *p; #ifdef UNIT_TEST assert(pl_last->x != x); /* Do a simple verification of the primality of x. */ { prime_t y = x / 2; while ( y >= 2 ) { assert( x % y ); y --; } } fprintf(stderr, "%lu is prime\n", (unsigned long) x); #endif p = malloc(sizeof(*p)); p->x = x; p->next = 0; pl_last->next = p; pl_last = p; return &(p->x); } EXTERN const prime_t *prime_next(const prime_t *x) /* Returns the next prime > ^x^. ^x^ must be a result returned from prime_*(). */ { struct prime_list *p = (struct prime_list *) x; if ( ! p ) return 0; if ( p->next ) { return &(p->next->x); } else { prime_t y; assert(p == pl_last); #ifdef UNIT_TEST fprintf(stderr, "prime_next(%lu)\n", (unsigned long) *x); #endif y = p->x + 2; #ifdef UNIT_TEST /* Make sure y is not even. */ assert(y % 2 != 0); #endif for ( p = &pl_3; p; ) { if ( y % p->x == 0 ) { /* y is not prime, try y + 2. */ y += 2; p = &pl_3; continue; } else { /* y might be prime, see if y is multiple of next prime. */ p = p->next; } } /* y must be prime */ return prime_new(y); } } EXTERN const prime_t *prime_le(prime_t x) /* Returns a prime <= ^x^. */ { #ifdef UNIT_TEST fprintf(stderr, "prime_le(%lu)\n", (unsigned long) x); #endif if ( x < 2 ) return 0; while ( pl_last->x < x ) { prime_next(&(pl_last->x)); } { struct prime_list *p, *pp = pl; for ( p = pp->next; p; pp = p, p = p->next ) { if ( p->x > x ) { return &pp->x; } } abort(); } } EXTERN const prime_t *prime_q(prime_t x) /* Returns a prime if ^x^ is prime, 0 if ^x^ is not prime. */ { if ( x == pl_last->x ) { return &(pl_last->x); } else if ( x > pl_last->x ) { prime_le(x); } { struct prime_list *p; for ( p = pl; p; p = p->next ) { if ( p->x == x ) { /* x is prime. */ return &p->x; } } return 0; } } EXTERN const prime_t *prime_ge(prime_t x) /* Returns a prime number greater than or equal to ^x^. */ { #ifdef UNIT_TEST fprintf(stderr, "prime_ge(%lu)\n", (unsigned long) x); #endif while ( pl_last->x < x ) { prime_next(&(pl_last->x)); } { struct prime_list *p; for ( p = pl; p; p = p->next ) { if ( p->x >= x ) { return &(p->x); } } abort(); } } EXTERN prime_t *prime_factors(prime_t x) { int nfactors = 0; prime_t *factors = malloc(sizeof(factors[0]) * (nfactors + 1)); prime_t *f = pl; #ifdef UNIT_TEST prime_t x_save = x; #endif /* ** For each prime f < x: */ for ( f = pl; *f <= x; f = prime_next(f) ) { /* ** If x is divisible by f, ** append f to factors list. */ while ( x % *f == 0 ) { factors = realloc(factors, sizeof(factors[0]) * (nfactors + 2)); factors[nfactors ++] = *f; x /= *f; } } factors[nfactors] = 0; #ifdef UNIT_TEST { int i; prime_t product = 1; x = x_save; for ( i = 0; factors[i]; ++ i ) { product *= factors[i]; } assert(product == x); } #endif return factors; } #undef EXTERN #ifdef UNIT_TEST int main(int argc, char **argv) { #define Pi(X) {prime_t _X = (X); printf("%s = %lu\n", #X, (unsigned long) _X);} Pi(*prime_le(1024)); Pi(*prime_ge(1024)); Pi(*prime_le(512)); Pi(*prime_ge(512)); { int i, j; prime_t xs[] = { 678, 231, 148, 829, 818, 131, 512, 569, 126, 1025 }; for ( i = 1; i < sizeof(xs)/sizeof(xs[0]); ++ i ) { prime_t x = xs[i]; prime_t *factors = prime_factors(x); printf("factors(%lu) = { ", (unsigned long) x); for ( j = 0; factors[j]; ++ j ) { printf("%lu%s ", (unsigned long) factors[j], factors[j + 1] ? "," : ""); } printf("}\n"); free(factors); } } return 0; } #endif gmv0.9/src/util/prime.h0100644000175200017560000000060407037351060015371 0ustar stephensstepheng#ifndef _util_prime_h #define _util_prime_h /* $Id: prime.h,v 1.3 2000/01/13 13:25:04 stephensk Exp $ */ #ifndef prime_t typedef unsigned long prime_t; #endif const prime_t * prime_le(prime_t x); const prime_t * prime_ge(prime_t x); const prime_t * prime_q(prime_t x); const prime_t * prime_next(const prime_t *p); prime_t * prime_factors(prime_t x); /* must free() result. */ #endif gmv0.9/src/util/rc4.c0100644000175200017560000000225007106156652014746 0ustar stephensstepheng#include "rc4.h" /* $Id: rc4.c,v 1.4 2000/05/10 03:55:22 stephensk Exp $ */ RC4_EXPORT int rc4_init(rc4_state *s, const char *_key, size_t keylen) { int i; int temp1, temp2, temp3, temp4; int i1, i2; const unsigned char *key = (const unsigned char *) _key; for ( i = 0; i < 256; i ++ ) s->_state[i] = i; s->_x = s->_y = 0; i1 = i2 = 0; for ( i = 0; i < 256; i ++ ) { int ch = key[i1]; temp4 = (ch + s->_state[i] + i2) & 255; temp1 = s->_state[temp4]; temp2 = s->_state[i]; temp3 = (i1 + 1) % keylen; s->_state[i] = temp1; s->_state[i2] = temp2; i1 = temp3; i2 = temp4; } return 0; } RC4_EXPORT int rc4_crypt(rc4_state *s, char *_data, size_t datalen) { int i; unsigned char *data = (unsigned char *) _data; for ( i = 0; i < datalen; i ++ ) { int temp1, temp2; s->_x ++; /* SAME AS: s->_x = (s->_x + 1) & 255; */ s->_y += s->_state[s->_x]; /* SAME AS: s->_y = (s->_y + s->_state[s->_x]) & 255; */ temp1 = s->_state[s->_x]; s->_state[s->_x] = temp2 = s->_state[s->_y]; s->_state[s->_y] = temp1; data[i] ^= s->_state[(temp1 + temp2) & 255]; } return 0; } gmv0.9/src/util/rc4.h0100644000175200017560000000061707106156652014760 0ustar stephensstepheng#ifndef _rc4_h #define _rc4_h /* $Id: rc4.h,v 1.4 2000/05/10 03:55:22 stephensk Exp $ */ #include typedef struct rc4_state { unsigned char _state[256]; unsigned char _x, _y; } rc4_state; #ifndef RC4_EXPORT #define RC4_EXPORT #endif RC4_EXPORT int rc4_init(rc4_state *s, const char *key, size_t keylen); RC4_EXPORT int rc4_crypt(rc4_state *s, char *data, size_t datalen); #endif gmv0.9/src/util/setenv.c0100644000175200017560000000244506702204466015566 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_util_setenv_c__ #define __rcs_id_util_setenv_c__ static const char __rcs_id_util_setenv_c[] = "$Id: setenv.c,v 1.3 1999/04/05 19:04:22 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include #include #include "setenv.h" extern char **environ; void setenv(const char *name, const char *value) { size_t name_len, value_len; int i; char *e, *v; static int realloc_environ = 0; if ( ! (name && *name && value && *value) ) return; name_len = strlen(name); value_len = strlen(value); for ( i = 0; (e = environ[i]); i ++ ) { if ( strncmp(e, name, name_len) == 0 && e[name_len] == '=' ) { v = e + name_len + 1; if ( strlen(v) <= value_len ) { strcpy(v, value); return; } else { break; } } } if ( ! e ) { if ( realloc_environ ) { environ = realloc(environ, sizeof(environ[0]) * (i + 2)); } else { char **new_environ = malloc(sizeof(environ[0]) * (i + 2)); memcpy(new_environ, environ, sizeof(environ[0]) * i); environ = new_environ; realloc_environ ++; } environ[i + 1] = 0; } /* This might leak mem */ e = malloc(name_len + value_len + 2); strcpy(e, name); strcpy(e + name_len, "="); strcpy(e + name_len + 1, value); environ[i] = e; } gmv0.9/src/util/setenv.h0100644000175200017560000000057106702204466015571 0ustar stephensstepheng#ifndef _util_setenv_h #define _util_setenv_h #ifndef __rcs_id__ #ifndef __rcs_id_util_setenv_h__ #define __rcs_id_util_setenv_h__ static const char __rcs_id_util_setenv_h[] = "$Id: setenv.h,v 1.3 1999/04/05 19:04:22 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #ifndef setenv #define setenv ion_setenv #endif void setenv (const char *name, const char *value); #endif gmv0.9/src/util/sig.c0100644000175200017560000000250107034305357015035 0ustar stephensstepheng#include "sig.h" #include #include /* isdigit() */ #include /* atoi */ static sigdef sigdefs[] = { #define signal_def(N,S,D) { #N, S, D }, #include "signals.h" { 0, -1, 0 } }; sigdef *sigdef_begin() { return sigdefs; } sigdef *sigdef_end() { return sigdefs + sizeof(sigdefs)/sizeof(sigdefs[0]) - 1; } sigdef *sigdef_by_name(const char *name) { int i; if ( ! name ) return 0; if ( strncasecmp(name, "SIG", 3) == 0 ) { name += 3; } if ( isdigit(*name) ) { int sig = atoi(name); for ( i = 0; sigdefs[i].name; i ++ ) { if ( sigdefs[i].sig == sig ) return &sigdefs[i]; } } else { for ( i = 0; sigdefs[i].name; i ++ ) { if ( strcasecmp(sigdefs[i].name, name) == 0 ) return &sigdefs[i]; } } return 0; } sigdef *sigdef_by_sig(int sig) { int i; for ( i = 0; sigdefs[i].name; i ++ ) { if ( sigdefs[i].sig == sig ) return &sigdefs[i]; } return 0; } sigdef *sigdef_max_sig(void) { int i; sigdef *m = &sigdefs[0]; for ( i = 1; sigdefs[i].name; i ++ ) { if ( sigdefs[i].sig > m->sig ) m = &sigdefs[i]; } return m; } sigdef *sigdef_min_sig(void) { int i; sigdef *m = &sigdefs[0]; for ( i = 1; sigdefs[i].name; i ++ ) { if ( sigdefs[i].sig < m->sig ) m = &sigdefs[i]; } return m; } gmv0.9/src/util/sig.h0100644000175200017560000000053407034305357015046 0ustar stephensstepheng#ifndef _util_sig_h #define _util_sig_h #include typedef struct sigdef { const char *name; int sig; const char *desc; void *user[4]; } sigdef; sigdef *sigdef_by_name(const char *signame); sigdef *sigdef_by_sig(int sig); sigdef *sigdef_begin(); sigdef *sigdef_end(); sigdef *sigdef_min_sig(); sigdef *sigdef_max_sig(); #endif gmv0.9/src/util/sigs.pl0100644000175200017560000000102507034305357015411 0ustar stephensstepheng#!/bin/perl # $Id: sigs.pl,v 1.4 2000/01/04 05:53:51 stephensk Exp $ print "/* DO NOT MODIFY: Created by perl $0 @ARGV */\n"; while ( <> ) { #print; if ( m@^\s*#define\s+SIG([A-Z0-9]+)\s+(\S+)(\s+/\*\s*(.*)\s*(\*/))?@ ) { $name = $1; $sig = $2; $comment = $4; $comment =~ s/^\s+//; $comment =~ s/\s+$//; if ( $sig !~ /[()]/ && $comment ne '' ) { print "#ifdef SIG$name\n"; print "signal_def($name,SIG$name,\"$comment\") /* $sig */\n"; print "#endif\n"; } } } print "#undef signal_def\n"; 1; gmv0.9/src/util/ssprintf.c0100644000175200017560000000373707034310640016126 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_util_ssprintf_c__ #define __rcs_id_util_ssprintf_c__ static const char __rcs_id_util_path_c[] = "$Id: ssprintf.c,v 1.2 2000/01/04 06:22:24 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include #include #include #include #include "ssprintf.h" char *ssprintf(char *str, const char *format, ...) { size_t len; size_t flen; len = str ? strlen(str) : 0; /* Calc append length */ flen = strlen(format); { const char *f; va_list vap; va_start(vap, format); f = format; while ( *f ) { if ( *f == '%' ) { int l = 0; int w = 0; int more = 0; f ++; do { int fw = 0; more = 0; switch ( *(f ++) ) { case 's': fw = strlen(va_arg(vap, char*)); break; case '*': fw = va_arg(vap, int); break; case 'l': l ++; more = 1; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': w *= 10; w += f[-1] - '0'; more = 1; break; case '-': case '+': case '.': more = 1; break; case 'f': case 'g': case 'e': (void) va_arg(vap, double); fw = 32; break; case 'd': case 'u': case 'o': case 'x': case 'c': if ( l ) { (void) va_arg(vap, int); } else { (void) va_arg(vap, long); } flen += 32; break; case 'p': (void) va_arg(vap, void*); fw = 32; break; case '\0': break; case '%': break; default: abort(); break; } if ( fw < w ) { fw = w; } flen += fw; } while ( more && *f ); } else { f ++; } } va_end(vap); } /* re/alloc buffer */ if ( str ) { str = realloc(str, len + flen + 1); } else { str = malloc(flen + 1); } /* append to buffer */ { va_list vap; va_start(vap, format); vsprintf(str + len, format, vap); va_end(vap); } return str; } gmv0.9/src/util/ssprintf.h0100644000175200017560000000052106707527215016135 0ustar stephensstepheng#ifndef _util_ssprintf_h #define _util_ssprintf_h #ifndef __rcs_id__ #ifndef __rcs_id_util_ssprintf_h__ #define __rcs_id_util_ssprintf_h__ static const char __rcs_id_util_ssprintf_h[] = "$Id: ssprintf.h,v 1.1 1999/04/22 05:07:25 stephensk Exp $"; #endif #endif /* __rcs_id__ */ char *ssprintf(char *, const char *format, ...); #endif gmv0.9/src/util/test/0040755000175200017560000000000007236675453015106 5ustar stephensstephenggmv0.9/src/util/test/CVS/0040755000175200017560000000000007236675453015541 5ustar stephensstephenggmv0.9/src/util/test/CVS/Root0100644000175200017560000000003407236675453016401 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/util/test/CVS/Repository0100644000175200017560000000002707236675453017637 0ustar stephensstephenghome/ion/src/util/test gmv0.9/src/util/test/CVS/Entries0100644000175200017560000000013607236675453017072 0ustar stephensstepheng/ConfigTest.c/1.1/Fri May 7 13:29:31 1999// /ConfigTest.cfg/1.1/Fri May 7 13:29:31 1999// D gmv0.9/src/util/test/ConfigTest.c0100644000175200017560000000225006714565273017311 0ustar stephensstephengstatic char *_version_id = "$Id: ConfigTest.c,v 1.1 1999/05/07 13:29:31 stephensk Exp $"; #include "ConfigInfo.h" #include "config.h" #include #include #include /* isspace() */ #include "sqldummy.c" int main(int argc, char **argv, char **env) { ConfigInfo *config; passthru_config_init(argc, argv, env); config = passthru_config(); { char buf[1024]; while ( gets(buf) ) { char *key = buf; char **rec; if ( key[0] == 'p' ) { char *user, *password; while ( ! isspace(*key) ) key ++; while ( isspace(*key) ) key ++; user = key; while ( ! isspace(*key) ) key ++; *(key ++) = '\0'; while ( isspace(*key) ) key ++; password = key; while ( ! isspace(*key) ) key ++; *(key ++) = '\0'; printf("user = '%s', password = '%s'\n", user, password); rec = (char **) passthru_map_login(user, password); } else { rec = ConfigInfo_getRowForKey(config, 0, key); } if ( rec ) { int i; for ( i = 0; rec[i]; i ++ ) { printf("\"%s\"\t", rec[i]); } printf("\n"); } else { fprintf(stderr, "No record for '%s'\n", buf); } } } return 0; } gmv0.9/src/util/test/ConfigTest.cfg0100644000175200017560000000005406714565273017626 0ustar stephensstepheng#ConfigTest.cfg config1 1 2 3 config2 1 2 3 gmv0.9/src/util/refcntptr.hh0100644000175200017560000000511407267632146016451 0ustar stephensstepheng#ifndef _util_REFCNTPTR_HH #define _util_REFCNTPTR_HH #ifndef refcntptr_DEBUG #define refcntptr_DEBUG 0 #endif #if refcntptr_DEBUG #define refcntptr_DEBUG_PRINT(X) printf X #else #define refcntptr_DEBUG_PRINT(X)(void)0 #endif #include /* assert(_refcnt) */ /* Class with refcnt support. */ #define refcntptr_STRINGTIZE_(T)#T #define refcntptr_STRINGTIZE(T)refcntptr_STRINGTIZE_(T) #define refcntptr_(T)T #define refcntptr_PASTE_(A,B)A##B #define refcntptr_PASTE(A,B)refcntptr_PASTE_(A,B) /* Declare ref count manipulation glue. */ #define refcntptr_DECL(T) \ void __ref(refcntptr_(T)*); \ void __deref(refcntptr_(T)*); \ extern "C" refcntptr_(T)* refcntptr_PASTE(T,_ref)(refcntptr_(T)* __p); \ extern "C" void refcntptr_PASTE(T,_deref)(refcntptr_(T)* __p); /* Defines support for refcntptr in T. */ #define refcntptr_CLASS(T) \ private: \ unsigned long _refcnt; \ public: \ virtual void __deref_delete(void); \ void __ref(void) { ++ _refcnt; assert(_refcnt); } \ void __deref(void) \ { \ if ( _refcnt <= 1 ) { \ refcntptr_DEBUG_PRINT(("(%s*)%p delete\n", refcntptr_STRINGTIZE(T), this)); \ this->__deref_delete(); \ } else { \ -- _refcnt; \ } \ } /* Defines ref count manipulation glue. */ #define refcntptr_DEF(SCOPE,T) \ SCOPE void __ref(refcntptr_(T)* __p) { if ( __p ) __p->__ref(); } \ SCOPE void __deref(refcntptr_(T)* __p) { if ( __p ) __p->__deref(); } \ refcntptr_(T)* refcntptr_PASTE(T,_ref)(refcntptr_(T)* __p) { __ref(__p); return __p; } \ void refcntptr_PASTE(T,_deref)(refcntptr_(T)* __p) { __deref(__p); } template class refcntptr { private: T *_p; public: refcntptr () : _p(0) { }; refcntptr (T* ptr) { __ref(_p = ptr); } refcntptr (const refcntptr &x) { __ref(_p = x._p); } ~refcntptr () { __deref(_p); } refcntptr& operator = (T* p) { __ref(p); __deref(_p); _p = p; return *this; } refcntptr& operator = (const refcntptr& x) { return (*this) = x._p; } operator void* () const { return (void*) _p; } operator int () const { return (int) _p; } operator T* () const { return _p; } int operator ! () const { return ! (int) _p; } T& operator *() const { return *_p; } T* operator ->() const { return _p; } int operator == (T* ptr) const { return _p == ptr; } int operator == (const refcntptr &x) const { return *this == x._p; } int operator != (T* ptr) const { return _p != ptr; } int operator != (const refcntptr &x) const { return *this != x._p; } int operator < (T* ptr) { return _p < ptr; } int operator < (const refcntptr &x) const { return *this < x._p; } }; #endif gmv0.9/src/util/refcntptr.cc0100644000175200017560000000242507263152105016425 0ustar stephensstepheng#include "refcntptr.hh" #ifdef UNIT_TEST #include class Cons; inline void __ref(Cons *t); inline void __deref(Cons *t); typedef refcntptr ref; #define Ref const ref & class Cons { private: friend void __ref(Cons *t); friend void __deref(Cons *t); unsigned long _refcnt; void __ref() { #ifdef _refcntptr_DEBUG fprintf(stderr,"(Cons*)%p->__ref()\n", this); #endif ++ _refcnt; } void __deref() { #ifdef _refcntptr_DEBUG fprintf(stderr,"(Cons*)%p->__deref()\n", this); #endif if ( -- _refcnt <= 0 ) { delete this; } } ref _car; ref _cdr; public: Cons() : _refcnt(0) { }; Cons(const ref &car, const ref &cdr) : _refcnt(0), _car(car), _cdr(cdr) { }; ~Cons() { #ifdef _refcntptr_DEBUG fprintf(stderr, "delete (Cons*)%p\n"); #endif } void _print(Ref x) { if ( x ) { x->print(); } else { fprintf(stderr, "nil"); } } void print() { fprintf(stderr, "("); _print(_car); fprintf(stderr, " . "); _print(_cdr); fprintf(stderr, ")"); } }; inline void __ref(Cons *t) { if ( t ) t->__ref(); } inline void __deref(Cons *t) { if ( t ) t->__deref(); } int main(int argc, char **argv) { ref x; ref y = new Cons(); ref z = new Cons(x, y); z->print(); return 0; } #endif gmv0.9/src/util/memcpy.h0100644000175200017560000000071107263231170015546 0ustar stephensstepheng#ifndef _util_MEMCPY_H #define _util_MEMCPY_H #ifdef __cplusplus #include /* Typesafe memcpy handles assignment properly. */ template inline void _typesafe_memcpy(T1 *_dst, const T2 *_src, size_t _size) { assert(_size % sizeof(*_dst) == 0); _size /= sizeof(*_dst); while ( _size -- >= 0 ) { *(_dst ++) = *(_src ++); } } #define memcpy(A,B,C) _typesafe_memcpy(A,B,C) #else #include #endif #endif gmv0.9/src/util/nurbs.c0100644000175200017560000000544607270651343015420 0ustar stephensstepheng #ifndef _util_NURBS_H #include "nurbs.h" #endif #include #include NURBS(EXPORT) int NURBS(_check_pi)(const NURBS(NURBS_T) *n, int i) { assert(i >= 0); assert(i < n->nv); return i; } NURBS(EXPORT) int NURBS(_check_ui)(const NURBS(NURBS_T) *n, int i) { assert(i >= 0); assert(i < n->nu); return i; } #define deg_ (n->degree) #define nv n->nv #define vdim n->vdim #define P(i) (n->v + n->voff + n->vskip * NURBS(_check_pi)(n, (i))) #define W(i) (n->w + n->woff + n->wskip * NURBS(_check_pi)(n, (i)))[0] #define U(i) (n->u[NURBS(_check_ui)(n, (i))]) #ifndef NURBS_EXPORT #define NURBS_EXPORT #endif NURBS(EXPORT) NURBS(T) NURBS(_min_knot)(NURBS(NURBS_T) *n) { return n->u[0]; } NURBS(EXPORT) NURBS(T) NURBS(_max_knot)(NURBS(NURBS_T) *n) { return n->u[n->nu - n->degree]; } NURBS(EXPORT) int NURBS(_find_span) (NURBS(NURBS_T) *n, NURBS(T) u) { if ( u >= U(nv) ) return nv - 1 ; if ( u <= U(deg_) ) return deg_ ; { int low = 0 ; int high = nv + 1 ; int mid; while ( mid = (low + high) / 2, u < U(mid) || u >= U(mid + 1) ) { if ( u < U(mid) ) high = mid ; else low = mid ; } return mid ; } } NURBS(EXPORT) void NURBS(_basis_funs) (NURBS(NURBS_T) *n, NURBS(T) u, int i, NURBS(T) *N) { NURBS(T)* left = (NURBS(T)*) alloca(2 * (deg_+1) * sizeof(NURBS(T))) ; NURBS(T)* right = &left[deg_ + 1] ; int j; N[0] = 1.0 ; for ( j = 1; j <= deg_ ; ++ j ) { int r; NURBS(T) saved = 0.0; left[j] = u - U(i + 1 - j) ; right[j] = U(i + j) - u ; for ( r = 0 ; r < j; ++ r ) { NURBS(T) temp = N[r] / (right[r + 1] + left[j - r]) ; N[r] = saved + right[r + 1] * temp ; saved = left[j - r] * temp ; } N[j] = saved ; } } NURBS(EXPORT) void NURBS(_basis_funs_der)(NURBS(NURBS_T) *n, NURBS(T) u, int i, int d, NURBS(T) *funs) { } NURBS(EXPORT) NURBS(T) * NURBS(_eval) (NURBS(NURBS_T) *n, NURBS(T) u, NURBS(T) *p) { int span = NURBS(_find_span)(n, u); NURBS(T) *Nb = (NURBS(T) *) alloca(sizeof(Nb[0]) * (deg_ + 1)); int i, j; NURBS(T) w; NURBS(_basis_funs)(n, u, span, Nb); i = deg_; for ( j = 0; j < vdim; ++ j ) { p[j] = Nb[i] * P(span - deg_ + i)[j] * (n->w ? W(span - deg_ + i) : 1); } if ( n->w ) { w = Nb[i] * W(span - deg_ + i); } for ( -- i; i >= 0; -- i ) { for ( j = 0; j < vdim; ++ j ) { p[j] += Nb[i] * P(span - deg_ + i)[j] * (n->w ? W(span - deg_ + i) : 1); } if ( n->w ) { w += Nb[i] * W(span - deg_ + i); } } /* Homogenous division. */ if ( n->w ) { for ( j = 0; j < vdim; ++ j ) { p[j] /= w; } } return p; } NURBS(EXPORT) NURBS(T) * NURBS(_eval_der)(NURBS(NURBS_T) *n, NURBS(T) u, int d, NURBS(T) *p) { return p; } #undef deg_ #undef nv #undef vdim #undef P #undef W #undef U gmv0.9/src/util/nurbs.h0100644000175200017560000000206707270651343015421 0ustar stephensstepheng#ifndef _util_NURBS_H #define _util_NURBS_H #ifndef NURBS_T #define NURBS_T double #endif #define __NURBS(X)NURBS_##X #define _NURBS(X)__NURBS(X) #define NURBS(X)_NURBS(X) typedef struct NURBS(NURBS_T) { short degree; int nv; NURBS(T) *v; short vdim; short vskip; short voff; NURBS(T) *w; short wskip; short woff; int nu; NURBS(T) *u; /* Length must be nv + (degree * 2) - 2. */ } NURBS(NURBS_T); #ifndef NURBS_IMPORT #define NURBS_IMPORT /* extern */ #endif NURBS(IMPORT) NURBS(T) NURBS(_min_knot)(NURBS(NURBS_T) *n); NURBS(IMPORT) NURBS(T) NURBS(_max_knot)(NURBS(NURBS_T) *n); NURBS(IMPORT) int NURBS(_find_span) (NURBS(NURBS_T) *n, NURBS(T) u); NURBS(IMPORT) void NURBS(_basis_funs) (NURBS(NURBS_T) *n, NURBS(T) u, int span, NURBS(T) *funs); NURBS(IMPORT) void NURBS(_basis_funs_der)(NURBS(NURBS_T) *n, NURBS(T) u, int span, int d, NURBS(T) *funs); NURBS(IMPORT) NURBS(T) *NURBS(_eval) (NURBS(NURBS_T) *n, NURBS(T) u, NURBS(T) *r); NURBS(IMPORT) NURBS(T) *NURBS(_eval_der)(NURBS(NURBS_T) *n, NURBS(T) u, int d, NURBS(T) *r); #endif gmv0.9/src/maks/0040755000175200017560000000000007306140400014056 5ustar stephensstephenggmv0.9/src/maks/CVS/0040755000175200017560000000000007262562005014523 5ustar stephensstephenggmv0.9/src/maks/CVS/Root0100644000175200017560000000003407236675452015377 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/maks/CVS/Repository0100644000175200017560000000002207236675452016630 0ustar stephensstephenghome/ion/src/maks gmv0.9/src/maks/CVS/Entries0100644000175200017560000000056207262562005016057 0ustar stephensstepheng/fixpound.pl/1.2/Fri Feb 19 09:26:01 1999// /tool.mak/1.7/Tue Mar 21 08:21:48 2000// /tools.mak/1.5/Thu Sep 9 04:59:21 1999// D/bin//// D/opengl//// D/os//// D/win32//// /PKG/1.2/Tue Apr 3 18:51:56 2001// /lib.mak/1.6/Tue Apr 3 18:51:56 2001// /pre.mak/1.10/Tue Apr 3 18:51:56 2001// /use.mak/1.4/Tue Apr 3 18:51:56 2001// /basic.mak/1.9/Wed Apr 4 09:09:10 2001// gmv0.9/src/maks/PKG0100744000175200017560000000031607262415714014436 0ustar stephensstephengNAME=maks VERSION=0.2 DESC="A Makefile library. Handles automatic header file dependencies and interpackage dependencies." CATEGORY="Development Tools" REQUIRES_PKGS="../bin" REQUIRES_OTHERS="gnumake sh" gmv0.9/src/maks/basic.mak0100744000175200017560000001046707262562266015662 0ustar stephensstepheng# $Id: basic.mak,v 1.9 2001/04/04 09:09:10 stephens Exp $ Makefile=Makefile Makefile.use=Makefile.use ########################################################################## # Suffix translation rules # SWIG SWIG.swig=swig $(SWIG_C_FILES_GEN) : $(GEN_FILE_DIR)/$(notdir %)_swig$(c) : %$(swig) $(foreach w,$(SWIG_WRAPPER),$(SWIG.swig) -$w $(SWIG_WRAPPER_$w) -o $(GEN_FILE_DIR)/$(notdir $*)_swig_$(w)$(c) $<;) touch $(GEN_FILE_DIR)/$(notdir $*)_swig$(c) # C %$(c):%$(o) $(C_O_FILES_GEN) : $(O_FILE_DIR)/$(notdir %)$(o) : %$(c) $(COMPILE.c) $< -o $(O_FILE_DIR)/$(notdir $*)$(o) $(C_GEN_O_FILES_GEN) : $(O_FILE_DIR)/%$(o) : $(GEN_FILE_DIR)/%$(c) $(COMPILE.c) $< -o $(O_FILE_DIR)/$*$(o) # C++ %$(cc):%$(o) $(CC_O_FILES_GEN) : $(O_FILE_DIR)/$(notdir %)$(o) : %$(cc) $(COMPILE.cc) $< -o $(O_FILE_DIR)/$(notdir $*)$(o) # yacc %$(y):%$(o) %$(y):%$(c) ifeq "$(strip $(MACHTYPE))" "i586-pc-cygwin32" YACC+= -S '$(CYGFS)/share/bison.simple' else YACC=bison --yacc endif $(Y_C_FILES_GEN) : $(GEN_FILE_DIR)/$(notdir %)$(c) : %.y $(CP) $*$(y) $(GEN_FILE_DIR)/$(notdir $*)$(y) cd $(GEN_FILE_DIR) && $(YACC) -d $(notdir $*)$(y) $(MV) $(GEN_FILE_DIR)/y.tab.c $(GEN_FILE_DIR)/$(notdir $*)$(c) $(MV) $(GEN_FILE_DIR)/y.tab.h $(GEN_FILE_DIR)/$(notdir $*).yh # Java ifneq "$(strip $(JAVA_FILES_ALL))" "" ifeq "$(strip $(JAVA_TIMESTAMP))" "" JAVA_TIMESTAMP=$(JAVA_CLASS_FILE_DIR)/../.jc endif $(JAVA_TIMESTAMP) : $(JAVA_FILES_ALL) '$(JAVAC)' $(JAVACFLAGS) -d $(JAVA_CLASS_FILE_DIR) $(JAVA_FILES_ALL) $(TOUCH) $@ PRODUCTS+=$(JAVA_TIMESTAMP) GARBAGE_DIRS+=$(JAVA_CLASS_FILE_DIR) endif #DIRS += $(GEN_FILE_DIR) ########################################################################## EARLY_TARGETS+= USE_ALL DIRS $(Y_C_FILES_GEN) DEPS ########################################################################## all : $(EARLY_TARGETS) $(PRODUCTS) $(TARGETS) @$(MSG) Made $@ ########################################################################## # Autodependencies # Header deps #$(O_FILES_GEN) : $(H_FILES) DEP_FILE_DIR:=$(O_FILE_DIR) make_dep = $(ECHO) "Making include deps for $<"; $(SHELL) -ec 'o="$(notdir $*)$(o)"; od="$(O_FILE_DIR)/$$o"; d="$(DEP_FILE_DIR)/$(notdir $*).d"; $(CC) -MM $(CPPFLAGS) $< | sed -e "s@$$o[ ]*:@$$od : $(Makefile) $(Makefile.use) @g" > $$d; [ -s $$d ] || rm -f $$d' C_D_FILES += $(_C_FILES_ALL:%.c=$(DEP_FILE_DIR)/$(notdir %).d) $(C_D_FILES) : $(DEP_FILE_DIR)/$(notdir %).d : %.c $(make_dep) CC_D_FILES += $(_CC_FILES_ALL:%.cc=$(DEP_FILE_DIR)/$(notdir %).d) $(CC_D_FILES) : $(DEP_FILE_DIR)/$(notdir %).d : %.cc @$(make_dep) DEPS+= $(C_D_FILES) $(CC_D_FILES) # Disable deps DEPS:= DEPS : DIRS $(DEPS) .PHONY : DEPS GARBAGE+= $(DEPS) GENERATED_DIRS+= $(DEP_FILE_DIR) GARBAGE_DIRS+= $(DEP_FILE_DIR) ifeq "$(strip $(__DISABLE_DEPS__))" "" EARLY_TARGETS+= DEPS ifneq "$(strip $(DEPS))" "" $(DEPS) : $(DEP_FILE_DIR) -include $(DEPS) endif endif ########################################################################## # Use USE_ALL : @for f in $(USE_ALL) . ; \ do \ [ "$$f" = . ] && break; \ $(ECHO) "Using '$$f'" ;\ $(MAKE) -C "$$f" > /dev/null ; \ done .PHONY : USE_ALL ########################################################################## # Directories DIRS+= $(GENERATED_DIRS) $(OUTPUT_DIRS) DIRS:=$(sort $(DIRS)) $(DIRS) : $(MKDIRS) $@ DIRS : $(DIRS) .PHONY : DIRS ########################################################################## # Clean GARBAGE += $(O_FILES_GEN) GARBAGE += $(C_FILES_GEN) GARBAGE += $(PRODUCTS) GARBAGE += core *.core #GARBAGE += *.o clean : rm -f $(filter-out .,$(sort $(GARBAGE))) rm -rf $(filer-out .,$(sort $(GARBAGE_DIRS))) @$(MSG) Made $@ cleanproducts : rm -f $(PRODUCTS) veryclean : clean rm -rf $(filter-out .,$(sort $(GENERATED_DIRS) $(GARBAGE_VERY_DIRS))) @$(MSG) Made $@ archiveclean : veryclean @$(MSG) Made $@ .PHONY : clean veryclean archiveclean cleanproducts ########################################################################## # Archive archive : tgz tgz : archiveclean pwd=`pwd`;dname=`basename $$pwd`;cd ..; $(TAR) -cvf - "$$dname" | $(GZIP) > "$$dname.tgz" .PHONY : archive tgz ######################################################################### # Variable make ifdef vm _vm : $(foreach f,$(vm), $($(f))) @$(MSG) Made $(vm): $< .PHONY : _vm endif ########################################################################## # EOF gmv0.9/src/maks/fixpound.pl0100644000175200017560000000025406663227051016262 0ustar stephensstepheng# $Id: fixpound.pl,v 1.2 1999/02/19 09:26:01 stephensk Exp $ while ( <> ) { chop; if ( /^#/ ) { print "/* ", $_, "*/\n"; } else { print $_, "\n"; } } gmv0.9/src/maks/lib.mak0100744000175200017560000000430607262415714015335 0ustar stephensstepheng# $Id: lib.mak,v 1.6 2001/04/03 18:42:08 stephens Exp $ # # Usage: # # LIB_NAME:= # include $(MAKS)/lib.mak # # Adds targets to create a library named LIB_NAME from LIB_O_FILES. # LIB_O_FILES defaults to O_FILES. # ############################################################## # Defaults LIB_PREFIX:=lib# LIB_SUFFIX:=.a# LIB:=$(LIB_DIR)/$(LIB_PREFIX)$(LIB_NAME)$(LIB_SUFFIX)# ifeq "$(strip $(LIB_O_FILES))" "" LIB_O_FILES:=$(O_FILES)# endif ifeq "$(strip $(LIB_LIB_FLAGS))" "" LIB_LIB_FLAGS:=$(LIB_FLAGS) endif ifeq "$(strip $(LIB_LIBS))" "" LIB_LIBS:=$(LIBS) endif ############################################################## # Target ifneq "$(strip $(LIB_DYNAMIC))" "" LIB_DLL_SUFFIX=.dll# LIB_DLL:=$(LIB_DIR)/$(LIB_NAME)$(LIB_DLL_SUFFIX)# LIB_DLL_DEF:=$(LIB_DIR)/$(LIB_NAME).def# ifneq "$(strip $(SWIG2DEF))" "" LIB_SWIG2DEF:=perl $(MAKS)/../bin/swig2def.pl $(SWIG2DEF) > $(LIB_DLL_DEF)# LIB_DEF:=--def $(LIB_DLL_DEF)# else LIB_SWIG2DEF:=true# LIB_DEF:=--output-def $(LIB_DLL_DEF)# endif $(LIB_DLL) $(LIB) : $(LIB_O_FILES) $(LIB_SWIG2DEF) dllwrap --verbose --output-lib $(LIB) $(LIB_DEF) --dllname $(LIB_DLL) $(LIB_O_FILES) $(LIB_LIB_FLAGS) $(foreach l,$(LIB_LIBS),-l'$(l)') else LIB_DLL:=# $(LIB) : $(LIB_O_FILES) -$(RM) $@ $(AR) cr $@ $(LIB_O_FILES) endif $(LIB_DLL) $(LIB) : LIB:=$(LIB) $(LIB_DLL) $(LIB) : LIB_O_FILES:=$(LIB_O_FILES) $(LIB_DLL) $(LIB) : LIB_DLL:=$(LIB_DLL) $(LIB_DLL) $(LIB) : LIB_DLL_DEF:=$(LIB_DLL_DEF) $(LIB_DLL) $(LIB) : LIB_SWIG2DEF:=$(LIB_SWIG2DEF) $(LIB_DLL) $(LIB) : LIB_DEF:=$(LIB_DEF) $(LIB_DLL) $(LIB) : LIB_LIB_FLAGS:=$(LIB_LIB_FLAGS) $(LIB_DLL) $(LIB) : LIB_LIBS:=$(LIB_LIBS) ############################################################## # Alias .PHONY : $(LIB_NAME) $(LIB_NAME) : $(LIB) ############################################################## # Exports LOCAL_LIBS:=$(LOCAL_LIBS) $(LIB)# LIB_PRODUCTS:=$(LIB_PRODUCTS) $(LIB) $(LIB_DLL)# PRODUCTS:=$(PRODUCTS) $(LIB) $(LIB_DLL)# libs :: $(LIB_PRODUCTS) @$(MSG) Made $@: $(LIB_PRODUCTS) .PHONY : libs ############################################################## # Reset vars LIB:=# LIB_NAME:=# LIB_O_FILES:=# LIB_DLL:=# SWIG2DEF:=# ############################################################## # EOF gmv0.9/src/maks/pre.mak0100744000175200017560000001501307262415714015352 0ustar stephensstepheng# $Id: pre.mak,v 1.10 2001/03/17 20:20:04 stephens Exp $ include $(MAKS)/tools.mak ######################################################################### # Variable query ifdef v _v : @$(foreach f,$(v),$(ECHO) "$(f)='$($(f))'"; ) .PHONY : _v endif ######################################################################### # Variable make ifdef vm _vm : endif ######################################################################### # Default targets all : .PHONY : all clean ######################################################################### # Build Options ifndef DEBUG DEBUG=YES endif export DEBUG ifndef OPTIMIZE OPTIMIZE=NO endif export OPTIMIZE ######################################################################### # Disable RCS and SCCS get % : %,v % : RCS/%,v % : s.% % : SCCS/s.% %.mak : %.use : Makefile : ######################################################################### # Config CWD=$(shell pwd) export CWD ifeq "$(strip $(MAKE_ARCH))" "" MAKE_ARCH:=$(shell uname) export MAKE_ARCH endif ifeq "$(strip $(DEV_ROOT))" "" DEV_ROOT:=$(HOME) export DEV_ROOT endif #DEV_ROOT:=$(strip $(shell cd "$(DEV_ROOT)" && pwd)) ######################################################################### # Directories # libraries go in LIB_DIR ifeq "$(strip $(LIB_DIR))" "" LIB_DIR:=$(DEV_ROOT)/lib/$(MAKE_ARCH) export LIB_DIR endif OUTPUT_DIRS+= $(LIB_DIR) # executables go in TOOL_DIR ifeq "$(strip $(TOOL_DIR))" "" TOOL_DIR:=$(DEV_ROOT)/bin/$(MAKE_ARCH) export TOOL_DIR endif OUTPUT_DIRS+= $(TOOL_DIR) ifeq "$(strip $(GEN_FILE_ROOT))" "" GEN_FILE_ROOT:=mak_gen GARBAGE_VERY_DIRS:=$(GARBAGE_VERY_DIRS) $(GEN_FILE_ROOT) endif # test executables go in TEST_DIR ifeq "$(strip $(TEST_DIR))" "" TEST_DIR:=$(GEN_FILE_ROOT)/$(MAKE_ARCH)/t export TEST_DIR endif OUTPUT_DIRS+= $(TEST_DIR) # object files go in O_FILE_DIR ifeq "$(strip $(O_FILE_DIR))" "" O_FILE_DIR:=$(GEN_FILE_ROOT)/$(MAKE_ARCH)/o export O_FILE_DIR endif #VPATH:=$(VPATH) $(O_FILE_DIR)# # Java class files go in JAVA_CLASS_FILE_DIR ifeq "$(strip $(JAVA_CLASS_FILE_DIR))" "" JAVA_CLASS_FILE_DIR:=$(GEN_FILE_ROOT)/jvm export JAVA_CLASS_FILE_DIR endif ifeq "$(DEBUG)" "YES" JAVACFLAGS+=-g CFLAGS+= $(DEBUG_FLAGS) CXXFLAGS+= $(DEBUG_FLAGS) O_FILE_DIR:=$(strip $(O_FILE_DIR)d) endif ifeq "$(OPTIMIZE)" "YES" JAVACFLAGS+=-O CFLAGS+= $(OPTIMIZE_FLAGS) CXXFLAGS+= $(OPTIMIZE_FLAGS) O_FILE_DIR:=$(strip $(O_FILE_DIR)o) endif GENERATED_DIRS+= $(O_FILE_DIR) # # yacc, lex and other tools put there output in GEN_FILE_DIR ifeq "$(strip $(GEN_FILE_DIR))" "" GEN_FILE_DIR:=$(MAKE_ARCH)/g GEN_FILE_DIR:=$(O_FILE_DIR) export GEN_FILE_DIR endif GENERATED_DIRS+= $(GEN_FILE_DIR) #EARLY_TARGETS+= $(DIRS) # Expect to be using some libs generated by us LIB_DIRS+= $(LIB_DIR) ######################################################################### # Suffixes exe= o=.o c=.c cc=.cc y=.y yy=.yy h=.h hh=.h java=.java class=.class swig=.swig ######################################################################### # Default CC options OPTIMIZE_FLAGS+= -O3 DEBUG_FLAGS+= -g CFLAGS+= -Wall ######################################################################### # Target-specifics include $(MAKS)/os/$(MAKE_ARCH).mak ######################################################################### # BUILD_VARS ifndef BUILD_TARGET export BUILD_TARGET:=$(MAKE_ARCH) endif BUILD_VARS+= BUILD_TARGET ifndef BUILD_DATE export BUILD_DATE:=$(shell date) endif BUILD_VARS+= BUILD_DATE ifndef BUILD_HOST export BUILD_HOST:=$(shell hostname) endif BUILD_VARS+= BUILD_HOST ifndef BUILD_USER export BUILD_USER:=$(USER) endif BUILD_VARS+= BUILD_USER ifndef BUILD_ROOT export BUILD_ROOT:=$(CWD) endif BUILD_VARS+= BUILD_ROOT _DEFINES:= $(foreach v,$(BUILD_VARS),-D'$v="$(${v})"' ) DEFINE_FLAGS:=$(DEFINE_FLAGS) $(_DEFINES) ######################################################################### # BUILD_VARS build_vars_h = $(GEN_FILE_DIR)/build_vars.h build_vars_h : $(dir $(build_vars_h)) $(ECHO) '/* DO NOT MODIFY Generated by maks/pre.mak. */' > $(build_vars_h) $(foreach v,$(BUILD_VARS),$(ECHO) '#define $(v) "$($(v))"' >> $(build_vars_h); ) @$(MSG) Made $@ EARLY_TARGETS+= build_vars_h GARBAGE+= $(build_vars_h) ######################################################################### # Defines DEFINE_FLAGS+= $(foreach f,$(DEFINES), -D'$(f)') ######################################################################### # Includes INCLS+= $(O_FILE_DIR) INCL_FLAGS+= $(foreach f,$(INCLS), -I'$(f)') CPPFLAGS+= $(DEFINE_FLAGS) $(INCL_FLAGS) ######################################################################### # Libs LIB_FLAGS+= $(foreach f,$(LIB_DIRS), -L'$(f)') LIB_FLAGS+= $(foreach f,$(LIBS), -l'$(f)') ######################################################################### # version ######################################################################### # yacc Y_FILES_ALL+= $(Y_FILES) $(Y_FILES_GEN) _Y_FILES_ALL=$(notdir $(Y_FILES_ALL)) Y_C_FILES_GEN+= $(_Y_FILES_ALL:%$(y)=$(GEN_FILE_DIR)/$(notdir %)$(c)) C_FILES_GEN+= $(Y_C_FILES_GEN) ######################################################################### # swig SWIG_WRAPPER=tcl8# SWIG_WRAPPER_tcl8=-namespace -module $(notdir $*) SWIG_FILES_ALL+= $(SWIG_FILES) $(SWIG_FILES_GEN) _SWIG_FILES_ALL=$(notdir $(SWIG_FILES_ALL)) SWIG_C_FILES_GEN+= \ $(_SWIG_FILES_ALL:%$(swig)=$(GEN_FILE_DIR)/$(notdir %)_swig$(c)) SWIG_WRAPPER_C_FILES_GEN+= \ $(foreach w,$(SWIG_WRAPPER),$(_SWIG_FILES_ALL:%$(swig)=$(GEN_FILE_DIR)/$(notdir %)_swig_$(w)$(c))) C_FILES_GEN+= $(SWIG_C_FILES_GEN) $(SWIG_WRAPPER_C_FILES_GEN) ######################################################################### # C C_FILES_ALL+= $(C_FILES)# $(C_FILES_GEN) _C_FILES_ALL=$(notdir $(C_FILES_ALL)) C_O_FILES_GEN+= $(_C_FILES_ALL:%$(c)=$(O_FILE_DIR)/$(notdir %)$(o)) C_GEN_O_FILES_GEN+= $(C_FILES_GEN:%$(c)=%$(o)) O_FILES_GEN+= $(C_O_FILES_GEN) $(C_GEN_O_FILES_GEN) ######################################################################### # C++ CC_FILES_ALL+= $(CC_FILES) $(CC_FILES_GEN) _CC_FILES_ALL=$(notdir $(CC_FILES_ALL)) CC_O_FILES_GEN+= $(_CC_FILES_ALL:%$(cc)=$(O_FILE_DIR)/$(notdir %)$(o)) O_FILES_GEN+= $(CC_O_FILES_GEN) ######################################################################### # Java JAVA_FILES_ALL+= $(JAVA_FILES) $(JAVA_FILES_GEN) _JAVA_FILES_ALL=$(notdir $(JAVA_FILES_ALL)) JAVA_CLASS_FILES_GEN+= $(_JAVA_FILES_ALL:%$(java)=$(CLASS_FILE_DIR)/$(notdir %)$(class)) ######################################################################### # Object files O_FILES+= $(O_FILES_GEN) ######################################################################### # Use -include Makefile.use gmv0.9/src/maks/tool.mak0100644000175200017560000000316307065630434015542 0ustar stephensstepheng# $Id: tool.mak,v 1.7 2000/03/21 08:21:48 stephensk Exp $ ###################################################################### # Defaults TOOL_SUFFIX:=$(exe) _TOOL_DIR:=$(TOOL_DIR) ifneq "$(TOOL_TEST)" "" TOOL_DIR:=$(TEST_DIR) endif TOOL:=$(TOOL_DIR)/$(TOOL_NAME)$(TOOL_SUFFIX) TOOL_DIR:=$(_TOOL_DIR) ifeq "$(strip $(TOOL_MAIN))" "" TOOL_MAIN:=$(TOOL_NAME).c endif ifeq "$(strip $(TOOL_O_FILES))" "" TOOL_O_FILES:=$(TOOL_MAIN) endif TOOL_O_FILES_$(TOOL):=$(TOOL_O_FILES) ifeq "$(strip $(TOOL_LIBS))" "" TOOL_LIBS:=$(LIBS) endif TOOL_LIBS_$(TOOL):=$(TOOL_LIBS) ifeq "$(strip $(TOOL_LIB_FLAGS))" "" TOOL_LIB_FLAGS:=$(LIB_FLAGS) endif TOOL_LIB_FLAGS_$(TOOL):=$(TOOL_LIB_FLAGS) ###################################################################### # Target $(TOOL) : $(TOOL_O_FILES_$(TOOL)) $(LOCAL_LIBS) $(CC) $(CFLAGS) $(CPPFLAGS) -o '$@' $(TOOL_O_FILES_$(@)) $(TOOL_LIB_FLAGS_$(@)) $(foreach l,$(TOOL_LIBS_$(@)),-l'$(l)') # $(CP) $@ $(notdir $@) GARBAGE:=$(GARBAGE) $(notdir $(TOOL)) ###################################################################### # Aliases .PHONY : $(TOOL_NAME) $(notdir $(TOOL)) $(TOOL_NAME) $(notdir $(TOOL)) : $(TOOL) ###################################################################### # Export the target TOOL_PRODUCTS:=$(TOOL_PRODUCTS) $(TOOL) PRODUCTS:=$(PRODUCTS) $(TOOL) tools :: $(TOOL_PRODUCTS) @$(MSG) Made $@: $(TOOL_PRODUCTS) .PHONY : tools ###################################################################### # Reset vars TOOL_NAME:= TOOL_MAIN:= TOOL_O_FILES:= TOOL_LIBS:= TOOL_LIB_FLAGS:= TOOL_TEST:= ###################################################################### # EOF gmv0.9/src/maks/tools.mak0100644000175200017560000000032406765637251015733 0ustar stephensstepheng# $Id: tools.mak,v 1.5 1999/09/09 04:59:21 stephensk Exp $ ECHO=echo MSG_PREFIX=+++ MSG=$(ECHO) $(MSG_PREFIX) MKDIR=mkdir MKDIRS=$(MKDIR) -p CP=cp CP_RECURSIVE=$(CP) -rp MV=mv TAR=tar GZIP=gzip -9 GUNZIP=gzip -d gmv0.9/src/maks/use.mak0100744000175200017560000000075607262415714015370 0ustar stephensstepheng# $Id: use.mak,v 1.4 2001/03/21 02:04:14 stephens Exp $ # # Use a package. # # USE:= # include $(MAKS)/use.mak # # A package's Makefile.use contains the names of libraries # and header directories needed to 'USE' the package. # #USE:=$(strip $(shell cd $(USE) && /bin/pwd)) # Canonicalize the name error USE=$(USE) ifeq "$(findstring $(USE),$(USE_ALL))" "" # Include it once USE_ALL:=$(USE_ALL) $(USE) # Keep track of directories we USEd -include $(USE)/Makefile.use endif gmv0.9/src/maks/bin/0040755000175200017560000000000007236675452014654 5ustar stephensstephenggmv0.9/src/maks/bin/CVS/0040755000175200017560000000000007236675452015307 5ustar stephensstephenggmv0.9/src/maks/bin/CVS/Root0100644000175200017560000000003407236675452016147 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/maks/bin/CVS/Repository0100644000175200017560000000002607236675452017404 0ustar stephensstephenghome/ion/src/maks/bin gmv0.9/src/maks/bin/CVS/Entries0100644000175200017560000000011607236675452016636 0ustar stephensstepheng/mak/1.2/Mon Jun 28 14:03:33 1999// /mak.bat/1.3/Mon Jun 28 14:03:33 1999// D gmv0.9/src/maks/bin/mak0100644000175200017560000000064206735700265015340 0ustar stephensstepheng#!/bin/sh HOME=`cd "$HOME" && pwd` if [ -z "$DEV_ROOT" ] then DEV_ROOT="${HOME}/src" fi DEV_ROOT=`cd "$DEV_ROOT" && pwd` export DEV_ROOT if [ -z "$MAKS" ] then MAKS='/home/stephens/src/maks' fi MAKS=`cd "$MAKS" && pwd` export MAKS if [ -z "$MAKE_ARCH" ] then MAKE_ARCH=`uname` fi export MAKE_ARCH echo "HOME=$HOME" echo "DEV_ROOT=$DEV_ROOT" echo "MAKS=$MAKS" echo "MAKE_ARCH=$MAKE_ARCH" exec make ${1+"$@"} gmv0.9/src/maks/bin/mak.bat0100644000175200017560000000015206735700265016101 0ustar stephensstepheng@REM $Id: mak.bat,v 1.3 1999/06/28 14:03:33 stephensk Exp $ @sh %MAKS%\bin\mak %1 %2 %3 %4 %5 %6 %7 %8 %9 gmv0.9/src/maks/opengl/0040755000175200017560000000000007262533466015365 5ustar stephensstephenggmv0.9/src/maks/opengl/CVS/0040755000175200017560000000000007262562005016007 5ustar stephensstephenggmv0.9/src/maks/opengl/CVS/Root0100644000175200017560000000003407236675452016663 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/maks/opengl/CVS/Repository0100644000175200017560000000003107236675452020114 0ustar stephensstephenghome/ion/src/maks/opengl gmv0.9/src/maks/opengl/CVS/Entries0100644000175200017560000000013007262562005017332 0ustar stephensstepheng/Makefile/1.2/Fri Feb 19 09:26:02 1999// /Makefile.use/1.4/Wed Apr 4 09:09:10 2001// D gmv0.9/src/maks/opengl/Makefile0100644000175200017560000000011306663227052017010 0ustar stephensstepheng# $Id: Makefile,v 1.2 1999/02/19 09:26:02 stephensk Exp $ all : clean : gmv0.9/src/maks/opengl/Makefile.use0100644000175200017560000000075707262562266017626 0ustar stephensstepheng# $Id: Makefile.use,v 1.4 2001/04/04 09:09:10 stephens Exp $ #OPENGL_ROOT:=$(APPS)/dev# OPENGL_LIBDIR:=$(OPENGL_ROOT)# OPENGL_INCL:=$(OPENGL_ROOT)# # Are we using WIN32? MAKS_ARCH=$(MAKE_ARCH)# ifneq "$(strip $(findstring WIN,$(MAKS_ARCH)))" "" USE:=$(MAKS)/win32 include $(MAKS)/use.mak OPENGL_LIBS := opengl32 glu32 glut32 m # endif ifneq "$(strip $(findstring Linux,$(MAKS_ARCH)))" "" OPENGL_LIBS := GL GLU glut m # endif INCLS:=$(INCLS) $(OPENGL_INCL)# LIBS:=$(OPENGL_LIBS) $(LIBS)# gmv0.9/src/maks/os/0040755000175200017560000000000007236675452014525 5ustar stephensstephenggmv0.9/src/maks/os/CVS/0040755000175200017560000000000007236675452015160 5ustar stephensstephenggmv0.9/src/maks/os/CVS/Root0100644000175200017560000000003407236675452016020 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/maks/os/CVS/Repository0100644000175200017560000000002507236675452017254 0ustar stephensstephenghome/ion/src/maks/os gmv0.9/src/maks/os/CVS/Entries0100644000175200017560000000021207236675452016504 0ustar stephensstepheng/CYGWIN.mak/1.1/Thu Jan 13 11:24:09 2000// /CYGWIN_98-4.10.mak/1.1/Thu Jan 13 11:24:09 2000// /Linux.mak/1.1/Thu Jan 13 11:24:10 2000// D gmv0.9/src/maks/os/CYGWIN.mak0100644000175200017560000000013007037332731016173 0ustar stephensstepheng# $Id: CYGWIN.mak,v 1.1 2000/01/13 11:24:09 stephensk Exp $ # CYGWIN (generic) exe=.exe gmv0.9/src/maks/os/CYGWIN_98-4.10.mak0100644000175200017560000000016407037332731017102 0ustar stephensstepheng# $Id: CYGWIN_98-4.10.mak,v 1.1 2000/01/13 11:24:09 stephensk Exp $ # CYGWIN_98-4.10 include $(MAKS)/os/CYGWIN.mak gmv0.9/src/maks/os/Linux.mak0100644000175200017560000000011507037332732016276 0ustar stephensstepheng# $Id: Linux.mak,v 1.1 2000/01/13 11:24:10 stephensk Exp $ # Linux-specifics gmv0.9/src/maks/win32/0040755000175200017560000000000007236675452015046 5ustar stephensstephenggmv0.9/src/maks/win32/CVS/0040755000175200017560000000000007236675452015501 5ustar stephensstephenggmv0.9/src/maks/win32/CVS/Root0100644000175200017560000000003407236675452016341 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/maks/win32/CVS/Repository0100644000175200017560000000003007236675452017571 0ustar stephensstephenghome/ion/src/maks/win32 gmv0.9/src/maks/win32/CVS/Entries0100644000175200017560000000013007236675452017024 0ustar stephensstepheng/Makefile/1.2/Fri Feb 19 09:26:02 1999// /Makefile.use/1.2/Fri Feb 19 09:26:02 1999// D gmv0.9/src/maks/win32/Makefile0100644000175200017560000000011306663227052016466 0ustar stephensstepheng# $Id: Makefile,v 1.2 1999/02/19 09:26:02 stephensk Exp $ all : clean : gmv0.9/src/maks/win32/Makefile.use0100644000175200017560000000014506663227052017266 0ustar stephensstepheng# $Id: Makefile.use,v 1.2 1999/02/19 09:26:02 stephensk Exp $ LIBS := kernel32 user32 gdi32 $(LIBS) gmv0.9/src/bin/0040755000175200017560000000000007306140400013673 5ustar stephensstephenggmv0.9/src/bin/CVS/0040755000175200017560000000000007306135474014345 5ustar stephensstephenggmv0.9/src/bin/CVS/Root0100644000175200017560000000003407236675451015213 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/bin/CVS/Repository0100644000175200017560000000002107236675451016443 0ustar stephensstephenghome/ion/src/bin gmv0.9/src/bin/CVS/Entries0100644000175200017560000000343107306135474015677 0ustar stephensstepheng/PKG/1.1.1.1/Wed Feb 17 06:33:07 1999// /addcr/1.5/Wed Feb 17 23:02:18 1999// /addrcsid.pl/1.3/Mon Jun 28 13:55:59 1999// /ccinfo/1.1.1.1/Wed Feb 17 06:33:07 1999// /ccloclibs/1.1.1.1/Wed Feb 17 06:33:07 1999// /ctocnl.c/1.2/Fri Feb 19 09:25:26 1999// /cvschrep.pl/1.3/Sun Jan 14 15:40:02 2001// /cvschroot.pl/1.3/Wed Feb 17 22:29:09 1999// /cvsclean/1.1/Thu Oct 21 00:01:07 1999// /cvsedited/1.1/Wed Oct 13 21:42:43 1999// /cvsfind.pl/1.4/Thu Oct 21 00:01:07 1999// /cvsretag.pl/1.1/Thu Sep 9 06:11:27 1999// /cvsrevhist.pl/1.6/Tue Mar 21 07:13:26 2000// /cwfixlib.pl/1.2/Fri Feb 19 09:25:26 1999// /d2u.pl/1.8/Sun Jan 14 15:40:36 2001// /ecd/1.1.1.1/Wed Feb 17 06:33:07 1999// /fe/1.1.1.1/Wed Feb 17 06:33:08 1999// /findsource/1.1.1.1/Wed Feb 17 06:33:08 1999// /igrep/1.2/Thu Sep 30 18:41:09 1999// /linkdups/1.1.1.1/Wed Feb 17 06:33:07 1999// /locstatic/1.1.1.1/Wed Feb 17 06:33:08 1999// /lsup/1.2/Thu Sep 30 18:49:41 1999// /mergefiles.pl/1.2/Fri Feb 19 09:25:26 1999// /mkindex/1.2/Thu Sep 30 18:41:09 1999// /mvr.pl/1.1/Wed Oct 13 21:42:44 1999// /nmlibs/1.1.1.1/Wed Feb 17 06:33:07 1999// /nmm/1.1.1.1/Wed Feb 17 06:33:07 1999// /objcsyms/1.1.1.1/Wed Feb 17 06:33:08 1999// /sci/1.1.1.1/Wed Feb 17 06:33:08 1999// /scip/1.1.1.1/Wed Feb 17 06:33:08 1999// /si/1.2/Wed Oct 13 17:09:27 1999// /split.c/1.2/Fri Feb 19 09:25:26 1999// /tgz/1.6/Sun Jan 14 15:41:22 2001// /ts/1.2/Tue Mar 21 07:15:07 2000// /which/1.1.1.1/Wed Feb 17 06:33:08 1999// /whichall/1.1.1.1/Wed Feb 17 06:33:08 1999// /wwwsend/1.1.1.1/Wed Feb 17 06:33:07 1999// D/addcr.t//// D/lib//// /dos2unix.c/1.1/Fri Apr 8 22:48:41 1994// /swig2def.pl/1.1/Tue Apr 3 18:40:06 2001// /cvsfix.pl/1.1/Mon Apr 9 20:43:32 2001// /uud/1.3/Tue Apr 3 18:51:54 2001// /uudindex/1.3/Tue Apr 3 18:51:55 2001// /publish.pl/1.10/Sat Jun 2 10:09:00 2001// gmv0.9/src/bin/PKG0100644000175200017560000000034606662461243014256 0ustar stephensstephengNAME=bin VERSION=0.1 DESC="A development script library. Tools for: publishing PKG packages, adding COPYRIGHT and RCS version strings to source files, etc." CATEGORY="Development Tools" REQUIRES_PKGS="" REQUIRES_OTHERS="perl sh" gmv0.9/src/bin/addcr0100644000175200017560000002206706662645172014723 0ustar stephensstepheng#!/usr/local/bin/perl # @COPYRIGHT@ # # Copyright (c) 1997-1999 Kurt A. Stephens and ION, Inc., All Rights Reserved. # # http://www.acm.org/~stephensk # # Kurt A. Stephens and Ion, Inc. MAKE NO REPRESENTATIONS OR WARRANTIES # ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING # BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR # A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Kurt A. Stephens or Ion, Inc. # SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF # USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. # # $Id: addcr,v 1.5 1999/02/17 23:02:18 stephensk Exp $ # # @COPYRIGHT END@ ($progname = $0) =~ s@^.*[/\\]@@; $progdir = ($0 =~ m@^(.*)[/\\]@) ? $1 : '.'; #print STDERR "progdir = '$progdir', progname = '$progname'\n"; exit(1); @comments = ( [ '/\.(o|obj|lib|a|exe|com|out|bak)$/i || /,v$/i || /~$/ || -B $filename', 0 ], # Ignore object, backup, RCS, emacs backups, and binary files [ '/$backup_suffix$/i', 0 ], # Ignore our backup files [ '/\.([CchHyYlL]+|java)$/i || firstline_() =~ /^\s*(#\s*include|#\s*if|#\s*define|\/\*|\/\/)/', [ '/*', '**', '*/' ] ], [ '/\.(el|scm|ll|lisp)$/i || firstline_() =~ /^\s*;/', [ ';' ] ], [ '/\.(bat)$/i', [ 'REM ' ] ], # DOS BAT files [ '/Makefile.*|(\.(mak|pl|pm|perl|[ck]?sh))$/i || firstline() =~ /^\s*#/', [ '#' ] ] ); foreach $x ( @comments ) { die "$!: Cannot compile $x->[0]" if ( ! ($x->[2] = eval("sub { $x->[0]; }")) ); $x->[1]->[1] = $x->[1]->[0] if ( ! defined($x->[1]->[1]) ); $x->[1]->[2] = '' if ( ! defined($x->[1]->[2]) ); } ################################## sub firstline { local(*F); if ( $_firstline_filename eq $filename ) { return $_firstline; } $_firstline_filename = $filename; open(F, "<$filename") || warn "$!: Cannot open $filename for reading"; $F = ; close(F); chop $F; $_firstline = $F; $F; } sub firstline_ { # Get first non-blank line, skipping first line if it's "#!" local(*F); if ( $_firstline__filename eq $filename ) { return $_firstline_; } $_firstline__filename = $filename; open(F, "<$filename") || warn "$!: Cannot open $filename for reading"; $F = ; #print STDERR "firstline_ = '$F'\n"; $F = if ( $F =~ /^\#\!/ ); #print STDERR "firstline_ = '$F'\n"; chop $F; while ( $F =~ /^\s*$/ ) { $F = ; chop $F; } close(F); $_firstline_ = $F; #print STDERR "firstline_ = '$F'\n"; $F; } ################################## $replacestr = 'COPYRIGHT'; $replacefile = $replacestr; $filename = '.'; $testing = 0; $debug = 0; $backup_suffix = '.acr'; $rm_backup = 0; $dryrun = 0; $usage = 0; $recursive = 0; sub findfile { my($replacedir); $replacedir = ($filename =~ m@^(.*)[/\\]@) ? $1 : '.'; #print STDERR "replacedir = '$replacedir'\n"; while ( ! -r ($FILE = "$replacedir/$replacefile") ) { $replacedir .= "/.."; if ( $replacedir eq './../../../../../../../../../..' ) { die "Cannot locate $replacefile" if ( ! $usage ); return ""; } } $FILE; } sub insertfile { # Begin replace block print OUT $comments->[0], ' @', $replacestr, '@', "\n"; print OUT $comments->[1], "\n"; # Open comment text file open(FILE, "<$FILE") || die "$!: Cannot open $FILE for reading"; # Insert the comment text while ( $line = ) { print OUT $comments->[1], ' ', $line; } close(FILE); # End replace block print OUT $comments->[1], "\n"; print OUT $comments->[1], ' @', $replacestr, ' END@ ', $comments->[2], "\n"; # Copy rest of IN file if ( defined($firstline) ) { print OUT $firstline; $firstline = undef; } while ( $line = ) { print OUT $line; } close(IN); close(OUT); if ( (! $testing) && $rm_backup ) { system('rm', $IN); } print STDERR "$progname: $filename: found and replaced preexisting $replacestr block\n" if ( $debug ); 1; } sub replacestr { local($comments) = @_; local(*IN,*OUT,*FILE); local($line, $firstline); # Find the replacement text file $FILE = findfile(); if ( $dryrun ) { print "$progname: $filename: $FILE: $comment->[0]: $comment->[1]: $comment->[2]\n"; } $_ = $filename; if ( $testing ) { $OUT = $filename . $backup_suffix; $IN = $filename; } else { # We move the file to $IN $OUT = $filename; $IN = $filename . $backup_suffix; if ( -f $IN ) { print STDERR "$progname: backup file $IN already exists\n"; return 0; } if ( ! (-w && -r && -f) ) { print STDERR "$progname: $filename: file not read/write\n"; return 0; } system('mv', $OUT, $IN) && die "$!: Cannot mv $OUT $IN"; } # Open IN and OUT files open(OUT, ">$OUT") || die "$!: Cannot open $OUT for writing"; open(IN, "<$IN") || die "$!: Cannot open $IN for reading"; # Read first line if ( ($line = ) ) { # If first line contains 'DO NOT MODIFY', don't do anything! if ( $line =~ /DO NOT MODIFY/i ) { print STDERR "$progname: $filename: found 'DO NOT MODIFY'\n" if ( $debug ); close(IN); close(OUT); # Restore original file if ( ! $testing ) { system('mv', $IN, $OUT); } return 0; } } while ( $line ) { # Have we found a preexisting replace string if ( $line !~ /@$replacestr@/ ) { # Simply echo to OUT print OUT $line; } else { print STDERR "$progname: $filename: found '\@$replacestr\@'\n" if ( $debug ); # Skip over input comment block while ( ($line = ) ) { if ( $line =~ /@$replacestr END@/ ) { print STDERR "$progname: $filename: found '\@$replacestr END\@' terminator\n" if ( $debug ); return insertfile(); } } # Did not find END terminator! print STDERR "$progname: $filename: did not find '\@$replacestr END\@' terminator\n"; close(IN); close(OUT); open(OUT, ">$OUT") || die "$!: Cannot open $OUT for writing"; open(IN, "<$IN") || die "$!: Cannot open $IN for reading"; while ( ($line = ) ) { if ( $line =~ /@$replacestr@/ ) { return insertfile(); } else { print OUT $line; } } } $line = ; } # We never found a preexisting comment block; # insert $FILE after #! line. print STDERR "$progname: $filename: did not find preexisting $replacestr block\n" if ( $debug ); close(IN); close(OUT); open(OUT, ">$OUT") || die "$!: Cannot open $OUT for writing"; open(IN, "<$IN") || die "$!: Cannot open $IN for reading"; # Skip over first shell script #! line $firstline = ; if ( $firstline =~ /^#!\// ) { print STDERR "$progname: $filename: skipping first line '$firstline'\n" if ( $debug ); print OUT $firstline; $firstline = undef; } insertfile(); } sub getdir { local(*DIR); $DIR = $_[0]; opendir(DIR, $DIR); @DIR = grep(($_ ne '.' && $_ ne '..'), readdir DIR); closedir(DIR); print STDERR "getdir: $DIR: ", join(", ", @DIR), "\n" if ( $debug > 2 ); @DIR; } sub dofile { $filename = $_[0]; $_ = $filename; s@^.*[/\\]@@; # remove directory path print STDERR "$progname: $filename: dofile\n" if ( $debug > 1 ); if ( -r $filename && -w $filename ) { if ( -d $filename ) { my($fuc) = uc($_); if ( $fuc =~ /^CVS/ || $fuc eq 'RCS' || $fuc eq 'SCCS' ) { print STDERR "$progname: $filename: skipping dir\n" if ( 1 || $debug ); } elsif ( $recursive ) { print STDERR "$progname: $filename: recursing\n" if ( $debug ); my($dirname) = $filename; foreach $_ ( getdir($dirname) ) { dofile("$dirname/$_"); } } else { print STDERR "$progname: $filename: skipping\n"; } } else { X: foreach $x ( @comments ) { print STDERR "$progname: $filename: trying $x->[0]\n" if ( $debug > 1); if ( $x->[2] ) { if ( &{$x->[2]}() ) { print STDERR "$progname: $filename: matched $x->[0]\n" if ( $debug > 1); if ( $x->[1] ) { print STDERR "$progname: $filename: not modified\n" if ( ! replacestr($x->[1]) ); } else { print STDERR "$progname: $filename: skipping\n"; } last X; } } else { die "$progname: no proc for $x->[0]\n"; } } } } else { print STDERR "$progname: $filename: cannot read or write\n"; } } sub usage { $usage = 1; print STDERR qq~ $progname: usage: $progname ... $progname replaces \@$replacestr\@ with contents of the $replacefile file. OPTIONS -dryrun Do a dryrun. -debug Enable debugging. -testing Enable testing. -R If directories are specified, they are traversed recursively. -h, -? This usage message. The current $replacefile file is located at ~ . &findfile() . "\n"; exit(0); } #push(@ARGV, '.') if ( ! @ARGV ); foreach ( @ARGV ) { if ( s/^--?// ) { if ( /^[Hh\?]/ ) { &usage; } elsif ( /^dr/ ) { $dryrun ++; } elsif ( /^d/ ) { $debug ++; } elsif ( /^t/ ) { $testing ++; } elsif ( /^(R|rec)/ ) { $recursive ++; } else { print STDERR "$progname: $_: unrecognized option\n"; } } else { dofile($_); } } 1; gmv0.9/src/bin/addrcsid.pl0100644000175200017560000000647106735677357016051 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: addrcsid.pl,v 1.3 1999/06/28 13:55:59 stephensk Exp $ # # addrcsid.pl ... # # Recursively add $Id: addrcsid.pl,v 1.3 1999/06/28 13:55:59 stephensk Exp $ strings to source files. # Avoids CVS, RCS, and SCCS directories and binary and ',v' files. # # TO DO: # use @comment array from addcr.pl to control comment characters and such # use File::Basename; use File::Find; $progname = basename($0); sub skip_first_lines { $suffix = '.scm' if ( $suffix =~ /^\.(scm|lisp|ll|el)$/i ); # Skip lines until after %{ for yacc files if ( $suffix =~ /^\.[yl]/i ) { LINE: while ( $line = <$in> ) { print $out $line; last LINE if ( $line =~ /^\s*%\{/ ); } } elsif ( $suffix =~ /^\.h/i ) { $line = <$in>; if ( $line =~ /^\s*#\s*if/ ) { print $out $line; $line = <$in>; } } else { $line = <$in>; if ( $line =~ /^\s*\#!/ ) { print $out $line; $line = <$in>; } } $line; } $rcs_id_str = '$Id: addrcsid.pl,v 1.3 1999/06/28 13:55:59 stephensk Exp $'; sub print_rcs_id { if ( $suffix =~ /^\.[ychlm]/i ) { print $out qq~ #ifndef __rcs_id__ #ifndef __rcs_id_${ftoken}__ #define __rcs_id_${ftoken}__ static const char __rcs_id_${ftoken}[] = "$rcs_id_str"; #endif #endif /* __rcs_id__ */ ~; } elsif ( $suffix =~ /^.htm/ ) { print $out qq~ ~; } elsif ( $suffix eq '.java' ) { print $out qq~/* $rcs_id_str */ ~; } else { my($com) = '#'; $com = ';' if ( $suffix =~ /^\.(scm|lisp|ll|el)$/ ); print $out qq~$com $rcs_id_str ~; } } sub do_file { #print STDERR "$progname: do_file($File::Find::dir/$_)\n"; if ( ( -d && /^(CVS|RCS|SCCS)/i ) || /,v$/ ) { $File::Find::prune = 1; } elsif ( -f && -r && ! -B && ( /(\.[a-zA-Z_0-9]+)$/i || /^makefile/i ) ) { local($suffix) = $1; my($found) = 0; local($in, $out); local($line); # In and out files $in = $_; $out = "$_.tmp"; # Generate a C token for the filename local($ftoken) = $File::Find::name; $ftoken = $1 if ( $ftoken =~ m@([^\\/]+[\\/][^\\/]+)$@ ); $ftoken =~ tr/A-Za-z_0-9/_/c; # open files die "$out exists" if ( -e $out ); open($out, ">$out") || die "$out: $!: "; open($in, "<$in") || die "$in: $!: "; skip_first_lines(); while ( $line ) { if ( $line =~ /DO NOT MODIFY/ ) { print STDERR "$progname: DO NOT MODIFY: skipping $File::Find::dir/$_\n"; close($in); close($out); unlink($out); return; } #locate prexisting rcs id block */ if ( $line =~ /^\s*\#\s*ifndef\s+__rcs_id__/ ) { $found = 1; # skip block while ( $line = <$in> && $line !~ m@^\s*\#\s*endif\s*/\*\s*__rcs_id__\s*\*/@ ) { 1; } print_rcs_id(); } print $out $line; $line = <$in>; } close($in); close($out); if ( ! $found ) { open($out, ">$out") || die "$out: $!: "; open($in, "<$in") || die "$in: $!: "; # Skip first lines skip_first_lines(); # Put rcs id print_rcs_id(); # write rest of file while ( $line ) { print $out $line; $line = <$in>; } close($in); close($out); } if ( -w $in ) { unlink($in); rename($out, $in); print STDERR "$progname: $File::Find::dir/$in\n" } else { print STDERR "$progname: $File::Find::dir/$in not writable: result in $File::Find::dir/$out\n"; } } } File::Find::find(\&do_file, @ARGV); 1; gmv0.9/src/bin/ccinfo0100644000175200017560000001177606662461243015107 0ustar stephensstepheng#!/run/thirdParty/perl5/bin/perl eval 'exec /run/thirdParty/perl5/bin/perl $0 ${1+"$@"}' if 0; $cwd = 0; sub cwd { if ( ! $cwd ) { chop($cwd = `/bin/pwd`); $cwd = simplifyPathname($cwd); #print STDERR "cwd = $cwd\n"; } $cwd; } sub simplifyPathname { my($p) = $_[0]; $p =~ s@^/private/@/@; $p =~ s@//@/@g; $p =~ s@/\./@/@g; while ( $p =~ s@/[^/]+/\.\./@/@ ) { } #print STDERR "simplifyPathname $_[0] -> $p\n"; $p; } #for ( @ARGV ) { # print $_, " => ", simplifyPathname($_), "\n"; #} #exit 0; sub absPathname { my($f) = $_[0]; $f = ($f =~ m@^/@) ? $f : simplifyPathname(cwd() . "/" .$f); #print STDERR "absPathname $_[0] -> $f\n"; $f; } sub filePathname { my($f) = $_[0]; $f = ($f =~ m@([^/]+)$@) ? $1 : $f; #print STDERR "filePathname $_[0] -> $f\n"; $f; } sub suffixPathname { my($f) = $_[0]; $f = ($f =~ m@(\.[^/.]*)$@) ? $1 : ''; #print STDERR "suffixPathname $_[0] -> $f\n"; $f; } sub findFile { my($file,$path) = @_; my($f); if ( $file =~ m@^/@ ) { if ( -r $file ) { return $file; } } else { foreach $d ( @$path ) { $f = $d . '/' . $file; if ( -r $f ) { return $f; } } } 0; } sub expandSoftlink { my($f) = @_; my($l,$linkcount); $linkcount = 40; while ( -l $f && ($l = readlink($f)) ) { # print STDERR "softlink $f -> $l\n"; -- $linkcount || die "$0: $f: Too many levels of symbolic links"; if ( $l =~ m@^/@ ) { $f = $l; } else { $f =~ s@/[^/]+/?$@@; $f .= "/" . $l; } } $f; } sub _objCName { if ( s/^\.objc_class_name_// ) { $_ = '@class ' . $_; } elsif ( m/^\.objc_category_name_([^_]+)_([^_]+)/ ) { $_ = '@category ' . $1 . '(' . $2 . ')'; } $_; } sub _nmInfo { my($x) = @_; my($fp, $f, $suf, $floc, $a); $f = $x->[1]; $fp = $x->[2]; $suf = $x->[0]; $floc = $fp; $a = []; open(NM, "/bin/nm $fp|"); while ( ) { chop; if ( s/^\s+U\s+// ) { _objCName(); push(@$a, [ $suf, $f, $floc, 'refs', 'symb', $_, '' ]); } elsif ( s/^([0-9a-fA-f]+)\s+T\s+// || (s/^([0-9a-fA-f]+)\s+t\s+// && m/^[-+]\[/) ) { _objCName(); push(@$a, [ $suf, $f, $floc, 'defs', 'prog', $_, $1 ]); } elsif ( s/^([0-9a-fA-f]+)\s+D\s+// ) { _objCName(); push(@$a, [ $suf, $f, $floc, 'defs', 'data', $_, $1 ]); } elsif ( s/^([0-9a-fA-f]+)\s+A\s+// ) { _objCName(); push(@$a, [ $suf, $f, $floc, 'defs', 'abs', $_, $1 ]); } elsif ( m@^/([^(]+)[(]([^)]+)[)]@ ) { $module = $2; $suf = suffixPathname($module); $f = $module; $floc = $x->[2] . '@' . $module; push(@$a, [ $x->[0], $x->[1], $x->[2], 'has', $suf, $f, '' ]); } } close(NM); $a; } sub nmInfo { my($fp) = @_; #print STDERR "nmInfo $fp->[2] \n"; _nmInfo($fp); } @ldirs = ('.'); @fdirs = ('/LocalLibrary/Frameworks', '/NextLibrary/Frameworks'); @lfiles = (); @ffiles = (); @archs = (); @infiles = (); $outfile = 0; $doInfo = 1; @argv = @ARGV; shift @argv; while ( $a = shift @argv ) { if ( $a =~ m/^-L(.*)$/ ) { push(@ldirs, $1); } elsif ( $a =~ m/^-l(.*)$/ ) { push(@lfiles, [ 'lib', $1, '' ]); } elsif ( $a eq '-o' ) { $outfile = absPathname(shift @argv); } elsif ( $a eq '-arch' ) { push(@archs, shift @argv); } elsif ( $a eq '-framework' ) { $f = shift @argv; push(@ffiles, [ 'framework', $f, '' ]); } elsif ( $a =~ m/^-[cSE]$/ ) { $doInfo = 0; } elsif ( $a eq '-sectcreate' || $a eq '-segprot' ) { shift @argv; shift @argv; shift @argv; } elsif ( $a !~ m@^-@ && $a =~ m/\.\w+$/ ) { if ( $a =~ m/\.a$/ ) { push(@infiles, [ 'lib', filePathname($a), absPathname($a) ] ); } else { push(@infiles, [ suffixPathname($a), filePathname($a), absPathname($a) ] ); } } } if ( $doInfo ) { foreach $x ( @lfiles ) { my($file) = 'lib' . $x->[1] . '.a'; $x->[2] = absPathname(expandSoftlink(findFile($file, \@ldirs))); if ( $x->[2] ) { push(@infiles, $x); } } push(@ffiles, [ 'framework', 'System' ]); foreach $x ( @ffiles ) { my($file) = $x->[1] . '.framework/' . $x->[1]; $x->[2] = absPathname(expandSoftlink(findFile($file, \@fdirs))); if ( $x->[2] ) { push(@infiles, $x); } } if ( ! $outfile ) { $outfile = 'a.out'; } @info = (); # type name location relation type name location # 0 1 2 3 4 5 6 %defs = (); $datafile="$outfile.ccinfo"; open(FILE,">$datafile") || print STDERR "$0: cannot open $datafile for writing: $!"; for $x ( @infiles ) { print FILE join("\t", 'exe', filePathname($outfile), $outfile, 'links', $x->[0], $x->[1], $x->[2]), "\n"; if ( $x->[2] && ($x->[0] eq 'lib' || $x->[0] eq 'framework' || $x->[0] eq '.o') ) { for $i ( @{nmInfo($x)} ) { push(@info, $i); if ( $i->[3] eq 'defs' ) { $defs{$i->[5]} = $i; } } } } for $i ( @info ) { if ( $i->[3] eq 'refs' ) { if ( $j = $defs{$i->[5]} ) { $i->[4] = $j->[4]; $i->[6] = ''; # $j->[2] . '@' . $j->[6]; } } print FILE join("\t", @{$i}), "\n"; } close(FILE); } exec(@ARGV); gmv0.9/src/bin/ccloclibs0100644000175200017560000000576306662461243015602 0ustar stephensstepheng#!/run/thirdParty/perl5/bin/perl eval 'exec /run/thirdParty/perl5/bin/perl $0 ${1+"$@"}' if 0; # # This program interprets cc -L and -l linker command lines # a attempts to locate the libraries (lib*.a) in the -L paths specified # for each library file found. a "dir " entry is written # to a "gdbinit" file. # # It also creates a dependency in Makefile.dependencies for the executable # on the libraries. # # Libs files found that are softlinks are resolved. This will # allow you to find source for a library if you install your libraries # in directory a directory by using softlinks instead of copies. # # The last step is to exec the linker command # you can use this in your Makefile by calling 'make "CC=ccloclibs cc"' # sub findFile { my($file,$path) = @_; my($f); if ( $file =~ m@^/@ ) { if ( -r $file ) { return $file; } } else { foreach $d ( @$path ) { $f = $d . '/' . $file; if ( -r $f ) { return $f; } } } 0; } sub expandSoftlink { my($f) = @_; my($l,$linkcount); $linkcount = 40; while ( -l $f && ($l = readlink($f)) ) { # print STDERR "softlink $f -> $l\n"; -- $linkcount || die "$0: $f: Too many levels of symbolic links"; if ( $l =~ m@^/@ ) { $f = $l; } else { $f =~ s@/[^/]+/?$@@; $f .= "/" . $l; } } $f; } sub simplifyPathname { my($p) = $_[0]; $p =~ s@^/private/@/@; $p =~ s@//@/@g; $p =~ s@/\./@/@g; while ( $p =~ s@/[^/]+/\.\./@/@ ) { } #print STDERR "simplifyPathname $_[0] -> $p\n"; $p; } #print @ARGV, "\n"; @ldirs = ('.'); @lfiles = (); $outfile = 'a.out'; $gotLibs = 0; @argv = @ARGV; shift @argv; while ( $a = shift @argv ) { if ( $a =~ m/^-L(.*)$/ ) { push(@ldirs, $1); } elsif ( $a =~ m/^-l(.*)$/ ) { push(@lfiles, $1); $gotLibs ++; } elsif ( $a eq '-o' ) { $outfile = shift @argv; } } if ( $gotLibs ) { %dirs = (); $libs = "LIBS"; $deps = "Makefile.dependencies"; open(LIBS, ">$libs") || print STDERR "$0: cannot open $libs for writing: $!"; open(DEPS, ">$deps") || print STDERR "$0: cannot open $deps for writing: $!"; print DEPS "$outfile : "; foreach $lfile ( @lfiles ) { my($f); $f = simplifyPathname(expandSoftlink(findFile("lib" . $lfile . ".a", \@ldirs))); if ( ! $f ) { $f = simplifyPathname(expandSoftlink(findFile("lib" . $lfile . ".dylib", \@ldirs))); } if ( $f ) { print STDERR "lib $lfile $f\n"; print LIBS "lib $lfile $f\n"; print DEPS "\\\n $f "; $f =~ s@/[^/]*$@@; while ( $f =~ s@/NeXT_[^/]*obj$@@ ) { } $dirs{$f} ++; } else { print STDERR "$0: $lfile: not found\n"; } } print DEPS "\n\n"; close(LIBS); close(DEPS); $gdbinit = "gdbinit"; open(GDBINIT, ">$gdbinit") || print STDERR "$0: cannot open $gdbinit for writing: $!"; foreach $f ( keys(%dirs) ) { print GDBINIT "dir $f\n"; print STDERR "dir $f\n"; } close(GDBINIT); } #print STDERR "$0: ", join(" ", @ARGV), "\n"; exec(@ARGV); gmv0.9/src/bin/ctocnl.c0100644000175200017560000000056406663227006015340 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_bin_ctocnl_c__ #define __rcs_id_bin_ctocnl_c__ static const char __rcs_id_bin_ctocnl_c[] = "$Id: ctocnl.c,v 1.2 1999/02/19 09:25:26 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include int main() { int c; while ( (c = getchar()) != EOF ) { putchar(c); if ( c == ';' ) putchar('\n'); } return 0; } gmv0.9/src/bin/cvschrep.pl0100744000175200017560000000234707230344122016054 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: cvschrep.pl,v 1.3 2001/01/14 15:40:02 stephens Exp $ # use File::Find; $debug = 1; $testing = 0; $keep_backup = 0; $filename = 'Repository'; $from = undef; $to = $undef; while ( @ARGV ) { $_ = shift; if ( /^--?r/ ) { $filename = 'Root'; } elsif ( /^--?d/ ) { ++ $debug; } elsif ( /^--?t/ ) { ++ $testing; } elsif ( ! defined $from ) { $from = $_; } elsif ( ! defined $to ) { $to = $_; last; } } sub wanted { my($file) = $File::Find::name; if ( $File::Find::name =~ m@/CVS/$filename$@o && -f ) { my($in, $out) = ( "$_.tmp", $_ ); my($line); print STDERR "wanted: '$File::Find::name'\n" if ( $testing || $debug ); if ( $testing ) { $in = $out; } else { die "$in exists" if ( -e $in ); system('mv', $out, $in); } open($in, "<$in") || die "$in: $!"; if ( ! $testing ) { open($out, ">$out") || die "$out: $!"; } while ( $line = <$in> ) { $line =~ s/\r//sg; if ( $line =~ s@$from@$to@i ) { print STDERR "$File::Find::name: $line"; } if ( ! $testing ) { print $out $line; } } close($in); if ( ! $testing ) { close($out); unlink($in) if ( ! $keep_backup ); } } } find(\&wanted, @ARGV); 1; gmv0.9/src/bin/cvschroot.pl0100644000175200017560000000204606662641265016264 0ustar stephensstepheng#!/bin/perl # $Id: cvschroot.pl,v 1.3 1999/02/17 22:29:09 stephensk Exp $ # use File::Find; $debug = 1; $keep_backup = 0; $testing = 0; $delete = 1; #$from = shift; #$to = shift; sub wanted { my($file) = $File::Find::name; if ( $File::Find::name =~ m@/CVS/Root$@ && -f ) { my($in, $out) = ( "$_.tmp", $_ ); my($line); print STDERR "$0: '$File::Find::name'\n" if ( $testing || $debug ); if ( $testing ) { $in = $out; } else { die "$in exists" if ( -e $in ); system('mv', $out, $in); } if ( $delete ) { unlink($out) if ( ! $testing ); unlink($in) if ( ! $keep_backup ); } else { open($in, "<$in") || die "$in: $!"; if ( ! $testing ) { open($out, ">$out") || die "$out: $!"; } # while ( $line = <$in> ) { # if ( $line =~ s@^$from@$to@i ) { # print STDERR "$File::Find::name: $line"; # } # if ( ! $testing ) { # print $out $line; # } # } close($in); if ( ! $testing ) { close($out); unlink($in) if ( ! $keep_backup ); } } } } find(\&wanted, @ARGV); 1; gmv0.9/src/bin/cvsclean0100644000175200017560000000054007003453703015417 0ustar stephensstepheng#!/bin/sh #$Id: cvsclean,v 1.1 1999/10/21 00:01:07 stephensk Exp $ #cvs() { # echo "cvs $@" #} files="" OIFS="$IFS" IFS="/" while read type file version date sticky do if [ -n "$file" ] then case "$type" in *) if [ ! -f "$file" ] then files="$files$file " fi ;; esac fi done < CVS/Entries IFS="$OIFS" cvs rm $files gmv0.9/src/bin/cvsedited0100644000175200017560000000051307001176323015571 0ustar stephensstepheng#!/bin/sh # $Id: cvsedited,v 1.1 1999/10/13 21:42:43 stephensk Exp $ tmp=/tmp/$$.tmp set -x find \( -name 'CVS' -prune \) -o \( -type f -print \) "$@" | #> "$tmp" while read f do status="$(cvs status $f | egrep -e '^File: .*Status:')" case "$status" in *Locally*) echo "$f $status" ;; esac done rm -f "$tmp" gmv0.9/src/bin/cvsfind.pl0100644000175200017560000000253507003453703015675 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: cvsfind.pl,v 1.4 1999/10/21 00:01:07 stephensk Exp $ use File::Basename; use Cwd 'fast_abs_path'; $progdir = fast_abs_path(dirname($0)); push(@INC, $progdir, "$progdir/lib/perl"); print STDERR "@INC\n"; eval 'use ion::_cvs::find;'; ################################################################### $debug = 0; $testing = 0; $sep = "\t"; @print_entries = (); OPT: while ( ($_ = $ARGV[0]) && /^-/ ) { shift; s/^--?//; if ( $_ eq '' ) { last OPT; } elsif ( /^sep/ ) { $sep = shift; } else { FLAG: while ( $_ ne '' ) { if ( /^A/ ) { @print_entries = ( 0 .. $#ion::_cvs::entry::map ); last FLAG; } elsif ( s/^([a-zA-Z]+)$// ) { my $i = $ion::_cvs::entry::map{$1}; die "$1: unknown field: must be one of '@ion::_cvs::entry::map'" if ( ! defined $i ); push(@print_entries, $i); } elsif ( s/^([0-9]+)$// ) { push(@print_entries, $1); } else { last FLAG; } } } } @print_entries = ( 0 .. $#ion::_cvs::entry::map ) if ( ! @print_entries ); ########################################################### @entries = (); ion::_cvs::find(sub { push(@{$_[1]}, $_[0]) }, \@entries, @ARGV); @entries = sort { ($a->fullpath) cmp ($b->fullpath); } @entries; foreach $e ( @entries ) { print join($sep, map($e->[$_], @print_entries)), "\n"; } 1; gmv0.9/src/bin/cvsretag.pl0100644000175200017560000000225106765647617016101 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: cvsretag.pl,v 1.1 1999/09/09 06:11:27 stephensk Exp $ #use Carp; use File::Basename; use Cwd 'fast_abs_path'; $progdir = fast_abs_path(dirname($0)); push(@INC, $progdir, "$progdir/lib/perl"); eval 'use ion::_cvs::find;'; #eval 'use ion::_cvs::rlog;' || die "$!"; $opts = { }; while ( $_ = $ARGV[0], s/^--?// ) { shift; if ( s/^f([^=]*=)?// ) { $opts->{filter} = $1 ? $_ : shift; } elsif ( s/^s([^=]*=)?// ) { $opts->{show_rev_info} = $1 ? $_ : 1; } } my(@entries); ion::_cvs::find(sub {push(@{$_[1]}, $_[0]); }, \@entries, @ARGV); @entries = sort { $a->fullpath() cmp $b->fullpath() } @entries; my($OUTPUT); $OUTPUT = 'STDOUT'; $opts = {filter => '-h'}; $opts = {}; my($e); foreach $e ( @entries ) { if ( $e->isFile ) { print $e->repository, "\n"; my($rlog) = $e->rlog({}); use Data::Dumper; $Data::Dumper::Purity = 1; $Data::Dumper::Quotekeys = 1; print Dumper($rlog), "\n"; my($sym_name); foreach $sym_name ( @{$rlog->{symbolic_names}} ) { my($rev) = $rlog->{sym_name_to_rev}->{$sym_name}; if ( $rev && $sym_name =~ /^PUBLISH:/ ) { echo $e->repository, " $sym_name => $rev\n"; } } } } 1; gmv0.9/src/bin/cvsrevhist.pl0100644000175200017560000000676307065620426016456 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: cvsrevhist.pl,v 1.6 2000/03/21 07:13:26 stephensk Exp $ #use Carp; BEGIN { use File::Basename; use Cwd 'fast_abs_path'; $progdir = fast_abs_path(dirname($0)); push(@INC, $progdir, "$progdir/lib/perl"); } use ion::_cvs::find; #eval 'use ion::_cvs::rlog;' || die "$!"; $opts = { }; $errors = 0; $opts->{collapse_comments} = 1; while ( $_ = $ARGV[0], s/^([-+])\1?// ) { my($pos) = $1 eq '-'; shift; if ( s/^f([^=]*=)?// ) { $opts->{filter} = $1 ? $_ : shift; } elsif ( s/^e([^=]*=)?// ) { $opts->{show_empty_entries} = $1 ? $_ : $pos; } elsif ( s/^c([^=]*=)?// ) { $opts->{collapse_comments} = $1 ? $_ : $pos; } elsif ( s/^x([^=]*=)?// ) { $opts->{auto_extend_rev_ranges} = $1 ? $_ : $pos; } elsif ( s/^s([^=]*=)?// ) { $opts->{show_rev_info} = $1 ? $_ : $pos; } } my(@entries); ion::_cvs::find(sub {push(@{$_[1]}, $_[0]); }, \@entries, @ARGV); @entries = sort { $a->fullpath() cmp $b->fullpath() } @entries; my($OUTPUT); $OUTPUT = 'STDOUT'; my($e); my($last_comments); ENTRY: foreach $e ( @entries ) { if ( $e->isFile ) { my($path) = $e->fullpath; $path =~ s@^\./@@; my($filter) = $opts->{filter}; if ( ! defined $filter ) { $filter = "-r:+"; } my($e_rev) = $e->revision; $filter =~ s/\+/$e_rev/g; my($rlog); # If a rev in a rev range does not exists, replace it with '' if ( $opts->{auto_extend_rev_ranges} ) { $rlog = $e->rlog(); if ( ! $rlog ) { $errors ++; next ENTRY; } if ( $filter =~ /-r(\S+)/ ) { my($b,$a) = ($`, $'); my($revs) = $1; if ( $revs =~ /^([^:]*):(.*)$/ ) { my($from, $to) = ($1, $2); if ( ! ($rlog->{revision}->{$from} || $rlog->{sym_name_to_rev}->{$from}) ) { #print STDERR "$path: no from rev '$from'\n"; $from = ''; } if ( ! ($rlog->{revision}->{$to} || $rlog->{sym_name_to_rev}->{$to}) ) { #print STDERR "$path: no to rev '$to'\n"; $to = ''; } $revs = $from . ':' . $to; my ($new_filter); $new_filter = $b . '-r' . $revs . $a; if ( $filter ne $new_filter ) { print STDERR "$path: filter = '$filter', new filter = '$new_filter'\n"; $filter = $new_filter; } } } # Redo log $e->clear_rlog(); } $rlog = $e->rlog({filter => $filter}); if ( ! rlog ) { $errors ++; next ENTRY; } if ( @{$rlog->{revisions}} || $opts->{show_empty_entries} ) { my($rev); if ( $opts->{show_rev_info} ) { print $OUTPUT "$path:\n"; foreach $rev ( @{$rlog->{revisions}} ) { my($r) = $rlog->{revision}->{$rev}; my($r_comments) = " " . join("\n ", split(/\n+/, $r->{comment})) . "\n"; print $OUTPUT " ", join(" ", map($r->{$_}, revision, date, author, state, lines), @{$r->{symbolic_names}}); print $OUTPUT ":\n"; print $OUTPUT $r_comments; } } else { my($comments) = ''; foreach $rev ( @{$rlog->{revisions}} ) { my($r) = $rlog->{revision}->{$rev}; my($r_comments) = " " . join("\n ", split(/\n+/, $r->{comment})) . "\n"; $comments .= $r_comments; } if ( $opts->{collapse_comments} ) { if ( $last_comments ne $comments ) { print $OUTPUT $last_comments, "\n" if ( defined $last_comments ); $last_comments = $comments; } print $OUTPUT $path, ":\n"; } else { print $OUTPUT $path, ":\n"; print $OUTPUT $comments, "\n"; } } } } } if ( $opts->{collapse_comments} ) { print $OUTPUT $last_comments, "\n" if ( defined $last_comments ); } exit($errors); 1; gmv0.9/src/bin/cwfixlib.pl0100644000175200017560000000166106663227006016055 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: cwfixlib.pl,v 1.2 1999/02/19 09:25:26 stephensk Exp $ sub run { print join(" ", @_), "\n"; system(@_) && die "$!: Could not run " . join(" ", @_); } $lib = shift @ARGV; print "lib = '$lib'\n"; $LIB = $ENV{'LIB'}; $LIB = 'f:/apps/dev/msvc20/bin/lib.exe' if ( ! defined($LIB) ); open(NM, "nm $lib|"); @members = (); @exports = (); while ( ) { chop; if ( /^(.*\.obj):$/ ) { push(@members, $1); } elsif ( /^([0-9]+)\s+T\s+_([a-zA-Z0-9_]+)/ ) { push(@exports, $2); } } close(NM); print "members = ", join(" ", @members), "\n"; print "exports = ", join(" ", @exports), "\n"; $def = $lib; $def =~ m@^([^\\/]+)\.lib$@; $def = "$1.def"; print "def = '$def'\n"; open(DEF, ">$def"); print DEF "EXPORTS\n"; foreach ( @exports ) { print DEF "$_\n"; } close(DEF); &run($LIB, '/LIST', $lib); foreach ( @members ) { s@.*[\\/]@@; &run( $LIB, $lib, "/extract:$_"); } exit(0); 1; gmv0.9/src/bin/d2u.pl0100744000175200017560000000570207230344164014735 0ustar stephensstepheng#!/usr/bin/perl # $Id: d2u.pl,v 1.8 2001/01/14 15:40:36 stephens Exp $ use File::Find; $save_bak = 0; $dos2unix = 1; $force = 0; $recursive = 1; $try_pattern = '(^Makefile)|(\.([chlym][a-zA-Z]?|make?|gdb|[ck]?sh|p[lm]|ll|scm|def|tcl)$)'; $ignore_pattern = '\.(o|a|obj|lib|exe|com)$'; @files = (); ARG: while ( defined ($_ = shift @ARGV) ) { if ( s/^--?// ) { if ( /^[h?]/ ) { print STDERR qq~ Version: ~ . '$Id: d2u.pl,v 1.8 2001/01/14 15:40:36 stephens Exp $' . qq~ Options: -d[os2unix] Convert dos to unix. Default. -u[nix2dos] Convert unix to dos. -p The file matching pattern. Default: '$try_pattern'. -i The file ingore pattern. Default: '$ignore_pattern'. -r Process recursively. Default. -s Save a backup file. -f Force a conversion. -- End processing options. ~; exit(0); } elsif ( /^d(os2unix)?/ ) { $dos2unix = 1; next ARG; } elsif ( /^u(nix2dos)?/ ) { $dos2unix = 0; next ARG; } elsif ( /^p/ ) { $try_pattern = shift @ARGV; next ARG; } elsif ( /^i/ ) { $ignore_pattern = shift @ARGV; next ARG; } elsif ( /^s/ ) { $save_bak ++; next ARG; } elsif ( /^f/ ) { $force ++; next ARG; } elsif ( /^$/ ) { last ARG; } } # must be a file name push(@files, $_); } push(@files, @ARGV); sub translate { my($dir, $in) = @_; my($out, $mode, $t); if ( ! ( -f $in && -r && -w && -T) ) { return 1; } if ( $in =~ /^(RCS|SCCS|CVS)/i ) { return 1; } $out = "$in.bak"; print STDERR "translate $dir/$in\n"; die "$dir/$out already exists: $!" if ( -e $out ); rename($in, $out) || die "Cannot rename $dir/$in to $dir/$out: $!"; $t = $in; $in = $out; $out = $t; # Rename all dotted cap name to all lowercase if ( $out =~ m@^[A-Z0-9_/.]+\.[A-Z0-9_]+$@ ) { $out =~ y/A-Z/a-z/; } $mode = (stat($in))[2]; open(IN, "<$in") || die "Cannot read $dir/$in: $!"; binmode(IN); open(OUT, ">$out") || die "Cannot write $dir/$out: $!"; binmode(OUT); if ( $dos2unix ) { while ( defined ($t = ) ) { chomp $t; $t =~s/\r$//; print OUT $t, "\n"; } } else { while ( defined ($t = ) ) { chomp $t; $t =~s/\r$//; print OUT $t, "\r\n"; } } close(IN); close(OUT); print STDERR " $dir/$in -> $dir/$out\n"; chmod($out, $mode); unlink($in) if ( ! $save_bak ); 0; } sub wanted { #print STDERR "$0 $File::Find::dir/$_\n"; if ( /^(RCS|SCCS|CVS)/i || ! $recursive ) { $File::Find::prune = 1; return 0; } return 0 if ( -d $_ ); if ( $force || (($try_pattern eq '' || /$try_pattern/oi) && ! ($ignore_pattern ne '' && /$ignore_pattern/oi)) ) { translate($File::Find::dir, $_); } else { print STDERR "ignoring $File::Find::dir/$_\n"; } 0; } push(@files, '.') if ( ! @files ); find(\&wanted, @files); 1; gmv0.9/src/bin/ecd0100644000175200017560000000130506662461243014364 0ustar stephensstepheng#!/bin/sh #set -x exe="$1" if [ -z "$MAKE" ] then MAKE="${DEV_ROOT}/src/maks/bin/mak" fi prompt=" $exe: Command: " help=" 'return' to compile and debug '$exe' 'q' to quit 'c' to 'make clean' 'r' to complie and run 'd' to delete '!' to run a command 'h' for help " echo -n "$prompt" while read x do read y echo "" case "$x" in h*) echo "$help" ;; c*) $MAKE clean ;; q*|x*) exit 0 ;; d*) rm "$exe.exe" ;; r*) $MAKE && "$exe.exe" ;; !*) echo -n "shell cmd: " read x read y eval $x ;; *) $MAKE && gdb "$exe.exe" -x "$exe.gdb" ;; esac echo "" echo -n "$prompt" done gmv0.9/src/bin/fe0100644000175200017560000000027606662461244014232 0ustar stephensstepheng#!/bin/sh out="$1" shift filter="$1" shift for f in $* do cmd="$out '$f' | $filter | awk '/^[^:]+:/ { pre = "'$1'"; } { print "'"'$f':"'", pre, "'$0'"; }'" #echo "$cmd" eval $cmd done gmv0.9/src/bin/findsource0100644000175200017560000000014706662461244015776 0ustar stephensstepheng#!/bin/sh find $* \( \( -name '*.rtf*' -o -name '*.nib' \) -prune -print \) -o \( \! -type d -print \) gmv0.9/src/bin/igrep0100644000175200017560000001464606774727305014763 0ustar stephensstepheng#!/run/pd/prod/bin/perl # stephensk@acm.org sub usage { print STDERR 'igrep [-nlirwvtuh] ', "\n"; print STDERR ' Version 1.1', "\n"; print STDERR ' options:', "\n"; print STDERR ' -n print line numbers', "\n"; print STDERR ' -l print each filename once', "\n"; print STDERR ' -i case insensitive', "\n"; print STDERR ' -r match pattern as a regexpr, not as a word', "\n"; print STDERR ' -w match pattern as a word, not a regexpr (default)', "\n"; print STDERR ' -v verbose output', "\n"; print STDERR ' -t check if index is up to date', "\n"; print STDERR " -u use index file (default '$indexname')", "\n"; print STDERR " -h this help message", "\n"; exit 1; } &usage if ( @ARGV < 1 ); $indexname = ".mkindex"; $verbose = 0; $matchwords = 1; $regexp = 0; $linenumbers = 0; $listonly = 0; $caseinsensitive = ''; $timecheck = 0; $countlines = 0; while ( @ARGV ) { $arg = shift; $verbose ++ if ( $arg =~ /^-.*v/i ); $matchwords = 0 if ( $arg =~ /^-.*r/i ); $regexp = 1 if ( $arg =~ /^-.*w/i ); $linenumbers = 1 if ( $arg =~ /^-.*n/i ); $listonly = 1 if ( $arg =~ /^-.*l/i ); $caseinsensitive = '(?i)' if ( $arg =~ /^-.*i/i ); $timecheck = 1 if ( $arg =~ /^-.*t/i ); $indexfile = shift if ( $arg =~ /^-.*u/i ); $countlines = 1 if ( $arg =~ /^-.*c/i ); if ( $arg =~ m/^-(\?|h)/i ) { &usage; } else { $pattern = $arg; } } ##################################################################### # Create key and line regexps @subpatterns = grep(length($_), split(/[^_a-zA-Z]+/, $pattern)); $patternIsOneWord = $matchwords && (scalar @subpatterns) == 1 && $caseinsensitive eq '' && ! $regexp; if ( $matchwords ) { if ( ! (scalar @subpatterns) == 1 ) { $pattern =~ s@([_a-zA-Z][_a-zA-Z0-9]*)@(\\B$1\\B)@g; } if ( ! $regexp ) { $pattern =~ s@([.*+()|\\\[\]])@\\$1@g; } $keypattern = '(^' . join('$)|(^', @subpatterns) . '$)'; } else { $keypattern = join('|', @subpatterns); } $pattern = $caseinsensitive . $pattern; $keypattern = $caseinsensitive . $keypattern; print STDERR "patternIsOneWord = '$patternIsOneWord'\n" if ( $verbose ); print STDERR "pattern = '$pattern'\n" if ( $verbose ); print STDERR "keypattern = '$keypattern'\n" if ( $verbose ); ##################################################################### # locate and open index file $index = $indexname; while ( ! -r $index ) { $index = "../$index"; if ( length($index) > 64 ) { die "Cannot find $indexname"; } } print STDERR "index = '$index'\n" if ( $verbose ); open(INDEX, "<$index") || die "Cannot open $index for reading: $!"; $indexM = -M $index; # get the modification time ##################################################################### # Read version string $_ = ; chop; die "expected 'mkindex', found '$_'" if ( $_ !~ /^mkindex /); $version = (split(/ /, $_, 2))[1]; ##################################################################### # Read timestamp $_ = ; chop; die "expected 'timestamp', found '$_'" if ( $_ !~ /^timestamp / ); $timestamp = (split(/ /, $_, 2))[1]; ##################################################################### # Read file table $_ = ; chop; die "expected 'files', found '$_'" if ( $_ !~ /^files / ); $n = (split(/ /, $_, 2))[1]; $files[$n] = undef; # preextend @files = (); print STDERR "nfiles: $n " if ( $verbose ); while ( $n -- ) { $_ = ; chop; print STDERR "$0: warning: $_ is newer than $index\n" if ( $timecheck && -r && -M $_ < $indexM ); push(@files,$_); print STDERR "." if ( $verbose > 1 ); } print STDERR "\n" if ( $verbose ); $_ = ; chop; die "expected blank line" if ( $_ ne ''); print STDERR "files: ", join("\n", @files), "\n" if ( $verbose > 2 ); ##################################################################### # Read index and remember any locations for keys that match the pattern $_ = ; chop; die "expected 'keys', found '$_'" if ( $_ !~ /^keys /); $n = (split(/ /, $_, 2))[1]; print STDERR "nkeys: $n " if ( $verbose ); @keys_matched = (); %filesmatched = (); while ( $n -- ) { $_ = ; chop; ($key, $locs) = split(/ /, $_, 2); if ( $key =~ m/$keypattern/o ) { push(@keys_matched, $key); $lastlineno = -1; foreach $loc ( split(/ /, $locs) ) { ($fileno, $lineno, $pos) = split(/:/, $loc); if ( $lastlineno != $lineno ) { $filesmatched{$fileno} .= "$lineno:$pos "; print STDERR $files[$fileno], ":", $lineno, "\n" if ( $verbose > 2 ); } $lastlineno = $lineno; } print STDERR "*" if ( $verbose > 1 ); last if ( $patternIsOneWord ); } else { print STDERR "." if ( $verbose > 1 ); } } print STDERR " ", scalar @keys_matched, " keys matched\n" if ( $verbose ); print STDERR "keys matched: '", join("', '", @keys_matched), "'\n" if ( keys_matched && $verbose > 1); if ( ! $patternIsOneWord ) { $_ = ; chop; die "expected blank line" if ( $_ ne ''); } #print STDERR "keys: ", join("\n", sort(keys(%index))), "\n" if ( $verbose > 2 ); close(INDEX); ##################################################################### # %getline_cannotopen = (); $getline_FILE_file = ''; sub getline { # file, pos my ($file, $pos) = @_; my ($line); if ( $getline_FILE_file ne $file ) { $getline_FILE_file = $file; close(FILE); if ( ! open(FILE, "<$file") ) { print STDERR "$0: cannot open $file: $!\n" if ( ! $getline_cannotopen{$file} ++ ); return; } } while ( 1 ) { seek(FILE, $pos, 0); read(FILE, $line, 1); last if ( $line eq "\n" ); if ( -- $pos < 0 ) { seek(FILE, 0, 0); last; } } $line = ; chop $line; $line; } # Print each line no that matches sub numerically { $a <=> $b } $linematches = 0; FILE: foreach $fileno ( sort(keys(%filesmatched)) ) { $file = $files[$fileno]; $lastlineno = -1; %locs = (); foreach $loc ( split(/ /, $filesmatched{$fileno}) ) { ($lineno, $pos) = split(/:/, $loc); if ( $lastlineno != $lineno ) { $locs{$lineno} = $pos; } $lastlineno = $lineno; } foreach $lineno ( sort numerically (keys(%locs)) ) { if ( defined($line = &getline($file, $locs{$lineno})) ) { if ( $line =~ m/$pattern/o ) { $linematches ++; if ( $countlines ) { next FILE; } if ( $listonly ) { print $file, "\n"; next FILE; } print $file, ":"; print $lineno, ":" if ( $linenumbers ); print $line, "\n"; } } } } print $linematches, "\n" if ( $countlines ); exit(! $linematches); 0; gmv0.9/src/bin/linkdups0100644000175200017560000000120706662461243015463 0ustar stephensstepheng#!/bin/sh find . -type f -print | sed 's!\./!!g' > /tmp/$$.names #cat /tmp/$$.names EXEC=echo EXEC= while read f1 do while read f2 do # `/bin/expr length "$f1"` -lt `/bin/expr length "$f2"` if [ "$f1" != "$f2" -a ! \( -h "$f1" -o -h "$f2" \) ] then if /bin/cmp -s "$f1" "$f2" then r2=`expr "$f2" : '\(.*/\).*' '|' "$f2"` r2=`echo "$r2" | sed 's@[^/]*/@../@g'` f1r="$r2$f1" #echo "f1=$f1 f2=$f2 f1r=$f1r" if [ "$f1r" != "$f2" ] then echo "$f2 -> $f1r" /bin/rm -f "$f2" /bin/ln -s "$f1r" "$f2" fi fi fi done < /tmp/$$.names done < /tmp/$$.names gmv0.9/src/bin/locstatic0100644000175200017560000000253106662461244015621 0ustar stephensstepheng#!/bin/sh -- # -*- perl -*- eval 'exec /run/thirdParty/perl5/bin/perl $0 ${1+"$@"}' if 0; # print "$0: ", join(" ", @ARGV), "\n"; $pat = '\W(static\s+(id|\w+\s*\*)\s[^;(){}]*;)'; #$pat = '(static)'; sub scanFileForStatic { my($file) = @_; my($lineno,$s); #select(STDERR); $| = 1; select(STDOUT); #print STDERR "$file \r"; open(FILE,"<$file") || print STDERR "$0: cannot open $file for reading: $!\n"; $lineno = 0; while ( $lineno ++, $_ = ) { $s .= $_; while ( $s =~ s@$pat@@m ) { $s = $'; print "$file: $lineno: $1\n"; } } while ( $s =~ s@$pat@@m ) { $s = $'; print "$file: $lineno: $1\n"; } close(FILE); 0; } sub readDir { my($dirname) = @_; my(@dirlist); opendir(DIR,"$dirname") || print STDERR "$0: cannot open $dirname for reading: $!\n"; @dirlist = readdir(DIR); closedir(DIR); @dirlist = grep(!($_ eq '.' || $_ eq '..' || $_ eq 'SCCS' || $_ eq 'RCS'), @dirlist); # print STDERR "$0: ", join(" ", @dirlist), "\n"; @dirlist; } sub scanFiles { my(@files) = @_; my($f,$ff); foreach $f ( @files ) { if ( -d $f ) { foreach $ff ( readDir($f) ) { scanFiles("$f/$ff"); } } else { scanFileForStatic($f) if $f =~ m/\.[hmc]$/; } } 0; } # print "$0: ", join(" ", @ARGV), "\n"; scanFiles(@ARGV); 0; gmv0.9/src/bin/lsup0100644000175200017560000000040306774730305014614 0ustar stephensstepheng#!/bin/sh # $Id: lsup,v 1.2 1999/09/30 18:49:41 stephensk Exp $ # stephensk@acm.org # if [ $# -eq 0 ] then set `pwd` fi while [ $# -gt 0 ] do f="$1" while [ -n "$f" ] do /bin/ls -lagd "$f" f=`/bin/expr "$f" : '\(.*\)/.*'` done shift done gmv0.9/src/bin/mergefiles.pl0100644000175200017560000001452506663227006016373 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: mergefiles.pl,v 1.2 1999/02/19 09:25:26 stephensk Exp $ # Creates a shell script to merge two directories # based on file modification time and size. # Also generates diffs for files that do not have the same mod time and size # sub ignore_files { grep(! (/\.(o|obj|a|lib|dll|exe|core)$/ || /^\.saves/ || /^CYGWIN/ || /^pilot$/ || /~$/ ), @_); } sub cmd { print "@_\n"; } sub mkdir_p_ { my($dstp) = @_; $dstp =~ s@/[^/]+$@@; cmd("mkdir -p $dstp"); } sub rm_rf { cmd("rm -rf $_[0]"); } sub cp_rp { mkdir_p_($_[1]); cmd("cp -rp @_"); } sub _cp_rp { cmd("#cp -rp @_"); } sub date_str { my($s,$m,$h,$D,$M,$Y,$W,$YD,$dst) = gmtime($_[0]); $s = '0' . $s if ( $s < 10 ); $m = '0' . $m if ( $m < 10 ); $h = '0' . $h if ( $h < 10 ); $Y += 1900; $M ++; $M = '0' . $M if ( $M < 10 ); "$Y/$M/$D-$h:$m:$s"; } sub M_str { my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($_[0]); date_str($mtime); } sub get_dir { my(@dir); opendir(DIR, $_[0]) || return ( 0, $! ); @dir = grep($_ ne '.' && $_ ne '..', readdir(DIR)); closedir(DIR); (1, @dir); } sub merge_paths { my(@p) = @_; my(@e) = map(-e $_, @p); my(@f) = map(-f $_, @p); my(@d) = map(-d $_, @p); my(@s) = map(-s $_, @p); my(@M) = map(-M $_, @p); my(@pd) = map((s@/[^/]+@@, $_), @_); my(@pM) = map(-M $_, @pd); my(@d0, @d1); my($delete, $choose) = ( 0, -1 ); #print STDERR "p = ", "@p", "\n"; #print STDERR "e = ", "@e", "\n"; #print STDERR "f = ", "@f", "\n"; #print STDERR "d = ", "@d", "\n"; #print STDERR "s = ", "@s", "\n"; #print STDERR "M = ", "@M", "\n"; if ( ! $e[0] && ! $e[1] ) { # Both do not exist return; } elsif ( $e[0] && ! $e[1] ) { # d0/f0 exists and d1/f1 does not exists # if d0 is older than d1 if ( $pM[0] < $pM[1] ) { cmd("# $p[1] does not exist and $pd[0] is newer than $pd[1]"); $choose = 2; $delete = 1; } else { cmd("# $p[1] does not exist"); $choose = 1; } } elsif ( ! $e[0] && $e[1] ) { if ( $pM[1] < $pM[0] ) { cmd("# $p[0] does not exist and $pd[1] is newer than $pd[0]"); $choose = 1; $delete = 1; } else { cmd("# $p[0] does not exist"); $choose = 2; } } elsif ( $f[0] && $f[1] ) { if ( $M[0] < $M[1] ) { cmd("# $p[0] is newer than $p[1]"); $choose = 1; } elsif ( $M[0] > $M[1] ) { cmd("# $p[1] is newer than $p[0]"); $choose = 2; } elsif ( $s[0] == $s[1] ) { cmd("# $p[0] is the same time and size as $p[1]"); return; } } elsif ( $d[0] && $d[1] ) { my(@d0, @d1); my($f, $f_last); @d0 = get_dir($p[0]); shift @d0; #print STDERR "d0 = @d0\n"; @d1 = get_dir($p[1]); shift @d1; #print STDERR "d1 = @d1\n"; push(@d0, @d1); @d0 = ignore_files(sort(@d0)); F: foreach $f ( @d0 ) { next F if ( $f_last eq $f ); $f_last = $f; merge_paths($p[0] . "/" . $f, $p[1] . "/" . $f); } return; } else { cmd("#!!!! $p[0] is a " . $d[0] ? "dir" : "file" . ", $p[1] is a " . $d[1] ? "dir" : "file"); } my $get_cmd = $choose == -1; while ( $get_cmd ) { print STDERR join("\t", "1[", $p[0], $s[0], M_str($p[0]), "]"), "\n"; print STDERR join("\t", "2[", $p[1], $s[1], M_str($p[1]), "] :", $choose), " > "; $_ = ; chop; $choose = $1 if ( /([0-9]+)/ ); $delete = /d/; if ( $choose == 3 ) { system("diff -r $p[0] $p[1]"); } else { $get_cmd = 0 if ( $choose != -1 ); } } if ( $choose == 0 ) { $get_cmd = 0; } else { $choose --; if ( $delete ) { rm_rf($p[$delete - 1]); } else { cp_rp($p[$choose], $p[1 - $choose]); } } } sub merge_paths3 { # p0, p1, mp my(@p) = @_; my(@e) = map(-e $_, @p); my(@f) = map(-f $_, @p); my(@d) = map(-d $_, @p); my(@s) = map(-s $_, @p); my(@M) = map(-M $_, @p); my(@pd) = map((s@/[^/]+@@, $_), @_); my(@pM) = map(-M $_, @pd); my(@d0, @d1); my($delete, $choose) = ( 0, -1 ); #print STDERR "p = ", "@p", "\n"; #print STDERR "e = ", "@e", "\n"; #print STDERR "f = ", "@f", "\n"; #print STDERR "d = ", "@d", "\n"; #print STDERR "s = ", "@s", "\n"; #print STDERR "M = ", "@M", "\n"; if ( ! $e[0] && ! $e[1] ) { # Both do not exist } elsif ( $e[0] && ! $e[1] ) { # d0/f0 exists and d1/f1 does not exists # if d0 is older than d1 cmd(""); if ( $pM[0] < $pM[1] ) { cmd("# $p[1] does not exist and $pd[0] is newer than $pd[1]"); } else { cmd("# $p[1] does not exist"); } cp_rp($p[0], $p[2]); } elsif ( ! $e[0] && $e[1] ) { cmd(""); if ( $pM[1] < $pM[0] ) { cmd("# $p[0] does not exist and $pd[1] is newer than $pd[0]"); } else { cmd("# $p[0] does not exist"); } cp_rp($p[1], $p[2]); } elsif ( $f[0] && $f[1] ) { cmd(""); if ( $M[0] < $M[1] ) { cmd("# $p[0] is newer than $p[1]"); $choose = 0; } elsif ( $M[0] > $M[1] ) { cmd("# $p[1] is newer than $p[0]"); $choose = 1; } elsif ( $s[0] == $s[1] ) { cmd("# $p[0] is the same time and size as $p[1]"); $choose = 0; cp_rp($p[$choose], $p[2]); return; } cp_rp($p[$choose], $p[2]); _cp_rp($p[1 - $choose], $p[2]); # Do a diff $tmp = "$$.diff"; $cmd = "diff -cd \"$p[1 - $choose]\" \"$p[$choose]\""; system("$cmd > \"$tmp\""); $choose = 0; open(F, "<$tmp"); while ( $_ = ) { chop; if ( ! $choose ) { cmd("# $cmd "); $choose = 1; } cmd("# $_"); } close(F); cmd("##############################################") if ( $choose ); unlink($tmp); } elsif ( $d[0] && $d[1] ) { my(@d0, @d1); my($f, $f_last); my($errors) = 0; @d0 = get_dir($p[0]); if ( ! shift @d0 ) { print STDERR "$p[0]: ", @d0; $errors ++; } else { shift @d0; } @d1 = get_dir($p[1]); if ( ! shift @d1 ) { print STDERR "$p[1]: ", @d1; $errors ++; } if ( $errors ) { return; } push(@d0, @d1); @d0 = ignore_files(sort(@d0)); F: foreach $f ( @d0 ) { next F if ( $f_last eq $f ); $f_last = $f; merge_paths3($p[0] . "/" . $f, $p[1] . "/" . $f, $p[2] . "/" . $f); } } else { cmd(""); cmd("#!!!! $p[0] is a " . $d[0] ? "dir" : "file" . ", $p[1] is a " . $d[1] ? "dir" : "file"); } } cmd("#!/bin/sh"); cmd("# $0 " . join(" ", @ARGV)); cmd("set -x"); #if ( $#ARGV == 3 ) { merge_paths3(@ARGV); #} else { # merge_paths(@ARGV); #} 1; gmv0.9/src/bin/mkindex0100644000175200017560000000365506774727305015312 0ustar stephensstepheng#!/run/pd/prod/bin/perl # stephensk@acm.org $version = 1.1; $indexname = $index = ".mkindex"; $verbose = 0; while ( @ARGV ) { $arg = shift; $verbose ++ if ( $arg =~ /^-.*v/ ); } # open the index file open(INDEX, ">$index") || die "Cannot open $index for writing: $!"; $INDEX = "INDEX"; # get a list of files from stdin @files = (); while ( <> ) { chop; s@^\./@@; push(@files,$_) if ( -r && -T && ! m@(^|/)$indexname$@o ); } %index = (); print STDERR "$0: indexing ", (scalar @files), " files: " if ( $verbose ); $nentries = 0; $fileindex = -1; foreach ( @files ) { $fileindex ++; $lineno = 0; $pos = 0; open(FILE, "<$_") || next; $nkeys = 0; while ( $line = ) { print STDERR "$line\n" if ( $verbose > 1 ); $lineno ++; while ( $line =~ m/([_a-zA-Z][_a-zA-Z0-9]*)/g ) { $linepos = $pos + (pos $line) - length($1); $index{$1} .= "$fileindex:$lineno:$linepos "; print STDERR "$fileindex:$lineno:$linepos " if ( $verbose > 2 ); $nkeys ++; $nentries ++; } $pos += length($line); } close(FILE); print STDERR "$nkeys " if ( $verbose > 1 ); print STDERR "." if ( $verbose ); } print STDERR "\n" if ( $verbose ); ##################################################################### # Create a unique list of keys @keys = sort(keys(%index)); print STDERR "$0: ", scalar @keys, " unique keys, $nentries citations\n" if ( $verbose ); ##################################################################### # Write version string print $INDEX "mkindex $version\n"; # Write timestamp print $INDEX "timestamp ", time, "\n"; # Write file table print $INDEX "files ", scalar @files, "\n"; print $INDEX join("\n", @files); print $INDEX "\n\n"; # Write index print $INDEX "keys ", scalar @keys, "\n"; foreach ( sort(keys(%index)) ) { print $INDEX "$_ $index{$_}\n"; } print $INDEX "\n\n"; close(INDEX); ##################################################################### 0; gmv0.9/src/bin/mvr.pl0100644000175200017560000000331307001176324015037 0ustar stephensstepheng#!/usr/bin/perl use File::Find; package mvr; sub wanted { my($dir) = $File::Find::dir; my($old, $new); $old = $new = $_; print STDERR "$dir/$old\n" if ( $mvr::verbose > 1 ); if ( &mvr::match($new) ) { if ( $mvr::interactive ) { print STDERR "mv $dir/$old $dir/$new? [y] "; my($line); $line = ; return 0 if ( $line !~ /y/i ); } print STDERR "mv $dir/$old $dir/$new\n" if ( $mvr::verbose || $mvr::debug ); if ( ! $mvr::debug ) { my($tmp) = "$new.$$"; die "$dir/$tmp exists" if ( -e $tmp ); rename($old, $tmp) || die "mv $dir/$old $dir/$tmp failed: $!"; rename($tmp, $new) || print STDERR "mv $dir/$old $dir/$new: $!\n"; } } 0; } sub mvr { $mvr::debug = 0; $mvr::verbose = 1; $mvr::interactive = 0; while ( defined ($_ = shift @_) ) { if ( s/^--?// ) { while ( s/i(nteractive)?// ) { $mvr::interactive ++; } while ( s/d(ebug)?// ) { $mvr::debug ++; } while ( s/v(erbose)?// ){ $mvr::verbose ++; } if ( s/[h?]// ) { print STDERR qq~ $0 [-dvi] FROM TO Rename all files that match regexpr FROM to TO under the current directory. Options: -d[ebug] Enable debugging, does not actually rename. -i[interactive] Interactive; prompts on stderr for confirmation. -v[erbose] Enable verbose messages. -?|-h[elp] This help message. ~; return 1; } } else { $o = $_; $n = shift @_; if ( defined $n ) { print STDERR "mvr $o $n\n" if ( $verbose ); eval 'sub mvr::match { $_[0] =~ s/^' . $o . '$/' . $n . '/; }'; File::Find::find(\&wanted, '.'); } } } 0; } #print STDERR "$0\n"; if ( $0 =~ m@/mvr.pl$@ ) { mvr(@ARGV); } 1; gmv0.9/src/bin/nmlibs0100644000175200017560000000042706662461243015121 0ustar stephensstepheng#!/bin/sh if [ -z "$LIBDIRS" ] then LIBDIRS="/lib /usr/lib" fi LIBDIRS="$* $LIBDIRS" for d in $LIBDIRS do (cd $d for f in lib*.a *.o do nm -gp "$f" | awk ' BEGIN { name = "'$d/$f'"; } /^.*:/ { name = "'$d'/" $1; } { print name, $0, "\n"; }' done ) done gmv0.9/src/bin/nmm0100755000175200017560000000010006662461243014413 0ustar stephensstepheng#!/bin/sh for f do nm "$f" | awk '{ print "'$f'", $0; }' done gmv0.9/src/bin/objcsyms0100644000175200017560000000457306662461244015475 0ustar stephensstepheng#!perl $tmp || ($tmp = $ENV{'TEMP'}); $tmp || ($tmp = $ENV{'TMP'}); $tmp || ($tmp = '/tmp/'); $symbols = (); $nm = '/bin/nm'; $dumpbin = 'dumpbin'; if ( -e $nm ) { # NeXT eval q@ $libprefix = 'lib'; $libsuffix = '.a'; $frameworksuffix = ''; sub refsym { $v && print STDERR "$0: refsym: $_[0]\n"; print C 'asm(".reference ', $_[0], '");', "\n"; } sub do_ObjC_symbols { open(F,"$nm -gp $_ |") || die "$!: cannot read $_"; while ( ) { if ( /\s+[ATDB]\s+(.objc_(class|category)_name_[a-zA-Z0-9_]+)/ ) { &refsym($1); } } close(F); } @; } else { # WinNT eval q@ $libprefix = ''; $libsuffix = '.lib'; $frameworksuffix = '.lib'; sub refsym { $v && print STDERR "$0: refsym: $_[0]\n"; print C 'asm(".global ', $_[0], '");', "\n"; } sub do_ObjC_symbols { open(F,"$dumpbin /symbols /exports $_ |") || die "$!: cannot read $_"; while ( ) { if ( /\s+External\s+(.objc_(class|category)_name_[a-zA-Z0-9_]+)/ ) { &refsym($1); } } close(F); } @; } @libs = (); @libpaths = ("/usr/lib", "/lib"); @frameworkpaths = ("$NEXT_ROOT/LocalLibrary/Frameworks", "$NEXT_ROOT/NextLibrary/Frameworks"); sub findinpath { $f = shift @_; while ( $_ = shift @_ ) { $ft = $_ . '/' . $f; $v && print "$0: try: $ft\n"; if ( -e $ft ) { $v && print "$0: found: $ft\n"; return $ft; } } 0; } $ObjC = 0; $v = 0; $cf = "$tmp$$.c"; while ( $_ = shift @ARGV ) { push(@args, $_); if ( /^-(o|b|V|include|imacros|idirafter|iprefix|iwithprefix)$/ ) { shift @ARGV; } elsif ( /^-ObjC(++)?$/ ) { $ObjC ++; push(@args, $cf); } elsif ( /^-v$/ ) { $v ++; } elsif ( /^-L(.+)$/ ) { push(@libpaths, $1); } elsif ( /^-l(.+)$/ ) { if ( $ft = &findinpath("$libprefix$1$libsuffix", @libpaths) ) { push(@libs, $ft); } } elsif ( /^-F(.+)$/ ) { push(@frameworkpaths, $1); } elsif ( /^-framework$/ ) { push(@args, $_ = shift @ARGV); if ( $ft = &findinpath("$_.framework/$_$frameworksuffix", @frameworkpaths) ) { push(@libs, $ft); } } } if ( $ObjC ) { open(C,">$cf") || die "$!: cannot create $cf"; &refsym('_main'); # force linking foreach ( @libs ) { &do_ObjC_symbols(); } close(C) || die "$!: cannot close $cf"; push(@args, $cf); } else { $cf = 0; } $v && print STDERR join(" ", @args), "\n"; $errors = system(@args) / 256; $cf && unlink($cf); exit $errors; 1; #PERLEND gmv0.9/src/bin/publish.pl0100644000175200017560000004341507306137336015720 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: publish.pl,v 1.10 2001/06/02 10:09:00 stephens Exp $ # TO DO # * Fix problems with non "../" REQUIRES_PKGS # ############################################################################## use Carp; use File::Basename; use Cwd; # fastgetcwd use Cwd 'fast_abs_path'; $progdir = fast_abs_path(dirname($0)); push(@INC, $progdir, "$progdir/lib/perl"); eval 'use ion::_cvs::revhist;'; ############################################################################## $time = time(); { my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($time); $sec = '0' . $sec if ( $sec < 10 ); $min = '0' . $min if ( $min < 10 ); $hour = '0' . $hour if ( $hour < 10 ); $mon ++; $mon = '0' . $mon if ( $mon < 10 ); $mday = '0' . $mday if ( $mday < 10 ); $year += 1900; $timestr = "$year/$mon/$mday $hour:$min:$sec"; } ############################################################################## $tmp_root = "/usr/tmp"; $tmp_root = fast_abs_path($tmp_root); $tmp = "$tmp_root/t" . abs($$); mkdir($tmp, 0777) || die "$!: $tmp"; sub END { #print STDERR "in END\n"; system("rm", "-rf", $tmp) if ( $tmp ); } ############################################################################## $sep = '=' x 78; sub basename { my($x) = @_; $x =~ s@^.*[/\\]@@; $x; } sub dirname { my($x) = @_; #print STDERR "dirname('$x') = "; if ( $x !~ s@[/\\][^/\\]+$@@ ) { $x = '.'; } #print STDERR "'$x'\n"; $x; } sub absname { my($x) = @_; #print STDERR "absname('$x') = "; if ( $x !~ m@^([a-zA-Z]:)?[/\\]@ ) { $x = fastgetcwd() . '/' . $x; } #print STDERR "'$x'\n"; $x; } sub unix_path { my($x) = @_; #print STDERR "unix_path('$x') = "; $x =~ y@\\@/@; $x !~ s@^([a-zA-Z]):@//$1@; #print STDERR "'$x'\n"; $x; } sub mkdirs { my($p, $m) = @_; if ( ! defined($m) ) { $m = 0777; } if ( -d $p ) { 1; } else { my($pdir) = dirname($p); if ( ! -d $pdir ) { mkdirs($pdir, $m); } mkdir($p, $m); } } sub appendFileToHandle { my($in,$OUT) = @_; open(__F, "<$in"); while ( $in = <__F> ) { print $OUT $in; } close(__F); } sub readFile { my($r, $l); open(__F, "<$_[0]") || return; $r = ''; while ( $l = <__F> ) { $r .= $l; } close(__F); $r; } sub copyFile { my($src, $dst) = @_; my($l); open($src, "<$src") || die "$src: $!:"; open($dst, ">$dst") || die "$dst: $!:"; while ( $l = <$src> ) { print $dst $l; } close($src); close($dst); } sub readVars { my($file, $vars, $stopAtEmptyLine) = @_; $vars = {} if ( ! $vars ); open(F, "<$file") || return; LINE: while ( $_ = ) { chop; s/^\s+//; s/\s+$//; if ( /^\s*#/ ) { next LINE; } if ( $_ eq '' && $stopAtEmptyLine ) { last LINE; } my($key, $value) = (undef, undef); # KEY if ( s/^\s*([A-Za-z_0-9]+)// ) { $key = $1; # ='VALUE' if ( m/^\s*=\s*'([^']*)'\s*$/ ) { #' $value = $1; # ="VALUE" } elsif ( m/^\s*=\s*"([^"]*)"\s*$/ ) { #" $value = $1; # =VALUE } elsif ( m/^\s*=(.*)$/ ) { $value = $1; # [ ]VALUE } elsif ( m/^\s?(.*)$/ ) { $value = $1; } else { print STDERR "$0: unparsed line in $file: $key $_\n"; } } if ( defined($key) && defined($value) ) { $value =~ s/^\s+//; $value =~ s/\s+$//; $vars->{$key} = $value; } } close(F); $vars; } sub readPKG { my($pkg); $pkg = {}; $pkg->{src} = $_[0]; $pkg->{src_abs} = fast_abs_path($pkg->{src}); $pkg->{src_name} = basename($pkg->{src_abs}); $pkg->{src_dir} = dirname($pkg->{src_abs}); # Defaults $pkg->{NAME} = $pkg->{src_name}; $pkg->{README} = "README"; $pkg->{VERSION} = readFile("$pkg->{src}/VERSION"); $pkg->{VERSION} =~ y/\n/ /; $pkg->{VERSION} =~ s/^\s+//; $pkg->{VERSION} =~ s/\s+$//; $pkg->{CVSLOG} = 'CVSLOG'; $pkg->{DESC} = ''; $pkg->{CATEGORY} = ''; $pkg->{REQUIRES_PKGS} = ''; $pkg->{REQUIRES_OTHERS} = ''; $pkg->{MAKE} = 'make'; $pkg->{MAKE_CLEAN} = 'clean veryclean'; $pkg->{subpkgs} = []; $pkg->{parent} = $pkg; $pkg->{root} = $pkg; readVars("$pkg->{src}/PKG", $pkg); die "Package $pkg->{src} has no NAME" if ( $pkg->{NAME} eq '' ); print STDERR " WARNING: $pkg->{src_abs} has no VERSION\n" if ( $pkg->{VERSION} eq '' ); print STDERR " WARNING: $pkg->{src_abs} has no CATEGORY\n" if ( $pkg->{CATEGORY} eq '' ); print STDERR " WARNING: $pkg->{src_abs} has no DESC\n" if ( $pkg->{DESC} eq '' ); $pkg; } sub parsePkg { my($pkg, @more) = @_; my($pcwd); # Determine the copy dst $pkg->{dst} = $pkg->{root}->{dst_root} . "/" . $pkg->{src_name}; # Attempt to cd into package $pcwd = getcwd(); chdir($pkg->{src}) || die "chdir: $!: $pkg->{src}"; # Don't visit a package more than once if ( $pkg->{root}->{parsed}->{$pkg->{src_abs}} ) { return; } $pkg->{root}->{parsed}->{$pkg->{src_abs}} ++; # Add package to parent and root push(@{$pkg->{parent}->{subpkgs}}, $pkg); push(@{$pkg->{root}->{subpkgs_flat}}, $pkg); # Collect the other pkgs #print STDERR "REQUIRES_OTHERS='$pkg->{REQUIRES_OTHERS}'\n"; @others = split(/\s+/, $pkg->{REQUIRES_OTHERS}); $pkg->{others} = [ @others ]; # Add others to root foreach $r ( @others ) { $pkg->{root}->{others_map}->{$r} ++; } @{$pkg->{root}->{others_flat}} = sort(keys(%{$pkg->{root}->{others_map}})); # Collect subpkgs foreach $r ( split(/\s+/, $pkg->{REQUIRES_PKGS}), @more ) { my($subpkg) = readPKG($r); $subpkg->{parent} = $pkg; $subpkg->{root} = $pkg->{root}; parsePkg($subpkg); } # chdir($pcwd) || die "chdir: $!: $pcwd"; } sub copyPkg { my($rpkg) = @_; my($pkg); foreach $pkg ( @{$rpkg->{subpkgs_flat}} ) { # Copy the package into the dst area print STDERR " Copying $pkg->{src_abs} $pkg->{dst}\n"; mkdirs($pkg->{dst}, 0777); $src = unix_path($pkg->{src_abs}); $dst = unix_path($pkg->{dst}); system("sh -c '$tar -C $src -cf - . | $tar -C $dst -x${tar_verbose}f -'") && die "tar: $!"; print STDERR " Copying $pkg->{src_abs} $pkg->{dst}: DONE\n\n"; } } sub cleanPkg { my($rpkg) = @_; my($pkg); foreach $pkg ( @{$rpkg->{subpkgs_flat}} ) { # Clean up the dst area if ( -r "$pkg->{dst}/Makefile" ) { print STDERR " Cleaning $pkg->{dst}\n"; $dst = unix_path($pkg->{dst}); system("sh -c 'cd $dst && eval $pkg->{MAKE} __DISABLE_DEPS__=YES $pkg->{MAKE_CLEAN}'"); print STDERR " Cleaning $pkg->{dst}: DONE\n\n"; } } } sub commitPkg { my($rpkg) = @_; my($pkg); if ( defined($CVSROOT) ) { foreach $pkg ( @{$rpkg->{subpkgs_flat}} ) { # Clean up the dst area if ( -d "$pkg->{dst}/CVS" ) { my($msg, $cmd); # Commit print STDERR " Committing $pkg->{dst}\n"; $msg = "PUBLISH_$rpkg->{NAME}$rpkg->{VERSION}"; $cmd = "$CVS commit -m \"$msg\" $pkg->{dst}"; print STDERR " $cmd\n"; system($cmd) && die "$cmd"; print STDERR " Committing $pkg->{dst}: DONE\n\n"; # Tag $msg = "PUBLISH_$rpkg->{NAME}$rpkg->{VERSION}"; $msg =~ tr/A-Za-z0-9_/_/c; print STDERR " Tagging $pkg->{dst} as $msg\n"; $cmd = "$CVS tag "; $cmd .= "-F " if ( $force ); $cmd .= "-c $msg $pkg->{dst}"; print STDERR " $cmd\n"; system($cmd) && die "$cmd"; print STDERR " Tagging $pkg->{dst} as $msg: DONE\n\n"; # Log #print STDERR " Logging CVS versions $pkg->{dst}\n"; #$cmd = "$CVS log -h -N -r$msg $pkg->{dst} > $pkg->{dst}/$pkg->{CVSLOG}"; #print STDERR " $cmd\n"; #system($cmd) && die "$cmd"; #print STDERR " Logging CVS versions $pkg->{dst}: DONE\n\n"; } } } } sub createPkgFiles { my($rootpkg) = @_; foreach $pkg ( @{$rootpkg->{subpkgs_flat}} ) { # Append README $file = "$pkg->{dst}/$pkg->{README}"; if ( $pkg->{README} ne '' && -r $file ) { print dst_README "$pkg->{NAME} $pkg->{VERSION} README\n"; print dst_README "$sep\n"; appendFileToHandle($file, 'dst_README'); } # Append PUB { my(%x); %x = %$pkg; $x{SRC_DIR} = $x{src_abs}; foreach $k ( NAME, VERSION, CATEGORY, DESC, SRC_DIR ) { print PUB $k, " ", $x{$k}, "\n"; delete $x{$k}; } foreach $k ( sort(grep(/^[A-Z_0-9]+$/, keys(%x))) ) { print PUB $k, " ", $x{$k}, "\n"; } print PUB "\n"; } } foreach $r ( @{$rootpkg->{others_flat}} ) { print PUB "OTHER $r\n\n"; } } sub createPkg { my $pkg; $pkg = readPKG($_[0]); print STDERR "Publishing $_[0]\n"; $dst_name = "$pkg->{src_name}$pkg->{VERSION}"; $dst_dir = "$tmp/$dst_name"; $dst_root = "$dst_dir/src"; mkdirs($dst_root, 0777) || die "$dst_root: $!"; $pkg->{dst_root} = $dst_root; $pkg->{parsed} = {}; $pkg->{others_map} = {}; $pkg->{subpkgs_flat} = []; $pkg->{others_flat} = []; ######################################################################### # Recursively parse packages parsePkg($pkg); ######################################################################### # Copy the entire package copyPkg($pkg); ######################################################################### # Clean the entire package cleanPkg($pkg); ######################################################################### # CVS commit the entire package commitPkg($pkg); ######################################################################### # The files we are going to publish $filev = $pkg->{src_name} . $pkg->{VERSION}; $txt = "$PUBLISH_DIR/$filev.txt"; $archive = "$PUBLISH_DIR/$filev.tgz"; $pub = "$PUBLISH_DIR/$filev.pub"; ######################################################################### # Init PUB file die "$pub already exists, try -force option" if ( -f $pub && ! $force ); open(PUB, ">$pub") || die "$pub: $!"; print PUB "NAME $pkg->{NAME}\n"; print PUB "VERSION $pkg->{VERSION}\n"; print PUB "CATEGORY $pkg->{CATEGORY}\n"; print PUB "DESC $pkg->{DESC}\n"; @subpkg_names = map($_->{NAME}, @{$pkg->{subpkgs_flat}}); print PUB "CONTAINS_PKGS ", join(' ', @subpkg_names), "\n"; print PUB "REQUIRES_OTHERS ", join(' ', @{$pkg->{others_flat}}), "\n"; print PUB "DATE $timestr\n"; #print PUB "MD5 $\n"; print PUB "README $txt\n"; print PUB "ARCHIVE $archive\n"; print PUB "\n"; ################################################################## # Init README, TOC files $dst_README = "$dst_dir/README"; open(dst_README, ">$dst_README") || die "$dst_README: $!"; print dst_README "$pkg->{NAME} $pkg->{VERSION} README\n"; print dst_README "$sep\n\n"; ################################################################## # Add GUM_BUILD_ROOT $GUM_BUILD_ROOT = "$pkg->{src_abs}/../GUM_BUILD_ROOT"; if ( -r $GUM_BUILD_ROOT ) { copyFile($GUM_BUILD_ROOT, "$dst_dir/src/GUM_BUILD_ROOT"); } ################################################################## # Add copyright $COPYRIGHT = "$pkg->{src_abs}/../COPYRIGHT"; if ( -r $COPYRIGHT ) { copyFile($COPYRIGHT, "$dst_dir/COPYRIGHT"); } appendFileToHandle($COPYRIGHT, dst_README); print dst_README "\n$sep\n\n"; ################################################################## # Add license $LICENSE = "$pkg->{src_abs}/../LICENSE"; if ( -r $LICENSE ) { copyFile($LICENSE, "$dst_dir/LICENSE"); appendFileToHandle($LICENSE, dst_README); print dst_README "\n$sep\n\n"; } ################################################################## # Create CHANGES $dst_CHANGES = "$dst_dir/CHANGES"; print STDERR " Creating CHANGES $dst_CHANGES\n"; open(dst_CHANGES, ">$dst_CHANGES") || die "$dst_CHANGES: $!"; print dst_CHANGES "$pkg->{NAME} $pkg->{VERSION} CHANGES\n"; print dst_CHANGES "$sep\n\n"; close(dst_CHANGES); my($save_cwd) = getcwd; chdir($dst_dir) || die "$dst_dir: $!"; if ( $pkg->{CHANGES_RELEASES} ) { my(@rels) = split(/\s+/, $pkg->{CHANGES_RELEASES}); @rels = map( "PUBLISH_" . $pkg->{NAME} . $_, @rels); @rels = grep( (tr/a-zA-Z0-9_/_/c, 1), @rels); push(@rels, ''); #print STDERR "rels = '", join("' '", @rels), "'\n"; #exit -1; my($r1, $r2); $r2 = shift(@rels); while ( $r1 = $r2, defined($r2 = shift(@rels)) ) { open(dst_CHANGES, ">>$dst_CHANGES") || die "$dst_CHANGES: $!"; print dst_CHANGES "\n$sep\nChanges from release '$r2' to '$r1'\n"; print dst_CHANGES "$sep\n\n"; close(dst_CHANGES); print STDERR " Changes from release '$r2' to '$r1'\n"; $cmd = "perl $progdir/cvsrevhist.pl -f=-r$r2:$r1 . >> $dst_CHANGES"; print STDERR "$cmd\n"; system("sh -c '$cmd'") && die "$cmd: $!"; } } else { $cmd = "perl $progdir/cvsrevhist.pl . >> $dst_CHANGES"; system("sh -c '$cmd'") && die "$cmd: $!"; } chdir($save_cwd) || die "$save_cwd: $!"; print STDERR " Created CHANGES $dst_CHANGES: DONE\n\n"; ################################################################## # Create TOC $dst_TOC = "$dst_dir/TOC"; print STDERR " Creating TOC $dst_TOC\n"; open(dst_TOC, ">$dst_TOC") || die "$dst_TOC: $!"; print dst_TOC "$pkg->{NAME} $pkg->{VERSION} Table of Contents\n"; print dst_TOC "$sep\n"; close(dst_TOC); # Use ls -lagR system("sh -c 'cd $tmp && ls -lagR $dst_name >> $dst_TOC'"); # Fill in the pkg files createPkgFiles($pkg); # Close output files close(PUB); close(dst_README); print STDERR " Created TOC $dst_TOC: DONE.\n\n"; ######################################################################## # Create the external readme print STDERR " Creating README $txt\n"; open(TXT, ">$txt"); appendFileToHandle($dst_README, TXT); print TXT "$sep\n\n"; print dst_TOC "$pkg->{NAME} $pkg->{VERSION} Package Info\n"; print TXT "$sep\n\n"; appendFileToHandle($pub, TXT); print TXT "$sep\n\n"; appendFileToHandle($dst_CHANGES, TXT); print TXT "$sep\n\n"; appendFileToHandle($dst_TOC, TXT); print TXT "$sep\n\n"; close(TXT); print STDERR " Created README $txt: DONE.\n\n"; ######################################################################## # Create archive and finish TOC print STDERR " Creating $pkg->{NAME} archive $archive\n"; system("sh -c '$tar -C $tmp -c${tar_verbose}f - $dst_name | $gzip -9 > $archive'"); print STDERR " Created $pkg->{NAME} archive $archive: DONE.\n\n"; ######################################################################## # Remove the temp directory system("rm", "-rf", $dst_dir); print STDERR "Publishing $_[0]: DONE\n\n"; } ############################################################################## # tar, gzip $tar = 'tar'; $tar_verbose = 'v'; $tar_verbose = ''; $gzip = 'gzip'; # cvs $CVSROOT = $ENV{CVSROOT}; $CVS = $ENV{CVS}; $CVS = 'cvs.exe' if ( ! defined($CVS) ); $PUBLISH_DIR = $ENV{PUBLISH_DIR}; $PUBLISH_DIR = 'd:/data/ion/www/research/pub' if ( ! $PUBLISH_DIR ); ############################################################################## # Parse arguments @pkgs = (); $index = 0; $reldir = ""; $force = 0; while ( $_ = shift @ARGV ) { if ( /^-?-i/ ) { $index = shift; } elsif ( /^-?-f/ ) { $force ++; } elsif ( /^-?-p/ ) { $PUBLISH_DIR = shift; } elsif ( /^-?-r/ ) { $reldir = shift; } else { push(@pkgs, $_); } } ############################################################################## # Create each package foreach $pkg ( @pkgs ) { createPkg($pkg); } ############################################################################## # Create package index sub size_str { "(" . (-s $_[0]) . " bytes)"; } if ( $index ) { #Pkgs by CATEGORY %c = (); if ( $reldir ne '' && $reldir !~ m@[/\\]$@ ) { $reldir .= '/'; } # Read each published pkg's data file foreach $pub ( glob("$PUBLISH_DIR/*.pub") ) { my($pkg) = readVars($pub, undef, 1); # Arrange by CATEGORY $pkg->{CATEGORY} = "UNKNOWN-CATEGORY" if ( $pkg->{CATEGORY} eq '' ); $pkg->{DESC} = "No Description Available. See README." if ( ! $pkg->{DESC} ); $pkg->{pub} = $pub; $pkg->{pub_file} = basename($pub); if ( ! defined($c{$pkg->{CATEGORY}}) ) { $c{$pkg->{CATEGORY}} = [ ]; } push(@{$c{$pkg->{CATEGORY}}}, $pkg); } @cats = sort(keys(%c)); # Open the index file open(INDEX, ">$index") || die "$index: $!"; # List the cats print INDEX "

Package Categories

\n"; print INDEX "
    \n"; $ci = 0; foreach $cat ( @cats ) { $ci ++; print INDEX qq@
  • $cat\n@; } print INDEX "
\n"; # Print each cat $ci = 0; foreach $cat ( @cats ) { $ci ++; print INDEX qq@

$cat

\n@; print INDEX "
\n"; foreach $pkg ( sort { $a->{NAME} cmp $b->{NAME} || $b->{VERSION} <=> $a->{VERSION} } @{$c{$cat}} ) { my($NAME) = uc($pkg->{NAME}); my($VERSION) = $pkg->{VERSION}; my($DESC) = $pkg->{DESC}; my($ARCHIVE) = basename($pkg->{ARCHIVE}); my($README) = basename($pkg->{README}); print INDEX qq@
$NAME $VERSION
$DESC\n@; print INDEX qq@
Date: $pkg->{DATE}\n@; print INDEX qq@
Requires: $pkg->{REQUIRES_OTHERS}\n@ if ( $pkg->{REQUIRES_OTHERS} ne '' ); print INDEX qq@
View README @ . &size_str($pkg->{README}) . "\n"; print INDEX qq@
View package info @ . &size_str($pkg->{pub}) . "\n"; print INDEX qq@
Download $ARCHIVE @ . &size_str($pkg->{ARCHIVE}) . "\n"; print INDEX qq@
\n@; } print INDEX "
\n"; } print INDEX "
\n"; # Close the index file close(INDEX); print STDERR "Created index $index\n"; } 1; gmv0.9/src/bin/sci0100644000175200017560000000561506662461244014420 0ustar stephensstepheng#!/bin/sh #set -x #exec=/bin/echo exec= force= y='Checkpoint' fs= tarfs= cmd="$1" opts="" shift while /bin/test $# -gt 0 do f="$1" shift case "$f" in -TEST) exec=/bin/echo opts="$opts $f" ;; -f) force=1 opts="$opts $f" ;; -y) y="$1" shift ;; SCCS) ;; .) /bin/ls SCCS | /bin/sed -e '/^s\./!d' -e 's@^s\.@@' | /usr/bin/xargs -n1024 $0 "$cmd" $opts -y "$y" ;; */*) (cd `/bin/expr "$f" : '\(.*\)/.*'` && $0 "$cmd" $opts -y "$y" `/bin/expr "$f" : '.*/\(.*\)'`) ;; *) if /bin/test -d "$f" then if /bin/test -f "SCCS/s.$f.tar" then f="$f.tar" fs="$fs $f" else /bin/ls "$f" | (cd "$f" && /usr/bin/xargs -n1024 $0 "$cmd" $opts -y "$y") fi else fs="$fs $f" fi ;; esac done case "$cmd" in get|ci|edit|editopen|update) _fs="$fs"; fs="" for f in $_fs do if /bin/test -f "SCCS/s.$f" then fs="$fs $f" if /bin/test -n "$force" then /bin/chmod -w "$f" fi else echo "$f: no SCCS/s.$f" fi done ;; esac case "$cmd" in create|ci|edit|editopen|update) _fs="$fs"; fs="" for f in $_fs do if /bin/test -f "SCCS/p.$f" then echo "$f: SCCS/p.$f exists:" `cat SCCS/p.$f` else fs="$fs $f" fi done ;; esac for f in $fs do case "$f" in *.tar) tarfs="$tarfs $f" ;; esac done case "$cmd" in ci|delget|delta|create) for f in $tarfs do d=`/usr/bin/basename $f .tar` $exec /bin/rm -f "$f" $exec /bin/chmod -Rf ugo+wr "$d" $exec tar -cvf - "$d" > "$f" done ;; esac case "$cmd" in ci|create) _fs="$fs"; fs="" for f in $_fs do if /bin/test -r "$f" then fs="$fs $f" else echo "$f: not readable" fi done ;; esac if /bin/test -n "$fs" then case "$cmd" in update) set +x for f in $fs do sf="SCCS/s.$f" /usr/bin/find "$sf" -newer "$f" -print done | /bin/sed -e 's@^SCCS/s\.@@' | /usr/bin/xargs -n1024 $0 get $opts ;; ci|cie) for f in $fs do $exec /bin/mv "$f" "$f.sci.$$" done $exec scc edit $fs for f in $fs do $exec /bin/mv "$f.sci.$$" "$f" done $exec /bin/chmod +w $fs if /bin/test "$cmd" = "cie" then $exec scc deledit "-y$y" $fs else $exec scc delget "-y$y" $fs fi $exec /bin/date > 'CheckpointDate' ;; create|delget|deledit) $exec scc $cmd "-y$y" $fs ;; get|unedit|prs|diffs) $exec scc $cmd $fs ;; co|edit|editopen) $exec scc edit $fs ;; *) /bin/echo "$0: $cmd: bad command" ;; esac case "$cmd" in get|co|edit|create) for f in $tarfs do d=`/usr/bin/basename $f .tar` $exec /bin/rm -rf "$d" $exec tar -xvf "$f" $exec /bin/chmod -Rf ugo+wr "$d" done ;; esac case "$cmd" in editopen) $exec open -a Edit $fs ;; esac fi exit 0 gmv0.9/src/bin/scip0100644000175200017560000000640006662461244014571 0ustar stephensstepheng#!/run/thirdParty/perl5/bin/perl eval 'exec /run/thirdParty/perl5/bin/perl $0 ${1+"$@"}' if 0; $exec = 0; $y = 'Checkpoint'; @fs = (); @tarfs = (); sub _exec { if ( $exec ) { system(@_); } else { print STDERR @_, "\n"; } } sub warning { print STDERR "$0: ", @_, "\n"; } sub getdir { my($dir) = $_[0]; my(@filenames); opendir(DIR,$dir) || (warning "Can't open $dir: $!\n", return); @filenames = readdir(DIR); closedir(DIR); grep(($_ ne '.' && $_ ne '..'), @filenames); } sub sfile { ( $_[0] =~ m/^(.*/)([^/]+)$/ ) ? "$1SCCS/$_[1].$2" : "SCCS/$_[1].$_[0]"; } sub dofile { if ( -d ) { if ( -f &sfile("$_.tar", 's') ) { $_ .= '.tar'; push(@fs, $_); } else { } } else { push(@fs, $_); } } $cmd = shift; while ( shift ) { if ( $_ eq '-TEST' ) { $exec = 0; } elsif ( $_ eq '-y' ) { $y = shift; } elsif ( $_ eq 'SCCS' || $_ eq 'RCS' ) { } elsif ( $_ eq '.' ) { my(@x) = &getdir('SCCS'); grep((s/^s.//, 1), @x); push(@ARGV, @x); } elsif ( m@/@ ) { } else { if ( -d ) { if ( -f &sfile_("$_.tar", 's') ) { $_ .= '.tar'; push(@fs, $_); } else { $d = $_; for ( &getdir($d) ) { &dofile("$d/$_"); } } } else { push(@fs, $_); } } } if ( $cmd =~ m/^(get|ci|edit|editopen|update)$/ ) { @_fs = @fs; @fs = (); for ( @_fs ) { $sf = &sfile($_, 's'); if ( -f $sf ) { push(@fs, $_); } else { &warning("$_: no $sf"); } } } if ( $cmd =~ m/^(create|ci|edit|editopen|update)$/ ) { @_fs = @fs; @fs = (); for ( @_fs ) { if ( -f &sfile($_, 'p') ) { &warning("$_: is under edit"); } else { push(@fs, $_); } } } @tarfs = (); for ( @fs ) { if ( m/\.tar$/ ) { push(@tarfs, $_); } } if ( $cmd =~ m/^(ci|delget|delta|create)$/ ) { for ( @tarfs ) { m@^(.*)\.tar$@; $d = $1; &_exec('/bin/rm', '-f', $_); &_exec('/bin/chmod', '-Rf', 'ugo+wr', $d); &_exec("tar -cvf - $d > $_"); } } if ( $cmd =~ m/^(ci|create)$/ ) { @_fs = @fs; @fs = (); for ( @_fs ) { if ( -r $_ ) { push(@fs, $_); } else { &warning("$_: not readable"); } } } if ( @fs ) { if ( $cmd eq 'update' ) { for ( @fs ) { $sf = &sfile($_, 's'); if ( (-M $sf) > (-M $_) ) { &warning("$_: is out of date with $sf"); } } } elsif ( $cmd =~ m/^(ci|cie)$/ ) { for ( @fs ) { &_exec('/bin/mv', $_, "$f.sci.$$"); } &_exec('scc', 'edit', @fs); for ( @fs ) { &_exec('/bin/mv', "$f.sci.$$", $_); } &_exec('/bin/chmod', '+w', @fs); &_exec('scc', ( $cmd eq 'cie' ? 'deledit' : 'delget' ), "-y$y", @fs); #$exec /bin/date > 'CheckpointDate' } elsif ( $cmd =~ m/^(create|delget|deledit)$/ ) { &_exec('scc', $cmd, "-y$y", @fs); } elsif ( $cmd =~ m/^(get|unedit)$/ ) { &_exec('scc', $cmd, @fs); } elsif ( $cmd =~ m/^(co|edit|editopen)$/ ) { &_exec('scc', 'edit', @fs); } else { &warning("$cmd: bad command"); } if ( $cmd =~ m/^(get|co|edit|create)$/ ) { for ( @tarfs ) { m@^(.*)\.tar$@; $d = $1; &_exec('/bin/rm', '-rf', $d); &_exec("tar", '-xvf', $_); &_exec('/bin/chmod', '-Rf', 'ugo+wr', $d); } } } 1; gmv0.9/src/bin/si0100644000175200017560000000013407001136307014227 0ustar stephensstepheng#!/bin/sh #set -x echo '#include "'"$1"'"' | gcc -E - | awk 'NF' | egrep -v -e '^#' | less gmv0.9/src/bin/split.c0100644000175200017560000000450606663227006015211 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_bin_split_c__ #define __rcs_id_bin_split_c__ static const char __rcs_id_bin_split_c[] = "$Id: split.c,v 1.2 1999/02/19 09:25:26 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include #include /* malloc(), free() */ #include /* strlen(), strcpy(), strcat(), strcmp() */ static char *progname; #ifdef BC #include /* O_BINARY */ #include #endif static int dofile(unsigned long fsize, FILE *in, const char *name) { char *fname; int fn; int rtnval = 0; fname = malloc(sizeof(fname[0]) * (strlen(name) + 5)); fn = 0; do { FILE *out; unsigned long bytes_left; { char buf[5]; sprintf(buf, ".%03d", (int) fn ++); strcpy(fname, name); strcat(fname, buf); if ( (out = fopen(fname, "wb")) == 0 ) { fprintf(stderr, "%s: cannot open \"%s\" for writing\n", progname, fname); rtnval = -1; goto rtn; } } bytes_left = fsize; while ( bytes_left ) { int c; if ( (c = getc(in)) == EOF ) { fclose(out); rtnval = 0; goto rtn; } else { putc(c, out); bytes_left --; } } fclose(out); } while ( 1 ); rtn: free(fname); return rtnval; } int main(int argc, char **argv) { int i; char *outname = 0; unsigned long fsize = 1440000UL; int rtnval = 0; progname = argv[0]; #ifdef BC _fmode = O_BINARY; #endif for ( i = 1; i < argc; i ++ ) { if ( argv[i][0] == '-' ) { switch ( argv[i][1] ) { case 's': fsize = atol(argv[i][2] ? argv[i] + 2 : argv[++ i]); break; case 'o': outname = argv[i][2] ? argv[i] + 2 : argv[++ i]; break; default: fprintf(stderr, "%s: bad option \"%s\"\n", progname, argv[i]); break; } } else { FILE *in; char *inname = argv[i]; if ( strcmp(inname, "-") == 0 ) { in = stdin; } else if ( (in = fopen(inname, "rb")) == 0 ) { fprintf(stderr, "%s: cannot open \"%s\" for reading\n", progname, inname); rtnval ++; } if ( outname == 0 ) { char *p; outname = malloc(sizeof(outname[0]) * (strlen(inname) + 2)); strcpy(outname, inname); if ( (p = strrchr(outname, '.')) ) { *p = '\0'; } else { strcat(outname, "."); } } rtnval += dofile(fsize, in, outname); if ( in != stdin ) fclose(in); } } return rtnval; } gmv0.9/src/bin/tgz0100744000175200017560000000445607230344242014437 0ustar stephensstepheng#!/bin/sh # $Id: tgz,v 1.6 2001/01/14 15:41:22 stephens Exp $ #set -x if [ -z "$TAR" ] then TAR=tar fi if [ -z "$GZIP" ] then GZIP=gzip fi if [ -z "$BZIP" ] then BZIP=bzip2 fi if [ -z "$BUNZIP" ] then BUNZIP=bunzip2 fi if [ -z "$GUNZIP" ] then GUNZIP="$GZIP -d" fi if [ -z "$COMPRESS" ] then COMPRESS=compress fi c= C=. o= tv= s=.tgz x=x #set -x while [ $# -gt 0 ] do case "$1" in -c) c=1 ;; -o) o="$2" shift ;; -s) s="$2" shift ;; -C) C="$2" shift ;; -*) case "$1" in -*t*) tv="${tv}t" x= ;; esac case "$1" in -*v*) tv="${tv}v" ;; esac ;; *) if [ -d "$1" -o -n "$c" ] then d=`expr "$1" : '\(.*\)/[^/]*' '|' '.'` f=`expr "$1" : '.*/\([^/]*\)' '|' "$1"` if [ -z "$o" ] then o="$f$s" fi case "$o" in *.tb2|*.TB2|*.tar.bz2|*_tar.bz2|*_TAR.BZ2) cmd="(cd $d && $TAR -c${tv}f - '$f' ) | (cd '$C' && $BZIP -9 > '$o')" ;; *.tgz|*.TGZ|*.tar.gz|*_TAR.GZ) cmd="(cd $d && $TAR -c${tv}f - '$f' ) | (cd '$C' && $GZIP -9 > '$o')" ;; *.tar|*.TAR|*.gtar|*.GTAR) cmd="(cd $d && $TAR -c${tv}f - '$f' ) | (cd '$C' && cat - > '$o')" ;; *.gz|*.GZ|*.gzip|*.GZIP) cmd="(cd $d && $GZIP -9 -c '$f' ) | (cd '$C' && cat - > '$o')" ;; *.bz|*.BZ|*.bz2|*.BZ2) cmd="(cd $d && $BZIP -9 -c '$f' ) | (cd '$C' && cat - > '$o')" ;; esac echo $cmd eval $cmd o= elif [ -f "$1" ] then if [ -z "$o" ] then o="." fi if [ ! -d "$o" ] then mkdir "$o" fi case "$1" in *.tgz|*.tar.gz|*.TGZ|*.tz|*.TZ) cmd="$GUNZIP < '$1' | (cd '$o' && $TAR -$x${tv}f -)" ;; *.tbz|*.TBZ|*.tar.b2|*.tb2|*.TB2|*_tar.bz2|*_TAR.BZ2) cmd="$BUNZIP -d -c -k '$1' | (cd '$o' && $TAR -$x${tv}f -)" ;; *.bz|*.BZ) cmd="$BUNZIP -d -k '$1'" ;; *.gz|*.GZ) cmd="$GUNZIP -d -c < '$1'" ;; *.tar|*.TAR|*.gtar|*.GTAR) cmd="(cd '$o' && $TAR -$x${tv}f -) < '$1'" ;; *) echo "$0: $1: unknown suffix" 1>&2 cmd="" ;; esac if [ -n "$cmd" ] then echo $cmd eval $cmd fi o= x=x else : fi ;; esac shift done gmv0.9/src/bin/ts0100644000175200017560000000316707065620573014270 0ustar stephensstepheng#!/bin/sh set -x action="$1" shift [ -z "$GDB" ] && GDB='gdb' target=gdb files='' while [ $# -gt 0 ] do case "$1" in -t) target="$2" shift; ;; *=*) eval "$1" ;; *) files="$files $1" ;; esac shift done for f in $files do pre='cat -' post='' gdbx='' run_in_db() { _app="$1"; shift gdbx="/tmp/gdbx" echo "#Created by $0: DO NOT MODIFY" > $gdbx echo "break main" >> $gdbx echo "run $*" >> $gdbx $GDB $_app -x $gdbx rm $gdbx } case "$target" in *gdb*) _APP="${APP}" gdbx="/tmp/gdbx" echo "#Created by $0: DO NOT MODIFY" > $gdbx do_line() { case "$line" in \#*) echo "$line" >> $gdbx ;; run*) echo "shell echo '$line'" >> $gdbx echo "$line" >> $gdbx echo 'shell echo Hit return' >> $gdbx echo 'shell read line' >> $gdbx ;; *=*) eval "$line" ;; *) echo "shell echo '$line'" >> $gdbx eval echo "shell '$line'" >> $gdbx ;; esac } post='$target $APP -x $gdbx' ;; *time*) do_line() { echo "$line" case "$line" in \#*) ;; *=*) eval "$line" ;; *) eval "$line" ;; esac } run() { eval time $APP "$@" code=$? echo "=== $APP $@: terminated with $code" if [ $code -ne 0 ] then run_in_db $APP "$@" fi } ;; *) echo "$0: unknown target '$target'" 1>&2 ;; esac eval $pre < "$f" | while read line do do_line done [ -n "$gdbx" -a -r "$gdbx" ] && cat $gdbx eval $post donegmv0.9/src/bin/uud0100744000175200017560000000417207262415712014431 0ustar stephensstepheng#!/bin/perl # # scans files for a uuencoded items in files and decodes them to $dir # and adds a line to $db based on the Subject: lines found # $count = 0; $subject = ''; $dir = shift || die("Specify an output directory"); $db = "$dir/images.txt"; @files = (); %subjects = (); %files = (); $again = 0; while ( $again || defined($_ = <>) ) { $again = 0; chop; if ( s/^Subject:\s+// ) { $subject = $_; } elsif ( /^begin\s+(\S+)\s+(\S+)/ ) { $mode = $1; $file = $2; print STDERR "File: $file, Subject: $subject\n"; if ( $file ne '' ) { $str = ''; $nlines = 0; while ( defined($_ = <>) ) { $nlines ++; if ( $nlines % 100 ) { print STDERR "$nlines lines...\r"; } last if /^end/; if ( /^Subject:\s+/ || /^begin\s+(\S+)\s+(\S+)/ ) { print STDERR "WARNING: found $_"; $again ++; last; } next if /[a-z]/; next unless int((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); $str .= unpack('u', $_); } # Remove dir from $file name $file =~ s@^.*/@@; # Add .jpg suffix if needed $file .= "_" . ($count ++) . ".jpg" if ( $file !~ /\.jpg$/ ); # Give it an orignal name if ( 0 ) { while ( -f "$dir/$file" ) { $file =~ s/_([0-9]+)(\.[^\.]+)$//; $suffix = $1; $file .= ($count ++) . $suffix; } } # If the file doesn't already exist if ( ! -f "$dir/$file" ) { # Add an entry to the index push(@files, $file); while ( defined($files{$subject}) ) { $subject =~ s/_([0-9]+)$//; $subject .= '_' . ($1 + 1); } $subjects{$file} = $subject; $files{$subject} = $file; # print "file = $file, mode = $mode, subject = $subject\n"; # Write the file open(F, ">$dir/$file"); binmode(F); print F $str; close(F); #exit(0); } } } } #Append to db $exists = -r $db; open(INDEX, ">>$db"); binmode(INDEX); print INDEX "Filename\tSubject\n" if ( ! $exists ); foreach $file ( sort(@files) ) { $subject = $subjects{$file}; print INDEX "$file\t$subject\n"; } close(INDEX); ########################################################################## 1; gmv0.9/src/bin/uudindex0100744000175200017560000000711507262415713015462 0ustar stephensstepheng#!/bin/perl # Creates a html index for stuff in $dir listed by $db # Run this after uud. # $dir = shift || "images"; $db = "$dir.txt"; $_html = '.html'; ########################################################################## @fieldnames = (); @fields = (); @records = (); @files = (); %subjects = (); %files = (); #Read db open(INDEX, "<$db"); binmode(INDEX); # First record is the field names $_ = ; chop; @fieldnames = split("\t", $_); $fieldindex = 0; foreach $fieldname ( @fieldnames ) { $fieldindex{$fieldname} = $fieldindex ++; } while ( ) { chop; @fields = split("\t", $_); push(@records, [ @fields ]); } close(INDEX); #Create index.html $menu = "menu_" . $fieldnames[0] . $_html; open(INDEX, ">$dir/index$_html"); binmode(INDEX); print INDEX qq@ None <BODY> <CENTER> This frameset document contains: <UL> <LI> <A HREF="$menu">Menu</A></LI> </UL> </BODY> @; close(INDEX); #Create blank.html open(INDEX, ">$dir/blank$_html"); binmode(INDEX); print INDEX q@ None @; close(INDEX); sub add_suffix { my($x,$s) = @_; $x =~ s/\.[^.]+$//; $x .= $s; $x; } #Create menus $fieldindex = -1; foreach $fieldname ( @fieldnames ) { $fieldindex ++; $menu = "menu_$fieldname$_html"; open(INDEX, ">$dir/$menu"); binmode(INDEX); print INDEX qq~ None ~; # Put a record to select a different column sorting print INDEX qq~~; foreach $fname ( @fieldnames ) { print INDEX qq~~; foreach $field ( @$record ) { print INDEX qq~
$fname~; } print INDEX "\n"; # Sort by Filename and create htmls for each file $fieldindex = $fieldindex{'Filename'}; @records = sort { $a->[$fieldindex] cmp $b->[$fieldindex] } @records; foreach $ri ( 0..$#records ) { $record = $records[$ri]; $image = $record->[0]; $HREF = add_suffix($record->[0], $_html); $prev = $ri > 0 ? add_suffix($records[$ri - 1]->[0], $_html) : undef; $next = $ri <= $#records ? add_suffix($records[$ri + 1]->[0], $_html) : undef; print STDERR "HREF='$HREF', image='$image', prev='$prev', next='$next'\n"; exit(1); if ( $HREF ) { open(HREF,">$HREF") || die "Cannot write '$HREF'"; print HREF qq~ None
$record->[1]

~; if ( $prev ) { print HREF qq~PREV $prev\n~; } if ( $next ) { print HREF qq~NEXT $next\n~; } print HREF qq~


$image\n~; print HREF qq~
~; close(HREF); } } # Sort by current field @records = sort { $a->[$fieldindex] cmp $b->[$fieldindex] } @records; foreach $ri ( 0..$#records ) { $record = $records[$ri]; $HREF = add_suffix($record->[0]. $_html); print INDEX qq~
$field~; } print INDEX "\n"; } print INDEX qq~

~; close(INDEX); } 1; gmv0.9/src/bin/which0100644000175200017560000000113606662461244014736 0ustar stephensstepheng#!/bin/sh #set -x pathchar=':' if expr index "$PATH" ';' > /dev/null then pathchar=';' fi oIFS="$IFS" for f in ${1+"$@"} do IFS="$pathchar" for d in ${PATH} do IFS="$oIFS" b="$d/$f" t="$b" if [ -x "$t" ] then echo "$f: $t" continue 2 fi t="$b.bat" if [ -x "$t" ] then echo "$f: $t" continue 2 fi t="$b.com" if [ -x "$t" ] then echo "$f: $t" continue 2 fi t="$b.exe" if [ -x "$t" ] then echo "$f: $t" continue 2 fi done echo "$f: not found" done IFS="$oIFS" gmv0.9/src/bin/whichall0100644000175200017560000000014306662461244015424 0ustar stephensstepheng#!/bin/sh for d in `echo $PATH|tr ':' ' '` do if [ -x $d/$1 ] then echo "$d/$1" fi done gmv0.9/src/bin/wwwsend0100644000175200017560000000336106662461243015333 0ustar stephensstepheng#!/bin/sh # Copyright 1998-1999 Kurt A. Stephens http://www.acm.org/~stephensk # # This script sends an entire directory tree via ftp # It only sends the files that have changed since the last send # by keeping a timestamp file around (wwwsend.ts) # #set -x dat=./wwwsend.dat ldir=www dryrun= override= timestamp= findopts= while [ $# -gt 0 ] do case "$1" in -dryrun) dryrun=1 ;; *=*) override="$override$1;" ;; *) dat="$1" ;; esac shift done echo "$0: Reading $dat" [ -n "$override" ] && eval $override cwd="`pwd`" . $dat || exit 1 [ -n "$override" ] && eval $override cwd="`pwd`" #ldir=$(cd $ldir && pwd) #echo "ldir=$ldir" #exit # Run make if it has a Makefile if [ -f $ldir/Makefile ] then echo "$0: Making $ldir ..." (cd $ldir && make) echo "$0: done."; fi # ftp script: open, login and set binary script=$$.tmp echo "$0: Creating ftp script $script"; cat >$script <>$script # ftp script: copy files [ -z "$timestamp" ] && timestamp="$cwd/wwwsend.ts" [ -f "$timestamp" ] && findopts="-newer '$timestamp' $findopts" (set -x; cd $ldir && eval find . -type f $findopts -print) | while read f do d=`dirname $f` echo "cd $rdir/$d" echo "put $f" done >>$script # ftp script: close and quit cat >>$script <> $timestamp # Cleanup rm $script echo "$0: done." gmv0.9/src/bin/addcr.t/0040755000175200017560000000000007236675451015237 5ustar stephensstephenggmv0.9/src/bin/addcr.t/CVS/0040755000175200017560000000000007236675451015672 5ustar stephensstephenggmv0.9/src/bin/addcr.t/CVS/Root0100644000175200017560000000003407236675451016532 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/bin/addcr.t/CVS/Repository0100644000175200017560000000003107236675451017763 0ustar stephensstephenghome/ion/src/bin/addcr.t gmv0.9/src/bin/addcr.t/CVS/Entries0100644000175200017560000000006107236675451017220 0ustar stephensstepheng/run/1.1/Wed Feb 17 23:02:18 1999// D/backup//// gmv0.9/src/bin/addcr.t/run0100644000175200017560000000021706662645172015762 0ustar stephensstepheng#!/bin/sh # Test script for addcr # $Id: run,v 1.1 1999/02/17 23:02:18 stephensk Exp $ # set -x rm t[0-9]* cp backup/* . perl ../addcr t[0-9]* gmv0.9/src/bin/addcr.t/backup/0040755000175200017560000000000007236675451016504 5ustar stephensstephenggmv0.9/src/bin/addcr.t/backup/CVS/0040755000175200017560000000000007236675451017137 5ustar stephensstephenggmv0.9/src/bin/addcr.t/backup/CVS/Root0100644000175200017560000000003407236675451017777 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/bin/addcr.t/backup/CVS/Repository0100644000175200017560000000004007236675451021230 0ustar stephensstephenghome/ion/src/bin/addcr.t/backup gmv0.9/src/bin/addcr.t/backup/CVS/Entries0100644000175200017560000000023307236675451020466 0ustar stephensstepheng/t1.c/1.2/Fri Feb 19 09:25:27 1999// /t2/1.1.1.1/Wed Feb 17 06:33:08 1999// /t3/1.1.1.1/Wed Feb 17 06:33:08 1999// /t4/1.2/Wed Feb 17 23:02:19 1999/-kb/ D gmv0.9/src/bin/addcr.t/backup/t1.c0100644000175200017560000000040406663227007017160 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_backup_t1_c__ #define __rcs_id_backup_t1_c__ static const char __rcs_id_backup_t1_c[] = "$Id: t1.c,v 1.2 1999/02/19 09:25:27 stephensk Exp $"; #endif #endif /* __rcs_id__ */ L1 /* @COPYRIGHT@ Blah ** @COPYRIGHT END@ */ L2 gmv0.9/src/bin/addcr.t/backup/t20100644000175200017560000000002406662461244016740 0ustar stephensstepheng#!/bin/sh #L1 L2 L3 gmv0.9/src/bin/addcr.t/backup/t30100644000175200017560000000005106662461244016741 0ustar stephensstepheng#!/usr/local/bin/scheme ; L1 L2 L3 gmv0.9/src/bin/addcr.t/backup/t40100644000175200017560000000057306662645173016760 0ustar stephensstephengLV.textD+ `.data ,b|@.bss.stab,% 1:+R.stabstrƋLVRopportobj_writePortbooleanUP~P‰#f#tUSEEJJˉ]E gmv0.9/src/bin/lib/0040755000175200017560000000000007236675451014466 5ustar stephensstephenggmv0.9/src/bin/lib/CVS/0040755000175200017560000000000007236675451015121 5ustar stephensstephenggmv0.9/src/bin/lib/CVS/Root0100644000175200017560000000003407236675451015761 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/bin/lib/CVS/Repository0100644000175200017560000000002507236675451017215 0ustar stephensstephenghome/ion/src/bin/lib gmv0.9/src/bin/lib/CVS/Entries0100644000175200017560000000001307236675451016444 0ustar stephensstephengD/perl//// gmv0.9/src/bin/lib/perl/0040755000175200017560000000000007236675451015430 5ustar stephensstephenggmv0.9/src/bin/lib/perl/CVS/0040755000175200017560000000000007236675451016063 5ustar stephensstephenggmv0.9/src/bin/lib/perl/CVS/Root0100644000175200017560000000003407236675451016723 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/bin/lib/perl/CVS/Repository0100644000175200017560000000003207236675451020155 0ustar stephensstephenghome/ion/src/bin/lib/perl gmv0.9/src/bin/lib/perl/CVS/Entries0100644000175200017560000000001207236675451017405 0ustar stephensstephengD/ion//// gmv0.9/src/bin/lib/perl/ion/0040755000175200017560000000000007236675451016215 5ustar stephensstephenggmv0.9/src/bin/lib/perl/ion/CVS/0040755000175200017560000000000007236675451016650 5ustar stephensstephenggmv0.9/src/bin/lib/perl/ion/CVS/Root0100644000175200017560000000003407236675451017510 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/bin/lib/perl/ion/CVS/Repository0100644000175200017560000000003607236675451020746 0ustar stephensstephenghome/ion/src/bin/lib/perl/ion gmv0.9/src/bin/lib/perl/ion/CVS/Entries0100644000175200017560000000001307236675451020173 0ustar stephensstephengD/_cvs//// gmv0.9/src/bin/lib/perl/ion/_cvs/0040755000175200017560000000000007306123713017132 5ustar stephensstephenggmv0.9/src/bin/lib/perl/ion/_cvs/CVS/0040755000175200017560000000000007306135474017574 5ustar stephensstephenggmv0.9/src/bin/lib/perl/ion/_cvs/CVS/Root0100644000175200017560000000003407236675451020442 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/bin/lib/perl/ion/_cvs/CVS/Repository0100644000175200017560000000004307236675451021676 0ustar stephensstephenghome/ion/src/bin/lib/perl/ion/_cvs gmv0.9/src/bin/lib/perl/ion/_cvs/CVS/Entries0100644000175200017560000000017307306135474021126 0ustar stephensstepheng/entry.pm/1.4/Tue Mar 21 07:17:32 2000// /rlog.pm/1.2/Sun Mar 7 10:45:55 1999// /find.pm/1.9/Sat Jun 2 10:09:00 2001// D gmv0.9/src/bin/lib/perl/ion/_cvs/entry.pm0100644000175200017560000000210607065621014020624 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: entry.pm,v 1.4 2000/03/21 07:17:32 stephensk Exp $ package ion::_cvs::entry; #print STDERR "ion::_cvs::entry\n"; @map = ( 'type', 'file', 'revision', 'date', 'extra', 'sticky', 'path', 'Repository', 'Filepath' ); %map = (); foreach $_ ( 0 .. $#map ) { my($s) = $map[$_]; my($c) = substr($s, 0, 1); die "Check @map" if ( $map{$c} ); $map{$c} = $_; $map{$s} = $_; } sub type { $_[0]->[0]; } sub isFile { $_[0]->type() ne 'D'; } sub isDirectory { $_[0]->type() eq 'D'; } sub name { $_[0]->[1]; } sub version { $_[0]->[2]; } sub revision { # alias $_[0]->[2]; } sub date { $_[0]->[3]; } sub other { $_[0]->[4]; } sub sticky { $_[0]->[5]; } sub path { $_[0]->[6]; } sub repository { $_[0]->[7]; } sub fullpath { $_[0]->[8]; } sub rlog { if ( ! defined $_[0]->[9] ) { eval 'use ion::_cvs::rlog;'; $_[0]->[9] = ion::_cvs::rlog($_[0]->repository, ($_[1] ? $_[1] : $ion::_cvs::rlog::options)); } } sub clear_rlog { $_[0]->[9] = undef; } sub make { my($x) = @_; bless $x; } 1; gmv0.9/src/bin/lib/perl/ion/_cvs/find.pm0100644000175200017560000000634007306135474020417 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: find.pm,v 1.9 2001/06/02 10:09:00 stephens Exp $ use ion::_cvs::entry; ######################################################### package ion::_cvs; #print STDERR "ion::_cvs::find\n"; use Cwd; use File::Find; use File::Basename; $debug = 0; $testing = 0; $find::show_funny_entries = 0; $find::all_files = 0; sub read_CVS_Entries { my($dir) = @_; my($in); my($Repository); $in = "$dir/CVS/Repository"; if ( -f $in ) { open($in, "<$in") || die "$in: $!"; $Repository = <$in>; chop $Repository; close($in); } $in = "$dir/CVS/Entries"; if ( -f $in ) { my(@entries); my($line); my($lineno) = 0; open($in, "<$in") || die "$in: $!"; while ( $line = <$in> ) { chomp $line; $lineno ++; my($rec); $rec = [ split('/', $line) ]; if ( $#{$rec} > 0 ) { $rec->[6] = $dir; $rec->[7] = $rec->[0] eq 'D' ? "$Repository/$rec->[1]" : "$Repository/$rec->[1],v"; $rec->[8] = $rec->[6] . '/' . $rec->[1]; #print join('+', $#{$rec}, @{$rec}), "\n"; ion::_cvs::entry::make($rec); #print join('-', $#{$rec}, @{$rec}), "\n"; #die "$in:$lineno:$line" if ( $#{$rec} <= 0 ); push(@entries, $rec); } else { warn "$in:$lineno: funny entry: '$line'\n" if ( $ion::_cvs::find::show_funny_entries ); } } close($in); @entries; } else { 0; } } sub do_entry { my($entry, $proc, $data) = @_; #print join('|', $#{$rec}, @{$rec}), "\n"; &{$proc}($entry, $data); if ( $entry->[0] eq 'D' ) { my($se); foreach $se ( read_CVS_Entries($entry->[8]) ) { &{$proc}($se, $data); do_entry($se, $proc, $data); } } } ######################################################### sub wanted { print STDERR "wanted: $File::Find::name\n" if ( $debug ); if ( $_ eq 'CVS' ) { $File::Find::prune = 1; } else { if ( -d && (-f "$_/CVS/Entries" || -f "../CVS/Entries") ) { #print STDERR "Found dir $File::Find::name\n"; push(@found_files, $File::Find::name); $File::Find::prune = 1; } elsif ( -f ) { #print STDERR "Found file $File::Find::name\n"; push(@found_files, $File::Find::name); } } } sub find { my($proc, $data, @files) = @_; # Collect files under CVS control @found_files = (); my($save_cwd) = getcwd; File::Find::find(\&wanted, @files); chdir($save_cwd) || die "$save_cwd: $!"; ######################################################### #print STDERR "files = (", join("\n\t", @files), ")\n"; my($path); foreach $path ( @found_files ) { my($dir, $file); my($entry); $dir = dirname($path); $file = basename($path); print STDERR "$path:$dir:$file\n" if ( $debug ); if ( -d $path && -f "$path/CVS/Entries" ) { print STDERR "$path is a dir\n" if ( $debug ); foreach $entry ( read_CVS_Entries($path) ) { do_entry($entry, $proc, $data); } } elsif ( $file ne '.' && -f "$dir/CVS/Entries" ) { #print STDERR "Search for $file in $dir/CVS\n"; ENTRY: foreach $entry ( read_CVS_Entries($dir) ) { #print STDERR "Entry name $entry->[1]\n"; if ( $file eq $entry->[1] ) { print STDERR "Found entry for $file in $dir/CVS\n" if ( $debug); do_entry($entry, $proc, $data); last ENTRY; } } } } } 1; gmv0.9/src/bin/lib/perl/ion/_cvs/rlog.pm0100644000175200017560000001167406670454343020452 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: rlog.pm,v 1.2 1999/03/07 10:45:55 stephensk Exp $ package ion::_cvs; ######################################################## $debug = 0; $testing = 0; ######################################################## $RLOG = $ENV{RLOG} if ( ! defined $RLOG ); $RLOG = 'rlog' if ( ! defined $RLOG ); sub END { unlink($tmp) if ( defined $tmp ); } sub rlog { my($vfile, $opts) = @_; my($obj) = {}; #my($debug) = 3; $opts = {} if ( ! defined $opts ); $opts->{RLOG} = $RLOG if ( ! defined $opts->{RLOG} ); $obj->{vfile} = $vfile; $obj->{revisions} = []; $obj->{revision} = {}; $obj->{symbolic_names} = []; $obj->{sym_name_to_rev} = {}; $obj->{rev_to_sym_names} = {}; $obj->{filter} = $opts->{filter}; ############################################ # Run rlog into temp file my($in) = "rlog" . abs($$) . ".tmp"; $tmp = $in; my($cmd) = qq($opts->{RLOG} $obj->{filter} $obj->{vfile} > $in); print STDERR "$cmd\n" if ( $debug > 0 ); if ( system($cmd) ) { unlink($in); return undef; } ############################################ # Slurp in the whole file open($in, "<$in") || die "$cmd: $!"; my(@lines); my($line); my($lineno) = 0; while ( defined ($line = <$in>) ) { chomp $line; print "$vfile: $line\n" if ( $debug > 2 ); push(@lines, $line); } close($in); unlink($tmp); undef $tmp; exit if ( $debug > 3 ); ############################################ # Begin scan $lineno = 0; if ( defined($line = shift @lines) ) { $lineno ++; } ############################################ # Scan header while ( defined $line && ($line !~ /^(-+|=+)$/) ) { if ( $line =~ /^([^:]+):\s*(.*)$/ ) { my($key, $value) = ($1, $2); if ( $key eq 'symbolic names' ) { ############################################ # Scan symbolic names print STDERR "Found symbolic names: $lineno:$line\n" if ( $debug > 1 ); if ( defined($line = shift @lines) ) { $lineno ++; } while ( defined $line && ($line =~ /^\s/) ) { print STDERR "Try sym_name: $lineno:$line\n" if ( $debug > 2 ); if ( $line =~ /^\s+([^\s:]+)\s*:\s*([\.0-9]+)/ ) { print STDERR "Matched sym_name '$1' '$2': $lineno:$line\n" if ( $debug > 1 ); push(@{$obj->{symbolic_names}}, $1); $obj->{sym_name_to_rev}->{$1} = $2; my($a); $a = $obj->{rev_to_sym_names}->{$2}; $a = $obj->{rev_to_sym_names}->{$2} = [] if ( ! defined $a ); push(@{$a}, $1); } if ( defined($line = shift @lines) ) { $lineno ++; } } } else { $key =~ tr/a-zA-Z0-9_/_/c; $value =~ s/\s+$//; print STDERR "Found key='$key' value='$value': $lineno:$line\n" if ( $debug > 2 ); $value = [ split(/\s+/, $value) ]; $obj->{$key} = $value; if ( defined($line = shift @lines) ) { $lineno ++; } } } else { if ( defined($line = shift @lines) ) { $lineno ++; } } } if ( defined($line = shift @lines) ) { $lineno ++; } while ( defined $line && $line !~ /^=+$/ ) { my($v) = {}; ############################################ # Scan 'revision:' print STDERR "Try revision: $lineno:$line\n" if ( $debug > 2); if ( $line =~ s/^revision[ :]// ) { $line =~ s/\s+;?\s*$//; $v->{revision} = $line; push(@{$obj->{revisions}}, $line); $obj->{revision}->{$line} = $v; $v->{symbolic_names} = $obj->{rev_to_sym_names}->{$line} || []; if ( defined($line = shift @lines) ) { $lineno ++; } print STDERR "Matched revision '$v->{revision}': $lineno:$line\n" if ( $debug > 1 ); } print STDERR "After revision '$v->{revision}': $lineno:$line\n" if ( $debug > 1 ); while ( $line =~ /^\s*$/ ) { print STDERR "Eat blank line: $lineno:$line\n" if ( $debug > 1 ); if ( defined($line = shift @lines) ) { $lineno ++; } } ############################################ # Scan ': ;' KEY1: while ( defined $line && $line ne '' ) { $line =~ s/^\s+//; if ( $line =~ s/^([a-zA-Z_]+)\s*:\s*([^;]+)(;|$)// ) { print STDERR "Matched key '$1' '$2': $lineno:$line\n" if ( $debug > 1 ); $v->{$1} = $2; } else { last KEY1; } } if ( defined($line = shift @lines) ) { $lineno ++; } ############################################ # Scan 'branches: ' if ( $line =~ s/^branches:\s*// ) { $line =~ s/\s+$//; $v->{branches} = [ split(/\s/, $line) ]; print STDERR "Matched branches: '$1': $lineno:$line\n" if ( $debug > 1 ); if ( defined($line = shift @lines) ) { $lineno ++; } } ############################################ # Scan comment $v->{comment} = ''; while ( defined $line && ($line !~ /^(-+|=+)$/) ) { $line =~ s/^\s+//; $line =~ s/\s+$//; if ( $line ne '' && $line !~ m@^\s*\*\*\* empty log message \*\*\*\s*$@ ) { $v->{comment} .= $line . "\n"; print STDERR "Comment: $line\n" if ( $debug > 1 ); } if ( defined($line = shift @lines) ) { $lineno ++; } } if ( defined($line = shift @lines) ) { $lineno ++; } } $obj; } 1; gmv0.9/src/bin/dos2unix.c0100644000175200017560000000047005551357511015625 0ustar stephensstepheng#include int main() { int c; while ( (c = getchar()) != EOF ) { if ( c == '\r' ) { if ( (c = getchar()) == '\n' ) { putchar('\n'); } else { putchar('\r'); if ( c != EOF ) putchar(c); } } else { putchar(c); } } return 0; } gmv0.9/src/bin/swig2def.pl0100744000175200017560000000066407262414406015761 0ustar stephensstepheng#!/usr/bin/perl use English; $RS = ';'; my $id = 1; print "EXPORTS\n"; while ( <> ) { if ( s/^\s*[a-z_]*extern[a-z_]*\s+((const\s*)?\w+\s*\**\s*\**)//si ) { my $type = $1; print STDERR "line '$_'\n"; $type =~ s/\s+//sg; while ( s/(\w+)//s ) { my $symbol = $1; my $data = (s/[(][^\]]*[)]//s ? '' : 'DATA '); if ( ! $data ) { print "\t$symbol @ $id $data;\n"; ++ $id; } } } } 1; gmv0.9/src/bin/.#uud.1.20100744000175200017560000000417207245406670015055 0ustar stephensstepheng#!/bin/perl # # scans files for a uuencoded items in files and decodes them to $dir # and adds a line to $db based on the Subject: lines found # $count = 0; $subject = ''; $dir = shift || die("Specify an output directory"); $db = "$dir/images.txt"; @files = (); %subjects = (); %files = (); $again = 0; while ( $again || defined($_ = <>) ) { $again = 0; chop; if ( s/^Subject:\s+// ) { $subject = $_; } elsif ( /^begin\s+(\S+)\s+(\S+)/ ) { $mode = $1; $file = $2; print STDERR "File: $file, Subject: $subject\n"; if ( $file ne '' ) { $str = ''; $nlines = 0; while ( defined($_ = <>) ) { $nlines ++; if ( $nlines % 100 ) { print STDERR "$nlines lines...\r"; } last if /^end/; if ( /^Subject:\s+/ || /^begin\s+(\S+)\s+(\S+)/ ) { print STDERR "WARNING: found $_"; $again ++; last; } next if /[a-z]/; next unless int((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); $str .= unpack('u', $_); } # Remove dir from $file name $file =~ s@^.*/@@; # Add .jpg suffix if needed $file .= "_" . ($count ++) . ".jpg" if ( $file !~ /\.jpg$/ ); # Give it an orignal name if ( 0 ) { while ( -f "$dir/$file" ) { $file =~ s/_([0-9]+)(\.[^\.]+)$//; $suffix = $1; $file .= ($count ++) . $suffix; } } # If the file doesn't already exist if ( ! -f "$dir/$file" ) { # Add an entry to the index push(@files, $file); while ( defined($files{$subject}) ) { $subject =~ s/_([0-9]+)$//; $subject .= '_' . ($1 + 1); } $subjects{$file} = $subject; $files{$subject} = $file; # print "file = $file, mode = $mode, subject = $subject\n"; # Write the file open(F, ">$dir/$file"); binmode(F); print F $str; close(F); #exit(0); } } } } #Append to db $exists = -r $db; open(INDEX, ">>$db"); binmode(INDEX); print INDEX "Filename\tSubject\n" if ( ! $exists ); foreach $file ( sort(@files) ) { $subject = $subjects{$file}; print INDEX "$file\t$subject\n"; } close(INDEX); ########################################################################## 1; gmv0.9/src/bin/.#uudindex.1.20100744000175200017560000000711507245406752016106 0ustar stephensstepheng#!/bin/perl # Creates a html index for stuff in $dir listed by $db # Run this after uud. # $dir = shift || "images"; $db = "$dir.txt"; $_html = '.html'; ########################################################################## @fieldnames = (); @fields = (); @records = (); @files = (); %subjects = (); %files = (); #Read db open(INDEX, "<$db"); binmode(INDEX); # First record is the field names $_ = ; chop; @fieldnames = split("\t", $_); $fieldindex = 0; foreach $fieldname ( @fieldnames ) { $fieldindex{$fieldname} = $fieldindex ++; } while ( ) { chop; @fields = split("\t", $_); push(@records, [ @fields ]); } close(INDEX); #Create index.html $menu = "menu_" . $fieldnames[0] . $_html; open(INDEX, ">$dir/index$_html"); binmode(INDEX); print INDEX qq@ None <BODY> <CENTER> This frameset document contains: <UL> <LI> <A HREF="$menu">Menu</A></LI> </UL> </BODY> @; close(INDEX); #Create blank.html open(INDEX, ">$dir/blank$_html"); binmode(INDEX); print INDEX q@ None @; close(INDEX); sub add_suffix { my($x,$s) = @_; $x =~ s/\.[^.]+$//; $x .= $s; $x; } #Create menus $fieldindex = -1; foreach $fieldname ( @fieldnames ) { $fieldindex ++; $menu = "menu_$fieldname$_html"; open(INDEX, ">$dir/$menu"); binmode(INDEX); print INDEX qq~ None ~; # Put a record to select a different column sorting print INDEX qq~~; foreach $fname ( @fieldnames ) { print INDEX qq~~; foreach $field ( @$record ) { print INDEX qq~
$fname~; } print INDEX "\n"; # Sort by Filename and create htmls for each file $fieldindex = $fieldindex{'Filename'}; @records = sort { $a->[$fieldindex] cmp $b->[$fieldindex] } @records; foreach $ri ( 0..$#records ) { $record = $records[$ri]; $image = $record->[0]; $HREF = add_suffix($record->[0], $_html); $prev = $ri > 0 ? add_suffix($records[$ri - 1]->[0], $_html) : undef; $next = $ri <= $#records ? add_suffix($records[$ri + 1]->[0], $_html) : undef; print STDERR "HREF='$HREF', image='$image', prev='$prev', next='$next'\n"; exit(1); if ( $HREF ) { open(HREF,">$HREF") || die "Cannot write '$HREF'"; print HREF qq~ None
$record->[1]

~; if ( $prev ) { print HREF qq~PREV $prev\n~; } if ( $next ) { print HREF qq~NEXT $next\n~; } print HREF qq~


$image\n~; print HREF qq~
~; close(HREF); } } # Sort by current field @records = sort { $a->[$fieldindex] cmp $b->[$fieldindex] } @records; foreach $ri ( 0..$#records ) { $record = $records[$ri]; $HREF = add_suffix($record->[0]. $_html); print INDEX qq~
$field~; } print INDEX "\n"; } print INDEX qq~

~; close(INDEX); } 1; gmv0.9/src/bin/cvsfix.pl0100644000175200017560000000222007264417364015546 0ustar stephensstepheng#!/usr/local/bin/perl # $Id: cvsfix.pl,v 1.1 2001/04/09 20:43:32 stephens Exp $ # use File::Find; $debug = 9; $testing = 0; $keep_backup = 1; $filename = '(Entries|Root|Repository)'; while ( @ARGV ) { $_ = shift @ARGV; if ( /^--?f/ ) { $filename = shift @ARGV; } elsif ( /^--?d/ ) { ++ $debug; } elsif ( /^--?t/ ) { ++ $testing; } elsif ( /^--?[h?]/ ) { print "Removes CRs from CVS files.\n"; } else { push(@ARGV, $_); last; } } sub wanted { my ($file) = $File::Find::name; #print STDERR "$file\n"; if ( $file =~ m@/CVS/(Entries|Root|Repository)$@s ) { my($in, $out) = ( $_, "$_.tmp" ); my($line); print STDERR "Checking: $file\n" if ( $debug > 1 ); open($in, "<$in") || die "$in: $!"; binmode($in); $line = join('', <$in>); close($in); #print STDERR "$line"; if ( $line =~ s/\r//sg ) { print "Had CR: $file\n"; if ( ! $testing ) { rename($in, $out) || die "rename $in $out: $!"; open($in, ">$in") || die "$in: $!"; binmode($in); print $in $line; close($in); #unlink($out) if ( ! $keep_backup ); } } } } find(\&wanted, @ARGV); 1; gmv0.9/src/gman/0040755000175200017560000000000007306140400014045 5ustar stephensstephenggmv0.9/src/gman/CVS/0040755000175200017560000000000007306136064014513 5ustar stephensstephenggmv0.9/src/gman/CVS/Root0100644000175200017560000000003407236675452015366 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gman/CVS/Repository0100644000175200017560000000002207236675452016617 0ustar stephensstephenghome/ion/src/gman gmv0.9/src/gman/CVS/Entries0100644000175200017560000000433507306136064016051 0ustar stephensstepheng/gltest.gdb/1.2/Fri Feb 19 09:25:38 1999// /test1.gdb/1.2/Fri Feb 19 09:25:39 1999// /user.cc/1.3/Sun Dec 26 20:08:29 1999// /TODO/1.1/Wed Mar 7 18:08:00 2001// /gltest.man/1.6/Wed Mar 7 19:58:16 2001// /mat_mul.c/1.1/Wed Mar 7 20:36:40 2001// /gl.c/1.9/Sun Mar 11 19:50:58 2001// /gmantcl.c/1.1/Sat Mar 17 00:24:27 2001// /multiloop.h/1.2/Tue Apr 3 18:51:55 2001// /table.c/1.2/Tue Apr 3 18:51:55 2001// /table.h/1.2/Tue Apr 3 18:51:55 2001// /malloc.c/1.2/Wed Apr 4 08:17:59 2001// /malloc.h/1.4/Wed Apr 4 09:07:43 2001// /op.h/1.6/Wed Apr 4 09:07:43 2001// /gman.cc/1.4/Thu Apr 5 23:40:19 2001// /mat_inv.c/1.2/Thu Apr 5 23:20:10 2001// /attr.cc/1.3/Thu Apr 5 23:58:51 2001// /attr.hh/1.1/Thu Apr 5 23:59:38 2001// /context.cc/1.4/Fri Apr 6 02:50:51 2001// /context.hh/1.5/Fri Apr 6 02:50:27 2001// /der.cc/1.7/Fri Apr 6 03:35:42 2001// /ev.cc/1.5/Fri Apr 6 03:35:42 2001// /eval.c/1.8/Fri Apr 6 03:35:42 2001// /funcs.c/1.3/Fri Apr 6 02:15:59 2001// /gltest.c/1.9/Fri Apr 6 03:35:42 2001// /interval.cc/1.3/Fri Apr 6 03:35:42 2001// /mat.cc/1.11/Fri Apr 6 03:35:42 2001// /parse.y/1.12/Fri Apr 6 03:35:42 2001// /parsetest.c/1.4/Fri Apr 6 03:35:42 2001// /test1.c/1.7/Fri Apr 6 03:35:42 2001// /user.hh/1.7/Fri Apr 6 03:35:42 2001// /vec.cc/1.7/Fri Apr 6 03:35:42 2001// /x.cc/1.8/Fri Apr 6 03:35:42 2001// /archive.cc/1.7/Sat Apr 7 01:50:55 2001// /cart.cc/1.11/Sat Apr 7 01:50:55 2001// /cons.cc/1.9/Sat Apr 7 01:50:55 2001// /gman.h/1.18/Sat Apr 7 01:50:55 2001// /op.cc/1.12/Sat Apr 7 01:50:55 2001// /opgen.h/1.1/Sat Apr 7 00:44:37 2001// /v.cc/1.9/Sat Apr 7 01:50:55 2001// /check.swig/1.1/Sat Apr 7 05:09:50 2001// /gmantcl.h/1.1/Sat Apr 7 04:37:56 2001// /tcl.c/1.2/Sat Apr 7 05:05:44 2001// /typemap.swig/1.1/Sat Apr 7 05:09:35 2001// /funcs.h/1.4/Sun Apr 8 05:58:34 2001// /obj.cc/1.14/Mon Apr 9 19:06:53 2001// /obj.hh/1.10/Mon Apr 9 19:06:53 2001// /test2.c/1.1/Thu Apr 5 20:44:06 2001// /test3.cc/1.1/Thu Apr 5 20:47:21 2001// /point.cc/1.9/Sat Apr 21 02:36:30 2001// /GUMakefile/1.5/Sun Apr 22 22:15:22 2001// /crv.cc/1.3/Sun Apr 22 22:15:22 2001// /crv.hh/1.2/Sun Apr 22 22:15:22 2001// /gman.swig/1.10/Sun Apr 22 22:15:22 2001// /ops.h/1.1/Sun Apr 22 22:17:41 2001// /PKG/1.5/Sat Jun 2 08:56:21 2001// D gmv0.9/src/gman/CVS/Entries~0100744000175200017560000000246507251604754016257 0ustar stephensstepheng/Makefile.use/1.2/Fri Feb 19 09:25:37 1999// /gltest.gdb/1.2/Fri Feb 19 09:25:38 1999// /point.cc/1.4/Sun Dec 26 20:08:29 1999// /test1.c/1.4/Sun Dec 26 20:08:29 1999// /test1.gdb/1.2/Fri Feb 19 09:25:39 1999// /user.cc/1.3/Sun Dec 26 20:08:29 1999// /PKG/1.2/Mon Jun 28 15:02:32 1999// /gman.cc/1.3/Fri Oct 15 06:58:20 1999// /v.cc/1.4/Fri Oct 15 06:58:20 1999// /archive.cc/1.4/Mon Mar 5 09:03:06 2001// /cons.cc/1.4/Mon Mar 5 09:03:06 2001// /der.cc/1.5/Mon Mar 5 09:03:06 2001// /ev.cc/1.3/Mon Mar 5 09:03:06 2001// /eval.c/1.4/Mon Mar 5 09:03:06 2001// /parsetest.c/1.3/Mon Mar 5 08:41:38 2001// /vec.cc/1.5/Mon Mar 5 09:03:08 2001// /x.cc/1.5/Mon Mar 5 09:03:08 2001// /gltest.c/1.8/Mon Mar 5 09:20:02 2001// /Makefile/1.5/Wed Mar 7 19:58:16 2001// /TODO/1.1/Wed Mar 7 18:08:00 2001// /cart.cc/1.7/Wed Mar 7 19:58:16 2001// /gltest.man/1.6/Wed Mar 7 19:58:16 2001// /interval.cc/1.1/Wed Mar 7 18:06:22 2001// /obj.cc/1.8/Wed Mar 7 19:58:16 2001// /obj.hh/1.5/Wed Mar 7 19:58:16 2001// /op.h/1.5/Wed Mar 7 19:58:16 2001// /parse.y/1.10/Wed Mar 7 19:58:16 2001// /user.hh/1.5/Wed Mar 7 19:58:16 2001// /mat.cc/1.6/Wed Mar 7 22:45:02 2001// /mat_mul.c/1.1/Wed Mar 7 20:36:40 2001// /op.cc/1.7/Wed Mar 7 22:45:02 2001// D/render//// /gl.c/1.8/Thu Mar 8 04:26:20 2001// /gman.h/1.9/Thu Mar 8 04:26:20 2001// gmv0.9/src/gman/attr.hh0100744000175200017560000000067307263203352015354 0ustar stephensstepheng#ifndef _gman_attr_h #define _gman_attr_h #include #include #include #define C GMANAttribs class C { protected: typedef map _map_t; _map_t _map; public: C(); ~C(); void set(const char *key, const char *val) { string k(key); string v(val); _map[k] = v; } const char *get(const char *key) { string k(key); return _map[k].begin(); } }; #undef C #endif gmv0.9/src/gman/test2.c0100644000175200017560000000026707263154426015273 0ustar stephensstepheng#include "gman/gman.h" int main(int argc, char **argv) { GMAN f; GMAN v = gman_v(0); GMAN x = gman_x(0); f = gman_mul(v, x); gman_print_expr(stdout, f); return 0; } gmv0.9/src/gman/PKG0100744000175200017560000000046007306125065014421 0ustar stephensstephengNAME=gman VERSION=1.1 DESC=A C++ functional evaluation library, similar to the GENMOD language as described in the book "Generative Modeling for Computer Graphics and CAD" by John M. Snyder. CATEGORY=Geometric Modeling REQUIRES_PKGS=../gum ../util ../gintv OPTIONAL_PKGS=../gmv REQUIRES_OTHERS=gcc bison gmv0.9/src/gman/archive.cc0100744000175200017560000000711507263471177016023 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_archive_cc__ #define __rcs_id_gman_archive_cc__ static const char __rcs_id_gman_archive_cc[] = "$Id: archive.cc,v 1.7 2001/04/07 01:50:55 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #include #include #define C GMANObject void C :: printArchive(FILE *fp, int &id) { if ( ! _visited ) { int n = nsubexprs(); GMAN_REF *ia = subexprs(); for ( int i = 0; i < n; i ++ ) { ia[i]->printArchive(fp, id); } _visited = (void*) id ++; fprintf(fp, "%d %s %d ", (int) _visited, name(cls()), n); for ( int i = 0; i < n; i ++ ) { fprintf(fp, "%d ", (int) ia[i]->_visited); } fprintf(fp, "\n"); } } static const char *archive_tag = "GMAN_ARCHIVE"; static const int archive_version = 100; void gman_print_archive(FILE *fp, GMAN_ARG f) { int id = 1; fprintf(fp, "%s %d %d\n", archive_tag, archive_version, (int) f->ninputs() ); f->unvisit(); /* Do inputs first */ { int xi = 0; unsigned long xim = f->inputs(); while ( xim ) { if ( xim & 1 ) { GMAN x = gman_x(xi); // x->unvisit(); x->printArchive(fp, id); } xi ++; xim >>= 1; } } f->printArchive(fp, id); fprintf(fp, "0\n"); /* end of archive */ } static GMAN _gman_read_archive(FILE *fp, int nx, const GMAN *x, const char *tag, int version) { int id; GMAN f = 0; GMAN *id2gman = (GMAN*) malloc(0); char n[32]; int ninputs = -1; if ( strcmp(tag, archive_tag) != 0 ) { return 0; } if ( version != archive_version ) { return 0; } fscanf(fp, "%d\n", &ninputs); while ( id = -1, fscanf(fp, "%d", &id), id > 0 ) { int i; fscanf(fp, "%s %d", n, &i); if ( n[0] == archive_tag[0] && strcmp(n, archive_tag) == 0 ) { f = _gman_read_archive(fp, nx, x, n, i); } else /* x */ if ( n[0] == 'x' && n[1] == 0 ) { if ( nx && x && i < nx ) { f = x[i]; } else { f = gman_x(i); } } else /* v ... */ if ( n[0] == 'v' && n[1] == 0 ) { GMANValue *v = (GMANValue*) malloc(sizeof(v[0]) * i); for ( int j = 0; j < i; j ++ ) { fscanf(fp, "%lg", &v[j]); } f = gman_vv(i, v, -1); } else { GMAN *v = (GMAN*) malloc(sizeof(v[0]) * i); /* Scan for i GMAN ids */ for ( int j = 0; j < i; j ++ ) { int k; fscanf(fp, "%d", &k); if ( k > id ) { abort(); } v[j] = id2gman[k]; } /* c ... */ if ( n[0] == 'c' && n[1] == 0 ) { f = gman_cv(i, v, -1); /* -1 means "own" v */ v = 0; /* f "owns" v */ /* ... */ } else if ( (f = gman_name_eval(n, i, v)) ) { /* constructors do not "own" v */ } else { GMANerror((GMANObject*) f, n); return 0; } if ( v ) free(v); } id2gman = (GMAN*) realloc(id2gman, sizeof(id2gman[0]) * (id + 1)); if ( (GMANObject*) f == 0 ) { break; } id2gman[id] = f; } free(id2gman); return f; } GMAN gman_read_archive(FILE *fp, int nx, const GMAN *x) { char tag[32]; int version; fscanf(fp, "%s %d", tag, &version); return _gman_read_archive(fp, nx, x, tag, version); } /****************************************************************************/ void C :: printExpr(FILE *fp) { int n = nsubexprs(); GMAN_REF *ia = subexprs(); fprintf(fp, "%s(", name(cls())); fflush(fp); while ( n ) { (*(ia ++))->printExpr(fp); if ( -- n ) fprintf(fp, ", "); } fprintf(fp, ")"); } void gman_print_expr(FILE *fp, GMAN_ARG f) { f->printExpr(fp); } #undef C gmv0.9/src/gman/cart.cc0100744000175200017560000001356607263471177015342 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_cart_cc__ #define __rcs_id_gman_cart_cc__ static const char __rcs_id_gman_cart_cc[] = "$Id: cart.cc,v 1.11 2001/04/07 01:50:55 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #include #include #include /* memset() */ #ifdef MAX #undef MAX #endif #define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) #ifdef MIN #undef MIN #endif #define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) int _gman_cart; /*************************************************************************/ /* cartesian product */ #define C GMANc GMAN_CLASS(c); class C : public GMANObject { public: GMAN_REF *_v; short _nv; short _copy; void c_init(int nv, GMAN *v, int copy) { _nv = nv; _copy = copy; if ( _copy > 0 ) { /* Do not use "new" */ _v = (GMAN_REF*) malloc(sizeof(_v[0]) * nv); memset(_v, 0, sizeof(_v[0]) * nv); for ( int i = 0; i < _nv; ++ i ) { _v[i] = v[i]; } } else { /* Not a copy but needs refs. */ _v = (GMAN_REF*) v; for ( int i = 0; i < _nv; ++ i ) { gman_ref(v[i]); } } } C(int nv, GMAN *v, int copy) { c_init(nv, v, copy); } C(int n, GMAN *v) { c_init(n, v, 1); } GMAN_CLASS_METHOD(c); int _compute_noutputs() { int n = 0; for ( int i = 0; i < _nv; ++ i ) { n += _v[i]->noutputs(); } return n; } ~C() { #if 0 if ( _copy ) { free(_v); } else { /* Not a copy but needs derefs. */ for ( int i = 0; i < _nv; ++ i ) { gman_deref(_v[i]); } } #else /* Because we cannot use delete. */ for ( int i = 0; i < _nv; ++ i ) { gman_deref(_v[i]); } if ( _copy ) { free((GMAN*) _v); } #endif } int nsubexprs() { return _nv; } GMAN_REF *subexprs() { return _v; } void _point(GMANValue *v) { int i, j, k; i = 0; for ( j = 0; j < _nv; ++ j ) { const GMANValue *v0 = _v[j]->point(); int n = _v[j]->noutputs(); for ( k = 0; k < n; ++ k ) { v[i ++] = v0[k]; } _v[j]->pointFree(v0); } assert(i == noutputs()); } void _pointI(gintv *v) { int i, j, k; i = 0; for ( j = 0; j < _nv; ++ j ) { const gintv *v0 = _v[j]->pointI(); int n = _v[j]->noutputs(); for ( k = 0; k < n; ++ k ) { v[i ++] = v0[k]; } _v[j]->pointIFree(v0); } assert(i == noutputs()); } GMAN _derivative(GMAN_ARG x) { GMAN_REF *v = (GMAN_REF*) malloc(sizeof(v[0]) * _nv); memset(v, 0, sizeof(v[0]) * _nv); for ( int i = 0; i < _nv; ++ i ) { v[i] = _gman_d(_v[i], x); } return gman_cv(_nv, (GMAN*) v, -1); } }; GMAN_CLASS_END(c); GMANCls *GMANc_cls() { return GMANc::_cls(); } GMAN gman_cv(int nv, GMAN *v, int copy) { return new C(nv, v, copy); } GMAN gman_cn(int nv, GMANObject* x, ...) { va_list vap; GMAN f; GMAN *v = (GMAN*) malloc(sizeof(v[0]) * nv); int i; va_start(vap, x); v[0] = x; for ( i = 1; i < nv; ++ i ) { v[i] = va_arg(vap, GMANObject*); } f = gman_cv(nv, v, -1); va_end(vap); return f; } #undef C /*************************************************************************/ /* projection operator */ #define C GMANp GMAN_CLASS(p); class C : public GMANObject { public: GMAN_REF _v[2]; C(GMAN_ARG v, GMAN_ARG i) { _v[0] = v; _v[1] = i; } C(int n, GMAN *v) { assert(n == 2); _v[0] = v[0]; _v[1] = v[1]; } GMAN_CLASS_METHOD(p); /* v[i]: if v is a matrix, outputs is ncolumns(v) */ int _compute_noutputs() { return gman_is_matrix(_v[0]) ? gman_ncolumns(_v[0]) : 1; } int nsubexprs() { return 2; } GMAN_REF *subexprs() { return _v; } void _point(GMANValue *v) { const GMANValue *v0 = _v[0]->point(); const GMANValue *v1 = _v[1]->point(); int i = (int) *v1; int m; // fprintf(stderr, "%p[%d]\n", _v[0], i); if ( _v[0]->_nrows > 0 ) { // fprintf(stderr, "is_matrix\n"); m = _v[0]->_nrows; } else { m = _v[0]->_noutputs; } /* Clamp i */ if ( i < 0 ) i = 0; else if ( i >= m ) i = m - 1; if ( _v[0]->_nrows <= 0 ) { // fprintf(stderr, "%g %g %g\n", v0[0], v0[1], v0[2]); *v = v0[i]; } else { int n; /* Move to column. */ i *= _noutputs; /* Copy column to output. */ for ( n = 0; n < _noutputs; ) { v[n ++] = v0[i ++]; } } _v[1]->pointFree(v1); _v[0]->pointFree(v0); } /* ** interval(c projection i) == ** ** union(c[low(i)] .. c[high(i)]) */ void _pointI(gintv *v) { const gintv *v0 = _v[0]->pointI(); const gintv *v1 = _v[1]->pointI(); int m; int l, h; if ( _v[0]->_nrows > 0 ) { m = _v[0]->_nrows - 1; } else { m = _v[0]->_noutputs - 1; } l = (int) gintv_l(v1); /* Clamp l */ if ( l < 0 ) l = 0; else if ( l > m ) l = m; h = (int) gintv_h(v1); /* Clamp h */ if ( h < 0 ) h = 0; else if ( h > m ) h = m; if ( _v[0]->_nrows <= 0 ) { /* Handle vector projection. */ *v = v0[l ++]; while ( l <= h ) { gintv_union(v, v, &v0[l ++]); } } else { /* Handle matrix projection. */ const gintv *q = v0 + (l * _noutputs); for ( int n = 0; n < _noutputs; ++ n ) { v[n] = q[n]; } while ( l <= h ) { for ( int n = 0; n < _noutputs; ++ n ) { gintv_union(&v[n], &v[n], &q[n]); } ++ l; q += _noutputs; } } _v[1]->pointIFree(v1); _v[0]->pointIFree(v0); } /* override chain-rule */ GMAN _derivative(GMAN_ARG x) { if ( gman_is_constant_to(_v[0], x) ) { return gman_vc(noutputs(), 0.0); /* <0,0,...>[i] = 0 */ } else { return gman_p(_gman_d(_v[0], x), _v[1]); } } }; GMAN_CLASS_END(p); GMAN gman_p(GMAN_ARG c, GMAN_ARG i) /* c[i] */ { return new C(c, i); } GMAN gman_pi(GMAN_ARG c, int i) /* c[i] */ { return gman_p(c, gman_v(i)); } #undef C gmv0.9/src/gman/cons.cc0100744000175200017560000000771607263471177015353 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_cons_cc__ #define __rcs_id_gman_cons_cc__ static const char __rcs_id_gman_cons_cc[] = "$Id: cons.cc,v 1.9 2001/04/07 01:50:55 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #include "util/memcpy.h" GMAN _gman_cons_c(GMAN_ARG car, GMAN_ARG cdr) { int n; GMAN *v; if ( car->cls() == GMANc_cls() ) { n = car->nsubexprs(); if ( n == 0 ) return cdr; if ( cdr->cls() == GMANc_cls() ) { /* c(a, b) + c(e, f) -> c(a, b, e, f) */ n += cdr->nsubexprs(); v = (GMAN*) malloc(sizeof(v[0]) * n); memcpy(v, car->subexprs(), sizeof(v[0]) * car->nsubexprs()); memcpy(v + car->nsubexprs(), cdr->subexprs(), sizeof(v[0]) * cdr->nsubexprs()); } else { GMAN_REF *cartail = &(car->subexprs()[car->nsubexprs() - 1]); /* c(a,b,v(1,2)) + v(3,4) -> c(a,b,v(1,2,3,4)) */ if ( (*cartail)->cls() == GMANv_cls() && cdr->cls() == GMANv_cls() ) { (*cartail) = gman_cons(*cartail, cdr); return car; } /* c(a, b) + x -> c(a, b, x) */ n ++; v = (GMAN*) malloc(sizeof(v[0]) * n); memcpy(v, car->subexprs(), sizeof(v[0]) * car->nsubexprs()); v[n - 1] = cdr; } return gman_cv(n, v, -1); } if ( cdr->cls() == GMANc_cls() ) { n = cdr->nsubexprs(); if ( ! n ) return car; GMAN_REF *cdrhead = &(cdr->subexprs()[0]); /* v(1,2) + c(v(3,4)a,b) -> c(v(1,2,3,4),a,b) */ if ( (*cdrhead)->cls() == GMANv_cls() && car->cls() == GMANv_cls() ) { (*cdrhead) = gman_cons(car, *cdrhead); return cdr; } /* x + c(e, f) -> c(x, e, f) */ n = cdr->nsubexprs() + 1; v = (GMAN*) malloc(sizeof(v[0]) * n); v[0] = car; memcpy(v + 1, cdr->subexprs(), sizeof(v[0]) * cdr->nsubexprs()); return gman_cv(n, v, -1); } return 0; } GMAN _gman_cons_v(GMAN_ARG car, GMAN_ARG cdr) { if ( car->cls() == GMANv_cls() && cdr->cls() == GMANv_cls() ) { /* v(0, 1) + v(2, 3) -> v(0, 1, 2, 3) */ int n; GMANValue *x; n = gman_noutputs(car) + gman_noutputs(cdr); x = (GMANValue *) malloc(sizeof(x[0]) * n); memcpy(x, gman_constant(car), sizeof(x[0]) * gman_noutputs(car)); memcpy(x + gman_noutputs(car), gman_constant(cdr), sizeof(x[0]) * gman_noutputs(cdr)); return gman_vv(n, x, -1); } return 0; } GMAN gman_cons(GMAN_ARG car, GMAN_ARG cdr) { GMAN f; #if 0 fprintf(stderr, "\n====================================\n"); fprintf(stderr, "gman_cons("); gman_print_expr(stderr, car); fprintf(stderr, ", "); gman_print_expr(stderr, cdr); fprintf(stderr, ") -> "); #endif if ( ! (f = _gman_cons_c(car, cdr)) ) { if ( ! (f = _gman_cons_v(car, cdr)) ) { /* x + y -> c(x, y) */ f = gman_cn(2, car, cdr); } } #if 0 gman_print_expr(stderr, f); fprintf(stderr, "\n"); #endif return f; } GMAN gman_cons_c(GMAN_ARG car, GMAN_ARG cdr) { GMAN f; int n; GMAN *v; #if 0 fprintf(stderr, "\n====================================\n"); fprintf(stderr, "gman_cons("); gman_print_expr(stderr, car); fprintf(stderr, ", "); gman_print_expr(stderr, cdr); fprintf(stderr, ") -> "); #endif if ( cdr->cls() == GMANc_cls() ) { /* x + c(e, f) -> c(x, e, f) */ n = cdr->nsubexprs() + 1; v = (GMAN*) malloc(sizeof(v[0]) * n); v[0] = car; memcpy(v + 1, cdr->subexprs(), sizeof(v[0]) * cdr->nsubexprs()); f = gman_cv(n, v, -1); } else { f = gman_cn(2, car, cdr); } #if 0 gman_print_expr(stderr, f); fprintf(stderr, "\n"); #endif return f; } GMAN gman_cons_v(GMAN_ARG car, GMAN_ARG cdr) { GMAN f; #if 0 fprintf(stderr, "\n====================================\n"); fprintf(stderr, "gman_cons("); gman_print_expr(stderr, car); fprintf(stderr, ", "); gman_print_expr(stderr, cdr); fprintf(stderr, ") -> "); #endif if ( ! (f = _gman_cons_v(car, cdr)) ) { f = gman_cn(2, car, cdr); } #if 0 gman_print_expr(stderr, f); fprintf(stderr, "\n"); #endif return f; } gmv0.9/src/gman/der.cc0100744000175200017560000000264707263234616015154 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_der_cc__ #define __rcs_id_gman_der_cc__ static const char __rcs_id_gman_der_cc[] = "$Id: der.cc,v 1.7 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman/user.hh" int _gman_der; GMAN GMANObject :: _derivative(GMAN_ARG x) { return gman_vc(noutputs(), 0); } GMAN _gman_d(GMAN_ARG f, GMAN_ARG x) { /* if it does not depend on x, return 0 (vector of length noutputs()) */ if ( gman_is_constant_to(f, x) ) { #if 0 fprintf(stderr, "_gman_d("); gman_print_expr(stderr, f); fprintf(stderr, ", "); gman_print_expr(stderr, x); fprintf(stderr, "): constant\n"); #endif return gman_vc(f->noutputs(), 0); } else { GMAN df_dx = f->_derivative(x); #if 0 fprintf(stderr, "_gman_d("); gman_print_expr(stderr, f); fprintf(stderr, ", "); gman_print_expr(stderr, x); fprintf(stderr, "): varying:\n"); gman_print_expr(stderr, df_dx); fprintf(stderr, "\n"); #endif return gman_simplify(df_dx); } } GMAN_USER(d,_2(GMAN_REF,f, GMAN_REF,x)) { return _gman_d(f, x); } GMAN_USER_END(d,_2(GMAN_REF,f, GMAN_REF,x)); GMAN gman_d(GMAN_ARG f, GMAN_ARG x) { return new GMANd(f, x); } /****************************************************************************/ GMAN gman_derivative(GMAN_ARG f, GMAN_ARG x) { return gman_d(f, x); } /****************************************************************************/ gmv0.9/src/gman/ev.cc0100744000175200017560000000126107263234616015003 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_ev_cc__ #define __rcs_id_gman_ev_cc__ static const char __rcs_id_gman_ev_cc[] = "$Id: ev.cc,v 1.5 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman/user.hh" #include int _gman_ev; GMAN _gman_eval(GMAN_ARG f, GMAN_ARG x, GMAN_ARG g) { assert(gman_nsubexprs(x) == gman_nsubexprs(g)); return gman_evaln(f, gman_nsubexprs(x), gman_subexprs(x), gman_subexprs(g)); } GMAN_USER(eval,_3(GMAN_REF,f, GMAN_REF,x, GMAN_REF,g)) { return _gman_eval(f, x, g); } GMAN_USER_END(eval,_3(GMAN_REF,f, GMAN_REF,x, GMAN_REF,g)) /****************************************************************************/ gmv0.9/src/gman/eval.c0100744000175200017560000000557307263234616015167 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_eval_c__ #define __rcs_id_gman_eval_c__ static const char __rcs_id_gman_eval_c[] = "$Id: eval.c,v 1.8 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman/gman.h" #include /* malloc() */ #include /* memcpy() */ GMANValue *gman_eval_curve(GMAN_ARG f, const gman_eval_options *opts, GMANValue *outputs) { int ninputs = gman_ninputs(f); int noutputs = gman_noutputs(f); GMANValue *parms = alloca(sizeof(parms[0]) * ninputs); int i; size_t outputs_len; GMANValue *outputs_end; /* Create output array if needed */ outputs_len = noutputs * opts->samples[0] * opts->samples[1]; if ( outputs == 0 ) { outputs = malloc(sizeof(outputs[0]) * outputs_len); } outputs_end = outputs + outputs_len; /* Zero out all input parameters */ for ( i = 0; i < ninputs; i ++ ) { parms[0] = i < opts->nparms ? opts->ranges[i * 2] : 0; } /* Begin looping over first 2 inputs */ { GMANValue *p = outputs; for ( i = 0; i < opts->samples[0]; ++ i ) { parms[0] = opts->ranges[0] + (opts->ranges[1] - opts->ranges[0]) * ((float) i / (opts->samples[0] - 1)); memcpy(p, gman_point(f, ninputs, parms), sizeof(p[0]) * noutputs); #if 0 fprintf(stderr, "(%g, %g)->(%g, %g, %g)\n", parms[0], parms[1], p[0], p[1], p[2]); #endif p += noutputs; } } alloca(0); return outputs; } GMANValue *gman_eval_surface(GMAN_ARG f, const gman_eval_options *opts, GMANValue *outputs) { int ninputs = gman_ninputs(f); int noutputs = gman_noutputs(f); GMANValue *parms = alloca(sizeof(parms[0]) * ninputs); int i, j; size_t outputs_len; GMANValue *outputs_end; /* Create output array if needed */ outputs_len = noutputs * opts->samples[0] * opts->samples[1]; if ( outputs == 0 ) { outputs = malloc(sizeof(outputs[0]) * outputs_len); } outputs_end = outputs + outputs_len; /* Zero out all input parameters */ for ( i = 0; i < ninputs; i ++ ) { parms[0] = i < opts->nparms ? opts->ranges[i * 2] : 0; } /* Begin looping over first input */ { GMANValue *p = outputs; for ( i = 0; i < opts->samples[1]; ++ i ) { if ( opts->samples[1] > 1 ) { parms[1] = opts->ranges[2] + (opts->ranges[3] - opts->ranges[2]) * ((float) i / (opts->samples[1] - 1)); } else { parms[1] = 0; } for ( j = 0; j < opts->samples[0]; ++ j ) { parms[0] = opts->ranges[0] + (opts->ranges[1] - opts->ranges[0]) * ((float) j / (opts->samples[0] - 1)); memcpy(p, gman_point(f, ninputs, parms), sizeof(p[0]) * noutputs); #if 0 fprintf(stderr, "(%g, %g)->(%g, %g, %g)\n", parms[0], parms[1], p[0], p[1], p[2]); #endif p += noutputs; } } if ( p > outputs_end ) { fprintf(stderr, "gman_eval_surface: Too many points for outputs buffer!\n"); fflush(stderr); abort(); } } alloca(0); return outputs; } gmv0.9/src/gman/gl.c0100744000175200017560000001162307252753442014634 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_gl_c__ #define __rcs_id_gman_gl_c__ static const char __rcs_id_gman_gl_c[] = "$Id: gl.c,v 1.9 2001/03/09 07:51:06 stephens Exp $"; #endif #endif /* __rcs_id__ */ #ifdef _WIN32 #include #endif #include "gman/gman.h" #include "gl/gl.h" #include /* sqrt() */ #include "vmop.h" static void doNormal(const GMANValue *p0, const GMANValue *p1, const GMANValue *p2) { /* ^ p2 | |\ v1 | \ | | \ | p0--p1 --v0-> */ GMANValue v0[3], v1[3], n[3]; V3_OP(v0, =, p1, -, p0); V3_OP(v1, =, p2, -, p1); V3_XPROD(n, =, v0, ^, v1); V3_NORMALIZE(n); /* Call glNormal4*() */ if ( sizeof(GMANValue) == sizeof(GLdouble) ) { glNormal3dv((GLdouble*) n); } else if ( sizeof(GMANValue) == sizeof(GLfloat) ) { glNormal3fv((GLfloat*) n); } else { glNormal3f((GLfloat) n[0], (GLfloat) n[1], (GLfloat) n[2]); } } static void doPoint(const GMANValue *v, const gman_render_options *opts) { #if 0 fprintf(stderr, "V(%g, %g, %g) ", (double) v[0], (double) v[1], (double) v[2]); fflush(stderr); #endif if ( sizeof(GMANValue) == sizeof(GLdouble) ) { if ( opts->normalIndex >= 0 ) { glNormal3dv((GLdouble*) (v + opts->normalIndex)); } if ( opts->colorIndex >= 0 ) { glColor3dv((GLdouble*) (v + opts->colorIndex)); } if ( opts->pointIndex >= 0 ) { if ( opts->projectDim != 2 ) { glVertex3dv((GLdouble*) (v + opts->pointIndex)); } else { glVertex2dv((GLdouble*) (v + opts->pointIndex)); } } } else if ( sizeof(GMANValue) == sizeof(GLfloat) ) { if ( opts->normalIndex >= 0 ) { glNormal3fv((GLfloat*) (v + opts->normalIndex)); } if ( opts->colorIndex >= 0 ) { glColor3fv((GLfloat*) (v + opts->colorIndex)); } if ( opts->pointIndex >= 0 ) { if ( opts->projectDim != 2 ) { glVertex3fv((GLfloat*) (v + opts->pointIndex)); } else { glVertex2fv((GLfloat*) (v + opts->pointIndex)); } } } else { const GMANValue *x; if ( opts->normalIndex >= 0 ) { x = v + opts->normalIndex; glNormal3f((GLfloat) x[0], (GLfloat) x[1], (GLfloat) x[2]); } if ( opts->colorIndex >= 0 ) { x = v + opts->colorIndex; glColor3f((GLfloat) x[0], (GLfloat) x[1], (GLfloat) x[2]); } if ( opts->pointIndex >= 0 ) { x = v + opts->pointIndex; if ( opts->projectDim != 2 ) { glVertex2f((GLfloat) x[0], (GLfloat) x[1]); } else { glVertex3f((GLfloat) x[0], (GLfloat) x[1], (GLfloat) x[2]); } } } } void gman_render_gl_vectors( const GMANValue *points, int points_noutputs, const GMANValue *vectors, int vectors_noutputs, const gman_eval_options *eval_opts, const gman_render_options *opts) { int i, j; int nu = eval_opts->samples[0]; int nv = eval_opts->samples[1]; const GMANValue *p = points; const GMANValue *v = vectors; GMANValue *p1 = alloca(sizeof(p1[0]) * points_noutputs); glBegin(GL_LINES); for ( i = nv * nu; i --; ) { /* Render p + v for point. */ if ( opts->pointIndex >= 0 ) { for ( j = 3; -- j >= 0; ) { p1[opts->pointIndex + j] = p[opts->pointIndex + j] + v[opts->pointIndex + j]; } } #if 0 fprintf(stderr, "[%g %g %g] - [%g %g %g]\n", p[0], p[1], p[2], p1[0], p1[1], p[2] ); #endif doPoint(p, opts); p += points_noutputs; doPoint(p1, opts); v += vectors_noutputs; } glEnd(); } void gman_render_gl(const GMANValue *points, int noutputs, const gman_eval_options *eval_opts, const gman_render_options *opts) { int i, j; int nu = eval_opts->samples[0]; int nv = eval_opts->samples[1]; const GMANValue *row = points; switch ( opts->primDim ) { case 0: glBegin(GL_POINTS); for ( i = nv * nu; i --; ) { doPoint(row, opts); row += noutputs; } glEnd(); break; case 1: { const GMANValue *p0; p0 = points; for ( i = nv; i --; ) { glBegin(GL_LINE_STRIP); for ( j = nu; j --; ) { doPoint(p0, opts); p0 += noutputs; } glEnd(); } p0 = row; for ( i = nu; i --; ) { glBegin(GL_LINE_STRIP); for ( j = nv; j --; ) { doPoint(p0, opts); p0 += nu * noutputs; } glEnd(); p0 = (row += noutputs); } } break; case 2: for ( i = 1; i < nv; i ++ ) { const GMANValue *last_row; const GMANValue *p0, *p1, *p2; last_row = row; row += noutputs * nu; /* 0--2--4--6--8 | /| /| /| /| |/ |/ |/ |/ | 1--3--5--7--9 */ p0 = last_row; p1 = row; p2 = p0 + noutputs; glBegin(GL_TRIANGLE_STRIP); doNormal(p0, p1, p2); doPoint(p0, opts); doPoint(p1, opts); for ( j = 1; j < nu; j ++ ) { p2 = p0 + noutputs; doNormal(p0, p1, p2); doPoint(p2, opts); p0 = p2; p2 = p1 + noutputs; doNormal(p2, p0, p1); doPoint(p2, opts); p1 = p2; } glEnd(); } break; } } gmv0.9/src/gman/gltest.c0100744000175200017560000003222407263234616015533 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_gltest_c__ #define __rcs_id_gman_gltest_c__ static const char __rcs_id_gman_gltest_c[] = "$Id: gltest.c,v 1.9 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "glwin/glwin.h" #include #include "gman/gman.h" #include /* free() */ #include #include #include #ifndef PI #ifdef M_PI #define PI M_PI #else #define PI 3.1415926 #endif #endif typedef struct gman_view_object { /* Surface to view. */ GMAN_REF f; int f_changed; /* Render control. */ gman_eval_options eval_opts; gman_eval_options dp_eval_opts; gman_render_options render_opts; gman_render_options dp_render_opts; /* View control. */ GLfloat pos[3]; GLfloat rotate[3]; GLfloat speed; int smooth; int lighting; int axies; int show_dp_du; int show_dp_dv; int show_normal; int show_bbox; /* Value cache. */ GMANValue *points; int points_noutputs; int points_valid; GMANValue *dp_values; int dp_noutputs; GMANValue *dp_du_values; GMANValue *dp_dv_values; GMANValue *normal_values; GMANValue *bbox_values; /* Window created. */ glwin_window *win; } gman_view_object; static void Create(glwin_window *win) { gman_view_object *vo = win->data; /* Set up object position */ vo->pos[0] = 0.0f; vo->pos[1] = 0.0f; vo->pos[2] = -30.0f; vo->rotate[0] = vo->rotate[1] = vo->rotate[2] = 0; vo->speed = 0.5; /* Visibility */ glEnable(GL_DEPTH_TEST); glFrontFace(GL_CCW); glDisable(GL_CULL_FACE); } static void Destroy(glwin_window *win) { gman_view_object *vo = win->data; if ( vo->points ) free(vo->points); free(vo); } static void ChangeSize(glwin_window *win, int w, int h) { GLfloat fAspect; glViewport(0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); fAspect = (GLfloat) w / (GLfloat) h; #if 1 gluPerspective(60.0f, fAspect, 1.0f, 400.0f); #else #define OSIZE -50.0f if ( fAspect > 1.0f ) { glOrtho( - OSIZE * fAspect, OSIZE * fAspect, - OSIZE, OSIZE, 0.0f, OSIZE * 2); } else { glOrtho(- OSIZE, OSIZE, - OSIZE / fAspect, OSIZE / fAspect, 0.0f, OSIZE * 2); } #undef OSIZE #endif } #define KEY_DOWN(X) glwin_key_down(win, (X)) static void process_key(glwin_window *win, int key, int down) { int nkd = glwin_nkeys_down_prev(win); int nKeysDown = glwin_nkeys_down(win); /* nKeyDown has changed state */ if ( ! nkd && nKeysDown ) { glwin_idle(win, 1); } else if ( nkd && ! nKeysDown ) { glwin_idle(win, 0); } } static int KeyPress(glwin_window *win, int key) { gman_view_object *vo = win->data; switch ( tolower(key) ) { case '\033': glwin_quit(win, 0); return 1; case ' ': { GMAN nf = gman_parse_file("gltest.man"); if ( nf ) { vo->f = nf; vo->f_changed = 1; } } break; case '1': case '2': case '3': vo->render_opts.primDim = key - '1'; break; case '4': vo->smooth = ! vo->smooth; break; case '5': vo->lighting = ! vo->lighting; break; case '6': vo->show_bbox = ! vo->show_bbox; break; case '7': vo->show_dp_du = ! vo->show_dp_du; break; case '8': vo->show_dp_dv = ! vo->show_dp_dv; break; case '9': vo->show_normal = ! vo->show_normal; break; case '0': vo->axies = ! vo->axies; break; case '[': vo->speed *= 0.5; break; case ']': vo->speed *= 2.0; break; default: return 0; } return 1; } static int KeyDown(glwin_window *win, int key) { process_key(win, key, 1); return 1; } static int KeyUp(glwin_window *win, int key) { process_key(win, key, 0); return 1; } static void Idle(glwin_window *win) { gman_view_object *vo = win->data; if ( glwin_nkeys_down(win) ) { if ( KEY_DOWN(VK_LEFT) ) { vo->pos[0] += vo->speed; } if ( KEY_DOWN(VK_RIGHT) ) { vo->pos[0] -= vo->speed; } if ( KEY_DOWN(VK_UP) ) { vo->pos[1] -= vo->speed; } if ( KEY_DOWN(VK_DOWN) ) { vo->pos[1] += vo->speed; } if ( KEY_DOWN('A') ) { vo->pos[2] += vo->speed; } if ( KEY_DOWN('Z') ) { vo->pos[2] -= vo->speed; } if ( KEY_DOWN('F') ) { vo->rotate[0] -= (PI / 3.0) * vo->speed; } if ( KEY_DOWN('R') ) { vo->rotate[0] += (PI / 3.0) * vo->speed; } if ( KEY_DOWN('T') ) { vo->rotate[1] += (PI / 3.0) * vo->speed; } if ( KEY_DOWN('G') ) { vo->rotate[1] -= (PI / 3.0) * vo->speed; } if ( KEY_DOWN('Y') ) { vo->rotate[2] += (PI / 3.0) * vo->speed; } if ( KEY_DOWN('H') ) { vo->rotate[2] -= (PI / 3.0) * vo->speed; } glwin_redraw(win); } } #undef KEY_DOWN static void MouseDrag(glwin_window *win, int x, int y) { if ( glwin_button_down(win, 0) ) { } } static void glBox(const GMANValue *p) { glBegin(GL_LINE_STRIP); glVertex3d(p[0], p[2], p[4]); glVertex3d(p[1], p[2], p[4]); glVertex3d(p[1], p[3], p[4]); glVertex3d(p[0], p[3], p[4]); glVertex3d(p[0], p[2], p[4]); glVertex3d(p[0], p[2], p[5]); glVertex3d(p[1], p[2], p[5]); glVertex3d(p[1], p[3], p[5]); glVertex3d(p[0], p[3], p[5]); glVertex3d(p[0], p[2], p[5]); glEnd(); glBegin(GL_LINES); glVertex3d(p[1], p[2], p[4]); glVertex3d(p[1], p[2], p[5]); glVertex3d(p[1], p[3], p[4]); glVertex3d(p[1], p[3], p[5]); glVertex3d(p[0], p[3], p[4]); glVertex3d(p[0], p[3], p[5]); glEnd(); } static void Render(glwin_window *win) { gman_view_object *vo = win->data; /* Clear */ glClearColor(0.1f, 0.1f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* Color */ glColor3f(1.0f, 1.0f, 1.0f); if ( vo->lighting ) { /* Lighting */ glEnable(GL_LIGHTING); { GLfloat a[] = { 0.2f, 0.2f, 0.2f, 1.0f }; GLfloat d[] = { 0.7f, 0.7f, 0.7f, 1.0f }; GLfloat s[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat p[] = { -50.0f, 50.0f, 100.0f, 1.0f }; #if 0 glLightModelfv(GL_LIGHT_MODEL_AMBIENT, a); #else glLightfv(GL_LIGHT0, GL_AMBIENT, a); glLightfv(GL_LIGHT0, GL_DIFFUSE, d); glLightfv(GL_LIGHT0, GL_SPECULAR, s); glLightfv(GL_LIGHT0, GL_POSITION, p); #endif glEnable(GL_LIGHT0); } } else { glDisable(GL_LIGHTING); glDisable(GL_LIGHT0); } /* Model */ glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPushMatrix(); glTranslatef(vo->pos[0], vo->pos[1], vo->pos[2]); glRotatef(vo->rotate[0], 1.0f, 0.0f, 0.0f); glRotatef(vo->rotate[1], 0.0f, 1.0f, 0.0f); glRotatef(vo->rotate[2], 0.0f, 0.0f, 1.0f); #if 0 glScalef(1.0f, 1.0f, -1.0f); /* Right-handed coord sys. */ #endif glDisable(GL_COLOR_MATERIAL); glShadeModel(GL_FLAT); /* Axis */ if ( vo->axies ) { int a; for ( a = 0; a < 3; ++ a ) { float x = a == 0; float y = a == 1; float z = a == 2; glColor3f(x, y, z); glBegin(GL_LINES); glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(x * 50, y * 50, z * 50); glEnd(); } } #if 0 fprintf(stderr, "gman_view_gl: "); gman_print_expr(stderr, f); fprintf(stderr, ": on window %p\n", (void*) win); #endif /* evaluate */ if ( ! vo->points || ! vo->points_valid || vo->f_changed ) { /* Append color info. */ GMAN g; if ( gman_noutputs(vo->f) >= 6 ) { g = vo->f; } else { g = gman_cn(4, vo->f, gman_x(0), gman_x(1), gman_v(1.0)); } vo->points_noutputs = gman_noutputs(g); vo->points = gman_eval_surface(g, &vo->eval_opts, 0); vo->points_valid = 1; vo->f_changed = 0; vo->dp_values = 0; vo->dp_du_values = 0; vo->dp_dv_values = 0; vo->normal_values = 0; vo->bbox_values = 0; } /* Derivatives */ if ( vo->show_dp_du || vo->show_dp_dv || vo->show_normal ) { if ( ! vo->dp_values ) { vo->dp_noutputs = gman_noutputs(vo->f); vo->dp_values = gman_eval_surface(vo->f, &vo->dp_eval_opts, 0); } } if ( vo->show_dp_du ) { if ( ! vo->dp_du_values ) { GMAN dp_du = gman_normalize(gman_derivative(vo->f, gman_x(0))); #if 0 fprintf(stderr, "dp_du = "); gman_print_expr(stderr, gman_simplify(dp_du)); fprintf(stderr, "\n"); #endif vo->dp_du_values = gman_eval_surface(dp_du, &vo->dp_eval_opts, 0); // fprintf(stderr, "dp_du_values = %p\n", vo->dp_du_values); gman_deref(dp_du); } glColor3f(1.0f, 0.0f, 1.0f); gman_render_gl_vectors( vo->dp_values, vo->dp_noutputs, vo->dp_du_values, gman_noutputs(vo->f), &vo->dp_eval_opts, &vo->dp_render_opts); } if ( vo->show_dp_dv ) { if ( ! vo->dp_dv_values ) { GMAN dp_dv = gman_normalize(gman_derivative(vo->f, gman_x(1))); vo->dp_dv_values = gman_eval_surface(dp_dv, &vo->dp_eval_opts, 0); // fprintf(stderr, "dp_dv_values = %p\n", vo->dp_dv_values); gman_deref(dp_dv); } glColor3f(0.0f, 1.0f, 1.0f); gman_render_gl_vectors( vo->dp_values, vo->dp_noutputs, vo->dp_dv_values, gman_noutputs(vo->f), &vo->dp_eval_opts, &vo->dp_render_opts); } if ( vo->show_normal ) { if ( ! vo->normal_values ) { GMAN N = gman_normalize( gman_cross( gman_derivative(vo->f, gman_x(0)), gman_derivative(vo->f, gman_x(1)))); vo->normal_values = gman_eval_surface(N, &vo->dp_eval_opts, 0); // fprintf(stderr, "normal_values = %p\n", vo->normal_values); gman_deref(N); } glColor3f(1.0f, 1.0f, 0.0f); gman_render_gl_vectors( vo->dp_values, vo->dp_noutputs, vo->normal_values, gman_noutputs(vo->f), &vo->dp_eval_opts, &vo->dp_render_opts); } if ( vo->show_bbox ) { if ( ! vo->bbox_values ) { vo->bbox_values = (void*) gman_pointi(vo->f, (const gintv *) vo->eval_opts.ranges); } glColor3f(0.7f, 0.7f, 0.7f); glBox(vo->bbox_values); } if ( vo->lighting ) { /* Materials */ glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); glColorMaterial(GL_BACK, GL_AMBIENT_AND_DIFFUSE); /* Materials */ if ( 0 ) { GLfloat c1[] = { 1.0f, 1.0f, 1.0f, 1.0f }; glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c1); // glMateriali(GL_FRONT, GL_SHININESS, 128); } if ( 0 ) { GLfloat c2[] = { 0.0f, 1.0f, 0.0f, 1.0f }; glMaterialfv(GL_BACK, GL_SPECULAR, c2); // glMateriali(GL_BACK, GL_SHININESS, 128); } } /* render */ glShadeModel(vo->smooth ? GL_SMOOTH : GL_FLAT); gman_render_gl(vo->points, vo->points_noutputs, &vo->eval_opts, &vo->render_opts); glPopMatrix(); glFlush(); } void gman_view_gl ( GMAN f, gman_eval_options *eval_opts, gman_render_options *render_opts, gman_eval_options *dp_eval_opts, gman_render_options *dp_render_opts ) { static glwin_desc desc; glwin_window *win; gman_view_object *vo; memset(&desc, 0, sizeof(desc)); desc.winName = "GMAN/GL Test"; desc.winX = 200; desc.winY = 100; desc.winWidth = 400; desc.winHeight = 400; desc.ChangeSize = ChangeSize; desc.Render = Render; desc.Create = Create; desc.Destroy = Destroy; desc.KeyPress = KeyPress; desc.KeyDown = KeyDown; desc.KeyUp = KeyUp; desc.Idle = Idle; vo = malloc(sizeof(*vo)); memset(vo, 0, sizeof(*vo)); vo->f = f; vo->eval_opts = *eval_opts; vo->render_opts = *render_opts; vo->dp_eval_opts = *dp_eval_opts; vo->dp_render_opts = *dp_render_opts; win = glwin_create(&desc, vo); vo->win = win; #if 0 fprintf(stderr, "gman_view_gl: window %p\n", (void*) win); gman_print_archive(stderr, f); fprintf(stderr, "--------------------\n"); #endif glwin_show(win); glwin_update(win); } GMAN gman_sphere(GMAN u, GMAN v) /*@ Bi-parametric unit sphere at (0,0,0). */ { GMAN theta = gman_mul(u, gman_v(PI * 2)); GMAN phi = gman_mul(v, gman_v(PI)); GMAN cos_theta = gman_cos(theta); GMAN sin_theta = gman_sin(theta); GMAN cos_phi = gman_cos(phi); GMAN sin_phi = gman_sin(phi); GMAN x = gman_mul(sin_phi, cos_theta); GMAN y = gman_mul(sin_phi, sin_theta); GMAN z = cos_phi; return gman_cn(3, x, y, z); } int glwin_main(int argc, char **argv) { GMAN r; GMAN f; // Radius. r = gman_mul(gman_cos(gman_mul(gman_x(0), gman_v(PI * 10.0))), gman_cos(gman_mul(gman_x(1), gman_v(PI * 10.0)))); r = gman_add(r, gman_v(1.0)); r = gman_mul(r, gman_v(3.0)); r = gman_add(r, gman_v(20.0)); // Sphere. f = gman_mul(gman_sphere(gman_x(0), gman_x(1)), r); //f = gman_cn(3, gman_x(0), gman_x(1), gman_atan2(gman_sub(gman_x(0), gman_v(0.5)), gman_sub(gman_x(1), gman_v(0.5)))); { static int samples[] = { 50, 50 }; static int dp_samples[] = { 21, 21 }; static GMANValue ranges[] = { 0.05, 0.95, 0.05, 0.95 }; static gman_eval_options eval_opts, dp_eval_opts; static gman_render_options render_opts, dp_render_opts; eval_opts.nparms = 2; eval_opts.samples = samples; eval_opts.ranges = ranges; render_opts.primDim = 1; render_opts.pointIndex = 0; render_opts.colorIndex = 3; dp_eval_opts.nparms = 2; dp_eval_opts.samples = dp_samples; dp_eval_opts.ranges = ranges; dp_render_opts.primDim = 1; dp_render_opts.pointIndex = 0; gman_view_gl(f, &eval_opts, &render_opts, &dp_eval_opts, &dp_render_opts); } return glwin_mainloop(); } gmv0.9/src/gman/gltest.gdb0100644000175200017560000000024606663227022016037 0ustar stephensstepheng# $Id: gltest.gdb,v 1.2 1999/02/19 09:25:38 stephensk Exp $ break glwin_main break Create break Destroy break ChangeSize break Render #break glwin_window_WndProc run gmv0.9/src/gman/gltest.man0100744000175200017560000000215707251511330016052 0ustar stephensstepheng// $Id: gltest.man,v 1.6 2001/03/07 18:05:38 stephens Exp $ // Run gltest and modify this file and hit SPACE in the gl window. Pi = 3.1415926; Pi_2 = Pi * 2; @ circle (t) { _0_Pi_2 = _(0) * Pi_2; @( cos(_0_Pi_2), sin(_0_Pi_2) ); } @ lerp (x0, x1, t) { x0 * (1 - t) + x1 * t; } @ reverse_lerp(x0, x1, p) { x1_x0 = x1 - x0; norm_x1_x0 = length(x1_x0); normalize_x1_x0 = x1_x0 / norm_x1_x0; ((p - x0) @. normalize_x1_x0) / norm_x1_x0; } //////////////////////////////////////////// sphere = ({ // Unit sphere. _1_Pi = _(1) * Pi; @( circle(_(0)) * sin(_1_Pi), - cos(_1_Pi) ); }); bumpy_sphere = // Bumps. sphere * (1.5 + .25 * cos(_(0) * Pi * 10) * cos(_(1) * Pi * 10)) ; cylinder = ({ // Cylinder @( circle(_(0)), -1 + (6 * _(1)) ); }); cone = ({ // Cone @( circle(_(0)) * (1 - _(1)), -1 + (6 * _(1)) ); }); // Lerp between bumpy sphere and cylinder. result = lerp(bumpy_sphere, cone, reverse_lerp(-1, 5, cylinder[2])); //result = lerp(result, @(0, 0, 5), reverse_lerp(-1, 5, result[2])); //result = d(result, _(0)); //d(sphere, _(1)); result; gmv0.9/src/gman/gman.cc0100644000175200017560000000044307263201143015300 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_gman_cc__ #define __rcs_id_gman_gman_cc__ static const char __rcs_id_gman_gman_cc[] = "$Id: gman.cc,v 1.4 2001/04/05 23:40:19 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #ifdef GMAN_is_a_class #define C GMAN #undef C #endif gmv0.9/src/gman/gman.h0100744000175200017560000000511407263471177015163 0ustar stephensstepheng#ifndef _gman_gman_h #define _gman_gman_h #ifndef __rcs_id__ #ifndef __rcs_id_gman_gman_h__ #define __rcs_id_gman_gman_h__ static const char __rcs_id_gman_gman_h[] = "$Id: gman.h,v 1.18 2001/04/07 01:50:55 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman/malloc.h" #include #include #include "gintv/gintv.h" struct GMANObject; #ifdef __cplusplus /********************************************************/ /* Reference counting stratigy. */ /* Define a result pointer. */ typedef GMANObject *GMAN; /* Define a refcounting pointer. */ #include "util/refcntptr.hh" extern void __ref(GMANObject *p); extern void __deref(GMANObject *p); typedef refcntptr GMAN_REF; #define GMAN_REF GMAN_REF /* Arguments are passed by pointer reference. */ typedef GMANObject *GMAN_ARG; #define GMAN_ARG GMAN_ARG #else typedef struct GMANObject *GMANObject; typedef GMANObject *GMAN; #define GMAN GMAN #endif #define GMANObject GMANObject #ifdef __cplusplus extern "C" { #endif /* gman_x(i): i maximum. */ #ifndef GMAN_X_I_MAX #define GMAN_X_I_MAX 32 #endif /*************************************************************/ /* System context. */ /* Use swig file for the function declarations. */ #include "gman/gman.swig" #ifdef __cplusplus } /*************************************************************/ /* C++ operator overloading */ #if 0 /* Cannot be implemented because GMAN is a pointer. */ #ifdef GMAN_is_a_class inline GMAN operator - (const GMAN &x) { return gman_neg(x); } inline GMAN operator + (const GMAN &x, const GMAN & y) { return gman_add(x, y); } inline GMAN operator - (const GMAN & x, const GMAN & y) { return gman_sub(x, y); } inline GMAN operator * (const GMAN & x, const GMAN & y) { return gman_mul(x, y); } inline GMAN operator / (const GMAN & x, const GMAN & y) { return gman_div(x, y); } inline GMAN operator ! (const GMAN & x) { return gman_not(x); } inline GMAN operator && (const GMAN & x, const GMAN & y) { return gman_and(x, y); } inline GMAN operator || (const GMAN & x, const GMAN & y) { return gman_or(x, y); } inline GMAN operator == (const GMAN & x, const GMAN & y) { return gman_eq(x, y); } inline GMAN operator != (const GMAN & x, const GMAN & y) { return gman_ne(x, y); } inline GMAN operator < (const GMAN & x, const GMAN & y) { return gman_lt(x, y); } inline GMAN operator > (const GMAN & x, const GMAN & y) { return gman_gt(x, y); } inline GMAN operator <= (const GMAN & x, const GMAN & y) { return gman_le(x, y); } inline GMAN operator >= (const GMAN & x, const GMAN & y) { return gman_ge(x, y); } #endif #endif #endif #endif gmv0.9/src/gman/mat.cc0100744000175200017560000001426107263234616015156 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_mat_cc__ #define __rcs_id_gman_mat_cc__ static const char __rcs_id_gman_mat_cc[] = "$Id: mat.cc,v 1.11 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman/user.hh" #include /* fabs */ #include "util/memcpy.h" #include int _gman_mat; #define C GMANmatrix GMAN_CLASS(matrix); class C : public GMANObject { GMAN_REF _subexprs[3]; /* m, nc, nr */ public: C(GMAN_ARG x, GMAN_ARG nc, GMAN_ARG nr) { _subexprs[0] = x; _subexprs[1] = nc; _subexprs[2] = nr; } C(int n, GMAN *xp) { assert(n == 3); memcpy(_subexprs, xp, sizeof(_subexprs)); } int nsubexprs() { return 3; } GMAN_REF *subexprs() { return _subexprs; } GMAN_CLASS_METHOD(matrix); int _compute_noutputs() { int nr = (int) (gman_constant(_subexprs[1])[0]); int nc = (int) (gman_constant(_subexprs[2])[0]); int no = nr * nc; // fprintf(stderr, "%p->matrix(): no = %d\n", this, no); if ( gman_noutputs(_subexprs[0]) < no ) { _error("nrows * ncols < outputs"); return -1; } _nrows = nr; return no; } /* Make sure derivatives and simplications are still matricies. */ GMAN _derivative(GMAN_ARG x) { return new C(_gman_d(_subexprs[0], x), _subexprs[1], _subexprs[2]); } /* Forward point evals to m */ void _point(GMANValue *v) { // IMPLEMENT bounds check if m.noutputs > this.noutputs. _subexprs[0]->_point(v); } const GMANValue *point() { return _subexprs[0]->point(); } void pointFree(const GMANValue *v) { _subexprs[0]->pointFree(v); } void _pointI(gintv *v) { // IMPLEMENT bounds check if m.noutputs > this.noutputs. _subexprs[0]->_pointI(v); } const gintv *pointI() { return _subexprs[0]->pointI(); } void pointIFree(const gintv *v) { _subexprs[0]->pointIFree(v); } }; GMAN_CLASS_END(matrix); /***************************************************************************/ GMAN gman_matrix(GMAN_ARG m, int nrows, int ncolumns) { return new C(m, gman_v(nrows), gman_v(ncolumns)); } #undef C /***************************************************************************/ void _gman_mat_mul(GMANValue *cv, GMAN_ARG a, const GMANValue *av, GMAN_ARG b, const GMANValue *bv) { #define VALUE GMANValue #include "mat_mul.c" } void _gman_mat_mul_i(gintv *cv, GMAN_ARG a, const gintv *av, GMAN_ARG b, const gintv *bv) { #define VALUE gintv #define mul(a,b,c) gintv_mul(&(a), &(b), &(c)) #define add(a,b,c) gintv_add(&(a), &(b), &(c)) #include "mat_mul.c" } /***************************************************************************/ #define C GMANtranspose GMAN_CLASS(transpose); class C : public GMANObject { GMAN_REF m; public: C(GMAN_ARG x) { m = x; } C(int n, GMAN *xp) { assert(n == 1); m = xp[0]; } int nsubexprs() { return 1; } GMAN_REF *subexprs() { return &m; } GMAN_CLASS_METHOD(transpose); int _compute_noutputs() { _nrows = gman_ncolumns(m); return m->noutputs(); } void _point(GMANValue *v) { int i, j; int am = gman_nrows(m); int an = gman_ncolumns(m); // int bm = gman_nrows(this); int bn = gman_ncolumns(this); const GMANValue *v0 = m->point(); for ( i = 0; i < am; ++ i ) { for ( j = 0; j < an; ++ j ) { v[i * an + j] = v0[j * bn + i]; } } m->pointFree(v0); } void _pointI(gintv *v) { int i, j; int am = gman_nrows(m); int an = gman_ncolumns(m); // int bm = gman_nrows(this); int bn = gman_ncolumns(this); const gintv *v0 = m->pointI(); for ( i = 0; i < am; ++ i ) { for ( j = 0; j < an; ++ j ) { v[(i) * an + j] = v0[j * bn + i]; } } m->pointIFree(v0); } GMAN _derivative(GMAN_ARG x) { return gman_transpose(_gman_d(m, x)); } }; GMAN_CLASS_END(transpose); /***************************************************************************/ GMAN gman_transpose(GMAN_ARG m) { return new C(m); } #undef C /***************************************************************************/ #define C GMANValueMatrix class C { /* Wrapper class for MATRIX_INVERT */ private: typedef GMANValue Scalar; GMANValue *_v; int _nr, _nc; int _copied; public: C(Scalar *v, int nr, int nc) : _v(v), _nr(nr), _nc(nc), _copied(0) { } C(const Scalar *v, int nr, int nc) : _nr(nr), _nc(nc), _copied(1) { _v = new Scalar[_nr * _nc]; memcpy(_v, v, sizeof(_v[0]) * _nr * _nc); } ~C() { if ( _copied ) { delete [] _v; } } C(const C &x) : _nr(x._nr), _nc(x._nc), _copied(1) { _v = new Scalar[_nr * _nc]; memcpy(_v, x._v, sizeof(_v[0]) * _nr * _nc); } Scalar * operator [](int i) { return _v + _nc * i; } const Scalar * operator [](int i) const { return _v + _nc * i; } }; #undef C #define SCALAR GMANValue #define MATRIX GMANValueMatrix #include "gman/mat_inv.c" #define C GMANmatrix_inverse GMAN_CLASS(matrix_inverse); class C : public GMANObject { GMAN_REF m; public: C(GMAN_ARG x) { m = x; } C(int n, GMAN *xp) { assert(n == 1); m = xp[0]; } int nsubexprs() { return 1; } GMAN_REF *subexprs() { return &m; } GMAN_CLASS_METHOD(matrix_inverse); int _compute_noutputs() { assert(gman_nrows(m) == gman_ncolumns(m)); _nrows = gman_nrows(m); return m->noutputs(); } void _point(GMANValue *v) { int am = gman_nrows(m); int an = gman_ncolumns(m); const GMANValue *v0 = m->point(); // Avoid copy by casting values to non-const ptr. GMANValueMatrix M((GMANValue *) v0, am, an); GMANValueMatrix M1(v, am, an); MATRIX_INVERSE(M1, M); m->pointFree(v0); } void _pointI(gintv *v) { // int am = gman_nrows(m); // int an = gman_ncolumns(m); const gintv *v0 = m->pointI(); assert(! "implemented"); m->pointIFree(v0); } GMAN _derivative(GMAN_ARG x) { return gman_matrix_inverse(_gman_d(m, x)); } }; GMAN_CLASS_END(matrix_inverse); /***************************************************************************/ GMAN gman_matrix_inverse(GMAN_ARG m) { return new C(m); } #undef C /***************************************************************************/ gmv0.9/src/gman/obj.cc0100744000175200017560000002514507264404115015144 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_obj_cc__ #define __rcs_id_gman_obj_cc__ static const char __rcs_id_gman_obj_cc[] = "$Id: obj.cc,v 1.14 2001/04/09 19:06:53 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #include #include /* strcmp() */ #include #include "attr.hh" /* ~GMANAttribs() */ #define C GMANCls C :: C(const char *name) { #if 0 fprintf(stderr, "GMANCls: %p: %s\n", this, name); #endif /* THIS MUST BE TRUE IF GMAN and GMAN_ARG are interchangable at link time. */ assert(sizeof(GMAN) == sizeof(GMANObject*)); assert(sizeof(GMAN) == sizeof(GMAN_REF)); _name = name; _nextClass = classes; classes = this; } C *C :: classes = 0; /* Look for a class object by name */ C *C :: named(const char *name) { /* Force linkage. */ extern int _gman_vec, _gman_ev, _gman_der, _gman_cart, _gman_mat; extern int _gman_interval; _gman_vec ++; _gman_ev ++; _gman_der ++; _gman_cart ++; _gman_mat ++; _gman_interval ++; for ( C *x = classes; x ; x = x->_nextClass ) { if ( name[0] == x->_name[0] && strcmp(name + 1, x->_name + 1) == 0 ) { return x; } } return 0; } #undef C #define C GMANObject // GMANCls * C :: cls(void) { return 0; } void __ref(GMANObject *p) { if ( p ) p->__ref(); } void __deref(GMANObject *p) { if ( p ) p->__deref(); } GMAN gman_ref(GMANObject *x) { __ref(x); return (GMAN) x; } void gman_deref(GMANObject *x) { __deref(x); } void GMANerror(C *o, const char *format) { fprintf(stderr, "GMAN error: %s\n", format); if ( o ) { fprintf(stderr, "\tin expr:\n\t"); gman_print_expr(stderr, o); fprintf(stderr, "\n"); } abort(); } void GMANObject::_error(const char *format) { GMANerror(this, format); } /****************************************************************************/ unsigned char countbits_nbits[256]; static class _countbits { public: _countbits() { for ( int i = 0; i < 256; ++ i ) { int x = i; int nbits = 0; while ( x ) { if ( x & 1 ) nbits ++; x >>= 1; } countbits_nbits[i] = nbits; } } } __countbits; inline int countbits(unsigned long x) { return countbits_nbits[x & 255] + countbits_nbits[(x >> 8) & 255] + countbits_nbits[(x >> 16) & 255] + countbits_nbits[(x >> 24)]; } /****************************************************************************/ int C :: ninputs() { if ( _ninputs < 0 ) { int nsubexprs = this->nsubexprs(); GMAN_REF *subexprs = this->subexprs(); _ninputs = 0; _inputs = 0; if ( _cache ) { delete _cache; _cache = 0; } _needsCache = 0; /* Merge the parameter index sets from our subexprs. */ for ( int i = 0; i < nsubexprs; ++ i ) { _inputs |= subexprs[i]->inputs(); /* ** Keep track of how many times an expression is ** used as a subexpression. */ ++ subexprs[i]->_refSubexpr; } /* Count the number of inputs */ _ninputs = countbits(_inputs); /* ** If any input has less parameters than us, ** force all inputs to use a cache. */ for ( int i = 0; i < nsubexprs; ++ i ) { if ( _ninputs > subexprs[i]->ninputs() ) { for ( i = 0; i < nsubexprs; ++ i ) { if ( subexprs[i]->ninputs() ) { subexprs[i]->_needsCache = 1; } } break; } } } return _ninputs; } unsigned long C :: inputs() { if ( _ninputs < 0 ) { ninputs(); } return _inputs; } int C :: is_matrix() { noutputs(); return _nrows != -2; } int C :: ncolumns() { int n = noutputs(); if ( _nrows == -2 ) { return n; } else { return n / _nrows; } } int C :: nrows() { noutputs(); if ( _nrows == -2 ) { return 1; } else { return _nrows; } } void C :: init(int xi) { _inputs = 1 << xi; _ninputs = 1; _noutputs = 1; } int C :: noutputs() { if ( _noutputs < 0 ) { _noutputs = _compute_noutputs(); } return _noutputs; } GMANCls * C :: cls() { // assert(! "implemented"); return 0; } C :: C () { this->_init(); } void C :: _init() { #if 0 fprintf(stderr, "GMAN::GMAN(): %p: %s\n", this, name(this->cls())); #endif _refCount = 0; _refSubexpr = 0; _ninputs = -1; _inputs = 0; _noutputs = -1; _nrows = -2; _visited = 0; _needsCache = 0; _cache = 0; _simplified = 0; _attribs = 0; } void C :: _delete() { #if 0 fprintf(stderr, "GMAN::~GMAN(): %p: %s\n", this, name(this->cls())); #endif /* Must do this before calling delete. Subclass destructor methods may have already freed subexpressions. */ /* Remove subexpression reference counts. */ if ( 0 ) { /* NOT SURE WHY THIS DOESN'T WORK. ** Some expressions never get _refSubexpr updated? ** It's not critical anyway. */ int nsubexprs = this->nsubexprs(); GMAN_REF *subexprs = this->subexprs(); for ( int i = 0; i < nsubexprs; ++ i ) { if ( subexprs[i] ) { assert(subexprs[i]->_refSubexpr); -- subexprs[i]->_refSubexpr; } } } /* Now we can call delete. */ delete this; } C :: ~C() { delete _cache; delete _attribs; } /****************************************************************************/ int gman_noutputs(GMAN_ARG f) { return f->noutputs(); } int gman_ninputs(GMAN_ARG f) { return f->ninputs(); } GMAN gman_inputi(GMAN_ARG f, int i) { unsigned long f_inputs = f->inputs(); int xi = 0; while ( f_inputs ) { if ( f_inputs & 1 ) { if ( i -- == 0 ) { return gman_x(xi); } } ++ xi; f_inputs >>= 1; } return gman_x(0); } int gman_nsubexprs(GMAN_ARG f) { return f->nsubexprs(); } GMAN *gman_subexprs(GMAN_ARG f) { return (GMAN*) f->subexprs(); } int gman_is_matrix(GMAN_ARG f) { return f->is_matrix(); } int gman_ncolumns(GMAN_ARG f) { return f->ncolumns(); } int gman_nrows(GMAN_ARG f) { return f->nrows(); } /****************************************************************************/ int gman_is_constant(GMAN_ARG f) { return f->inputs() == 0; } int gman_is_constant_to(GMAN_ARG f, GMAN_ARG x) { return ! (f->inputs() & x->inputs()); } const GMANValue *gman_constant(GMAN_ARG f) { if ( gman_is_constant(f) ) { return gman_point(f, 0, 0); } return 0; } int gman_is_constant_value(GMAN_ARG f, GMANValue x) { const GMANValue *v = gman_constant(f); if ( v ) { int i = f->noutputs(); while ( i -- ) { if ( *(v ++) != x ) return 0; } return 1; } return 0; } int gman_is_zero(GMAN_ARG f) { return gman_is_constant_value(f, 0.0); } int gman_is_one(GMAN_ARG f) { return gman_is_constant_value(f, 1.0); } /****************************************************************************/ void C :: unvisit() { if ( 1 || _visited ) { int n; GMAN_REF *ia; _visited = 0; ia = subexprs(); n = nsubexprs(); while ( n -- ) { (*(ia ++))->unvisit(); } } } /***************************************************************************/ int C :: equal(GMAN_ARG x) { int n = nsubexprs(); if ( n != x->nsubexprs() ) return 0; GMAN_REF *e = subexprs(); GMAN_REF *xe = x->subexprs(); while ( n -- ) { if ( ! gman_equal(*(e ++), *(xe ++)) ) return 0; } return 1; } int gman_equal(GMAN_ARG f, GMAN_ARG g) { return ((GMANObject*) f == (GMANObject*) g) || ((f->cls() == g->cls()) && f->equal(g)); } /***************************************************************************/ GMAN C :: _simplify() { /* Dont know how. */ return this; } GMAN C :: simplify() { GMAN_REF result; /* Constant fold */ if ( gman_is_constant((GMAN) this) ) { result = gman_vv(noutputs(), (GMANValue*) gman_constant(this), 1); } else { /* simplify subexpressions in place */ int n = nsubexprs(); GMAN_REF *in = subexprs(); while ( n -- ) { *in = gman_simplify(*in); in ++; } /* Then simplify ourselves */ result = _simplify(); /* Could this return a constant expression? */ } /* Coerce to matrix. */ if ( result != this && gman_is_matrix(this) && ! gman_is_matrix(result) ) { result = gman_matrix(result, gman_nrows(this), gman_ncolumns(this)); } return result; } GMAN gman_simplify(GMAN_ARG f) { /* Cache the simplification. */ if ( ! f->_simplified ) { GMAN_REF x = f, y; do { y = x; x = y->simplify(); // fprintf(stderr, "\n================================================\n"); // fprintf(stderr, "simplify: "); //gman_print_expr(stderr, x); // fprintf(stderr, " -> "); //gman_print_expr(stderr, f); //fprintf(stderr, "\n"); } while ( ! gman_equal(x, y) ); f->_simplified = x; } return f->_simplified; } /*************************************************************************/ GMAN gman_name_eval(const char *name, int n, GMAN *v) { GMANCls *cls; GMAN f; if ( (cls = GMANCls::named(name)) ) { return cls->construct(n, v); } if ( (f = gman_named(name)) ) { return gman_evalx(f, n, v); } return 0; } /*************************************************************************/ unsigned long _gman_eval_inputs; GMAN C :: evaluate() { if ( inputs() & _gman_eval_inputs ) { return _evaluate(); } else { return (GMAN) this; } } GMAN C :: _evaluate() { int n = nsubexprs(); GMAN_REF *e = subexprs(); GMAN *s = new GMAN[n]; GMAN x; for ( int i = 0; i < n; i ++ ) { s[i] = e[i]->evaluate(); } x = this->cls()->construct(n, s); delete [] s; return x; } void _gman_xeattach(GMAN_ARG _x, GMAN_ARG e, GMAN *es); void _gman_xereattach(GMAN_ARG _x, GMAN *es); GMAN gman_evaln(GMAN_ARG fx, int n, GMAN *xs, GMAN *gs) { unsigned long is; GMAN es[32]; GMAN fg; int i; /* Save and compute new globals. */ is = _gman_eval_inputs; _gman_eval_inputs = 0; for ( i = 0; i < n; ++ i) { _gman_eval_inputs |= xs[i]->inputs(); _gman_xeattach(xs[i], gs[i], es); } /* Recurse. */ fg = fx->evaluate(); /* Restore globals. */ for ( i = 0; i < n; ++ i ) { _gman_xereattach(xs[i], es); } _gman_eval_inputs = is; return fg; } GMAN gman_evalx(GMAN_ARG fx, int n, GMAN *gs) { GMAN *xs = new GMAN[n]; GMAN fg; /* Scan all inputs in fx's input set. */ unsigned long fx_inputs = fx->inputs(); int xi = 0; int i = 0; while ( fx_inputs ) { if ( fx_inputs & 1 ) { xs[i ++] = gman_x(xi); if ( i > n ) break; } ++ xi; fx_inputs >>= 1; } fg = gman_evaln(fx, n, xs, gs); delete [] xs; return fg; } GMAN gman_eval1(GMAN_ARG fx, GMAN_ARG x, GMAN_ARG gy) { GMAN _x = x; GMAN _gy = gy; return gman_evaln(fx, 1, &_x, &_gy); } /*************************************************************************/ gmv0.9/src/gman/obj.hh0100744000175200017560000002000707264404115015146 0ustar stephensstepheng#ifndef _GMANObject_hh #define _GMANObject_hh #ifndef __rcs_id__ #ifndef __rcs_id_gman_obj_hh__ #define __rcs_id_gman_obj_hh__ static const char __rcs_id_gman_obj_hh[] = "$Id: obj.hh,v 1.10 2001/04/09 19:06:53 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman.h" #include #include extern void GMANerror(GMANObject *ptr, const char *format); /* point eval parameter container */ typedef struct GMANXValues { GMANValue _x[32]; unsigned long _xChanged; int _serialNumber; } GMANXValues; void gman_xinit(GMANXValues *xv); void gman_xset(GMANXValues *xv, int i, GMANValue x); #define gman_xget(xv,i)((xv)->_x[i]) typedef struct GMANXIValues { gintv _x[32]; unsigned long _xChanged; int _serialNumber; } GMANXIValues; void gman_xiinit(GMANXIValues *xv); void gman_xiset(GMANXIValues *xv, int i, gintv x); #define gman_xiget(xv,i)((xv)->_x[i]) class GMANCache { public: /* scalar eval cache */ GMANXValues *_pointX; /* Last eval parameters */ int _pointSN; /* Last eval parameter serial number (GMANXIValues::_serialNumber) */ int _pointID; /* Last evaluation ID */ GMANValue *_point; /* interval eval cache */ GMANXIValues *_pointXI; int _pointSNI; int _pointIDI; gintv *_pointI; GMANCache(); ~GMANCache(); }; class GMANCls { public: const char *_name; GMANCls(const char *_name); /* Object creation */ virtual GMAN construct(int n, GMAN *v) = 0; /* Class name */ /* const char *name() { return _name; } */ /* Class searching */ static GMANCls *classes; GMANCls *_nextClass; static GMANCls *named(const char *name); }; static inline const char *name(GMANCls *cls) { return cls ? cls->_name : "(GMANCls*)NULL"; } #define GMAN_CLASS(N) \ class GMAN##N; \ class GMANCls_##N : public GMANCls { \ public: \ GMANCls_##N () : GMANCls(#N) {} \ GMAN construct(int n, GMAN *v); \ } #define GMAN_CLASS_METHOD(N) \ static GMANCls *_cls(); \ GMANCls *cls() #define GMAN_CLASS_END(N) \ GMAN GMANCls_##N::construct(int n, GMAN *v) { return (GMAN) new GMAN##N(n, v); } \ GMANCls_##N _GMANCls_##N; \ GMANCls *GMAN##N::_cls() { return &_GMANCls_##N; } \ GMANCls *GMAN##N::cls() { return &_GMANCls_##N; } class GMANAttribs; class GMANObject { #ifdef GMAN_is_a_class friend GMAN; #endif public: /****************************************************************/ /* Class info */ virtual GMANCls *cls(); // = 0; /****************************************************************/ /* Reference counting */ /* How many places are we referenced? */ unsigned long _refCount; void __ref() { ++ _refCount; assert(_refCount); } void __deref() { if ( _refCount <= 1 ) { #if 0 if ( _refCount == 0 ) { fprintf(stderr, "%p->_refCount == 0\n", this); } #endif _refCount = 0; this->_delete(); } else { -- _refCount; } } /* How many operators reference us as subexpressions? */ /* Used for determining if this expression needs an eval cache. */ unsigned long _refSubexpr; /****************************************************************/ /* Errors */ void _error(const char *msg); /****************************************************************/ /* Output dimension */ /* The dimensionality of our result? */ short _noutputs; /* -1 if this needs to be computed */ int noutputs(); /* Will compute if needed */ virtual int _compute_noutputs() = 0; short _nrows; /* -1 if this needs to be computed, -2 if it's not an array */ int ncolumns(); int nrows(); int is_matrix(); /****************************************************************/ /* Input parameters */ /* How many input parameters do we depend on? */ short _ninputs; /* -1 if this needs to be computed */ /* ** A set of input parameter indexs (as in gman_x(i)) ** that we depend on. */ unsigned long _inputs; int ninputs(); unsigned long inputs(); /****************************************************************/ /* Evaluation caching */ /* ** This expression is a candidate for evaluation caching if: ** 1. This expression is used by more than one superexpression ** (_refSubexpr > 1). ** ** 2. This expression is used in a superexpression that has subexpressions ** that depend on parameters other than the parameters in this. ** ** 3. This expression is used in top-level eval (i.e. gman_point()). ** Note: gman_point[I](F) actually returns a pointer into F's eval cache! ** ** Example 1: ** F = x(0) * 5; ** G = x(0) * x(1) + 10; ** H = f * g; ** ** F and G are both eval cached because H depends on x(0) and x(1), ** ** Example 2: ** A = x(0) * 5 + 2; ** B = a * 4; ** C = a * B; ** ** A is eval cached because its used as a subexpression twice: ** B and C. ** ** See obj.cc for a description of eval caching. */ /* Do we need to create a cache object? */ short _needsCache; /* Our evaluation cache */ GMANCache *_cache; /****************************************************************/ /* visitation */ /* Use unvisit() to clear all subexpression _visited member before visiting. */ void *_visited; /****************************************************************/ /* Recursively set _visited to 0 */ void unvisit(); /****************************************************************/ void init(int xi); /****************************************************************/ GMANObject(); virtual void _init(); virtual ~GMANObject() = 0; virtual void _delete(); /****************************************************************/ /* What are the symbolic subexpressions for this operator. */ virtual int nsubexprs() { return 0; } virtual GMAN_REF *subexprs() { return 0; } /****************************************************************/ /* Is this functionally equivalent to x? */ virtual int equal(GMAN_ARG x); /****************************************************************/ /* Readable Output */ virtual void printExpr(FILE *fp); virtual void printArchive(FILE *fp, int &id); /****************************************************************/ /* Numeric evaluation */ /* Point evaluation */ virtual void _point(GMANValue *v) = 0; /* v is the output array */ virtual const GMANValue *point(); virtual void pointFree(const GMANValue *); /* Point interval evaluation */ virtual void _pointI(gintv *v) = 0; /* v is the output array */ virtual const gintv *pointI(); virtual void pointIFree(const gintv *); /* ** point[I]() may return a new or cached result array. ** point[I]Free() will free a new result array, ** but will not free a cached value. */ /* ** You may need to invalidate caches if gman_v() "constants" ** are varied. Caches will also need to be invalidated if ** a dynamic gman_crv() or gman_table() function is updated. */ void invalidateCaches(); void freeCaches(); /****************************************************************/ /* Compute the symbolic derivative with respect to a parameter */ virtual GMAN _derivative(GMAN_ARG x); /* Does operator-specific differentation. Must supply chain rule within this method. */ /****************************************************************/ /* Compute a symbolic simplification */ GMAN _simplified; virtual GMAN simplify(); /* Attempts constant-folding, then calls ... */ virtual GMAN _simplify(); /* Does operator-specific simplification. */ /****************************************************************/ /* Symbolic evaluation */ /* Compute a new function by replacing some parameters with new ** functions. */ virtual GMAN evaluate(); virtual GMAN _evaluate(); /****************************************************************/ /* Attributes */ GMANAttribs *_attribs; virtual void attr_set(const char *key, const char *value); virtual const char *attr_get(const char *key); }; extern "C" { GMAN _gman_d(GMAN_ARG y, GMAN_ARG x); GMANCls *GMANc_cls(); GMANCls *GMANv_cls(); GMANCls *GMANx_cls(); }; #endif gmv0.9/src/gman/op.cc0100744000175200017560000005135407263471177015024 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_op_cc__ #define __rcs_id_gman_op_cc__ static const char __rcs_id_gman_op_cc[] = "$Id: op.cc,v 1.12 2001/04/07 01:50:55 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #include #ifdef MAX #undef MAX #endif #define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) #ifdef MIN #undef MIN #endif #define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) class GMANOP : public GMANObject { public: GMANOP() { } virtual int infix() { return 0; } virtual const char *opname() { return name(cls()); } void printExpr(FILE *fp); }; void GMANOP :: printExpr(FILE *fp) { if ( infix() ) { fprintf(fp, "("); switch ( nsubexprs() ) { case 1: fprintf(fp, " %s ", opname()); (subexprs())[0]->printExpr(fp); break; case 2: (subexprs())[0]->printExpr(fp); fprintf(fp, " %s ", opname()); (subexprs())[1]->printExpr(fp); break; case 3: (subexprs())[0]->printExpr(fp); fprintf(fp, " %c ", (opname())[0]); (subexprs())[1]->printExpr(fp); fprintf(fp, " %c ", (opname())[1]); (subexprs())[2]->printExpr(fp); break; default: abort(); } fprintf(fp, ")"); } else { this->GMANObject::printExpr(fp); } } class GMANOP1 : public GMANOP { public: GMAN_REF _subexprs[1]; GMANOP1(GMAN_DECL(1)) { _subexprs[0] = a; } GMANOP1(int n, GMAN *v) { assert(n == 1); _subexprs[0] = v[0]; } int _compute_noutputs() { int n = _subexprs[0]->noutputs(); /* If subexprssion is a matrix then the result is a matrix. */ _nrows = _subexprs[0]->_nrows; return n; } int nsubexprs() { return 1; } GMAN_REF *subexprs() { return _subexprs; } }; class GMANOP2 : public GMANOP { public: GMAN_REF _subexprs[2]; GMANOP2(GMAN_DECL(2)) { _subexprs[0] = a; _subexprs[1] = b; } GMANOP2(int n, GMAN *v) { assert(n == 2); _subexprs[0] = v[0]; _subexprs[1] = v[1]; } int _compute_noutputs() { if ( ! (_subexprs[0]->noutputs() == _subexprs[1]->noutputs() || _subexprs[0]->noutputs() == 1 || _subexprs[1]->noutputs() == 1) ) { _error("noutputs must be ==, or one must be 1"); return -1; } /* If a subexpression of them is a matrix then the result is a matrix. */ if ( gman_is_matrix(_subexprs[0]) ) { _nrows = gman_nrows(_subexprs[0]); } else if ( gman_is_matrix(_subexprs[1]) ) { _nrows = gman_nrows(_subexprs[1]); } return(MAX(_subexprs[0]->noutputs(), _subexprs[1]->noutputs())); } int nsubexprs() { return 2; } GMAN_REF *subexprs() { return _subexprs; } }; class GMANOP3 : public GMANOP { public: GMAN_REF _subexprs[3]; GMANOP3(GMAN_DECL(3)) { _subexprs[0] = a; _subexprs[1] = b; _subexprs[2] = c; } GMANOP3(int n, GMAN *v) { assert(n == 3); _subexprs[0] = v[0]; _subexprs[1] = v[1]; _subexprs[2] = v[2]; } int _compute_noutputs() { if ( ! (_subexprs[1]->noutputs() == _subexprs[2]->noutputs() || _subexprs[1]->noutputs() == 1 || _subexprs[2]->noutputs() == 1) ) { _error("noutputs must be ==, or one must be 1"); } /* If a subexpression of them is a matrix then the result is a matrix. */ if ( _subexprs[1]->_nrows > 0 ) { _nrows = _subexprs[1]->_nrows; } else if ( _subexprs[2]->_nrows > 0 ) { _nrows = _subexprs[2]->_nrows; } return(MAX(_subexprs[1]->noutputs(), _subexprs[2]->noutputs())); } int nsubexprs() { return 3; } GMAN_REF *subexprs() { return _subexprs; } }; class GMANRBOP : public GMANOP { public: GMAN_REF _subexprs[2]; GMANRBOP(GMAN_ARG a, GMAN_ARG b) { _subexprs[0] = a; _subexprs[1] = b; } GMANRBOP(int n, GMAN *v) { assert(n == 2); _subexprs[0] = v[0]; _subexprs[1] = v[1]; } int _compute_noutputs() { if ( ! (_subexprs[0]->noutputs() == _subexprs[1]->noutputs() || _subexprs[0]->noutputs() == 1 || _subexprs[1]->noutputs() == 1) ) { _error("noutputs must be ==, or one must be 1"); return -1; } return(1); } int nsubexprs() { return 2; } GMAN_REF *subexprs() { return _subexprs; } }; /****************************************************************/ /* Define specific operator subclasses */ /* Note: In OP(N,O) N is the number of arguments, O is the name of the operator */ #define OP(N,NAME,O,INFIX) \ GMAN_CLASS(NAME); \ class GMAN##NAME : public GMANOP##N { \ public: \ \ GMAN##NAME(GMAN_DECL(N)) : GMANOP##N(GMAN_ARGS(N)) { } \ GMAN##NAME(int n, GMAN *v) : GMANOP##N(n, v) { } \ \ GMAN_CLASS_METHOD(NAME); \ void _point(GMANValue *v); \ void _pointI(gintv *v); \ GMAN _derivative(GMAN_ARG x); \ GMAN _simplify(); \ int infix() { return INFIX; } \ const char *opname() { return #O; } \ }; \ GMAN_CLASS_END(NAME); /* Note: In R*OP(N,O) N is the name, O is the infix operator */ #define RUOP(N,O)OP(1,N,O,1) #define RBOP(NAME,O) \ GMAN_CLASS(NAME); \ class GMAN##NAME : public GMANRBOP { \ public: \ \ GMAN##NAME(GMAN_ARG a, GMAN_ARG b) : GMANRBOP(a, b) { } \ GMAN##NAME(int n, GMAN *v) : GMANRBOP(n, v) { } \ \ GMAN_CLASS_METHOD(NAME); \ void _point(GMANValue *v); \ void _pointI(gintv *v); \ int infix() { return 1; } \ const char *opname() { return #O; } \ }; \ GMAN_CLASS_END(NAME); #define OP_NO_MUL #include "op.h" /****************************************************************/ /* Define specific operator eval methods */ #define add(A,B) ((A) + (B)) #define sub(A,B) ((A) - (B)) #define neg(A) (- (A)) #define mul(A,B) ((A) * (B)) #define div(A,B) ((A) / (B)) /* gcc version 2.96 20000731 (Red Hat Linux 7.0) op.cc:249:9: "not" cannot be used as a macro name in C++ op.cc:252:9: "or" cannot be used as a macro name in C++ op.cc:253:9: "and" cannot be used as a macro name in C++ */ #define _not(A) (! (A)) #define gintv__not(A,B) gintv_not(A,B) #define _or(A,B) ((A) != 0.0 || (B) != 0.0) #define gintv__or(A,B,C) gintv_or(A,B,C) #define _and(A,B) ((A) != 0.0 && (B) != 0.0) #define gintv__and(A,B,C) gintv_and(A,B,C) #define _if(A,B,C)((A) != 0.0 ? (B) : (C)) #define abs(A) fabs(A) #define gintv_abs(A,B) gintv_fabs(A,B) #define mod(A,B) fmod(A,B) #define gintv_mod(A,B,C) gintv_fmod(A,B,C) #define OP1(N) \ void GMAN##N :: _point(GMANValue *v) \ { \ const GMANValue *v0 = _subexprs[0]->point(); \ for ( int i = 0; i < _noutputs; ++ i ) { \ v[i] = N(v0[i]); \ } \ _subexprs[0]->pointFree(v0); \ } \ void GMAN##N :: _pointI(gintv *v) \ { \ const gintv *v0 = _subexprs[0]->pointI(); \ for ( int i = 0; i < _noutputs; ++ i ) { \ gintv_##N(&v[i], &v0[i]); \ } \ _subexprs[0]->pointIFree(v0); \ } #define OP2(N) \ void GMAN##N :: _point(GMANValue *v) \ { \ const GMANValue *v0 = _subexprs[0]->point(); \ const GMANValue *v1 = 0; \ for ( int i = 0; i < _noutputs; ++ i ) { \ v[i] = N(v0[MIN(i, _subexprs[0]->_noutputs - 1)], \ (v1 ? v1 : v1 = _subexprs[1]->point())[MIN(i, _subexprs[1]->_noutputs - 1)]); \ } \ if ( v1 ) _subexprs[1]->pointFree(v1); \ _subexprs[0]->pointFree(v0); \ } \ void GMAN##N :: _pointI(gintv *v) \ { \ const gintv *v0 = _subexprs[0]->pointI(); \ const gintv *v1 = _subexprs[1]->pointI(); \ for ( int i = 0; i < _noutputs; ++ i ) { \ gintv_##N(&v[i], \ &v0[MIN(i, _subexprs[0]->_noutputs - 1)], \ &v1[MIN(i, _subexprs[1]->_noutputs - 1)]); \ } \ _subexprs[1]->pointIFree(v1); \ _subexprs[0]->pointIFree(v0); \ } #define OP3(N) \ void GMAN##N :: _point(GMANValue *v) \ { \ const GMANValue *v0 = _subexprs[0]->point(); \ const GMANValue *v1 = 0; \ const GMANValue *v2 = 0; \ for ( int i = 0; i < _noutputs; ++ i ) { \ v[i] = N(v0[MIN(i, _subexprs[0]->_noutputs - 1)], \ (v1 ? v1 : v1 = _subexprs[1]->point())[MIN(i, _subexprs[1]->_noutputs - 1)], \ (v2 ? v2 : v2 = _subexprs[2]->point())[MIN(i, _subexprs[2]->_noutputs - 1)]); \ } \ if ( v2 ) _subexprs[2]->pointFree(v2); \ if ( v1 ) _subexprs[1]->pointFree(v1); \ _subexprs[0]->pointFree(v0); \ } \ void GMAN##N :: _pointI(gintv *v) \ { \ const gintv *v0 = _subexprs[0]->pointI(); \ const gintv *v1 = _subexprs[1]->pointI(); \ const gintv *v2 = _subexprs[2]->pointI(); \ for ( int i = 0; i < _noutputs; ++ i ) { \ gintv_##N(&v[i], \ &v0[MIN(i, _subexprs[0]->_noutputs - 1)], \ &v1[MIN(i, _subexprs[1]->_noutputs - 1)], \ &v2[MIN(i, _subexprs[2]->_noutputs - 1)]); \ } \ _subexprs[2]->pointIFree(v2); \ _subexprs[1]->pointIFree(v1); \ _subexprs[0]->pointIFree(v0); \ } #define OP(N,NAME,O,INFIX)OP##N(NAME) #define RUOP(N,O)OP(1,N,O,1) #define OP_NO_MUL #include "op.h" /****************************************************************************/ /* Handle matrix multiplication. */ #define OP(N,NAME,O,INFIX) \ GMAN_CLASS(NAME); \ class GMAN##NAME : public GMANOP##N { \ public: \ \ GMAN##NAME(GMAN_DECL(N)) : GMANOP##N(GMAN_ARGS(N)) { } \ GMAN##NAME(int n, GMAN *v) : GMANOP##N(n, v) { } \ \ GMAN_CLASS_METHOD(NAME); \ void _point(GMANValue *v); \ void _pointI(gintv *v); \ GMAN _derivative(GMAN_ARG x); \ GMAN _simplify(); \ int infix() { return INFIX; } \ const char *opname() { return #O; } \ int _compute_noutputs(); \ }; \ GMAN_CLASS_END(NAME); OP(2,mul,*,1) #undef OP int GMANmul :: _compute_noutputs() { int no, nr, nc; if ( (gman_is_matrix(_subexprs[0]) && gman_noutputs(_subexprs[1]) > 1) || (gman_is_matrix(_subexprs[1]) && gman_noutputs(_subexprs[0]) > 1) ) { if ( gman_ncolumns(_subexprs[0]) != gman_nrows(_subexprs[1]) ) { _error("A ncols * B nrows must be =="); return -1; } nr = gman_nrows(_subexprs[0]); nc = gman_ncolumns(_subexprs[1]); no = nr * nc; _nrows = nr; } else { if ( ! (_subexprs[0]->noutputs() == _subexprs[1]->noutputs() || _subexprs[0]->noutputs() == 1 || _subexprs[1]->noutputs() == 1) ) { _error("noutputs must be ==, or one must be 1"); return -1; } /* If a subexpression of them is a matrix then the result is a matrix. */ if ( _subexprs[0]->_nrows > 0 ) { _nrows = _subexprs[0]->_nrows; } else if ( _subexprs[1]->_nrows > 0 ) { _nrows = _subexprs[1]->_nrows; } no = MAX(_subexprs[0]->noutputs(), _subexprs[1]->noutputs()); } return no; } void _gman_mat_mul(GMANValue *cv, GMAN_ARG a, const GMANValue *av, GMAN_ARG b, const GMANValue *bv); /* mat.cc */ void _gman_mat_mul_i(gintv *cv, GMAN_ARG a, const gintv *av, GMAN_ARG b, const gintv *bv); /* mat.cc */ void GMANmul :: _point(GMANValue *v) { const GMANValue *v0 = _subexprs[0]->point(); const GMANValue *v1 = _subexprs[1]->point(); if ( _nrows > 0 ) { _gman_mat_mul(v, _subexprs[0], v0, _subexprs[1], v1); } else { for ( int i = 0; i < _noutputs; ++ i ) { v[i] = mul( v0[MIN(i, _subexprs[0]->_noutputs - 1)], v1[MIN(i, _subexprs[1]->_noutputs - 1)] ); } } _subexprs[1]->pointFree(v1); _subexprs[0]->pointFree(v0); } void GMANmul :: _pointI(gintv *v) { const gintv *v0 = _subexprs[0]->pointI(); const gintv *v1 = _subexprs[1]->pointI(); if ( _nrows > 0 ) { _gman_mat_mul_i(v, _subexprs[0], v0, _subexprs[1], v1); } else { for ( int i = 0; i < _noutputs; ++ i ) { gintv_mul(&v[i], &v0[MIN(i, _subexprs[0]->_noutputs - 1)], &v1[MIN(i, _subexprs[1]->_noutputs - 1)]); } } _subexprs[1]->pointIFree(v1); _subexprs[0]->pointIFree(v0); } #undef OP1 #undef OP2 #undef OP3 /****************************************************************************/ static GMAN pad(int no, GMAN x) { if ( x->noutputs() == no ) { return x; } else { int nv = no / x->noutputs(); GMAN *v = (GMAN*) malloc(sizeof(v[0]) * nv); for ( int i = 0; i < nv; i ++ ) { v[i] = x; } return gman_cv(nv, v, -1); } } /****************************************************************************/ #define D(y) _gman_d((y), x) #define a _subexprs[0] #define b _subexprs[1] #define c _subexprs[2] GMAN GMANadd :: _simplify() { if ( gman_is_zero(a) ) /* 0 + x = x */ return pad(noutputs(), b); else if ( gman_is_zero(b) ) /* x + 0 = x */ return pad(noutputs(), a); return this; } GMAN GMANadd :: _derivative(GMAN_ARG x) { /* d/dx a + b = da/dx + db/dx */ return gman_add(D(a), D(b)); } /************/ GMAN GMANsub :: _simplify() { if ( gman_is_zero(a) ) /* 0 - x = - x */ return pad(noutputs(), gman_neg(b)); else if ( gman_is_zero(b) ) /* x - 0 = x */ return pad(noutputs(), a); return this; } GMAN GMANsub :: _derivative(GMAN_ARG x) { /* d/dx a - b = da/dx - db/dx */ return gman_sub(D(a), D(b)); } /************/ GMAN GMANneg :: _simplify() { if ( a->cls() == cls() ) /* - - x = x */ return pad(noutputs(), a->subexprs()[0]); return this; } GMAN GMANneg :: _derivative(GMAN_ARG x) { /* d/dx - a = - da/dx */ return gman_neg(D(a)); } /************/ GMAN GMANmul :: _simplify() { // fprintf(stderr, ">_simplify: "); gman_print_expr(stderr, this); fprintf(stderr, "\n"); if ( gman_is_one(a) ) /* 1 * x = x */ return pad(noutputs(), b); else if ( gman_is_one(b) ) /* x * 1 = x */ return pad(noutputs(), a); else if ( gman_is_zero(a) || gman_is_zero(b) ) /* x * 0 = 0 * y = 0 */ return gman_vc(noutputs(), 0); return this; } GMAN GMANmul :: _derivative(GMAN_ARG x) { /* d/dx a * b = a * db/dx + da/dx * b */ return gman_add(gman_mul(a, D(b)), gman_mul(D(a), b)); } /************/ GMAN GMANdiv :: _simplify() { if ( gman_equal(a, b) ) /* x / x = 1 */ return gman_vc(noutputs(), 1); else if ( gman_is_zero(a) ) /* 0 * y = 0 */ return gman_vc(noutputs(), 0); return this; } GMAN GMANdiv :: _derivative(GMAN_ARG x) { /* d/dx a/b = (b * da/dx - a * db/dx) / b2 */ return gman_div(gman_sub(gman_mul(b, D(a)), gman_mul(a, D(b))), gman_mul(b, b)); } /************/ static GMAN _1() { static GMAN one; if ( ! (GMANObject*) one ) { one = gman_vc(1, 1.0); } return one; } /************/ GMAN GMANsqrt :: _simplify() { if ( gman_is_zero(a) ) /* 0 ^ -2 = 1 */ return gman_vc(noutputs(), 0); else if ( gman_is_one(a) ) /* 0 ^ x = 0 */ return gman_vc(noutputs(), 1); return this; } GMAN GMANsqrt :: _derivative(GMAN_ARG x) { /* sqrt(a) = a^-2 */ /* d/dx a^-2 = -2a^-3 * (d/dx a)*/ static GMAN n2, n3; if ( ! (GMANObject*) n2 ) { n2 = gman_vc(1, -2); n3 = gman_vc(1, -3); } return gman_mul(gman_mul(n2, gman_pow(a, n3)), D(a)); } /************/ GMAN GMANpow :: _simplify() { if ( gman_is_one(a) ) /* 1 ^ x = 1 */ return gman_vc(noutputs(), 1); else if ( gman_is_zero(a) ) /* 0 ^ x = 0 */ return gman_vc(noutputs(), 0); else if ( gman_is_one(b) ) /* x ^ 1 = x */ return a; return this; } GMAN GMANpow :: _derivative(GMAN_ARG x) { /* ** From Mathcad: d/dx a(x)^b(x) -> (a(x)^b(x))*((d/dx b(x)) * ln(a(x)) + b(x)*(d/dx a(x) / a(x)) */ return gman_mul((GMAN) this, gman_add( gman_mul(D(b), gman_log(a)), gman_mul(b, gman_div(D(a), a)))); } /************/ GMAN GMAN_or :: _simplify() { if ( (! gman_is_zero(a)) || (! gman_is_zero(b)) ) /* 1 || x = 1 */ return gman_vc(noutputs(), 1); return this; } GMAN GMAN_or :: _derivative(GMAN_ARG x) { return GMANObject::_derivative(x); } /************/ GMAN GMAN_and :: _simplify() { if ( (! gman_is_zero(a)) && (! gman_is_zero(b)) ) /* 1 || x = 1 */ return gman_vc(noutputs(), 1); return this; } GMAN GMAN_and :: _derivative(GMAN_ARG x) { return GMANObject::_derivative(x); } /************/ GMAN GMANsin :: _simplify() { return this; } GMAN GMANsin :: _derivative(GMAN_ARG x) { /* d/dx sin(x) = cos(x) d/dx sin(a) = cos(a) * da/dx */ return gman_mul(gman_cos(a), D(a)); } /************/ GMAN GMANcos :: _simplify() { return this; } GMAN GMANcos :: _derivative(GMAN_ARG x) { /* d/dx cos(x) = - sin(x) d/dx cos(a) = - sin(a) * da/dx */ return gman_mul(gman_neg(gman_sin(a)), D(a)); } /************/ GMAN GMANtan :: _simplify() { return this; } GMAN GMANtan :: _derivative(GMAN_ARG x) { /* d/dx tan(x) = sec2 x sec x = 1/cos x d/dx tan(a) = sec 2 x * da/dx */ GMAN cos_x = gman_cos(a); return gman_mul(gman_div(_1(), gman_mul(cos_x, cos_x)), D(a)); } /************/ GMAN GMANasin :: _simplify() { return this; } GMAN GMANasin :: _derivative(GMAN_ARG x) { /* d/dx sin-1 x = 1/(sqrt(1 - x2)) */ return gman_mul(gman_div(_1(), gman_sqrt(gman_sub(_1(), gman_mul(a, a)))), D(a)); } /************/ GMAN GMANacos :: _simplify() { return this; } GMAN GMANacos :: _derivative(GMAN_ARG x) { /* d/dx cos-1 x = - 1/(sqrt(1 - x2)) */ return gman_mul(gman_neg(gman_div(_1(), gman_sqrt(gman_sub(_1(), gman_mul(a, a))))), D(a)); } /************/ GMAN GMANatan :: _simplify() { return this; } GMAN GMANatan :: _derivative(GMAN_ARG x) { return gman_mul(gman_div(_1(), gman_add(_1(), gman_mul(a, a))), D(a)); } /************/ GMAN GMANatan2 :: _simplify() { return this; } GMAN GMANatan2 :: _derivative(GMAN_ARG x) { return this; } /************/ GMAN GMANlog :: _simplify() { return this; } GMAN GMANlog :: _derivative(GMAN_ARG x) { return gman_mul(gman_div(_1(), a), D(a)); } /************/ GMAN GMANexp :: _simplify() { return this; } GMAN GMANexp :: _derivative(GMAN_ARG x) { return gman_mul((GMAN) this, D(a)); } /************/ GMAN GMANmod :: _simplify() { return this; } GMAN GMANmod :: _derivative(GMAN_ARG x) { return this; } /************/ GMAN GMANabs :: _simplify() { return this; } GMAN GMANabs :: _derivative(GMAN_ARG x) { GMAN ddx_a = D(a); return gman__if(gman_lt(a, gman_v(0.0)), gman_neg(ddx_a), ddx_a); } /************/ GMAN GMANfloor :: _simplify() { return this; } GMAN GMANfloor :: _derivative(GMAN_ARG x) { return this; } /************/ GMAN GMANceil :: _simplify() { return this; } GMAN GMANceil :: _derivative(GMAN_ARG x) { return this; } /************/ GMAN GMAN_if :: _simplify() { if ( gman_is_one(a) ) return b; else if ( gman_is_zero(a) ) return c; return this; } GMAN GMAN_if :: _derivative(GMAN_ARG x) { return gman__if(a, D(b), D(c)); } /************/ GMAN GMAN_not :: _simplify() { #if 0 if ( a->name() == name() ) /* ! ! x = x */ return a->subexprs()[0]; #endif return this; } GMAN GMAN_not :: _derivative(GMAN_ARG x) { return this; } /************/ #undef a #undef b #undef c #undef D #define RO(N) \ void GMAN##N :: _point(GMANValue *v) \ { \ const GMANValue *v0 = _subexprs[0]->point(); \ const GMANValue *v1 = _subexprs[1]->point(); \ v[0] = 1; \ for ( int i = 0; i < _noutputs; i ++ ) { \ if ( ! N( v0[MIN(i, _subexprs[0]->_noutputs - 1)], v1[MIN(i, _subexprs[1]->_noutputs - 1)]) ) { \ v[0] = 0; \ break; \ } \ } \ _subexprs[1]->pointFree(v1); \ _subexprs[0]->pointFree(v0); \ } \ void GMAN##N :: _pointI(gintv *v) \ { \ const gintv *v0 = _subexprs[0]->pointI(); \ const gintv *v1 = _subexprs[1]->pointI(); \ \ for ( int i = 0; i < _noutputs; i ++ ) { \ gintv_##N(v, &v0[MIN(i, _subexprs[0]->_noutputs - 1)], &v1[MIN(i, _subexprs[1]->_noutputs - 1)]); \ if ( (v->l == 0 && v->h == 0) || (v->l != 1 && v->h != 1) ) \ break; \ } \ \ _subexprs[1]->pointIFree(v1); \ _subexprs[0]->pointIFree(v0); \ } #define eq(X,Y)((X)==(Y)) RO(eq) #undef eq /************/ #define ne(X,Y)((X)!=(Y)) void GMANne :: _point(GMANValue *v) { const GMANValue *v0 = _subexprs[0]->point(); const GMANValue *v1 = _subexprs[1]->point(); v[0] = 0; for ( int i = 0; i < _noutputs; i ++ ) { if ( ne( v0[MIN(i, _subexprs[0]->_noutputs - 1)], v1[MIN(i, _subexprs[1]->_noutputs - 1)]) ) { v[0] = 1; break; } } _subexprs[1]->pointFree(v1); _subexprs[0]->pointFree(v0); } void GMANne :: _pointI(gintv *v) { const gintv *v0 = _subexprs[0]->pointI(); const gintv *v1 = _subexprs[1]->pointI(); v->l = v->h = 0; for ( int i = 0; i < _noutputs; i ++ ) { gintv_ne(v, &v0[MIN(i, _subexprs[0]->_noutputs - 1)], &v1[MIN(i, _subexprs[1]->_noutputs - 1)]); if ( (v->l && v->h) ) break; } _subexprs[1]->pointIFree(v1); _subexprs[0]->pointIFree(v0); } /************/ #define gt(X,Y)((X)>(Y)) RO(gt) #undef gt /************/ #define lt(X,Y)((X)<(Y)) RO(lt) #undef lt /************/ #define ge(X,Y)((X)>=(Y)) RO(ge) #undef ge /************/ #define le(X,Y)((X)<=(Y)) RO(le) #undef le /************/ #undef RO /*********************************************************************/ #define OP(N,NAME,O,INFIX)GMAN gman_##NAME(GMAN_DECL(N)) { return new GMAN##NAME(GMAN_ARGS(N)); } #define RUOP(N,O)OP(1,N,O,1) #define RBOP(N,O)OP(2,N,O,1) #include "op.h" GMAN gman_or(GMAN_ARG a, GMAN_ARG b) { return gman__or(a, b); } GMAN gman_and(GMAN_ARG a, GMAN_ARG b) { return gman__and(a, b); } GMAN gman_not(GMAN_ARG a) { return gman__not(a); } /*********************************************************************/ gmv0.9/src/gman/op.h0100744000175200017560000000147207262562137014656 0ustar stephensstepheng/* $Id: op.h,v 1.6 2001/04/04 09:07:43 stephens Exp $ */ #ifndef OP #define OP(NARGS,NAME,OP,INFIX) #endif #ifndef RBOP #define RBOP(N,O) #endif #ifndef RUOP #define RUOP(N,O) #endif OP(2,add,+,1) OP(2,sub,-,1) #ifdef OP_NO_MUL #undef OP_NO_MUL #else OP(2,mul,*,1) #endif OP(2,div,/,1) OP(1,neg,-,1) OP(1,cos,cos,0) OP(1,sin,sin,0) OP(1,tan,tan,0) OP(1,acos,acos,0) OP(1,asin,asin,0) OP(1,atan,atan,0) OP(2,atan2,atan2,0) OP(1,ceil,ceil,0) OP(1,floor,floor,0) OP(1,abs,fabs,0) OP(1,exp,exp,0) OP(1,log,log,0) OP(1,sqrt,sqrt,0) OP(2,mod,fmod,0) OP(2,pow,pow,0) OP(3,_if,?:,1) #ifdef _GMAN_OP_FIX #undef _GMAN_OP_FIX OP(2,and,&,1) OP(2,or,|,1) RUOP(not,!) #else OP(2,_and,&,1) OP(2,_or,|,1) RUOP(_not,!) #endif RBOP(eq,==) RBOP(ne,!=) RBOP(lt,<) RBOP(gt,>) RBOP(le,<=) RBOP(ge,>=) #undef OP #undef RBOP #undef RUOP gmv0.9/src/gman/parse.y0100744000175200017560000003537207263234616015400 0ustar stephensstepheng/* ** $Id: parse.y,v 1.12 2001/04/06 03:35:42 stephens Exp $ */ %{ #ifndef __rcs_id__ #ifndef __rcs_id_gman_parse_y__ #define __rcs_id_gman_parse_y__ static const char __rcs_id_gman_parse_y[] = "$Id: parse.y,v 1.12 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #ifndef YYBISON #error Requires GNU Bison #endif #include #include #include #include #include #include #include #include "gman.h" #define YYSTYPE GMAN typedef struct gman_ident { char *name; /* Identifier name. */ GMAN value; /* Identifier value. */ struct gman_ident *next; /* Linked list. */ } gman_ident; typedef struct gman_ident_scope { char *name; /* Scope's name. */ gman_ident *ident; /* Scope's identifier. */ GMAN value; /* Scope's value. */ gman_ident *variables; /* Variable identifier list. */ gman_ident *functions; /* Function identifier list.. */ int argument_count; /* Argument list. */ struct gman_ident_scope *parent; } gman_ident_scope; typedef struct gman_parse_state { const char *file; /* Filename */ int lineno; /* Line number. */ const char *str; /* String to parse. */ GMAN result; /* Last expression parsed. */ char errorbuf[256]; /* Error buffer. */ jmp_buf jb; /* Catch for error. */ gman_ident_scope *scope; /* Current identifier scope. */ } gman_parse_state; /*********************************************************************/ static gman_ident *ident_new(gman_ident **listp, const char *name) { gman_ident *list = malloc(sizeof(*list)); memset(list, 0, sizeof(*list)); list->name = strcpy(malloc(strlen(name) + 1), name); list->next = *listp; *listp = list; return list; } static gman_ident *ident_find(gman_ident **listp, const char *name) { gman_ident *list = *listp; while ( list ) { if ( strcmp(list->name, name) == 0 ) return list; list = list->next; } return list; } static void ident_free(gman_ident **listp) { gman_ident *list = *listp; while ( list ) { gman_ident *list_next = list->next; free(list->name); free(list); list = list_next; } } static gman_ident_scope *ident_scope_new(gman_ident_scope *parent) { gman_ident_scope *s = malloc(sizeof(*s)); memset(s, 0, sizeof(*s)); s->parent = parent; return s; } static gman_ident_scope *ident_scope_free(gman_ident_scope *s) { gman_ident_scope *s_parent = s->parent; ident_free(&s->variables); ident_free(&s->functions); free(s); return s_parent; } static gman_ident *ident_scope_new_variable(gman_ident_scope *s, const char *name) { gman_ident *id; if ( (id = ident_find(&s->variables, name)) ) return id; return ident_new(&s->variables, name); } static gman_ident *ident_scope_new_function(gman_ident_scope *s, const char *name) { gman_ident *id; if ( (id = ident_find(&s->functions, name)) ) return id; return ident_new(&s->functions, name); } static gman_ident *ident_scope_find_variable(gman_ident_scope *s, const char *name) { gman_ident *id = 0; while ( s ) { if ( (id = ident_find(&s->variables, name)) ) return id; s = s->parent; } return id; } static gman_ident *ident_scope_find_function(gman_ident_scope *s, const char *name) { gman_ident *id = 0; while ( s ) { if ( (id = ident_find(&s->functions, name)) ) return id; s = s->parent; } return id; } /*********************************************************************/ #define YYPURE 1 #define YYPARSE_PARAM pstate #define YYLEX_PARAM pstate #define YYDEBUG 1 #ifdef __GNUC__ #undef __GNUC__ /* bug in bison.simple */ #endif #define YYERROR_VERBOSE 1 static int _yyerror(gman_parse_state *pstate, const char *str) { fprintf(stderr, "gman: %s:%d: error: %s\n", pstate->file, pstate->lineno, str); strcpy(pstate->errorbuf, str); longjmp(pstate->jb, 1); return 1; } #define yyerror(X) _yyerror(pstate, (X)) static int yylex(YYSTYPE *yylval, void *parm); #define PSTATE ((gman_parse_state*) pstate) %} %token gmanp_X %token gmanp_CONST %token gmanp_IDENT %token gmanp_AND %token gmanp_OR %token gmanp_NOT %token gmanp_POW %token gmanp_DOT %token gmanp_CROSS %token gmanp_OR %token gmanp_AND %token gmanp_NOT %token gmanp_EQ %token gmanp_NE %token gmanp_LT %token gmanp_GT %token gmanp_LE %token gmanp_GE %% /* ------------------- syntax rules ------------------------ */ input : statement_list { PSTATE->result = $1; } | error ; statement : function_definition | expression_statement | compound_statement ; /**********************************************************************/ function_definition : '@' identifier '(' { /* Begin new scope with name. */ char *name = (char *) $2; PSTATE->scope = ident_scope_new(PSTATE->scope); PSTATE->scope->name = name; #if 0 fprintf(stderr, "function_def %s(\n", name); #endif } parameter_list_opt ')' '{' { } statement_list_opt { PSTATE->scope->value = $$; #if 0 fprintf(stderr, "function_def = %p\n", PSTATE->scope->value); #endif } '}' { char *name = PSTATE->scope->name; GMAN value = PSTATE->scope->value; PSTATE->scope = ident_scope_free(PSTATE->scope); { gman_ident *func = ident_scope_new_function(PSTATE->scope, name); gman_ref(value); gman_deref(func->value); func->value = value; } free(name); $$ = value; } ; parameter_list_opt : /* NOTHING */ | parameter_list ; parameter_list : parameter | parameter_list ',' parameter ; parameter : identifier { char *name = (char*) $1; gman_ident *id = ident_scope_new_variable(PSTATE->scope, name); #if 0 fprintf(stderr, "parameter; '%s' x(%d)\n", name, PSTATE->scope->argument_count); #endif id->value = gman_x(PSTATE->scope->argument_count ++); free(name); } ; /**********************************************************************/ expression_statement : expression_opt ';' ; compound_statement : '{' { PSTATE->scope = ident_scope_new(PSTATE->scope); } statement_list_opt { PSTATE->scope->value = $$; } '}' { $$ = PSTATE->scope->value; PSTATE->scope = ident_scope_free(PSTATE->scope); #if 0 fprintf(stderr, "compound_statement: "); gman_print_expr(stderr, $$); fprintf(stderr, "\n"); #endif } ; statement_list_opt : /* NOTHING */ { $$ = 0; } | statement_list { #if 0 fprintf(stderr, "statement_list = %p\n", $1); #endif } ; statement_list : statement | statement_list statement { $$ = $2; } ; expression_opt : /* NOTHING */ { $$ = 0; } | expression ; expression : assignment_expression ; assignment_expression : conditional_expression | identifier '=' assignment_expression { char *name = (char *) $1; gman_ident *id; #if 0 fprintf(stderr, "assign: %s = %p ", name, $3); // gman_print_expr(stderr, $3); fprintf(stderr, "\n"); #endif id = ident_scope_new_variable(PSTATE->scope, name); id->value = $3; free(name); $$ = $3; } ; conditional_expression : logical_or_expression | logical_or_expression '?' expression ':' conditional_expression { $$ = gman__if($1, $3, $5); } ; logical_or_expression : logical_and_expression | logical_or_expression gmanp_OR logical_and_expression { $$ = gman_or($1, $3); } ; logical_and_expression : equality_expression | logical_and_expression gmanp_AND equality_expression { $$ = gman_and($1, $3); } ; equality_expression : relational_expression | equality_expression gmanp_EQ relational_expression { $$ = gman_eq($1, $3); } | equality_expression gmanp_NE relational_expression { $$ = gman_ne($1, $3); } ; relational_expression : dot_product_expression | relational_expression gmanp_LT additive_expression { $$ = gman_lt($1, $3); } | relational_expression gmanp_GT additive_expression { $$ = gman_gt($1, $3); } | relational_expression gmanp_LE additive_expression { $$ = gman_le($1, $3); } | relational_expression gmanp_GE additive_expression { $$ = gman_ge($1, $3); } ; dot_product_expression : cross_product_expression | dot_product_expression gmanp_DOT cross_product_expression { $$ = gman_dot($1, $3); } ; cross_product_expression : additive_expression | cross_product_expression gmanp_CROSS additive_expression { $$ = gman_cross($1, $3); } ; additive_expression : multiplicative_expression | additive_expression '+' multiplicative_expression { $$ = gman_add($1, $3); } | additive_expression '-' multiplicative_expression { $$ = gman_sub($1, $3); } ; multiplicative_expression : power_expression | multiplicative_expression '*' power_expression { $$ = gman_mul($1, $3); } | multiplicative_expression '/' power_expression { $$ = gman_div($1, $3); } ; power_expression : unary_expression | power_expression gmanp_POW unary_expression { $$ = gman_pow($1, $3); } ; unary_expression : unary_expression : postfix_expression | '-' unary_expression { $$ = gman_neg($2); } | '+' unary_expression { $$ = $2; } | gmanp_NOT unary_expression { $$ = gman_not($2); } | ; postfix_expression : primary_expression | postfix_expression '[' expression ']' { $$ = gman_p($1, $3); } | expression_call ; expression_call : identifier '(' argument_list ')' { char *name = (char *) $1; GMAN args = $3; gman_ident *func; GMAN result = 0; /* Try function first. */ if ( (func = ident_scope_find_function(PSTATE->scope, name)) ) { result = gman_evalx(func->value, gman_nsubexprs(args), gman_subexprs(args)); } else { result = gman_name_eval(name, gman_nsubexprs(args), gman_subexprs(args)); } if ( ! result ) { char msg[128]; sprintf(msg, "undefined function or operator: '%s'", name); yyerror(msg); } #if 0 fprintf(stderr, "parse ident %s(", name); gman_print_expr(stderr, $3); fprintf(stderr, ") = "); gman_print_expr(stderr, $$); fprintf(stderr, "\n"); #endif free(name); $$ = result; } | x '(' constant ')' { #if 0 fprintf(stderr, "parse x("); gman_print_expr(stderr, $3); fprintf(stderr, ") = "); #endif $$ = gman_x((int) (gman_constant($3)[0])); #if 0 gman_print_expr(stderr, $$); fprintf(stderr, "\n"); #endif } ; argument_list : expression { $$ = gman_cn(1, $1); } | expression ',' argument_list { $$ = gman_cons_c($1, $3); } ; x : gmanp_X ; primary_expression : identifier { char *name = (char*) $1; gman_ident *ident = ident_scope_find_variable(PSTATE->scope, name); if ( ! ident ) { char msg[256]; sprintf(msg, "undefined variable: \"%s\" ", name); yyerror(msg); } $$ = ident->value; } | constant | '(' expression ')' { $$ = $2; } | '(' compound_statement ')' { $$ = $2; } | cartesian_expression | array_expression ; cartesian_expression : '@' '(' expression_list ')' { $$ = $3; } ; array_expression : '@' '[' argument_list ']' { $$ = $3; } ; expression_list : expression | expression ',' expression_list { $$ = gman_cons($1, $3); } ; constant : gmanp_CONST ; identifier : gmanp_IDENT ; %% /* --------------------------------------------------------- */ static int yylex(YYSTYPE *yylval, void *parm) { gman_parse_state *pstate = (void*) parm; const char *s = pstate->str; const char *t; int yychar = 0; again: /* EOF? */ if ( ! *s ) return EOF; /* Eat whitespace. */ while ( isspace(*s) ) { if ( *s == '\n' ) ++ pstate->lineno; s ++; } if ( *s ) { t = s; if ( isdigit(*s) || *s == '.' || ((*s == '-' || *s == '+') && (isdigit(s[1]) || s[1] == '.')) ) { double v; v = strtod(s, &s); *yylval = gman_v(v); yychar = gmanp_CONST; } else if ( isalpha(*s) || *s == '_' ) { while ( isalnum(*s) || *s == '_' ) { ++ s; } if ( s - t == 1 && t[0] == '_' ) { *yylval = 0; yychar = gmanp_X; } else { char *ident = malloc(s - t + 1); memcpy(ident, t, s - t); ident[s - t] = 0; *yylval = (void*) ident; yychar = gmanp_IDENT; } } else { #define T1(X) yychar = X; ++ s #define T2(X) yychar = X; s += 2 switch ( *s ) { case '/': if ( s[1] == '/' ) { /* C++ comment */ s += 2; do { if ( *s == '\n' ) { ++ pstate->lineno; s ++; break; } s ++; } while ( *s ); goto again; } else if ( s[1] == '*' ) { /* C comment */ s += 2; do { if ( s[0] == '*' && s[1] == '/' ) { s += 2; break; } if ( *s == '\n' ) { ++ pstate->lineno; } s ++; } while ( *s ); goto again; } else { T1('/'); } break; case '@': switch ( s[1] ) { case '^': T2(gmanp_POW); break; case '.': T2(gmanp_DOT); break; case '%': T2(gmanp_CROSS); break; default: T1(s[0]); break; } break; case '=': if ( s[1] == '=' ) { T2(gmanp_EQ); } else { T1(s[0]); } break; case '!': if ( s[1] == '=' ) { T2(gmanp_NE); } else { T1(gmanp_NOT); } break; case '<': if ( s[1] == '=' ) { T2(gmanp_LE); } else { T1(gmanp_LT); } break; case '>': if ( s[1] == '=' ) { T2(gmanp_GE); } else { T1(gmanp_GT); } break; case '&': if ( s[1] == '&' ) { T2(gmanp_AND); } break; case '|': if ( s[1] == '|' ) { T2(gmanp_OR); } else { T1(s[0]); } break; default: yychar = *(s ++); break; } } } pstate->str = s; return yychar; } /*********************************************************************/ static GMAN _gman_parse(gman_parse_state *pstate) { pstate->result = 0; pstate->errorbuf[0] = 0; if ( ! pstate->file ) { pstate->file = ""; } if ( ! pstate->lineno ) { pstate->lineno = 1; } pstate->scope = ident_scope_new(pstate->scope); yydebug = 0; if ( ! setjmp(pstate->jb) ) { yyparse(pstate); } ident_scope_free(pstate->scope); yydebug = 0; return pstate->result; } GMAN gman_parse_expr(const char *str) { gman_parse_state pstate; memset(&pstate, 0, sizeof(pstate)); pstate.str = str; return _gman_parse(&pstate); } GMAN gman_parse_file(const char *file) { struct stat st; char *buf; GMAN f; if ( stat(file, &st) ) return 0; buf = malloc(st.st_size + 1); memset(buf, 0, st.st_size + 1); { FILE *fp; if ( (fp = fopen(file, "r")) ) { fread(buf, 1, st.st_size, fp); fclose(fp); } } { gman_parse_state pstate; memset(&pstate, 0, sizeof(pstate)); pstate.file = file; pstate.str = buf; f = _gman_parse(&pstate); } free(buf); return f; } gmv0.9/src/gman/point.cc0100744000175200017560000003063407270171056015524 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_point_cc__ #define __rcs_id_gman_point_cc__ static const char __rcs_id_gman_point_cc[] = "$Id: point.cc,v 1.9 2001/04/21 02:36:30 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #include #include /* strcmp() */ #define C GMANObject /****************************************************************************/ /* How eval caching works: Top-level evaluation setup: gman_point(F, X) -> V 1. The top level eval function gman_point() (gman_pointi() for interval evaluation) creates a eval cache for the top-level expression if one does not already exist. 2. gman_point() creates a parameter value container (GMANXValues) with a unique serial number, if one does not already exist and stores it in the eval cache (GMANObject::_cache->_pointX) . The new parameter value container marks all its parameter values as "changed". (GMANXValues::_xChanged) 3. gman_point(F, X) copies parameter values X into the parameter value container's value array (GMANXValues::_x[]) and marks all changed parameter values as "changed". 4. gman_point(F, X) calls _gman_point(F, F->_cache->_pointX) 5. _gman_point(F, XC) increments a unique evaluation serial number (_current_pointID). This serial number is used for elide evaluation of common subexpressions. 6. _gman_point(F, XC) attaches F's parameter objects (GMANx objects created by gman_x(i)) to the parameter value conatiner by a pointer into the parameter value array. It then stores the parameter container's serial number in the eval cache so this step can be ignored if the same parameter container is used again. 7. _gman_point(F, XC) forces F to evaluate a cache. 8. _gman_point(F, XC) then calls F->point() to evaluate into the cache and returns the cached evaluation value. Recursive expression evaluation: F-point() -> V 9. F->point() will create a cache for F if needed. 10. If F has a cache and the parameter container has changed: 10.1. Then: 10.1.1. Remember the parameter container's serial number 10.1.2. Evaluate into the cache (F->_point(F->_cache->_point)) 10.1.3. And mark F as 'evaluated' by remembering the evaluation serial number (_cache->_pointID = _current_pointID) 10.2. Else, if a parameter that F depends on has changed: 10.2.1. And, if the last evaluation serial number does not match the last evaluation serial number, 10.2.1.1. Evaluate into the cache and mark F as 'evaluated'. 10.2.1.2. Else, return the cached value; since F is a subexpression of more than one expression and has already been evaluated once. 10.3. Else, return the cached value; since the parameter container and any values F depends on have not changed. 11. If F does not have a cache: 11.1. Create a new output buffer. (V = new [noutputs()];) 11.2. Evaluate into the buffer. (F->_point(V);) 11.3. And return the buffer. (return V); F's local evaluation: F->_point(V) 12. First call subexpr[i]->point() -> subexprV[i] on all subexpressions to get cached or new output vectors. 12.1. GMANx::point() returns a pointer into the currently bound parameter container array. 12.2. GMANv::point() returns a pointer into it's value array. 13. Apply the operator and store the value into V. 14. Release any subexpression value vectors (subExprV[i]) by calling subexpr[i]->freePoint(subexprV[i]), if: 14.1. subexprV[i] is not from a parameter expression (gman_x(i)) 14.2. subexprV[i] is not from a constant value (gman_v()) 14.3. subexprV[i] is not from subexpr[i]'s cache. */ GMANCache :: GMANCache() { _pointX = 0; _pointSN = 0; _pointID = 0; _point = 0; _pointXI = 0; _pointSNI = 0; _pointIDI = 0; _pointI = 0; } GMANCache :: ~GMANCache() { delete _pointX; delete _point; delete _pointXI; delete _pointI; } /****************************************************************************/ void C :: freeCaches() { if ( ! _visited ) { _visited = (void*) 1; if ( _cache ) { delete _cache; _cache = 0; } { int n = nsubexprs(); GMAN_REF *e = subexprs(); while ( n -- ) { (*(e ++))->freeCaches(); } } } } void gman_free_caches(GMAN_ARG f) { f->unvisit(); f->freeCaches(); } void C :: invalidateCaches() { if ( ! _visited ) { _visited = (void*) 1; if ( _cache ) { _cache->_pointSN = _cache->_pointSN = 0; } } { int n = nsubexprs(); GMAN_REF *e = subexprs(); while ( n -- ) { (*(e ++))->invalidateCaches(); } } } void gman_invalidate_caches(GMAN_ARG f) { f->unvisit(); f->invalidateCaches(); } /****************************************************************************/ static GMANXValues *_current_xv; static int _current_pointID; #ifndef GMAN_POINT_DEBUG #define GMAN_POINT_DEBUG GMAN_POINT_DEBUG int GMAN_POINT_DEBUG = 0; #endif const GMANValue *C :: point() { GMANValue *v; if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "%p->point(): ", (void*) this); printExpr(stderr); fprintf(stderr, "\n\t"); } noutputs(); /* ** Create a cache if needed */ if ( (_needsCache || _refSubexpr > 1) ) { if ( ! _cache ) { _cache = new GMANCache; } if ( ! _cache->_point ) { _cache->_point = new GMANValue[_noutputs]; } } /* Are we using a cache? */ if ( _cache && _cache->_point ) { /* If the parameter vector has changed */ if ( _cache->_pointSN != _current_xv->_serialNumber ) { if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "filling cache: new xvalues\n"); } _cache->_pointSN = _current_xv->_serialNumber; _point(_cache->_point); _cache->_pointID = _current_pointID; } else /* If a parameter that we depend on has changed */ if (inputs() & _current_xv->_xChanged ) { /* If we've already pointd once during this eval */ if ( _cache->_pointID != _current_pointID ) { if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "filling cache: new eval\n"); } _point(_cache->_point); _cache->_pointID = _current_pointID; } else { if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "using cache: same eval\n"); } } } else { if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "using cache: no changes\n"); } } v = _cache->_point; } else { /* Allocate a new buffer */ v = new GMANValue[noutputs()]; if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "computing new value\n"); } _point(v); } if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "%p->point(): ", (void*) this); printExpr(stderr); fprintf(stderr, " => "); fprintf(stderr, "( "); for ( int i = 0; i < noutputs(); i ++ ) { fprintf(stderr, "%g ", v[i]); } fprintf(stderr, ")\n"); } return v; } void C :: pointFree(const GMANValue *v) { /* delete it if it isn't our cache */ if ( ! (_cache && _cache->_point == v) ) { delete [] (GMANValue*) v; } } inline void gman_xinit(GMANXValues *xv) { static int sn; xv->_serialNumber = ++ sn; for ( int i = 0; i < 32; i ++ ) { xv->_x[i] = 0; } xv->_xChanged = ~0UL; } inline void gman_xset(GMANXValues *xv, int i, GMANValue x) { if ( xv->_x[i] != x ) { xv->_x[i] = x; xv->_xChanged |= 1 << i; } } extern void _gman_xattach(int i, GMANValue *vp); const GMANValue * _gman_point(GMAN_ARG f, GMANXValues *xv) { const GMANValue *f_x; GMANXValues *old = _current_xv; _current_pointID ++; /* Set the x values */ _current_xv = xv; /* Attach xv */ if ( (! f->_cache) || f->_cache->_pointSN != _current_xv->_serialNumber || ! _current_xv->_serialNumber ) { int xi = 0; unsigned long xim = f->inputs(); while ( xim ) { if ( xim & 1 ) { _gman_xattach(xi, _current_xv->_x + xi); } xi ++; xim >>= 1; } } /* Force allocation of a cache */ f->_needsCache = 1; /* Point into cache */ f_x = f->point(); /* Make the xv seem unchanged */ _current_xv->_xChanged = 0; /* Restore old x values */ _current_xv = old; /* Return result */ return f_x; } const GMANValue * gman_point(GMAN_ARG f, int nx, const GMANValue *x) { /* Force calc of f->inputs() now, so cache will not be destroyed. */ f->noutputs(); f->inputs(); if ( ! f->_cache ) { f->_needsCache = 1; f->_cache = new GMANCache; // fprintf(stderr, "%p->_cache = %p\n", (void*) (GMANObject*) f, (void*) f->_cache); } if ( ! f->_cache->_pointX ) { f->_cache->_pointX = new GMANXValues; gman_xinit(f->_cache->_pointX); } if ( x ) { int xi = 0; unsigned long xim = f->inputs(); int xn = nx; while ( xim ) { if ( xim & 1 ) { if ( -- xn < 0 ) break; gman_xset(f->_cache->_pointX, xi, *(x ++)); } xi ++; xim >>= 1; } } return _gman_point(f, f->_cache->_pointX); } /***************************************************************************/ static GMANXIValues *_current_xvI; static int _current_pointIDI; const gintv *C :: pointI() { gintv *v; if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "%p->pointI(): ", (void*) this); printExpr(stderr); fprintf(stderr, "\n\t"); } noutputs(); if ( (_needsCache || _refSubexpr > 1) ) { if ( ! _cache ) { _cache = new GMANCache; } if ( ! _cache->_pointI ) { _cache->_pointI = new gintv[_noutputs]; } } /* Are we using a cache? */ if ( _cache && _cache->_pointI ) { /* If the parameter vector has changed */ if ( _cache->_pointSNI != _current_xvI->_serialNumber ) { if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "filling cache: new xvalues\n"); } _cache->_pointSNI = _current_xvI->_serialNumber; _pointI(_cache->_pointI); _cache->_pointIDI = _current_pointIDI; } else /* If a parameter that we depend on has changed */ if (inputs() & _current_xvI->_xChanged ) { /* If we've already pointd once during this eval */ if ( _cache->_pointIDI != _current_pointIDI ) { if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "filling cache: new eval\n"); } _pointI(_cache->_pointI); _cache->_pointIDI = _current_pointIDI; } else { if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "using cache: same eval\n"); } } } else { if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "using cache: no changes\n"); } } v = _cache->_pointI; } else { /* Allocate a new buffer */ v = new gintv[noutputs()]; if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "computing new value\n"); } _pointI(v); } if ( GMAN_POINT_DEBUG ) { fprintf(stderr, "%p->pointI(): ", (void*) this); printExpr(stderr); fprintf(stderr, " => "); fprintf(stderr, "( "); for ( int i = 0; i < noutputs(); i ++ ) { fprintf(stderr, "[%g %g]", v[i].l, v[i].h); } fprintf(stderr, ")\n"); } return v; } void C :: pointIFree(const gintv *v) { /* delete it if it isn't our cache */ if ( ! (_cache && _cache->_pointI == v) ) { delete [] (gintv*) v; } } #undef C void gman_xiinit(GMANXIValues *xv) { static int sn; xv->_serialNumber = ++ sn; for ( int i = 0; i < 32; i ++ ) { xv->_x[i] = gintv_s(0); } xv->_xChanged = ~0UL; } void gman_xiset(GMANXIValues *xv, int i, gintv x) { if ( xv->_x[i].l != x.l || xv->_x[i].h != x.h ) { xv->_x[i] = x; xv->_xChanged |= 1 << i; } } extern void _gman_xiattach(int i, gintv *vp); const gintv * _gman_pointi(GMAN_ARG f, GMANXIValues *xv) { const gintv *f_x; GMANXIValues *old = _current_xvI; _current_pointIDI ++; /* Set the x values */ _current_xvI = xv; /* Attach xv */ if ( (! f->_cache) || f->_cache->_pointSNI != _current_xvI->_serialNumber || ! _current_xvI->_serialNumber ) { int xi = 0; unsigned long xim = f->inputs(); while ( xim ) { if ( xim & 1 ) { _gman_xiattach(xi, _current_xvI->_x + xi); } xi ++; xim >>= 1; } } /* Force allocation of a cache */ f->_needsCache = 1; /* Point into cache */ f_x = f->pointI(); /* Make the xv seem unchanged */ _current_xvI->_xChanged = 0; /* Restore old x values */ _current_xvI = old; /* Return result */ return f_x; } const gintv * gman_pointi(GMAN_ARG f, int nx, const gintv *x) { if ( ! f->_cache ) { f->_cache = new GMANCache; } if ( ! f->_cache->_pointXI ) { f->_cache->_pointXI = new GMANXIValues; gman_xiinit(f->_cache->_pointXI); } if ( x ) { int xi = 0; unsigned long xim = f->inputs(); int xn = nx; while ( xim ) { if ( xim & 1 ) { if ( -- xn < 0 ) break; gman_xiset(f->_cache->_pointXI, xi, *(x ++)); } xi ++; xim >>= 1; } } return _gman_pointi(f, f->_cache->_pointXI); } /*************************************************************************/ gmv0.9/src/gman/test1.c0100744000175200017560000000603007263234616015265 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_test1_c__ #define __rcs_id_gman_test1_c__ static const char __rcs_id_gman_test1_c[] = "$Id: test1.c,v 1.7 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman.h" #include static void derv(GMAN f, GMAN x) { GMAN g, fg; GMAN d, ds; printf("\n================================================\n"); printf("d/d"); printf(" "); gman_print_expr(stdout, f); printf(" = "); gman_print_expr(stdout, d = gman_derivative(f, x)); printf("\n"); printf(" = "); gman_print_expr(stdout, ds = gman_simplify(d)); printf("\n"); printf("\n================================================\n"); printf("f(x) = "); gman_print_expr(stdout, f); printf("\n"); g = gman_mul(gman_x(1), gman_v(0.5)); printf("g(y) = "); gman_print_expr(stdout, g); printf("\n"); printf("f(g(x)) = "); fg = gman_eval1(f, x, g); gman_print_expr(stdout, fg); printf("\n"); printf("\n================================================\n"); gman_print_archive(stdout, d); gman_deref(g); gman_deref(d); gman_deref(ds); gman_deref(fg); } static void point(GMAN f, GMANValue *x) { int i, no, ni; const GMANValue *fv; const gintv *fvi; gintv xi[5]; printf("\n================================================\n"); gman_print_expr(stdout, f); printf("\n nsubexprs = %d, ninputs = %d\n", gman_nsubexprs(f), gman_ninputs(f)); gman_print_archive(stdout, f); ni = gman_ninputs(f); no = gman_noutputs(f); fv = gman_point(f, ni, x); printf("( "); for ( i = 0; i < ni; i ++ ) { printf("%g, ", x[i]); } printf(") = ("); for ( i = 0; i < no; i ++ ) { printf("%g, ", fv[i]); } printf(")\n"); //printf("\n================================================\n"); //gman_print_expr(stdout, f); //printf("\n"); //gman_print_archive(stdout, f); /* Compute an interval around x */ for ( i = 0; i < ni; i ++ ) { xi[i].l = x[i] - 0.5; xi[i].h = x[i] + 0.5; } fvi = gman_pointi(f, ni, xi); printf("interval ( "); for ( i = 0; i < ni; i ++ ) { printf("[%g, %g], ", xi[i].l, xi[i].h); } printf(") = ("); for ( i = 0; i < no; i ++ ) { printf("[%g %g], ", fvi[i].l, fvi[i].h); } printf(")\n"); } int main(int argc, char **argv) { GMAN u = gman_x(0); GMAN v = gman_x(1); GMAN f = gman_add(u, gman_vn(2, 3.0, 5.0)); GMAN g = gman_sub(v, gman_vn(2, 0.5, 2.0)); GMAN h = gman_mul(u, gman_vn(2, 4.0, 3.0)); GMAN y = gman_mul(f, f); GMAN x = gman_add(g, y); GMANValue xv[3]; gman_length(x); xv[0] = 7.0; xv[1] = 11.0; point(x, xv); xv[0] = 23.0; point(x, xv); derv(u, u); derv(v, u); derv(f, u); derv(g, u); derv(h, u); derv(gman_mul(u, u), u); derv(gman_mul(h, h), u); derv(gman_mul(f, u), u); derv(gman_mul(g, v), u); { char buf[256]; while ( fprintf(stderr, "gman> "), fflush(stderr), fgets(buf, sizeof(buf) - 1, stdin) ) { GMAN f = gman_parse_expr(buf); if ( f ) { point(f, xv); } } fprintf(stderr, "\n"); } return 0; } gmv0.9/src/gman/test1.gdb0100644000175200017560000000035606663227023015600 0ustar stephensstepheng# $Id: test1.gdb,v 1.2 1999/02/19 09:25:39 stephensk Exp $ break main #break GMANmul::_simplify #break gman_is_constant_value #break gman_simplify #break gman_pointi #break GMANx::pointI #break gintv_add #break gintv_sub #break gintv_mul gmv0.9/src/gman/user.cc0100644000175200017560000000046407031472675015354 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_user_cc__ #define __rcs_id_gman_user_cc__ static const char __rcs_id_gman_user_cc[] = "$Id: user.cc,v 1.3 1999/12/26 20:08:29 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include "gman/user.hh" #define C GMANU C :: C () { _f = (GMANObject*) 0; } #undef C gmv0.9/src/gman/user.hh0100744000175200017560000000712607263234616015367 0ustar stephensstepheng#ifndef _gman_user_hh #define _gman_user_hh #ifndef __rcs_id__ #ifndef __rcs_id_gman_user_hh__ #define __rcs_id_gman_user_hh__ static const char __rcs_id_gman_user_hh[] = "$Id: user.hh,v 1.7 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman/obj.hh" /* ** A GMANU object allows a function to be recomputed after ** a symbolic eval (or input/output dimension change) ** by calling a "compute" procedure. */ class GMANU : public GMANObject { protected: GMAN_REF _f; /* _f is the "computed" function */ GMAN &f() { if ( ! (GMANObject*) _f ) { _f = _compute(); } return * (GMAN*) &_f; /* YUCK */ } public: GMANU(); virtual void uu_init() { }; void u_init() { f(); uu_init(); } int _compute_noutputs() { return f()->noutputs(); } void _point(GMANValue *v) { return f()->_point(v); } const GMANValue *point() { return f()->point(); } void pointFree(const GMANValue *v) { return f()->pointFree(v); } void _pointI(gintv *v) { return f()->_pointI(v); } const gintv *pointI() { return f()->pointI(); } void pointIFree(const gintv *v) { return f()->pointIFree(v); } GMAN _derivative(GMAN_ARG x) { return gman_derivative(f(), x); } GMAN simplify() { return f()->simplify(); } GMAN _simplify() { return f()->_simplify(); } virtual GMAN _compute() = 0; /* This function computes _f */ }; #define _GMANN_0() 0 #define _GMANN_1(t1,n1) 1 #define _GMANN_2(t1,n1,t2,n2) 2 #define _GMANN_3(t1,n1,t2,n2,t3,n3) 3 #define GMAN_USER_N_PARAMS(P)_GMANN##P #define _GMAN1P_0() #define _GMAN1P_1(t1,n1) n1 #define _GMAN1P_2(t1,n1,t2,n2) n1 #define _GMAN1P_3(t1,n1,t2,n2,t3,n3) n1 #define GMAN_USER_1ST_PARAM(P)_GMAN1P##P #define _GMANUP_0() () #define _GMANUP_1(t1,n1) (t1 n1) #define _GMANUP_2(t1,n1,t2,n2) (t1 n1, t2 n2) #define _GMANUP_3(t1,n1,t2,n2,t3,n3) (t1 n1, t2 n2, t3 n3) #define GMAN_USER_PARAMS(P)_GMANUP##P #define _GMANUP__0() () #define _GMANUP__1(t1,n1) (const t1 &_##n1) #define _GMANUP__2(t1,n1,t2,n2) (const t1 &_##n1, const t2 &_##n2) #define _GMANUP__3(t1,n1,t2,n2,t3,n3) (const t1 &_##n1, const t2 &_##n2, const t3 &_##n3) #define GMAN_USER_PARAMS_(P)_GMANUP_##P #define _GMANUN_0() () #define _GMANUN_1(t1,n1) (n1) #define _GMANUN_2(t1,n1,t2,n2) (n1, n2) #define _GMANUN_3(t1,n1,t2,n2,t3,n3) (n1, n2, n3) #define GMAN_USER_NAMES(P)_GMANUN##P #define _GMANUI_0() #define _GMANUI_1(t1,n1) n1=_##n1 #define _GMANUI_2(t1,n1,t2,n2) n1=_##n1; n2=_##n2; #define _GMANUI_3(t1,n1,t2,n2,t3,n3) n1=_##n1; n2=_##n2; n3=_##n3; #define GMAN_USER_INITS(P)_GMANUI##P #define _GMANUVI_0() #define _GMANUVI_1(t1,n1) n1=__v[0] #define _GMANUVI_2(t1,n1,t2,n2) n1=__v[0]; n2=__v[1] #define _GMANUVI_3(t1,n1,t2,n2,t3,n3) n1=__v[0]; n2=__v[1]; n3=__v[2] #define GMAN_USER_V_INITS(P)_GMANUVI##P #define _GMANUD_0() #define _GMANUD_1(t1,n1) t1 n1; #define _GMANUD_2(t1,n1,t2,n2) t1 n1; t2 n2; #define _GMANUD_3(t1,n1,t2,n2,t3,n3) t1 n1; t2 n2; t3 n3; #define GMAN_USER_DATA(P)_GMANUD##P #define GMAN_USER(NAME,PARAMS) \ GMAN_CLASS(NAME); \ /* extern "C" GMAN gman_##NAME GMAN_USER_PARAMS(PARAMS); */ \ class GMAN##NAME : public GMANU { \ public: \ GMAN_USER_DATA(PARAMS) \ GMAN##NAME GMAN_USER_PARAMS_(PARAMS) { GMAN_USER_INITS(PARAMS); u_init(); } \ GMAN##NAME (int __n, GMAN *__v) { GMAN_USER_V_INITS(PARAMS); u_init(); } \ GMAN_CLASS_METHOD(NAME); \ int nsubexprs() { return GMAN_USER_N_PARAMS(PARAMS); } \ GMAN_REF *subexprs() { return &GMAN_USER_1ST_PARAM(PARAMS); } \ GMAN _compute() #define GMAN_USER_END(NAME,PARAMS) \ }; \ GMAN_CLASS_END(NAME); \ /* extern "C" GMAN gman_##NAME GMAN_USER_PARAMS(PARAMS) { return new GMAN##NAME GMAN_USER_NAMES(PARAMS); } */ #endif gmv0.9/src/gman/v.cc0100744000175200017560000000705707263471177014654 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_v_cc__ #define __rcs_id_gman_v_cc__ static const char __rcs_id_gman_v_cc[] = "$Id: v.cc,v 1.9 2001/04/07 01:50:55 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #include #include /* memcmp() */ #include #define C GMANv GMAN_CLASS(v); class C : public GMANObject { public: int _i; int _nv; GMANValue *_v; short _copy; #define COPYV(DST,SRC,N) for ( int i = 0; i < (N); ++ i ) (DST)[i] = (SRC)[i] void v_init(int nv, GMANValue *v, int copy) { _copy = copy; _nv = nv; if ( _copy > 0 ) { _v = (GMANValue*) malloc(sizeof(_v[0]) * _nv); COPYV(_v, v, _nv); } else { _v = v; } // fprintf(stderr, "%p->v_init(): ", this, v); _visited = 0; printArchive(stderr, * (int*) &_visited); } C(int nv, GMANValue *v, int copy = 1) { v_init(nv, v, copy); } C(int n, GMAN *v) { assert(n == 1); v_init(gman_noutputs(v[0]), (GMANValue*) gman_constant(v[0]), 1); } GMAN_CLASS_METHOD(v); int _compute_noutputs() { return _nv; } ~C() { if ( _copy ) { free(_v); } } int equal(GMAN_ARG _x) { C *x = (C*) (GMANObject*) _x; if ( _nv != x->_nv ) return 0; return memcmp(_v, x->_v, sizeof(_v[0]) * _nv) == 0; } void printExpr(FILE *fp) { fprintf(fp, "%s(", name(cls())); for ( int i = 0; i < _nv; ) { fprintf(fp, "%g", _v[i]); if ( ++ i < _nv ) fprintf(fp, ", "); } fprintf(fp, ")"); } void printArchive(FILE *fp, int &id) { if ( ! _visited ) { _visited = (void*) id ++; fprintf(fp, "%d %s %d ", (int) _visited, name(cls()), _nv); for ( int i = 0; i < _nv; ++ i ) { fprintf(fp, "%.24g ", _v[i]); } fprintf(fp, "\n"); } } void _point(GMANValue *v) { // fprintf(stderr, "%p->_point(%p): ", this, v); _visited = 0; printArchive(stderr, * (int*) &_visited); COPYV(v, _v, _nv); } const GMANValue *point() { // fprintf(stderr, "%p->point(): ", this); _visited = 0; printArchive(stderr, * (int*) &_visited); return _v; } void pointFree(const GMANValue *) { } #undef COPYV /*******************************************************/ void _pointI(gintv *_vi) { for ( int i = 0; i < _nv; ++ i ) { _vi[i].l = _vi[i].h = _v[i]; } } const gintv *pointI() { gintv *_vi = new gintv[_nv]; for ( int i = 0; i < _nv; ++ i ) { _vi[i].l = _vi[i].h = _v[i]; } return _vi; } void pointIFree(gintv *v) { delete [] v; } /*******************************************************/ GMAN _derivative(GMAN_ARG x) { return gman_vc(_nv, 0.0); } GMAN simplify() { return this; } GMAN _simplify() { return this; } }; GMAN_CLASS_END(v); GMANCls *GMANv_cls() { return GMANv::_cls(); } /*********************************************************************/ GMAN gman_vv(int nv, GMANValue *v, int copy) { return new C(nv, v, copy); } GMAN gman_v(GMANValue x) { return new C(1, &x, 1); } GMAN gman_vc(int nv, GMANValue x) { GMANValue *v = (GMANValue*) malloc(sizeof(v[0]) * nv); for ( int i = 0; i < nv; ++ i ) { v[i] = x; } return new C(nv, v, 0); } GMAN gman_vn(int nv, GMANValue x, ...) { va_list vap; GMAN f; GMANValue *v; int i; va_start(vap, x); assert(nv > 0); v = (GMANValue *) malloc(sizeof(v[0]) * nv); v[0] = x; for ( i = 1; i < nv; ++ i ) { v[i] = va_arg(vap, GMANValue); } f = gman_vv(nv, v, 0); va_end(vap); return f; } #undef C gmv0.9/src/gman/vec.cc0100744000175200017560000000356107263234616015153 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_vec_cc__ #define __rcs_id_gman_vec_cc__ static const char __rcs_id_gman_vec_cc[] = "$Id: vec.cc,v 1.7 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman/user.hh" int _gman_vec; GMAN_USER(dot,_2(GMAN_REF,u, GMAN_REF,v)) { GMAN _0 = gman_v(0); GMAN x = gman_mul(gman_p(u, _0), gman_p(v, _0)); int n = gman_noutputs(u); if ( n != gman_noutputs(v) ) { /* _gman_error() */ } for ( int i = 1; i < n; i ++ ) { GMAN _i = gman_v((GMANValue) i); x = gman_add(x, gman_mul(gman_p(u, _i), gman_p(v, _i))); } return x; } GMAN_USER_END(dot,_2(GMAN_REF,u, GMAN_REF,v)); GMAN gman_dot(GMAN_ARG u, GMAN_ARG v) { return new GMANdot(u,v); } GMAN_USER(length,_1(GMAN_REF,v)) { return gman_sqrt(gman_dot(v, v)); } GMAN_USER_END(length,_1(GMAN_REF,v)) GMAN gman_length(GMAN_ARG v) { return new GMANlength(v); } GMAN_USER(cross,_2(GMAN_REF,u, GMAN_REF,v)) { GMAN a[3]; GMAN b[3]; GMAN c[3]; static GMAN i[3]; if ( ! i[0] ) { i[0] = gman_v(0); i[1] = gman_v(1); i[2] = gman_v(2); } b[0] = gman_p(u, i[0]); b[1] = gman_p(u, i[1]); b[2] = gman_p(u, i[2]); c[0] = gman_p(v, i[0]); c[1] = gman_p(v, i[1]); c[2] = gman_p(v, i[2]); a[0] = gman_sub(gman_mul(b[1], c[2]), gman_mul(b[2], c[1])); a[1] = gman_sub(gman_mul(b[2], c[0]), gman_mul(b[0], c[2])); a[2] = gman_sub(gman_mul(b[0], c[1]), gman_mul(b[1], c[0])); return gman_cv(3, a, 1); } GMAN_USER_END(cross,_2(GMAN_REF,u, GMAN_REF,v)); GMAN gman_cross(GMAN_ARG u, GMAN_ARG v) { return new GMANcross(u, v); } GMAN_USER(normalize,_1(GMAN_REF,v)) { GMAN len = gman_length(v); return gman__if(gman_ne(v, gman_v(0)), gman_div(v, len), v); } GMAN_USER_END(normalize,_1(GMAN_REF,v)); GMAN gman_normalize(GMAN_ARG v) { return new GMANnormalize(v); } GMAN _gman_normalize(GMAN_ARG x) { return gman_normalize(x); } gmv0.9/src/gman/x.cc0100744000175200017560000000561407263234616014646 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_x_cc__ #define __rcs_id_gman_x_cc__ static const char __rcs_id_gman_x_cc[] = "$Id: x.cc,v 1.8 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "obj.hh" #include "context.hh" #include #include #define C GMANx GMAN_CLASS(x); class C : public GMANObject { public: int _i; GMANValue *_v; /* Current point value binding */ GMANValue _vd; /*@ Default point value. */ gintv *_vi; /* Current interval point value binding */ gintv _vid; /*@ Default interval point value. */ GMAN _e; /* Current symbolic eval binding. */ void x_init(int i) { _i = i; _vd = 0; _v = &_vd; _vid.l = _vid.h = 0; _vi = &_vid; _e = 0; init(i); } C(int i) { x_init(i); } C(int n, GMAN *v) { assert(n == 1); int i = (int) (gman_constant(v[0]))[0]; x_init(i); } GMAN_CLASS_METHOD(x); virtual int _compute_noutputs() { return 1; } void printExpr(FILE *fp) { fprintf(fp, "%s(%d)", name(cls()), _i); } void printArchive(FILE *fp, int &id) { if ( ! _visited ) { _visited = (void*) id ++; fprintf(fp, "%d %s %d\n", (int) _visited, name(cls()), _i); } } GMAN _derivative(GMAN_ARG x) { #if 0 fprintf(stderr, "%p->_derivative(%p)\n", this, x); #endif if ( (GMANObject*) this == (GMANObject*) x ) { static GMAN_REF one; if ( ! (GMANObject*) one ) { one = gman_vn(1, 1.0); } #if 0 fprintf(stderr, "1\n"); #endif return one; } else { static GMAN_REF zero; if ( ! (GMANObject*) zero ) { zero = gman_vn(1, 0.0); } #if 0 fprintf(stderr, "0\n"); #endif return zero; } } GMAN _evaluate() { return _e ? (GMAN) _e : (GMAN) this; } GMAN simplify() { return this; } GMAN _simplify() { return this; } void _point(GMANValue *v) { v[0] = *_v; } const GMANValue *point() { return _v; } void pointFree(const GMANValue *x) { } void _pointI(gintv *v) { v[0] = *_vi; } const gintv *pointI() { return _vi; } void pointIFree(const gintv *v) { } }; GMAN_CLASS_END(x); /*********************************************************************/ GMAN gman_x(int i) { C **_xs = gman_context_current()->_x; assert(0 <= i && i < GMAN_X_I_MAX); if ( ! _xs[i] ) { _xs[i] = new C(i); gman_ref(_xs[i]); /* Force global reference. */ } return _xs[i]; } void _gman_xattach(int i, GMANValue *vp) { GMAN f = gman_x(i); C *x = (C*) (GMANObject*) f; x->_v = vp; } void _gman_xiattach(int i, gintv *vp) { GMAN f = gman_x(i); C *x = (C*) (GMANObject*) f; x->_vi = vp; } void _gman_xeattach(GMAN_ARG _x, GMAN_ARG e, GMAN *es) { C *x = (C*) (GMANObject*) _x; if ( es ) es[x->_i] = x->_e; x->_e = e; } void _gman_xereattach(GMAN_ARG _x, GMAN *es) { C *x = (C*) (GMANObject*) _x; x->_e = es[x->_i]; } #undef C gmv0.9/src/gman/test3.cc0100644000175200017560000000002407263154731015425 0ustar stephensstepheng#include "test2.c" gmv0.9/src/gman/TODO0100744000175200017560000000032107251474400014540 0ustar stephensstepheng-+- outline-mode -+- * Abstract parameter sets in gman_inputs(). ** gman_inputs(F) should return a GMAN_INPUT_SET ** gman_input(F,0) should return the first gman_x(i) parameter. * Add gman_solve() operator. gmv0.9/src/gman/parse.c0100744000175200017560000013142207263225165015342 0ustar stephensstepheng /* A Bison parser, made from parse.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ #define gmanp_X 257 #define gmanp_CONST 258 #define gmanp_IDENT 259 #define gmanp_AND 260 #define gmanp_OR 261 #define gmanp_NOT 262 #define gmanp_POW 263 #define gmanp_DOT 264 #define gmanp_CROSS 265 #define gmanp_EQ 266 #define gmanp_NE 267 #define gmanp_LT 268 #define gmanp_GT 269 #define gmanp_LE 270 #define gmanp_GE 271 #line 4 "parse.y" #ifndef __rcs_id__ #ifndef __rcs_id_gman_parse_y__ #define __rcs_id_gman_parse_y__ static const char __rcs_id_gman_parse_y[] = "$Id: parse.y,v 1.10 2001/03/07 18:05:37 stephens Exp $"; #endif #endif /* __rcs_id__ */ #ifndef YYBISON #error Requires GNU Bison #endif #include #include #include #include #include #include #include #include "gman.h" #define YYSTYPE GMAN typedef struct gman_ident { char *name; /* Identifier name. */ GMAN value; /* Identifier value. */ struct gman_ident *next; /* Linked list. */ } gman_ident; typedef struct gman_ident_scope { char *name; /* Scope's name. */ gman_ident *ident; /* Scope's identifier. */ GMAN value; /* Scope's value. */ gman_ident *variables; /* Variable identifier list. */ gman_ident *functions; /* Function identifier list.. */ int argument_count; /* Argument list. */ struct gman_ident_scope *parent; } gman_ident_scope; typedef struct gman_parse_state { const char *file; /* Filename */ int lineno; /* Line number. */ const char *str; /* String to parse. */ GMAN result; /* Last expression parsed. */ char errorbuf[256]; /* Error buffer. */ jmp_buf jb; /* Catch for error. */ gman_ident_scope *scope; /* Current identifier scope. */ } gman_parse_state; /*********************************************************************/ static gman_ident *ident_new(gman_ident **listp, const char *name) { gman_ident *list = malloc(sizeof(*list)); memset(list, 0, sizeof(*list)); list->name = strcpy(malloc(strlen(name) + 1), name); list->next = *listp; *listp = list; return list; } static gman_ident *ident_find(gman_ident **listp, const char *name) { gman_ident *list = *listp; while ( list ) { if ( strcmp(list->name, name) == 0 ) return list; list = list->next; } return list; } static void ident_free(gman_ident **listp) { gman_ident *list = *listp; while ( list ) { gman_ident *list_next = list->next; free(list->name); free(list); list = list_next; } } static gman_ident_scope *ident_scope_new(gman_ident_scope *parent) { gman_ident_scope *s = malloc(sizeof(*s)); memset(s, 0, sizeof(*s)); s->parent = parent; return s; } static gman_ident_scope *ident_scope_free(gman_ident_scope *s) { gman_ident_scope *s_parent = s->parent; ident_free(&s->variables); ident_free(&s->functions); free(s); return s_parent; } static gman_ident *ident_scope_new_variable(gman_ident_scope *s, const char *name) { gman_ident *id; if ( (id = ident_find(&s->variables, name)) ) return id; return ident_new(&s->variables, name); } static gman_ident *ident_scope_new_function(gman_ident_scope *s, const char *name) { gman_ident *id; if ( (id = ident_find(&s->functions, name)) ) return id; return ident_new(&s->functions, name); } static gman_ident *ident_scope_find_variable(gman_ident_scope *s, const char *name) { gman_ident *id; while ( s ) { if ( (id = ident_find(&s->variables, name)) ) return id; s = s->parent; } return id; } static gman_ident *ident_scope_find_function(gman_ident_scope *s, const char *name) { gman_ident *id; while ( s ) { if ( (id = ident_find(&s->functions, name)) ) return id; s = s->parent; } return id; } /*********************************************************************/ #define YYPURE 1 #define YYPARSE_PARAM pstate #define YYLEX_PARAM pstate #define YYDEBUG 1 #ifdef __GNUC__ #undef __GNUC__ /* bug in bison.simple */ #endif #define YYERROR_VERBOSE 1 static int _yyerror(gman_parse_state *pstate, const char *str) { fprintf(stderr, "gman: %s:%d: error: %s\n", pstate->file, pstate->lineno, str); strcpy(pstate->errorbuf, str); longjmp(pstate->jb, 1); return 1; } #define yyerror(X) _yyerror(pstate, (X)) static int yylex(YYSTYPE *yylval, void *parm); #define PSTATE ((gman_parse_state*) pstate) #ifndef YYSTYPE #define YYSTYPE int #endif #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 128 #define YYFLAG -32768 #define YYNTBASE 34 #define YYTRANSLATE(x) ((unsigned)(x) <= 271 ? yytranslate[x] : 73) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 20, 30, 28, 23, 29, 2, 31, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 27, 24, 2, 25, 2, 26, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 32, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 21, 2, 22, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 2, 4, 6, 8, 10, 11, 12, 13, 25, 26, 28, 30, 34, 36, 39, 40, 41, 47, 48, 50, 52, 55, 56, 58, 60, 62, 66, 68, 74, 76, 80, 82, 86, 88, 92, 96, 98, 102, 106, 110, 114, 116, 120, 122, 126, 128, 132, 136, 138, 142, 146, 148, 152, 153, 155, 158, 161, 164, 165, 167, 172, 174, 179, 184, 186, 190, 192, 194, 196, 200, 204, 206, 208, 213, 218, 220, 224, 226 }; static const short yyrhs[] = { 48, 0, 1, 0, 36, 0, 43, 0, 44, 0, 0, 0, 0, 18, 72, 19, 37, 40, 20, 21, 38, 47, 39, 22, 0, 0, 41, 0, 42, 0, 41, 23, 42, 0, 72, 0, 49, 24, 0, 0, 0, 21, 45, 47, 46, 22, 0, 0, 48, 0, 35, 0, 48, 35, 0, 0, 50, 0, 51, 0, 52, 0, 72, 25, 51, 0, 53, 0, 53, 26, 50, 27, 52, 0, 54, 0, 53, 7, 54, 0, 55, 0, 54, 6, 55, 0, 56, 0, 55, 12, 56, 0, 55, 13, 56, 0, 57, 0, 56, 14, 59, 0, 56, 15, 59, 0, 56, 16, 59, 0, 56, 17, 59, 0, 58, 0, 57, 10, 58, 0, 59, 0, 58, 11, 59, 0, 60, 0, 59, 28, 60, 0, 59, 29, 60, 0, 61, 0, 60, 30, 61, 0, 60, 31, 61, 0, 62, 0, 61, 9, 62, 0, 0, 63, 0, 29, 62, 0, 28, 62, 0, 8, 62, 0, 0, 67, 0, 63, 32, 50, 33, 0, 64, 0, 72, 19, 65, 20, 0, 66, 19, 71, 20, 0, 50, 0, 50, 23, 65, 0, 3, 0, 72, 0, 71, 0, 19, 50, 20, 0, 19, 44, 20, 0, 68, 0, 69, 0, 18, 19, 70, 20, 0, 18, 32, 65, 33, 0, 50, 0, 50, 23, 70, 0, 4, 0, 5, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 256, 259, 263, 265, 266, 272, 283, 287, 294, 310, 312, 315, 317, 320, 336, 341, 345, 349, 361, 364, 373, 375, 380, 383, 386, 391, 393, 414, 416, 420, 422, 426, 428, 432, 434, 436, 440, 442, 444, 446, 448, 452, 454, 458, 460, 464, 466, 468, 472, 474, 476, 480, 482, 486, 487, 489, 491, 493, 495, 498, 500, 502, 505, 538, 555, 558, 563, 567, 579, 580, 582, 584, 585, 589, 595, 601, 603, 608, 612 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","gmanp_X", "gmanp_CONST","gmanp_IDENT","gmanp_AND","gmanp_OR","gmanp_NOT","gmanp_POW","gmanp_DOT", "gmanp_CROSS","gmanp_EQ","gmanp_NE","gmanp_LT","gmanp_GT","gmanp_LE","gmanp_GE", "'@'","'('","')'","'{'","'}'","','","';'","'='","'?'","':'","'+'","'-'","'*'", "'/'","'['","']'","input","statement","function_definition","@1","@2","@3","parameter_list_opt", "parameter_list","parameter","expression_statement","compound_statement","@4", "@5","statement_list_opt","statement_list","expression_opt","expression","assignment_expression", "conditional_expression","logical_or_expression","logical_and_expression","equality_expression", "relational_expression","dot_product_expression","cross_product_expression", "additive_expression","multiplicative_expression","power_expression","unary_expression", "postfix_expression","expression_call","argument_list","x","primary_expression", "cartesian_expression","array_expression","expression_list","constant","identifier", NULL }; #endif static const short yyr1[] = { 0, 34, 34, 35, 35, 35, 37, 38, 39, 36, 40, 40, 41, 41, 42, 43, 45, 46, 44, 47, 47, 48, 48, 49, 49, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 55, 56, 56, 56, 56, 56, 57, 57, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 62, 62, 62, 62, 62, 62, 63, 63, 63, 64, 64, 65, 65, 66, 67, 67, 67, 67, 67, 67, 68, 69, 70, 70, 71, 72 }; static const short yyr2[] = { 0, 1, 1, 1, 1, 1, 0, 0, 0, 11, 0, 1, 1, 3, 1, 2, 0, 0, 5, 0, 1, 1, 2, 0, 1, 1, 1, 3, 1, 5, 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, 1, 3, 0, 1, 2, 2, 2, 0, 1, 4, 1, 4, 4, 1, 3, 1, 1, 1, 3, 3, 1, 1, 4, 4, 1, 3, 1, 1 }; static const short yydefact[] = { 0, 2, 67, 78, 79, 54, 0, 54, 16, 54, 54, 21, 3, 4, 5, 54, 0, 24, 25, 26, 28, 30, 32, 34, 37, 42, 44, 46, 49, 52, 55, 62, 0, 60, 72, 73, 69, 68, 0, 58, 68, 54, 54, 0, 0, 0, 54, 57, 56, 22, 15, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 54, 54, 76, 0, 65, 0, 6, 71, 70, 17, 54, 31, 0, 33, 35, 36, 38, 39, 40, 41, 43, 45, 47, 48, 50, 51, 53, 0, 0, 0, 27, 54, 74, 54, 75, 10, 0, 54, 61, 64, 63, 77, 66, 0, 11, 12, 14, 18, 29, 0, 0, 7, 13, 54, 8, 0, 9, 0, 0, 0 }; static const short yydefgoto[] = { 126, 11, 12, 104, 122, 124, 112, 113, 114, 13, 14, 46, 105, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 74, 32, 33, 34, 35, 72, 36, 40 }; static const short yypact[] = { 120, -32768,-32768,-32768,-32768, 155, -1, 149,-32768, 155, 155, -32768,-32768,-32768,-32768, 53, -13,-32768,-32768,-32768, -4, 13, 8, 34, 4, 14, 26, 29, 19,-32768, 3, -32768, 44,-32768,-32768,-32768,-32768, 20, 11,-32768, 47, 155, 155, 49, 12, 24, 5,-32768,-32768,-32768,-32768, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 74, 155, 155, 17, 60, 64, 61,-32768,-32768,-32768,-32768, 88, 13, 76, 8, 34, 34, 26, 26, 26, 26, 14, 26, 29, 29, 19, 19,-32768, 68, 85, 91,-32768, 155, -32768, 155,-32768, 103, 92, 155,-32768,-32768,-32768,-32768, -32768, 93, 95,-32768,-32768,-32768,-32768, 94, 103,-32768, -32768, 5,-32768, 98,-32768, 140, 142,-32768 }; static const short yypgoto[] = {-32768, -14,-32768,-32768,-32768,-32768,-32768,-32768, 28,-32768, 136, -32768,-32768, 23, 156,-32768, -5, 96, 55,-32768, 104, 109, 21,-32768, 105, 27, 36, 25, 7,-32768,-32768, -64,-32768,-32768,-32768,-32768, 69, 107, 0 }; #define YYLAST 184 static const short yytable[] = { 37, 49, 45, 51, 4, 98, 43, 37, 2, 3, 4, 50, 39, 5, 60, 37, 47, 48, 41, 53, 54, 55, 52, 6, 7, 61, 8, -19, 66, -23, 41, 42, 76, 9, 10, 67, 71, 73, 111, 69, 100, 37, 37, 42, 77, 70, 37, 81, 56, 57, 58, 59, 37, -1, 62, 63, 2, 3, 4, 64, 65, 5, 96, 68, 73, 49, 69, 37, 75, 37, 37, 6, 7, 95, 8, 83, 84, -23, 3, 37, 101, 9, 10, 85, 86, 87, 88, 102, 90, 93, 94, 2, 3, 4, 103, 71, 5, 73, 91, 92, 37, 107, 37, 106, 115, 108, 6, 7, 4, 8, -20, 109, -23, 118, 116, 120, 9, 10, 119, 115, 125, 1, 37, 2, 3, 4, -54, -54, 5, -54, -54, -54, -54, -54, -54, -54, -54, -54, 6, 7, 127, 8, 128, 44, -23, 123, -54, 121, 9, 10, -54, -54, 2, 3, 4, 80, 15, 5, 2, 3, 4, 117, 82, 5, 0, 89, 99, 38, 7, 110, 8, 0, 0, 38, 7, 97, 0, 9, 10, 0, 0, 0, 0, 9, 10 }; static const short yycheck[] = { 0, 15, 7, 7, 5, 69, 6, 7, 3, 4, 5, 24, 5, 8, 10, 15, 9, 10, 19, 6, 12, 13, 26, 18, 19, 11, 21, 22, 9, 24, 19, 32, 20, 28, 29, 32, 41, 42, 102, 19, 23, 41, 42, 32, 20, 25, 46, 52, 14, 15, 16, 17, 52, 0, 28, 29, 3, 4, 5, 30, 31, 8, 67, 19, 69, 79, 19, 67, 19, 69, 70, 18, 19, 66, 21, 54, 55, 24, 4, 79, 20, 28, 29, 56, 57, 58, 59, 23, 61, 64, 65, 3, 4, 5, 33, 100, 8, 102, 62, 63, 100, 33, 102, 27, 104, 20, 18, 19, 5, 21, 22, 20, 24, 20, 22, 21, 28, 29, 23, 119, 22, 1, 122, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 21, 0, 7, 24, 122, 26, 119, 28, 29, 30, 31, 3, 4, 5, 51, 0, 8, 3, 4, 5, 106, 53, 8, -1, 60, 70, 18, 19, 100, 21, -1, -1, 18, 19, 68, -1, 28, 29, -1, -1, -1, -1, 28, 29 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" /* This file comes from bison-1.28. */ /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ #ifndef YYSTACK_USE_ALLOCA #ifdef alloca #define YYSTACK_USE_ALLOCA #else /* alloca not defined */ #ifdef __GNUC__ #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) #define YYSTACK_USE_ALLOCA #include #else /* not sparc */ /* We think this test detects Watcom and Microsoft C. */ /* This used to test MSDOS, but that is a bad idea since that symbol is in the user namespace. */ #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) #if 0 /* No need for malloc.h, which pollutes the namespace; instead, just don't use alloca. */ #include #endif #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) /* I don't know what this was needed for, but it pollutes the namespace. So I turned it off. rms, 2 May 1997. */ /* #include */ #pragma alloca #define YYSTACK_USE_ALLOCA #else /* not MSDOS, or __TURBOC__, or _AIX */ #if 0 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, and on HPUX 10. Eventually we can turn this on. */ #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #endif /* __hpux */ #endif #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc */ #endif /* not GNU C */ #endif /* alloca not defined */ #endif /* YYSTACK_USE_ALLOCA not defined */ #ifdef YYSTACK_USE_ALLOCA #define YYSTACK_ALLOC alloca #else #define YYSTACK_ALLOC malloc #endif /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Define __yy_memcpy. Note that the size argument should be passed with type unsigned int, because that is what the non-GCC definitions require. With GCC, __builtin_memcpy takes an arg of type size_t, but it can handle unsigned int. */ #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (to, from, count) char *to; char *from; unsigned int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *to, char *from, unsigned int count) { register char *t = to; register char *f = from; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 217 "/usr/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #ifdef __cplusplus #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM #define YYPARSE_PARAM_DECL #else /* not __cplusplus */ #define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #endif /* not __cplusplus */ #else /* not YYPARSE_PARAM */ #define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ #ifdef YYPARSE_PARAM int yyparse (void *); #else int yyparse (void); #endif #endif int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; int yyfree_stacks = 0; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; #ifndef YYSTACK_USE_ALLOCA yyfree_stacks = 1; #endif yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss, (char *)yyss1, size * (unsigned int) sizeof (*yyssp)); yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * (unsigned int) sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls, (char *)yyls1, size * (unsigned int) sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 1: #line 258 "parse.y" { PSTATE->result = yyvsp[0]; ; break;} case 6: #line 274 "parse.y" { /* Begin new scope with name. */ char *name = (char *) yyvsp[-1]; PSTATE->scope = ident_scope_new(PSTATE->scope); PSTATE->scope->name = name; #if 0 fprintf(stderr, "function_def %s(\n", name); #endif ; break;} case 7: #line 284 "parse.y" { ; break;} case 8: #line 287 "parse.y" { PSTATE->scope->value = yyval; #if 0 fprintf(stderr, "function_def = %p\n", PSTATE->scope->value); #endif ; break;} case 9: #line 294 "parse.y" { char *name = PSTATE->scope->name; GMAN value = PSTATE->scope->value; PSTATE->scope = ident_scope_free(PSTATE->scope); { gman_ident *func = ident_scope_new_function(PSTATE->scope, name); gman_ref(value); gman_deref(func->value); func->value = value; } free(name); yyval = value; ; break;} case 14: #line 322 "parse.y" { char *name = (char*) yyvsp[0]; gman_ident *id = ident_scope_new_variable(PSTATE->scope, name); #if 0 fprintf(stderr, "parameter; '%s' x(%d)\n", name, PSTATE->scope->argument_count); #endif id->value = gman_x(PSTATE->scope->argument_count ++); free(name); ; break;} case 16: #line 343 "parse.y" { PSTATE->scope = ident_scope_new(PSTATE->scope); ; break;} case 17: #line 345 "parse.y" { PSTATE->scope->value = yyval; ; break;} case 18: #line 349 "parse.y" { yyval = PSTATE->scope->value; PSTATE->scope = ident_scope_free(PSTATE->scope); #if 0 fprintf(stderr, "compound_statement: "); gman_print_expr(stderr, yyval); fprintf(stderr, "\n"); #endif ; break;} case 19: #line 363 "parse.y" { yyval = 0; ; break;} case 20: #line 365 "parse.y" { #if 0 fprintf(stderr, "statement_list = %p\n", yyvsp[0]); #endif ; break;} case 22: #line 376 "parse.y" { yyval = yyvsp[0]; ; break;} case 23: #line 382 "parse.y" { yyval = 0; ; break;} case 27: #line 394 "parse.y" { char *name = (char *) yyvsp[-2]; gman_ident *id; #if 0 fprintf(stderr, "assign: %s = %p ", name, yyvsp[0]); // gman_print_expr(stderr, $3); fprintf(stderr, "\n"); #endif id = ident_scope_new_variable(PSTATE->scope, name); id->value = yyvsp[0]; free(name); yyval = yyvsp[0]; ; break;} case 29: #line 417 "parse.y" { yyval = gman__if(yyvsp[-4], yyvsp[-2], yyvsp[0]); ; break;} case 31: #line 423 "parse.y" { yyval = gman_or(yyvsp[-2], yyvsp[0]); ; break;} case 33: #line 429 "parse.y" { yyval = gman_and(yyvsp[-2], yyvsp[0]); ; break;} case 35: #line 435 "parse.y" { yyval = gman_eq(yyvsp[-2], yyvsp[0]); ; break;} case 36: #line 437 "parse.y" { yyval = gman_ne(yyvsp[-2], yyvsp[0]); ; break;} case 38: #line 443 "parse.y" { yyval = gman_lt(yyvsp[-2], yyvsp[0]); ; break;} case 39: #line 445 "parse.y" { yyval = gman_gt(yyvsp[-2], yyvsp[0]); ; break;} case 40: #line 447 "parse.y" { yyval = gman_le(yyvsp[-2], yyvsp[0]); ; break;} case 41: #line 449 "parse.y" { yyval = gman_ge(yyvsp[-2], yyvsp[0]); ; break;} case 43: #line 455 "parse.y" { yyval = gman_dot(yyvsp[-2], yyvsp[0]); ; break;} case 45: #line 461 "parse.y" { yyval = gman_cross(yyvsp[-2], yyvsp[0]); ; break;} case 47: #line 467 "parse.y" { yyval = gman_add(yyvsp[-2], yyvsp[0]); ; break;} case 48: #line 469 "parse.y" { yyval = gman_sub(yyvsp[-2], yyvsp[0]); ; break;} case 50: #line 475 "parse.y" { yyval = gman_mul(yyvsp[-2], yyvsp[0]); ; break;} case 51: #line 477 "parse.y" { yyval = gman_div(yyvsp[-2], yyvsp[0]); ; break;} case 53: #line 483 "parse.y" { yyval = gman_pow(yyvsp[-2], yyvsp[0]); ; break;} case 56: #line 490 "parse.y" { yyval = gman_neg(yyvsp[0]); ; break;} case 57: #line 492 "parse.y" { yyval = yyvsp[0]; ; break;} case 58: #line 494 "parse.y" { yyval = gman_not(yyvsp[0]); ; break;} case 61: #line 501 "parse.y" { yyval = gman_p(yyvsp[-3], yyvsp[-1]); ; break;} case 63: #line 507 "parse.y" { char *name = (char *) yyvsp[-3]; GMAN args = yyvsp[-1]; gman_ident *func; GMAN result = 0; /* Try function first. */ if ( (func = ident_scope_find_function(PSTATE->scope, name)) ) { result = gman_evalx(func->value, gman_nsubexprs(args), gman_subexprs(args)); } else { result = gman_name_eval(name, gman_nsubexprs(args), gman_subexprs(args)); } if ( ! result ) { char msg[128]; sprintf(msg, "undefined function or operator: '%s'", name); yyerror(msg); } #if 0 fprintf(stderr, "parse ident %s(", name); gman_print_expr(stderr, yyvsp[-1]); fprintf(stderr, ") = "); gman_print_expr(stderr, yyval); fprintf(stderr, "\n"); #endif free(name); yyval = result; ; break;} case 64: #line 539 "parse.y" { #if 0 fprintf(stderr, "parse x("); gman_print_expr(stderr, yyvsp[-1]); fprintf(stderr, ") = "); #endif yyval = gman_x((int) (gman_constant(yyvsp[-1])[0])); #if 0 gman_print_expr(stderr, yyval); fprintf(stderr, "\n"); #endif ; break;} case 65: #line 557 "parse.y" { yyval = gman_cn(1, yyvsp[0]); ; break;} case 66: #line 559 "parse.y" { yyval = gman_cons_c(yyvsp[-2], yyvsp[0]); ; break;} case 68: #line 569 "parse.y" { char *name = (char*) yyvsp[0]; gman_ident *ident = ident_scope_find_variable(PSTATE->scope, name); if ( ! ident ) { char msg[256]; sprintf(msg, "undefined variable: \"%s\" ", name); yyerror(msg); } yyval = ident->value; ; break;} case 70: #line 581 "parse.y" { yyval = yyvsp[-1]; ; break;} case 71: #line 583 "parse.y" { yyval = yyvsp[-1]; ; break;} case 74: #line 591 "parse.y" { yyval = yyvsp[-1]; ; break;} case 75: #line 597 "parse.y" { yyval = yyvsp[-1]; ; break;} case 77: #line 604 "parse.y" { yyval = gman_cons(yyvsp[-2], yyvsp[0]); ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 543 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; yyacceptlab: /* YYACCEPT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 0; yyabortlab: /* YYABORT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 1; } #line 616 "parse.y" /* --------------------------------------------------------- */ static int yylex(YYSTYPE *yylval, void *parm) { gman_parse_state *pstate = (void*) parm; const char *s = pstate->str; const char *t; int yychar = 0; again: /* EOF? */ if ( ! *s ) return EOF; /* Eat whitespace. */ while ( isspace(*s) ) { if ( *s == '\n' ) ++ pstate->lineno; s ++; } if ( *s ) { t = s; if ( isdigit(*s) || *s == '.' || ((*s == '-' || *s == '+') && (isdigit(s[1]) || s[1] == '.')) ) { double v; v = strtod(s, &s); *yylval = gman_v(v); yychar = gmanp_CONST; } else if ( isalpha(*s) || *s == '_' ) { while ( isalnum(*s) || *s == '_' ) { ++ s; } if ( s - t == 1 && t[0] == '_' ) { *yylval = 0; yychar = gmanp_X; } else { char *ident = malloc(s - t + 1); memcpy(ident, t, s - t); ident[s - t] = 0; *yylval = (void*) ident; yychar = gmanp_IDENT; } } else { #define T1(X) yychar = X; ++ s #define T2(X) yychar = X; s += 2 switch ( *s ) { case '/': if ( s[1] == '/' ) { /* C++ comment */ s += 2; do { if ( *s == '\n' ) { ++ pstate->lineno; s ++; break; } s ++; } while ( *s ); goto again; } else if ( s[1] == '*' ) { /* C comment */ s += 2; do { if ( s[0] == '*' && s[1] == '/' ) { s += 2; break; } if ( *s == '\n' ) { ++ pstate->lineno; } s ++; } while ( *s ); goto again; } else { T1('/'); } break; case '@': switch ( s[1] ) { case '^': T2(gmanp_POW); break; case '.': T2(gmanp_DOT); break; case '%': T2(gmanp_CROSS); break; default: T1(s[0]); break; } break; case '=': if ( s[1] == '=' ) { T2(gmanp_EQ); } else { T1(s[0]); } break; case '!': if ( s[1] == '=' ) { T2(gmanp_NE); } else { T1(gmanp_NOT); } break; case '<': if ( s[1] == '=' ) { T2(gmanp_LE); } else { T1(gmanp_LT); } break; case '>': if ( s[1] == '=' ) { T2(gmanp_GE); } else { T1(gmanp_GT); } break; case '&': if ( s[1] == '&' ) { T2(gmanp_AND); } break; case '|': if ( s[1] == '|' ) { T2(gmanp_OR); } else { T1(s[0]); } break; default: yychar = *(s ++); break; } } } pstate->str = s; return yychar; } /*********************************************************************/ static GMAN _gman_parse(gman_parse_state *pstate) { pstate->result = 0; pstate->errorbuf[0] = 0; if ( ! pstate->file ) { pstate->file = ""; } if ( ! pstate->lineno ) { pstate->lineno = 1; } pstate->scope = ident_scope_new(pstate->scope); yydebug = 0; if ( ! setjmp(pstate->jb) ) { yyparse(pstate); } ident_scope_free(pstate->scope); yydebug = 0; return pstate->result; } GMAN gman_parse_expr(const char *str) { gman_parse_state pstate; memset(&pstate, 0, sizeof(pstate)); pstate.str = str; return _gman_parse(&pstate); } GMAN gman_parse_file(const char *file) { struct stat st; char *buf; GMAN f; if ( stat(file, &st) ) return 0; buf = malloc(st.st_size + 1); memset(buf, 0, st.st_size + 1); { FILE *fp; if ( (fp = fopen(file, "r")) ) { fread(buf, 1, st.st_size, fp); fclose(fp); } } { gman_parse_state pstate; memset(&pstate, 0, sizeof(pstate)); pstate.file = file; pstate.str = buf; f = _gman_parse(&pstate); } free(buf); return f; } gmv0.9/src/gman/mat_mul.c0100744000175200017560000000165007251515730015662 0ustar stephensstepheng{ int am = gman_nrows(a); int an = gman_ncolumns(a); int bm = gman_nrows(b); int bn = gman_ncolumns(b); int cm = am; int cn = bn; #if 0 fprintf(stderr, "A[%d][%d] * B[%d][%d] = C[%d][%d]\n", am, an, bm, bn, cm, cn); #endif assert(an == bm); #ifndef A #define A(i,j) av[(i) * an + (j)] #endif #ifndef B #define B(i,j) bv[(i) * bn + (j)] #endif #ifndef C #define C(i,j) cv[(i) * cn + (j)] #endif { int i; for ( i = 0; i < cm; ++ i ) { int j; for ( j = 0; j < cn; ++ j ) { int k; VALUE s; #ifndef mul #define mul(a,b,c) (a) = (b) * (c) #endif #ifndef add #define add(a,b,c) (a) = (b) + (c) #endif mul(s, A(i, 0), B(0, j)); for ( k = 1; k < an; ++ k ) { VALUE m; mul(m, A(i, k), B(k, j)); add(s, s, m); } #if 0 fprintf(stderr, "C(%d,%d)=%g\n", i, j, s); #endif C(i, j) = s; } } } #undef add #undef mul #undef VALUE #undef A #undef B #undef C } gmv0.9/src/gman/mv/0040755000175200017560000000000007262477632014514 5ustar stephensstephenggmv0.9/src/gman/parsetest.c0100744000175200017560000000145607263234616016246 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_parsetest_c__ #define __rcs_id_gman_parsetest_c__ static const char __rcs_id_gman_parsetest_c[] = "$Id: parsetest.c,v 1.4 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman.h" #include static int parse_and_print(const char *file) { GMAN f; f = gman_parse_file(file); if ( f ) { GMAN s; fprintf(stdout, "file \"%s\"\n", file); gman_print_expr(stdout, f); fprintf(stdout, "\n"); fprintf(stdout, "simplified\n"); s = gman_simplify(f); gman_print_expr(stdout, gman_simplify(f)); fprintf(stdout, "\n"); gman_deref(s); } gman_deref(f); return 0; } int main(int argc, char **argv) { int i; for ( i = 1; i < argc; ++ i ) { parse_and_print(argv[i]); } return 0; } gmv0.9/src/gman/context.cc0100744000175200017560000000155007263227413016053 0ustar stephensstepheng #include "context.hh" #include #define C gman_context C :: C () { memset(_x, 0, sizeof(_x)); } #undef C /*************************************************************/ /* Context Control */ static gman_context *cc = new gman_context; static stack cc_stack; gman_context *gman_context_create() { return new gman_context; } gman_context *gman_context_current() { return cc; } void gman_context_begin(gman_context *cntx) { cc_stack.push(cc); cc = cntx; } void gman_context_end() { cc = cc_stack.top(); cc_stack.pop(); } /*************************************************************/ /* Named objects */ GMAN gman_named(const char *name) { string _name = name; return cc->named(_name); } GMAN gman_set_name(const char *name, GMAN_ARG x) { string _name = name; cc->set_name(_name, x); return x; } gmv0.9/src/gman/context.hh0100744000175200017560000000110507263227363016065 0ustar stephensstepheng#ifndef _gman_CONTEXT_HH #define _gman_CONTEXT_HH #include "gman.h" #include #include #include class GMANx; class gman_context { private: typedef map _named_t; _named_t _named; public: GMANx *_x[GMAN_X_I_MAX]; map _top_level; public: gman_context(); ~gman_context(); GMAN named(const string &n) { _named_t::iterator i = _named.find(n); return i != _named.end() ? (GMAN) i->second : (GMAN) 0; } void set_name(const string &n, GMAN_ARG x) { _named[n] = x; } }; #endif gmv0.9/src/gman/funcs.c0100744000175200017560000001247207263223337015350 0ustar stephensstepheng#include "funcs.h" #include /* M_PI */ #define PI M_PI GMAN gman_clamp(GMAN x, GMAN low, GMAN high) { x = gman__if(gman_lt(x, low), low, gman__if(gman_gt(x, high), high, x)); return x; } GMAN gman_lerp(GMAN x0, GMAN x1, GMAN t) { // gman_attribute_set(x0, "type", "*") // gman_attribute_set(x1, "type", "*") // gman_attribute_set(t, "type", "*") return gman_add(x0, gman_mul(gman_sub(x1, x0), t)); } GMAN gman_project(GMAN x, GMAN x0, GMAN x1) { GMAN x1_x0 = gman_sub(x1, x0); GMAN norm_x1_x0 = gman_length(x1_x0); GMAN normalize_x1_x0 = gman_normalize(norm_x1_x0); return gman_dot( gman_sub(x, x0), normalize_x1_x0); } GMAN gman_lerp_inverse(GMAN x0, GMAN x1, GMAN x) { GMAN x1_x0 = gman_sub(x1, x0); GMAN norm_x1_x0 = gman_length(x1_x0); GMAN normalize_x1_x0 = gman__if(norm_x1_x0, gman_div(x1_x0, norm_x1_x0), x1_x0); return gman_div( gman_dot( gman_sub(x, x0), normalize_x1_x0), norm_x1_x0); } GMAN gman_cube(GMAN u, GMAN v) { return 0; } GMAN gman_cylinder(GMAN u, GMAN v) /*@ Bi-parametric unit cylinder at (0,0,0). */ { GMAN theta = gman_mul(u, gman_v(PI * 2)); GMAN cos_theta = gman_cos(theta); GMAN sin_theta = gman_sin(theta); GMAN x = cos_theta; GMAN y = sin_theta; GMAN z = gman_add(gman_mul(v, gman_v(2)), gman_v(-1)); // gman_attribute_set(result, "type", "point"); // gman_attribute_set(u, "type", "u"); // gman_attribute_set(v, "type", "v"); x = gman_cn(3, x, y, z); return x; } GMAN gman_cone(GMAN u, GMAN v) /*@ Bi-parametric unit cone at (0,0,0). */ { GMAN theta = gman_mul(u, gman_v(PI * 2)); GMAN cos_theta = gman_cos(theta); GMAN sin_theta = gman_sin(theta); GMAN x = gman_mul(v, cos_theta); GMAN y = gman_mul(v, sin_theta); GMAN z = v; // gman_attribute_set(result, "type", "point[3]"); // gman_attribute_set(u, "type", "u"); // gman_attribute_set(v, "type", "v"); x = gman_cn(3, x, y, z); return x; } GMAN gman_sphere(GMAN u, GMAN v) /*@ Bi-parametric unit sphere at (0,0,0). */ { GMAN theta = gman_mul(u, gman_v(PI * 2)); GMAN phi = gman_mul(v, gman_v(PI)); GMAN cos_theta = gman_cos(theta); GMAN sin_theta = gman_sin(theta); GMAN cos_phi = gman_cos(phi); GMAN sin_phi = gman_sin(phi); GMAN x = gman_mul(sin_phi, cos_theta); GMAN y = gman_mul(sin_phi, sin_theta); GMAN z = gman_neg(cos_phi); // gman_attribute_set(result, "type", "point[3]"); // gman_attribute_set(u, "type", "u"); // gman_attribute_set(v, "type", "v"); x = gman_cn(3, x, y, z); return x; } #define P(x,y) gman_p(x, gman_v(y)) GMAN gman_translate_3d(GMAN pnt) { return gman_matrix(gman_cn(3, gman_vn(12, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0), pnt, gman_vn(1, 1.0)), 4, 4); // gman_attribute_set(result, "type", "matrix[4][4]"); // gman_attribute_set(pnt, "type", "vector[3]"); } GMAN gman_scale_3d(GMAN sx, GMAN sy, GMAN sz) { GMAN _0 = gman_v(0.0); GMAN _1 = gman_v(1.0); if ( ! sx ) { sx = _1; } if ( ! sy ) { sy = _1; } if ( ! sz ) { sz = _1; } return gman_matrix( gman_cn(16, sx, _0, _0, _0, _0, sy, _0, _0, _0, _0, sz, _0, _0, _0, _0, _1), 4, 4); // gman_attribute_set(result, "type", "matrix[4][4]"); // gman_attribute_set(sx, "type", "scalar"); // gman_attribute_set(sy, "type", "scalar"); // gman_attribute_set(sz, "type", "scalar"); } GMAN gman_rotate_3d(GMAN axis, GMAN angle) { return 0; } GMAN gman_transform_3d(GMAN p3, GMAN t44) { GMAN p4 = gman_cn(2, p3, gman_v(1.0)); GMAN p4tw = gman_mul(p4, t44); GMAN w = P(p4tw, 4); GMAN p4t = gman__if(w, gman_div(p4tw, w), p4tw); p4t = gman_cn(3, P(p4t, 0), P(p4t, 1), P(p4t, 2)); // gman_attribute_set(result, "type", "point[3]"); // gman_attribute_set(t44, "type", "matrix[4][4]"); // gman_attribute_set(p3, "type", "point[3]"); return p4t; } #undef P GMAN gman_taper(GMAN f, GMAN x0, GMAN s0, GMAN x1, GMAN s1) { GMAN t = gman_lerp_inverse(x0, x1, f); GMAN t_clamp = gman_clamp(t, gman_v(0), gman_v(1)); GMAN f_proj = gman_lerp(x0, x1, t); GMAN f_proj_x = gman_sub(f, f_proj); f_proj_x = gman_mul(f_proj_x, gman_lerp(s0, s1, t_clamp)); f_proj_x = gman_add(f_proj, f_proj_x); // gman_attribute_set(f, "type", "point"); // gman_attribute_set(x0, "type", "point"); // gman_attribute_set(s0, "type", "scalar"); // gman_attribute_set(x1, "type", "point"); // gman_attribute_set(s1, "type", "scalar"); return f_proj_x; } GMAN gman_bend(GMAN f, GMAN x0, GMAN x1, GMAN x2, GMAN r) { GMAN t = gman_lerp_inverse(x0, x1, f); GMAN t_clamp = gman_clamp(t, gman_v(0), gman_v(1)); GMAN f_proj = gman_lerp(x0, x1, t); GMAN f_proj_x = gman_sub(f, f_proj); // gman_attribute_set(f, "type", "point"); // gman_attribute_set(x0, "type", "point"); // gman_attribute_set(x1, "type", "point"); // gman_attribute_set(x2, "type", "point"); // gman_attribute_set(r, "type", "scalar"); return 0; } GMAN gman_blend(GMAN f0, GMAN x0, GMAN f1, GMAN x1) { GMAN t = gman_lerp_inverse(x0, x1, f0); t = gman_clamp(t, gman_v(0), gman_v(1)); // gman_attribute_set(f0, "type", "point"); // gman_attribute_set(x0, "type", "point"); // gman_attribute_set(f1, "type", "point"); // gman_attribute_set(x1, "type", "point"); return gman_lerp(f0, f1, t); } gmv0.9/src/gman/funcs.h0100744000175200017560000000160607263777012015356 0ustar stephensstepheng#ifndef _gman_funcs_h #define _gman_funcs_h #include "gman.h" #ifdef __cplusplus extern "C" { #endif /* General Functions. */ extern GMAN gman_clamp(GMAN f, GMAN min, GMAN max); extern GMAN gman_lerp(GMAN x0, GMAN x1, GMAN t); extern GMAN gman_lerp_inverse(GMAN x0, GMAN x1, GMAN f); /* Geometry Generators. */ extern GMAN gman_cube(GMAN u, GMAN v); extern GMAN gman_cylinder(GMAN u, GMAN v); extern GMAN gman_cone(GMAN u, GMAN v); extern GMAN gman_sphere(GMAN u, GMAN v); /* Matrix Transformations. */ extern GMAN gman_translate_3d(GMAN vector3); extern GMAN gman_scale_3d(GMAN sx, GMAN sy, GMAN sz); extern GMAN gman_rotate_3d(GMAN axis3, GMAN angle); extern GMAN gman_transform_3d(GMAN p3, GMAN t44); /* Deformations. */ extern GMAN gman_taper(GMAN f, GMAN x0, GMAN s0, GMAN x1, GMAN s1); extern GMAN gman_blend(GMAN f0, GMAN x0, GMAN f1, GMAN x1); #ifdef __cplusplus } #endif #endif gmv0.9/src/gman/interval.cc0100744000175200017560000000444307263234616016222 0ustar stephensstepheng#ifndef __rcs_id__ #ifndef __rcs_id_gman_interval_cc__ #define __rcs_id_gman_interval_cc__ static const char __rcs_id_gman_interval_cc[] = "$Id: interval.cc,v 1.3 2001/04/06 03:35:42 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gman.h" #include "obj.hh" #include /****************************************************************************/ int _gman_interval; /* Linkage reference. */ #define C GMANmid GMAN_CLASS(mid); class C : public GMANObject { GMAN_REF _f; public: C(GMAN_ARG x) { _f = x; } C(int i, GMAN *xp) { assert(i == 1); _f = xp[0]; } GMAN_CLASS_METHOD(mid); int _compute_noutputs() { return _f->noutputs(); } int nsubexprs() { return 1; } GMAN_REF *subexprs() { return &_f; } void _point(GMANValue *v) { const GMANValue *v0 = _f->point(); int i = _noutputs; while ( -- i >= 0 ) { v[i] = v0[i]; } _f->pointFree(v0); } void _pointI(gintv *v) { const gintv *v0 = _f->pointI(); int i = _noutputs; while ( -- i >= 0 ) { v[i].l = v[i].h = gintv_m(&v0[i]); } _f->pointIFree(v0); } GMAN _derivative(GMAN_ARG x) { return gman_mid(_gman_d(_f, x)); } }; GMAN_CLASS_END(mid); GMAN gman_mid(GMAN_ARG f) { return new C(f); } #undef C /****************************************************************************/ #define C GMANwidth GMAN_CLASS(width); class C : public GMANObject { GMAN_REF _f; public: C(GMAN_ARG x) { _f = x; } C(int i, GMAN *xp) { assert(i == 1); _f = xp[0]; } GMAN_CLASS_METHOD(width); int _compute_noutputs() { return _f->noutputs(); } int nsubexprs() { return 1; } GMAN_REF *subexprs() { return &_f; } void _point(GMANValue *v) { // const GMANValue *v0 = _f->point(); int i = _noutputs; while ( -- i >= 0 ) { v[i] = 0; } // _f->pointFree(v0); } void _pointI(gintv *v) { const gintv *v0 = _f->pointI(); int i = _noutputs; while ( -- i >= 0 ) { v[i].l = v[i].h = gintv_w(&v0[i]); } _f->pointIFree(v0); } GMAN _derivative(GMAN_ARG x) { return gman_width(_gman_d(_f, x)); } }; GMAN_CLASS_END(width); GMAN gman_width(GMAN_ARG f) { return new C(f); } #undef C /****************************************************************************/ gmv0.9/src/gman/multiloop.h0100744000175200017560000000504207262415713016256 0ustar stephensstepheng#ifndef _gman_MULTILOOP_H #define _gman_MULTILOOP_H typedef struct gman_multiloop_state { #define gman_multiloop_state_STATE \ int ndims; \ int *i; \ const int *start; \ const int *stop; \ const int *step; \ int run gman_multiloop_state_STATE; } gman_multiloop_state; #define gman_multiloop_init(state, NDIMS, START, STOP) \ do { \ int __i; \ (state).ndims = (NDIMS); \ (state).start = (START); \ (state).stop = (STOP); \ (state).i = alloca(sizeof((state).i[0]) * (state).ndims); \ for ( __i = 0; __i < (state).ndims; ++ __i ) { \ (state).i[__i] = (state).start ? (state).start[__i] : 0; \ } \ (state).run = 1; \ } while(0) #define gman_multiloop_continue(state) (state).run #define gman_multiloop_next(state) \ do { \ int __i; \ (state).run = 0; \ for ( __i = 0; __i < (state).ndims; ++ __i ) { \ if ( ++ (state).i[__i] < (state).stop[__i] ) { \ (state).run = 1; \ break; \ } \ (state).i[__i] = (state).start ? (state).start[__i] : 0; \ } \ } while (0) /*********************************************************************/ typedef struct gman_multiloop_double_state { gman_multiloop_state_STATE; double *d; const double *dstart; const double *dstop; } gman_multiloop_double_state; #define gman_multiloop_double_init(state, NDIMS, START, STOP, VSTART, VSTOP) \ do { \ int __i; \ gman_multiloop_init(state, NDIMS, START, STOP); \ (state).dstart = (VSTART); \ (state).dstop = (VSTOP); \ (state).d = alloca(sizeof((state).d[0]) * (state).ndims); \ for ( __i = 0; __i < (state).ndims; ++ __i ) { \ (state).d[__i] = (state).dstart ? (state).dstart[__i] : 0; \ } \ } while(0) #define gman_multiloop_double_continue(state) (state).run #define gman_multiloop_double_next(state) \ do { \ int __i; \ (state).run = 0; \ for ( __i = 0; __i < (state).ndims; ++ __i ) { \ if ( ++ (state).i[__i] < (state).stop[__i] ) { \ double __t = ((double) ((state).i[__i] - ((state).start ? (state).start[__i] : 0))) / ((state).stop[__i] - ((state).start ? (state).start[__i] : 0) - 1); \ /* if ( 0 ) fprintf(stderr, "t[%d] = %g\n", __i, __t); */ \ (state).d[__i] = ((state).dstart ? (state).dstart[__i] : 0) * (__t - 1) \ + ((state).dstop ? (state).dstop[__i] : 1) * __t; \ /* if ( 0 ) fprintf(stderr, "d[%d] = %g\n", __i, (state).d[__i]); */ \ (state).run = 1; \ break; \ } \ (state).i[__i] = (state).start ? (state).start[__i] : 0; \ (state).d[__i] = (state).dstart ? (state).dstart[__i] : 0; \ } \ } while (0) #endif gmv0.9/src/gman/table.c0100744000175200017560000001100307262415713015306 0ustar stephensstepheng#include "table.h" #include #include #include int gman_table_load(gman_table *table, const char *file) { return -1; } void gman_table_init(gman_table *table) { int axis; size_t scale = 1; for ( axis = 0; axis < table->ndims; ++ axis ) { scale *= table->dims[axis]; } table->size = scale; } void gman_table_destroy(gman_table *table) { free(table->dims); free(table->values); free(table); } GMANValue *gman_table_index(gman_table *table, int ni, const int *index) { int axis; size_t scale = 1; size_t offset = 0; for ( axis = 0; axis < ni && axis < table->ndims - 1; ++ axis ) { int j = index[axis] < 0 ? 0 : index[axis] >= table->dims[axis + 1] ? table->dims[axis + 1] - 1 : index[axis]; scale *= table->dims[axis]; offset += scale * j; } return table->values + offset; } static void printia(int n, const int *a) { int i; for ( i = 0; i < n; ++ i ) { fprintf(stdout, "%d ", a[i]); } } static void printda(int n, const double *a) { int i; for ( i = 0; i < n; ++ i ) { fprintf(stdout, "%g ", a[i]); } } static void gman_table_lerp(gman_table *table, int ni, int *index, const GMANValue *t, int level, GMANValue *output) { GMANValue *t0, *t1; assert(level >= 0); if ( level ) { /* Get lower edge. */ gman_table_lerp(table, ni, index, t, level - 1, t0 = malloc(sizeof(t0[0]) * table->dims[0])); /* Get upper edge. */ ++ index[level]; gman_table_lerp(table, ni, index, t, level - 1, t1 = malloc(sizeof(t1[0]) * table->dims[0])); -- index[level]; } else { t0 = gman_table_index(table, ni, index); /* Get upper edge. */ ++ index[0]; t1 = gman_table_index(table, ni, index); -- index[0]; } /* lerp */ { GMANValue tt = t[level]; GMANValue tt1 = 1 - tt; int i; for ( i = 0; i < table->dims[0]; ++ i ) { output[i] = t0[i] * tt1 + t1[i] * tt; } } #if 0 fprintf(stderr, "lerp(%d, %d, %g): ", level, index[level], t[level]); printia(table->ndims - 1, index); fprintf(stderr, " = "); printda(table->dims[0], output); fprintf(stderr, "\n"); #endif if ( level ) { free(t1); free(t0); } } GMANValue *gman_table_value(gman_table *table, int ni, const GMANValue *u, GMANValue *output) { if ( ! output ) { output = malloc(sizeof(output)[0] * table->dims[0]); } /* p[0][0] p[0][1] p[1][0] p[1][1] p = lerp(t[1], lerp(t[0], p[0][0], p[0][1]), lerp(t[0], p[1][0], p[1][1])); */ /* Calculate tensor indices and lerp values. */ { int n = table->ndims; int *index = malloc(sizeof(index[0]) * n); GMANValue *t = malloc(sizeof(t[0]) * n); int i; for ( i = 0; i < n; ++ i ) { GMANValue uu = i >= ni ? 0 : u[i] < 0 ? 0 : u[i] <= 1 ? u[i] : 1; GMANValue tt = (table->dims[i + 1] - 1) * uu; index[i] = tt; t[i] = tt - index[i]; } gman_table_lerp(table, table->ndims - 1, index, t, ni - 1, output); free(t); free(index); } return output; } #ifdef UNIT_TEST #include "multiloop.h" void *GC_malloc(size_t size) { #ifdef malloc #undef malloc #endif return malloc(size); } void GC_free(void *p) { #ifdef free #undef free #endif free(p); } int main(int argc, char **argv) { int ndims = // 1 + 3 ; int dims[] = { // 1, 2, 3, 4 }; GMANValue values[] = { 0, 0, 1, 0, 2, 0, 0, 1, 1, 1, 2, 1, 0, 2, 1, 2, 2, 2, 0, 3, 1, 3, 2, 3 }; gman_table _table, *table = &_table; table->ndims = ndims; table->dims = dims; table->values = values; /* Test multiloop and table index. */ { gman_multiloop_state ls; gman_multiloop_init(ls, table->ndims - 1, 0, table->dims + 1); do { GMANValue *v = gman_table_index(table, ls.ndims, ls.i); printia(ls.ndims, ls.i); printf(" = "); printda(table->dims[0], v); printf("\n"); gman_multiloop_next(ls); } while ( gman_multiloop_continue(ls) ); } /* Test lerp. */ { int start[] = { 0, 0, 0, 0 }; int stop[] = { 4, 4, 4, 4 }; gman_multiloop_double_state ls; gman_multiloop_double_init(ls, table->ndims - 1, start, stop, 0, 0); do { GMANValue *v = gman_table_value(table, ls.ndims, ls.d, 0); printia(ls.ndims, ls.i); printda(ls.ndims, ls.d); printf(" = "); printda(table->dims[0], v); printf("\n"); free(v); gman_multiloop_double_next(ls); } while ( gman_multiloop_double_continue(ls) ); } return 0; } #endif gmv0.9/src/gman/table.h0100744000175200017560000000103207262415713015314 0ustar stephensstepheng#ifndef _gman_table_h #define _gman_table_h #include "gman.h" /* GMANValue */ #include /* size_t */ typedef struct gman_table { int ndims; int *dims; GMANValue *values; size_t size; } gman_table; void gman_table_destroy(gman_table *table); void gman_table_init(gman_table *table); int gman_table_load(gman_table *table, const char *file); GMANValue *gman_table_index(gman_table *table, int ni, const int *i); GMANValue *gman_table_value(gman_table *table, int ni, const GMANValue *i, GMANValue *output); #endif gmv0.9/src/gman/malloc.c0100744000175200017560000000047707262554267015513 0ustar stephensstepheng#include "gman/malloc.h" #ifdef _GMAN_GC #ifdef malloc #undef malloc #endif void *malloc(size_t s) { return GC_malloc(s); } #ifdef free #undef free #endif void free(void *p) { return GC_free(p); } #ifdef realloc #undef realloc #endif void *realloc(void *p, size_t s) { return GC_realloc(p, s); } #endif gmv0.9/src/gman/malloc.h0100744000175200017560000000211607262562137015503 0ustar stephensstepheng#ifndef _gman_malloc_h #define _gman_malloc_h /* $Id: malloc.h,v 1.4 2001/04/04 09:07:43 stephens Exp $ */ #ifdef _GMAN_GC #ifndef _GMAN_GC_VERSION #define _GMAN_GC_VERSION "gc53" #endif #include "gc53/gc/include/gc.h" #if 0 /* define malloc as GC_malloc */ /* Avoid __THROW __attribute_malloc__ in GNU C Lib. */ #define __malloc_and_calloc_defined #define __need_malloc_and_calloc #include #ifndef __THROW #define __THROW #endif #ifndef __attribute_malloc #define __attribute_malloc #endif #define GC_malloc(X) GC_malloc(X) __THROW __attribute_malloc #define GC_free(X) GC_malloc(X) __THROW __attribute_malloc #define GC_realloc(X,Y) GC_realloc(X,Y) __THROW __attribute_malloc #include "gc53/gc/include/gc.h" #undef GC_malloc #undef GC_free #undef GC_realloc #ifdef malloc #undef malloc #endif #define malloc(X) GC_malloc(X) #ifdef free #undef free #endif #define free(X) GC_free(X) #ifdef realloc #undef realloc #endif #define realloc(X,Y) GC_realloc(X,Y) #endif #ifdef __cplusplus #include "gc53/gc/include/new_gc_alloc.h" #endif #else #include #endif #endif gmv0.9/src/gman/attr.cc0100744000175200017560000000123207263203273015334 0ustar stephensstepheng #include "attr.hh" #include "gman.h" #include "obj.hh" #include #include #include #define C GMANAttribs C::C() { } C::~C() { } #undef C #define C GMANObject void C::attr_set(const char *key, const char *value) { if ( ! this->_attribs ) { this->_attribs = new GMANAttribs; } this->_attribs->set(key, value); } const char *C::attr_get(const char *key) { return this->_attribs ? this->_attribs->get(key) : 0; } #undef C void gman_attr_set(GMAN_ARG g, const char *key, const char *value) { g->attr_set(key, value); } const char *gman_attr_get(GMAN_ARG g, const char *key) { return g->attr_get(key); } gmv0.9/src/gman/gman.swig0100744000175200017560000001744607270653772015721 0ustar stephensstepheng/* -*- C -*- */ #ifndef _gman_gman_swig #define _gman_gman_swig /* $Id: gman.swig,v 1.10 2001/04/22 21:55:08 stephens Exp $ */ #ifdef SWIG %module gman %include typemaps.i %{ #include "gman/gman.h" #include "gman/tcl.c" %} #endif #ifndef GMANValue typedef double GMANValue; #endif /* GMANObject, GMAN */ #ifndef GMANObject #ifdef __cplusplus class GMANObject; #else struct GMANObject; typedef struct GMANObject GMANObject; #endif #endif /* Define a GMAN return type. */ #ifndef GMAN #define GMAN GMAN typedef GMANObject *GMAN; #endif #ifdef SWIG /* Define a GMAN argument type. */ #ifdef GMAN_ARG #undef GMAN_ARG #endif #define GMAN_ARG GMAN /* Define a GMAN refcounting type. */ #ifdef GMAN_REF #undef GMAN_REF #endif #define GMAN_REF GMAN #else /* Define a GMAN argument type. */ #ifndef GMAN_ARG #define GMAN_ARG GMANObject * #endif /* Define a GMAN refcounting type. */ #ifndef GMAN_REF #define GMAN_REF GMAN #endif #endif #ifdef SWIG %include "gman/typemap.swig" #endif /* An array of GMAN */ typedef struct GMAN_ARRAY { GMAN *ptr; int n; } GMAN_ARRAY; /* Ranges are [ min0, max0, ..., min(nparms), max(nparms) ] */ /* Steps are the number of samples for each parameter */ typedef struct gman_eval_options { int nparms; int *samples; GMANValue *ranges; } gman_eval_options; struct gman_context; typedef struct gman_context gman_context; /*************************************************************/ /* Reference Counting */ extern GMAN gman_ref(GMAN f); extern void gman_deref(GMAN f); /*************************************************************/ /* Queries */ #ifdef SWIG %include "gman/check.swig" #endif /* What is the dimensionality of f's result */ extern int gman_noutputs(GMAN_ARG f); /* How many different gman_x(i) does f depend on? */ extern int gman_ninputs(GMAN_ARG f); /* Get the gman_x() for the i'th parameter of f. */ extern GMAN gman_inputi(GMAN_ARG f, int i); #if 0 extern GMAN gman_input(GMAN_ARG f, GMAN_ARG i); #endif /* Is the result a matrix? */ extern int gman_is_matrix(GMAN_ARG f); extern int gman_nrows(GMAN_ARG f); extern int gman_ncolumns(GMAN_ARG f); /* Access subexpressions */ extern int gman_nsubexprs(GMAN_ARG f); extern GMAN *gman_subexprs(GMAN_ARG f); /* DO NOT MODIFY THIS ARRAY! */ /* Is f a constant expressions? */ extern int gman_is_constant(GMAN_ARG f); /* Is f a constant with respect to x? */ extern int gman_is_constant_to(GMAN_ARG f, GMAN_ARG x); /* Evaluate if it's a constant, otherwise return NULL */ extern const GMANValue *gman_constant(GMAN_ARG f); /* Is it a constant equal to x? */ extern int gman_is_constant_value(GMAN_ARG f, GMANValue x); /* Is it zero? */ extern int gman_is_zero(GMAN_ARG f); /* Is it one? */ extern int gman_is_one(GMAN_ARG f); /* Is f symbolically == g */ extern int gman_equal(GMAN_ARG f, GMAN_ARG g); /*************************************************************/ /* printing */ #ifndef SWIG extern void gman_print_expr(FILE *fp, GMAN_ARG f); extern void gman_print_archive(FILE *fp, GMAN_ARG f); extern GMAN gman_read_archive(FILE *fp, int nx, GMAN *x); #endif /*************************************************************/ /* point evaluation */ #if 0 extern void gman_point_setx(GMAN_ARG f, GMAN_ARG x, GMANValue v); #endif extern const GMANValue * gman_point(GMAN_ARG f, int nx, const GMANValue *x); /*************************************************************/ /* interval evaluation */ extern GMAN gman_mid(GMAN_ARG f); extern GMAN gman_width(GMAN_ARG f); #if 0 extern void gman_pointi_setx(GMAN_ARG f, GMAN_ARG x, GMANValue v); #endif extern const gintv * gman_pointi(GMAN_ARG f, int nx, const gintv *x); /*************************************************************/ /* Constant values */ extern GMAN gman_vv(int nv, GMANValue *v, int copy); extern GMAN gman_v(GMANValue x); #ifndef SWIG extern GMAN gman_vn(int nv, GMANValue x, ...); #endif extern GMAN gman_vc(int nv, GMANValue x); /*************************************************************/ /* Parameters */ extern GMAN gman_x(int i); /* A.3.4 Vector Operators */ /* Cartesian product */ extern GMAN gman_cv(int nv, GMAN *v, int copy); #ifndef SWIG extern GMAN gman_cn(int nv, GMANObject *x, ...); #endif extern GMAN gman_cons(GMAN_ARG car, GMAN_ARG cdr); extern GMAN gman_cons_v(GMAN_ARG car, GMAN_ARG cdr); extern GMAN gman_cons_c(GMAN_ARG car, GMAN_ARG cdr); /* Cartesian projection */ extern GMAN gman_p(GMAN_ARG vm, GMAN_ARG i); extern GMAN gman_pi(GMAN_ARG vm, int i); #define gman_projection gman_p /* Vector operators. */ extern GMAN gman_length(GMAN_ARG v); extern GMAN gman_dot(GMAN_ARG u, GMAN_ARG v); extern GMAN gman_cross(GMAN_ARG x, GMAN_ARG y); extern GMAN gman_normalize(GMAN_ARG x); /* A.3.5 Matrix Operators */ extern GMAN gman_matrix(GMAN_ARG components, int r, int c); extern GMAN gman_transpose(GMAN_ARG m); extern GMAN gman_matrix_inverse(GMAN_ARG m); #if 0 extern GMAN gman_determinant(GMAN_ARG m); #endif /* Arithmetic and relational operators */ #ifdef SWIG %include gman/ops.h %include gman/funcs.h #else #include "gman/opgen.h" #endif /* A.3.6 Integral and Derivative Operators */ extern GMAN gman_derivative(GMAN_ARG f, GMAN_ARG x); #if 0 extern GMAN gman_integrate(GMAN_ARG integrand, GMAN_ARG lower, GMAN_ARG upper, GMAN_ARG x); #endif /* Free form curve. */ extern GMAN gman_crv_new(GMAN param); enum GMAN_CRV_MODE { GMAN_CRV_POLYGON = 0, GMAN_CRV_INTERPOLATE = 1 }; extern int gman_crv_mode_set(GMAN _crv, int mode); extern int gman_crv_mode(GMAN _crv); extern int gman_crv_degree_set(GMAN _crv, int mode); extern int gman_crv_degree(GMAN _crv); extern int gman_crv_np(GMAN _crv); extern const GMANValue *gman_crv_point_set(GMAN _crv, int i, int nv, const GMANValue *v); extern const GMANValue *gman_crv_point(GMAN _crv, int i); extern GMANValue gman_crv_weight_set(GMAN _crv, int i, GMANValue w); extern GMANValue gman_crv_weight(GMAN _crv, int i); extern GMAN gman_crv_from_file(const char *file, GMAN param); extern int gman_crv_to_file(const char *file); /*************************************************************/ /* Simplify (constant folding, 0 + x => x, etc.) */ extern GMAN gman_simplify(GMAN_ARG f); /*************************************************************/ /* Symbolic Evaluation */ extern GMAN gman_name_eval(const char *name, int n, GMAN *v); extern GMAN gman_eval1(GMAN_ARG fx, GMAN_ARG x, GMAN_ARG gy); /* x = g(y), f(x) => f(g(y)) */ extern GMAN gman_evaln(GMAN_ARG fx, int n, GMAN *xs, GMAN *gs); /* f(xs[0],xs[1], ...) => f(gs[0], gs[1], ...) */ extern GMAN gman_evalx(GMAN_ARG fx, int n, GMAN *gs); /* f(x(0),x(1),x(2)) => f(gs[0], gs[1], x(2)) */ /*************************************************************/ /* Expression Syntax */ extern GMAN gman_parse_expr(const char *str); extern GMAN gman_parse_file(const char *file); /*************************************************************/ /* Numeric Evaluation */ extern GMANValue *gman_eval_curve(GMAN_ARG f, const gman_eval_options *opts, GMANValue *outputs); extern GMANValue *gman_eval_surface(GMAN_ARG f, const gman_eval_options *opts, GMANValue *outputs); /* extern gintv *gman_eval_interval(GMAN f, const gman_eval_options *opts); */ /*************************************************************/ /* System context. */ extern gman_context *gman_context_create(); extern gman_context *gman_context_current(); extern void gman_context_begin(gman_context *cntx); extern void gman_context_end(); /*************************************************************/ /* Named objects */ extern GMAN gman_named(const char *name); extern GMAN gman_set_name(const char *name, GMAN_ARG x); /*************************************************************/ /* Attributes */ extern void gman_attr_set(GMAN_ARG g, const char *key, const char *value); extern const char *gman_attr_get(GMAN_ARG g, const char *key); #endif gmv0.9/src/gman/gmantcl.c0100744000175200017560000000062107254527273015656 0ustar stephensstepheng/* $Id: gmantcl.c,v 1.1 2001/03/17 00:24:27 stephens Exp $ */ #include "gman/gman.h" #include "tcl.h" extern int Gman_Init(Tcl_Interp *interp); int Tcl_AppInit(Tcl_Interp *interp) { int code = TCL_OK; do { if ( (code = Gman_Init(interp)) != TCL_OK ) break; } while ( 0 ); return code; } int main(int argc, char **argv) { Tcl_Main(argc, argv, Tcl_AppInit); return 0; } gmv0.9/src/gman/.#malloc.h.1.10100744000175200017560000000055107254310660016114 0ustar stephensstepheng#ifndef _gman_malloc_h #define _gman_malloc_h #include "gc53/gc/include/gc.h" #ifdef malloc #undef malloc #endif #define malloc(X) GC_malloc(X) #ifdef free #undef free #endif #define free(X) GC_free(X) #ifdef realloc #undef realloc #endif #define realloc(X,Y) GC_realloc(X,Y) #ifdef __cplusplus #include "gc53/gc/include/new_gc_alloc.h" #endif #endif gmv0.9/src/gman/mat_inv.c0100744000175200017560000000670407263176652015677 0ustar stephensstepheng/***********************************************************************/ /* Matrix inversion. */ #ifndef SCALAR #define SCALAR double #endif #ifndef MATRIX #define MATRIX SCALAR ** #endif #ifndef MATRIX_ref #define MATRIX_ref MATRIX #endif #ifndef MATRIX_size #define MATRIX_size(M) (sizeof(M) / sizeof(M[0])); #endif static int ludcmp(MATRIX_ref a, int *indx) { int n = MATRIX_size(a); const SCALAR TINY = 1.0e-20; int i, imax = -1, j, k; SCALAR big, dum, sum, temp; SCALAR *vv = (SCALAR *) alloca(sizeof(vv[0]) * n); int d = 1; #if 0 M44_PRINT(stderr, "ludcmp(a) = ", a); #endif for ( i = 0; i < n; ++ i ) { big = 0; for ( j = 0; j < n; ++ j ) { if ( big < (temp = fabs(a[i][j])) ) big = temp; } if ( ! big ) { return 0; assert(! "invertable matrix"); } vv[i] = 1 / big; } for ( j = 0; j < n; ++ j ) { for ( i = 0; i < j; ++ i ) { sum = a[i][j]; for ( k = 0; k < i; ++ k ) sum -= a[i][k] * a[k][j]; a[i][j] = sum; } big = 0; for ( i = j; i < n; ++ i ) { sum = a[i][j]; for ( k = 0; k < j; ++ k ) { sum -= a[i][k] * a[k][j]; } a[i][j] = sum; if ( big <= (dum = vv[i] * fabs(sum)) ) { big = dum; imax = i; } } if ( j != imax ) { for ( k = 0; k < n; ++ k ) { dum = a[imax][k]; a[imax][k] = a[j][k]; a[j][k] = dum; } d = - d; dum = vv[imax]; vv[imax] = vv[j]; vv[j] = dum; } indx[j] = imax; if ( ! a[j][j] ) a[j][j] = TINY; if ( j != n - 1 ) { dum = 1 / a[j][j]; for ( i = j + 1; i < n; ++ i ) a[i][j] *= dum; } } assert(imax != -1); #if 0 M44_PRINT(stderr, "ludcmp(a): DONE a = ", a); #endif return d; } static void lubksb(MATRIX_ref a, int *indx, SCALAR *b) { int n = MATRIX_size(a); int i, ii = -1, ip, j; SCALAR sum; for ( i = 0; i < n; ++ i ) { ip = indx[i]; sum = b[ip]; b[ip] = b[i]; if ( ii >= 0 ) { for ( j = ii; j < i; ++ j ) sum -= a[i][j] * b[j]; } else if ( sum ) { ii = i; } b[i] = sum; } for ( i = n; -- i >= 0; ) { sum = b[i]; for ( j = i + 1; j < n; ++ j ) sum -= a[i][j] * b[j]; b[i] = sum / a[i][i]; } } static int MATRIX_INVERSE(MATRIX_ref m1, const MATRIX_ref m) { int n = MATRIX_size(m1); // int j; int *indx = (int *) alloca(sizeof(indx[0]) * n); SCALAR *col = (SCALAR *) alloca(sizeof(col[0]) * n); int det; /* Copy m1 to a. */ #ifdef MATRIX_copy MATRIX a; MATRIX_copy(a, m); #else MATRIX a = m1; #endif if ( (det = ludcmp(a, indx)) ) { int j; for ( j = 0; j < n; ++ j ) { int i; for ( i = 0; i < n; ++ i ) col[i] = 0; col[j] = 1; lubksb(a, indx, col); for ( i = 0; i < n; ++ i ) m1[i][j] = col[i]; } } return det; } static int MATRIX_INVERT(MATRIX_ref m1) { int n = MATRIX_size(m1); // int j; int *indx = (int*) alloca(sizeof(indx[0]) * n); SCALAR *col = (SCALAR*) alloca(sizeof(col[0]) * n); int det; /* Copy m1 to a. */ #ifdef MATRIX_copy MATRIX a; MATRIX_copy(a, m1); #else MATRIX a = m1; #endif if ( (det = ludcmp(a, indx)) ) { int j; for ( j = 0; j < n; ++ j ) { int i; for ( i = 0; i < n; ++ i ) col[i] = 0; col[j] = 1; lubksb(a, indx, col); for ( i = 0; i < n; ++ i ) m1[i][j] = col[i]; } } return det; } #undef SCALAR #undef MATRIX #undef MATRIX_ref gmv0.9/src/gman/ops.h.tmp0100644000175200017560000000246607263456711015644 0ustar stephensstepheng# 1 "opgen.h" # 19 "opgen.h" # 14 "/home/stephens/ion/src/gman/op.h" 1 extern GMAN gman_add(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_sub(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_mul(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_div(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_neg(GMAN_ARG a); extern GMAN gman_cos(GMAN_ARG a); extern GMAN gman_sin(GMAN_ARG a); extern GMAN gman_tan(GMAN_ARG a); extern GMAN gman_acos(GMAN_ARG a); extern GMAN gman_asin(GMAN_ARG a); extern GMAN gman_atan(GMAN_ARG a); extern GMAN gman_atan2(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_ceil(GMAN_ARG a); extern GMAN gman_floor(GMAN_ARG a); extern GMAN gman_abs(GMAN_ARG a); extern GMAN gman_exp(GMAN_ARG a); extern GMAN gman_log(GMAN_ARG a); extern GMAN gman_sqrt(GMAN_ARG a); extern GMAN gman_mod(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_pow(GMAN_ARG a, GMAN_ARG b); extern GMAN gman__if(GMAN_ARG a, GMAN_ARG b, GMAN_ARG c); extern GMAN gman_and(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_or(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_not(GMAN_ARG a); extern GMAN gman_eq(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_ne(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_lt(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_gt(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_le(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_ge(GMAN_ARG a, GMAN_ARG b); # 19 "opgen.h" 2 gmv0.9/src/gman/GUMakefile0100644000175200017560000000263607270653772015772 0ustar stephensstepheng# $Id: GUMakefile,v 1.5 2001/04/22 21:55:08 stephens Exp $ PACKAGE=gman INCLUDE_DIRS+=. ################################################################# H_FILES = \ context.hh \ gman.h \ op.h \ obj.hh \ user.hh \ ops.h \ op.h C_FILES = \ eval.c \ funcs.c \ malloc.c CC_FILES = \ context.cc \ gman.cc \ obj.cc \ point.cc \ v.cc \ x.cc \ op.cc \ cart.cc \ der.cc \ archive.cc \ user.cc \ vec.cc \ cons.cc \ ev.cc \ mat.cc \ crv.cc \ interval.cc \ attr.cc Y_FILES = \ parse.y SWIG_FILES = \ gman.swig NAME=gman# INSTALL_VARS=H_FILES LIB# LIBS=gintv # #LIBS+= nurbsf nurbsd matrixN matrixI matrix# for crv.cc LIBS+= stdc++ tcl# LIBS+= # include $(GUM)/lib ################################################################# NAME=test1# C_FILES=test1.c# LIBS=gman# include $(GUM)/exe ################################################################# NAME=parsetest# C_FILES=parsetest.c# LIBS=gman# include $(GUM)/exe ################################################################# NAME=test2# C_FILES=test2.c# LIBS=gman# include $(GUM)/exe ################################################################# NAME=test3# CC_FILES=test3.cc# LIBS=gman# include $(GUM)/exe ################################################################# ops.h : op.h opgen.h GUMakefile $(GUM_CPP) $(GUM_CPP_FLAGS) opgen.h | egrep -v -e '^#' > $@ ################################################################# gmv0.9/src/gman/opgen.h0100644000175200017560000000070707263461365015351 0ustar stephensstepheng#define GMAN1_DECL GMAN_ARG a #define GMAN1_ARGS a #define GMAN2_DECL GMAN_ARG a, GMAN_ARG b #define GMAN2_ARGS a, b #define GMAN3_DECL GMAN_ARG a, GMAN_ARG b, GMAN_ARG c #define GMAN3_ARGS a, b, c #define GMAN_DECL(N)GMAN##N##_DECL #define GMAN_ARGS(N)GMAN##N##_ARGS #define OP(N,NAME,O,INFIX) extern GMAN gman_##NAME(GMAN_DECL(N)); #define RUOP(N,O)OP(1,N,O,1) #define RBOP(N,O)OP(2,N,O,1) #define _GMAN_OP_FIX /* and, or, not */ #include "gman/op.h" gmv0.9/src/gman/tcl.c0100644000175200017560000001244607263520050015004 0ustar stephensstepheng#include "gman/gmantcl.h" /* Create a GMAN type in Tcl so gman_ref() and gman_deref get called properly. */ extern Tcl_ObjType tclGMANType; static void tclGMAN_Free(Tcl_Obj *objPtr) { /* Deref the GMAN/ */ gman_deref((GMAN) objPtr->internalRep.otherValuePtr); } static void tclGMAN_Dup(Tcl_Obj *srcPtr, Tcl_Obj *dupPtr) { /* Ref the new GMAN. */ gman_ref((GMAN) srcPtr->internalRep.otherValuePtr); /* Copy pointer. */ dupPtr->internalRep.otherValuePtr = srcPtr->internalRep.otherValuePtr; /* Invalidate old string rep. */ Tcl_InvalidateStringRep(dupPtr); } static void tclGMAN_String(Tcl_Obj *objPtr) { /* Make a string representing the GMAN. */ char buf[32]; sprintf(buf, "GMAN%p", objPtr->internalRep.otherValuePtr); objPtr->length = strlen(buf); objPtr->bytes = strcpy(ckalloc(objPtr->length + 1), buf); } static void tclGMAN_set(Tcl_Obj *objPtr, GMAN x) { /* Ref the new GMAN. */ gman_ref(x); /* Destroy old internal rep. */ if ( objPtr->typePtr->freeIntRepProc ) { objPtr->typePtr->freeIntRepProc(objPtr); } /* Set up type. */ objPtr->typePtr = &tclGMANType; objPtr->internalRep.otherValuePtr = (void*) x; /* Invalidate old string rep. */ Tcl_InvalidateStringRep(objPtr); } extern Tcl_ObjType tclDoubleType; extern Tcl_ObjType tclIntType; extern Tcl_ObjType tclListType; static int countListOfType(int n, Tcl_Obj **v, Tcl_ObjType *type) { int i; int c = 0; for ( i = 0; i < n; ++ i ) { if ( v[i]->typePtr == type ) { ++ c; } } return c; } static GMAN *listToGMAN(Tcl_Interp *interp, int n, Tcl_Obj **v, GMAN *m); static GMANValue *listToGMANValue(Tcl_Interp *interp, int n, Tcl_Obj **v, GMANValue *m); static int Tcl_ObjToGMANValue(Tcl_Interp *interp, Tcl_Obj *objPtr, GMANValue *x) { double d = 0; long l = 0; if ( Tcl_GetDoubleFromObj(interp, objPtr, &d) == TCL_OK ) { *x = d; return TCL_OK; } else if ( Tcl_GetLongFromObj(interp, objPtr, &l) == TCL_OK ) { *x = l; return TCL_OK; } return TCL_ERROR; } static GMAN Tcl_ObjVToGMAN(Tcl_Interp *interp, int n, Tcl_Obj **v) { if ( ! n ) { return 0; } { /* Attempt coersion. */ GMANValue *m = malloc(sizeof(m[0]) * n); int i; for ( i = 0; i < n; ++ i ) { if ( Tcl_ObjToGMANValue(interp, v[i], &m[i]) != TCL_OK ) { free(m); goto GMANV; } } return gman_vv(n, m, -1); } GMANV: { /* Must be mixed. */ GMAN *m = malloc(sizeof(m[0]) * n); if ( listToGMAN(interp, n, v, m) ) { return gman_cv(n, m, -1); } else { free(m); } } /* Give up. */ return 0; } static GMAN Tcl_ObjToGMAN1(Tcl_Interp *interp, Tcl_Obj *objPtr) { GMAN x = 0; GMANValue m; if ( objPtr->typePtr == &tclGMANType ) { x = (GMAN) objPtr->internalRep.otherValuePtr; } else if ( Tcl_ObjToGMANValue(interp, objPtr, &m) == TCL_OK ) { x = gman_v(m); } return x; } GMAN Tcl_ObjToGMAN(Tcl_Interp *interp, Tcl_Obj *objPtr) { GMAN x = 0; if ( ! (x = Tcl_ObjToGMAN1(interp, objPtr)) ) { /* Try as list. */ int n; Tcl_Obj **v; Tcl_ListObjGetElements(interp, objPtr, &n, &v); if ( n > 1 ) { x = Tcl_ObjVToGMAN(interp, n, v); } } return x; } static GMAN *listToGMAN(Tcl_Interp *interp, int n, Tcl_Obj **v, GMAN *m) { int i; for ( i = 0; i < n; ++ i ) { if ( ! (m[i] = Tcl_ObjToGMAN1(interp, v[i])) ) { return 0; } } return m; } static GMANValue *listToGMANValue(Tcl_Interp *interp, int n, Tcl_Obj **v, GMANValue *m) { int i; for ( i = 0; i < n; ++ i ) { if ( Tcl_ObjToGMANValue(interp, v[i], &m[i]) != TCL_OK ) { return 0; } } return m; } static int tclGMAN_Set(Tcl_Interp *interp, Tcl_Obj *objPtr) { GMAN x = 0; if ( objPtr->typePtr == &tclGMANType ) { return TCL_OK; } else if ( ! (x = Tcl_ObjToGMAN(interp, objPtr)) ) { return TCL_ERROR; } tclGMAN_set(objPtr, x); return TCL_OK; } Tcl_ObjType tclGMANType = { "GMAN", tclGMAN_Free, tclGMAN_Dup, tclGMAN_String, tclGMAN_Set }; Tcl_Obj *GMANToTcl_Obj(Tcl_Interp *interp, GMAN x) { Tcl_Obj *o = Tcl_NewObj(); /* Init for set. */ o->typePtr = &tclGMANType; o->internalRep.otherValuePtr = 0; tclGMAN_set(o, x); return o; } static int GMAN_Proc (ClientData clientData, Tcl_Interp *interp, int argc, struct Tcl_Obj *CONST argv[]) { Tcl_Obj *result = 0; if ( argc <= 1 ) { result = GMANToTcl_Obj(interp, 0); } else if ( argc == 2 && argv[1]->typePtr == &tclGMANType ) { result = argv[1]; } else { GMAN m = Tcl_ObjVToGMAN(interp, argc - 1, argv + 1); result = GMANToTcl_Obj(interp, m); } Tcl_SetObjResult(interp, result); return TCL_OK; } SWIGEXPORT(int) __Gman_Init(Tcl_Interp *interp); SWIGEXPORT(int) Gman_Init(Tcl_Interp *interp) { if ( interp == 0 ) return TCL_ERROR; Tcl_CreateObjCommand(interp, (char*) SWIG_prefix "GMAN", GMAN_Proc, 0, 0); Tcl_CreateObjCommand(interp, (char*) SWIG_prefix "gman", GMAN_Proc, 0, 0); return __Gman_Init(interp); } #define Gman_Init __Gman_Init int Tcl_GMANNullError(Tcl_Interp *interp, const char *proc, GMAN x, const char *arg) { if ( x == 0 ) { char buf[64]; sprintf(buf, "%s: GMAN arg %s is null", proc, arg); Tcl_SetResult(interp, buf, TCL_VOLATILE); return TCL_ERROR; } return TCL_OK; } gmv0.9/src/gman/ops.h0100644000175200017560000000233607270654205015035 0ustar stephensstephengextern GMAN gman_add(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_sub(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_mul(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_div(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_neg(GMAN_ARG a); extern GMAN gman_cos(GMAN_ARG a); extern GMAN gman_sin(GMAN_ARG a); extern GMAN gman_tan(GMAN_ARG a); extern GMAN gman_acos(GMAN_ARG a); extern GMAN gman_asin(GMAN_ARG a); extern GMAN gman_atan(GMAN_ARG a); extern GMAN gman_atan2(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_ceil(GMAN_ARG a); extern GMAN gman_floor(GMAN_ARG a); extern GMAN gman_abs(GMAN_ARG a); extern GMAN gman_exp(GMAN_ARG a); extern GMAN gman_log(GMAN_ARG a); extern GMAN gman_sqrt(GMAN_ARG a); extern GMAN gman_mod(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_pow(GMAN_ARG a, GMAN_ARG b); extern GMAN gman__if(GMAN_ARG a, GMAN_ARG b, GMAN_ARG c); extern GMAN gman_and(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_or(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_not(GMAN_ARG a); extern GMAN gman_eq(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_ne(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_lt(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_gt(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_le(GMAN_ARG a, GMAN_ARG b); extern GMAN gman_ge(GMAN_ARG a, GMAN_ARG b); gmv0.9/src/gman/opgen.h.h0100644000175200017560000000011307263456412015563 0ustar stephensstephenggcc: ops.h.tmp: No such file or directory gcc: argument to `-o' is missing gmv0.9/src/gman/typemap.swig0100644000175200017560000000044307263520417016431 0ustar stephensstepheng/* -*- C -*- */ %typemap(tcl8,in) GMAN, GMAN_ARG, GMAN_REF { /* Turn a Tcl_Obj * into a GMAN. */ $target = Tcl_ObjToGMAN(interp, $source); } %typemap(tcl8,out) GMAN, GMAN_ARG, GMAN_REF { /* Turn a GMAN into a Tcl_Obj. */ Tcl_SetObjResult(interp, GMANToTcl_Obj(interp, $source)); } gmv0.9/src/gman/crv.cc0100644000175200017560000001444707270653772015202 0ustar stephensstepheng #include "crv.hh" #include /********************************************************************/ #define NURBS_EXPORT static #include "util/nurbs.c" /********************************************************************/ #define C GMANCrvDelegate C :: C() { } C :: ~C() { } void C :: mode(GMANCrv *c, int mode) { } void C :: degree(GMANCrv *c, int deg) { } void C :: p_insert(GMANCrv *c, int i, int nv, const GMANValue *p) { } void C :: p_delete(GMANCrv *c, int i) { } void C :: p(GMANCrv *c, int i, int nv, const GMANValue *p) { } void C :: w(GMANCrv *c, int i, GMANValue w) { } #undef C /********************************************************************/ #define C GMANCrv C :: C(GMAN_ARG x) : _param(x), _noutputs(3), _degree(3), _nurbs_valid(0), _mode(GMAN_CRV_POLYGON), _delegate(0) { } C :: C(int n, GMAN *v) : _noutputs(3), _degree(3), _nurbs_valid(0), _mode(GMAN_CRV_POLYGON), _delegate(0) { assert(n == 1); _param = v[0]; } C :: ~C() { } int C :: mode(int m) { if ( _mode != m ) { if ( _delegate ) { _delegate->mode(this, m); } _invalidate(); _mode = (GMANCrv::mode_t) m; } return m; } int C :: degree(int d) { assert(1 <= d); if ( _degree != d ) { if ( _delegate ) { _delegate->degree(this, d); } _invalidate(); _degree = d; } return d; } const GMANValue * C :: p_insert(int i, int nv, const GMANValue *v) { CV cv = { { 0, 0, 0, 1 } }; for ( int j = 0; j < nv; ++ j ) { cv.v[j] = v[j]; } if ( i < 0 ) i = _pv.size() - i; if ( _delegate ) { _delegate->p_insert(this, i, nv, cv.v); } _pv.insert(_pv.begin() + i, cv); _invalidate(); return v; } void C :: p_delete(int i) { if ( i < 0 ) i = _pv.size() - i; if ( _delegate ) { _delegate->p_delete(this, i); } _pv.erase(_pv.begin() + i); _invalidate(); } const GMANValue * C :: p(int i, int nv, const GMANValue *v) { if ( i < 0 ) i = _pv.size() - (i - 1); for ( int j = np(); j <= i; ++ j ) { p_insert(j, nv, v); } for ( int j = 0; j < nv; ++ j ) { if ( _pv[i].v[j] != v[j] ) { if ( _delegate ) { _delegate->p(this, i, nv, v); } for ( int j = 0; j < nv; ++ j ) { _pv[i].v[j] = v[j]; } _invalidate(); break; } } return v; } GMANValue C :: w(int i, GMANValue w) { if ( i < 0 ) i = _pv.size() - (i - 1); CV v = { { 0, 0, 0, 1 } }; if ( np() ) { v = _pv[0]; } for ( int j = np(); j <= i; ++ j ) { p_insert(j, 4, v.v); } if ( _pv[i].v[3] != w ) { if ( _delegate ) { _delegate->w(this, i, w); } _pv[i].v[3] = w; _invalidate(); } return w; } C :: _nurbs_t &C :: nurbs() { /* Update NURBS object. */ if ( ! _nurbs_valid ) { int nv = _pv.size(); int deg = _degree + 1 <= nv ? _degree : nv - 1; #if 1 memset(&_nurbs, 0, sizeof(_nurbs)); _nurbs.degree = deg; _nurbs.nv = nv; _nurbs.v = (NURBS(T) *) _pv.begin(); _nurbs.vdim = 3; _nurbs.vskip = 4; _nurbs.voff = 0; _nurbs.w = _nurbs.v; _nurbs.wskip = 4; _nurbs.woff = 3; { int j; int n; _kv.clear(); for ( j = 0; j < deg; ++ j ) { _kv.push_back(0); } n = nv - deg; for ( j = 0; j < n; ++ j ) { _kv.push_back((double) j / (double) n); } for ( j = 0; j < deg; ++ j ) { _kv.push_back(1); } _nurbs.u = (NURBS(T) *) _kv.begin(); _nurbs.nu = _kv.size(); } #else if ( 1 ) { /* Interpolative method. */ _nurbs_pv_t npv(nv); for ( int i = 0; i < nv; ++ i ) { npv[i] = _nurbs_p_t(p(i)[0], p(i)[1], p(i)[2]); } _nurbs.globalInterp(npv, deg); //fprintf(stderr, "%p->_nurbs.ctrlPnts().rows() = %d\n", this, this->_nurbs.ctrlPnts().rows()); } else { /* Control polygon method. */ _nurbs_pwv_t npv(nv); _nurbs_kv_t nkv(nv + ((deg - 1) * 2)); for ( int i = 0; i < nv; ++ i ) { npv[i] = _nurbs_pw_t((GMANValue*) p(i), 0); } int j = 0; for ( int i = 0; i < (deg - 1); ++ i ) { nkv[j ++] = 0; } for ( int i = 0; i < nv; ++ i ) { nkv[j ++] = i; } for ( int i = 0; i < (deg - 1); ++ i ) { nkv[j ++] = nv - 1; } _nurbs.reset(npv, nkv, deg); } #endif _nurbs_valid = 1; } return _nurbs; } int C :: _compute_noutputs() { return _noutputs; } static GMANValue lerp(GMANValue a, GMANValue b, GMANValue u) { GMANValue u1 = 1.0 - u; return a * u1 + b * u; } void C :: _point(GMANValue *v) { if ( _pv.size() == 0 ) { v[0] = v[1] = v[2] = 0; } else if ( _pv.size() == 1 ) { v[0] = p(0)[0]; v[1] = p(0)[1]; v[2] = p(0)[2]; } else { const GMANValue *x = _param->point(); GMANValue u = x[0] < 0 ? 0 : x[0] < 1 ? x[0] : 1; nurbs(); #if 1 u = lerp(NURBS(_min_knot)(&_nurbs), NURBS(_max_knot)(&_nurbs), u); NURBS(_eval)(&_nurbs, u, v); #else u = _nurbs.minKnot() + u * (_nurbs.maxKnot() - _nurbs.minKnot()); _nurbs_p_t np = Cp(u, _nurbs); v[0] = np.x(); v[1] = np.y(); v[2] = np.z(); #endif _param->pointFree(x); } } void C :: _pointI(gintv *v) { assert(! "implemented"); } #undef C /********************************************************************/ #define CRV GMANCrv *crv = (GMANCrv*) (GMANObject*) _crv GMAN gman_crv_new(GMAN param) { return new GMANCrv(param); } int gman_crv_degree_set(GMAN _crv, int mode) { CRV; return crv->degree(mode); } int gman_crv_degree(GMAN _crv) { CRV; return crv->degree(); } int gman_crv_mode_set(GMAN _crv, int mode) { CRV; return crv->mode(mode); } int gman_crv_mode(GMAN _crv) { CRV; return crv->mode(); } int gman_crv_np(GMAN _crv) { CRV; return crv->np(); } const GMANValue *gman_crv_point_set(GMAN _crv, int i, int nv, const GMANValue *v) { CRV; crv->p(i, nv, v); return v; } const GMANValue *gman_crv_point(GMAN _crv, int i) { CRV; return crv->p(i); } GMANValue gman_crv_weight_set(GMAN _crv, int i, GMANValue w) { CRV; crv->w(i, w); return w; } GMANValue gman_crv_weight(GMAN _crv, int i) { CRV; return crv->w(i); } GMAN gman_crv_from_file(const char *file, GMAN param) { GMAN result = 0; return result; } int gman_crv_to_file(const char *file) { int result = 0; return result; } gmv0.9/src/gman/crv.hh0100644000175200017560000000441007270653772015201 0ustar stephensstepheng#ifndef _gman_crv_hh #define _gman_crv_hh #include "gman/obj.hh" #include class GMANCrv; class GMANCrvDelegate { public: GMANCrvDelegate(); virtual ~GMANCrvDelegate(); virtual void mode(GMANCrv *c, int mode); virtual void degree(GMANCrv *c, int deg); virtual void p_insert(GMANCrv *c, int i, int nv, const GMANValue *p); virtual void p_delete(GMANCrv *c, int i); virtual void p(GMANCrv *c, int i, int nv, const GMANValue *p); virtual void w(GMANCrv *c, int i, GMANValue w); }; #if 1 #define NURBS_T GMANValue #define NURBS_IMPORT static #include "util/nurbs.h" #else #include "nurbs++/nurbs.hh" #endif GMAN_CLASS(Crv); class GMANCrv : public GMANObject { private: GMAN_REF _param; short _noutputs; short _degree; typedef GMANValue GMVS; typedef struct { GMANValue v[4]; } CV; /* Control point. */ typedef vector _pv_t; _pv_t _pv; #if 1 typedef vector _kv_t; _kv_t _kv; typedef NURBS(NURBS_T) _nurbs_t; #else typedef PLib::HPoint_nD _nurbs_pw_t; typedef PLib::Point_nD _nurbs_p_t; typedef PLib::Vector<_nurbs_p_t> _nurbs_pv_t; typedef PLib::Vector<_nurbs_pw_t> _nurbs_pwv_t; typedef PLib::Vector _nurbs_kv_t; typedef PLib::NurbsCurve _nurbs_t; #endif _nurbs_t _nurbs; bool _nurbs_valid; void _invalidate() { _nurbs_valid = 0; } _nurbs_t &nurbs(); public: typedef enum GMAN_CRV_MODE mode_t; GMAN_CLASS_METHOD(Crv); private: mode_t _mode; public: GMANCrvDelegate *_delegate; GMANCrv(GMAN_ARG param); //GMANCrv(int n, GMAN *v); ~GMANCrv(); int mode() { return _mode; } int mode(int m); int degree() { return _degree; } int degree(int d); int np() { return _pv.size(); } const GMANValue *p(int i, int nv, const GMANValue *v); const GMANValue *p(int i) { return (const GMANValue*) &(_pv[i]); }; GMANValue w(int i, GMANValue w); GMANValue w(int i) { return _pv[i].v[3]; } const GMANValue * p_insert(int i, int nv, const GMANValue *v); void p_delete(int i); /* GMANObject */ GMANCrv(int n, GMAN *v); int nsubexprs() { return 1; } GMAN_REF *subexprs() { return &_param; } int equal(GMAN_ARG x) { return 0; } int _compute_noutputs(); void _point(GMANValue *v); void _pointI(gintv *v); }; GMAN_CLASS_END(Crv); #endif gmv0.9/src/gman/gmantcl.h0100644000175200017560000000057607263514644015671 0ustar stephensstepheng#ifndef _gman_TCL_H #define _gman_TCL_H #include "gman/gman.h" #include extern Tcl_ObjType tclGMANType; Tcl_Obj *GMANToTcl_Obj(Tcl_Interp *interp, GMAN x); GMAN Tcl_ObjToGMAN(Tcl_Interp *interp, Tcl_Obj *objPtr); #define _STRINGTIZE(X)#X #define STRINGTIZE(X)_STRINGTIZE(X) int Tcl_GMANNullError(Tcl_Interp *interp, const char *proc, GMAN x, const char *arg); #endif gmv0.9/src/gman/check.swig0100644000175200017560000000034007263520436016024 0ustar stephensstepheng/* -*- C -*- */ %typemap(tcl8,check) GMAN, GMAN_ARG, GMAN_REF { /* Make sure result is not null. */ if ( Tcl_GMANNullError(interp, STRINGTIZE($name), $target, STRINGTIZE($arg)) != TCL_OK ) { return TCL_ERROR; } } gmv0.9/src/gintv/0040755000175200017560000000000007306140400014252 5ustar stephensstephenggmv0.9/src/gintv/CVS/0040755000175200017560000000000007306136064014720 5ustar stephensstephenggmv0.9/src/gintv/CVS/Root0100644000175200017560000000003407236675452015573 0ustar stephensstepheng:local://cvs/ioncvs/cvsroot gmv0.9/src/gintv/CVS/Repository0100644000175200017560000000002307236675452017025 0ustar stephensstephenghome/ion/src/gintv gmv0.9/src/gintv/CVS/Entries0100644000175200017560000000043107306136064016247 0ustar stephensstepheng/gintv.c/1.2/Fri Feb 19 09:25:35 1999// /merge.c/1.2/Fri Feb 19 09:25:35 1999// /test1.c/1.2/Fri Feb 19 09:25:36 1999// /solve.c/1.3/Wed Apr 4 09:04:44 2001// /GUMakefile/1.1/Thu Apr 5 17:38:07 2001// /gintv.h/1.3/Sat Apr 21 02:38:15 2001// /PKG/1.2/Sat Jun 2 08:55:31 2001// D gmv0.9/src/gintv/PKG0100644000175200017560000000016107306125003014613 0ustar stephensstephengNAME=gintv VERSION=1.1 DESC="An interval arithmetic library in C." CATEGORY="Mathematics" REQUIRES_PKGS="../gum" gmv0.9/src/gintv/gintv.c0100644000175200017560000001302706663227017015564 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_gintv_gintv_c__ #define __rcs_id_gintv_gintv_c__ static const char __rcs_id_gintv_gintv_c[] = "$Id: gintv.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include "gintv.h" #include #include void gint(v_print) (FILE *fp, const char *b, int nx, const gint(v) *x, const char *e) { int j; fprintf(fp, "%s", b); for ( j = 0; j < nx; j ++ ) { fprintf(fp, "[%.20g, %.20g] ", x[j].l, x[j].h); } fprintf(fp, "%s", e); } gint(v) gint(v_s) (gint(vs) a) { gint(v) A = { a, a }; return A; } gint(v) gint(v_v) (gint(vs) a, gint(vs) b) { gint(v) A = { a, b }; return A; } #ifdef gintv_l #undef gintv_l #endif #ifdef gintv_h #undef gintv_h #endif gint(vs) gint(v_l) (const gint(v) *x) { return x->l; } gint(vs) gint(v_h) (const gint(v) *x) { return x->h; } #define a A->l #define b A->h #define c B->l #define d B->h /* We use this to force rounding up */ #ifndef gintv_FORCE_ROUNDING #define gintv_FORCE_ROUNDING 1 #endif #if gintv_FORCE_ROUNDING #include #define FIX_FUDGE DBL_EPSILON #ifndef gintv_inline #define gintv_inline inline #endif static gintv_inline gint(vs) FIX_MIN(gint(vs) x) { return x - fabs(x) * FIX_FUDGE; } static gintv_inline gint(vs) FIX_MAX(gint(vs) x) { return x + fabs(x) * FIX_FUDGE; } #define RFIX(z,x) R(FIX_MIN(z), FIX_MAX(x)) #else #define RFIX(z,x) R((z), (x)) #endif #define R(z,x) do { X->l = (z); X->h = (x); return; } while(0) #define RA(z,x) do { gint(vs) _a = (z), _b = (x); RFIX(_a, _b); } while(0) #define RF(z,x) do { if ( (z) < (x) ) R((z), (x)); else RFIX((x), (z)); } while(0) #ifdef min #undef min #endif #define min(X,Y)((X)<(Y)?(X):(Y)) #define min4(Q,W,E,R)min(Q,min(W,min(E,R))) #ifdef max #undef max #endif #define max(X,Y)((X)>(Y)?(X):(Y)) #define max4(Q,W,E,R)max(Q,max(W,max(E,R))) #define INC(N) \ void gint(v_##N) (gint(v) *X, const gint(v) *A) \ { \ RFIX(N(a), N(b)); \ } #define DEC(N) \ void gint(v_##N) (gint(v) *X, const gint(v) *A) \ { \ RA(N(b), N(a)); \ } #define FOUR(N) \ void gint(v_##N) (gint(v) *X, const gint(v) *A, const gint(v) *B) \ { \ gint(vs) ac = N(a, c), ad = N(a, d), bc = N(b, c), bd = N(b, d); \ RFIX(min4(ac, ad, bc, bd), max4(ac, ad, bc, bd)); \ } void gint(v_union) (gint(v) *X, const gint(v) *A, const gint(v) *B) { RA(min(a, c), max(b, d)); } void gint(v_add) (gint(v) *X, const gint(v) *A, const gint(v) *B) { RA(a + c, b + d); } void gint(v_sub) (gint(v) *X, const gint(v) *A, const gint(v) *B) { RA(a - d, b - c); } void gint(v_neg) (gint(v) *X, const gint(v) *A) { RA(- b, -a); } #define INF gintvs_INFINITY #define mul(X,Y) ((X)*(Y)) FOUR(mul) #undef mul #define div(X,Y) ((X)/(Y)) FOUR(div) #undef div INC(sqrt) FOUR(pow) INC(exp) INC(log) void gint(v_cos) (gint(v) *X, const gint(v) *A) { gint(vs) ap = ceil(a / M_PI), bp = b / M_PI; gint(vs) mod_ap_2, cos_a, cos_b; if ( 1 + ap <= bp ) R(-1, 1); mod_ap_2 = fmod(ap, 2); cos_a = cos(a); cos_b = cos(b); if ( ap <= bp && mod_ap_2 == 1 ) R(-1, max(cos_a, cos_b) ); if ( ap <= bp && mod_ap_2 == 0 ) RFIX(min(cos_a, cos_b), 1 ); RF(cos_a, cos_b); } void gint(v_sin) (gint(v) *X, const gint(v) *A) { gint(v) B = { a - (M_PI / 2), b - (M_PI / 2) }; gintv_cos(X, &B); } void gint(v_tan) (gint(v) *X, const gint(v) *A) { gint(vs) ap = ceil((a + (M_PI / 2)) / M_PI), bp = ceil((b + (M_PI / 2))/ M_PI); if ( ap != bp ) R(-INF, INF); RFIX(tan(a), tan(b)); } INC(asin) DEC(acos) INC(atan) FOUR(atan2) /************************************************************************/ void gint(v_eq) (gint(v) *X, const gint(v) *A, const gint(v) *B) { if ( d < a || b < c ) R(0, 0); if ( a == b && b == c && c == d ) R(1, 1); R(0, 1); } void gint(v_ne) (gint(v) *X, const gint(v) *A, const gint(v) *B) { if ( d < a || b < c ) R(1, 1); if ( a == b && b == c && c == d ) R(0, 0); R(0, 1); } void gint(v_lt) (gint(v) *X, const gint(v) *A, const gint(v) *B) { if ( d <= a ) R(0, 0); if ( b < c ) R(1, 1); R(0, 1); } void gint(v_gt) (gint(v) *X, const gint(v) *A, const gint(v) *B) { if ( a <= d ) R(0, 0); if ( b < c ) R(1, 1); R(0, 1); } void gint(v_ge) (gint(v) *X, const gint(v) *A, const gint(v) *B) { gint(v_lt)(X, B, A); } void gintv_le(gint(v) *X, const gint(v) *A, const gint(v) *B) { gint(v_gt)(X, B, A); } /************************************************************************/ void gint(v_and)(gint(v) *X, const gint(v) *A, const gint(v) *B) { if ( (a == 0 && b == 0) || (c == 0 && d == 0) ) R(0, 0); if ( (a == 1 && b == 1) && (c == 1 && d == 1) ) R(1, 1); R(0, 1); } void gint(v_or)(gint(v) *X, const gint(v) *A, const gint(v) *B) { if ( (a == 0 && b == 0) && (c == 0 && d == 0) ) R(0, 0); if ( (a == 1 && b == 1) || (c == 1 && d == 1) ) R(1, 1); R(0, 1); } void gint(v_not)(gint(v) *X, const gint(v) *A) { if ( a == 0 && b == 0 ) R(1, 1); if ( a == 1 && b == 1 ) R(0, 0); R(0, 1); } void gint(v__if)(gint(v) *X, const gint(v) *A, const gint(v) *B, const gint(v) *C) { if ( A->l == 1 && A->h == 1 ) { *X = *B; } else if ( A->l == 0 && A->h == 0 ) { *X = *C; } else { gint(v_union)(X, B, C); } } /*************************************************************************/ INC(ceil) INC(floor) void gint(v_fabs)(gint(v) *X, const gint(v) *A) { if ( a > 0 && b > 0 ) { *X = *A; return; } if ( a < 0 && b < 0 ) { RA(- b, - a); } R(0, max(fabs(a), fabs(b))); } FOUR(fmod) #undef INC #undef DEC #undef FOUR #undef a #undef b #undef c #undef d #undef R gmv0.9/src/gintv/gintv.h0100644000175200017560000001366007270171227015570 0ustar stephensstepheng#ifndef _gintv_gintv_h #ifndef __rcs_id__ #ifndef __rcs_id_gintv_gintv_h__ #define __rcs_id_gintv_gintv_h__ static const char __rcs_id_gintv_gintv_h[] = "$Id: gintv.h,v 1.3 2001/04/21 02:38:15 stephens Exp $"; #endif #endif /* __rcs_id__ */ #define _gintv_gintv_h #include #include #ifndef gintvs typedef double gintvs; #endif #ifndef gintvs_INFINITY #define gintvs_INFINITY DBL_MAX #endif #ifndef gint #define gint(X)gint##X #endif typedef struct gint(v) { gint(vs) l, h; /* lower and upper bound */ #ifdef __cplusplus gint(v) () { } gint(v) (gint(vs) x) : l(x), h(x) { } #define gintv_OP(OP,AOP,FUNC) \ gint(v) &operator AOP (const gint(v) &b); \ gint(v) &operator AOP (const gint(vs) &b); gintv_OP(+,+=,add); gintv_OP(-,-=,sub); gintv_OP(*,*=,mul); gintv_OP(/,/=,div); #undef gintv_OP #endif } gint(v); #ifdef __cplusplus extern "C" { #endif void gint(v_print) (FILE *fp, const char *b, int nx, const gint(v) *x, const char *e); gint(v) gint(v_s) (gint(vs) a); gint(v) gint(v_v) (gint(vs) a, gint(vs) b); int gint(v_equal) (const gint(v) *X, const gint(v) *Y); #define gintv_equal(X,Y) ((X)->l == (Y)->l && (X)->h == (Y)->h) int gint(v_contains) (const gint(v) *X, gint(vs) V); #define gintv_contains(X,V) ((X)->l <= (V) && (V) <= (X)->h) gint(vs) gint(v_w) (const gint(v) *x); #define gintv_w(X) ((X)->h - (X)->l) gint(vs) gint(v_m) (const gint(v) *x); #define gintv_m(X) (((X)->l + (X)->h)*0.5) gint(vs) gint(v_l) (const gint(v) *x); #define gintv_l(X) ((X)->l) gint(vs) gint(v_h) (const gint(v) *x); #define gintv_h(X) ((X)->h) #define gintv_true(X) (!gintv_contains((X),0.0)) #define gintv_false(X) ((X)->l == 0 && (X)->h == 0) #define gintv_indet(X) ((!gintv_false(X))&&gintv_contains((X),0.0)) void gint(v_union) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_intersect) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_add) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_sub) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_neg) (gint(v) *X, const gint(v) *A); void gint(v_mul) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_div) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_sqrt) (gint(v) *X, const gint(v) *A); void gint(v_pow) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_exp) (gint(v) *X, const gint(v) *A); void gint(v_log) (gint(v) *X, const gint(v) *A); void gint(v_sin) (gint(v) *X, const gint(v) *A); void gint(v_cos) (gint(v) *X, const gint(v) *A); void gint(v_tan) (gint(v) *X, const gint(v) *A); void gint(v_asin) (gint(v) *X, const gint(v) *A); void gint(v_acos) (gint(v) *X, const gint(v) *A); void gint(v_atan) (gint(v) *X, const gint(v) *A); void gint(v_atan2) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_ceil) (gint(v) *X, const gint(v) *A); void gint(v_floor) (gint(v) *X, const gint(v) *A); void gint(v_fabs) (gint(v) *X, const gint(v) *A); void gint(v_fmod) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_eq) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_ne) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_lt) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_gt) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_ge) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_le) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_and) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_or) (gint(v) *X, const gint(v) *A, const gint(v) *B); void gint(v_not) (gint(v) *X, const gint(v) *A); void gint(v__if) (gint(v) *X, const gint(v) *A, const gint(v) *B, const gint(v) *C); #define gintv_solve_f_decl(X) int X (gint(v) *result, int nx, const gint(v) *x, void *data) #define gintv_solve_accept_decl(X) int X (gint(v) *result, int nx, const gint(v) *x, void *data, void *adata) gintv_solve_accept_decl(gint(v_in_tolerance)); /* result is true if width(x[i]) < *(gintvs*)adata for all i in [0,nx) */ int gint(v_solve) ( int nsolutions, gint(v) *solutions, gintv_solve_f_decl((*func)), int nx, const gint(v) *xspace, void *data, gintv_solve_accept_decl((*accept)), void *adata, int stack_depth ); /* ** Given a nx-dimensional solution space (xspace) and a function (func) of ** nx parameters, ** find up to nsolutions where: ** func(x) is {1,1} (positively true) and accept(x,f(x)) is (1,1) (positively true) ** ** returns the number of nx-dimensional intervals where func(x) */ /* Merges any nx-dimensional intervals +-----+-----+ +-----------+ | | | | | | | | -> | | +-----+-----+ +-----------+ */ int gint(v_merge_adjacent) (int nv, int nx, gint(v) *x); /* returns the new number of nx-dimensional intervals */ /* Merges any nx-dimensional intervals +-----+ +-----------+ | | | | +-----+ | | | | | | | | | | | -> | | +-----+ | | | | | | | | | | | +-----+ +-----------+ */ int gint(v_merge_aggregate) (int nv, int nx, gint(v) *x); /* returns the new number of nx-dimensional intervals */ #ifdef __cplusplus } #endif #ifdef __cplusplus #define gintv_OP(OP,AOP,FUNC) \ inline gint(v) operator OP (const gint(v) &a, const gint(v) &b) { gint(v) t; gint(v_##FUNC)(&t, &a, &b); return t; } \ inline gint(v) operator OP (const gint(v) &a, const gint(vs) &b) { gint(v) t, _b(b); gint(v_##FUNC)(&t, &a, &_b); return t; } \ inline gint(v) operator OP (const gint(vs) &a, const gint(v) &b) { gint(v) t, _a(a); gint(v_##FUNC)(&t, &_a, &b); return t; } \ inline gint(v) & gint(v) :: operator AOP (const gint(v) &b) { gint(v_##FUNC)(this, this, &b); return (*this); } \ inline gint(v) & gint(v) :: operator AOP (const gint(vs) &b) { gint(v) _b(b); gint(v_##FUNC)(this, this, &_b); return (*this); } \ gintv_OP(+,+=,add); gintv_OP(-,-=,sub); gintv_OP(*,*=,mul); gintv_OP(/,/=,div); #undef gintv_OP #endif #endif gmv0.9/src/gintv/merge.c0100644000175200017560000000660606663227017015541 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_gintv_merge_c__ #define __rcs_id_gintv_merge_c__ static const char __rcs_id_gintv_merge_c[] = "$Id: merge.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $"; #endif #endif /* __rcs_id__ */ #include "gintv.h" int gint(v_merge_adjacent)(int nv, int nx, gint(v) *x) /* ** Merge all x[i] ** where x[i][k].l = x[j][k].h ** and (x[i][q] = x[j][q] where q != k) ** where 0 <= k < nv ** where 0 <= i < nx */ { int i, j, k, l; /* loop p0 */ gint(v) *p0; restart: for ( i = nv, p0 = x; i -- > 0; p0 += nx ) { gint(v) *p1; #ifdef GINTV_MERGE_DEBUG gint(v_print)(stderr, "p0 = ", nx, p0, "\n"); #endif /* loop p1 */ for ( k = nv, p1 = x; k -- > 0; p1 += nx) { if ( k == i ) { continue; } #ifdef GINTV_MERGE_DEBUG gint(v_print)(stderr, "p1 = ", nx, p1, "\n"); #endif /* Try to find split at parm j */ for ( j = nx; j -- > 0; ) { /* Determine p0[q] == p1[q] && p0[j].l == p1[j].h */ for ( l = nx; l -- > 0; ) { if ( l == j ) { if ( ! (p0[j].h == p1[j].l || p0[j].l == p1[j].h) ) goto next_j; } else { if ( ! gintv_equal(&p0[l], &p1[l]) ) goto next_j; } } /* p0 and p1 were split at parm j */ /* Merge p1 onto p0 */ if ( p0[j].h == p1[j].l ) p0[j].h = p1[j].h; else if ( p0[j].l == p1[l].h ) p0[j].l = p1[j].l; #ifdef GINTV_MERGE_DEBUG gint(v_print)(stderr, "p1 merged p0 = ", nx, p0, "\n"); #endif /* Delete p1 */ p0 = p1 + nx; k *= nx; while ( k -- > 0 ) { *(p1 ++) = *(p0 ++); } nv --; /* Restart */ goto restart; next_j: ; } } } return nv; } int gint(v_merge_aggregate)(int nv, int nx, gint(v) *x) /* ** Merge all x[i] ** where x[i][k].l = x[j][k].h ** and (x[i][q] within x[j][q] where q != k) ** where 0 <= k < nv ** where 0 <= i < nx */ { int i, j, k, l; /* loop p0 */ gintv *p0; restart: for ( i = nv, p0 = x; i -- > 0; p0 += nx ) { gint(v) *p1; #ifdef GINTV_MERGE_DEBUG gint(v_print)(stderr, "p0 = ", nx, p0, "\n"); #endif /* loop p1 */ for ( k = nv, p1 = x; k -- > 0; p1 += nx) { if ( k == i ) { continue; } #ifdef GINTV_MERGE_DEBUG gint(v_print)(stderr, "p1 = ", nx, p1, "\n"); #endif /* Try to find split at parm j */ for ( j = nx; j -- > 0; ) { /* Determine p1[q] is adjacent to p1[q] */ for ( l = nx; l -- > 0; ) { if ( l == j ) { if ( ! (p0[j].h == p1[j].l || p0[j].l == p1[j].h) ) goto next_j; } else { if ( ! (gintv_contains(&p0[j], p1[j].l) && gintv_contains(&p0[j], p1[j].h)) ) goto next_j; } } /* p0 and p1 were adjacent at parm j */ /* Aggregate p1 into p0 */ for ( l = nx; l -- > 0; ) { gint(v_union)(&p0[l], &p0[l], &p1[l]); } #ifdef GINTV_MERGE_DEBUG gint(v_print)(stderr, "p1 aggregated into p0 = ", nx, p0, "\n"); #endif /* Delete p1 */ p0 = p1 + nx; k *= nx; while ( k -- > 0 ) { *(p1 ++) = *(p0 ++); } nv --; /* Restart */ goto restart; next_j: ; } } } return nv; } gmv0.9/src/gintv/solve.c0100644000175200017560000000642307262561654015573 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_gintv_solve_c__ #define __rcs_id_gintv_solve_c__ static const char __rcs_id_gintv_solve_c[] = "$Id: solve.c,v 1.3 2001/04/04 09:04:44 stephens Exp $"; #endif #endif /* __rcs_id__ */ #include "gintv.h" #include /* memcpy() */ #include #include #include //#define GINTV_SOLVE_DEBUG 1 #ifndef GINTV_SOLVE_DEBUG #define GINTV_SOLVE_DEBUG 0 #endif gintv_solve_accept_decl(gint(v_in_tolerance)) { while ( -- nx ) { if ( gintv_w(x) > (* (gint(vs)*) adata) ) { result->l = result->h = 0; return 0; } x ++; } result->l = result->h = 1; return 0; } int gint(v_solve) ( int maxnsolutions, gint(v) *solutions, gintv_solve_f_decl((*func)), int nx, const gintv *xspace, void *data, gintv_solve_accept_decl((*accept)), void *adata, int stack_depth ) { gint(v) f_x; int nsolutions = 0; gint(v) *sp; gint(v) *x_stack = alloca(sizeof(x_stack[0]) * nx * stack_depth); gint(v) *x = x_stack; int *parm_stack = alloca(sizeof(parm_stack[0]) * stack_depth); int *parm_stack_end = parm_stack + (stack_depth - 1); int *parm = parm_stack; sp = solutions; /* Initialize stack */ *parm = 0; memcpy(x, xspace, sizeof(x[0]) * nx); while ( parm >= parm_stack ) { /* Evaluate the function */ if ( (func)(&f_x, nx, x, data) ) { return -1; } #if GINTV_SOLVE_DEBUG fprintf(stderr, ": %3d %1d ", parm - parm_stack, *parm); gint(v_print)(stderr, "F(X)=", 1, &f_x, " "); gint(v_print)(stderr, "", nx, x, "\n"); #endif if ( gintv_false(&f_x) ) { /* Never true? x cannot contain a solution */ /* Pop it */ x -= nx; parm --; #if GINTV_SOLVE_DEBUG fprintf(stderr, "POPPED\n"); #endif /* Do next one */ continue; } else if ( gintv_true(&f_x) || parm == parm_stack_end ) { /* F(x) is true, x is a solution */ pop_n_save: { int i; /* Save it */ for ( i = 0; i < nx; i ++) *(sp ++) = x[i]; nsolutions ++; if ( nsolutions >= maxnsolutions ) return nsolutions; /* Pop it */ x -= nx; parm --; #if GINTV_SOLVE_DEBUG fprintf(stderr, "POP AND SAVED\n"); #endif } /* Do next one */ continue; } else { /* indeterminate? check to see if its acceptable */ gint(v) A; if ( (*accept)(&A, nx, x, data, adata) ) return -1; #if GINTV_SOLVE_DEBUG gint(v_print)(stderr, "A(x) = ", 1, &A, "\n"); #endif if ( gintv_true(&A) ) goto pop_n_save; /* FALL THROUGH */ } /* indeterminate but not acceptable? split x on *parm */ { int i; /* X might contain an acceptable result */ /* split on *parm */ for ( i = 0; i < *parm; i ++ ) { (x + nx)[i] = x[i]; } { gint(vs) m = gintv_m(&x[i]); (x + nx)[i].h = x[i].h; x[i].h = m; (x + nx)[i].l = m; } for ( i ++ ; i < nx; i ++ ) { (x + nx)[i] = x[i]; } x += nx; /* Split the next top two params on the next parm */ if ( -- *parm < 0 ) { *parm = nx - 1; } parm[1] = *parm; parm ++; #if GINTV_SOLVE_DEBUG fprintf(stderr, "S:: %3d %3d ", (parm - parm_stack) - 1, *parm); gint(v_print)(stderr, "", nx, x - nx, "\n"); #endif } } return nsolutions; } gmv0.9/src/gintv/test1.c0100644000175200017560000000612606663227020015471 0ustar stephensstepheng #ifndef __rcs_id__ #ifndef __rcs_id_gintv_test1_c__ #define __rcs_id_gintv_test1_c__ static const char __rcs_id_gintv_test1_c[] = "$Id: test1.c,v 1.2 1999/02/19 09:25:36 stephensk Exp $"; #endif #endif /* __rcs_id__ */ /* This file demonstrates the use of interval arithmetic to solve multivariate equations. Imagine two functions: circle(u) = { cos(u), sin(u) }; curve(v) = { v, v * v }; To solve for u and v where circle(u) == curve(v) (there are two solutions) We begin with solution domains for u and v. We formulate the "solution found" interval function as: solution(u, v) = circle(u) == curve(v). We call gintv_solve() to recursively subdivide the solution domain until solution(u, v) is "true for all" or "true for some" and within the solution criteria (see gintv_in_tolerance). We then merge adjacents solutions, to produce 2 contigous solutions which are bounded by a known error. */ #include "gintv.h" #include #define func_1i_2o(X) void X (gintv *r, const gintv *u) typedef func_1i_2o((*fp1i2o)); static int solving = 0; static func_1i_2o(circle) { /* { cos(u), sin(u) } */ gintv_cos(r+0, u); gintv_sin(r+1, u); if ( ! solving ) { gintv_print(stdout, "circle(", 1, u, ") = "); gintv_print(stdout, "(", 2, r, ")\n"); } } static func_1i_2o(curve) { /* { u, u ^ 2 } */ *(r+0) = *u; gintv_mul(r+1, u, u); /* u ^ 2 */ if ( ! solving ) { gintv_print(stdout, "curve(", 1, u, ") = "); gintv_print(stdout, "(", 2, r, ")\n"); } } static int intersect(gintv *v, int nx, const gintv *x, void *data) { gintv r1[2]; gintv r2[2]; gintv t1[1], t2[1]; fp1i2o *func = data; if ( ! solving ) { printf("\n"); } /* circle(x[0]) == curve(x[1]) */ (func[0])(r1, x+0); (func[1])(r2, x+1); /* circle and curve are two dimensional */ gintv_eq(t1, r1+0, r2+0); gintv_eq(t2, r1+1, r2+1); gintv_and(v, t1, t2); if ( ! solving ) { gintv_print(stdout, "intersect(", 2, x, ") = "); gintv_print(stdout, "(", 1, v, ")\n"); } return 0; } int main(int argc, char **argv) { int nx = 2; fp1i2o func[] = { circle, curve }; gintv xspace[2] = { /* solution domains */ { 0.0, 3.1415926 * 2.0 }, /* circle */ { -2.0 , 2.0 } /* curve */ }; void *t_func = intersect; gintv solutions[15]; int nsolutions = 15; gintvs tolerance = 1e-8; int i; solving = 1; nsolutions = gintv_solve( nsolutions, solutions, t_func, nx, xspace, func, gintv_in_tolerance, &tolerance, 128); solving = 0; printf("%d solutions\n", nsolutions); for ( i = 0; i < nsolutions; i ++ ) { gintv_print(stdout, "", nx, solutions + (i * nx), "\n"); } printf("\nafter merge:\n"); nsolutions = gintv_merge_adjacent(nsolutions, nx, solutions); printf("%d solutions\n", nsolutions); for ( i = 0; i < nsolutions; i ++ ) { gintv_print(stdout, "", nx, solutions + (i * nx), "\n"); } for ( i = 0; i < nsolutions; i ++ ) { gintv f[2]; printf("\nsolution %d\n", i); (func[0])(f, solutions + (nx * i)); (func[1])(f, solutions + (nx * i) + 1); } return 0; } gmv0.9/src/gintv/mak_gen/0040755000175200017560000000000007262475344015676 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/0040755000175200017560000000000007252753430017570 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/od/0040755000175200017560000000000007250012545020163 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/od/build_vars.h0100744000175200017560000000035507254311366022476 0ustar stephensstepheng/* DO NOT MODIFY Generated by maks/pre.mak. */ #define BUILD_TARGET "CYGWIN_98-4.10" #define BUILD_DATE "Thu Mar 15 22:13:21 2001" #define BUILD_HOST "ION02" #define BUILD_USER "stephens" #define BUILD_ROOT "/home/stephens/ion/src/gmv" gmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/odd/0040755000175200017560000000000007250012561020325 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/odd/gintv.o0100744000175200017560000006141707250012722021642 0ustar stephensstephengLx\E.text@ X9 .data@.bss.stab!Z+B.stabstr;B$Id: gintv.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $%s[%.20g, %.20g] UE PhwEPEvE;E|JE‰UD$E‰U$hzEP E뮉EPhwEP]U8EE ]E]E]؋UЉUUԉUU؉UU܉UUUPUPUP ]U8EE ]E]E]E]؋UЉUUԉUU؉UU܉UUUPUPUP ]UE]UE@]UE UEuE E]E U@ZEu E @E@]vE$EE$EXv‰ kv]UE U]E U@B]E$+EE$:EXv‰랉]UE Ub]E U@"]E$EE$EXv‰랉]UE @]E ]vE$OEE$^EXv‰뢉]U(E U ]E UJ]E U@ ]E U@J]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$.EXv v]U(E U2]E Ur]E U@2]E U@r]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$EXv v]UE $$EE @$$EX랉]U(E$E $]E@$E $]E$E @$]E@$E @$]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$EXv v]UE $$EE @$$EX랉]UE $$4EE @$$/EX랉]-DT! @@UHE  $]E @ ]E]È@s.E E@@ ?v։ $E$]E $]E @$]E]È@sOED@u>E EEE]EuEE؋EXƉE]È@sfED@uUE]EuEE؃$^Eh?joEX뮉E]Eu EEEEXYFvE؃$EE$EXv‰놉]-DT!?U(E H]E H@]EEEEEEEEEPEP]É-DT!?-DT! @UE $]E @$]EEE@t%EEXovމE $$|EE @$$wEX랉]UE $$ EE @$$EX랉]UE @$]E $]E${EE$EXv‰놉]UE $$EE @$$EX랉]U(E$E $]E@$E $]E$E @$]E@$E @$]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$F EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$ EXv v]UEU @EtE U@Et1E@E@@ ҉E U BD@u]E U@D@uFEUBD@u/vE@?E@@ ?5։E@E@@ ? ։]UEU @EtE U@Et1E@?E@@ ?҉E U BD@u]E U@D@uFEUBD@u/vE@E@@ 5։E@E@@ ? ։]UEU @È@s.E@E@@ y։E U@Eu/vE@?E@@ ?5։E@E@@ ? ։]UE UZÈ@s.E@E@@ y։E U@Eu/vE@?E@@ ?5։E@E@@ ? ։]UE PEPEPn]ÍvUE PEPEP]ÍvUE D@uE @E@t.ED@uIE@E@t3vE@E@@ ҉E D@uiE @D@uUED@uBE@D@u.E@?E@@ ?5։E@E@@ ? ։]UE D@unE @D@uZED@uGE@D@u3vE@E@@ ҉E D@uE @E@t1vED@uEE@E@t/vE@?E@@ ?5։E@E@@ ? ։]UE D@uFE @D@u2E@?E@@ ?҉E D@uAE @D@u-E@E@@ 5։E@E@@ ? ։]UE D@u3E @D@uEU JHJHR P `E D@u5E @D@u!EU JHJHR P vEPEPEP]ÐUE $$dEE @$$_EX랉]UE $$EE @$$EX랉]U(E Eu7E @Eu#EU JHJHR P E EutE @EucvE @]E ]vE$EE$"EXgv‰뢉E@EEU U BEu U  U BEX뮉]U(E$E $]E@$E $]E$E @$]E@$E @$]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$NEXv v]6T7h8};<@E SUjVYcdhijk2lImbnyop~  , C [ q   Z f J u24!*dx]$     DDDDD4DuD|DD$$$( DDD3DLDL19L$TA$!xP Y D!D"D#9D$RD$Rb j r"R$Zz$--D-D-D- $$..D.D.D. $$utt tDuDvDwDwvv$$z yy yDzD{D|lD|l'{0{dl$p9$K~U~ _~DDDlDlirdl$p{$x DDDhDh`h$l$ DDD(($,$# -DDD(7@IR($,[$<nx DDDl$p$ DDDxx$|$(  DDDl$p$  DDDl$p"$ 4> DDD8DND|DDDDD0DSDD$D$HQZiu$$($P DDD?DRDRR$V$ DDDYDkDDD$$ DDDl$p$0!+ DDD5>|$G$Zd DDDl$pn$( DDDxx$|$ DDD0D`DDD$$ DDD0D`DDD$"$3= GDDDDHD]DD$Q$hbl vDDDDHD]DD$$$ DDD$!$H DDD$!$l DDDXDDDD0$4$) 3DDDQDDDD4$8=$OY DDD*D \D D D $c$u DDD-DIDLDsDDD$$h DDDl$p$ DDDl$p$ H  D D!D"-D$PD%qD'D((D((%%t($,%$*t8*B* L*D*D*D*xV*_*h*q*x$|z$DCDDDEDFDF@C $$H GDHDIDJDJ@G $d: gintv.c/home/stephens/ion/src/gintv/gintv.cint:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_gintv_gintv_c:S(0,20)=ar(0,1);0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,1);0;54;(0,2)/usr/include/stdio.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(4,1)=(0,1)__uint32_t:t(4,2)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hsize_t:t(5,1)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(6,1)=(6,2)=*(0,19)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/sys/types.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hptrdiff_t:t(12,1)=(0,1)wchar_t:t(12,2)=(0,9)wint_t:t(12,3)=(0,4)/usr/include/machine/types.hu_char:t(11,1)=(0,11)u_short:t(11,2)=(0,9)u_int:t(11,3)=(0,4)u_long:t(11,4)=(0,5)ushort:t(11,5)=(0,9)uint:t(11,6)=(0,4)clock_t:t(11,7)=(0,5)time_t:t(11,8)=(0,3)timespec:T(11,9)=s8tv_sec:(11,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(11,10)=s16it_interval:(11,9),0,64;it_value:(11,9),64,64;;daddr_t:t(11,11)=(0,3)caddr_t:t(11,12)=(11,13)=*(0,2)ino_t:t(11,14)=(0,5)vm_offset_t:t(11,15)=(0,5)vm_size_t:t(11,16)=(0,5)int8_t:t(11,17)=(0,2)u_int8_t:t(11,18)=(0,11)int16_t:t(11,19)=(0,8)u_int16_t:t(11,20)=(0,9)int32_t:t(11,21)=(0,1)u_int32_t:t(11,22)=(0,4)int64_t:t(11,23)=(0,6)u_int64_t:t(11,24)=(0,7)register_t:t(11,25)=(11,21)dev_t:t(11,26)=(0,8)off_t:t(11,27)=(0,3)uid_t:t(11,28)=(0,9)gid_t:t(11,29)=(0,9)pid_t:t(11,30)=(0,1)key_t:t(11,31)=(0,3)ssize_t:t(11,32)=(0,3)addr_t:t(11,33)=(11,13)mode_t:t(11,34)=(0,1)nlink_t:t(11,35)=(0,9)fd_mask:t(11,36)=(0,3)_types_fd_set:T(11,37)=s8fds_bits:(11,38)=ar(0,1);0;1;(11,36),0,64;;_types_fd_set:t(11,39)=(11,37)tm:T(8,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(7,1)=(4,2)_glue:T(7,2)=s12_next:(7,3)=*(7,2),0,32;_niobs:(0,1),32,32;_iobs:(7,4)=*(7,5)=xs__sFILE:,64,32;;_Bigint:T(7,6)=s24_next:(7,7)=*(7,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(7,8)=ar(0,1);0;0;(7,1),160,32;;_atexit:T(7,9)=s136_next:(7,10)=*(7,9),0,32;_ind:(0,1),32,32;_fns:(7,11)=ar(0,1);0;31;(7,12)=*(7,13)=f(0,19),64,1024;;__sbuf:T(7,14)=s8_base:(7,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(7,16)=(0,3)__sFILE:T(7,5)=s88_p:(7,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(7,14),128,64;_lbfsize:(0,1),192,32;_cookie:(6,2),224,32;_read:(7,17)=*(7,18)=f(0,1),256,32;_write:(7,19)=*(7,20)=f(0,1),288,32;_seek:(7,21)=*(7,22)=f(7,16),320,32;_close:(7,23)=*(7,24)=f(0,1),352,32;_ub:(7,14),384,64;_up:(7,15),448,32;_ur:(0,1),480,32;_ubuf:(7,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(7,26)=ar(0,1);0;0;(0,11),536,8;_lb:(7,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(7,27)=*(7,28)=xs_reent:,672,32;;_reent:T(7,28)=s752_errno:(0,1),0,32;_stdin:(7,4),32,32;_stdout:(7,4),64,32;_stderr:(7,4),96,32;_inc:(0,1),128,32;_emergency:(7,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(7,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(7,31)=*(7,32)=f(0,19),480,32;_result:(7,7),512,32;_result_k:(0,1),544,32;_p5s:(7,7),576,32;_freelist:(7,33)=*(7,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(11,13),672,32;_new:(7,34)=u240_reent:(7,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(11,13),32,32;_asctime_buf:(7,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(8,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(7,37)=s240_nextf:(7,38)=ar(0,1);0;29;(7,15),0,960;_nmalloc:(7,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(7,10),2624,32;_atexit0:(7,9),2656,1088;_sig_func:(7,40)=*(7,41)=*(7,42)=f(0,19),3744,32;__sglue:(7,2),3776,96;__sf:(7,43)=ar(0,1);0;2;(7,5),3872,2112;;fpos_t:t(2,1)=(7,16)FILE:t(2,2)=(7,5)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/float.hgintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/math.h/usr/include/machine/ieeefp.h__dmath:T(17,1)=u8i:(17,2)=ar(0,1);0;1;(4,2),0,64;d:(0,13),0,64;;exception:T(17,3)=s40type:(0,1),0,32;name:(11,13),32,32;arg1:(0,13),64,64;arg2:(0,13),128,64;retval:(0,13),192,64;err:(0,1),256,32;;__fdlibm_version:T(17,4)=e__fdlibm_ieee:-1,__fdlibm_svid:0,__fdlibm_xopen:1,__fdlibm_posix:2,;gintv_print:F(0,19)fp:p(0,21)=*(2,2)b:p(7,30)nx:p(0,1)x:p(0,22)=*(1,4)e:p(7,30)j:(0,1)gintv_s:F(1,4)a:p(1,2)a:(1,2)A:(1,4)gintv_v:F(1,4)a:p(1,2)b:p(1,2)a:(1,2)b:(1,2)A:(1,4)gintv_l:F(1,2)x:p(0,22)gintv_h:F(1,2)x:p(0,22)gintv_union:F(0,19)X:p(0,23)=*(1,4)A:p(0,22)B:p(0,22)_a:(1,2)_b:(1,2)gintv_add:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)_a:(1,2)_b:(1,2)gintv_sub:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)_a:(1,2)_b:(1,2)gintv_neg:F(0,19)X:p(0,23)A:p(0,22)_a:(1,2)_b:(1,2)gintv_mul:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_div:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_sqrt:F(0,19)X:p(0,23)A:p(0,22)gintv_pow:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_exp:F(0,19)X:p(0,23)A:p(0,22)gintv_log:F(0,19)X:p(0,23)A:p(0,22)gintv_cos:F(0,19)X:p(0,23)A:p(0,22)ap:(1,2)bp:(1,2)mod_ap_2:(1,2)cos_a:(1,2)cos_b:(1,2)gintv_sin:F(0,19)X:p(0,23)A:p(0,22)B:(1,4)gintv_tan:F(0,19)X:p(0,23)A:p(0,22)ap:(1,2)bp:(1,2)gintv_asin:F(0,19)X:p(0,23)A:p(0,22)gintv_acos:F(0,19)X:p(0,23)A:p(0,22)_a:(1,2)_b:(1,2)gintv_atan:F(0,19)X:p(0,23)A:p(0,22)gintv_atan2:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_eq:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_ne:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_lt:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_gt:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_ge:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_le:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_and:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_or:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_not:F(0,19)X:p(0,23)A:p(0,22)gintv__if:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)C:p(0,22)gintv_ceil:F(0,19)X:p(0,23)A:p(0,22)gintv_floor:F(0,19)X:p(0,23)A:p(0,22)gintv_fabs:F(0,19)X:p(0,23)A:p(0,22)_a:(1,2)_b:(1,2)gintv_fmod:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)FIX_MIN:f(1,2)x:p(1,2)x:r(1,2)FIX_MAX:f(1,2)x:p(1,2)x:r(1,2)-D-D-DVCCBB B0 BB Ao A @ @0 -= ?O -u - - > = = -[-k---?- -?9-D-j<<;;H:a:99E8g888??77>>>> -, -- --(---(---`- - -| -$ - -t - -p - --D----x--t---$---t----- -t-L--T--.fileggintv.c%=@U _gintv_s$ _gintv_vx _gintv_l _gintv_h b o z x   <  (      P   0   ( % / 9 Ch M$ WH al l v  h  H t _FIX_MIN _FIX_MAX  .text: 9.data.bss.stab+.stabstr_floor _atan2 _atan _acos _asin _tan _cos _fmod _ceil _log _exp _pow _sqrt _fprintf gcc2_compiled.___gnu_compiled_c___rcs_id_gintv_gintv_c___rcs_id_gintv_gintv_h_gintv_print_gintv_union_gintv_add_gintv_sub_gintv_neg_gintv_mul_gintv_div_gintv_sqrt_gintv_pow_gintv_exp_gintv_log_gintv_cos_gintv_sin_gintv_tan_gintv_asin_gintv_acos_gintv_atan_gintv_atan2_gintv_eq_gintv_ne_gintv_lt_gintv_gt_gintv_ge_gintv_le_gintv_and_gintv_or_gintv_not_gintv__if_gintv_ceil_gintv_floor_gintv_fabs_gintv_fmodgmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/odd/solve.o0100744000175200017560000002364207250012724021643 0ustar stephensstephengL%.textD% .data@.bss.stab |l%B.stabstr/B$Id: solve.c,v 1.2 1999/02/19 09:25:36 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $UM } u9EU@"EEEEuEUR1E뾉EUR1v]Ít&?UdSEE(‰UBЉEEEE(P‰‰E܋E(PEЉE؋E܉EԋE EEE‰PEPEPE;EsvEPEPEPEP]Ӄt ED@u+ED@uE‰)EEEuEÈ@s E;EtyEE;E|6EUЉщM\X\XT P EEEE;E| UvE‰)EE\E$PEPEPEPEP] Ӄ t EuEÈ@r /vEEԋU;|HEUЉщʉEUЉщM\X\XT P E뭐EЉ‰UMЉˉ]D ]EUЉщʉEUЉщMDXEЉ‰UE\EUЉщUEEАE;E|JEUЉщʉEUЉщM\X\XT P E뭐E‰EE8} EԋUJEԃUԋ EU]]Ð/ d'd/^x!m /Tn*Th$$@q.rFJ ;ux (5>6T7h8};<@E SUjVYcdhijk2lImbnyop~  , C [ q   Z f J u24!*@z$x DDDD1D>DDDHDLDYD]$d$,"# $4%>&M'Y( w)$+(D,D-D.D0D19D2?D3hD4D6D9D:D<D>D?DHDKDLDQDR!DVTDYTDZhDYD\D^D_DbDcDgDjDkDmDoDpDuDv Dy(D}(D(D<D~DDDDDDD$DfDlDyDDDDDDDD-./01234VTm(}('$dsolve.c/home/stephens/ion/src/gintv/solve.cint:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_gintv_solve_c:S(0,20)=ar(0,1);0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,1);0;54;(0,2)/usr/include/stdio.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(4,1)=(0,1)__uint32_t:t(4,2)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hsize_t:t(5,1)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(6,1)=(6,2)=*(0,19)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/sys/types.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hptrdiff_t:t(12,1)=(0,1)wchar_t:t(12,2)=(0,9)wint_t:t(12,3)=(0,4)/usr/include/machine/types.hu_char:t(11,1)=(0,11)u_short:t(11,2)=(0,9)u_int:t(11,3)=(0,4)u_long:t(11,4)=(0,5)ushort:t(11,5)=(0,9)uint:t(11,6)=(0,4)clock_t:t(11,7)=(0,5)time_t:t(11,8)=(0,3)timespec:T(11,9)=s8tv_sec:(11,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(11,10)=s16it_interval:(11,9),0,64;it_value:(11,9),64,64;;daddr_t:t(11,11)=(0,3)caddr_t:t(11,12)=(11,13)=*(0,2)ino_t:t(11,14)=(0,5)vm_offset_t:t(11,15)=(0,5)vm_size_t:t(11,16)=(0,5)int8_t:t(11,17)=(0,2)u_int8_t:t(11,18)=(0,11)int16_t:t(11,19)=(0,8)u_int16_t:t(11,20)=(0,9)int32_t:t(11,21)=(0,1)u_int32_t:t(11,22)=(0,4)int64_t:t(11,23)=(0,6)u_int64_t:t(11,24)=(0,7)register_t:t(11,25)=(11,21)dev_t:t(11,26)=(0,8)off_t:t(11,27)=(0,3)uid_t:t(11,28)=(0,9)gid_t:t(11,29)=(0,9)pid_t:t(11,30)=(0,1)key_t:t(11,31)=(0,3)ssize_t:t(11,32)=(0,3)addr_t:t(11,33)=(11,13)mode_t:t(11,34)=(0,1)nlink_t:t(11,35)=(0,9)fd_mask:t(11,36)=(0,3)_types_fd_set:T(11,37)=s8fds_bits:(11,38)=ar(0,1);0;1;(11,36),0,64;;_types_fd_set:t(11,39)=(11,37)tm:T(8,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(7,1)=(4,2)_glue:T(7,2)=s12_next:(7,3)=*(7,2),0,32;_niobs:(0,1),32,32;_iobs:(7,4)=*(7,5)=xs__sFILE:,64,32;;_Bigint:T(7,6)=s24_next:(7,7)=*(7,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(7,8)=ar(0,1);0;0;(7,1),160,32;;_atexit:T(7,9)=s136_next:(7,10)=*(7,9),0,32;_ind:(0,1),32,32;_fns:(7,11)=ar(0,1);0;31;(7,12)=*(7,13)=f(0,19),64,1024;;__sbuf:T(7,14)=s8_base:(7,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(7,16)=(0,3)__sFILE:T(7,5)=s88_p:(7,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(7,14),128,64;_lbfsize:(0,1),192,32;_cookie:(6,2),224,32;_read:(7,17)=*(7,18)=f(0,1),256,32;_write:(7,19)=*(7,20)=f(0,1),288,32;_seek:(7,21)=*(7,22)=f(7,16),320,32;_close:(7,23)=*(7,24)=f(0,1),352,32;_ub:(7,14),384,64;_up:(7,15),448,32;_ur:(0,1),480,32;_ubuf:(7,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(7,26)=ar(0,1);0;0;(0,11),536,8;_lb:(7,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(7,27)=*(7,28)=xs_reent:,672,32;;_reent:T(7,28)=s752_errno:(0,1),0,32;_stdin:(7,4),32,32;_stdout:(7,4),64,32;_stderr:(7,4),96,32;_inc:(0,1),128,32;_emergency:(7,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(7,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(7,31)=*(7,32)=f(0,19),480,32;_result:(7,7),512,32;_result_k:(0,1),544,32;_p5s:(7,7),576,32;_freelist:(7,33)=*(7,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(11,13),672,32;_new:(7,34)=u240_reent:(7,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(11,13),32,32;_asctime_buf:(7,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(8,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(7,37)=s240_nextf:(7,38)=ar(0,1);0;29;(7,15),0,960;_nmalloc:(7,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(7,10),2624,32;_atexit0:(7,9),2656,1088;_sig_func:(7,40)=*(7,41)=*(7,42)=f(0,19),3744,32;__sglue:(7,2),3776,96;__sf:(7,43)=ar(0,1);0;2;(7,5),3872,2112;;fpos_t:t(2,1)=(7,16)FILE:t(2,2)=(7,5)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/float.hgintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)/usr/include/string.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hgintv_in_tolerance:F(0,1)result:p(0,21)=*(1,4)nx:p(0,1)x:p(0,22)=*(1,4)data:p(6,2)adata:p(6,2)gintv_solve:F(0,1)maxnsolutions:p(0,1)solutions:p(0,21)func:p(0,23)=*(0,24)=f(0,1)nx:p(0,1)xspace:p(0,22)data:p(6,2)accept:p(0,25)=*(0,26)=f(0,1)adata:p(6,2)stack_depth:p(0,1)f_x:(1,4)nsolutions:(0,1)sp:(0,21)x_stack:(0,21)x:(0,21)parm_stack:(0,27)=*(0,1)parm_stack_end:(0,27)parm:(0,27)i:(0,1)A:(1,4)i:(0,1)m:(1,2)G    ( x D  .filegsolve.c%=@Ux i .text.data.bss.stab .stabstr/__alloca_memcpy vgcc2_compiled.___gnu_compiled_c___rcs_id_gintv_solve_c___rcs_id_gintv_gintv_h_gintv_in_tolerance_gintv_solvegmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/odd/merge.o0100744000175200017560000002331307250012726021607 0ustar stephensstephengL$.text$ .data@.bss.stab $B.stabstrtB$Id: merge.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $U4SEEEEEMaEEEEEM1E;EuvE EEME EEME;EudE‰UMˉ]D E@t3E‰UMˉ]D E@tmfE‰UMˉ] D@u0E‰UMˉ]DD D@uvvE‰UMˉ]D D@u'E‰UMˉ]D \PvE‰UMˉ]D D@u E‰UMˉ] E ‰U‰UEE EvEM(EU JHJHR P EEΉMvE ‰EE ‰EU]ȉ]ÐU4SEEEEEMuEEEEEMEE;Eu#vE EEM E EEM=E;EuhE‰UMˉ]D E@t3E‰UMˉ]D E@tvE‰UMˉ] È@E‰UMˉ]\ È@s_E‰UMˉ]\ È@s2E‰UMˉ]D\ È@r vvE EEM@E‰URE‰URE‰UR뷍vE ‰U‰UEE EEM(EU JHJHR P EEΉMvE ‰EE ‰E~U]ȉ]Ð d'd/^x!m /Tn*Th$$@q.rFJ ;ux (5>6T7h8};<@E SUjVYcdhijk2lImbnyop~  , C [ q   Z f J u24!*$xF P Z DDDD$D"$D#@D$HD,PD/hD0D1D2D3D4D5HD/PD<XD=D?D@DGDI DJDK$DLHDMLDPOD,TD"\DVpDpDXDYDYks{$p$$d \\ \DdDeDkDl$Ds$Dt@DuHD}PDhDDDDDDDDDD DD"D,D8D\D`DcD}hDspDDkDDDeeeehl$$dmerge.c/home/stephens/ion/src/gintv/merge.cint:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_gintv_merge_c:S(0,20)=ar(0,1);0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,1);0;54;(0,2)/usr/include/stdio.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(4,1)=(0,1)__uint32_t:t(4,2)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hsize_t:t(5,1)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(6,1)=(6,2)=*(0,19)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/sys/types.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hptrdiff_t:t(12,1)=(0,1)wchar_t:t(12,2)=(0,9)wint_t:t(12,3)=(0,4)/usr/include/machine/types.hu_char:t(11,1)=(0,11)u_short:t(11,2)=(0,9)u_int:t(11,3)=(0,4)u_long:t(11,4)=(0,5)ushort:t(11,5)=(0,9)uint:t(11,6)=(0,4)clock_t:t(11,7)=(0,5)time_t:t(11,8)=(0,3)timespec:T(11,9)=s8tv_sec:(11,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(11,10)=s16it_interval:(11,9),0,64;it_value:(11,9),64,64;;daddr_t:t(11,11)=(0,3)caddr_t:t(11,12)=(11,13)=*(0,2)ino_t:t(11,14)=(0,5)vm_offset_t:t(11,15)=(0,5)vm_size_t:t(11,16)=(0,5)int8_t:t(11,17)=(0,2)u_int8_t:t(11,18)=(0,11)int16_t:t(11,19)=(0,8)u_int16_t:t(11,20)=(0,9)int32_t:t(11,21)=(0,1)u_int32_t:t(11,22)=(0,4)int64_t:t(11,23)=(0,6)u_int64_t:t(11,24)=(0,7)register_t:t(11,25)=(11,21)dev_t:t(11,26)=(0,8)off_t:t(11,27)=(0,3)uid_t:t(11,28)=(0,9)gid_t:t(11,29)=(0,9)pid_t:t(11,30)=(0,1)key_t:t(11,31)=(0,3)ssize_t:t(11,32)=(0,3)addr_t:t(11,33)=(11,13)mode_t:t(11,34)=(0,1)nlink_t:t(11,35)=(0,9)fd_mask:t(11,36)=(0,3)_types_fd_set:T(11,37)=s8fds_bits:(11,38)=ar(0,1);0;1;(11,36),0,64;;_types_fd_set:t(11,39)=(11,37)tm:T(8,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(7,1)=(4,2)_glue:T(7,2)=s12_next:(7,3)=*(7,2),0,32;_niobs:(0,1),32,32;_iobs:(7,4)=*(7,5)=xs__sFILE:,64,32;;_Bigint:T(7,6)=s24_next:(7,7)=*(7,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(7,8)=ar(0,1);0;0;(7,1),160,32;;_atexit:T(7,9)=s136_next:(7,10)=*(7,9),0,32;_ind:(0,1),32,32;_fns:(7,11)=ar(0,1);0;31;(7,12)=*(7,13)=f(0,19),64,1024;;__sbuf:T(7,14)=s8_base:(7,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(7,16)=(0,3)__sFILE:T(7,5)=s88_p:(7,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(7,14),128,64;_lbfsize:(0,1),192,32;_cookie:(6,2),224,32;_read:(7,17)=*(7,18)=f(0,1),256,32;_write:(7,19)=*(7,20)=f(0,1),288,32;_seek:(7,21)=*(7,22)=f(7,16),320,32;_close:(7,23)=*(7,24)=f(0,1),352,32;_ub:(7,14),384,64;_up:(7,15),448,32;_ur:(0,1),480,32;_ubuf:(7,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(7,26)=ar(0,1);0;0;(0,11),536,8;_lb:(7,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(7,27)=*(7,28)=xs_reent:,672,32;;_reent:T(7,28)=s752_errno:(0,1),0,32;_stdin:(7,4),32,32;_stdout:(7,4),64,32;_stderr:(7,4),96,32;_inc:(0,1),128,32;_emergency:(7,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(7,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(7,31)=*(7,32)=f(0,19),480,32;_result:(7,7),512,32;_result_k:(0,1),544,32;_p5s:(7,7),576,32;_freelist:(7,33)=*(7,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(11,13),672,32;_new:(7,34)=u240_reent:(7,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(11,13),32,32;_asctime_buf:(7,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(8,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(7,37)=s240_nextf:(7,38)=ar(0,1);0;29;(7,15),0,960;_nmalloc:(7,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(7,10),2624,32;_atexit0:(7,9),2656,1088;_sig_func:(7,40)=*(7,41)=*(7,42)=f(0,19),3744,32;__sglue:(7,2),3776,96;__sf:(7,43)=ar(0,1);0;2;(7,5),3872,2112;;fpos_t:t(2,1)=(7,16)FILE:t(2,2)=(7,5)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/float.hgintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)gintv_merge_adjacent:F(0,1)nv:p(0,1)nx:p(0,1)x:p(0,21)=*(1,4)i:(0,1)j:(0,1)k:(0,1)l:(0,1)p0:(0,21)p1:(0,21)gintv_merge_aggregate:F(0,1)nv:p(0,1)nx:p(0,1)x:p(0,21)i:(0,1)j:(0,1)k:(0,1)l:(0,1)p0:(0,21)p1:(0,21)   ( H   .filegmerge.c%=@Ux k  .text.data.bss.stab .stabstr gcc2_compiled.___gnu_compiled_c___rcs_id_gintv_merge_c___rcs_id_gintv_gintv_h_gintv_merge_adjacent_gintv_merge_aggregate_gintv_uniongmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/t/0040755000175200017560000000000007252753445020041 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/t/test1.exe0100744000175200017560000015067707252753526021622 0ustar stephensstephengMZ@ !L!This program cannot be run in DOS mode. $PELW׫: 88P@p.text34 `.dataP8@.bss `.idatap: .stab56>R.stabstr\68tBU=P@t}E%fEE ?fEmh\@w0]$Id: test1.c,v 1.2 1999/02/19 09:25:36 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $) = circle() (vUE PEP~E PEP=P@uHh@E Pjh@`@PR h@EPjh@`@PR ]curve(UEU JHJHR P E PE PEP=P@uHh@E PjhT@`@PR h@EPjh@`@PR ] intersect(USEE=P@uh@/EURURӃEURURӃEPEPEP!EPREPREPb!EPEPEP%=P@uHh@EPjh@`@PR h@EPjh@`@PR 1vx]ÉJM!@@%d solutions after merge: solution %d t&:0yE>U|WVS.EEE@E\@}о@E@DžT@ݝP@hPh@EPEPEPEPPP0P@Ph$@.Džv;|Dh@UщPEPh2@`@PR[ 묃h3@-PEPPPh$@W-Dž;|Dh@UщPEPh2@`@PR Dž;|PhB@,UщPP]ӃUщЍPRP]Ӄov1x[^_]Ð$Id: merge.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $U4SEEEEEMaEEEEEM1E;EuvE EEME EEME;EudE‰UMˉ]D E@t3E‰UMˉ]D E@tmfE‰UMˉ] D@u0E‰UMˉ]DD D@uvvE‰UMˉ]D D@u'E‰UMˉ]D \PvE‰UMˉ]D D@u E‰UMˉ] E ‰U‰UEE EvEM(EU JHJHR P EEΉMvE ‰EE ‰EU]ȉ]ÐU4SEEEEEMuEEEEEMEE;Eu#vE EEM E EEM=E;EuhE‰UMˉ]D E@t3E‰UMˉ]D E@tvE‰UMˉ] È@E‰UMˉ]\ È@s_E‰UMˉ]\ È@s2E‰UMˉ]D\ È@r vvE EEM@E‰URE‰URE‰UR@뷍vE ‰U‰UEE EEM(EU JHJHR P EEΉMvE ‰EE ‰E~U]ȉ]Ð$Id: solve.c,v 1.2 1999/02/19 09:25:36 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $UM } u9EU@"EEEEuEUR1E뾉EUR1v]Ít&?UdSEE(‰UBЉ#EEEE(P‰‰#E܋E(PEЉE؋E܉EԋE EEE‰PEPEP$E;EsvEPEPEPEP]Ӄt ED@u+ED@uE‰)EEEuEÈ@s E;EtyEE;E|6EUЉщM\X\XT P EEEE;E| UvE‰)EE\E$PEPEPEPEP] Ӄ t EuEÈ@r /vEEԋU;|HEUЉщʉEUЉщM\X\XT P E뭐EЉ‰UMЉˉ]D @]EUЉщʉEUЉщMDXEЉ‰UE\EUЉщUEEАE;E|JEUЉщʉEUЉщM\X\XT P E뭐E‰EE8} EԋUJEԃUԋ EU]]Ð$Id: gintv.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $%s[%.20g, %.20g] UE Ph @EP!EvE;E|JE‰UD$E‰U$h @EPV! E뮉EPh @EP7!]U8EE ]E]E]؋UЉUUԉUU؉UU܉UUUPUPUP ]U8EE ]E]E]E]؋UЉUUԉUU؉UU܉UUUPUPUP ]UE]UE@]UE UEuE E]E U@ZEu E @E@]vE$EE$EXv‰ kv]UE U]E U@B]E$+EE$:EXv‰랉]UE Ub]E U@"]E$EE$EXv‰랉]UE @]E ]vE$OEE$^EXv‰뢉]U(E U ]E UJ]E U@ ]E U@J]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$.EXv v]U(E U2]E Ur]E U@2]E U@r]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$EXv v]UE $$EE @$$EX랉]U(E$E $w]E@$E $U]E$E @$3]E@$E @$]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$EXv v]UE $$EE @$$EX랉]UE $~$4EE @$Q$/EX랉]-DT! @@UHE L,@$]E @L,@]E]È@s.ET,@E@@ ?v։\,@$E$n]E $M]E @$3]E]È@sOED@u>ET,@EEE]EuEE؋EXƉE]È@sfED@uUE]EuEE؃$^Eh?joEX뮉E]Eu EEEEXYFvE؃$EE$EXv‰놉]-DT!?U(E .@]E .@@]EEEEEEEEEPEP]É-DT!?-DT! @UE .@.@$;]E .@@.@$]EEE@t%E.@E/@XovމE $$|EE @$y$wEX랉]UE $.$ EE @$$EX랉]UE @$]E $]E${EE$EXv‰놉]UE $&$EE @$$EX랉]U(E$E $]E@$E $]E$E @$g]E@$E @$D]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$F EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$ EXv v]UEU @EtE U@Et1E@E@@ ҉E U BD@u]E U@D@uFEUBD@u/vE@?E@@ ?5։E@E@@ ? ։]UEU @EtE U@Et1E@?E@@ ?҉E U BD@u]E U@D@uFEUBD@u/vE@E@@ 5։E@E@@ ? ։]UEU @È@s.E@E@@ y։E U@Eu/vE@?E@@ ?5։E@E@@ ? ։]UE UZÈ@s.E@E@@ y։E U@Eu/vE@?E@@ ?5։E@E@@ ? ։]UE PEPEPn]ÍvUE PEPEP]ÍvUE D@uE @E@t.ED@uIE@E@t3vE@E@@ ҉E D@uiE @D@uUED@uBE@D@u.E@?E@@ ?5։E@E@@ ? ։]UE D@unE @D@uZED@uGE@D@u3vE@E@@ ҉E D@uE @E@t1vED@uEE@E@t/vE@?E@@ ?5։E@E@@ ? ։]UE D@uFE @D@u2E@?E@@ ?҉E D@uAE @D@u-E@E@@ 5։E@E@@ ? ։]UE D@u3E @D@uEU JHJHR P `E D@u5E @D@u!EU JHJHR P vEPEPEP]ÐUE $$dEE @$y$_EX랉]UE $$EE @$$EX랉]U(E Eu7E @Eu#EU JHJHR P E EutE @EucvE @]E ]vE$EE$"EXgv‰뢉E@EEU U BEu U  U BEX뮉]U(E$E $]E@$E $m]E$E @$K]E@$E @$(]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$NEXv v]xR Jx2>3>"Lxdz5678;<)@?ETUVY#c>dWhmijklmnop2~G\q # h L h } s ) J? W24 Yn!!&#P@$'@&& D'D)D*D,/D-8D.\D1$$5\@"4,4 D5D7D8"D:<D;ED<iD>$6$C@GBQB [BeBDCDD DG DIDJDN)DO>DRYDSpDTDVDWDXDZD[D[qDEFFG $$_\@^ ^ D_D`DaDb)Df9Dh@DiJDmVDn`DyD{D|D}D|D$D4DYDpDDDDDDD3DbDbDpDtDt#`,aKbkfxghikbt$d@ d@d@'Vpe'Lf"L$@u!t >R x2>3>"L $\@6 Q @ DDDD$D"$D#@D$HD,PD/hD0D1D2D3D4D5HD/PD<XD=D?D@DGDI DJDK$DLHDMLDPOD,TD"\DVpDpDXDYDYQYais$p$}$d@6\Q\ \DdDeDkDl$Ds$Dt@DuHD}PDhDDDDDDDDDD DD"D,D8D\D`DcD}hDspDDkDDDeQeYeaeihsl$$d@ d@d@'Vpe'Lf"L$@u!t >R x2>3>"L >$@Q $e5DDDD1D>DDDHDLDYD]$dB$,@U"j# |$Q%&e'( 5)$+(D,D-D.D0D19D2?D3hD4D6D9D:D<D>D?DHDKDLDQDR!DVTDYTDZhDYD\D^D_DbDcDgDjDkDmDoDpDuDv Dy(D}(D(D<D~DDDDDDD$DfDlDyDDDDDDDD-./012334VT?m(}(G$d? @ dD @OdD @'Vpe'Lf"LW$D @u!t >R x2>3>"L >?N$ @  Q $  DDDDD4DuD|DDQ$$h!@* DDD3DLDL3?L$T;$!!@* J D!D"D#9D$RD$R3 S ?"R$Z[$-"@j-D-D-D- $t$.("@j.D.D.D. $$u8"@tt tDuDvDwDwvv$$z"@yy yDzD{D|lD|l{{dl$p$L#@~~ ~DDDlDldl$p$#@ DDDhDh`h$l$($@ DDD( )2;($,D$T&@ DDD( )2;($,V$(@ DDDl$pi$(@ DDDx )2;x$|{$l+@ DDDl$p$+@ DDDl$p$d,@ DDD8DND|DDDDD0DSDD$D$$$($.@ DDD?DRDRR$V$ /@ DDDYDkDDD$$0@ DDDl$p)$t0@ DDD|$<$0@ DDDl$pO$l1@ DDDx )2;x$|c$3@ DDD0D`DDD$t$4@ DDD0D`DDD$$5@ DDDDHD]DD$$6@ DDDDHD]DD$$h7@ DDD$!$7@ DDD$!$7@ DDDXDDDD0$4$8@ DDDQDDDD4$8$:@ DDD*D \D D D $$:@ DDD-DIDLDsDDD$$;@ DDDl$p-$<@ DDDl$pA$ <@ D D!D"-D$PD%qD'D((D((%%t($,T$*=@** *D*D*D*x *)*2*;*x$|g$D<@@vCDDDEDFDF@C $$Hd@@vGDHDIDJDJ@G $d~@@dB@dB@'Vpe'Lf"L&`BEd* u J 4!p!:!" {"q"r" """C#p<#"#V$$l$)$G%^%%^&&'J3'h)--f---T.#" .x..5.6/7/81/;F/<Y/Do/E/H/R/S/W/X/Y0Z.0[E0\^0]u0^0_0i0k0m0n0o1p(1q?1tW1um1111"1.2_23o4"4X4Y4Z4[4\ 5^!5_75bM5he555656 m F6 n dB@test1.c/home/stephens/ion/src/gintv/int:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_gintv_test1_c:S(0,20)=ar(0,1);0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,1);0;54;(0,2)/usr/include/stdio.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(4,1)=(0,1)__uint32_t:t(4,2)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hsize_t:t(5,1)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(6,1)=(6,2)=*(0,19)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/include/sys/types.hptrdiff_t:t(12,1)=(0,1)wchar_t:t(12,2)=(0,9)wint_t:t(12,3)=(0,4)/usr/include/machine/types.hu_char:t(11,1)=(0,11)u_short:t(11,2)=(0,9)u_int:t(11,3)=(0,4)u_long:t(11,4)=(0,5)ushort:t(11,5)=(0,9)uint:t(11,6)=(0,4)clock_t:t(11,7)=(0,5)time_t:t(11,8)=(0,3)timespec:T(11,9)=s8tv_sec:(11,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(11,10)=s16it_interval:(11,9),0,64;it_value:(11,9),64,64;;daddr_t:t(11,11)=(0,3)caddr_t:t(11,12)=(11,13)=*(0,2)ino_t:t(11,14)=(0,5)vm_offset_t:t(11,15)=(0,5)vm_size_t:t(11,16)=(0,5)int8_t:t(11,17)=(0,2)u_int8_t:t(11,18)=(0,11)int16_t:t(11,19)=(0,8)u_int16_t:t(11,20)=(0,9)int32_t:t(11,21)=(0,1)u_int32_t:t(11,22)=(0,4)int64_t:t(11,23)=(0,6)u_int64_t:t(11,24)=(0,7)register_t:t(11,25)=(11,21)dev_t:t(11,26)=(0,8)off_t:t(11,27)=(0,3)uid_t:t(11,28)=(0,9)gid_t:t(11,29)=(0,9)pid_t:t(11,30)=(0,1)key_t:t(11,31)=(0,3)ssize_t:t(11,32)=(0,3)addr_t:t(11,33)=(11,13)mode_t:t(11,34)=(0,1)nlink_t:t(11,35)=(0,9)fd_mask:t(11,36)=(0,3)_types_fd_set:T(11,37)=s8fds_bits:(11,38)=ar(0,1);0;1;(11,36),0,64;;_types_fd_set:t(11,39)=(11,37)tm:T(8,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(7,1)=(4,2)_glue:T(7,2)=s12_next:(7,3)=*(7,2),0,32;_niobs:(0,1),32,32;_iobs:(7,4)=*(7,5)=xs__sFILE:,64,32;;_Bigint:T(7,6)=s24_next:(7,7)=*(7,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(7,8)=ar(0,1);0;0;(7,1),160,32;;_atexit:T(7,9)=s136_next:(7,10)=*(7,9),0,32;_ind:(0,1),32,32;_fns:(7,11)=ar(0,1);0;31;(7,12)=*(7,13)=f(0,19),64,1024;;__sbuf:T(7,14)=s8_base:(7,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(7,16)=(0,3)__sFILE:T(7,5)=s88_p:(7,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(7,14),128,64;_lbfsize:(0,1),192,32;_cookie:(6,2),224,32;_read:(7,17)=*(7,18)=f(0,1),256,32;_write:(7,19)=*(7,20)=f(0,1),288,32;_seek:(7,21)=*(7,22)=f(7,16),320,32;_close:(7,23)=*(7,24)=f(0,1),352,32;_ub:(7,14),384,64;_up:(7,15),448,32;_ur:(0,1),480,32;_ubuf:(7,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(7,26)=ar(0,1);0;0;(0,11),536,8;_lb:(7,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(7,27)=*(7,28)=xs_reent:,672,32;;_reent:T(7,28)=s752_errno:(0,1),0,32;_stdin:(7,4),32,32;_stdout:(7,4),64,32;_stderr:(7,4),96,32;_inc:(0,1),128,32;_emergency:(7,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(7,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(7,31)=*(7,32)=f(0,19),480,32;_result:(7,7),512,32;_result_k:(0,1),544,32;_p5s:(7,7),576,32;_freelist:(7,33)=*(7,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(11,13),672,32;_new:(7,34)=u240_reent:(7,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(11,13),32,32;_asctime_buf:(7,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(8,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(7,37)=s240_nextf:(7,38)=ar(0,1);0;29;(7,15),0,960;_nmalloc:(7,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(7,10),2624,32;_atexit0:(7,9),2656,1088;_sig_func:(7,40)=*(7,41)=*(7,42)=f(0,19),3744,32;__sglue:(7,2),3776,96;__sf:(7,43)=ar(0,1);0;2;(7,5),3872,2112;;fpos_t:t(2,1)=(7,16)FILE:t(2,2)=(7,5)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/float.hgintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)fp1i2o:t(0,21)=(0,22)=*(0,23)=f(0,19)solving:S(0,1)circle:f(0,19)r:p(0,24)=*(1,4)u:p(0,25)=*(1,4)curve:f(0,19)r:p(0,24)u:p(0,25)intersect:f(0,1)v:p(0,24)nx:p(0,1)x:p(0,25)data:p(6,2)r1:(0,26)=ar(0,1);0;1;(1,4)r2:(0,27)=ar(0,1);0;1;(1,4)t1:(0,28)=ar(0,1);0;0;(1,4)t2:(0,29)=ar(0,1);0;0;(1,4)func:(0,30)=*(0,21)main:F(0,1)argc:p(0,1)argv:p(0,31)=*(11,13)nx:(0,1)func:(0,32)=ar(0,1);0;1;(0,21)xspace:(0,33)=ar(0,1);0;1;(1,4)t_func:(6,2)solutions:(0,34)=ar(0,1);0;14;(1,4)nsolutions:(0,1)tolerance:(1,2)i:(0,1)f:(0,35)=ar(0,1);0;1;(1,4)merge.c__rcs_id_gintv_merge_c:S(0,20)=ar(0,1);0;54;(0,2)gintv_merge_adjacent:F(0,1)nv:p(0,1)x:p(0,21)=*(1,4)j:(0,1)k:(0,1)l:(0,1)p0:(0,21)p1:(0,21)gintv_merge_aggregate:F(0,1)x:p(0,21)solve.c__rcs_id_gintv_solve_c:S(0,20)=ar(0,1);0;54;(0,2)/usr/include/string.hgintv_in_tolerance:F(0,1)result:p(0,21)=*(1,4)x:p(0,22)=*(1,4)adata:p(6,2)gintv_solve:F(0,1)maxnsolutions:p(0,1)solutions:p(0,21)func:p(0,23)=*(0,24)=f(0,1)xspace:p(0,22)accept:p(0,25)=*(0,26)=f(0,1)stack_depth:p(0,1)f_x:(1,4)sp:(0,21)x_stack:(0,21)x:(0,21)parm_stack:(0,27)=*(0,1)parm_stack_end:(0,27)parm:(0,27)A:(1,4)m:(1,2)gintv.c__rcs_id_gintv_gintv_c:S(0,20)=ar(0,1);0;54;(0,2)/usr/include/math.h/usr/include/machine/ieeefp.h__dmath:T(17,1)=u8i:(17,2)=ar(0,1);0;1;(4,2),0,64;d:(0,13),0,64;;exception:T(17,3)=s40type:(0,1),0,32;name:(11,13),32,32;arg1:(0,13),64,64;arg2:(0,13),128,64;retval:(0,13),192,64;err:(0,1),256,32;;__fdlibm_version:T(17,4)=e__fdlibm_ieee:-1,__fdlibm_svid:0,__fdlibm_xopen:1,__fdlibm_posix:2,;gintv_print:F(0,19)fp:p(0,21)=*(2,2)b:p(7,30)e:p(7,30)gintv_s:F(1,4)a:p(1,2)a:(1,2)gintv_v:F(1,4)b:p(1,2)b:(1,2)gintv_l:F(1,2)x:p(0,22)gintv_h:F(1,2)gintv_union:F(0,19)X:p(0,23)=*(1,4)A:p(0,22)B:p(0,22)_a:(1,2)_b:(1,2)gintv_add:F(0,19)X:p(0,23)gintv_sub:F(0,19)gintv_neg:F(0,19)gintv_mul:F(0,19)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_div:F(0,19)gintv_sqrt:F(0,19)gintv_pow:F(0,19)gintv_exp:F(0,19)gintv_log:F(0,19)gintv_cos:F(0,19)ap:(1,2)bp:(1,2)mod_ap_2:(1,2)cos_a:(1,2)cos_b:(1,2)gintv_sin:F(0,19)B:(1,4)gintv_tan:F(0,19)gintv_asin:F(0,19)gintv_acos:F(0,19)gintv_atan:F(0,19)gintv_atan2:F(0,19)gintv_eq:F(0,19)gintv_ne:F(0,19)gintv_lt:F(0,19)gintv_gt:F(0,19)gintv_ge:F(0,19)gintv_le:F(0,19)gintv_and:F(0,19)gintv_or:F(0,19)gintv_not:F(0,19)gintv__if:F(0,19)C:p(0,22)gintv_ceil:F(0,19)gintv_floor:F(0,19)gintv_fabs:F(0,19)gintv_fmod:F(0,19)FIX_MIN:f(1,2)x:p(1,2)x:r(1,2)FIX_MAX:f(1,2)/cygnus/netrel/build/gcc-2.95.2-6/gcc//cygnus/netrel/src/gcc-2.95.2-6/gcc/libgcc2.ctconfig.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/gansidecl.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/../include/ansidecl.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/config/i386/xm-i386.htm.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/config/i386/cygwin.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/config/i386/gas.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/config/i386/i386.hprocessor_costs:T(8,1)=s28add:(0,1),0,32;lea:(0,1),32,32;shift_var:(0,1),64,32;shift_const:(0,1),96,32;mult_init:(0,1),128,32;mult_bit:(0,1),160,32;divide:(0,1),192,32;;processor_type:T(8,2)=ePROCESSOR_I386:0,PROCESSOR_I486:1,PROCESSOR_PENTIUM:2,PROCESSOR_PENTIUMPRO:3,PROCESSOR_K6:4,;reg_class:T(8,3)=eNO_REGS:0,AREG:1,DREG:2,CREG:3,BREG:4,AD_REGS:5,Q_REGS:6,SIREG:7,DIREG:8,INDEX_REGS:9,GENERAL_REGS:10,FP_TOP_REG:11,FP_SECOND_REG:12,FLOAT_REGS:13,ALL_REGS:14,LIM_REG_CLASSES:15,;i386_args:T(8,4)=s12words:(0,1),0,32;nregs:(0,1),32,32;regno:(0,1),64,32;;CUMULATIVE_ARGS:t(8,5)=(8,4)/cygnus/netrel/src/gcc-2.95.2-6/gcc/config/i386/bsd.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/config/i386/unix.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/config/dbxcoff.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/config/i386/xm-cygwin.h/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/stdlib.h/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/_ansi.h/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/sys/config.h__int32_t:t(15,1)=(0,1)__uint32_t:t(15,2)=(0,4)include/stddef.hsize_t:t(16,1)=(0,4)wchar_t:t(16,2)=(0,9)/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/sys/reent.h/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/time.h/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/machine/time.h/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/machine/types.hclock_t:t(18,1)=(0,5)time_t:t(18,2)=(0,3)tm:T(18,3)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;__ULong:t(17,1)=(15,2)_glue:T(17,2)=s12_next:(17,3)=*(17,2),0,32;_niobs:(0,1),32,32;_iobs:(17,4)=*(17,5)=xs__sFILE:,64,32;;_Bigint:T(17,6)=s24_next:(17,7)=*(17,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(17,8)=ar(0,1);0;0;(17,1),160,32;;_atexit:T(17,9)=s136_next:(17,10)=*(17,9),0,32;_ind:(0,1),32,32;_fns:(17,11)=ar(0,1);0;31;(17,12)=*(17,13)=f(0,19),64,1024;;__sbuf:T(17,14)=s8_base:(17,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(17,16)=(0,3)__sFILE:T(17,5)=s88_p:(17,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(17,14),128,64;_lbfsize:(0,1),192,32;_cookie:(17,17)=*(0,19),224,32;_read:(17,18)=*(17,19)=f(0,1),256,32;_write:(17,20)=*(17,21)=f(0,1),288,32;_seek:(17,22)=*(17,23)=f(17,16),320,32;_close:(17,24)=*(17,25)=f(0,1),352,32;_ub:(17,14),384,64;_up:(17,15),448,32;_ur:(0,1),480,32;_ubuf:(17,26)=ar(0,1);0;2;(0,11),512,24;_nbuf:(17,27)=ar(0,1);0;0;(0,11),536,8;_lb:(17,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(17,28)=*(17,29)=xs_reent:,672,32;;_reent:T(17,29)=s752_errno:(0,1),0,32;_stdin:(17,4),32,32;_stdout:(17,4),64,32;_stderr:(17,4),96,32;_inc:(0,1),128,32;_emergency:(17,30)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(17,31)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(17,32)=*(17,33)=f(0,19),480,32;_result:(17,7),512,32;_result_k:(0,1),544,32;_p5s:(17,7),576,32;_freelist:(17,34)=*(17,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(17,35)=*(0,2),672,32;_new:(17,36)=u240_reent:(17,37)=s88_unused_rand:(0,4),0,32;_strtok_last:(17,35),32,32;_asctime_buf:(17,38)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(18,3),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(17,39)=s240_nextf:(17,40)=ar(0,1);0;29;(17,15),0,960;_nmalloc:(17,41)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(17,10),2624,32;_atexit0:(17,9),2656,1088;_sig_func:(17,42)=*(17,43)=*(17,44)=f(0,19),3744,32;__sglue:(17,2),3776,96;__sf:(17,45)=ar(0,1);0;2;(17,5),3872,2112;;div_t:t(13,1)=(13,2)=s8quot:(0,1),0,32;rem:(0,1),32,32;;ldiv_t:t(13,3)=(13,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/unistd.h/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/sys/unistd.h/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../i686-pc-cygwin/include/sys/types.hptrdiff_t:t(25,1)=(0,1)wint_t:t(25,2)=(0,4)u_char:t(24,1)=(0,11)u_short:t(24,2)=(0,9)u_int:t(24,3)=(0,4)u_long:t(24,4)=(0,5)ushort:t(24,5)=(0,9)uint:t(24,6)=(0,4)daddr_t:t(24,7)=(0,3)caddr_t:t(24,8)=(17,35)ino_t:t(24,9)=(0,5)vm_offset_t:t(24,10)=(0,5)vm_size_t:t(24,11)=(0,5)int8_t:t(24,12)=(0,2)u_int8_t:t(24,13)=(0,11)int16_t:t(24,14)=(0,8)u_int16_t:t(24,15)=(0,9)int32_t:t(24,16)=(0,1)u_int32_t:t(24,17)=(0,4)int64_t:t(24,18)=(0,6)u_int64_t:t(24,19)=(0,7)register_t:t(24,20)=(24,16)dev_t:t(24,21)=(0,8)off_t:t(24,22)=(0,3)uid_t:t(24,23)=(0,9)gid_t:t(24,24)=(0,9)pid_t:t(24,25)=(0,1)key_t:t(24,26)=(0,3)ssize_t:t(24,27)=(0,3)addr_t:t(24,28)=(17,35)mode_t:t(24,29)=(0,1)nlink_t:t(24,30)=(0,9)fd_mask:t(24,31)=(0,3)_types_fd_set:T(24,32)=s8fds_bits:(24,33)=ar(0,1);0;1;(24,31),0,64;;_types_fd_set:t(24,34)=(24,32)/cygnus/netrel/src/gcc-2.95.2-6/gcc/machmode.h/cygnus/netrel/src/gcc-2.95.2-6/gcc/machmode.defmachine_mode:T(27,1)=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,CCFPEQmode:32,MAX_MACHINE_MODE:33,;mode_class:T(27,2)=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;/cygnus/netrel/src/gcc-2.95.2-6/gcc/defaults.hUQItype:t(0,20)=(0,11)SItype:t(0,21)=(0,1)USItype:t(0,22)=(0,4)DItype:t(0,23)=(0,6)UDItype:t(0,24)=(0,7)SFtype:t(0,25)=(0,12)DFtype:t(0,26)=(0,13)XFtype:t(0,27)=(0,14)word_type:t(0,28)=(0,1)DIstruct:T(0,29)=s8low:(0,21),0,32;high:(0,21),32,32;;DIunion:t(0,30)=(0,31)=u8s:(0,29),0,64;ll:(0,23),0,64;;/cygnus/netrel/src/gcc-2.95.2-6/gcc/gbl-ctors.hfunc_ptr:t(31,1)=(17,12)__CTOR_LIST__:G(0,32)=ar(0,1);0;1;(31,1)__DTOR_LIST__:G(0,32).file gcrt0.c% .textD.data.bss.file"gtest1.cDD5DM_solving_circle _curve\ e _main\ .textD?.data.bss.stab .stabstr\.file5gmerge.cpM$\  .text.data.bss.stab  .stabstr.fileHgsolve.c   M     .text .data.bss.stabP .stabstr/.fileggintv.cDDDM _gintv_sh _gintv_v _gintv_l _gintv_h( 8   +L 6 A( LT W c nl y d      t    l! # $ % & h' ' ' ( '* 2* =+ I, V, b- _FIX_MIN<0 _FIX_MAXd0 .textD: 9.data.bss.stabX+.stabstr.filegfakeprobe0done0.text00.data.bss.filegcygwin_crt0.c00n0 .text0L.data.bss.fileg_cygwin_crt0_c1{11 .text1.data.bss .text2.idata$7$.idata$5.idata$4@.idata$6.text 2.idata$7p.idata$5.idata$4.idata$6.text(2.idata$7h.idata$5.idata$4.idata$6.text02.idata$7P.idata$5.idata$4l.idata$6.text82.idata$74.idata$5.idata$4P.idata$6@.text@2.idata$70.idata$5.idata$4L.idata$68.textH2.idata$7(.idata$5.idata$4D.idata$6(.textP2.idata$7,.idata$5.idata$4H.idata$60.textX2.idata$7|.idata$5.idata$4.idata$6.text`2.idata$7@.idata$5.idata$4\.idata$6\.texth2.idata$7T.idata$5.idata$4p.idata$6.textp2.idata$7<.idata$5.idata$4X.idata$6T.textx2.idata$7`.idata$5.idata$4|.idata$6.text2.idata$7L.idata$5.idata$4h.idata$6.text2.idata$7l.idata$5.idata$4.idata$6.text2.idata$7x.idata$5.idata$4.idata$6.text2.idata$7X.idata$5.idata$4t.idata$6.text2.idata$7H.idata$5.idata$4d.idata$6x.text2.idata$78.idata$5.idata$4T.idata$6H.text2.idata$7t.idata$5.idata$4.idata$6.text2.idata$7\.idata$5.idata$4x.idata$6.text2.idata$7d.idata$5.idata$4.idata$6.filegpremain3.c222 .text2.data.bss .file'gpremain2.c222 .text2.data.bss .file3gpremain1.c222 .text2.data.bss .fileIgpremain0.c222 .text2.data.bss .text2.idata$7D.idata$5.idata$4`.idata$6d.text2.idata$7.idata$5.idata$4.idata$6.filecglibgcc2.c22.text2.data.bss .stab.h.stabstrM.idata$2.idata$5.idata$4<.idata$2.idata$5.idata$4.idata$4.idata$5 .idata$7.idata$4.idata$5.idata$7_tanX2  *3_free2 9DO2_ceilp2 j02_environ__dll__&;@JV_memcpy(2 l2 _atan@2 end}2etext3 ___main2 _fprintf2 __alloca0_asinP2 2_calloc2 __fmode_acosH2 _realloc2 _exp2 )__end___logx2 8_malloc2 R3`o_sqrt2 _cos`2 _pow2 _end)7LX_fmodh2 t_atan282 _printf 2 _floor02 gcc2_compiled.___gnu_compiled_c_mainCRTStartup___rcs_id_gintv_test1_c___rcs_id_gintv_gintv_h_intersect___rcs_id_gintv_merge_c_gintv_merge_adjacent_gintv_merge_aggregate___rcs_id_gintv_solve_c_gintv_in_tolerance_gintv_solve___rcs_id_gintv_gintv_c_gintv_print_gintv_union_gintv_add_gintv_sub_gintv_neg_gintv_mul_gintv_div_gintv_sqrt_gintv_pow_gintv_exp_gintv_log_gintv_cos_gintv_sin_gintv_tan_gintv_asin_gintv_acos_gintv_atan_gintv_atan2_gintv_eq_gintv_ne_gintv_lt_gintv_gt_gintv_ge_gintv_le_gintv_and_gintv_or_gintv_not_gintv__if_gintv_ceil_gintv_floor_gintv_fabs_gintv_fmod_cygwin_crt0___gnu_compiled_cplusplus__cygwin_crt0_common@8_cygwin_premain3_cygwin_premain2_cygwin_premain1_cygwin_premain0__imp__floor__imp__asin___cygwin_crt0_bp__data_start_____DTOR_LIST____imp__cos__imp__log_dll_crt0__FP11per_process__size_of_stack_commit____size_of_stack_reserve____major_subsystem_version_____chkstk__head_templib_a_GetModuleHandleA@4__bss_start____size_of_heap_commit____imp__atan2__imp__exp__minor_os_version____image_base____imp__ceil__section_alignment___cygwin_internal__data_end____CTOR_LIST____bss_end____imp__sqrt___CTOR_LIST____imp__memcpy__imp____main__file_alignment____imp__malloc__major_os_version____imp__atan__imp__acos__imp__realloc__imp__GetModuleHandleA@4__DTOR_LIST____imp__fprintf__size_of_heap_reserve____subsystem____imp__calloc__imp__pow__imp__cygwin_internal__imp__dll_crt0__FP11per_process__impure_ptr__imp__free__major_image_version____loader_flags____imp__printf__head_libkernel32_a__imp__fmod__minor_subsystem_version____minor_image_version____imp__tan_libkernel32_a_iname_templib_a_inamegmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/oddd/0040755000175200017560000000000007252753437020511 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/oddd/gintv.o0100744000175200017560000006141707252753512022021 0ustar stephensstephengLx\E.text@ X9 .data@.bss.stab!Z+B.stabstr;B$Id: gintv.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $%s[%.20g, %.20g] UE PhwEPEvE;E|JE‰UD$E‰U$hzEP E뮉EPhwEP]U8EE ]E]E]؋UЉUUԉUU؉UU܉UUUPUPUP ]U8EE ]E]E]E]؋UЉUUԉUU؉UU܉UUUPUPUP ]UE]UE@]UE UEuE E]E U@ZEu E @E@]vE$EE$EXv‰ kv]UE U]E U@B]E$+EE$:EXv‰랉]UE Ub]E U@"]E$EE$EXv‰랉]UE @]E ]vE$OEE$^EXv‰뢉]U(E U ]E UJ]E U@ ]E U@J]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$.EXv v]U(E U2]E Ur]E U@2]E U@r]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$EXv v]UE $$EE @$$EX랉]U(E$E $]E@$E $]E$E @$]E@$E @$]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$EXv v]UE $$EE @$$EX랉]UE $$4EE @$$/EX랉]-DT! @@UHE  $]E @ ]E]È@s.E E@@ ?v։ $E$]E $]E @$]E]È@sOED@u>E EEE]EuEE؋EXƉE]È@sfED@uUE]EuEE؃$^Eh?joEX뮉E]Eu EEEEXYFvE؃$EE$EXv‰놉]-DT!?U(E H]E H@]EEEEEEEEEPEP]É-DT!?-DT! @UE $]E @$]EEE@t%EEXovމE $$|EE @$$wEX랉]UE $$ EE @$$EX랉]UE @$]E $]E${EE$EXv‰놉]UE $$EE @$$EX랉]U(E$E $]E@$E $]E$E @$]E@$E @$]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$F EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$ EXv v]UEU @EtE U@Et1E@E@@ ҉E U BD@u]E U@D@uFEUBD@u/vE@?E@@ ?5։E@E@@ ? ։]UEU @EtE U@Et1E@?E@@ ?҉E U BD@u]E U@D@uFEUBD@u/vE@E@@ 5։E@E@@ ? ։]UEU @È@s.E@E@@ y։E U@Eu/vE@?E@@ ?5։E@E@@ ? ։]UE UZÈ@s.E@E@@ y։E U@Eu/vE@?E@@ ?5։E@E@@ ? ։]UE PEPEPn]ÍvUE PEPEP]ÍvUE D@uE @E@t.ED@uIE@E@t3vE@E@@ ҉E D@uiE @D@uUED@uBE@D@u.E@?E@@ ?5։E@E@@ ? ։]UE D@unE @D@uZED@uGE@D@u3vE@E@@ ҉E D@uE @E@t1vED@uEE@E@t/vE@?E@@ ?5։E@E@@ ? ։]UE D@uFE @D@u2E@?E@@ ?҉E D@uAE @D@u-E@E@@ 5։E@E@@ ? ։]UE D@u3E @D@uEU JHJHR P `E D@u5E @D@u!EU JHJHR P vEPEPEP]ÐUE $$dEE @$$_EX랉]UE $$EE @$$EX랉]U(E Eu7E @Eu#EU JHJHR P E EutE @EucvE @]E ]vE$EE$"EXgv‰뢉E@EEU U BEu U  U BEX뮉]U(E$E $]E@$E $]E$E @$]E@$E @$]E]EuE]EtUvE]Et@E]EuE]E*E]EtxE]EtdE]EuE]Et8E]Et$E]EuEvEvEvE$EE]EuE]EtAvE]Et/E]EuE]Etr E]EtcE]EtSE]EuE]Et.E]EtE]EuEEvEvE$NEXv v]6T7h8};<@E SUjVYcdhijk2lImbnyop~  , C [ q   Z f J u24!*dx]$     DDDDD4DuD|DD$$$( DDD3DLDL19L$TA$!xP Y D!D"D#9D$RD$Rb j r"R$Zz$--D-D-D- $$..D.D.D. $$utt tDuDvDwDwvv$$z yy yDzD{D|lD|l'{0{dl$p9$K~U~ _~DDDlDlirdl$p{$x DDDhDh`h$l$ DDD(($,$# -DDD(7@IR($,[$<nx DDDl$p$ DDDxx$|$(  DDDl$p$  DDDl$p"$ 4> DDD8DND|DDDDD0DSDD$D$HQZiu$$($P DDD?DRDRR$V$ DDDYDkDDD$$ DDDl$p$0!+ DDD5>|$G$Zd DDDl$pn$( DDDxx$|$ DDD0D`DDD$$ DDD0D`DDD$"$3= GDDDDHD]DD$Q$hbl vDDDDHD]DD$$$ DDD$!$H DDD$!$l DDDXDDDD0$4$) 3DDDQDDDD4$8=$OY DDD*D \D D D $c$u DDD-DIDLDsDDD$$h DDDl$p$ DDDl$p$ H  D D!D"-D$PD%qD'D((D((%%t($,%$*t8*B* L*D*D*D*xV*_*h*q*x$|z$DCDDDEDFDF@C $$H GDHDIDJDJ@G $d: gintv.c/home/stephens/ion/src/gintv/gintv.cint:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_gintv_gintv_c:S(0,20)=ar(0,1);0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,1);0;54;(0,2)/usr/include/stdio.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(4,1)=(0,1)__uint32_t:t(4,2)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hsize_t:t(5,1)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(6,1)=(6,2)=*(0,19)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/sys/types.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hptrdiff_t:t(12,1)=(0,1)wchar_t:t(12,2)=(0,9)wint_t:t(12,3)=(0,4)/usr/include/machine/types.hu_char:t(11,1)=(0,11)u_short:t(11,2)=(0,9)u_int:t(11,3)=(0,4)u_long:t(11,4)=(0,5)ushort:t(11,5)=(0,9)uint:t(11,6)=(0,4)clock_t:t(11,7)=(0,5)time_t:t(11,8)=(0,3)timespec:T(11,9)=s8tv_sec:(11,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(11,10)=s16it_interval:(11,9),0,64;it_value:(11,9),64,64;;daddr_t:t(11,11)=(0,3)caddr_t:t(11,12)=(11,13)=*(0,2)ino_t:t(11,14)=(0,5)vm_offset_t:t(11,15)=(0,5)vm_size_t:t(11,16)=(0,5)int8_t:t(11,17)=(0,2)u_int8_t:t(11,18)=(0,11)int16_t:t(11,19)=(0,8)u_int16_t:t(11,20)=(0,9)int32_t:t(11,21)=(0,1)u_int32_t:t(11,22)=(0,4)int64_t:t(11,23)=(0,6)u_int64_t:t(11,24)=(0,7)register_t:t(11,25)=(11,21)dev_t:t(11,26)=(0,8)off_t:t(11,27)=(0,3)uid_t:t(11,28)=(0,9)gid_t:t(11,29)=(0,9)pid_t:t(11,30)=(0,1)key_t:t(11,31)=(0,3)ssize_t:t(11,32)=(0,3)addr_t:t(11,33)=(11,13)mode_t:t(11,34)=(0,1)nlink_t:t(11,35)=(0,9)fd_mask:t(11,36)=(0,3)_types_fd_set:T(11,37)=s8fds_bits:(11,38)=ar(0,1);0;1;(11,36),0,64;;_types_fd_set:t(11,39)=(11,37)tm:T(8,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(7,1)=(4,2)_glue:T(7,2)=s12_next:(7,3)=*(7,2),0,32;_niobs:(0,1),32,32;_iobs:(7,4)=*(7,5)=xs__sFILE:,64,32;;_Bigint:T(7,6)=s24_next:(7,7)=*(7,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(7,8)=ar(0,1);0;0;(7,1),160,32;;_atexit:T(7,9)=s136_next:(7,10)=*(7,9),0,32;_ind:(0,1),32,32;_fns:(7,11)=ar(0,1);0;31;(7,12)=*(7,13)=f(0,19),64,1024;;__sbuf:T(7,14)=s8_base:(7,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(7,16)=(0,3)__sFILE:T(7,5)=s88_p:(7,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(7,14),128,64;_lbfsize:(0,1),192,32;_cookie:(6,2),224,32;_read:(7,17)=*(7,18)=f(0,1),256,32;_write:(7,19)=*(7,20)=f(0,1),288,32;_seek:(7,21)=*(7,22)=f(7,16),320,32;_close:(7,23)=*(7,24)=f(0,1),352,32;_ub:(7,14),384,64;_up:(7,15),448,32;_ur:(0,1),480,32;_ubuf:(7,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(7,26)=ar(0,1);0;0;(0,11),536,8;_lb:(7,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(7,27)=*(7,28)=xs_reent:,672,32;;_reent:T(7,28)=s752_errno:(0,1),0,32;_stdin:(7,4),32,32;_stdout:(7,4),64,32;_stderr:(7,4),96,32;_inc:(0,1),128,32;_emergency:(7,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(7,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(7,31)=*(7,32)=f(0,19),480,32;_result:(7,7),512,32;_result_k:(0,1),544,32;_p5s:(7,7),576,32;_freelist:(7,33)=*(7,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(11,13),672,32;_new:(7,34)=u240_reent:(7,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(11,13),32,32;_asctime_buf:(7,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(8,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(7,37)=s240_nextf:(7,38)=ar(0,1);0;29;(7,15),0,960;_nmalloc:(7,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(7,10),2624,32;_atexit0:(7,9),2656,1088;_sig_func:(7,40)=*(7,41)=*(7,42)=f(0,19),3744,32;__sglue:(7,2),3776,96;__sf:(7,43)=ar(0,1);0;2;(7,5),3872,2112;;fpos_t:t(2,1)=(7,16)FILE:t(2,2)=(7,5)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/float.hgintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/math.h/usr/include/machine/ieeefp.h__dmath:T(17,1)=u8i:(17,2)=ar(0,1);0;1;(4,2),0,64;d:(0,13),0,64;;exception:T(17,3)=s40type:(0,1),0,32;name:(11,13),32,32;arg1:(0,13),64,64;arg2:(0,13),128,64;retval:(0,13),192,64;err:(0,1),256,32;;__fdlibm_version:T(17,4)=e__fdlibm_ieee:-1,__fdlibm_svid:0,__fdlibm_xopen:1,__fdlibm_posix:2,;gintv_print:F(0,19)fp:p(0,21)=*(2,2)b:p(7,30)nx:p(0,1)x:p(0,22)=*(1,4)e:p(7,30)j:(0,1)gintv_s:F(1,4)a:p(1,2)a:(1,2)A:(1,4)gintv_v:F(1,4)a:p(1,2)b:p(1,2)a:(1,2)b:(1,2)A:(1,4)gintv_l:F(1,2)x:p(0,22)gintv_h:F(1,2)x:p(0,22)gintv_union:F(0,19)X:p(0,23)=*(1,4)A:p(0,22)B:p(0,22)_a:(1,2)_b:(1,2)gintv_add:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)_a:(1,2)_b:(1,2)gintv_sub:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)_a:(1,2)_b:(1,2)gintv_neg:F(0,19)X:p(0,23)A:p(0,22)_a:(1,2)_b:(1,2)gintv_mul:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_div:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_sqrt:F(0,19)X:p(0,23)A:p(0,22)gintv_pow:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_exp:F(0,19)X:p(0,23)A:p(0,22)gintv_log:F(0,19)X:p(0,23)A:p(0,22)gintv_cos:F(0,19)X:p(0,23)A:p(0,22)ap:(1,2)bp:(1,2)mod_ap_2:(1,2)cos_a:(1,2)cos_b:(1,2)gintv_sin:F(0,19)X:p(0,23)A:p(0,22)B:(1,4)gintv_tan:F(0,19)X:p(0,23)A:p(0,22)ap:(1,2)bp:(1,2)gintv_asin:F(0,19)X:p(0,23)A:p(0,22)gintv_acos:F(0,19)X:p(0,23)A:p(0,22)_a:(1,2)_b:(1,2)gintv_atan:F(0,19)X:p(0,23)A:p(0,22)gintv_atan2:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_eq:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_ne:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_lt:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_gt:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_ge:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_le:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_and:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_or:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)gintv_not:F(0,19)X:p(0,23)A:p(0,22)gintv__if:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)C:p(0,22)gintv_ceil:F(0,19)X:p(0,23)A:p(0,22)gintv_floor:F(0,19)X:p(0,23)A:p(0,22)gintv_fabs:F(0,19)X:p(0,23)A:p(0,22)_a:(1,2)_b:(1,2)gintv_fmod:F(0,19)X:p(0,23)A:p(0,22)B:p(0,22)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)FIX_MIN:f(1,2)x:p(1,2)x:r(1,2)FIX_MAX:f(1,2)x:p(1,2)x:r(1,2)-D-D-DVCCBB B0 BB Ao A @ @0 -= ?O -u - - > = = -[-k---?- -?9-D-j<<;;H:a:99E8g888??77>>>> -, -- --(---(---`- - -| -$ - -t - -p - --D----x--t---$---t----- -t-L--T--.fileggintv.c%=@U _gintv_s$ _gintv_vx _gintv_l _gintv_h b o z x   <  (      P   0   ( % / 9 Ch M$ WH al l v  h  H t _FIX_MIN _FIX_MAX  .text: 9.data.bss.stab+.stabstr_floor _atan2 _atan _acos _asin _tan _cos _fmod _ceil _log _exp _pow _sqrt _fprintf gcc2_compiled.___gnu_compiled_c___rcs_id_gintv_gintv_c___rcs_id_gintv_gintv_h_gintv_print_gintv_union_gintv_add_gintv_sub_gintv_neg_gintv_mul_gintv_div_gintv_sqrt_gintv_pow_gintv_exp_gintv_log_gintv_cos_gintv_sin_gintv_tan_gintv_asin_gintv_acos_gintv_atan_gintv_atan2_gintv_eq_gintv_ne_gintv_lt_gintv_gt_gintv_ge_gintv_le_gintv_and_gintv_or_gintv_not_gintv__if_gintv_ceil_gintv_floor_gintv_fabs_gintv_fmodgmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/oddd/solve.o0100744000175200017560000002364207252753516022024 0ustar stephensstephengL%.textD% .data@.bss.stab |l%B.stabstr/B$Id: solve.c,v 1.2 1999/02/19 09:25:36 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $UM } u9EU@"EEEEuEUR1E뾉EUR1v]Ít&?UdSEE(‰UBЉEEEE(P‰‰E܋E(PEЉE؋E܉EԋE EEE‰PEPEPE;EsvEPEPEPEP]Ӄt ED@u+ED@uE‰)EEEuEÈ@s E;EtyEE;E|6EUЉщM\X\XT P EEEE;E| UvE‰)EE\E$PEPEPEPEP] Ӄ t EuEÈ@r /vEEԋU;|HEUЉщʉEUЉщM\X\XT P E뭐EЉ‰UMЉˉ]D ]EUЉщʉEUЉщMDXEЉ‰UE\EUЉщUEEАE;E|JEUЉщʉEUЉщM\X\XT P E뭐E‰EE8} EԋUJEԃUԋ EU]]Ð/ d'd/^x!m /Tn*Th$$@q.rFJ ;ux (5>6T7h8};<@E SUjVYcdhijk2lImbnyop~  , C [ q   Z f J u24!*@z$x DDDD1D>DDDHDLDYD]$d$,"# $4%>&M'Y( w)$+(D,D-D.D0D19D2?D3hD4D6D9D:D<D>D?DHDKDLDQDR!DVTDYTDZhDYD\D^D_DbDcDgDjDkDmDoDpDuDv Dy(D}(D(D<D~DDDDDDD$DfDlDyDDDDDDDD-./01234VTm(}('$dsolve.c/home/stephens/ion/src/gintv/solve.cint:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_gintv_solve_c:S(0,20)=ar(0,1);0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,1);0;54;(0,2)/usr/include/stdio.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(4,1)=(0,1)__uint32_t:t(4,2)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hsize_t:t(5,1)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(6,1)=(6,2)=*(0,19)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/sys/types.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hptrdiff_t:t(12,1)=(0,1)wchar_t:t(12,2)=(0,9)wint_t:t(12,3)=(0,4)/usr/include/machine/types.hu_char:t(11,1)=(0,11)u_short:t(11,2)=(0,9)u_int:t(11,3)=(0,4)u_long:t(11,4)=(0,5)ushort:t(11,5)=(0,9)uint:t(11,6)=(0,4)clock_t:t(11,7)=(0,5)time_t:t(11,8)=(0,3)timespec:T(11,9)=s8tv_sec:(11,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(11,10)=s16it_interval:(11,9),0,64;it_value:(11,9),64,64;;daddr_t:t(11,11)=(0,3)caddr_t:t(11,12)=(11,13)=*(0,2)ino_t:t(11,14)=(0,5)vm_offset_t:t(11,15)=(0,5)vm_size_t:t(11,16)=(0,5)int8_t:t(11,17)=(0,2)u_int8_t:t(11,18)=(0,11)int16_t:t(11,19)=(0,8)u_int16_t:t(11,20)=(0,9)int32_t:t(11,21)=(0,1)u_int32_t:t(11,22)=(0,4)int64_t:t(11,23)=(0,6)u_int64_t:t(11,24)=(0,7)register_t:t(11,25)=(11,21)dev_t:t(11,26)=(0,8)off_t:t(11,27)=(0,3)uid_t:t(11,28)=(0,9)gid_t:t(11,29)=(0,9)pid_t:t(11,30)=(0,1)key_t:t(11,31)=(0,3)ssize_t:t(11,32)=(0,3)addr_t:t(11,33)=(11,13)mode_t:t(11,34)=(0,1)nlink_t:t(11,35)=(0,9)fd_mask:t(11,36)=(0,3)_types_fd_set:T(11,37)=s8fds_bits:(11,38)=ar(0,1);0;1;(11,36),0,64;;_types_fd_set:t(11,39)=(11,37)tm:T(8,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(7,1)=(4,2)_glue:T(7,2)=s12_next:(7,3)=*(7,2),0,32;_niobs:(0,1),32,32;_iobs:(7,4)=*(7,5)=xs__sFILE:,64,32;;_Bigint:T(7,6)=s24_next:(7,7)=*(7,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(7,8)=ar(0,1);0;0;(7,1),160,32;;_atexit:T(7,9)=s136_next:(7,10)=*(7,9),0,32;_ind:(0,1),32,32;_fns:(7,11)=ar(0,1);0;31;(7,12)=*(7,13)=f(0,19),64,1024;;__sbuf:T(7,14)=s8_base:(7,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(7,16)=(0,3)__sFILE:T(7,5)=s88_p:(7,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(7,14),128,64;_lbfsize:(0,1),192,32;_cookie:(6,2),224,32;_read:(7,17)=*(7,18)=f(0,1),256,32;_write:(7,19)=*(7,20)=f(0,1),288,32;_seek:(7,21)=*(7,22)=f(7,16),320,32;_close:(7,23)=*(7,24)=f(0,1),352,32;_ub:(7,14),384,64;_up:(7,15),448,32;_ur:(0,1),480,32;_ubuf:(7,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(7,26)=ar(0,1);0;0;(0,11),536,8;_lb:(7,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(7,27)=*(7,28)=xs_reent:,672,32;;_reent:T(7,28)=s752_errno:(0,1),0,32;_stdin:(7,4),32,32;_stdout:(7,4),64,32;_stderr:(7,4),96,32;_inc:(0,1),128,32;_emergency:(7,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(7,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(7,31)=*(7,32)=f(0,19),480,32;_result:(7,7),512,32;_result_k:(0,1),544,32;_p5s:(7,7),576,32;_freelist:(7,33)=*(7,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(11,13),672,32;_new:(7,34)=u240_reent:(7,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(11,13),32,32;_asctime_buf:(7,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(8,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(7,37)=s240_nextf:(7,38)=ar(0,1);0;29;(7,15),0,960;_nmalloc:(7,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(7,10),2624,32;_atexit0:(7,9),2656,1088;_sig_func:(7,40)=*(7,41)=*(7,42)=f(0,19),3744,32;__sglue:(7,2),3776,96;__sf:(7,43)=ar(0,1);0;2;(7,5),3872,2112;;fpos_t:t(2,1)=(7,16)FILE:t(2,2)=(7,5)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/float.hgintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)/usr/include/string.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hgintv_in_tolerance:F(0,1)result:p(0,21)=*(1,4)nx:p(0,1)x:p(0,22)=*(1,4)data:p(6,2)adata:p(6,2)gintv_solve:F(0,1)maxnsolutions:p(0,1)solutions:p(0,21)func:p(0,23)=*(0,24)=f(0,1)nx:p(0,1)xspace:p(0,22)data:p(6,2)accept:p(0,25)=*(0,26)=f(0,1)adata:p(6,2)stack_depth:p(0,1)f_x:(1,4)nsolutions:(0,1)sp:(0,21)x_stack:(0,21)x:(0,21)parm_stack:(0,27)=*(0,1)parm_stack_end:(0,27)parm:(0,27)i:(0,1)A:(1,4)i:(0,1)m:(1,2)G    ( x D  .filegsolve.c%=@Ux i .text.data.bss.stab .stabstr/__alloca_memcpy vgcc2_compiled.___gnu_compiled_c___rcs_id_gintv_solve_c___rcs_id_gintv_gintv_h_gintv_in_tolerance_gintv_solvegmv0.9/src/gintv/mak_gen/CYGWIN_98-4.10/oddd/merge.o0100744000175200017560000002331307252753520021761 0ustar stephensstephengL$.text$ .data@.bss.stab $B.stabstrtB$Id: merge.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $'$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $U4SEEEEEMaEEEEEM1E;EuvE EEME EEME;EudE‰UMˉ]D E@t3E‰UMˉ]D E@tmfE‰UMˉ] D@u0E‰UMˉ]DD D@uvvE‰UMˉ]D D@u'E‰UMˉ]D \PvE‰UMˉ]D D@u E‰UMˉ] E ‰U‰UEE EvEM(EU JHJHR P EEΉMvE ‰EE ‰EU]ȉ]ÐU4SEEEEEMuEEEEEMEE;Eu#vE EEM E EEM=E;EuhE‰UMˉ]D E@t3E‰UMˉ]D E@tvE‰UMˉ] È@E‰UMˉ]\ È@s_E‰UMˉ]\ È@s2E‰UMˉ]D\ È@r vvE EEM@E‰URE‰URE‰UR뷍vE ‰U‰UEE EEM(EU JHJHR P EEΉMvE ‰EE ‰E~U]ȉ]Ð d'd/^x!m /Tn*Th$$@q.rFJ ;ux (5>6T7h8};<@E SUjVYcdhijk2lImbnyop~  , C [ q   Z f J u24!*$xF P Z DDDD$D"$D#@D$HD,PD/hD0D1D2D3D4D5HD/PD<XD=D?D@DGDI DJDK$DLHDMLDPOD,TD"\DVpDpDXDYDYks{$p$$d \\ \DdDeDkDl$Ds$Dt@DuHD}PDhDDDDDDDDDD DD"D,D8D\D`DcD}hDspDDkDDDeeeehl$$dmerge.c/home/stephens/ion/src/gintv/merge.cint:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);12;0;void:t(0,19)=(0,19)__rcs_id_gintv_merge_c:S(0,20)=ar(0,1);0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,1);0;54;(0,2)/usr/include/stdio.h/usr/include/_ansi.h/usr/include/sys/config.h__int32_t:t(4,1)=(0,1)__uint32_t:t(4,2)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hsize_t:t(5,1)=(0,4)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h__gnuc_va_list:t(6,1)=(6,2)=*(0,19)/usr/include/sys/reent.h/usr/include/time.h/usr/include/machine/time.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h/usr/include/sys/types.h/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.hptrdiff_t:t(12,1)=(0,1)wchar_t:t(12,2)=(0,9)wint_t:t(12,3)=(0,4)/usr/include/machine/types.hu_char:t(11,1)=(0,11)u_short:t(11,2)=(0,9)u_int:t(11,3)=(0,4)u_long:t(11,4)=(0,5)ushort:t(11,5)=(0,9)uint:t(11,6)=(0,4)clock_t:t(11,7)=(0,5)time_t:t(11,8)=(0,3)timespec:T(11,9)=s8tv_sec:(11,8),0,32;tv_nsec:(0,3),32,32;;itimerspec:T(11,10)=s16it_interval:(11,9),0,64;it_value:(11,9),64,64;;daddr_t:t(11,11)=(0,3)caddr_t:t(11,12)=(11,13)=*(0,2)ino_t:t(11,14)=(0,5)vm_offset_t:t(11,15)=(0,5)vm_size_t:t(11,16)=(0,5)int8_t:t(11,17)=(0,2)u_int8_t:t(11,18)=(0,11)int16_t:t(11,19)=(0,8)u_int16_t:t(11,20)=(0,9)int32_t:t(11,21)=(0,1)u_int32_t:t(11,22)=(0,4)int64_t:t(11,23)=(0,6)u_int64_t:t(11,24)=(0,7)register_t:t(11,25)=(11,21)dev_t:t(11,26)=(0,8)off_t:t(11,27)=(0,3)uid_t:t(11,28)=(0,9)gid_t:t(11,29)=(0,9)pid_t:t(11,30)=(0,1)key_t:t(11,31)=(0,3)ssize_t:t(11,32)=(0,3)addr_t:t(11,33)=(11,13)mode_t:t(11,34)=(0,1)nlink_t:t(11,35)=(0,9)fd_mask:t(11,36)=(0,3)_types_fd_set:T(11,37)=s8fds_bits:(11,38)=ar(0,1);0;1;(11,36),0,64;;_types_fd_set:t(11,39)=(11,37)tm:T(8,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/features.h__ULong:t(7,1)=(4,2)_glue:T(7,2)=s12_next:(7,3)=*(7,2),0,32;_niobs:(0,1),32,32;_iobs:(7,4)=*(7,5)=xs__sFILE:,64,32;;_Bigint:T(7,6)=s24_next:(7,7)=*(7,6),0,32;_k:(0,1),32,32;_maxwds:(0,1),64,32;_sign:(0,1),96,32;_wds:(0,1),128,32;_x:(7,8)=ar(0,1);0;0;(7,1),160,32;;_atexit:T(7,9)=s136_next:(7,10)=*(7,9),0,32;_ind:(0,1),32,32;_fns:(7,11)=ar(0,1);0;31;(7,12)=*(7,13)=f(0,19),64,1024;;__sbuf:T(7,14)=s8_base:(7,15)=*(0,11),0,32;_size:(0,1),32,32;;_fpos_t:t(7,16)=(0,3)__sFILE:T(7,5)=s88_p:(7,15),0,32;_r:(0,1),32,32;_w:(0,1),64,32;_flags:(0,8),96,16;_file:(0,8),112,16;_bf:(7,14),128,64;_lbfsize:(0,1),192,32;_cookie:(6,2),224,32;_read:(7,17)=*(7,18)=f(0,1),256,32;_write:(7,19)=*(7,20)=f(0,1),288,32;_seek:(7,21)=*(7,22)=f(7,16),320,32;_close:(7,23)=*(7,24)=f(0,1),352,32;_ub:(7,14),384,64;_up:(7,15),448,32;_ur:(0,1),480,32;_ubuf:(7,25)=ar(0,1);0;2;(0,11),512,24;_nbuf:(7,26)=ar(0,1);0;0;(0,11),536,8;_lb:(7,14),544,64;_blksize:(0,1),608,32;_offset:(0,1),640,32;_data:(7,27)=*(7,28)=xs_reent:,672,32;;_reent:T(7,28)=s752_errno:(0,1),0,32;_stdin:(7,4),32,32;_stdout:(7,4),64,32;_stderr:(7,4),96,32;_inc:(0,1),128,32;_emergency:(7,29)=ar(0,1);0;24;(0,2),160,200;_current_category:(0,1),384,32;_current_locale:(7,30)=*(0,2),416,32;__sdidinit:(0,1),448,32;__cleanup:(7,31)=*(7,32)=f(0,19),480,32;_result:(7,7),512,32;_result_k:(0,1),544,32;_p5s:(7,7),576,32;_freelist:(7,33)=*(7,7),608,32;_cvtlen:(0,1),640,32;_cvtbuf:(11,13),672,32;_new:(7,34)=u240_reent:(7,35)=s88_unused_rand:(0,4),0,32;_strtok_last:(11,13),32,32;_asctime_buf:(7,36)=ar(0,1);0;25;(0,2),64,208;_localtime_buf:(8,1),288,288;_gamma_signgam:(0,1),576,32;_rand_next:(0,7),640,64;;,0,704;_unused:(7,37)=s240_nextf:(7,38)=ar(0,1);0;29;(7,15),0,960;_nmalloc:(7,39)=ar(0,1);0;29;(0,4),960,960;;,0,1920;;,704,1920;_atexit:(7,10),2624,32;_atexit0:(7,9),2656,1088;_sig_func:(7,40)=*(7,41)=*(7,42)=f(0,19),3744,32;__sglue:(7,2),3776,96;__sf:(7,43)=ar(0,1);0;2;(7,5),3872,2112;;fpos_t:t(2,1)=(7,16)FILE:t(2,2)=(7,5)/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/float.hgintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)gintv_merge_adjacent:F(0,1)nv:p(0,1)nx:p(0,1)x:p(0,21)=*(1,4)i:(0,1)j:(0,1)k:(0,1)l:(0,1)p0:(0,21)p1:(0,21)gintv_merge_aggregate:F(0,1)nv:p(0,1)nx:p(0,1)x:p(0,21)i:(0,1)j:(0,1)k:(0,1)l:(0,1)p0:(0,21)p1:(0,21)   ( H   .filegmerge.c%=@Ux k  .text.data.bss.stab .stabstr gcc2_compiled.___gnu_compiled_c___rcs_id_gintv_merge_c___rcs_id_gintv_gintv_h_gintv_merge_adjacent_gintv_merge_aggregate_gintv_uniongmv0.9/src/gintv/mak_gen/Linux/0040755000175200017560000000000007262507246016772 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/Linux/od/0040755000175200017560000000000007262741246017374 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/Linux/od/build_vars.h0100644000175200017560000000036607262753366021707 0ustar stephensstepheng/* DO NOT MODIFY Generated by maks/pre.mak. */ #define BUILD_TARGET "Linux" #define BUILD_DATE "Wed Apr 4 21:25:44 CDT 2001" #define BUILD_HOST "ion02.dev.ionink.com" #define BUILD_USER "stephens" #define BUILD_ROOT "/home/stephens/ion/src/gmv" gmv0.9/src/gintv/mak_gen/Linux/t/0040755000175200017560000000000007262741247017236 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/Linux/t/test10100755000175200017560000014656507262741247020242 0ustar stephensstephengELF4t4 (444777Pl`8`` /lib/ld-linux.so.2GNU   3&I "NЅ}-.="x7 (0+@APE`+qp2)"b}S #І+__gmon_start__libm.so.6logsqrtceilfloorfmodcosatan2powexptanatanasin_IO_stdin_usedacoslibc.so.6printfstdoutmemcpy__cxa_finalizefprintf__deregister_frame_info__libc_start_main__register_frame_infoGLIBC_2.1.3GLIBC_2.0g0si ii ii \  $(, 0 4 8 <@DHLPTXU/5%% h%h%h%h%h % h(%$h0%(h8p%,h@`%0hHP%4hP@%8hX0%<h` %@hh%Dhp%Hhx%Lh%Ph%Th%Xh1^PTRh̴hxQVhĉ?USP[@\tЋ]ÐUuItt&B ut h]ÍvU]ÍUth h]Ð&U]ÐUu uu EP#=u@ hu jh5 hujh5 ÐUWVEU lju u EP=u@ hu jh5 hujh5k e^_]ÐUxEE=u hzUuEPЃUEPEPЃEPEPEPEPE؃PEPEPEPuE=u@ hujh5 hujh5| ÉUWVpEEE܇ET}ȾEԈDžDž:0DžyE> hPhEPEPuučP!0hDž;|D hEPuh˵5\ 믍v h̵{Pu`$hBDž;|D hEPuh˵5 믍vDž;||h۵EPPEЃEPPEЃte^_]Uu hwuEE;E|FEEt tEEt4hzuC E뱐uhwu%UWV0E UEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UWV0E UEUEUEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UE]ÉUE@]ÐU(E UEtvE ] E]E]E U@BEt E @] E@]E]uuWEuuYEXÉUE U]E U@B]uuEuuEXÉUE Ub]E U@"]uuEuuEXÉUE P @EUE PEUuuNEuuPEXÐU8E U ]E UJ]E U@ ]E U@J]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuEXU8E U2]E Ur]E U@2]E U@r]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuGEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuWEXUE p0Id$$EE p p!d$$EXÍvU8Ep0E p0Y]Ep pE p0=]Ep0E p p!]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uu7EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuGEXUE p0d$$EE p pd$$EXÍvUE p0 d$$EE p pd$$EXÍvUHE d$$]E @]EEÈ@r+vE@E@@ ?h@juuf]E p0]E p p]EEÈ@rcvEE@tKvE@EEEEEt vE]E]EȋEXEEÈ@rpEE@t[vEEEt vE]E]uuEh?jEXgEEEt"MEUQME؋U܉AQ .uu]Euu_EXUWV E ]؋E @]}uEPue^_]UE d$$.]E @d$$]EEE@u'vE@E@@ QE p0@d$$5EE p pd$$%EXÉUE p0Ud$$EE p p-d$$EXÍvUE p p]E p0]uubEuudEXÐUE p0ud$$EE p pMd$$ EXÍvU8Ep0E p0]Ep pE p0i]Ep0E p pM]Ep pE p p0]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuC EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuS EXUEU @EtE U@Et)E@E@@ E U BE@t]E U@E@tAEUBE@t%E@?E@@ ?"E@E@@ ?]ÐUEU @EtE U@Et)E@?E@@ ?E U BE@t]E U@E@tAEUBE@t%E@E@@ "E@E@@ ?]ÐUEU @È@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]ÐUE UBÈ@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]ÐUu uuUu uu%UE E@tE @E@t2EE@tCvE@E@t(E@E@@ E E@tmE @E@tTEE@t=E@E@t$E@?E@@ ?"E@E@@ ?]ÐUE E@trE @E@tXEE@tAE@E@t(E@E@@ E E@tE @E@t2EE@t?vE@E@t$E@?E@@ ?"E@E@@ ?]ÐUE E@t>E @E@t$E@?E@@ ?vE E@t=E @E@t$E@E@@ "E@E@@ ?]ÐUWVE E@t,E @E@tEUljXE E@t-E @E@tEUljuuue^_]ÐUE p0%d$$EE p pd$$EXÍvUE p0)d$$NEE p pd$$>EXÍvUWV0E Et0E @EtvEU ljE EtuE @Et\E P @EUE PEUuueEuugEXE@EEE PEЉUEE P @EЉUEEtE PE؉UE P @E؉UE؋EXe^_]ÍvU8Ep0E p0%]Ep pE p0 ]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uu#EXUE]ÉUE]ÐUSvE } uKvEU@"EEt E͐]MAQ S"]M?AQ S$ÍvUWVS\EEE()ĉE̋ẺEȋE()ĉEċE(EăEEĉEE EЋEEPuuE;EsvuuuEPEЃt EE@t3vEE@tvEE)E(뇍vEÈ@r!EtE;EtnEE;E|*MЋEEȉύ4EЃE̍EE;E| EvEE)E( u$uuuEPE Ѓ t ~vEÈ@rNEt7vEUE;|0EEMȋEEȍ<4EƉEMȋEED8]EEMȋEEȍTRDT EMȋEUDT EEMȋEUTEE;E|2EEMȋEEȍ<4EƉEEE8y UEHUEEN?d@zABCDEFGH4IINQRSTU5VMXe[^bx{ ~) C \ w  3 O h    Z # 4 < C" F> S Z^,l!tuy\m t8bmHt#5mm 6G`JKTY.]g`a-#517I8a9{: "dd܇d܇)<8b| qFo!Fp& )!1&`cxm<+lm2 I!`"u#%&1234506I8a9z;=>?@A B!C7DNEdF|GHINQR:SQTlUVX[^bxN{d~~  < T m !F!!#!4"<(#Cb#F#S$ZV$^t$$1$;$$fVm $`m%%H%%#+&1$mm@&'V'G'J'K'T(YN(](`(a()M+C,,,5T-7m-8-9-:--3..X1?o1V1_1g1j2I2:2N2^&233G3!Z3!3&#3$'܇3&3& D'D)D*D,,D-5D.UD1u$w3$5T3434 D5D7D8D:/D;8D<XD>x$3$CԈ3B3B 4B4BDCDGDI DJDN%DO9DRTDSkDTDVDWDXDZD[4D;4EE4Fb4Fl4G$4$_ĉ4^4^ D_D` DaDb&Df6Dh=DiGDm[DneDyD{D|D}D|D$D4DWDmDDDDDDD)DWDWDdDi4`4a4b4f4g5h(5i85k@5$pd4d4I5d4)<8b| qFo!FpQ5&)!cxm<lm $$fVm $`m%+&1$mm2N2^&m 55255666,6i666$47 #7 3 .7 ?7 DDDD0DlDtDJ7$R7$a7 DDD:DHj7r7$Tz7$!a7 7 D!D" D#FD$Tj7 7 r7"$`7$-t7-D-$ 7$.7.D.$ 7$u7t7t 7tDuDvDw7v8v$ 8$z08y7y 7yDzD{D|P7{8{R$R)8$8~7~ 7~DDDP78R$R;8$؎87 DDD]78_$_M8$887 7D_8h8q8z8$|8$87 7D_8h8q8z8$|8$087 D$Y8$87 7D_8h8q8z8$8$@87 D$Y8$87 D$Y8$87 DDD9DXDDDDDD@DpDD.88999$0)9$(87 DDD7DI;9$PC9$x87 DDD[DtDD88$U9$d87 D$Yh9$87 D78c$c{9$$87 D$Y9$87 7D_8h8q8z8$9$487 7DDD8D`DDD$9$087 7DDD8D`DDD$9$,87 7DDD DDD`DD$9$ԡ87 7DDD DDD`DD$9$|87 7DDD$9$87 7DDD$:$87 7DDDdDDDD1$3:$87 7DDDdDDDD1$3+:$87 DDD4D XD D D $=:$87 7O:DDD4DFDHDxDDD$Y:$87 D$Yl:$87 D$Y:$ L87 D D!D"4D$LD%|D'D(Z7%8%Z$a:$*8*7* 7*D*_8*h8*q8*z8*$:$Dd:CDDDEDF:@C $:$H|:GDHDIDJ:@G $dd:d)<8b| qFo!Fp:&)!cxm<lm $$fVm $`m%+&1$mm2N2^&6;mL;kmb;b;j;;!<"<#-<$B<%W<&n<'<*<.<:<?<D<I =N =`6=eK=jc=o{=p=t==F=R=^m>>.>B>Y>p>>>>>>??2?M?F g??E??=@=@0T@3j@@@@@ABmBHB$bB3 .74xBDDDD3D9D<DWD^D `D!{D"$B$0B&B' B(3)B*4+B, xB-$ C/(D0D2 D4D5*D60D7FD8UD:[D=aD>jD@DBDCDLDODPDUDVDZ8D]8D^LD]mD`tDbyDcDfDgDkDnDqDsDtDyD}DDDD?DHDpDDDDDDDDD'D0D=DCDCDHDKC152&C30C4?C5HC6aC7wC885Zr7q85C$SdodpCdp)<8b| qFo!FpC&@)!cxm<lm $$fVm $`m%+&1$mm2N2^&C$pD 3 D DD D D,D",D#TD$\D,dD/D0D1D4D/kD<lD=D?D@DGDI)DJ3DM@DPCDKHDLfD,hD"hDVzDzDX|DY85J7"D*D2D T"w ԡ Y | (P    S  0+ĉp !Y -@JPY c`+r } p2̴)" La  4 $$) 5}ETR ^kT st   І+initfini.cgcc2_compiled.call_gmon_startinit.ccrtstuff.cp.0__DTOR_LIST__completed.1__do_global_dtors_aux__EH_FRAME_BEGIN__fini_dummyobject.2frame_dummyinit_dummyforce_to_data__CTOR_LIST____do_global_ctors_aux__CTOR_END____DTOR_END____FRAME_END__test1.c__rcs_id_gintv_test1_c__rcs_id_gintv_gintv_hsolvingcirclecurveintersectgintv.c__rcs_id_gintv_gintv_cFIX_MINFIX_MAXsolve.c__rcs_id_gintv_solve_cmerge.c__rcs_id_gintv_merge_cgintv_eqgintv_asingintv_negcos@@GLIBC_2.0gintv_andgintv_vgintv_geatan@@GLIBC_2.0gintv_sqrt_DYNAMICgintv_cos__register_frame_info@@GLIBC_2.0gintv_expasin@@GLIBC_2.0_fp_hwgintv_mulfprintf@@GLIBC_2.0fmod@@GLIBC_2.0gintv_negintv_hgintv_tangintv_merge_adjacentgintv_loggintv_or__dso_handlegintv_ltgintv_acosgintv_atanpow@@GLIBC_2.0gintv_add_initgintv_merge_aggregate__deregister_frame_info@@GLIBC_2.0gintv_fmodgintv_gtstdout@@GLIBC_2.0gintv_ceilgintv_divgintv_sin_startgintv_in_tolerancegintv_atan2gintv_solveatan2@@GLIBC_2.0floor@@GLIBC_2.0__bss_startmaingintv_floor__libc_start_main@@GLIBC_2.0exp@@GLIBC_2.0gintv_nottan@@GLIBC_2.0data_startgintv__ifprintf@@GLIBC_2.0_finimemcpy@@GLIBC_2.0sqrt@@GLIBC_2.0__cxa_finalize@@GLIBC_2.1.3gintv_legintv_fabsgintv_pow_edata_GLOBAL_OFFSET_TABLE_gintv_print_endgintv_unionacos@@GLIBC_2.0_IO_stdin_usedgintv_sub__data_startgintv_slog@@GLIBC_2.0gintv_l__gmon_start__ceil@@GLIBC_2.0gmv0.9/src/gintv/mak_gen/Linux/odd/0040755000175200017560000000000007262741247017541 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/Linux/odd/gintv.o0100644000175200017560000006776407262475434021073 0ustar stephensstephengELFd4( Uu hwuEE;E|FEEt tEEt4hzu E뱐uhwuUWV0E UEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UWV0E UEUEUEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UE]ÉUE@]ÐU(E UEtvE ] E]E]E U@BEt E @] E@]E]uuWEuuYEXÉUE U]E U@B]uuEuuEXÉUE Ub]E U@"]uuEuuEXÉUE P @EUE PEUuuNEuuPEXÐU8E U ]E UJ]E U@ ]E U@J]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuEXU8E U2]E Ur]E U@2]E U@r]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuGEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuWEXUE p0d$$EE p pd$$EXÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uu7EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuGEXUE p0d$$EE p pd$$EXÍvUE p0d$$EE p pd$$EXÍvUHE d$$]E @]EEÈ@r+vE@E@@ ?h@juu]E p0]E p p]EEÈ@rcvEE@tKvE@EEEEEt vE]E]EȋEXEEÈ@rpEE@t[vEEEt vE]E]uuEh?jEXgEEEt"MEUQME؋U܉AQ .uu]Euu_EXUWV E ]؋E @]}uEPue^_]UE d$$]E @d$$]EEE@u'vE@E@@ QE p0d$$5EE p pd$$%EXÉUE p0d$$EE p pd$$EXÍvUE p p]E p0]uubEuudEXÐUE p0d$$EE p pd$$ EXÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuC EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuS EXUEU @EtE U@Et)E@E@@ E U BE@t]E U@E@tAEUBE@t%E@?E@@ ?"E@E@@ ?]ÐUEU @EtE U@Et)E@?E@@ ?E U BE@t]E U@E@tAEUBE@t%E@E@@ "E@E@@ ?]ÐUEU @È@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]ÐUE UBÈ@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]ÐUu uuUu uuUE E@tE @E@t2EE@tCvE@E@t(E@E@@ E E@tmE @E@tTEE@t=E@E@t$E@?E@@ ?"E@E@@ ?]ÐUE E@trE @E@tXEE@tAE@E@t(E@E@@ E E@tE @E@t2EE@t?vE@E@t$E@?E@@ ?"E@E@@ ?]ÐUE E@t>E @E@t$E@?E@@ ?vE E@t=E @E@t$E@E@@ "E@E@@ ?]ÐUWVE E@t,E @E@tEUljXE E@t-E @E@tEUljuuue^_]ÐUE p0d$$EE p pd$$EXÍvUE p0d$$NEE p pd$$>EXÍvUWV0E Et0E @EtvEU ljE EtuE @Et\E P @EUE PEUuueEuugEXE@EEE PEЉUEE P @EЉUEEtE PE؉UE P @E؉UE؋EXe^_]ÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uu#EXUE]ÉUE]01.01;( d'd/<>h&w"Lu'Lv&&@1F^w+3M !"#%& 1$2<3S4l5689;=>?0@FA]BuCDEFGHINVQnRSTUVX [& ^> bV x { ~  ; X s  + L f #" 4+ <| C F SjZ^1;(Az8 H#1FGJ'KXTY]`7ao2V5789:4mH ? VF_mgjI7! D\p @ a $  ! !  ! DDDD0DlDtD+!$3!$B! DDD:DHK!S!$T[!$!j! s! D!D" D#FD$T|! ! !"$`!$-!-D-$ !$.!.D.$ !$u!t!t !tDuDvDw!v"v$"$z#"y-"y 7"yDzD{D|PA"{J"{R$RS"$e"~o"~ y"~DDDP""R$R"$"" DDD]""_$_"$"" "D"###$|!#$3#=# G#DQ#Z#c#l#$|u#$## D$Y#$## #D####$#$$ $ D$Y$$($2$ D$Y<$$N$X$ DDD9DXDDDDDD@DpDD.b$k$t$$$$0$$$$ DDD7DI$$P$$$$ DDD[DtDD$$$%$%% D$Y(%$;%E% DO%X%c$ca%$t%~% D$Y%$%% %D%%%%$%$%% &DDD8D`DDD$ &$&(& 2&DDD8D`DDD$<&$M&W& a&DDD DDD`DD$k&$|&& &DDD DDD`DD$&$&& &DDD$&$&& &DDD$&$ '' 'DDDdDDDD1$3('$9'C' M'DDDdDDDD1$3W'$i's' DDD4D XD D D $}'$'' ''DDD4DFDHDxDDD$'$'' D$Y'$'' D$Y($ (#( D D!D"4D$LD%|D'D(Z-(%6(%Z$a?($*R(*\(* f(*D*p(*y(*(*(*$($D0(CDDDEDF(@C $($HH(GDHDIDJ(@G $d^gintv.c/home/stephens/ion/src/gintv/gintv.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)__rcs_id_gintv_gintv_c:S(0,21)=ar(0,22)=r(0,22);0000000000000;0037777777777;;0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,22);0;54;(0,2)/usr/include/stdio.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(6,1)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(7,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(8,1)=(0,11)__u_short:t(8,2)=(0,9)__u_int:t(8,3)=(0,4)__u_long:t(8,4)=(0,5)__u_quad_t:t(8,5)=(0,7)__quad_t:t(8,6)=(0,6)__int8_t:t(8,7)=(0,10)__uint8_t:t(8,8)=(0,11)__int16_t:t(8,9)=(0,8)__uint16_t:t(8,10)=(0,9)__int32_t:t(8,11)=(0,1)__uint32_t:t(8,12)=(0,4)__int64_t:t(8,13)=(0,6)__uint64_t:t(8,14)=(0,7)__qaddr_t:t(8,15)=(8,16)=*(8,6)__dev_t:t(8,17)=(8,5)__uid_t:t(8,18)=(8,3)__gid_t:t(8,19)=(8,3)__ino_t:t(8,20)=(8,4)__mode_t:t(8,21)=(8,3)__nlink_t:t(8,22)=(8,3)__off_t:t(8,23)=(0,3)__loff_t:t(8,24)=(8,6)__pid_t:t(8,25)=(0,1)__ssize_t:t(8,26)=(0,1)__rlim_t:t(8,27)=(8,4)__rlim64_t:t(8,28)=(8,5)__id_t:t(8,29)=(8,3)__fsid_t:t(8,30)=(8,31)=s8__val:(8,32)=ar(0,22);0;1;(0,1),0,64;;__daddr_t:t(8,33)=(0,1)__caddr_t:t(8,34)=(8,35)=*(0,2)__time_t:t(8,36)=(0,3)__useconds_t:t(8,37)=(0,4)__suseconds_t:t(8,38)=(0,3)__swblk_t:t(8,39)=(0,3)__clock_t:t(8,40)=(0,3)__clockid_t:t(8,41)=(0,1)__timer_t:t(8,42)=(0,1)__fd_mask:t(8,43)=(0,5)__fd_set:t(8,44)=(8,45)=s128__fds_bits:(8,46)=ar(0,22);0;31;(8,43),0,1024;;__key_t:t(8,47)=(0,1)__ipc_pid_t:t(8,48)=(0,9)__blksize_t:t(8,49)=(0,3)__blkcnt_t:t(8,50)=(0,3)__blkcnt64_t:t(8,51)=(8,6)__fsblkcnt_t:t(8,52)=(8,4)__fsblkcnt64_t:t(8,53)=(8,5)__fsfilcnt_t:t(8,54)=(8,4)__fsfilcnt64_t:t(8,55)=(8,5)__ino64_t:t(8,56)=(8,5)__off64_t:t(8,57)=(8,24)__t_scalar_t:t(8,58)=(0,3)__t_uscalar_t:t(8,59)=(0,5)__intptr_t:t(8,60)=(0,1)__socklen_t:t(8,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(11,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(10,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(10,2)=(10,3)=*(10,4)=xs_pthread_descr_struct:pthread_attr_t:t(10,5)=(10,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(11,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(6,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(6,1),256,32;;pthread_cond_t:t(10,7)=(10,8)=s12__c_lock:(10,1),0,64;__c_waiting:(10,2),64,32;;pthread_condattr_t:t(10,9)=(10,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(10,11)=(0,4)pthread_mutex_t:t(10,12)=(10,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(10,2),64,32;__m_kind:(0,1),96,32;__m_lock:(10,1),128,64;;pthread_mutexattr_t:t(10,14)=(10,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(10,16)=(0,1)pthread_t:t(10,17)=(0,5)FILE:t(2,1)=(2,2)=xs_IO_FILE:__FILE:t(2,3)=(2,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(14,1)=(0,3)wint_t:t(14,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(15,1)=(15,2)=s8__count:(0,1),0,32;__value:(15,3)=u4__wch:(14,2),0,32;__wchb:(15,4)=ar(0,22);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(13,1)=(13,2)=s12__pos:(8,23),0,32;__state:(15,1),32,64;;_G_fpos64_t:t(13,3)=(13,4)=s16__pos:(8,57),0,64;__state:(15,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(18,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(18,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(18,3)=(18,4)=*(18,5)=f(0,1)__gconv_init_fct:t(18,6)=(18,7)=*(18,8)=f(0,1)__gconv_end_fct:t(18,9)=(18,10)=*(18,11)=f(0,20)__gconv_trans_fct:t(18,12)=(18,13)=*(18,14)=f(0,1)__gconv_trans_context_fct:t(18,15)=(18,16)=*(18,17)=f(0,1)__gconv_trans_query_fct:t(18,18)=(18,19)=*(18,20)=f(0,1)__gconv_trans_init_fct:t(18,21)=(18,22)=*(18,23)=f(0,1)__gconv_trans_end_fct:t(18,24)=(18,25)=*(18,26)=f(0,20)__gconv_trans_data:T(18,27)=s20__trans_fct:(18,12),0,32;__trans_context_fct:(18,15),32,32;__trans_end_fct:(18,24),64,32;__data:(0,19),96,32;__next:(18,28)=*(18,27),128,32;;__gconv_step:T(18,29)=s56__shlib_handle:(18,30)=*(18,31)=xs__gconv_loaded_object:,0,32;__modname:(18,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(8,35),96,32;__to_name:(8,35),128,32;__fct:(18,3),160,32;__init_fct:(18,6),192,32;__end_fct:(18,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(18,33)=s36__outbuf:(18,34)=*(0,11),0,32;__outbufend:(18,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(18,35)=*(15,1),160,32;__state:(15,1),192,64;__trans:(18,28),256,32;;__gconv_info:T(18,36)=s8__nsteps:(6,1),0,32;__steps:(18,37)=*(18,29),32,32;__data:(18,38)=ar(0,22);0;-1;(18,33),64,0;;__gconv_t:t(18,39)=(18,40)=*(18,36)_G_iconv_t:t(13,5)=(13,6)=u44__cd:(18,36),0,64;__combined:(13,7)=s44__cd:(18,36),0,64;__data:(18,33),64,288;;,0,352;;_G_int16_t:t(13,8)=(0,8)_G_int32_t:t(13,9)=(0,1)_G_uint16_t:t(13,10)=(0,9)_G_uint32_t:t(13,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(12,1)=(0,20)_IO_marker:T(12,2)=s12_next:(12,3)=*(12,2),0,32;_sbuf:(12,4)=*(2,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(12,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(2,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(8,35),32,32;_IO_read_end:(8,35),64,32;_IO_read_base:(8,35),96,32;_IO_write_base:(8,35),128,32;_IO_write_ptr:(8,35),160,32;_IO_write_end:(8,35),192,32;_IO_buf_base:(8,35),224,32;_IO_buf_end:(8,35),256,32;_IO_save_base:(8,35),288,32;_IO_backup_base:(8,35),320,32;_IO_save_end:(8,35),352,32;_markers:(12,3),384,32;_chain:(12,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(8,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(12,6)=ar(0,22);0;0;(0,2),568,8;_lock:(12,7)=*(12,1),576,32;_offset:(8,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(12,8)=ar(0,22);0;51;(0,2),768,416;;_IO_FILE:t(12,9)=(2,2)__io_read_fn:t(12,10)=(12,11)=f(8,26)__io_write_fn:t(12,12)=(12,13)=f(8,26)__io_seek_fn:t(12,14)=(12,15)=f(0,1)__io_close_fn:t(12,16)=(12,17)=f(0,1)fpos_t:t(2,4)=(13,1)/usr/include/bits/stdio_lim.hoff_t:t(2,5)=(8,23)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/float.h__convert_long_double:T(24,1)=u16__convert_long_double_i:(24,2)=ar(0,22);0;3;(0,4),0,128;__convert_long_double_d:(0,14),0,96;;gintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hptrdiff_t:t(25,1)=(0,1)/usr/include/math.h/usr/include/bits/huge_val.h/usr/include/bits/mathdef.h/usr/include/bits/mathcalls.h/usr/include/bits/mathcalls.h/usr/include/bits/mathcalls.h :T(26,1)=e_IEEE_:-1,_SVID_:0,_XOPEN_:1,_POSIX_:2,_ISOC_:3,;_LIB_VERSION_TYPE:t(26,2)=(26,1)exception:T(26,3)=s32type:(0,1),0,32;name:(8,35),32,32;arg1:(0,13),64,64;arg2:(0,13),128,64;retval:(0,13),192,64;;gintv_print:F(0,20)fp:p(0,23)=*(2,1)b:p(18,32)nx:p(0,1)x:p(0,24)=*(1,4)e:p(18,32)j:(0,1)gintv_s:F(1,4)a:p(1,2)a:(1,2)A:(1,4)gintv_v:F(1,4)a:p(1,2)b:p(1,2)a:(1,2)b:(1,2)A:(1,4)gintv_l:F(1,2)x:p(0,24)gintv_h:F(1,2)x:p(0,24)gintv_union:F(0,20)X:p(0,25)=*(1,4)A:p(0,24)B:p(0,24)_a:(1,2)_b:(1,2)gintv_add:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)_a:(1,2)_b:(1,2)gintv_sub:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)_a:(1,2)_b:(1,2)gintv_neg:F(0,20)X:p(0,25)A:p(0,24)_a:(1,2)_b:(1,2)gintv_mul:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_div:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_sqrt:F(0,20)X:p(0,25)A:p(0,24)gintv_pow:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_exp:F(0,20)X:p(0,25)A:p(0,24)gintv_log:F(0,20)X:p(0,25)A:p(0,24)gintv_cos:F(0,20)X:p(0,25)A:p(0,24)ap:(1,2)bp:(1,2)mod_ap_2:(1,2)cos_a:(1,2)cos_b:(1,2)gintv_sin:F(0,20)X:p(0,25)A:p(0,24)B:(1,4)gintv_tan:F(0,20)X:p(0,25)A:p(0,24)ap:(1,2)bp:(1,2)gintv_asin:F(0,20)X:p(0,25)A:p(0,24)gintv_acos:F(0,20)X:p(0,25)A:p(0,24)_a:(1,2)_b:(1,2)gintv_atan:F(0,20)X:p(0,25)A:p(0,24)gintv_atan2:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_eq:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_ne:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_lt:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_gt:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_ge:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_le:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_and:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_or:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_not:F(0,20)X:p(0,25)A:p(0,24)gintv__if:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)C:p(0,24)gintv_ceil:F(0,20)X:p(0,25)A:p(0,24)gintv_floor:F(0,20)X:p(0,25)A:p(0,24)gintv_fabs:F(0,20)X:p(0,25)A:p(0,24)_a:(1,2)_b:(1,2)gintv_fmod:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)FIX_MIN:f(1,2)x:p(1,2)x:r(1,2)FIX_MAX:f(1,2)x:p(1,2)x:r(1,2)$Id: gintv.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $%s[%.20g, %.20g] -DT! @-DT!?-DT!?-DT! @<<GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.stab.rel.stab.stabstr.rodata.comment4^! l +16< B nX Lx:(U`c ] d.Ndff  j 7 @7 70?H GS[Tc`k@ sL {XRPR_||YX Yh Y 0  PD#0Y.3c>CYNSL_enwHd33`YYa|gintv.c__rcs_id_gintv_gintv_c__rcs_id_gintv_gintv_hFIX_MINFIX_MAXgintv_printfprintfgintv_sgintv_vgintv_lgintv_hgintv_uniongintv_addgintv_subgintv_neggintv_mulgintv_divgintv_sqrtsqrtgintv_powpowgintv_expexpgintv_logloggintv_cosceilfmodcosgintv_singintv_tantangintv_asinasingintv_acosacosgintv_atanatangintv_atan2atan2gintv_eqgintv_negintv_ltgintv_gtgintv_gegintv_legintv_andgintv_orgintv_notgintv__ifgintv_ceilgintv_floorfloorgintv_fabsgintv_fmod ]e{7o G { ! !  # R $h % %6"T\j##((C*k*,,.+.c0000[3w4Qs##==$$$$<T 4t (   H x   (  $P "&<')+t-/(12H34h56(78H9:;<>?$xgmv0.9/src/gintv/mak_gen/Linux/odd/solve.o0100644000175200017560000004127407262741247021056 0ustar stephensstephengELF>4( USvE } uKvEU@"EEt E͐]MAQ S"]M?AQ S$ÍvUWVS\EEE()ĉE̋ẺEȋE()ĉEċE(EăEEĉEE EЋEEPuuE;EsvuuuEPEЃt EE@t3vEE@tvEE)E(뇍vEÈ@r!EtE;EtnEE;E|*MЋEEȉύ4EЃE̍EE;E| EvEE)E( u$uuuEPE Ѓ t ~vEÈ@rNEt7vEUE;|0EEMȋEEȍ<4EƉEMȋEEDx]EEMȋEEȍTRDT EMȋEUDT EEMȋEUTEE;E|2EEMȋEEȍ<4EƉEEE8y UEHUEEh&w"Lu'Lv&&@1F^w+3M !"#%& 1$2<3S4l5689;=>?0@FA]BuCDEFGHINVQnRSTUVX [& ^> bV x { ~  ; X s  + L f #" 4+ <| C F SjZ^1;(Az8 H#1FGJ'KXTY]`7ao2V5789:4mH ? VF_mgjI7! !Zpbj 5 !J "` #t $ % & ' * . : !?"!D9!IQ!Ng!`}!e!j!o!p!t!"F"R3"^J"""""""##7#P#i######$$:$$$$0$3$%4%O%j%&&&&'$/'E' O'`'m'DDDD3D9D<DWD^D `D!{D"${'$0'&'' '(')'*'+', (-$#(/(D0D2 D4D5*D60D7FD8UD:[D=aD>jD@DBDCDLDODPDUDVDZ8D]8D^LD]mD`tDbyDcDfDgDkDnDqDsDtDyD}DDDD?DHDpDDDDDDDDD'D0D=DCDCDHDK6(1@(2Q(3[(4j(5s(6(7(8(Z(q(($Sdsolve.c/home/stephens/ion/src/gintv/solve.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)__rcs_id_gintv_solve_c:S(0,21)=ar(0,22)=r(0,22);0000000000000;0037777777777;;0;53;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,22);0;54;(0,2)/usr/include/stdio.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(6,1)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(7,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(8,1)=(0,11)__u_short:t(8,2)=(0,9)__u_int:t(8,3)=(0,4)__u_long:t(8,4)=(0,5)__u_quad_t:t(8,5)=(0,7)__quad_t:t(8,6)=(0,6)__int8_t:t(8,7)=(0,10)__uint8_t:t(8,8)=(0,11)__int16_t:t(8,9)=(0,8)__uint16_t:t(8,10)=(0,9)__int32_t:t(8,11)=(0,1)__uint32_t:t(8,12)=(0,4)__int64_t:t(8,13)=(0,6)__uint64_t:t(8,14)=(0,7)__qaddr_t:t(8,15)=(8,16)=*(8,6)__dev_t:t(8,17)=(8,5)__uid_t:t(8,18)=(8,3)__gid_t:t(8,19)=(8,3)__ino_t:t(8,20)=(8,4)__mode_t:t(8,21)=(8,3)__nlink_t:t(8,22)=(8,3)__off_t:t(8,23)=(0,3)__loff_t:t(8,24)=(8,6)__pid_t:t(8,25)=(0,1)__ssize_t:t(8,26)=(0,1)__rlim_t:t(8,27)=(8,4)__rlim64_t:t(8,28)=(8,5)__id_t:t(8,29)=(8,3)__fsid_t:t(8,30)=(8,31)=s8__val:(8,32)=ar(0,22);0;1;(0,1),0,64;;__daddr_t:t(8,33)=(0,1)__caddr_t:t(8,34)=(8,35)=*(0,2)__time_t:t(8,36)=(0,3)__useconds_t:t(8,37)=(0,4)__suseconds_t:t(8,38)=(0,3)__swblk_t:t(8,39)=(0,3)__clock_t:t(8,40)=(0,3)__clockid_t:t(8,41)=(0,1)__timer_t:t(8,42)=(0,1)__fd_mask:t(8,43)=(0,5)__fd_set:t(8,44)=(8,45)=s128__fds_bits:(8,46)=ar(0,22);0;31;(8,43),0,1024;;__key_t:t(8,47)=(0,1)__ipc_pid_t:t(8,48)=(0,9)__blksize_t:t(8,49)=(0,3)__blkcnt_t:t(8,50)=(0,3)__blkcnt64_t:t(8,51)=(8,6)__fsblkcnt_t:t(8,52)=(8,4)__fsblkcnt64_t:t(8,53)=(8,5)__fsfilcnt_t:t(8,54)=(8,4)__fsfilcnt64_t:t(8,55)=(8,5)__ino64_t:t(8,56)=(8,5)__off64_t:t(8,57)=(8,24)__t_scalar_t:t(8,58)=(0,3)__t_uscalar_t:t(8,59)=(0,5)__intptr_t:t(8,60)=(0,1)__socklen_t:t(8,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(11,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(10,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(10,2)=(10,3)=*(10,4)=xs_pthread_descr_struct:pthread_attr_t:t(10,5)=(10,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(11,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(6,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(6,1),256,32;;pthread_cond_t:t(10,7)=(10,8)=s12__c_lock:(10,1),0,64;__c_waiting:(10,2),64,32;;pthread_condattr_t:t(10,9)=(10,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(10,11)=(0,4)pthread_mutex_t:t(10,12)=(10,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(10,2),64,32;__m_kind:(0,1),96,32;__m_lock:(10,1),128,64;;pthread_mutexattr_t:t(10,14)=(10,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(10,16)=(0,1)pthread_t:t(10,17)=(0,5)FILE:t(2,1)=(2,2)=xs_IO_FILE:__FILE:t(2,3)=(2,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(14,1)=(0,3)wint_t:t(14,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(15,1)=(15,2)=s8__count:(0,1),0,32;__value:(15,3)=u4__wch:(14,2),0,32;__wchb:(15,4)=ar(0,22);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(13,1)=(13,2)=s12__pos:(8,23),0,32;__state:(15,1),32,64;;_G_fpos64_t:t(13,3)=(13,4)=s16__pos:(8,57),0,64;__state:(15,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(18,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(18,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(18,3)=(18,4)=*(18,5)=f(0,1)__gconv_init_fct:t(18,6)=(18,7)=*(18,8)=f(0,1)__gconv_end_fct:t(18,9)=(18,10)=*(18,11)=f(0,20)__gconv_trans_fct:t(18,12)=(18,13)=*(18,14)=f(0,1)__gconv_trans_context_fct:t(18,15)=(18,16)=*(18,17)=f(0,1)__gconv_trans_query_fct:t(18,18)=(18,19)=*(18,20)=f(0,1)__gconv_trans_init_fct:t(18,21)=(18,22)=*(18,23)=f(0,1)__gconv_trans_end_fct:t(18,24)=(18,25)=*(18,26)=f(0,20)__gconv_trans_data:T(18,27)=s20__trans_fct:(18,12),0,32;__trans_context_fct:(18,15),32,32;__trans_end_fct:(18,24),64,32;__data:(0,19),96,32;__next:(18,28)=*(18,27),128,32;;__gconv_step:T(18,29)=s56__shlib_handle:(18,30)=*(18,31)=xs__gconv_loaded_object:,0,32;__modname:(18,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(8,35),96,32;__to_name:(8,35),128,32;__fct:(18,3),160,32;__init_fct:(18,6),192,32;__end_fct:(18,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(18,33)=s36__outbuf:(18,34)=*(0,11),0,32;__outbufend:(18,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(18,35)=*(15,1),160,32;__state:(15,1),192,64;__trans:(18,28),256,32;;__gconv_info:T(18,36)=s8__nsteps:(6,1),0,32;__steps:(18,37)=*(18,29),32,32;__data:(18,38)=ar(0,22);0;-1;(18,33),64,0;;__gconv_t:t(18,39)=(18,40)=*(18,36)_G_iconv_t:t(13,5)=(13,6)=u44__cd:(18,36),0,64;__combined:(13,7)=s44__cd:(18,36),0,64;__data:(18,33),64,288;;,0,352;;_G_int16_t:t(13,8)=(0,8)_G_int32_t:t(13,9)=(0,1)_G_uint16_t:t(13,10)=(0,9)_G_uint32_t:t(13,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(12,1)=(0,20)_IO_marker:T(12,2)=s12_next:(12,3)=*(12,2),0,32;_sbuf:(12,4)=*(2,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(12,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(2,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(8,35),32,32;_IO_read_end:(8,35),64,32;_IO_read_base:(8,35),96,32;_IO_write_base:(8,35),128,32;_IO_write_ptr:(8,35),160,32;_IO_write_end:(8,35),192,32;_IO_buf_base:(8,35),224,32;_IO_buf_end:(8,35),256,32;_IO_save_base:(8,35),288,32;_IO_backup_base:(8,35),320,32;_IO_save_end:(8,35),352,32;_markers:(12,3),384,32;_chain:(12,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(8,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(12,6)=ar(0,22);0;0;(0,2),568,8;_lock:(12,7)=*(12,1),576,32;_offset:(8,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(12,8)=ar(0,22);0;51;(0,2),768,416;;_IO_FILE:t(12,9)=(2,2)__io_read_fn:t(12,10)=(12,11)=f(8,26)__io_write_fn:t(12,12)=(12,13)=f(8,26)__io_seek_fn:t(12,14)=(12,15)=f(0,1)__io_close_fn:t(12,16)=(12,17)=f(0,1)fpos_t:t(2,4)=(13,1)/usr/include/bits/stdio_lim.hoff_t:t(2,5)=(8,23)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/float.h__convert_long_double:T(24,1)=u16__convert_long_double_i:(24,2)=ar(0,22);0;3;(0,4),0,128;__convert_long_double_d:(0,14),0,96;;gintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)/usr/include/string.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/stdlib.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hdiv_t:t(27,1)=(27,2)=s8quot:(0,1),0,32;rem:(0,1),32,32;;ldiv_t:t(27,3)=(27,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;/usr/include/sys/types.hu_char:t(29,1)=(8,1)u_short:t(29,2)=(8,2)u_int:t(29,3)=(8,3)u_long:t(29,4)=(8,4)quad_t:t(29,5)=(8,6)u_quad_t:t(29,6)=(8,5)fsid_t:t(29,7)=(8,30)loff_t:t(29,8)=(8,24)ino_t:t(29,9)=(8,20)dev_t:t(29,10)=(8,17)gid_t:t(29,11)=(8,19)mode_t:t(29,12)=(8,21)nlink_t:t(29,13)=(8,22)uid_t:t(29,14)=(8,18)pid_t:t(29,15)=(8,25)id_t:t(29,16)=(8,29)ssize_t:t(29,17)=(8,26)daddr_t:t(29,18)=(8,33)caddr_t:t(29,19)=(8,34)key_t:t(29,20)=(8,47)/usr/include/time.htime_t:t(30,1)=(8,36)clockid_t:t(30,2)=(8,41)timer_t:t(30,3)=(8,42)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hulong:t(29,21)=(0,5)ushort:t(29,22)=(0,9)uint:t(29,23)=(0,4)int8_t:t(29,24)=(0,10)int16_t:t(29,25)=(0,8)int32_t:t(29,26)=(0,1)int64_t:t(29,27)=(0,6)u_int8_t:t(29,28)=(0,11)u_int16_t:t(29,29)=(0,9)u_int32_t:t(29,30)=(0,4)u_int64_t:t(29,31)=(0,7)register_t:t(29,32)=(0,1)/usr/include/endian.h/usr/include/bits/endian.h/usr/include/sys/select.h/usr/include/bits/select.h/usr/include/bits/sigset.h__sig_atomic_t:t(36,1)=(0,1)__sigset_t:t(36,2)=(36,3)=s128__val:(36,4)=ar(0,22);0;31;(0,5),0,1024;;/usr/include/time.htimespec:T(37,1)=s8tv_sec:(0,3),0,32;tv_nsec:(0,3),32,32;;fd_mask:t(34,1)=(8,43)fd_set:t(34,2)=(8,44)/usr/include/sys/sysmacros.hblkcnt_t:t(29,33)=(8,50)fsblkcnt_t:t(29,34)=(8,52)fsfilcnt_t:t(29,35)=(8,54)random_data:T(27,5)=s28fptr:(27,6)=*(29,26),0,32;rptr:(27,6),32,32;state:(27,6),64,32;rand_type:(0,1),96,32;rand_deg:(0,1),128,32;rand_sep:(0,1),160,32;end_ptr:(27,6),192,32;;drand48_data:T(27,7)=s24x:(27,8)=ar(0,22);0;2;(0,9),0,48;a:(27,8),48,48;c:(0,9),96,16;old_x:(27,8),112,48;init:(0,1),160,32;;/usr/include/alloca.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__compar_fn_t:t(27,9)=(27,10)=*(27,11)=f(0,1)gintv_in_tolerance:F(0,1)result:p(0,23)=*(1,4)nx:p(0,1)x:p(0,24)=*(1,4)data:p(0,19)adata:p(0,19)gintv_solve:F(0,1)maxnsolutions:p(0,1)solutions:p(0,23)func:p(0,25)=*(0,26)=f(0,1)nx:p(0,1)xspace:p(0,24)data:p(0,19)accept:p(0,27)=*(0,28)=f(0,1)adata:p(0,19)stack_depth:p(0,1)f_x:(1,4)nsolutions:(0,1)sp:(0,23)x_stack:(0,23)x:(0,23)parm_stack:(0,29)=*(0,1)parm_stack_end:(0,29)parm:(0,29)i:(0,1)A:(1,4)i:(0,1)m:(1,2)$Id: solve.c,v 1.3 2001/04/04 09:04:44 stephens Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $?GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.stab.rel.stab.stabstr.rodata.comment4! tB +16<$ B B8 L(U= ]`>.>f$A  B] 6 @7  7JSVsolve.c__rcs_id_gintv_solve_c__rcs_id_gintv_gintv_hgintv_in_tolerancegintv_solvememcpy 4\  4  gmv0.9/src/gintv/mak_gen/Linux/odd/merge.o0100644000175200017560000003323407262475434021024 0ustar stephensstephengELF24( UWVSEEEEUESvEEEE܋UEE EŐE;EuvE EUEvE EUEvE;EudEMEEDE@u뷍vEMEEDE@i냍vEMEEE@6EMEEDDE@EMEEDE@t/vEMEE܍TRDT XvEMEEDE@t(vEMEE܍RTE E܉EEE E萋UEME܋UljEE܃̋E EE[^_]ÐUWVSEEEEUEWvEEEE܋UEE EŐE;Eu vE EUEvE EUECvE;EudEMEEDE@u뷍vEMEEDE@i냍vEMEEÈ@r3vEM܋EEDÈ@rEMEEDÈ@rEM܋EEDDÈ@E EUE.EEPEEPEEPŐE E܉EEE EUEME܋UljEE܃̋E EEe[^_]01.01 d'd/<>h&w"Lu'Lv&&@1F^w+3M !"#%& 1$2<3S4l5689;=>?0@FA]BuCDEFGHINVQnRSTUVX [& ^> bV x { ~  ; X s  + L f #" 4+ <| C F SjZ^1;(Az8 H#1FGJ'KXTY]`7ao2V5789:4mH ? VF_mgjI7! $' 1 ; DD D D,D",D#TD$\D,dD/D0D1D4D/kD<lD=D?D@DGDI)DJ3DM@DPCDKHDLfD,hD"hDVzDzDX|DYLT\dlv$$d\\ \DdDe Dk Dl,Ds,DtTDu\D}dDDDDDDDDD D,D6DDDGDLDjD}lDslD~Dk~DDeeeehl$dmerge.c/home/stephens/ion/src/gintv/merge.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)__rcs_id_gintv_merge_c:S(0,21)=ar(0,22)=r(0,22);0000000000000;0037777777777;;0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,22);0;54;(0,2)/usr/include/stdio.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(6,1)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(7,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(8,1)=(0,11)__u_short:t(8,2)=(0,9)__u_int:t(8,3)=(0,4)__u_long:t(8,4)=(0,5)__u_quad_t:t(8,5)=(0,7)__quad_t:t(8,6)=(0,6)__int8_t:t(8,7)=(0,10)__uint8_t:t(8,8)=(0,11)__int16_t:t(8,9)=(0,8)__uint16_t:t(8,10)=(0,9)__int32_t:t(8,11)=(0,1)__uint32_t:t(8,12)=(0,4)__int64_t:t(8,13)=(0,6)__uint64_t:t(8,14)=(0,7)__qaddr_t:t(8,15)=(8,16)=*(8,6)__dev_t:t(8,17)=(8,5)__uid_t:t(8,18)=(8,3)__gid_t:t(8,19)=(8,3)__ino_t:t(8,20)=(8,4)__mode_t:t(8,21)=(8,3)__nlink_t:t(8,22)=(8,3)__off_t:t(8,23)=(0,3)__loff_t:t(8,24)=(8,6)__pid_t:t(8,25)=(0,1)__ssize_t:t(8,26)=(0,1)__rlim_t:t(8,27)=(8,4)__rlim64_t:t(8,28)=(8,5)__id_t:t(8,29)=(8,3)__fsid_t:t(8,30)=(8,31)=s8__val:(8,32)=ar(0,22);0;1;(0,1),0,64;;__daddr_t:t(8,33)=(0,1)__caddr_t:t(8,34)=(8,35)=*(0,2)__time_t:t(8,36)=(0,3)__useconds_t:t(8,37)=(0,4)__suseconds_t:t(8,38)=(0,3)__swblk_t:t(8,39)=(0,3)__clock_t:t(8,40)=(0,3)__clockid_t:t(8,41)=(0,1)__timer_t:t(8,42)=(0,1)__fd_mask:t(8,43)=(0,5)__fd_set:t(8,44)=(8,45)=s128__fds_bits:(8,46)=ar(0,22);0;31;(8,43),0,1024;;__key_t:t(8,47)=(0,1)__ipc_pid_t:t(8,48)=(0,9)__blksize_t:t(8,49)=(0,3)__blkcnt_t:t(8,50)=(0,3)__blkcnt64_t:t(8,51)=(8,6)__fsblkcnt_t:t(8,52)=(8,4)__fsblkcnt64_t:t(8,53)=(8,5)__fsfilcnt_t:t(8,54)=(8,4)__fsfilcnt64_t:t(8,55)=(8,5)__ino64_t:t(8,56)=(8,5)__off64_t:t(8,57)=(8,24)__t_scalar_t:t(8,58)=(0,3)__t_uscalar_t:t(8,59)=(0,5)__intptr_t:t(8,60)=(0,1)__socklen_t:t(8,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(11,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(10,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(10,2)=(10,3)=*(10,4)=xs_pthread_descr_struct:pthread_attr_t:t(10,5)=(10,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(11,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(6,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(6,1),256,32;;pthread_cond_t:t(10,7)=(10,8)=s12__c_lock:(10,1),0,64;__c_waiting:(10,2),64,32;;pthread_condattr_t:t(10,9)=(10,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(10,11)=(0,4)pthread_mutex_t:t(10,12)=(10,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(10,2),64,32;__m_kind:(0,1),96,32;__m_lock:(10,1),128,64;;pthread_mutexattr_t:t(10,14)=(10,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(10,16)=(0,1)pthread_t:t(10,17)=(0,5)FILE:t(2,1)=(2,2)=xs_IO_FILE:__FILE:t(2,3)=(2,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(14,1)=(0,3)wint_t:t(14,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(15,1)=(15,2)=s8__count:(0,1),0,32;__value:(15,3)=u4__wch:(14,2),0,32;__wchb:(15,4)=ar(0,22);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(13,1)=(13,2)=s12__pos:(8,23),0,32;__state:(15,1),32,64;;_G_fpos64_t:t(13,3)=(13,4)=s16__pos:(8,57),0,64;__state:(15,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(18,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(18,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(18,3)=(18,4)=*(18,5)=f(0,1)__gconv_init_fct:t(18,6)=(18,7)=*(18,8)=f(0,1)__gconv_end_fct:t(18,9)=(18,10)=*(18,11)=f(0,20)__gconv_trans_fct:t(18,12)=(18,13)=*(18,14)=f(0,1)__gconv_trans_context_fct:t(18,15)=(18,16)=*(18,17)=f(0,1)__gconv_trans_query_fct:t(18,18)=(18,19)=*(18,20)=f(0,1)__gconv_trans_init_fct:t(18,21)=(18,22)=*(18,23)=f(0,1)__gconv_trans_end_fct:t(18,24)=(18,25)=*(18,26)=f(0,20)__gconv_trans_data:T(18,27)=s20__trans_fct:(18,12),0,32;__trans_context_fct:(18,15),32,32;__trans_end_fct:(18,24),64,32;__data:(0,19),96,32;__next:(18,28)=*(18,27),128,32;;__gconv_step:T(18,29)=s56__shlib_handle:(18,30)=*(18,31)=xs__gconv_loaded_object:,0,32;__modname:(18,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(8,35),96,32;__to_name:(8,35),128,32;__fct:(18,3),160,32;__init_fct:(18,6),192,32;__end_fct:(18,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(18,33)=s36__outbuf:(18,34)=*(0,11),0,32;__outbufend:(18,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(18,35)=*(15,1),160,32;__state:(15,1),192,64;__trans:(18,28),256,32;;__gconv_info:T(18,36)=s8__nsteps:(6,1),0,32;__steps:(18,37)=*(18,29),32,32;__data:(18,38)=ar(0,22);0;-1;(18,33),64,0;;__gconv_t:t(18,39)=(18,40)=*(18,36)_G_iconv_t:t(13,5)=(13,6)=u44__cd:(18,36),0,64;__combined:(13,7)=s44__cd:(18,36),0,64;__data:(18,33),64,288;;,0,352;;_G_int16_t:t(13,8)=(0,8)_G_int32_t:t(13,9)=(0,1)_G_uint16_t:t(13,10)=(0,9)_G_uint32_t:t(13,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(12,1)=(0,20)_IO_marker:T(12,2)=s12_next:(12,3)=*(12,2),0,32;_sbuf:(12,4)=*(2,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(12,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(2,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(8,35),32,32;_IO_read_end:(8,35),64,32;_IO_read_base:(8,35),96,32;_IO_write_base:(8,35),128,32;_IO_write_ptr:(8,35),160,32;_IO_write_end:(8,35),192,32;_IO_buf_base:(8,35),224,32;_IO_buf_end:(8,35),256,32;_IO_save_base:(8,35),288,32;_IO_backup_base:(8,35),320,32;_IO_save_end:(8,35),352,32;_markers:(12,3),384,32;_chain:(12,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(8,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(12,6)=ar(0,22);0;0;(0,2),568,8;_lock:(12,7)=*(12,1),576,32;_offset:(8,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(12,8)=ar(0,22);0;51;(0,2),768,416;;_IO_FILE:t(12,9)=(2,2)__io_read_fn:t(12,10)=(12,11)=f(8,26)__io_write_fn:t(12,12)=(12,13)=f(8,26)__io_seek_fn:t(12,14)=(12,15)=f(0,1)__io_close_fn:t(12,16)=(12,17)=f(0,1)fpos_t:t(2,4)=(13,1)/usr/include/bits/stdio_lim.hoff_t:t(2,5)=(8,23)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/float.h__convert_long_double:T(24,1)=u16__convert_long_double_i:(24,2)=ar(0,22);0;3;(0,4),0,128;__convert_long_double_d:(0,14),0,96;;gintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)gintv_merge_adjacent:F(0,1)nv:p(0,1)nx:p(0,1)x:p(0,23)=*(1,4)i:(0,1)j:(0,1)k:(0,1)l:(0,1)p0:(0,23)p1:(0,23)gintv_merge_aggregate:F(0,1)nv:p(0,1)nx:p(0,1)x:p(0,23)i:(0,1)j:(0,1)k:(0,1)l:(0,1)p0:(0,23)p1:(0,23)$Id: merge.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.stab.rel.stab.stabstr.rodata.comment4! \6 +H1H6H<\l  B d68 LU1w ]72.e2f4  5n 7 @7  7Lbmerge.c__rcs_id_gintv_merge_c__rcs_id_gintv_gintv_hgintv_merge_adjacentgintv_merge_aggregategintv_union 4  h gmv0.9/src/gintv/mak_gen/Linux/oddd/0040755000175200017560000000000007262741246017704 5ustar stephensstephenggmv0.9/src/gintv/mak_gen/Linux/oddd/gintv.o0100644000175200017560000006776407262507246021234 0ustar stephensstephengELFd4( Uu hwuEE;E|FEEt tEEt4hzu E뱐uhwuUWV0E UEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UWV0E UEUEUEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UE]ÉUE@]ÐU(E UEtvE ] E]E]E U@BEt E @] E@]E]uuWEuuYEXÉUE U]E U@B]uuEuuEXÉUE Ub]E U@"]uuEuuEXÉUE P @EUE PEUuuNEuuPEXÐU8E U ]E UJ]E U@ ]E U@J]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuEXU8E U2]E Ur]E U@2]E U@r]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuGEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuWEXUE p0d$$EE p pd$$EXÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uu7EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuGEXUE p0d$$EE p pd$$EXÍvUE p0d$$EE p pd$$EXÍvUHE d$$]E @]EEÈ@r+vE@E@@ ?h@juu]E p0]E p p]EEÈ@rcvEE@tKvE@EEEEEt vE]E]EȋEXEEÈ@rpEE@t[vEEEt vE]E]uuEh?jEXgEEEt"MEUQME؋U܉AQ .uu]Euu_EXUWV E ]؋E @]}uEPue^_]UE d$$]E @d$$]EEE@u'vE@E@@ QE p0d$$5EE p pd$$%EXÉUE p0d$$EE p pd$$EXÍvUE p p]E p0]uubEuudEXÐUE p0d$$EE p pd$$ EXÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuC EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuS EXUEU @EtE U@Et)E@E@@ E U BE@t]E U@E@tAEUBE@t%E@?E@@ ?"E@E@@ ?]ÐUEU @EtE U@Et)E@?E@@ ?E U BE@t]E U@E@tAEUBE@t%E@E@@ "E@E@@ ?]ÐUEU @È@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]ÐUE UBÈ@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]ÐUu uuUu uuUE E@tE @E@t2EE@tCvE@E@t(E@E@@ E E@tmE @E@tTEE@t=E@E@t$E@?E@@ ?"E@E@@ ?]ÐUE E@trE @E@tXEE@tAE@E@t(E@E@@ E E@tE @E@t2EE@t?vE@E@t$E@?E@@ ?"E@E@@ ?]ÐUE E@t>E @E@t$E@?E@@ ?vE E@t=E @E@t$E@E@@ "E@E@@ ?]ÐUWVE E@t,E @E@tEUljXE E@t-E @E@tEUljuuue^_]ÐUE p0d$$EE p pd$$EXÍvUE p0d$$NEE p pd$$>EXÍvUWV0E Et0E @EtvEU ljE EtuE @Et\E P @EUE PEUuueEuugEXE@EEE PEЉUEE P @EЉUEEtE PE؉UE P @E؉UE؋EXe^_]ÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uu#EXUE]ÉUE]01.01;( d'd/<>h&w"Lu'Lv&&@1F^w+3M !"#%& 1$2<3S4l5689;=>?0@FA]BuCDEFGHINVQnRSTUVX [& ^> bV x { ~  ; X s  + L f #" 4+ <| C F SjZ^1;(Az8 H#1FGJ'KXTY]`7ao2V5789:4mH ? VF_mgjI7! D\p @ a $  ! !  ! DDDD0DlDtD+!$3!$B! DDD:DHK!S!$T[!$!j! s! D!D" D#FD$T|! ! !"$`!$-!-D-$ !$.!.D.$ !$u!t!t !tDuDvDw!v"v$"$z#"y-"y 7"yDzD{D|PA"{J"{R$RS"$e"~o"~ y"~DDDP""R$R"$"" DDD]""_$_"$"" "D"###$|!#$3#=# G#DQ#Z#c#l#$|u#$## D$Y#$## #D####$#$$ $ D$Y$$($2$ D$Y<$$N$X$ DDD9DXDDDDDD@DpDD.b$k$t$$$$0$$$$ DDD7DI$$P$$$$ DDD[DtDD$$$%$%% D$Y(%$;%E% DO%X%c$ca%$t%~% D$Y%$%% %D%%%%$%$%% &DDD8D`DDD$ &$&(& 2&DDD8D`DDD$<&$M&W& a&DDD DDD`DD$k&$|&& &DDD DDD`DD$&$&& &DDD$&$&& &DDD$&$ '' 'DDDdDDDD1$3('$9'C' M'DDDdDDDD1$3W'$i's' DDD4D XD D D $}'$'' ''DDD4DFDHDxDDD$'$'' D$Y'$'' D$Y($ (#( D D!D"4D$LD%|D'D(Z-(%6(%Z$a?($*R(*\(* f(*D*p(*y(*(*(*$($D0(CDDDEDF(@C $($HH(GDHDIDJ(@G $d^gintv.c/home/stephens/ion/src/gintv/gintv.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)__rcs_id_gintv_gintv_c:S(0,21)=ar(0,22)=r(0,22);0000000000000;0037777777777;;0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,22);0;54;(0,2)/usr/include/stdio.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(6,1)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(7,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(8,1)=(0,11)__u_short:t(8,2)=(0,9)__u_int:t(8,3)=(0,4)__u_long:t(8,4)=(0,5)__u_quad_t:t(8,5)=(0,7)__quad_t:t(8,6)=(0,6)__int8_t:t(8,7)=(0,10)__uint8_t:t(8,8)=(0,11)__int16_t:t(8,9)=(0,8)__uint16_t:t(8,10)=(0,9)__int32_t:t(8,11)=(0,1)__uint32_t:t(8,12)=(0,4)__int64_t:t(8,13)=(0,6)__uint64_t:t(8,14)=(0,7)__qaddr_t:t(8,15)=(8,16)=*(8,6)__dev_t:t(8,17)=(8,5)__uid_t:t(8,18)=(8,3)__gid_t:t(8,19)=(8,3)__ino_t:t(8,20)=(8,4)__mode_t:t(8,21)=(8,3)__nlink_t:t(8,22)=(8,3)__off_t:t(8,23)=(0,3)__loff_t:t(8,24)=(8,6)__pid_t:t(8,25)=(0,1)__ssize_t:t(8,26)=(0,1)__rlim_t:t(8,27)=(8,4)__rlim64_t:t(8,28)=(8,5)__id_t:t(8,29)=(8,3)__fsid_t:t(8,30)=(8,31)=s8__val:(8,32)=ar(0,22);0;1;(0,1),0,64;;__daddr_t:t(8,33)=(0,1)__caddr_t:t(8,34)=(8,35)=*(0,2)__time_t:t(8,36)=(0,3)__useconds_t:t(8,37)=(0,4)__suseconds_t:t(8,38)=(0,3)__swblk_t:t(8,39)=(0,3)__clock_t:t(8,40)=(0,3)__clockid_t:t(8,41)=(0,1)__timer_t:t(8,42)=(0,1)__fd_mask:t(8,43)=(0,5)__fd_set:t(8,44)=(8,45)=s128__fds_bits:(8,46)=ar(0,22);0;31;(8,43),0,1024;;__key_t:t(8,47)=(0,1)__ipc_pid_t:t(8,48)=(0,9)__blksize_t:t(8,49)=(0,3)__blkcnt_t:t(8,50)=(0,3)__blkcnt64_t:t(8,51)=(8,6)__fsblkcnt_t:t(8,52)=(8,4)__fsblkcnt64_t:t(8,53)=(8,5)__fsfilcnt_t:t(8,54)=(8,4)__fsfilcnt64_t:t(8,55)=(8,5)__ino64_t:t(8,56)=(8,5)__off64_t:t(8,57)=(8,24)__t_scalar_t:t(8,58)=(0,3)__t_uscalar_t:t(8,59)=(0,5)__intptr_t:t(8,60)=(0,1)__socklen_t:t(8,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(11,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(10,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(10,2)=(10,3)=*(10,4)=xs_pthread_descr_struct:pthread_attr_t:t(10,5)=(10,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(11,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(6,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(6,1),256,32;;pthread_cond_t:t(10,7)=(10,8)=s12__c_lock:(10,1),0,64;__c_waiting:(10,2),64,32;;pthread_condattr_t:t(10,9)=(10,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(10,11)=(0,4)pthread_mutex_t:t(10,12)=(10,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(10,2),64,32;__m_kind:(0,1),96,32;__m_lock:(10,1),128,64;;pthread_mutexattr_t:t(10,14)=(10,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(10,16)=(0,1)pthread_t:t(10,17)=(0,5)FILE:t(2,1)=(2,2)=xs_IO_FILE:__FILE:t(2,3)=(2,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(14,1)=(0,3)wint_t:t(14,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(15,1)=(15,2)=s8__count:(0,1),0,32;__value:(15,3)=u4__wch:(14,2),0,32;__wchb:(15,4)=ar(0,22);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(13,1)=(13,2)=s12__pos:(8,23),0,32;__state:(15,1),32,64;;_G_fpos64_t:t(13,3)=(13,4)=s16__pos:(8,57),0,64;__state:(15,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(18,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(18,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(18,3)=(18,4)=*(18,5)=f(0,1)__gconv_init_fct:t(18,6)=(18,7)=*(18,8)=f(0,1)__gconv_end_fct:t(18,9)=(18,10)=*(18,11)=f(0,20)__gconv_trans_fct:t(18,12)=(18,13)=*(18,14)=f(0,1)__gconv_trans_context_fct:t(18,15)=(18,16)=*(18,17)=f(0,1)__gconv_trans_query_fct:t(18,18)=(18,19)=*(18,20)=f(0,1)__gconv_trans_init_fct:t(18,21)=(18,22)=*(18,23)=f(0,1)__gconv_trans_end_fct:t(18,24)=(18,25)=*(18,26)=f(0,20)__gconv_trans_data:T(18,27)=s20__trans_fct:(18,12),0,32;__trans_context_fct:(18,15),32,32;__trans_end_fct:(18,24),64,32;__data:(0,19),96,32;__next:(18,28)=*(18,27),128,32;;__gconv_step:T(18,29)=s56__shlib_handle:(18,30)=*(18,31)=xs__gconv_loaded_object:,0,32;__modname:(18,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(8,35),96,32;__to_name:(8,35),128,32;__fct:(18,3),160,32;__init_fct:(18,6),192,32;__end_fct:(18,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(18,33)=s36__outbuf:(18,34)=*(0,11),0,32;__outbufend:(18,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(18,35)=*(15,1),160,32;__state:(15,1),192,64;__trans:(18,28),256,32;;__gconv_info:T(18,36)=s8__nsteps:(6,1),0,32;__steps:(18,37)=*(18,29),32,32;__data:(18,38)=ar(0,22);0;-1;(18,33),64,0;;__gconv_t:t(18,39)=(18,40)=*(18,36)_G_iconv_t:t(13,5)=(13,6)=u44__cd:(18,36),0,64;__combined:(13,7)=s44__cd:(18,36),0,64;__data:(18,33),64,288;;,0,352;;_G_int16_t:t(13,8)=(0,8)_G_int32_t:t(13,9)=(0,1)_G_uint16_t:t(13,10)=(0,9)_G_uint32_t:t(13,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(12,1)=(0,20)_IO_marker:T(12,2)=s12_next:(12,3)=*(12,2),0,32;_sbuf:(12,4)=*(2,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(12,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(2,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(8,35),32,32;_IO_read_end:(8,35),64,32;_IO_read_base:(8,35),96,32;_IO_write_base:(8,35),128,32;_IO_write_ptr:(8,35),160,32;_IO_write_end:(8,35),192,32;_IO_buf_base:(8,35),224,32;_IO_buf_end:(8,35),256,32;_IO_save_base:(8,35),288,32;_IO_backup_base:(8,35),320,32;_IO_save_end:(8,35),352,32;_markers:(12,3),384,32;_chain:(12,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(8,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(12,6)=ar(0,22);0;0;(0,2),568,8;_lock:(12,7)=*(12,1),576,32;_offset:(8,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(12,8)=ar(0,22);0;51;(0,2),768,416;;_IO_FILE:t(12,9)=(2,2)__io_read_fn:t(12,10)=(12,11)=f(8,26)__io_write_fn:t(12,12)=(12,13)=f(8,26)__io_seek_fn:t(12,14)=(12,15)=f(0,1)__io_close_fn:t(12,16)=(12,17)=f(0,1)fpos_t:t(2,4)=(13,1)/usr/include/bits/stdio_lim.hoff_t:t(2,5)=(8,23)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/float.h__convert_long_double:T(24,1)=u16__convert_long_double_i:(24,2)=ar(0,22);0;3;(0,4),0,128;__convert_long_double_d:(0,14),0,96;;gintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hptrdiff_t:t(25,1)=(0,1)/usr/include/math.h/usr/include/bits/huge_val.h/usr/include/bits/mathdef.h/usr/include/bits/mathcalls.h/usr/include/bits/mathcalls.h/usr/include/bits/mathcalls.h :T(26,1)=e_IEEE_:-1,_SVID_:0,_XOPEN_:1,_POSIX_:2,_ISOC_:3,;_LIB_VERSION_TYPE:t(26,2)=(26,1)exception:T(26,3)=s32type:(0,1),0,32;name:(8,35),32,32;arg1:(0,13),64,64;arg2:(0,13),128,64;retval:(0,13),192,64;;gintv_print:F(0,20)fp:p(0,23)=*(2,1)b:p(18,32)nx:p(0,1)x:p(0,24)=*(1,4)e:p(18,32)j:(0,1)gintv_s:F(1,4)a:p(1,2)a:(1,2)A:(1,4)gintv_v:F(1,4)a:p(1,2)b:p(1,2)a:(1,2)b:(1,2)A:(1,4)gintv_l:F(1,2)x:p(0,24)gintv_h:F(1,2)x:p(0,24)gintv_union:F(0,20)X:p(0,25)=*(1,4)A:p(0,24)B:p(0,24)_a:(1,2)_b:(1,2)gintv_add:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)_a:(1,2)_b:(1,2)gintv_sub:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)_a:(1,2)_b:(1,2)gintv_neg:F(0,20)X:p(0,25)A:p(0,24)_a:(1,2)_b:(1,2)gintv_mul:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_div:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_sqrt:F(0,20)X:p(0,25)A:p(0,24)gintv_pow:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_exp:F(0,20)X:p(0,25)A:p(0,24)gintv_log:F(0,20)X:p(0,25)A:p(0,24)gintv_cos:F(0,20)X:p(0,25)A:p(0,24)ap:(1,2)bp:(1,2)mod_ap_2:(1,2)cos_a:(1,2)cos_b:(1,2)gintv_sin:F(0,20)X:p(0,25)A:p(0,24)B:(1,4)gintv_tan:F(0,20)X:p(0,25)A:p(0,24)ap:(1,2)bp:(1,2)gintv_asin:F(0,20)X:p(0,25)A:p(0,24)gintv_acos:F(0,20)X:p(0,25)A:p(0,24)_a:(1,2)_b:(1,2)gintv_atan:F(0,20)X:p(0,25)A:p(0,24)gintv_atan2:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)gintv_eq:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_ne:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_lt:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_gt:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_ge:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_le:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_and:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_or:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)gintv_not:F(0,20)X:p(0,25)A:p(0,24)gintv__if:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)C:p(0,24)gintv_ceil:F(0,20)X:p(0,25)A:p(0,24)gintv_floor:F(0,20)X:p(0,25)A:p(0,24)gintv_fabs:F(0,20)X:p(0,25)A:p(0,24)_a:(1,2)_b:(1,2)gintv_fmod:F(0,20)X:p(0,25)A:p(0,24)B:p(0,24)ac:(1,2)ad:(1,2)bc:(1,2)bd:(1,2)FIX_MIN:f(1,2)x:p(1,2)x:r(1,2)FIX_MAX:f(1,2)x:p(1,2)x:r(1,2)$Id: gintv.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $%s[%.20g, %.20g] -DT! @-DT!?-DT!?-DT! @<<GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.stab.rel.stab.stabstr.rodata.comment4^! l +16< B nX Lx:(U`c ] d.Ndff  j 7 @7 70?H GS[Tc`k@ sL {XRPR_||YX Yh Y 0  PD#0Y.3c>CYNSL_enwHd33`YYa|gintv.c__rcs_id_gintv_gintv_c__rcs_id_gintv_gintv_hFIX_MINFIX_MAXgintv_printfprintfgintv_sgintv_vgintv_lgintv_hgintv_uniongintv_addgintv_subgintv_neggintv_mulgintv_divgintv_sqrtsqrtgintv_powpowgintv_expexpgintv_logloggintv_cosceilfmodcosgintv_singintv_tantangintv_asinasingintv_acosacosgintv_atanatangintv_atan2atan2gintv_eqgintv_negintv_ltgintv_gtgintv_gegintv_legintv_andgintv_orgintv_notgintv__ifgintv_ceilgintv_floorfloorgintv_fabsgintv_fmod ]e{7o G { ! !  # R $h % %6"T\j##((C*k*,,.+.c0000[3w4Qs##==$$$$<T 4t (   H x   (  $P "&<')+t-/(12H34h56(78H9:;<>?$xgmv0.9/src/gintv/mak_gen/Linux/oddd/solve.o0100644000175200017560000004127407262741246021221 0ustar stephensstephengELF>4( USvE } uKvEU@"EEt E͐]MAQ S"]M?AQ S$ÍvUWVS\EEE()ĉE̋ẺEȋE()ĉEċE(EăEEĉEE EЋEEPuuE;EsvuuuEPEЃt EE@t3vEE@tvEE)E(뇍vEÈ@r!EtE;EtnEE;E|*MЋEEȉύ4EЃE̍EE;E| EvEE)E( u$uuuEPE Ѓ t ~vEÈ@rNEt7vEUE;|0EEMȋEEȍ<4EƉEMȋEEDx]EEMȋEEȍTRDT EMȋEUDT EEMȋEUTEE;E|2EEMȋEEȍ<4EƉEEE8y UEHUEEh&w"Lu'Lv&&@1F^w+3M !"#%& 1$2<3S4l5689;=>?0@FA]BuCDEFGHINVQnRSTUVX [& ^> bV x { ~  ; X s  + L f #" 4+ <| C F SjZ^1;(Az8 H#1FGJ'KXTY]`7ao2V5789:4mH ? VF_mgjI7! !Zpbj 5 !J "` #t $ % & ' * . : !?"!D9!IQ!Ng!`}!e!j!o!p!t!"F"R3"^J"""""""##7#P#i######$$:$$$$0$3$%4%O%j%&&&&'$/'E' O'`'m'DDDD3D9D<DWD^D `D!{D"${'$0'&'' '(')'*'+', (-$#(/(D0D2 D4D5*D60D7FD8UD:[D=aD>jD@DBDCDLDODPDUDVDZ8D]8D^LD]mD`tDbyDcDfDgDkDnDqDsDtDyD}DDDD?DHDpDDDDDDDDD'D0D=DCDCDHDK6(1@(2Q(3[(4j(5s(6(7(8(Z(q(($Sdsolve.c/home/stephens/ion/src/gintv/solve.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)__rcs_id_gintv_solve_c:S(0,21)=ar(0,22)=r(0,22);0000000000000;0037777777777;;0;53;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,22);0;54;(0,2)/usr/include/stdio.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(6,1)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(7,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(8,1)=(0,11)__u_short:t(8,2)=(0,9)__u_int:t(8,3)=(0,4)__u_long:t(8,4)=(0,5)__u_quad_t:t(8,5)=(0,7)__quad_t:t(8,6)=(0,6)__int8_t:t(8,7)=(0,10)__uint8_t:t(8,8)=(0,11)__int16_t:t(8,9)=(0,8)__uint16_t:t(8,10)=(0,9)__int32_t:t(8,11)=(0,1)__uint32_t:t(8,12)=(0,4)__int64_t:t(8,13)=(0,6)__uint64_t:t(8,14)=(0,7)__qaddr_t:t(8,15)=(8,16)=*(8,6)__dev_t:t(8,17)=(8,5)__uid_t:t(8,18)=(8,3)__gid_t:t(8,19)=(8,3)__ino_t:t(8,20)=(8,4)__mode_t:t(8,21)=(8,3)__nlink_t:t(8,22)=(8,3)__off_t:t(8,23)=(0,3)__loff_t:t(8,24)=(8,6)__pid_t:t(8,25)=(0,1)__ssize_t:t(8,26)=(0,1)__rlim_t:t(8,27)=(8,4)__rlim64_t:t(8,28)=(8,5)__id_t:t(8,29)=(8,3)__fsid_t:t(8,30)=(8,31)=s8__val:(8,32)=ar(0,22);0;1;(0,1),0,64;;__daddr_t:t(8,33)=(0,1)__caddr_t:t(8,34)=(8,35)=*(0,2)__time_t:t(8,36)=(0,3)__useconds_t:t(8,37)=(0,4)__suseconds_t:t(8,38)=(0,3)__swblk_t:t(8,39)=(0,3)__clock_t:t(8,40)=(0,3)__clockid_t:t(8,41)=(0,1)__timer_t:t(8,42)=(0,1)__fd_mask:t(8,43)=(0,5)__fd_set:t(8,44)=(8,45)=s128__fds_bits:(8,46)=ar(0,22);0;31;(8,43),0,1024;;__key_t:t(8,47)=(0,1)__ipc_pid_t:t(8,48)=(0,9)__blksize_t:t(8,49)=(0,3)__blkcnt_t:t(8,50)=(0,3)__blkcnt64_t:t(8,51)=(8,6)__fsblkcnt_t:t(8,52)=(8,4)__fsblkcnt64_t:t(8,53)=(8,5)__fsfilcnt_t:t(8,54)=(8,4)__fsfilcnt64_t:t(8,55)=(8,5)__ino64_t:t(8,56)=(8,5)__off64_t:t(8,57)=(8,24)__t_scalar_t:t(8,58)=(0,3)__t_uscalar_t:t(8,59)=(0,5)__intptr_t:t(8,60)=(0,1)__socklen_t:t(8,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(11,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(10,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(10,2)=(10,3)=*(10,4)=xs_pthread_descr_struct:pthread_attr_t:t(10,5)=(10,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(11,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(6,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(6,1),256,32;;pthread_cond_t:t(10,7)=(10,8)=s12__c_lock:(10,1),0,64;__c_waiting:(10,2),64,32;;pthread_condattr_t:t(10,9)=(10,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(10,11)=(0,4)pthread_mutex_t:t(10,12)=(10,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(10,2),64,32;__m_kind:(0,1),96,32;__m_lock:(10,1),128,64;;pthread_mutexattr_t:t(10,14)=(10,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(10,16)=(0,1)pthread_t:t(10,17)=(0,5)FILE:t(2,1)=(2,2)=xs_IO_FILE:__FILE:t(2,3)=(2,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(14,1)=(0,3)wint_t:t(14,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(15,1)=(15,2)=s8__count:(0,1),0,32;__value:(15,3)=u4__wch:(14,2),0,32;__wchb:(15,4)=ar(0,22);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(13,1)=(13,2)=s12__pos:(8,23),0,32;__state:(15,1),32,64;;_G_fpos64_t:t(13,3)=(13,4)=s16__pos:(8,57),0,64;__state:(15,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(18,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(18,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(18,3)=(18,4)=*(18,5)=f(0,1)__gconv_init_fct:t(18,6)=(18,7)=*(18,8)=f(0,1)__gconv_end_fct:t(18,9)=(18,10)=*(18,11)=f(0,20)__gconv_trans_fct:t(18,12)=(18,13)=*(18,14)=f(0,1)__gconv_trans_context_fct:t(18,15)=(18,16)=*(18,17)=f(0,1)__gconv_trans_query_fct:t(18,18)=(18,19)=*(18,20)=f(0,1)__gconv_trans_init_fct:t(18,21)=(18,22)=*(18,23)=f(0,1)__gconv_trans_end_fct:t(18,24)=(18,25)=*(18,26)=f(0,20)__gconv_trans_data:T(18,27)=s20__trans_fct:(18,12),0,32;__trans_context_fct:(18,15),32,32;__trans_end_fct:(18,24),64,32;__data:(0,19),96,32;__next:(18,28)=*(18,27),128,32;;__gconv_step:T(18,29)=s56__shlib_handle:(18,30)=*(18,31)=xs__gconv_loaded_object:,0,32;__modname:(18,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(8,35),96,32;__to_name:(8,35),128,32;__fct:(18,3),160,32;__init_fct:(18,6),192,32;__end_fct:(18,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(18,33)=s36__outbuf:(18,34)=*(0,11),0,32;__outbufend:(18,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(18,35)=*(15,1),160,32;__state:(15,1),192,64;__trans:(18,28),256,32;;__gconv_info:T(18,36)=s8__nsteps:(6,1),0,32;__steps:(18,37)=*(18,29),32,32;__data:(18,38)=ar(0,22);0;-1;(18,33),64,0;;__gconv_t:t(18,39)=(18,40)=*(18,36)_G_iconv_t:t(13,5)=(13,6)=u44__cd:(18,36),0,64;__combined:(13,7)=s44__cd:(18,36),0,64;__data:(18,33),64,288;;,0,352;;_G_int16_t:t(13,8)=(0,8)_G_int32_t:t(13,9)=(0,1)_G_uint16_t:t(13,10)=(0,9)_G_uint32_t:t(13,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(12,1)=(0,20)_IO_marker:T(12,2)=s12_next:(12,3)=*(12,2),0,32;_sbuf:(12,4)=*(2,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(12,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(2,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(8,35),32,32;_IO_read_end:(8,35),64,32;_IO_read_base:(8,35),96,32;_IO_write_base:(8,35),128,32;_IO_write_ptr:(8,35),160,32;_IO_write_end:(8,35),192,32;_IO_buf_base:(8,35),224,32;_IO_buf_end:(8,35),256,32;_IO_save_base:(8,35),288,32;_IO_backup_base:(8,35),320,32;_IO_save_end:(8,35),352,32;_markers:(12,3),384,32;_chain:(12,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(8,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(12,6)=ar(0,22);0;0;(0,2),568,8;_lock:(12,7)=*(12,1),576,32;_offset:(8,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(12,8)=ar(0,22);0;51;(0,2),768,416;;_IO_FILE:t(12,9)=(2,2)__io_read_fn:t(12,10)=(12,11)=f(8,26)__io_write_fn:t(12,12)=(12,13)=f(8,26)__io_seek_fn:t(12,14)=(12,15)=f(0,1)__io_close_fn:t(12,16)=(12,17)=f(0,1)fpos_t:t(2,4)=(13,1)/usr/include/bits/stdio_lim.hoff_t:t(2,5)=(8,23)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/float.h__convert_long_double:T(24,1)=u16__convert_long_double_i:(24,2)=ar(0,22);0;3;(0,4),0,128;__convert_long_double_d:(0,14),0,96;;gintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)/usr/include/string.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/stdlib.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hdiv_t:t(27,1)=(27,2)=s8quot:(0,1),0,32;rem:(0,1),32,32;;ldiv_t:t(27,3)=(27,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;/usr/include/sys/types.hu_char:t(29,1)=(8,1)u_short:t(29,2)=(8,2)u_int:t(29,3)=(8,3)u_long:t(29,4)=(8,4)quad_t:t(29,5)=(8,6)u_quad_t:t(29,6)=(8,5)fsid_t:t(29,7)=(8,30)loff_t:t(29,8)=(8,24)ino_t:t(29,9)=(8,20)dev_t:t(29,10)=(8,17)gid_t:t(29,11)=(8,19)mode_t:t(29,12)=(8,21)nlink_t:t(29,13)=(8,22)uid_t:t(29,14)=(8,18)pid_t:t(29,15)=(8,25)id_t:t(29,16)=(8,29)ssize_t:t(29,17)=(8,26)daddr_t:t(29,18)=(8,33)caddr_t:t(29,19)=(8,34)key_t:t(29,20)=(8,47)/usr/include/time.htime_t:t(30,1)=(8,36)clockid_t:t(30,2)=(8,41)timer_t:t(30,3)=(8,42)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hulong:t(29,21)=(0,5)ushort:t(29,22)=(0,9)uint:t(29,23)=(0,4)int8_t:t(29,24)=(0,10)int16_t:t(29,25)=(0,8)int32_t:t(29,26)=(0,1)int64_t:t(29,27)=(0,6)u_int8_t:t(29,28)=(0,11)u_int16_t:t(29,29)=(0,9)u_int32_t:t(29,30)=(0,4)u_int64_t:t(29,31)=(0,7)register_t:t(29,32)=(0,1)/usr/include/endian.h/usr/include/bits/endian.h/usr/include/sys/select.h/usr/include/bits/select.h/usr/include/bits/sigset.h__sig_atomic_t:t(36,1)=(0,1)__sigset_t:t(36,2)=(36,3)=s128__val:(36,4)=ar(0,22);0;31;(0,5),0,1024;;/usr/include/time.htimespec:T(37,1)=s8tv_sec:(0,3),0,32;tv_nsec:(0,3),32,32;;fd_mask:t(34,1)=(8,43)fd_set:t(34,2)=(8,44)/usr/include/sys/sysmacros.hblkcnt_t:t(29,33)=(8,50)fsblkcnt_t:t(29,34)=(8,52)fsfilcnt_t:t(29,35)=(8,54)random_data:T(27,5)=s28fptr:(27,6)=*(29,26),0,32;rptr:(27,6),32,32;state:(27,6),64,32;rand_type:(0,1),96,32;rand_deg:(0,1),128,32;rand_sep:(0,1),160,32;end_ptr:(27,6),192,32;;drand48_data:T(27,7)=s24x:(27,8)=ar(0,22);0;2;(0,9),0,48;a:(27,8),48,48;c:(0,9),96,16;old_x:(27,8),112,48;init:(0,1),160,32;;/usr/include/alloca.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__compar_fn_t:t(27,9)=(27,10)=*(27,11)=f(0,1)gintv_in_tolerance:F(0,1)result:p(0,23)=*(1,4)nx:p(0,1)x:p(0,24)=*(1,4)data:p(0,19)adata:p(0,19)gintv_solve:F(0,1)maxnsolutions:p(0,1)solutions:p(0,23)func:p(0,25)=*(0,26)=f(0,1)nx:p(0,1)xspace:p(0,24)data:p(0,19)accept:p(0,27)=*(0,28)=f(0,1)adata:p(0,19)stack_depth:p(0,1)f_x:(1,4)nsolutions:(0,1)sp:(0,23)x_stack:(0,23)x:(0,23)parm_stack:(0,29)=*(0,1)parm_stack_end:(0,29)parm:(0,29)i:(0,1)A:(1,4)i:(0,1)m:(1,2)$Id: solve.c,v 1.3 2001/04/04 09:04:44 stephens Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $?GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.stab.rel.stab.stabstr.rodata.comment4! tB +16<$ B B8 L(U= ]`>.>f$A  B] 6 @7  7JSVsolve.c__rcs_id_gintv_solve_c__rcs_id_gintv_gintv_hgintv_in_tolerancegintv_solvememcpy 4\  4  gmv0.9/src/gintv/mak_gen/Linux/oddd/merge.o0100644000175200017560000003323407262507246021165 0ustar stephensstephengELF24( UWVSEEEEUESvEEEE܋UEE EŐE;EuvE EUEvE EUEvE;EudEMEEDE@u뷍vEMEEDE@i냍vEMEEE@6EMEEDDE@EMEEDE@t/vEMEE܍TRDT XvEMEEDE@t(vEMEE܍RTE E܉EEE E萋UEME܋UljEE܃̋E EE[^_]ÐUWVSEEEEUEWvEEEE܋UEE EŐE;Eu vE EUEvE EUECvE;EudEMEEDE@u뷍vEMEEDE@i냍vEMEEÈ@r3vEM܋EEDÈ@rEMEEDÈ@rEM܋EEDDÈ@E EUE.EEPEEPEEPŐE E܉EEE EUEME܋UljEE܃̋E EEe[^_]01.01 d'd/<>h&w"Lu'Lv&&@1F^w+3M !"#%& 1$2<3S4l5689;=>?0@FA]BuCDEFGHINVQnRSTUVX [& ^> bV x { ~  ; X s  + L f #" 4+ <| C F SjZ^1;(Az8 H#1FGJ'KXTY]`7ao2V5789:4mH ? VF_mgjI7! $' 1 ; DD D D,D",D#TD$\D,dD/D0D1D4D/kD<lD=D?D@DGDI)DJ3DM@DPCDKHDLfD,hD"hDVzDzDX|DYLT\dlv$$d\\ \DdDe Dk Dl,Ds,DtTDu\D}dDDDDDDDDD D,D6DDDGDLDjD}lDslD~Dk~DDeeeehl$dmerge.c/home/stephens/ion/src/gintv/merge.cgcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)__rcs_id_gintv_merge_c:S(0,21)=ar(0,22)=r(0,22);0000000000000;0037777777777;;0;54;(0,2)gintv.h__rcs_id_gintv_gintv_h:S(1,1)=ar(0,22);0;54;(0,2)/usr/include/stdio.h/usr/include/features.h/usr/include/sys/cdefs.h/usr/include/gnu/stubs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(6,1)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h__gnuc_va_list:t(7,1)=(0,19)/usr/include/bits/types.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h__u_char:t(8,1)=(0,11)__u_short:t(8,2)=(0,9)__u_int:t(8,3)=(0,4)__u_long:t(8,4)=(0,5)__u_quad_t:t(8,5)=(0,7)__quad_t:t(8,6)=(0,6)__int8_t:t(8,7)=(0,10)__uint8_t:t(8,8)=(0,11)__int16_t:t(8,9)=(0,8)__uint16_t:t(8,10)=(0,9)__int32_t:t(8,11)=(0,1)__uint32_t:t(8,12)=(0,4)__int64_t:t(8,13)=(0,6)__uint64_t:t(8,14)=(0,7)__qaddr_t:t(8,15)=(8,16)=*(8,6)__dev_t:t(8,17)=(8,5)__uid_t:t(8,18)=(8,3)__gid_t:t(8,19)=(8,3)__ino_t:t(8,20)=(8,4)__mode_t:t(8,21)=(8,3)__nlink_t:t(8,22)=(8,3)__off_t:t(8,23)=(0,3)__loff_t:t(8,24)=(8,6)__pid_t:t(8,25)=(0,1)__ssize_t:t(8,26)=(0,1)__rlim_t:t(8,27)=(8,4)__rlim64_t:t(8,28)=(8,5)__id_t:t(8,29)=(8,3)__fsid_t:t(8,30)=(8,31)=s8__val:(8,32)=ar(0,22);0;1;(0,1),0,64;;__daddr_t:t(8,33)=(0,1)__caddr_t:t(8,34)=(8,35)=*(0,2)__time_t:t(8,36)=(0,3)__useconds_t:t(8,37)=(0,4)__suseconds_t:t(8,38)=(0,3)__swblk_t:t(8,39)=(0,3)__clock_t:t(8,40)=(0,3)__clockid_t:t(8,41)=(0,1)__timer_t:t(8,42)=(0,1)__fd_mask:t(8,43)=(0,5)__fd_set:t(8,44)=(8,45)=s128__fds_bits:(8,46)=ar(0,22);0;31;(8,43),0,1024;;__key_t:t(8,47)=(0,1)__ipc_pid_t:t(8,48)=(0,9)__blksize_t:t(8,49)=(0,3)__blkcnt_t:t(8,50)=(0,3)__blkcnt64_t:t(8,51)=(8,6)__fsblkcnt_t:t(8,52)=(8,4)__fsblkcnt64_t:t(8,53)=(8,5)__fsfilcnt_t:t(8,54)=(8,4)__fsfilcnt64_t:t(8,55)=(8,5)__ino64_t:t(8,56)=(8,5)__off64_t:t(8,57)=(8,24)__t_scalar_t:t(8,58)=(0,3)__t_uscalar_t:t(8,59)=(0,5)__intptr_t:t(8,60)=(0,1)__socklen_t:t(8,61)=(0,4)/usr/include/bits/pthreadtypes.h/usr/include/bits/sched.h__sched_param:T(11,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(10,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(10,2)=(10,3)=*(10,4)=xs_pthread_descr_struct:pthread_attr_t:t(10,5)=(10,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(11,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(6,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(6,1),256,32;;pthread_cond_t:t(10,7)=(10,8)=s12__c_lock:(10,1),0,64;__c_waiting:(10,2),64,32;;pthread_condattr_t:t(10,9)=(10,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(10,11)=(0,4)pthread_mutex_t:t(10,12)=(10,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(10,2),64,32;__m_kind:(0,1),96,32;__m_lock:(10,1),128,64;;pthread_mutexattr_t:t(10,14)=(10,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(10,16)=(0,1)pthread_t:t(10,17)=(0,5)FILE:t(2,1)=(2,2)=xs_IO_FILE:__FILE:t(2,3)=(2,2)/usr/include/libio.h/usr/include/_G_config.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hwchar_t:t(14,1)=(0,3)wint_t:t(14,2)=(0,4)/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/include/bits/wchar.h__mbstate_t:t(15,1)=(15,2)=s8__count:(0,1),0,32;__value:(15,3)=u4__wch:(14,2),0,32;__wchb:(15,4)=ar(0,22);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(13,1)=(13,2)=s12__pos:(8,23),0,32;__state:(15,1),32,64;;_G_fpos64_t:t(13,3)=(13,4)=s16__pos:(8,57),0,64;__state:(15,1),64,64;;/usr/include/gconv.h/usr/include/wchar.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h :T(18,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(18,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(18,3)=(18,4)=*(18,5)=f(0,1)__gconv_init_fct:t(18,6)=(18,7)=*(18,8)=f(0,1)__gconv_end_fct:t(18,9)=(18,10)=*(18,11)=f(0,20)__gconv_trans_fct:t(18,12)=(18,13)=*(18,14)=f(0,1)__gconv_trans_context_fct:t(18,15)=(18,16)=*(18,17)=f(0,1)__gconv_trans_query_fct:t(18,18)=(18,19)=*(18,20)=f(0,1)__gconv_trans_init_fct:t(18,21)=(18,22)=*(18,23)=f(0,1)__gconv_trans_end_fct:t(18,24)=(18,25)=*(18,26)=f(0,20)__gconv_trans_data:T(18,27)=s20__trans_fct:(18,12),0,32;__trans_context_fct:(18,15),32,32;__trans_end_fct:(18,24),64,32;__data:(0,19),96,32;__next:(18,28)=*(18,27),128,32;;__gconv_step:T(18,29)=s56__shlib_handle:(18,30)=*(18,31)=xs__gconv_loaded_object:,0,32;__modname:(18,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(8,35),96,32;__to_name:(8,35),128,32;__fct:(18,3),160,32;__init_fct:(18,6),192,32;__end_fct:(18,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(18,33)=s36__outbuf:(18,34)=*(0,11),0,32;__outbufend:(18,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(18,35)=*(15,1),160,32;__state:(15,1),192,64;__trans:(18,28),256,32;;__gconv_info:T(18,36)=s8__nsteps:(6,1),0,32;__steps:(18,37)=*(18,29),32,32;__data:(18,38)=ar(0,22);0;-1;(18,33),64,0;;__gconv_t:t(18,39)=(18,40)=*(18,36)_G_iconv_t:t(13,5)=(13,6)=u44__cd:(18,36),0,64;__combined:(13,7)=s44__cd:(18,36),0,64;__data:(18,33),64,288;;,0,352;;_G_int16_t:t(13,8)=(0,8)_G_int32_t:t(13,9)=(0,1)_G_uint16_t:t(13,10)=(0,9)_G_uint32_t:t(13,11)=(0,4)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h_IO_lock_t:t(12,1)=(0,20)_IO_marker:T(12,2)=s12_next:(12,3)=*(12,2),0,32;_sbuf:(12,4)=*(2,2),32,32;_pos:(0,1),64,32;;__codecvt_result:T(12,5)=e__codecvt_ok:0,__codecvt_partial:1,__codecvt_error:2,__codecvt_noconv:3,;_IO_FILE:T(2,2)=s148_flags:(0,1),0,32;_IO_read_ptr:(8,35),32,32;_IO_read_end:(8,35),64,32;_IO_read_base:(8,35),96,32;_IO_write_base:(8,35),128,32;_IO_write_ptr:(8,35),160,32;_IO_write_end:(8,35),192,32;_IO_buf_base:(8,35),224,32;_IO_buf_end:(8,35),256,32;_IO_save_base:(8,35),288,32;_IO_backup_base:(8,35),320,32;_IO_save_end:(8,35),352,32;_markers:(12,3),384,32;_chain:(12,4),416,32;_fileno:(0,1),448,32;_blksize:(0,1),480,32;_old_offset:(8,23),512,32;_cur_column:(0,9),544,16;_vtable_offset:(0,10),560,8;_shortbuf:(12,6)=ar(0,22);0;0;(0,2),568,8;_lock:(12,7)=*(12,1),576,32;_offset:(8,57),608,64;__pad1:(0,19),672,32;__pad2:(0,19),704,32;_mode:(0,1),736,32;_unused2:(12,8)=ar(0,22);0;51;(0,2),768,416;;_IO_FILE:t(12,9)=(2,2)__io_read_fn:t(12,10)=(12,11)=f(8,26)__io_write_fn:t(12,12)=(12,13)=f(8,26)__io_seek_fn:t(12,14)=(12,15)=f(0,1)__io_close_fn:t(12,16)=(12,17)=f(0,1)fpos_t:t(2,4)=(13,1)/usr/include/bits/stdio_lim.hoff_t:t(2,5)=(8,23)/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/float.h__convert_long_double:T(24,1)=u16__convert_long_double_i:(24,2)=ar(0,22);0;3;(0,4),0,128;__convert_long_double_d:(0,14),0,96;;gintvs:t(1,2)=(0,13)gintv:T(1,3)=s16l:(1,2),0,64;h:(1,2),64,64;;gintv:t(1,4)=(1,3)gintv_merge_adjacent:F(0,1)nv:p(0,1)nx:p(0,1)x:p(0,23)=*(1,4)i:(0,1)j:(0,1)k:(0,1)l:(0,1)p0:(0,23)p1:(0,23)gintv_merge_aggregate:F(0,1)nv:p(0,1)nx:p(0,1)x:p(0,23)i:(0,1)j:(0,1)k:(0,1)l:(0,1)p0:(0,23)p1:(0,23)$Id: merge.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.stab.rel.stab.stabstr.rodata.comment4! \6 +H1H6H<\l  B d68 LU1w ]72.e2f4  5n 7 @7  7Lbmerge.c__rcs_id_gintv_merge_c__rcs_id_gintv_gintv_hgintv_merge_adjacentgintv_merge_aggregategintv_union 4  h gmv0.9/src/gintv/gumo/0040755000175200017560000000000007262722402015232 5ustar stephensstephenggmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/0040755000175200017560000000000007262722402020256 5ustar stephensstephenggmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/0040755000175200017560000000000007262722511020515 5ustar stephensstephenggmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/.empty/0040755000175200017560000000000007262722402021730 5ustar stephensstephenggmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/gintv.o0100644000175200017560000002515007262722510022023 0ustar stephensstephengELF 4( Uu hwuEE;E|FEEt tEEt4hzu E뱐uhwuUWV0E UEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UWV0E UEUEUEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UE]ÉUE@]ÐU(E UEtvE ] E]E]E U@BEt E @] E@]E]uuWEuuYEXÉUE U]E U@B]uuEuuEXÉUE Ub]E U@"]uuEuuEXÉUE P @EUE PEUuuNEuuPEXÐU8E U ]E UJ]E U@ ]E U@J]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuEXU8E U2]E Ur]E U@2]E U@r]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuGEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuWEXUE p0d$$EE p pd$$EXÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uu7EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuGEXUE p0d$$EE p pd$$EXÍvUE p0d$$EE p pd$$EXÍvUHE d$$]E @]EEÈ@r+vE@E@@ ?h@juu]E p0]E p p]EEÈ@rcvEE@tKvE@EEEEEt E]E]EȋEXEEÈ@rpEE@t[vEEEt E]E]uuEh?jEXgEEEt!MEUQME؋U܉AQ .uu]Euu_EXUWV E ]؋E @]}uEPue^_]UE d$$]E @d$$]EEE@u'vE@E@@ QE p0d$$4EE p pd$$$EXÐUE p0d$$EE p pd$$EXÍvUE p p]E p0]uubEuudEXÐUE p0d$$EE p pd$$ EXÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuC EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuS EXUEU @EtE U@Et)E@E@@ E U BE@t]E U@E@tAEUBE@t%E@?E@@ ?"E@E@@ ?]UEU @EtE U@Et)E@?E@@ ?E U BE@t]E U@E@tAEUBE@t%E@E@@ "E@E@@ ?]UEU @È@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]UE UBÈ@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]Uu uuUu uuUE E@tE @E@t2EE@tCvE@E@t(E@E@@ E E@tmE @E@tTEE@t=E@E@t$E@?E@@ ?"E@E@@ ?]UE E@trE @E@tXEE@tAE@E@t(E@E@@ E E@tE @E@t2EE@t?vE@E@t$E@?E@@ ?"E@E@@ ?]UE E@t>E @E@t$E@?E@@ ?vE E@t=E @E@t$E@E@@ "E@E@@ ?]UWVE E@t,E @E@tEUljXE E@t-E @E@tEUljuuue^_]ÐUE p0d$$EE p pd$$EXÍvUE p0d$$NEE p pd$$>EXÍvUWV0E Et0E @EtvEU ljE EtuE @Et\E P @EUE PEUuueEuugEXE@EEE PEЉUEE P @EЉUEEtE PE؉UE P @E؉UE؋EXe^_]ÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uu#EXUE]ÉUE]01.01$Id: gintv.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $%s[%.20g, %.20g] -DT! @-DT!?-DT!?-DT! @<<GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.rodata.comment4^! ( +16< D . M"  & 7/@7F0NHVbjTr`z@ L XRPR_||YX Yh Y 0  P$D.20Y=BcMRY]bLnt}Hd44`YYa|gintv.cgcc2_compiled.__rcs_id_gintv_gintv_c__rcs_id_gintv_gintv_hFIX_MINFIX_MAXgintv_printfprintfgintv_sgintv_vgintv_lgintv_hgintv_uniongintv_addgintv_subgintv_neggintv_mulgintv_divgintv_sqrtsqrtgintv_powpowgintv_expexpgintv_logloggintv_cosceilfmodcosgintv_singintv_tantangintv_asinasingintv_acosacosgintv_atanatangintv_atan2atan2gintv_eqgintv_negintv_ltgintv_gtgintv_gegintv_legintv_andgintv_orgintv_notgintv__ifgintv_ceilgintv_floorfloorgintv_fabsgintv_fmod ]e{7o G {    " R #h $ $6!T\j""''C)k)++-+-c////[2w3Qs""<<####<Tgmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/solve.o0100644000175200017560000000412007262722511022017 0ustar stephensstephengELF<4( USvE } uKvEU@"EEt E͐]MAQ S"]M?AQ S$ÍvUWVS\EEE()ĉE̋ẺEȋE()ĉEċE(EăEEĉEE EЋEEPuuE;EsvuuuEPEЃt EE@t3vEE@tvEE)E(뇍vEÈ@r!EtE;EtnEE;E|*MЋEEȉύ4EЃE̍EE;E| EvEE)E( u$uuuEPE Ѓ t ~vEÈ@rNEt7vEUE;|0EEMȋEEȍ<4EƉEMȋEEDx]EEMȋEEȍTRDT EMȋEUDT EEMȋEUTEE;E|2EEMȋEEȍ<4EƉEEE8y UEHUEE / 986424827 0 0 0 598 ` (->->55gintv_printgintv_sgintv_vgintv_lgintv_hgintv_uniongintv_addgintv_subgintv_neggintv_mulgintv_divgintv_sqrtgintv_powgintv_expgintv_loggintv_cosgintv_singintv_tangintv_asingintv_acosgintv_atangintv_atan2gintv_eqgintv_negintv_ltgintv_gtgintv_gegintv_legintv_andgintv_orgintv_notgintv__ifgintv_ceilgintv_floorgintv_fabsgintv_fmodgintv_in_tolerancegintv_solvegintv_merge_adjacentgintv_merge_aggregategintv.o/ 986424648 1002 1006 100644 10856 ` ELF 4( Uu hwuEE;E|FEEt tEEt4hzu E뱐uhwuUWV0E UEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UWV0E UEUEUEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UE]ÉUE@]ÐU(E UEtvE ] E]E]E U@BEt E @] E@]E]uuWEuuYEXÉUE U]E U@B]uuEuuEXÉUE Ub]E U@"]uuEuuEXÉUE P @EUE PEUuuNEuuPEXÐU8E U ]E UJ]E U@ ]E U@J]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuEXU8E U2]E Ur]E U@2]E U@r]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuGEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuWEXUE p0d$$EE p pd$$EXÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uu7EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuGEXUE p0d$$EE p pd$$EXÍvUE p0d$$EE p pd$$EXÍvUHE d$$]E @]EEÈ@r+vE@E@@ ?h@juu]E p0]E p p]EEÈ@rcvEE@tKvE@EEEEEt E]E]EȋEXEEÈ@rpEE@t[vEEEt E]E]uuEh?jEXgEEEt!MEUQME؋U܉AQ .uu]Euu_EXUWV E ]؋E @]}uEPue^_]UE d$$]E @d$$]EEE@u'vE@E@@ QE p0d$$4EE p pd$$$EXÐUE p0d$$EE p pd$$EXÍvUE p p]E p0]uubEuudEXÐUE p0d$$EE p pd$$ EXÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuC EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuS EXUEU @EtE U@Et)E@E@@ E U BE@t]E U@E@tAEUBE@t%E@?E@@ ?"E@E@@ ?]UEU @EtE U@Et)E@?E@@ ?E U BE@t]E U@E@tAEUBE@t%E@E@@ "E@E@@ ?]UEU @È@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]UE UBÈ@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]Uu uuUu uuUE E@tE @E@t2EE@tCvE@E@t(E@E@@ E E@tmE @E@tTEE@t=E@E@t$E@?E@@ ?"E@E@@ ?]UE E@trE @E@tXEE@tAE@E@t(E@E@@ E E@tE @E@t2EE@t?vE@E@t$E@?E@@ ?"E@E@@ ?]UE E@t>E @E@t$E@?E@@ ?vE E@t=E @E@t$E@E@@ "E@E@@ ?]UWVE E@t,E @E@tEUljXE E@t-E @E@tEUljuuue^_]ÐUE p0d$$EE p pd$$EXÍvUE p0d$$NEE p pd$$>EXÍvUWV0E Et0E @EtvEU ljE EtuE @Et\E P @EUE PEUuueEuugEXE@EEE PEЉUEE P @EЉUEEtE PE؉UE P @E؉UE؋EXe^_]ÍvU8Ep0E p0]Ep pE p0]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uu#EXUE]ÉUE]01.01$Id: gintv.c,v 1.2 1999/02/19 09:25:35 stephensk Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $%s[%.20g, %.20g] -DT! @-DT!?-DT!?-DT! @<<GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.rodata.comment4^! ( +16< D . M"  & 7/@7F0NHVbjTr`z@ L XRPR_||YX Yh Y 0  P$D.20Y=BcMRY]bLnt}Hd44`YYa|gintv.cgcc2_compiled.__rcs_id_gintv_gintv_c__rcs_id_gintv_gintv_hFIX_MINFIX_MAXgintv_printfprintfgintv_sgintv_vgintv_lgintv_hgintv_uniongintv_addgintv_subgintv_neggintv_mulgintv_divgintv_sqrtsqrtgintv_powpowgintv_expexpgintv_logloggintv_cosceilfmodcosgintv_singintv_tantangintv_asinasingintv_acosacosgintv_atanatangintv_atan2atan2gintv_eqgintv_negintv_ltgintv_gtgintv_gegintv_legintv_andgintv_orgintv_notgintv__ifgintv_ceilgintv_floorfloorgintv_fabsgintv_fmod ]e{7o G {    " R #h $ $6!T\j""''C)k)++-+-c////[2w3Qs""<<####<Tsolve.o/ 986424649 1002 1006 100644 2128 ` ELF<4( USvE } uKvEU@"EEt E͐]MAQ S"]M?AQ S$ÍvUWVS\EEE()ĉE̋ẺEȋE()ĉEċE(EăEEĉEE EЋEEPuuE;EsvuuuEPEЃt EE@t3vEE@tvEE)E(뇍vEÈ@r!EtE;EtnEE;E|*MЋEEȉύ4EЃE̍EE;E| EvEE)E( u$uuuEPE Ѓ t ~vEÈ@rNEt7vEUE;|0EEMȋEEȍ<4EƉEMȋEEDx]EEMȋEEȍTRDT EMȋEUDT EEMȋEUTEE;E|2EEMȋEEȍ<4EƉEEE8y UEHUEE hPhEPEPuučP0hDž;|D hEPuh5 믍v hPuhDž;|D hEPuh5 믍vDž;||hEPPEЃEPPEЃte^_]JM!@@01.01$Id: test1.c,v 1.2 1999/02/19 09:25:36 stephensk Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $) = circle() (curve( intersect(%d solutions after merge: solution %d GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.rodata.comment4X! x  +$16< D.M    7/@7FNwUx[eoyptest1.cgcc2_compiled.__rcs_id_gintv_test1_c__rcs_id_gintv_gintv_hsolvingcirclecurveintersectgintv_cosgintv_sinstdoutgintv_printgintv_mulprintfgintv_eqgintv_andmaingintv_in_tolerancegintv_solvegintv_merge_adjacent%.9CINYcin\y !E]}0INtgmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/libtest1.a0100644000175200017560000000635607262722405022417 0ustar stephensstepheng! / 986424759 0 0 0 14 ` Rmaintest1.o/ 986424580 1002 1006 100644 3168 ` ELF$4( Uu uu EP=u@ hwu jh|5 hujh5 ÐUWVEU lju u EP=u@ hwu jh5 hujh5 e^_]ÐUxEE=u hUuEPЃUEPEPЃEPEPEPEPE؃PEPEPEPu=u@ hwujh5 hujh5 ÉUWVpEEEEx}ȾEDžDž:0DžyE> hPhEPEPuučP0hDž;|D hEPuh5 믍v hPuhDž;|D hEPuh5 믍vDž;||hEPPEЃEPPEЃte^_]JM!@@01.01$Id: test1.c,v 1.2 1999/02/19 09:25:36 stephensk Exp $$Id: gintv.h,v 1.2 1999/02/19 09:25:35 stephensk Exp $) = circle() (curve( intersect(%d solutions after merge: solution %d GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0).symtab.strtab.shstrtab.text.rel.text.data.bss.note.rodata.comment4X! x  +$16< D.M    7/@7FNwUx[eoyptest1.cgcc2_compiled.__rcs_id_gintv_test1_c__rcs_id_gintv_gintv_hsolvingcirclecurveintersectgintv_cosgintv_sinstdoutgintv_printgintv_mulprintfgintv_eqgintv_andmaingintv_in_tolerancegintv_solvegintv_merge_adjacent%.9CINYcin\y !E]}0INtgmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/test10100755000175200017560000007072107262722511021507 0ustar stephensstephengELF4]4 (444777Pl`8`` /lib/ld-linux.so.2GNU   3&I "NЅ}-.="x7 (0+@APE`+qp2)"b}S #І+__gmon_start__libm.so.6logsqrtceilfloorfmodcosatan2powexptanatanasin_IO_stdin_usedacoslibc.so.6printfstdoutmemcpy__cxa_finalizefprintf__deregister_frame_info__libc_start_main__register_frame_infoGLIBC_2.1.3GLIBC_2.0g0si ii ii \  $(, 0 4 8 <@DHLPTXU/5%% h%h%h%h%h % h(%$h0%(h8p%,h@`%0hHP%4hP@%8hX0%<h` %@hh%Dhp%Hhx%Lh%Ph%Th%Xh1^PTRh̴hxQVhĉ?USP[@\tЋ]ÐUuItt&B ut h]ÍvU]ÍUth h]Ð&U]ÐUu uu EP#=u@ hu jh5 hujh5 ÐUWVEU lju u EP=u@ hu jh5 hujh5k e^_]ÐUxEE=u hzUuEPЃUEPEPЃEPEPEPEPE؃PEPEPEPuE=u@ hujh5 hujh5| ÉUWVpEEE܇ET}ȾEԈDžDž:0DžyE> hPhEPEPuučP!0hDž;|D hEPuh˵5\ 믍v h̵{Pu`$hBDž;|D hEPuh˵5 믍vDž;||h۵EPPEЃEPPEЃte^_]Uu hwuEE;E|FEEt tEEt4hzuC E뱐uhwu%UWV0E UEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UWV0E UEUEUEUEUEȉŰEUEЉUԍ}؍u}uE0^_]UE]ÉUE@]ÐU(E UEtvE ] E]E]E U@BEt E @] E@]E]uuWEuuYEXÉUE U]E U@B]uuEuuEXÉUE Ub]E U@"]uuEuuEXÉUE P @EUE PEUuuNEuuPEXÐU8E U ]E UJ]E U@ ]E U@J]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuEXU8E U2]E Ur]E U@2]E U@r]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuGEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuWEXUE p0Id$$EE p p!d$$EXÍvU8Ep0E p0Y]Ep pE p0=]Ep0E p p!]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uu7EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuGEXUE p0d$$EE p pd$$EXÍvUE p0 d$$EE p pd$$EXÍvUHE d$$]E @]EEÈ@r+vE@E@@ ?h@juuf]E p0]E p p]EEÈ@rcvEE@tKvE@EEEEEt E]E]EȋEXEEÈ@rpEE@t[vEEEt E]E]uuEh?jEXgEEEt!MEUQME؋U܉AQ .uu]Euu_EXUWV E ]؋E @]}uEPue^_]UE d$$.]E @d$$]EEE@u'vE@E@@ QE p0?d$$4EE p pd$$$EXÐUE p0Ud$$EE p p-d$$EXÍvUE p p]E p0]uubEuudEXÐUE p0ud$$EE p pMd$$ EXÍvU8Ep0E p0]Ep pE p0i]Ep0E p pM]Ep pE p p0]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuC EEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uuS EXUEU @EtE U@Et)E@E@@ E U BE@t]E U@E@tAEUBE@t%E@?E@@ ?"E@E@@ ?]UEU @EtE U@Et)E@?E@@ ?E U BE@t]E U@E@tAEUBE@t%E@E@@ "E@E@@ ?]UEU @È@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]UE UBÈ@r$E@E@@ bE U@Et%E@?E@@ ?"E@E@@ ?]Uu uuUu uu%UE E@tE @E@t2EE@tCvE@E@t(E@E@@ E E@tmE @E@tTEE@t=E@E@t$E@?E@@ ?"E@E@@ ?]UE E@trE @E@tXEE@tAE@E@t(E@E@@ E E@tE @E@t2EE@t?vE@E@t$E@?E@@ ?"E@E@@ ?]UE E@t>E @E@t$E@?E@@ ?vE E@t=E @E@t$E@E@@ "E@E@@ ?]UWVE E@t,E @E@tEUljXE E@t-E @E@tEUljuuue^_]ÐUE p0%d$$EE p pd$$EXÍvUE p0)d$$NEE p pd$$>EXÍvUWV0E Et0E @EtvEU ljE EtuE @Et\E P @EUE PEUuueEuugEXE@EEE PEЉUEE P @EЉUEEtE PE؉UE P @E؉UE؋EXe^_]ÍvU8Ep0E p0%]Ep pE p0 ]Ep0E p p]Ep pE p p]EEEtEEEthEEEtPEEEtEEE2EEEEEEtpEEEtEEEt<EEEt$EEEtE]E]E]E]uuEEEEtEEEtSEEEt?EEEtEEE&EEEtwEEEtcEEEtEEEt7EEEt#EEEt E]E]E]E]uu#EXUE]ÉUE]ÐUSvE } uKvEU@"EEt E͐]MAQ S"]M?AQ S$ÍvUWVS\EEE()ĉE̋ẺEȋE()ĉEċE(EăEEĉEE EЋEEPuuE;EsvuuuEPEЃt EE@t3vEE@tvEE)E(뇍vEÈ@r!EtE;EtnEE;E|*MЋEEȉύ4EЃE̍EE;E| EvEE)E( u$uuuEPE Ѓ t ~vEÈ@rNEt7vEUE;|0EEMȋEEȍ<4EƉEMȋEED8]EEMȋEEȍTRDT EMȋEUDT EEMȋEUTEE;E|2EEMȋEEȍ<4EƉEEE8y UEHUEEN?d@zABCDEFGH4IINQRSTU5VMXe[^bx{ ~) C \ w  3 O h    Z # 4 < C" F> S Z^,l!tuy\m t8bmHt#5mm 6G`JKTY.]g`a-#517I8a9{: "dinit.c/usr/src/bs/BUILD/glibc-2.2/csu/gcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)../include/libc-symbols.h/usr/src/bs/BUILD/glibc-2.2/build-i386-linux/config.h../sysdeps/gnu/_G_config.h../sysdeps/unix/sysv/linux/bits/types.h../include/features.h../include/sys/cdefs.h../misc/sys/cdefs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(8,1)=(0,4)__u_char:t(4,1)=(0,11)__u_short:t(4,2)=(0,9)__u_int:t(4,3)=(0,4)__u_long:t(4,4)=(0,5)__u_quad_t:t(4,5)=(0,7)__quad_t:t(4,6)=(0,6)__int8_t:t(4,7)=(0,10)__uint8_t:t(4,8)=(0,11)__int16_t:t(4,9)=(0,8)__uint16_t:t(4,10)=(0,9)__int32_t:t(4,11)=(0,1)__uint32_t:t(4,12)=(0,4)__int64_t:t(4,13)=(0,6)__uint64_t:t(4,14)=(0,7)__qaddr_t:t(4,15)=(4,16)=*(4,6)__dev_t:t(4,17)=(4,5)__uid_t:t(4,18)=(4,3)__gid_t:t(4,19)=(4,3)__ino_t:t(4,20)=(4,4)__mode_t:t(4,21)=(4,3)__nlink_t:t(4,22)=(4,3)__off_t:t(4,23)=(0,3)__loff_t:t(4,24)=(4,6)__pid_t:t(4,25)=(0,1)__ssize_t:t(4,26)=(0,1)__rlim_t:t(4,27)=(4,4)__rlim64_t:t(4,28)=(4,5)__id_t:t(4,29)=(4,3)__fsid_t:t(4,30)=(4,31)=s8__val:(4,32)=ar(4,33)=r(4,33);0000000000000;0037777777777;;0;1;(0,1),0,64;;__daddr_t:t(4,34)=(0,1)__caddr_t:t(4,35)=(4,36)=*(0,2)__time_t:t(4,37)=(0,3)__useconds_t:t(4,38)=(0,4)__suseconds_t:t(4,39)=(0,3)__swblk_t:t(4,40)=(0,3)__clock_t:t(4,41)=(0,3)__clockid_t:t(4,42)=(0,1)__timer_t:t(4,43)=(0,1)__fd_mask:t(4,44)=(0,5)__fd_set:t(4,45)=(4,46)=s128fds_bits:(4,47)=ar(4,33);0;31;(4,44),0,1024;;__key_t:t(4,48)=(0,1)__ipc_pid_t:t(4,49)=(0,9)__blksize_t:t(4,50)=(0,3)__blkcnt_t:t(4,51)=(0,3)__blkcnt64_t:t(4,52)=(4,6)__fsblkcnt_t:t(4,53)=(4,4)__fsblkcnt64_t:t(4,54)=(4,5)__fsfilcnt_t:t(4,55)=(4,4)__fsfilcnt64_t:t(4,56)=(4,5)__ino64_t:t(4,57)=(4,5)__off64_t:t(4,58)=(4,24)__t_scalar_t:t(4,59)=(0,3)__t_uscalar_t:t(4,60)=(0,5)__intptr_t:t(4,61)=(0,1)__socklen_t:t(4,62)=(0,4)../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h../sysdeps/unix/sysv/linux/bits/sched.h__sched_param:T(10,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(9,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(9,2)=(9,3)=*(9,4)=xs_pthread_descr_struct:pthread_attr_t:t(9,5)=(9,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(10,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(8,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(8,1),256,32;;pthread_cond_t:t(9,7)=(9,8)=s12__c_lock:(9,1),0,64;__c_waiting:(9,2),64,32;;pthread_condattr_t:t(9,9)=(9,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(9,11)=(0,4)pthread_mutex_t:t(9,12)=(9,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(9,2),64,32;__m_kind:(0,1),96,32;__m_lock:(9,1),128,64;;pthread_mutexattr_t:t(9,14)=(9,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(9,16)=(0,1)_pthread_rwlock_t:T(9,17)=s32__rw_lock:(9,1),0,64;__rw_readers:(0,1),64,32;__rw_writer:(9,2),96,32;__rw_read_waiting:(9,2),128,32;__rw_write_waiting:(9,2),160,32;__rw_kind:(0,1),192,32;__rw_pshared:(0,1),224,32;;pthread_rwlock_t:t(9,18)=(9,17)pthread_rwlockattr_t:t(9,19)=(9,20)=s8__lockkind:(0,1),0,32;__pshared:(0,1),32,32;;pthread_spinlock_t:t(9,21)=(0,1)pthread_barrier_t:t(9,22)=(9,23)=s20__ba_lock:(9,1),0,64;__ba_required:(0,1),64,32;__ba_present:(0,1),96,32;__ba_waiting:(9,2),128,32;;pthread_barrierattr_t:t(9,24)=(9,25)=s4__pshared:(0,1),0,32;;pthread_t:t(9,26)=(0,5)wchar_t:t(11,1)=(0,3)wint_t:t(11,2)=(0,4)../include/wchar.h../wcsmbs/wchar.h../sysdeps/unix/sysv/linux/i386/bits/wchar.h__mbstate_t:t(13,1)=(13,2)=s8__count:(0,1),0,32;__value:(13,3)=u4__wch:(11,2),0,32;__wchb:(13,4)=ar(4,33);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(3,1)=(3,2)=s12__pos:(4,23),0,32;__state:(13,1),32,64;;_G_fpos64_t:t(3,3)=(3,4)=s16__pos:(4,58),0,64;__state:(13,1),64,64;;../include/gconv.h../iconv/gconv.h :T(17,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(17,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(17,3)=(17,4)=*(17,5)=f(0,1)__gconv_init_fct:t(17,6)=(17,7)=*(17,8)=f(0,1)__gconv_end_fct:t(17,9)=(17,10)=*(17,11)=f(0,20)__gconv_trans_fct:t(17,12)=(17,13)=*(17,14)=f(0,1)__gconv_trans_context_fct:t(17,15)=(17,16)=*(17,17)=f(0,1)__gconv_trans_query_fct:t(17,18)=(17,19)=*(17,20)=f(0,1)__gconv_trans_init_fct:t(17,21)=(17,22)=*(17,23)=f(0,1)__gconv_trans_end_fct:t(17,24)=(17,25)=*(17,26)=f(0,20)__gconv_trans_data:T(17,27)=s20__trans_fct:(17,12),0,32;__trans_context_fct:(17,15),32,32;__trans_end_fct:(17,24),64,32;__data:(0,19),96,32;__next:(17,28)=*(17,27),128,32;;__gconv_step:T(17,29)=s56__shlib_handle:(17,30)=*(17,31)=xs__gconv_loaded_object:,0,32;__modname:(17,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(4,36),96,32;__to_name:(4,36),128,32;__fct:(17,3),160,32;__init_fct:(17,6),192,32;__end_fct:(17,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(17,33)=s36__outbuf:(17,34)=*(0,11),0,32;__outbufend:(17,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(17,35)=*(13,1),160,32;__state:(13,1),192,64;__trans:(17,28),256,32;;__gconv_info:T(17,36)=s8__nsteps:(8,1),0,32;__steps:(17,37)=*(17,29),32,32;__data:(17,38)=ar(4,33);0;-1;(17,33),64,0;;__gconv_t:t(17,39)=(17,40)=*(17,36)_G_iconv_t:t(3,5)=(3,6)=u44__cd:(17,36),0,64;__combined:(3,7)=s44__cd:(17,36),0,64;__data:(17,33),64,288;;,0,352;;_G_int16_t:t(3,8)=(0,8)_G_int32_t:t(3,9)=(0,1)_G_uint16_t:t(3,10)=(0,9)_G_uint32_t:t(3,11)=(0,4)_IO_stdin_used:G(0,1)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.0)01.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.got.rel.bss.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.sbss.bss.stab.stabstr.comment.note# 1((7 ԁ?TTGoHH0ToxxPc Ȅl Єu ؄ ~xxP-̴45 747778```8999 @KZ[\hb P (l(ԁTHxȄЄ ؄ x   ̴`   +2 0 =AO[0 q  Ї 2     ̴  ܇  7(`7?G܇w NT TԈ ^ 4 f7(@7}d |   6(7 p @7(74 dY ؎_ &4 ` |  #0Y .`70 A"b@Y lЅ}|8| -0   x p Y 4 , c $Y .0R 8x > T"w ԡ Y | (P    S  0+ĉp !Y -@JPY c`+r } p2̴)" La  4 $$) 5}ETR ^kT st   І+initfini.cgcc2_compiled.call_gmon_startinit.ccrtstuff.cp.0__DTOR_LIST__completed.1__do_global_dtors_aux__EH_FRAME_BEGIN__fini_dummyobject.2frame_dummyinit_dummyforce_to_data__CTOR_LIST____do_global_ctors_aux__CTOR_END____DTOR_END____FRAME_END__test1.c__rcs_id_gintv_test1_c__rcs_id_gintv_gintv_hsolvingcirclecurveintersectgintv.c__rcs_id_gintv_gintv_cFIX_MINFIX_MAXsolve.c__rcs_id_gintv_solve_cmerge.c__rcs_id_gintv_merge_cgintv_eqgintv_asingintv_negcos@@GLIBC_2.0gintv_andgintv_vgintv_geatan@@GLIBC_2.0gintv_sqrt_DYNAMICgintv_cos__register_frame_info@@GLIBC_2.0gintv_expasin@@GLIBC_2.0_fp_hwgintv_mulfprintf@@GLIBC_2.0fmod@@GLIBC_2.0gintv_negintv_hgintv_tangintv_merge_adjacentgintv_loggintv_or__dso_handlegintv_ltgintv_acosgintv_atanpow@@GLIBC_2.0gintv_add_initgintv_merge_aggregate__deregister_frame_info@@GLIBC_2.0gintv_fmodgintv_gtstdout@@GLIBC_2.0gintv_ceilgintv_divgintv_sin_startgintv_in_tolerancegintv_atan2gintv_solveatan2@@GLIBC_2.0floor@@GLIBC_2.0__bss_startmaingintv_floor__libc_start_main@@GLIBC_2.0exp@@GLIBC_2.0gintv_nottan@@GLIBC_2.0data_startgintv__ifprintf@@GLIBC_2.0_finimemcpy@@GLIBC_2.0sqrt@@GLIBC_2.0__cxa_finalize@@GLIBC_2.1.3gintv_legintv_fabsgintv_pow_edata_GLOBAL_OFFSET_TABLE_gintv_print_endgintv_unionacos@@GLIBC_2.0_IO_stdin_usedgintv_sub__data_startgintv_slog@@GLIBC_2.0gintv_l__gmon_start__ceil@@GLIBC_2.0gmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/test1.libs0100644000175200017560000000001407262722405022422 0ustar stephensstephengtest1 gintv gmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/test1.libmak0100644000175200017560000000022607262722405022735 0ustar stephensstepheng/home/stephens/ion/src/gintv/gumo/Linux-libc2.2-ix86/o/libtest1.a :: cd /home/stephens/ion/src/gintv && /home/stephens/ion/src/gum/bin/gum test1-lib gmv0.9/src/gintv/gumo/Linux-libc2.2-ix86/o/test1.o.d0100644000175200017560000000240607262722511022156 0ustar stephensstepheng# DO NOT MODIFY: generated by /home/stephens/ion/src/gum/bin/gum_cpp.pl # 'gcc' '-Wall' '-E' '-H' '-o' test1.c gumo/Linux-libc2.2-ix86/o/./test1.o : \ gintv.h \ /usr/include/stdio.h \ /usr/include/features.h \ /usr/include/sys/cdefs.h \ /usr/include/gnu/stubs.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h \ /usr/include/bits/types.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/bits/pthreadtypes.h \ /usr/include/bits/sched.h \ /usr/include/libio.h \ /usr/include/_G_config.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/wchar.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/include/bits/wchar.h \ /usr/include/gconv.h \ /usr/include/wchar.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h \ /usr/include/bits/stdio_lim.h \ /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/float.h \ \ /usr/include/bits/pthreadtypes.h \ /usr/include/bits/sched.h \ /usr/include/bits/stdio_lim.h \ /usr/include/gnu/stubs.h gmv0.9/src/gintv/GUMakefile0100644000175200017560000000042107263126577016165 0ustar stephensstepheng# $Id: GUMakefile,v 1.1 2001/04/05 17:38:07 stephens Exp $ PACKAGE=gintv NAME=gintv C_FILES=gintv.c solve.c merge.c H_FILES=gintv.h INSTALL_VARS=H_FILES LIB LIBS=math# needs ANSI math library include $(GUM)/lib NAME=test1 C_FILES=test1.c LIBS=gintv include $(GUM)/exe gmv0.9/src/xvf/0040755000175200017560000000000007306140401013727 5ustar stephensstephenggmv0.9/src/xvf/paper/0040755000175200017560000000000007306033200015034 5ustar stephensstephenggmv0.9/src/xvf/paper/paper.latex0100644000175200017560000003717107306033172017220 0ustar stephensstepheng \batchmode \T