On Sat, Apr 19, 2014 at 12:43 AM, Glynn Clements <gl...@gclements.plus.com> wrote:
>> 3) use setjmp()/longjmp() > > That is the sane option. > > But bear in mind that subsequently calling any GRASS function is > entirely "at your own risk". A call to G_fatal_error() often means > that internal data structures will contain garbarge. > > If you want to submit patches to perform clean-up in the event of > fatal errors, they will presumably be accepted. > > Failing that, it may be advisable to have G_fatal_error() zero-out > certain core data structures (e.g. R__) so that people don't make the > mistake of trying to carry on as if nothing happened. There is a problem in G_fatal_error(): static int busy if (busy) exit(EXIT_FAILURE); busy = 1; second G_fatal_error() call always exits. The busy check is there for the case when print error routine itself ends up with call to G_fatal_error()? May be the busy variable made global and added a function to clear it? Radim _______________________________________________ Qgis-developer mailing list Qgis-developer@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-developer