Version 0.1.3 behavior is documented here. Thesupport record separates local verification frompublished MoonX behavior; moonx examples use registry releases.
Convert eligible spaces to tabs while preserving input bytes and lineboundaries:
printf ' text\n' | moonx cli/unexpand
printf 'a b\n' | moonx cli/unexpand -a
-a/--all converts blanks throughout each line; the default converts onlythe initial blank sequence. -t/--tabs implies --all. --first-onlyoverrides both explicit -a and the implication from -t, regardless ofoption order. Existing tabs and isolated spaces retain their column meaning.
Tab lists use positive ascending stops separated by commas, spaces or tabs;repeated -t values accumulate. The default width is 8, and a single stoprepeats at its width. Several fixed stops end conversion after their laststop. A final /N extends at absolute multiples of N, while +N extendsrelative to the last fixed stop: 4,6,/8 continues at 8,16,... and4,6,+8 at 14,22,... . A standalone /8 or +8 repeats width 8.
Stops use the GNU signed 64-bit range. Nonzero /N and +N suffixes areexclusive and may not be repeated. GNU 9.11 accepts trailing /0 or +0as no extension, so 4,/0 and 4,+0 repeat width 4. Invalid lists failbefore input is read. Backspace decrements a positive column; carriage returnis an ordinary byte and does not reset it.
With no file operand, or with -, input is read from standard input. Multiple files are processed inorder. Locale-dependent display widths are outside this byte-oriented profile.
Standalone --version prints exactly unexpand 0.1.3 followed by onenewline. Standalone --help starts with Usage: unexpand, lists bothmetadata options, and ends with a newline. Both write to stdout, leave stdinunread, and exit with status 0. Exact-version publication and verificationremain recorded separately in the support record.