Update of bug #60981 (project groff):
Status: In Progress => Fixed
Open/Closed: Open => Closed
Planned Release: None => 1.23.0
_______________________________________________________
Follow-up Comment #2:
commit 5e5cd25d4eec5481c836f8307c943a9043949647
Author: G. Branden Robinson <[email protected]>
AuthorDate: Wed Jul 28 16:51:41 2021 +1000
[grohtml]: Fix Savannah #60981.
Refactor device description file handling, make it more robust, and make
this preprocessor's -F option work as documented, and to honor
documented device description file semantics.
* src/preproc/html/pre-html.cpp: Store partial filespecs of HTML and
PostScript device files in constant strings.
(get_resolution): Initialize `res` to zero. Only `free()` the pointer
`pathp` if `open_file()` succeeded (populating it). Stop checking for
valid `sscanf()` conversions of an integer to store in `res`, and
don't return early. Instead process the whole DESC file; per our
Texinfo manual and groff_font(5), "Later entries in the file ...
override previous values."
(get_image_generator): Add new function, paralleling
`get_resolution()`, replacing open-coded logic in `main()`. Only the
body of the `while` loop significantly differs. Instead of using
`sscanf`, process the input character by character matching the
keyword and {1,} spaces or tabs after it. Whatever follows in
`linebuf` must be the program name.
(imageList::createPage): Add `assert()` to cause failure if an empty
image generator program gets this far, because it creates repeated
messes if it does. (Something isn't checking exit statuses.)
(main): Condense `image_gen` collection to a function call, a null
pointer check, and a fatal diagnostic. Add a sanity check and a fatal
diagnostic if the PostScript resolution is garbage. (It's initialized
to -1 and `get_resolution()` will return 0 if it doesn't find one.)
Fixes <https://savannah.gnu.org/bugs/?60981>.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?60981>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/