chore(syntax): VET R12 下标 while -> for range(20 处)

i = 0 + while i < N: + 尾自增 -> or i in range(N):(8 文件 / 20 处;含 <= -> range(EXPR + 1)、带注解初始化、尾 i = i + 1)。余 19 处经守卫判定不可安全改写(复合条件 6、尾部非自增 7、体内重绑定/continue 2、循环后仍被读取 3、无整数初始化 1)。
This commit is contained in:
TermiNexus committed 2026-10-05 21:22:45 +08:00
1 parent 251c679bb2
commit af05cd0b53
8 files changed
+20 -60

No files matched your search

+2 -6
View File
@@ -90,11 +90,9 @@ def CacheDisp(Idx: int) -> str:
# ============================================================
def CacheFind(ExeAnsi: str) -> int:
i: int = 0
while i < Cache_Count:
for i in range(Cache_Count):
if string.strcmp(Cache_Exe[i], ExeAnsi) == 0:
return i
i += 1
return -1
@@ -131,10 +129,8 @@ def RemoveAt(Idx: int) -> int:
# 清空内存表(释放全部字段副本)。用于每轮开始前的"重读 cache.json"。
def ClearCache():
global Cache_Count
j: int = 0
while j < Cache_Count:
for j in range(Cache_Count):
FreeEntry(j)
j += 1
Cache_Count = 0
+1 -3
View File
@@ -179,13 +179,11 @@ def WatchVerbose() -> int:
# ver 子命令专用:ver 不解析开关(目标路径固定在 sys._argv[2]),
# 只要 argv 中出现 --verbose 即视为要求详细日志(argv 起点与 scan 一致,从下标 2 扫)。
def HasVerbose() -> int:
i: int = 2
while i < sys._argc:
for i in range(2, sys._argc):
A: str = sys._argv[i]
if A is not None:
if string.strcmp(A, "--verbose") == 0:
return 1
i += 1
return 0
+4 -12
View File
@@ -119,11 +119,9 @@ def AddCommonDirForce(Path: str) -> int:
global Common_Dir_Count
if Path is None:
return 0
i: int = 0
while i < Common_Dir_Count:
for i in range(Common_Dir_Count):
if string.strcmp(Common_Directory[i], Path) == 0:
return 0
i += 1
if Common_Dir_Count >= COMMON_DIR_CAPACITY:
VLog.LogFmt1(" 警告: 常用目录表已满 (%d),已忽略该条\n", sizet(COMMON_DIR_CAPACITY))
return 0
@@ -153,8 +151,7 @@ def AddFixedDriveProgramFiles() -> int:
VLog.LogFmt1(" 警告: GetLogicalDrives 失败 (win32 err=%u)\n", wb.GetLastError())
return 0
Added: int = 0
Letter: int = 0
while Letter < 26:
for Letter in range(26):
if (Mask & (uint32(1) << uint32(Letter))) != 0:
Root: bytes = _mbuddy.alloc(DRIVE_ROOT_CAP)
if Root is not None:
@@ -176,7 +173,6 @@ def AddFixedDriveProgramFiles() -> int:
string.strcpy(Pfx, r"Q:\Program Files (x86)")
Pfx[0] = char(65 + Letter)
Added += AddCommonDir(str(Pfx))
Letter += 1
return Added
@@ -272,10 +268,8 @@ def PrintCommonDirs() -> int:
if Common_Dir_Count <= 0:
VLog.VerboseStr(" (表为空)\n")
return 1
i: int = 0
while i < Common_Dir_Count:
for i in range(Common_Dir_Count):
VLog.VerboseFmtIS(" [%d] %s\n", sizet(i), Common_Directory[i])
i += 1
VLog.VerboseFmt1(" 合计 %d 个常用目录\n", sizet(Common_Dir_Count))
return 0
@@ -291,12 +285,10 @@ def BuildTable() -> int:
VLog.VerboseFmt1(" 目录表来源: 自动表 (%u 条)\n", sizet(Common_Dir_Count))
else:
# 强制替换:完全不做自动构建,表 = --path 序列(保序;去重由 AddCommonDirForce)
i: int = 0
while i < Override_Count:
for i in range(Override_Count):
if VFs.PathIsDir(Override_Dir[i]) == 0:
VLog.LogFmtS1(" 警告: --path 不存在或非目录,跳过: %s\n", Override_Dir[i])
else:
AddCommonDirForce(Override_Dir[i])
i += 1
VLog.VerboseFmt1(" 目录表来源: 覆盖表 (%u 条)\n", sizet(Common_Dir_Count))
return PrintCommonDirs()
+3 -9
View File
@@ -73,10 +73,8 @@ def CopyRaw(Dst: bytes, Cap: int, Src: str) -> int:
if n + 1 > sizet(Cap):
Dst[0] = 0
return 0
i: sizet = 0
while i < n:
for i in range(n):
Dst[i] = Src[i]
i += 1
Dst[n] = 0
return 1
@@ -90,10 +88,8 @@ def DupStr(S: str) -> str:
b: bytes = _mbuddy.alloc(n + 1)
if b is None:
return None
i: sizet = 0
while i < n:
for i in range(n):
b[i] = S[i]
i += 1
b[n] = 0
return str(b)
@@ -142,11 +138,9 @@ def JoinPath(Out: bytes, Cap: int, Parent: str, Child: str) -> int:
if need_sep != 0:
Out[i] = '\\'
i += 1
j: sizet = 0
while j < cl:
for j in range(cl):
Out[i] = Child[j]
i += 1
j += 1
Out[i] = 0
return 1
+2 -6
View File
@@ -657,8 +657,7 @@ def ParseOkOne(Buf: bytes, Len: int) -> int:
if Buf is None or Len <= 0:
return 0
ub: BYTEPTR = BYTEPTR(Buf)
i: int = 0
while i < Len:
for i in range(Len):
if int(ub[i]) == 34: # '"'
KeyPos: int = 0
if i == 0:
@@ -689,7 +688,6 @@ def ParseOkOne(Buf: bytes, Len: int) -> int:
nx: int = int(ub[j + 1])
if nx < 48 or nx > 57: # 后随非数字 ⇒ 值恰为 1
return 1
i += 1
return 0
@@ -1049,10 +1047,8 @@ def GuardPumpStream(hIn: wb.HANDLE, Kind: int) -> int:
if Br == 0:
return GUARD_PUMP_EOF
ub: BYTEPTR = BYTEPTR(Guard_Chunk)
i: int = 0
while i < int(Br):
for i in range(int(Br)):
GuardPendPut(int(ub[i])) # ③ 先整批入队(Br <= N <= GUARD_PEND_CAP)
i += 1
if GuardFeedPending() != 0: # ③ 再喂 FIFO;剩余字节留给下次调用
return 1
return 0
+2 -6
View File
@@ -128,10 +128,8 @@ def JWrite(S: str) -> int:
n: sizet = string.strlen(S)
if sizet(Json_Len) + n + 1 > sizet(JSON_BUF_CAP):
return 0
i: sizet = 0
while i < n:
for i in range(n):
Json_Buf[Json_Len + int(i)] = S[i]
i += 1
Json_Len += int(n)
Json_Buf[Json_Len] = 0
return 1
@@ -224,8 +222,7 @@ def EmitJson() -> int:
Count: int = 0
if JWrite("[") == 0:
return 0
i: int = 0
while i < VCache.CacheCount():
for i in range(VCache.CacheCount()):
# 条目级回收:工作池峰值 = 单条(节点 + 字符串副本 + 库的 4096 字节输出缓冲)
Json_Pool.reset()
Txt: str = BuildEntry(i)
@@ -244,7 +241,6 @@ def EmitJson() -> int:
JWrite(",")
JWrite(Txt)
Count += 1
i += 1
if JWrite("]") == 0:
Truncated = 1
if JWrite("\n") == 0:
+4 -12
View File
@@ -102,10 +102,8 @@ def ReadU32(Buf: BYTEPTR, Off: int) -> uint32:
# 复制 8 字节节名并补 NUL,写入 Out(调用方保证 >=9 字节)
def CopySectionName(Buf: BYTEPTR, Off: int, Out: bytes):
k: int = 0
while k < 8:
for k in range(8):
Out[k] = Buf[Off + k]
k += 1
Out[8] = 0
@@ -200,14 +198,12 @@ def ParsePeHead(Buf: bytes, Got: sizet, OutArch: bytes, ArchCap: int) -> int:
if sizet(sec_off) + sizet(nsec) * sizet(SEC_ENTRY_SIZE) > Got:
Pe_DbgLastRc = 6
return 6 # 节表超出头部窗口(极端多节 PE,跳过)
i: int = 0
while i < int(nsec):
for i in range(int(nsec)):
entry: int = sec_off + i * SEC_ENTRY_SIZE
if string.strncmp(str(Buf + entry + SEC_NAME_OFF), VERSION_SECTION, 8) == 0:
Pe_RawPtr = ReadU32(ub, entry + SEC_RAWPTR_OFF)
Pe_RawSize = ReadU32(ub, entry + SEC_RAWSIZE_OFF)
return 0
i += 1
Pe_DbgLastRc = 7
return 7
@@ -403,15 +399,13 @@ def Phase1VersionSection(Target: str) -> int:
found: int = 0
raw_ptr: uint32 = 0
raw_size: uint32 = 0
i: int = 0
while i < int(nsec):
for i in range(int(nsec)):
entry: int = sec_off + i * SEC_ENTRY_SIZE
if string.strncmp(str(buf + entry + SEC_NAME_OFF), VERSION_SECTION, 8) == 0:
found = 1
raw_size = ReadU32(ub, entry + SEC_RAWSIZE_OFF)
raw_ptr = ReadU32(ub, entry + SEC_RAWPTR_OFF)
break
i += 1
if found == 0:
VLog.LogFmtS1(" 未找到 %s 节\n", VERSION_SECTION)
@@ -419,11 +413,9 @@ def Phase1VersionSection(Target: str) -> int:
VLog.LogStr(" 实际节名:\n")
name8: bytes = stdlib.malloc(9)
if name8 is not None:
j: int = 0
while j < int(nsec):
for j in range(int(nsec)):
CopySectionName(ub, sec_off + j * SEC_ENTRY_SIZE, name8)
VLog.LogFmtS1(" %s\n", str(name8))
j += 1
stdlib.free(t.CPtr(name8))
stdlib.free(t.CPtr(buf))
return 1
+2 -6
View File
@@ -459,8 +459,7 @@ def RunScanRound(CachePath: str, RoundIdx: int) -> int:
VGuard.PollIpc()
Revalidated: int = RevalidateDiscovered()
Dirs: int = 0
k: int = 0
while k < VDirs.DirCount():
for k in range(VDirs.DirCount()):
AnsiDir: bytes = _mbuddy.alloc(VFs.PATH_BUF_CAP)
if AnsiDir is not None:
VFs.Utf8ToAnsi(VDirs.DirAt(k), AnsiDir, VFs.PATH_BUF_CAP)
@@ -475,7 +474,6 @@ def RunScanRound(CachePath: str, RoundIdx: int) -> int:
# 逐条回显属过程细节,仅在 --verbose 时给出(--path 的显式告警在 VDirs.BuildTable)
VLog.VerboseFmtS1(" 跳过(不存在或非目录): %s\n", str(AnsiDir))
_mbuddy.free(t.CPtr(AnsiDir))
k += 1
# 本轮被 PE/.PRVERSN 过滤掉的候选:前 REJECT_LOG_MAX 条已在 HandleCandidate 逐条打印,
# 这里只补一行汇总(不逐条重打)——逐条与汇总均属过程细节,仅 --verbose 时给出
@@ -599,8 +597,7 @@ def RunSearchPathsQuery() -> int:
Ansi: bytes = _mbuddy.alloc(VFs.PATH_BUF_CAP)
if Ansi is None:
VLog.LogStr(" 警告: 查询缓冲分配失败,仅列出路径(不标注是否会被扫盘跳过)\n")
i: int = 0
while i < N:
for i in range(N):
Path: str = VDirs.DirAt(i)
Skip: int = 0 # 1=扫盘时会跳过;Ansi 不可用时保持 0(不标注)
if Ansi is not None:
@@ -611,7 +608,6 @@ def RunSearchPathsQuery() -> int:
VLog.LogFmtIS(" [search] [%u] %s (不存在或非目录,扫盘时会跳过)\n", sizet(i), Path)
else:
VLog.LogFmtIS(" [search] [%u] %s\n", sizet(i), Path)
i += 1
if Ansi is not None:
_mbuddy.free(t.CPtr(Ansi))
VLog.LogFmt1(" [search] 合计 %u 条;未扫盘、未读写缓存,查询到此结束\n", sizet(N))