Add clang build to linux CI
CI: Add macOS CI, including a clang build
* src/cid/cidload.c (parse_fd_array): Protect against trancation.
[type1] Revert to signed size for binary data.
[psaux] Signedness revisions.
[cid] Signedness revisions.
* src/cid/cidload.c (cid_face_open): Streamline CIDCount check.
* src/cid/cidload.c (cid_face_open): Streamline SubrCount check.
* src/cid/cidgload.c (cid_load_glyph): Fortify incremental loading.
Signedness revisions.
meson.build (gen_docs): Use `current_source_dir` instead of `source_root`.
* src/smooth/ftgrays.c (FT_DIV_MOD): Limit the ARM workaround.
[builds/unix, builds/vms] Standardize `mmap` failure.
autogen.sh: Only copy submodules if building from a git branch.
* include/freetype/internal/ftgloadr.h: Add missing header.
[pshinter] Additional clean-ups.
[pshinter] More convenient direction definition.
[pshinter] Remove unnecessary check.
CI: Hardcode meson version to fix build failure on windows
Additional `FT_MSB` macro definitions.
* src/autofit/afhints.c (af_glyph_hints_reload): Decrease casting.
* src/tools/apinames.c: Facilitate OpenVMS linker options.
* src/winfonts/winfnt.c (FNT_Face_Init): Correct reallocation.
[builds/unix] Do not use autoconf SIZEOF.
Propagate sign when reading OFF3.
[bdf] Simplify comment collection or lack thereof.
Use NULL for pointers only.
Minor documentation fixes and improvements.
Reference `fopen` in the docs.
[bdf, pcf] Minor optimization.
[base] Initialize stream memory earlier.
[builds/windows] Revert back to `CreateFileA` only.
* src/bdf/bdflib.c (_bdf_parse_{start,glyphs}): Use appropriate scanner.
* src/cff/cffdrivr.c (cff_ps_get_font_{info,extra}): Use FT_QNEW.
[cache] Minor clean-ups.
[builds/windows] Try both wide and narrow `CreateFile`
[cff] Explicitly set StandardEncoding or ExpertEncoding offsets.
[cache] Miscellaneous clean-ups.
* src/cff/cffload.c (cff_fd_select_get): Remove casting.
* src/pcf/pcfread.c (pcf_read_TOC): Remove casting.
Minor type adjustments.
Replace boolean allocation macros with MEM ones.
[cache] Revert to some zeroing.
* src/pshinter/pshrec.c (ps_mask_table_merge_all): Tweak loops.
[cff, pshinter] Clean up unsigned counters.
[bdf, psnames, sfnt] Avoid some memory zeroing.
* src/base/ftobjs.c (FT_CMap_New): Revert to zeroing.
[truetype] Clean up `exec` initialization.
[truetype] Avoid some memory zeroing.
[base] Avoid some memory zeroing.
[cache, psaux] Remove zeros.
[cache] Avoid some memory zeroing.
* src/cache/ftcmanag.c (FTC_Manager_New): Add missing zero.
[truetype] Tweak `hdmx` checking.
[truetype] Tweak `loca` clamping.
Fortify memory debugging (cont'd).
Fortify memory debugging.
src/tools/ftrandom/ftrandom.c (_XOPEN_SOURCE): Set to 600.
[builds/windows] Use native memory allocation API.
[dlg] Synchronize with upstream.
* src/bdf/bdflib.c (_bdf_parse_start): Keep parser memory.
autogen.sh: Make it work with old Solaris 10 shell.
[smooth, raster, sdf] Clean up initialization calls.
* src/cache/ftcmanag.c (FTC_Manager_New): Avoid some zeroing.
* src/bdf/bdflib.c (bdf_load_font): Remove memory shuffling.
[base] Clean up stream reading.
s/0/NULL/ where appropriate.
* builds/windows/ftsystem.c (FT_Stream_Open): Fix double-close.
[smooth] Reduce shift in multiply-shift optimization.
[truetype] Fix compilation if !TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
[builds/windows] Revise SSE2 settings.
[smooth] Detect SSE2 with MSVC for x86
Expand comment (cont'd).
* src/smooth/ftgrays.c (gray_render_conic): Refactor redundancy.
[truetype] Fix for the family name shorter than 8 characters.
[truetype] Simplify `trick_names'.
[truetype] Add 2 tricky font names.
[truetype] New function to skip the randomization tag.
[truetype] Add checksums for 2 tricky fonts.
Whitespace formatting.
Decorate const arguments.
[smooth] Clean up the null cell usage.
[base] Restore quiet no-op rendering of bitmap glyphs.
[smooth] Fortify 64-bit algorithm.
* builds/windows/ftsystem.c (FT_Stream_Open): Support legacy Windows.
Determine `long long` availability based on its size.
[sfnt] Fix format expectation for `COLR` v1 ClipList
Readily use `long long` as a 64-bit type in C99 mode.
Use FT_INT64 instead of FT_LONG64.
[builds/windows] Do not set CharacterSet for VC++.
* src/sdf/ftsdf.c (get_control_box): Fix compiler warning.
[base] Fix ppem size overflow.
* builds/windows/ftsystem.c (FT_Stream_Open): Cast to remove warning.
* builds/windows/ftsystem.c (FT_Stream_Open): Support UNICODE compilation.
* src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Minor fix.
[sfnt] Add missing blend mode 'plus' to 'COLR' v1.