@@ -17,8 +17,8 @@ public static class Regexp
1717 private static readonly Regex _Xstr = new ( "XSTR\\ s*\\ (\\ s*(\" .*?\" )\\ s*,\\ s*(-?\\ d+)\\ s*\\ )" , RegexOptions . Singleline | RegexOptions . Compiled ) ;
1818 public static Regex Xstr { get => _Xstr ; }
1919
20- // don't select entries in comment...
21- private static readonly Regex _NoAltNames = new ( @"([^;]\$Name:[ \t]*(.*?)\r\n(?:[ \t]*\+nocreate[ \t]*\r\n)?)(((?!\$Alt Name|\+nocreate).)*?\r\n)" , RegexOptions . Singleline | RegexOptions . Compiled ) ;
20+ // don't select entries in comment... but take into account comments between $Name and +nocreate
21+ private static readonly Regex _NoAltNames = new ( @"([^;]\$Name:[ \t]*(.*?)\r\n(?:;.*?\r\n)?(?: [ \t]*\+nocreate[ \t]*\r\n)?)(((?!\$Alt Name|\+nocreate).)*?\r\n)" , RegexOptions . Singleline | RegexOptions . Compiled ) ;
2222 public static Regex NoAltNames { get => _NoAltNames ; }
2323
2424 private static readonly Regex _AlternateTypes = new ( @"#Alternate Types:.*?#end\r\n\r\n" , RegexOptions . Singleline | RegexOptions . Compiled ) ;
@@ -163,7 +163,7 @@ public static class Regexp
163163 private static readonly Regex _ShipNames = new ( @"\$Name:(.*)$" , RegexOptions . Compiled | RegexOptions . Multiline ) ;
164164 public static Regex ShipNames { get => _ShipNames ; }
165165
166- private static readonly Regex _Subsystems = new ( @"(\$Subsystem:[ \t]*([^\r\n]*?),[^\r\n]*?\r?\n)(.*?)(?=\$Subsystem:|$)" , RegexOptions . Compiled | RegexOptions . Singleline ) ;
166+ private static readonly Regex _Subsystems = new ( @"(?<!;)( \$Subsystem:[ \t]*([^\r\n]*?),[^\r\n]*?\r?\n)(.*?)(?=\$Subsystem:|$)" , RegexOptions . Compiled | RegexOptions . Singleline ) ;
167167 public static Regex Subsystems { get => _Subsystems ; }
168168
169169 private static readonly Regex _TechDescriptions = new ( @"(\+Tech Description:[ \t]*)(.*?)\r\n" , RegexOptions . Compiled ) ;
0 commit comments