Example 14 has traditional been excluded from the non-interactive tests
since it outputs 2 files, and you can only specify one file on the
command line using the -o option. With a judicious redirection of stdin
it is possible to work round this. I've implemented this for all
languages so example 14 is now part of the standard ctest suite. As a
consequence I've found and corrected several differences between
implementations. This has brought 2 issues to light

1) In order to get this to work for devices which produce single pages
(e.g. png) I've had to modify the C version to call plgfam on stream 1
and then plsfam on stream 2 with the read parameters. This works fine,
except that the command line option -fflen which sets the number of
digits to use for the family page number has no API equivalent that I
can find. It is not part of plgfam / plsfam which it probably should be.
This means that the file names for the second stream are things like
x14ac1.ps rather than x14c01.ps. As a result of this I've not yet
propagated the plgfam / plsfam changes to other languages. 

2) A wider question is if and how command line options should be passed
on to subsequent streams. It might be possible to call plparseopts with
the second stream to re-parse the command options, but this would
results in both streams having the same output name. This is going to
depend on the application on a case-by-case basis I suspect, but we
should at least supply the user with the relevant plgxxx / plsxxx
functions to check and set anything set on the command line.

3) The other major issue that this all brought to light is that the xfig
driver is broken for use with multiple streams. It uses several static
variables in the driver for storing stream-specific settings which will
obviously mess things up. Most seriously it uses a malloc'ed buffer.
Multiple calls to plend1 for the multiple streams will result in a
crash. This results in example 14 crashing with the xfig test. This can
be relatively easily fixed, but I probably won't get time today, so if
someone else gets there first, then feel free to take a look.

Andrew


------------------------------------------------------------------------------
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to