home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD2.bin
/
bbs
/
dev
/
oberon-a-1.4ß.lha
/
Oberon-A
/
source
/
FPE
/
FPE.mod
< prev
next >
Wrap
Text File
|
1994-08-08
|
5KB
|
198 lines
(***************************************************************************
$RCSfile: FPE.mod $
Description: Frank's Programming Environment
A programming utility designed to integrate seperate
programming tools (editor, compiler, linker, etc.) into a
single system. It also provides a simple source code
manager.
Requires: arp.library and intuisup.library
Created by: fjc (Frank Copeland)
$Revision: 1.9 $
$Author: fjc $
$Date: 1994/08/08 16:16:03 $
Copyright © 1993-1994, Frank Copeland.
This file is part of FPE.
See FPE.doc for conditions of use and distribution.
Log entries are at the end of the file.
***************************************************************************)
MODULE FPE;
(*
** $C= CaseChk $I= IndexChk $L= LongAdr $N- NilChk
** $P- PortableCode $R= RangeChk $S= StackChk $T= TypeChk
** $V= OvflChk $Z= ZeroVars
**
** Compiler NIL checking is replaced by ASSERTs at the appropriate places.
*)
IMPORT
Exec, Dos, ASL, ARP, Args, IU := IntuiUtil, ISup := IntuiSup, Data,
FPEDlg, Errors, SYS := SYSTEM;
CONST
VersionTag = "$VER: FPE 1.6 (26.7.1994)";
VAR startDir : Dos.FileLockPtr;
(*------------------------------------*)
PROCEDURE* Cleanup ();
BEGIN (* Cleanup *)
IF startDir # NIL THEN startDir := Dos.base.CurrentDir (startDir) END
END Cleanup;
(*------------------------------------*)
PROCEDURE Init ();
VAR
programName : Exec.STRPTR;
programNameIndex : INTEGER;
process : Dos.ProcessPtr;
dirLength : LONGINT;
ignore : Dos.FileLockPtr;
result : LONGINT;
BEGIN (* Init *)
startDir := NIL;
SYS.SETCLEANUP (Cleanup);
ASL.OpenLib (FALSE);
ISup.OpenLib (TRUE);
IF (Dos.base.version < 37) OR (ASL.base = NIL) THEN
ARP.OpenLib (TRUE);
END;
process := SYS.VAL (Dos.ProcessPtr, Exec.base.FindTask (NIL));
startDir := process.currentDir;
Data.Init();
FPEDlg.Init();
IF ~Args.IsCLI THEN
IF Args.NumArgs = 0 THEN
Errors.Abort( "FPE - too few arguments ?" );
ELSIF Args.NumArgs = 1 THEN
programNameIndex := 0;
Data.currentDir := Dos.base.DupLock (Args.ArgList [0].lock);
ELSIF Args.NumArgs = 2 THEN
programNameIndex := 1;
Data.currentDir := Dos.base.DupLock (Args.ArgList [1].lock);
ELSE
Errors.Abort( "FPE - too many arguments" );
END; (* IF *)
programName := Args.ArgList [programNameIndex].name;
IF programName = NIL THEN
Data.programName := "";
ELSE
COPY (programName^, Data.programName)
END; (* ELSE *)
ELSE
IF Args.argc = 1 THEN
programNameIndex := 0;
ELSIF Args.argc = 2 THEN
programNameIndex := 1;
ELSIF Args.argc > 2 THEN
Errors.Abort( "FPE - too many arguments" );
END; (* IF *)
IF Dos.base.version >= 37 THEN
programName := Dos.base.FilePart (Args.argv [programNameIndex]^)
ELSE
programName := ARP.base.BaseName (Args.argv [programNameIndex]^)
END;
IF (programName = NIL) OR (SYS.STRLEN (programName^) = 0) THEN
dirLength := SYS.STRLEN (Args.argv [programNameIndex]^)
ELSE
dirLength :=
SYS.STRLEN
(Args.argv [programNameIndex]^) - SYS.STRLEN (programName^);
END; (* ELSE *)
IF dirLength > 0 THEN
Args.argv [programNameIndex] [dirLength - 1] := 0X;
Data.currentDir :=
Dos.base.Lock
(Args.argv^ [programNameIndex]^, Dos.sharedLock);
ELSE
Data.currentDir := Dos.base.DupLock (startDir);
END; (* IF *)
IF programName = NIL THEN
Data.programName := "";
ELSE
COPY (programName^, Data.programName)
END; (* ELSE *)
END; (* IF *)
ignore := Dos.base.CurrentDir (Data.currentDir);
IF Dos.base.version >= 37 THEN
IF
Dos.base.NameFromLock
(Data.currentDir, Data.currentPath, LEN(Data.currentPath) - 1)
THEN END
ELSE
result := ARP.base.PathName (Data.currentDir, Data.currentPath, 10 )
END
END Init;
(*------------------------------------*)
PROCEDURE Main ();
BEGIN (* Main *)
FPEDlg.Open ();
FPEDlg.Start ();
END Main;
BEGIN (* FPE *)
Init();
Main();
END FPE.
(***************************************************************************
$Log: FPE.mod $
Revision 1.9 1994/08/08 16:16:03 fjc
Release 1.4
Revision 1.8 1994/06/21 22:11:28 fjc
*** empty log message ***
Revision 1.7 1994/06/17 17:26:27 fjc
- Updated for release
Revision 1.6 1994/06/09 13:35:18 fjc
- Bumped version tag.
Revision 1.5 1994/06/04 23:49:52 fjc
- Changed to use new Amiga interface
Revision 1.4 1994/05/19 23:46:58 fjc
- Updated VersionTag
Revision 1.3 1994/05/12 21:26:09 fjc
- Prepared for release
Revision 1.2 1994/01/24 14:33:33 fjc
Changed version control header
Revision 1.1 1994/01/15 17:32:38 fjc
Start of revision control
0.6 (06-Sep-93) General code rework and tidy-up
Changed the way module Data handles tools.
Changed the tool dialog to conform.
General improvements.
0.5 (25-Jul-93) First Oberon version, renamed to FPE.
0.0 - 0.4 Early versions written in Modula 2 and
named M2Org.
***************************************************************************)