home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Games
/
WHDLoad
/
Src
/
programs
/
WVer.mod
< prev
Wrap
Text File
|
1996-06-20
|
2KB
|
83 lines
(*
(* :Program. WVer.mod
** :Contents. creates a version-string from input files
** :Author. Bert Jahn
** :EMail. jah@pub.th-zwickau.de
** :Address. Franz-Liszt-Straße 16, Rudolstadt, 07404, Germany
** :History. 0.1 01.06.96
** :Copyright. Public Domain
** :Language. Oberon
** :Translator. Amiga Oberon 3.11 (Includes 40.15)
*)
*)
MODULE WVer;
IMPORT
SYS := SYSTEM,
conv := Conversions,
d := Dos,
ds := DosSupport,
fs := FileSystem;
CONST
version = "$VER: WVer V0.1 (01.06.96) by Bert Jahn";
template = "VERFILE,REVFILE,AUTO/S";
defverfile = ".version";
defrevfile = ".revision";
TYPE
Args = STRUCT (dummy: d.ArgsStruct)
vfile : d.ArgString; (* File contains version *)
rfile : d.ArgString; (* File contains revision *)
auto : d.ArgBool; (* automative increasing revision *)
END;
VAR
rd : d.RDArgsPtr; (* for ReadArgs *)
args : Args;
buffer : ARRAY 256 OF CHAR; (* the comment *)
ver,rev : LONGINT;
file : fs.File;
bool : BOOLEAN;
(* main *)
BEGIN
SYS.SETREG(8,SYS.ADR(version)); (* that the version string will linked *)
IF d.base.lib.version < 37 THEN
HALT(20);
ELSE
rd := d.ReadArgs(template,args,NIL);
IF rd = NIL THEN
ds.PrintFault;
ELSE
IF args.vfile = NIL THEN args.vfile:=SYS.ADR(defverfile); END;
IF args.rfile = NIL THEN args.rfile:=SYS.ADR(defrevfile); END;
IF fs.Open(file,defverfile,FALSE) THEN
IF fs.ReadString(file,buffer) THEN
bool := conv.StringToInt(buffer,ver);
END;
bool := fs.Close(file);
END;
IF fs.Open(file,defrevfile,FALSE) THEN
IF fs.ReadString(file,buffer) THEN
bool := conv.StringToInt(buffer,rev);
END;
bool := fs.Close(file);
END;
IF args.auto # 0 THEN
INC(rev);
conv.IntToStringLeft(rev,buffer);
IF fs.Open(file,defrevfile,TRUE) THEN
bool := fs.WriteString(file,buffer);
bool := fs.Close(file);
END;
END;
d.PrintF("%ld.%ld",ver,rev);
d.FreeArgs(rd);
END
END
END WVer.