diff --git a/Source/Bind/EnumProcessor.cs b/Source/Bind/EnumProcessor.cs index 14bf0a41..7f5eae00 100644 --- a/Source/Bind/EnumProcessor.cs +++ b/Source/Bind/EnumProcessor.cs @@ -101,9 +101,10 @@ namespace Bind // Split on IHV names, to ensure that characters appearing after these name are uppercase. var match = Utilities.Acronyms.Match(name); + int offset = 0; // Everytime we insert a match, we must increase offset to compensate. while (match.Success) { - int insert_pos = match.Index + match.Length; + int insert_pos = match.Index + match.Length + offset++; translator.Insert(insert_pos, "_"); match = match.NextMatch(); } @@ -117,7 +118,6 @@ namespace Bind // 4. if current char is lowercase, respect next char case. bool is_after_underscore_or_number = true; bool is_previous_uppercase = false; - int pos = 0; foreach (char c in name) { char char_to_add; diff --git a/Source/Bind/Utilities.cs b/Source/Bind/Utilities.cs index 89cc933f..1bd4fc43 100644 --- a/Source/Bind/Utilities.cs +++ b/Source/Bind/Utilities.cs @@ -74,6 +74,7 @@ namespace Bind RegexOptions.Compiled); public static readonly Regex Acronyms = new Regex(Extensions.ToString() + "|EGL|3TC|DXT|ES|RGBA|BGRA|RGB|BGR|ETC", RegexOptions.Compiled); + #region internal StreamReader OpenSpecFile(string file) internal static StreamReader OpenSpecFile(string folder, string file)