No description
Find a file
Stephen Dennis a70362ef63 build: remove the 11 UTF-8 BOMs, and stop editors re-adding them (#1499)
Every BOM in the tree, and an .editorconfig so Visual Studio does not put
them back.

All eleven carry no information: none of the files contains a single
non-ASCII byte, so the BOM was the only non-ASCII content in each.
Visual Studio wrote them when it generated or last touched those project
files.  Ten are .vcxproj.filters; two are the sqlproxy and sqlslave
.vcxproj, which is why the /utf-8 commit had to restore them mid-change.

The concern that makes this worth more than tidying: Visual Studio adds a
signature when it needs to represent a non-ASCII character in a file that
had none.  These files are pure ASCII, so removing the BOM should stick --
VS preserves the encoding it finds.  But #1499 step 2 converts source
prose from \xE2\x80\x99 escapes to characters, which is precisely the
condition that starts making VS write signatures, and on .cpp rather than
on project files.

.editorconfig is the lever for that.  charset = utf-8 means UTF-8 WITHOUT
a BOM (utf-8-bom is the spelling for with), and Visual Studio honours it,
as do VS Code, CLion and Sublime.  It is deliberately the only key set:
indentation, line endings and trailing whitespace are left to existing
practice and CLAUDE.md, so the file cannot reformat anything by surprise.

Git cannot do this job, which is worth recording because it is the
obvious place to look.  core.autocrlf is line endings only, and
.gitattributes' working-tree-encoding converts encodings rather than
stripping a signature -- pointing it at UTF-16 would ADD one.  Stripping
a BOM through git needs a custom clean filter that every clone has to
configure locally; an .editorconfig needs no setup and acts where the BOM
is actually introduced.

A BOM is harmless to MSVC and tolerated by gcc and clang, so this is not
a correctness fix for compiled sources.  It matters for files that are
executed rather than compiled -- a shell script or a .mux corpus file
with a BOM simply does not work -- and for keeping diffs free of churn
that depends on who last opened a file in an IDE.

Verified: full rebuild of all eleven projects clean, including the two
whose .vcxproj lost its BOM; smoke 316 dispatched, 1487 succeeded, 17
failed (the known build-configuration failures here); format, netaddr and
alarm harnesses pass; zero BOMs left in any tracked file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 21:20:02 -06:00
client feat(client/android): persist and resume the Hydra session id (#762) 2026-07-21 15:18:43 -06:00
color Color: Add CIELAB nearest-neighbor tool and YUV comparison 2026-03-16 11:20:08 -06:00
debian Retire ISSUES.md trackers; migrate open items to GitHub issues 2026-06-04 20:14:00 -05:00
docker Retire ISSUES.md trackers; migrate open items to GitHub issues 2026-06-04 20:14:00 -05:00
docs Merge pull request #1412 from brazilofmux/docs/pass13-residual-audit 2026-07-26 19:26:49 -06:00
hooks Make pre-commit hook bash 3.2 compatible 2026-04-25 19:51:41 -06:00
mux build: remove the 11 UTF-8 BOMs, and stop editors re-adding them (#1499) 2026-07-26 21:20:02 -06:00
parser Retire ISSUES.md trackers; migrate open items to GitHub issues 2026-06-04 20:14:00 -05:00
ragel Unify Ragel color_ops build with production source 2026-03-18 06:32:39 -06:00
sgp Remove hardtabs. 2012-05-18 13:29:49 -07:00
specs Add clean target to specs Makefile. 2010-06-02 20:34:17 -07:00
testcases build(win32): add /utf-8 to the MSVC projects (#1499) 2026-07-26 20:58:42 -06:00
tests build(win32): add /utf-8 to the MSVC projects (#1499) 2026-07-26 20:58:42 -06:00
tools/worldbuilder Retire ISSUES.md trackers; migrate open items to GitHub issues 2026-06-04 20:14:00 -05:00
unix build: finish the telnet_protocol_handler removal (#793 follow-up) 2026-06-12 02:29:22 -05:00
utf Regenerate UTF-8 DFA tables; fix table-gen toolchain on macOS 2026-06-04 12:32:08 -05:00
win32 build: finish the telnet_protocol_handler removal (#793 follow-up) 2026-06-12 02:29:22 -05:00
.editorconfig build: remove the 11 UTF-8 BOMs, and stop editors re-adding them (#1499) 2026-07-26 21:20:02 -06:00
.gitattributes Add .gitattributes to enforce LF endings for shell scripts and TOC files. 2026-03-04 08:05:14 -07:00
.gitignore feat(format): implement %i, %o and floating point in mux_vsnprintf (#1416) 2026-07-26 14:45:04 -06:00
AGENTS.md docs: correct AGENTS.md build to the 2.14 workflow 2026-07-12 16:27:54 -06:00
CLAUDE.md test(dbt): instruction-level differential fuzzer, interpreter vs DBT 2026-07-26 01:11:18 -06:00
CONTRIBUTING.md docs: add CONTRIBUTING.md — contribution workflow and standards 2026-07-12 16:26:54 -06:00
dounix.sh harden: deliver binary blobs out-of-band in the Unix distribution 2026-07-14 17:40:08 -06:00
dowin32.sh Prepare 2.14.0.9 ALPHA release 2026-07-14 13:43:24 -06:00
GEMINI.md Add AGENTS.md, GEMINI.md and clean up .gitignore 2026-03-08 20:33:27 -06:00
LICENSE Add top-level LICENSE file (Artistic-1.0 + revised TinyMUD notice) 2026-06-30 07:26:10 -08:00
Makefile build(asan): fix the two things that stop test-asan reaching its suites 2026-07-26 17:56:21 -06:00