Optimized the glyph shapes in micro.bdf to make digits 1, 2, 3, 5, and 7 narrower.Reduced bounding box width (BBX) to 2px while keeping the original device width (DWIDTH) spacing.Improves readability and compactness for micro-displays.
The converter recognizes P4 files but never reads their raster data, so valid binary PBM input is silently converted from uninitialized bitmap storage. Read P4 bytes in their specified MSB-first order, open inputs in binary mode, and propagate truncated-input failures to the command-line result.
Constraint: Preserve existing P1 output and the converter's internal LSB-first bitmap layout\nRejected: Copy P4 rows directly into bitmap storage | PBM raster bits are MSB-first while the existing internal representation is LSB-first\nConfidence: high\nScope-risk: narrow\nReversibility: clean\nDirective: Keep binary PBM row padding and bit order explicit when changing this parser\nTested: MinGW GCC 8 and WSL GCC with -Wall -Wextra -Werror; real-source P1/P4 equivalence fixture; truncated P4 rejection; Linux ASan/UBSan; existing Scroll-o-Sprites P1 output matches baseline across 5416 lines\nNot-tested: Other external PBM producer variants with headers split differently
Reset both mode flags before parsing each comma-separated command so x and ~ affect only their own ranges.
Confidence: high
Scope-risk: narrow
Tested: MinGW GCC 8.1.0 -O4 -Wall -Werror; 7x13 mapping-order cases; helvB18 font and kerning output hashes
generate_font returned fprintf's positive character count after writing
ENDFONT. main passes that value to exit(), so a valid conversion produced
a complete BDF but reported status 8 to shells and build scripts.
Normalize a successful final write to zero while retaining a negative
result when fprintf reports EOF.
Constraint: generate_font's return value becomes the process exit status.
Rejected: Return zero unconditionally | that would hide failure of the final ENDFONT write.
Confidence: high
Scope-risk: narrow
Directive: Keep successful host-tool conversion at exit status zero without masking output errors.
Tested: baseline valid conversion exit 8; fixed conversion exit 0; BDF byte-identical; GCC -Werror build; ASan/UBSan with Abel and FreeUniversal; missing input exit 1; git diff --check
Not-tested: native Windows FreeType build