fix: preserve UTF-8 in generated command docs

Transcode the MinGW client's CP850 output before writing command documentation and force Python to read the converted stream as UTF-8. Normalize the remaining escaped Greek mu strings to the project's micro sign convention.

Co-Authored-By: OpenAI Codex <[email protected]>
This commit is contained in:
歐歪
2026-09-22 05:37:09 +08:00
co-authored by OpenAI Codex
parent 6150d8fc57
commit 6775a78a10
2 changed files with 12 additions and 6 deletions
+9 -2
View File
@@ -354,13 +354,20 @@ style: commands
--style=google --unpad-paren --pad-header \
--align-pointer=name {} \;
COMMANDS_UTF8_FILTER := cat
COMMANDS_PYTHON := python3
ifdef IS_MINGW
COMMANDS_UTF8_FILTER := iconv -f CP850 -t UTF-8
COMMANDS_PYTHON := PYTHONIOENCODING=utf-8 python3
endif
commands: client
# Update commands.md
[ -x client/proxmark3 ] && client/proxmark3 -m | tr -d '\r' > doc/commands.md
[ -x client/proxmark3 ] && client/proxmark3 -m | $(COMMANDS_UTF8_FILTER) | tr -d '\r' > doc/commands.md
# Make sure python3 is installed
@command -v python3 >/dev/null || ( echo "Please install 'python3' package first" ; exit 1 )
# Update commands.json, patch port in case it was run under Windows
[ -x client/proxmark3 ] && client/proxmark3 --fulltext | sed 's#com[0-9]#/dev/ttyACM0#'|python3 client/pyscripts/pm3_help2json.py - - | tr -d '\r' > doc/commands.json
[ -x client/proxmark3 ] && client/proxmark3 --fulltext | $(COMMANDS_UTF8_FILTER) | sed 's#com[0-9]#/dev/ttyACM0#'|$(COMMANDS_PYTHON) client/pyscripts/pm3_help2json.py - - | tr -d '\r' > doc/commands.json
# Detecting weird codepages and tabs.
+3 -4
View File
@@ -1940,7 +1940,7 @@ static int CmdLFHitagEload(const char *Cmd) {
arg_lit0("1", "ht1", "Card type Hitag 1"),
arg_lit0("2", "ht2", "Card type Hitag 2"),
arg_lit0("s", "hts", "Card type Hitag S"),
arg_lit0("m", "htm", "Card type Hitag \xce\xbc"), // μ
arg_lit0("m", "htm", "Card type Hitag µ"),
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, false);
@@ -1990,7 +1990,7 @@ static int CmdLFHitagEload(const char *Cmd) {
} else if (use_htm) {
// a u dump is sized by the tag's ICR, so accept anything that fits
expected = 0;
tname = "Hitag \xce\xbc";
tname = "Hitag µ";
}
if (use_htm) {
@@ -2053,7 +2053,7 @@ static int CmdLFHitagEview(const char *Cmd) {
arg_lit0("1", "ht1", "Card type Hitag 1"),
arg_lit0("2", "ht2", "Card type Hitag 2 (default)"),
arg_lit0("s", "hts", "Card type Hitag S"),
arg_lit0("m", "htm", "Card type Hitag \xce\xbc"),
arg_lit0("m", "htm", "Card type Hitag µ"),
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
@@ -2933,4 +2933,3 @@ int CmdLFHitag(const char *Cmd) {
return CmdsParse(CommandTable, Cmd);
}