use the new flexcat's source description file
[AROS.git] / tools / flexcat / src / sd / Oberon-A.sd
blob4889b40f337849bbc5d7240ff5bce9a40ca00094
1 ##rem $Id: Oberon-A.sd 253 2014-02-18 11:15:58Z damato $
2 ##stringtype Oberon
3 ##shortstrings
4 MODULE %o3;
6 (****************************************************************
8    This file was created automatically by `%fv'
10    Do NOT edit by hand!
12    Oberon-A source description (C) 1994 by Albert Weinert
13    Using with Oberon-A Interfaces for AmigaOS Release 3.1
15    Application: %b
16    Language   : %l
17    Version    : %v
18    Description: %f0
20 ****************************************************************)
22 (* $P- *)
24 IMPORT
25   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
27 CONST
28   builtinlanguage = %l;
29   version = %v;
31 CONST
32   %i* = %d;
34 TYPE
35   AppString = RECORD;
36      id  : LONGINT;
37      str : e.STRPTR;
38   END;
39   AppStringArray = ARRAY %n OF AppString;
41 VAR
42   AppStrings : AppStringArray;
43   catalog : lo.CatalogPtr;
45   PROCEDURE SetStrings;
46     BEGIN
47       AppStrings[%e].id := %i; AppStrings[%e].str := y.ADR( %s );
48     END SetStrings;
50   PROCEDURE CloseCatalog*();
51     BEGIN
52       IF catalog # NIL THEN lo.base.CloseCatalog (catalog); catalog:=NIL END;
53    END CloseCatalog;
55   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
56     VAR Tag : ARRAY 4 OF u.TagItem;
57     BEGIN
58       CloseCatalog();
59       IF (catalog = NIL) & (lo.base # NIL) THEN
60         Tag[0].tag := lo.ocBuiltInLanguage; Tag[0].data := y.ADR( builtinlanguage );
61         Tag[1].tag := u.tagSkip;          Tag[1].data := y.ADR( language );
62         Tag[2].tag := lo.ocVersion;         Tag[2].data := version;
63         Tag[3].tag := u.tagDone;
65         IF language # "" THEN
66           Tag[1].tag:= lo.ocLanguage;
67         END;
68         catalog := lo.base.OpenCatalogA (loc, "%b.catalog", Tag);
69       END;
70     END OpenCatalog;
72   PROCEDURE GetString* (num: LONGINT): e.STRPTR;
73     VAR
74       i: LONGINT;
75       default: e.STRPTR;
76     BEGIN
77       i := 0; WHILE (i < %n) & (AppStrings[i].id # num) DO INC (i) END;
79       IF i # %n THEN
80         default := AppStrings[i].str;
81       ELSE
82         default := NIL;
83       END;
85       IF catalog # NIL THEN
86         RETURN lo.base.GetCatalogStr (catalog, num, default^);
87       ELSE
88         RETURN default;
89       END;
90     END GetString;
92 BEGIN
93   catalog := NIL;
94   lo.OpenLib( FALSE );
95   SetStrings;
96 END %o3.