Hi Stuart,
[snip]
>* In libgeda, o_complex_basic modified to place a new type --
>OBJ_PLACEHOLDER -- into the object list when a complex is found with
>no symbol file. This happens when the RC files are misconfigured, and
>o_read can't find the sym file. The old behavior was to just place
>nothing into object_list, which meant that the component was deleted
>when the object was saved out.
Oh great! I'm glad that this is finally fixed. Thanks Stuart.
I looked over your code and it looks fine, however, I took it
one step farther. I added a graphical representation to OBJ_PLACEHOLDER
and you can now (to a limited degree) manipulate (move, copy, edit
attributes) these objects in gschem. Please test it out and make sure
I didn't break gattrib. The biggest change was to move the logic out
of o_complex_read and put it into o_complex_add (this makes copying
possible).
Hopefully I made the missing component rendering obnoxious enough
so that it really sticks out.
>* In gattrib, I made it throw up a window warning that the sym file
>wasn't found, and giving the user the option to abort the program and
>fix the problem.
>
You may want to just put one dialog box instead of one per missing
component. Sorta like my symbol version mismatch dialog box, where I display
one dialog box but with all the symbols listed.
>* Does gschem continue to work corrctly when the RC files are
>correctly configured?
Seems okay to me.
>
>* Does gschem continue to work corrctly when the RC files are
>misconfigured? What happens to a component which is found missing due
>to misconfiguration? When you reconfigure the RC files, does it
>reappear correctly?
Also seems to work just fine for me.
>
>* Any other new bugs in other programs whcih use libgeda,
>e.g. gsymcheck?
Not that I can find. I'm sure that my changes (which were far
more intrusive all over the place) also generated bugs, so if anybody
sees something new or unexpected, please let us know.
-Ales