[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH 1/3] Pascal-RTL: multilang: Defaultsprache
! Pascal-RTL: multilang: Wenn keine Sprache initialisiert ist gibt
FormatNum einen Segfault, weil es get_number von der aktuellen Sprache
aufruft. Beim Start wird jetzt eine Defaultsprache geladen, die auf
deutsche (und englische) Grammatik passt.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
src/modules/pas/lib/tyndur/multilang.pas | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/modules/pas/lib/tyndur/multilang.pas b/src/modules/pas/lib/tyndur/multilang.pas
index 112e2ba..888d9d8 100644
--- a/src/modules/pas/lib/tyndur/multilang.pas
+++ b/src/modules/pas/lib/tyndur/multilang.pas
@@ -54,6 +54,10 @@ implementation
i: integer;
begin
dict := arg;
+ if dict = nil then begin
+ exit(value);
+ end;
+
i := 0;
while dict[i].resstr <> nil do begin
if Pointer(name) = Pointer(dict[i].resstr^.name) then begin
@@ -152,12 +156,30 @@ implementation
exit(Format(s, args));
end;
+function default_get_number(n: integer): integer; cdecl;
+begin
+ if n = 1 then begin
+ exit(0);
+ end else begin
+ exit(1);
+ end;
+end;
var
tmslang_start: PLanguage; external name '__start_tmslang';
tmslang_end: PLanguage; external name '__stop_tmslang';
+ default_lang: TLanguageData;
+
initialization
+ with default_lang do begin
+ lang := 'C';
+ numbers := 2;
+ get_number := @default_get_number;
+ strings := nil;
+ end;
+
+ cur_lang := @default_lang;
lang := @tmslang_start;
num_lang := PPLanguage(@tmslang_end) - PPLanguage(@tmslang_start);
--
1.6.0.2