From 7a0b7781143f194a5663e834a173cadb97fb9abc Mon Sep 17 00:00:00 2001 From: Uladzimir Karpenka Date: Sun, 10 May 2026 16:43:34 +0300 Subject: [PATCH] fix Windows locale: force decimal dot in JSON state message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Format() used the system locale decimal separator, so on Russian/Eastern European Windows smeter_dbm and float fields got commas ("−87,5"), producing invalid JSON that JS silently dropped — breaking S-meter and frequency display. Co-Authored-By: Claude Sonnet 4.6 --- WebServer.pas | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WebServer.pas b/WebServer.pas index 50f45da..a55bd4a 100644 --- a/WebServer.pas +++ b/WebServer.pas @@ -1168,7 +1168,11 @@ function TWebServer.BuildStateJson: string; const MODE_N: array[0..7] of string = ('LSB','USB','DSB','CWL','CWU','FM','AM','SAM'); +var + FS: TFormatSettings; begin + FS := DefaultFormatSettings; + FS.DecimalSeparator := '.'; FStateLock.Enter; try Result := Format( @@ -1204,7 +1208,7 @@ begin FAttnIdx, BoolToStr(FTuning, 'true', 'false'), BoolToStr(FDuplex, 'true', 'false') - ]); + ], FS); finally FStateLock.Leave; end;