Home Overview FAQ Documentation Download Mailing List Geomview For Windows? Support Users Development Bug Reporting Contributing Contact Us Sponsors
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] nose.c
>I have been nosing through nose.c, and trying to familiarize myself >with the various library calls from lisp.h. A key object seems to be a >"Pool", which is what nose uses to get the picking info from geomview. >It doesn't seem necessary to learn what a "Pool" really is, because >all usages of it are as arguments to lisp.h calls (with the exception >of a reference to p->inf in the function moreargs). >However, I cannot figure out how nose tells geomview to use the "Pool" >object to pass the picking string back. The only geomview language >calls I can see involving picking are either references to an id >"pick", or the geomview command "(pick yes)" in the function call >pickability, or the geomview language call "(pickable pick no)", which >I presume is so that the little boxes don't get picked. Correct. >However, I >cannot see how nose.c can be so confident that the information about >the pick string is going to be contained in the "Pool" object. Is this >just something geomview does automatically? Does it stick the >information into some kind of generic "Pool" object? Exactly which >geomview language call tells geomview to pu Yes, geomview automatically sets up connections to the modules so they can just read from stdin and write to stdout. This is done behind the scenes when a module is invoked but does not involve Pools, just Unix connection voodoo. Nose not assuming anything about pools, just that it will get info from geomview from stdin. If you weren't trying to use the lisp library stuff, you would never see pools. Since you are, here's a bare minimum of pool info: This is the crucial line in main() that creates a pool with input stream pointing to stdin: p = PoolStreamTemp("standard input", stdin, 0, &MyOps); Now pool->inf is pointing to stdin. Don't worry about MyOps: you don't need this functionality nor does nose.c, as you can see from the declaration below. Just copy it in blissful ignorance. HandleOps MyOps = { "jibberish", NULL, NULL, NULL, NULL, NULL, }; Does this clear it up? Tamara
|
||
Home | Overview | FAQ | Documentation | Support | Download | Mailing List Windows? | Development | Bug Reporting | Contributing | Contact Us | Sponsors |
|||
site hosted by |