修复 desi 和 conc 命令参数解析

This commit is contained in:
whyour 2024-07-25 20:53:11 +08:00
parent eddd258614
commit 0da8155bac
2 changed files with 7 additions and 2 deletions

View File

@ -18,7 +18,11 @@ function expandRange(rangeStr, max) {
const rangeMatch = part.match(/^(\d+)([-~_])(\d+)$/);
if (rangeMatch) {
const [, start, , end] = rangeMatch.map(Number);
return Array.from({ length: end - start + 1 }, (_, i) => start + i);
const step = start < end ? 1 : -1;
return Array.from(
{ length: Math.abs(end - start) + 1 },
(_, i) => start + i * step,
);
}
return Number(part);
});

View File

@ -37,7 +37,8 @@ def expand_range(range_str, max_value):
range_match = re.match(r"^(\d+)([-~_])(\d+)$", part)
if range_match:
start, _, end = map(try_parse_int, range_match.groups())
result.extend(range(start, end + 1))
step = 1 if start < end else -1
result.extend(range(start, end + step, step))
else:
result.append(int(part))