Prechádzať zdrojové kódy

Fix: string.format ('u' format)

AnnulusGames 1 rok pred
rodič
commit
9129dba16e
1 zmenil súbory, kde vykonal 8 pridanie a 3 odobranie
  1. 8 3
      src/Lua/Standard/Text/FormatFunction.cs

+ 8 - 3
src/Lua/Standard/Text/FormatFunction.cs

@@ -195,10 +195,15 @@ public sealed class FormatFunction : LuaFunction
                         {
                             case 'i':
                             case 'd':
+                                formattedValue = precision < 0
+                                    ? integer.ToString()
+                                    : integer.ToString($"D{precision}");
+                                break;
                             case 'u':
+                                var uInteger = (ulong)x;
                                 formattedValue = precision < 0 
-                                    ? integer.ToString() 
-                                    : integer.ToString($"D{precision}");
+                                    ? uInteger.ToString() 
+                                    : uInteger.ToString($"D{precision}");
                                 break;
                             case 'c':
                                 formattedValue = ((char)integer).ToString();
@@ -218,7 +223,7 @@ public sealed class FormatFunction : LuaFunction
                                 break;
                         }
 
-                        if (plusSign && integer >= 0)
+                        if (plusSign && (specifier is 'u' || integer >= 0))
                         {
                             formattedValue = $"+{formattedValue}";
                         }