use the new flexcat's source description file
[AROS.git] / tools / flexcat / src / sd / Modula2Mod.sd
blob487df91cf72ecb377abe915bbdf4edecb9947880
1 ##rem $Id: Modula2Mod.sd 253 2014-02-18 11:15:58Z damato $
2 ##shortstrings
3 ##stringtype Oberon
4 IMPLEMENTATION MODULE %bLocale ;
6 (****************************************************
8    This file was created automatically by '%fv'
9    from "%f0".
11    Do NOT edit by hand!
13 ****************************************************)
15 FROM SYSTEM   IMPORT  ADR, ADDRESS, TAG ;
16 FROM UtilityD IMPORT  tagDone ;
18 IMPORT  ll  : OptLocaleL,
19         ld  : LocaleD ;
21 CONST
22   builtinlanguage = %l ;
23   version = %v ;
25 VAR
26   catalog    : ld.CatalogPtr ;
28 TYPE
29   AppString = RECORD
30      id  : LONGINT ;
31      str : ld.StrPtr ;
32   END ;
34   AppStringArray = ARRAY [0..%n-1] OF AppString ;
36 CONST
37   AppStrings = AppStringArray  {
38     AppString{id : %i, str : ADR(%iStr)}%(,)
39   } ;
41 (*/// "CloseCatalog()" *)
43 PROCEDURE CloseCatalog() ;
45 BEGIN
46   IF catalog # NIL THEN
47     ll.CloseCatalog(catalog) ;
48     catalog := NIL
49   END;
50 END CloseCatalog ;
52 (*\\\*)
54 (*/// "OpenCatalog(loc : ld.LocalePtr ; language : ARRAY OF CHAR) ;" *)
56 PROCEDURE OpenCatalog(loc : ld.LocalePtr ; language : ARRAY OF CHAR) ;
58 VAR
59    tagPtr : ADDRESS ;
60    tags   : ARRAY [0..7] OF LONGINT ;
62 BEGIN
63   CloseCatalog() ;
64   IF (catalog = NIL) & (ll.localeBase # NIL) THEN
65     IF language[0] # "\o" THEN
66       tagPtr := TAG(tags, ld.ocBuiltInLanguage, ADR(builtinlanguage),
67                           ld.ocLanguage,        ADR(language),
68                           ld.ocVersion,         version,
69                           tagDone) ;
70      ELSE
71       tagPtr := TAG(tags, ld.ocBuiltInLanguage, ADR(builtinlanguage),
72                           ld.ocVersion,         version,
73                           tagDone) ;
74     END (* IF *) ;
75     catalog := ll.OpenCatalogA(loc, ADR("%b.catalog"), tagPtr) ;
76   END (* IF *) ;
77 END OpenCatalog ;
79 (*\\\*)
81 (*/// "GetString(num : LONGINT) : ld.StrPtr" *)
83 PROCEDURE GetString(num : LONGINT) : ld.StrPtr ;
85 VAR
86   i       : LONGINT ;
87   default : ld.StrPtr ;
89 BEGIN
90   i := 0 ;
92   WHILE (i < %n) AND (AppStrings[i].id # num) DO
93     INC(i)
94   END (* WHILE *) ;
96   IF i # %n THEN
97     default := AppStrings[i].str ;
98    ELSE
99     default := NIL ;
100   END (* IF *) ;
102   IF catalog # NIL THEN
103     RETURN ll.GetCatalogStr(catalog, num, default) ;
104    ELSE
105     RETURN default ;
106   END (* IF *) ;
107 END GetString ;
109 (*\\\*)
111 BEGIN
113 CLOSE
115   CloseCatalog() ;
117 END %bLocale .