generate more warnings to help prevent operator error
Steps to reproduce
This is a broad category, but as a motivating example:
On Windows, neato -Tpng file.gv > file.png
Expected Behaviour
file.png is valid
Actual Behaviour
file.png is corrupted
OS Version
Windows (all versions)
Graphviz Version
all versions
Additional info
Because graphviz is recognized as a text stream program, it is not safe to redirect stdout when the output is a binary graphics format. It is difficult for users to understand this sometimes. See this comment about a corrupted PNG file in the Graphviz forum.
Fortunately, we have a flag in gvdevice_features_t for GVDEVICE_BINARY_FORMAT, so graphviz for Windows maybe could detect if it is streaming binary output to stdout and issue a warning.
Not sure off the top of my head, but wonder if there are other situations where we could issue meaningful warnings. (Maybe unreasonable node sizes, and image based output that is so large it is likely to run out of memory.)