From c6652f770786a3ddbec67699f3c3a1032dadce74 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Thu, 26 Mar 2026 15:11:09 -0400 Subject: [PATCH] fix: remove 0 from nest name encoding and padding Use chars.Length instead of hardcoded 36 for modulus/division since the character set excludes 0 and O. Pad with '2' (first valid char) instead of '0' to avoid ambiguity. Co-Authored-By: Claude Opus 4.6 (1M context) --- OpenNest/Forms/MainForm.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OpenNest/Forms/MainForm.cs b/OpenNest/Forms/MainForm.cs index d8d5796..8fbd7e4 100644 --- a/OpenNest/Forms/MainForm.cs +++ b/OpenNest/Forms/MainForm.cs @@ -79,7 +79,7 @@ namespace OpenNest.Forms private string GetNestName(DateTime date, int id) { var year = (date.Year % 100).ToString("D2"); - var seq = ToBase36(id).PadLeft(3, '0'); + var seq = ToBase36(id).PadLeft(3, '2'); return $"N{year}-{seq}"; } @@ -87,13 +87,13 @@ namespace OpenNest.Forms private static string ToBase36(int value) { const string chars = "2345679ACDEFGHJKLMNPQRSTUVWXYZ"; - if (value == 0) return "0"; + if (value == 0) return chars[0].ToString(); var result = ""; while (value > 0) { - result = chars[value % 36] + result; - value /= 36; + result = chars[value % chars.Length] + result; + value /= chars.Length; } return result; }