[tools]: reject unicode dash options
ToolsCI / Tools (push) Has been cancelled
RT-Thread BSP Static Build Check / 🔍 Summary of Git Diff Changes (push) Has been cancelled
pkgs_test / change (push) Has been cancelled
utest_auto_run / A9 :components/dfs.cfg (push) Has been cancelled
utest_auto_run / A9 :components/lwip.cfg (push) Has been cancelled
utest_auto_run / A9 :components/netdev.cfg (push) Has been cancelled
utest_auto_run / A9 :components/sal.cfg (push) Has been cancelled
utest_auto_run / A9 :cpp11/cpp11.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64-smp :default.cfg (push) Has been cancelled
utest_auto_run / A9 :default.cfg (push) Has been cancelled
utest_auto_run / A9-smp :default.cfg (push) Has been cancelled
utest_auto_run / RISCV :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-smp :default.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9-smp :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9-smp :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / AARCH64-smp :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / A9-smp :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/mem.cfg (push) Has been cancelled
utest_auto_run / RISCV-smp :kernel/mem.cfg (push) Has been cancelled
RT-Thread BSP Static Build Check / ${{ matrix.legs.RTT_BSP }} (push) Has been cancelled
RT-Thread BSP Static Build Check / collect-artifacts (push) Has been cancelled

This commit is contained in:
CYFS
2026-05-16 21:52:06 +08:00
committed by Rbb666
parent 89f6931c9a
commit 630f4fa7a3
+49
View File
@@ -48,6 +48,54 @@ Projects = []
Rtt_Root = ''
Env = None
def _as_unicode(value):
try:
unicode
except NameError:
return value if isinstance(value, str) else str(value)
if isinstance(value, unicode):
return value
for encoding in (sys.getfilesystemencoding(), 'utf-8'):
if not encoding:
continue
try:
return value.decode(encoding)
except (AttributeError, UnicodeDecodeError):
pass
return unicode(value)
def _check_invalid_option_dashes():
# Reject command line options typed with Unicode dash lookalikes.
invalid_dashes = (
u'\u2010', u'\u2011', u'\u2012', u'\u2013', u'\u2014',
u'\u2015', u'\u2212', u'\ufe58', u'\ufe63', u'\uff0d',
)
entries = []
entries.extend((key, value) for key, value in ARGUMENTS.items())
entries.extend((target, None) for target in COMMAND_LINE_TARGETS)
for key, value in entries:
option = _as_unicode(key)
normalized = option
for dash in invalid_dashes:
normalized = normalized.replace(dash, u'-')
if option != normalized and normalized.startswith(u'-'):
if value is not None:
display = u'%s=%s' % (option, _as_unicode(value))
hint = u'%s=%s' % (normalized, _as_unicode(value))
else:
display = option
hint = normalized
print("Invalid command line option: %s" % display)
print("Please use ASCII '-' instead: %s" % hint)
sys.exit(1)
def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = []):
global BuildOptions
@@ -56,6 +104,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
global Rtt_Root
AddOptions()
_check_invalid_option_dashes()
Env = env
# export the default environment