* remove BOM from all repo files that contain one
* changes all files to utf-8 (specifically, utf-8 *without* BOM)
* improves compliance with ".editorconfig"
.# Discussion
This is an example of the semi-invisible changes which can creep into patches
via various editors. Any such changes are *very* difficult to figure out from
a diff output and just add visual noise to commits. Hence, ".editorconfig" (added
in a previous commit) is used to minimize this kind of confusing patch noise.
* makes changes to almost all main repo files to be in accordance with .editorconfig
* some files in "test\fixtures\..." were left alone to avoid breaking tests
* NOTE: whitespace changes *only* (`git diff -b` shows no changes)
* create the `etc` directory (if needed)
.# DISCUSSION
`bash` requires the `etc` directory for startup. However, `etc` is missing
from the GOW repo. There are current pull requests fixing this issue (see
bmatzelle/gow#192). But, this fixes the the issue while waiting for the GOW
repo to be updated. The fix here is compatible with all of the current possible
future GOW repo fixes.
* change method of generating gow.bat to generate a normal ASCII character file
.# DISCUSSION
At the PowerShell command line, using `echo STRING > FILE` will generate a
UTF-8-BOM or UTF-16-BOM encoded file. But, CMD interprets files as using the
128-character ASCII character set (character codes 0 to 127). CMD will tolerate
files using the full 256 character "extended-ASCII" set (or even larger
dual-byte character sets). But, in this circumstance, interpretation/display
is dependent on the currently selected code page. It's best to stick to pure
ASCII files if at all possible.
Using `STRING | Set-Content FILE` instead creates the correct ASCII character file.
NOTE: ASCII (not "extended-ASCII") and UTF-8 (non-BOM) encoded files are exactly equivalent.
ref: [Unicode UTF and BOM] http://www.unicode.org/faq/utf_bom.html @@ https://archive.is/TKnyk
ref: [Unicode and NET] http://csharpindepth.com/Articles/General/Unicode.aspx @@ https://archive.is/czs89