Bringing flexcat 2.15 into the main branch
[AROS.git] / tools / flexcat / src / sd / AmigaOberon.sd
blob8249c3ac2cb0906e024cff82597c9599331b8cdf
1 ##rem $Id: AmigaOberon.sd 253 2014-02-18 11:15:58Z damato $
2 ##stringtype Oberon
3 ##shortstrings
5 (****************************************************************
7    This file was created automatically by `%fv'
8    Do NOT edit by hand!
9    AmigaOberon source description (C) 1994 by Albert Weinert
10    Using with AmigaOberon Interfaces for AmigaOS Release 3.1
12    Application: %b
13    Language   : %l
14    Version    : %v
15    Description: %f0
17 ****************************************************************)
19 MODULE %o3;
21 IMPORT
22   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
24 CONST
25   builtinlanguage = %l;
26   version = %v;
28   %i* = %d;\n  %iSTR = %s;\n
30 TYPE
31   AppString = STRUCT
32      id  : LONGINT;
33      str : e.LSTRPTR;
34   END;
35   AppStringArray = ARRAY %n OF AppString;
37 CONST
38   AppStrings = AppStringArray (
39     %i, y.ADR(%iSTR)%(,)
40   );
42 VAR
43   catalog : lo.CatalogPtr;
45   PROCEDURE CloseCatalog*();
46     BEGIN
47       IF catalog # NIL THEN lo.CloseCatalog (catalog); catalog:=NIL END;
48    END CloseCatalog;
50   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
51     VAR Tag : u.Tags4;
52     BEGIN
53       CloseCatalog();
54       IF (catalog = NIL) & (lo.base # NIL) THEN
55         Tag:= u.Tags4(lo.builtInLanguage, y.ADR(builtinlanguage),
56                       u.skip, u.done,
57                       lo.version, version,
58                       u.done, u.done);
59         IF language # "" THEN
60           Tag[1].tag:= lo.language; Tag[1].data := y.ADR( language );
61         END;
62         catalog := lo.OpenCatalogA (loc, "%b.catalog", Tag);
63       END;
64     END OpenCatalog;
66   PROCEDURE GetString* (num: LONGINT): e.LSTRPTR;
67     VAR
68       i: LONGINT;
69       default: e.LSTRPTR;
70     BEGIN
71       i := 0; WHILE (i < %n) AND (AppStrings[i].id # num) DO INC (i) END;
73       IF i # %n THEN
74       default := AppStrings[i].str;
75       ELSE
76         default := NIL;
77       END;
79       IF catalog # NIL THEN
80         RETURN lo.GetCatalogStr (catalog, num, default^);
81       ELSE
82         RETURN default;
83       END;
84     END GetString;
86 CLOSE
87   CloseCatalog();
88 END %o3.