diff --git a/tool/rawstr4c/lib/Generator.rakumod b/tool/rawstr4c/lib/Generator.rakumod index 7c31091..ceac3bb 100644 --- a/tool/rawstr4c/lib/Generator.rakumod +++ b/tool/rawstr4c/lib/Generator.rakumod @@ -80,7 +80,12 @@ my class CVariableNameGenerator { $global-config.get('keep-postfix', 'true').as-bool(); my $name = $section-config.get('name', $title.lc).as-string(); - $name = $name.subst(/\s+/, '_', :g); + # 替换非法字符 + $name = $name.subst(/<-[a..z A..Z 0..9 _]>/, '_', :g); + # 合并连续的下划线 + $name = $name.subst(/_+/, '_', :g); + # 移除结尾的下划线 + $name = $name.subst(/_+$/, ''); # 组装变量名 my $var-name = ""; diff --git a/tool/rawstr4c/lib/Version.rakumod b/tool/rawstr4c/lib/Version.rakumod index 71d7836..b9aba0a 100644 --- a/tool/rawstr4c/lib/Version.rakumod +++ b/tool/rawstr4c/lib/Version.rakumod @@ -10,7 +10,7 @@ unit module Version; -constant VERSION = "0.1.0.1"; +constant VERSION = "0.1.0.2"; constant RELEASE_DATE = "2025/07/14"; constant Maintain_URL = "https://github.com/RubyMetric/chsrc/blob/dev/tool/rawstr4c";