summaryrefslogtreecommitdiff
path: root/appl/acme/file.m
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2006-12-22 17:07:39 +0000
committerCharles.Forsyth <devnull@localhost>2006-12-22 17:07:39 +0000
commit37da2899f40661e3e9631e497da8dc59b971cbd0 (patch)
treecbc6d4680e347d906f5fa7fca73214418741df72 /appl/acme/file.m
parent54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff)
20060303a
Diffstat (limited to 'appl/acme/file.m')
-rw-r--r--appl/acme/file.m40
1 files changed, 40 insertions, 0 deletions
diff --git a/appl/acme/file.m b/appl/acme/file.m
new file mode 100644
index 00000000..7e68e40b
--- /dev/null
+++ b/appl/acme/file.m
@@ -0,0 +1,40 @@
+Filem : module {
+ PATH : con "/dis/acme/file.dis";
+
+ init : fn(mods : ref Dat->Mods);
+
+ File : adt {
+ buf : ref Bufferm->Buffer; # the data
+ delta : ref Bufferm->Buffer; # transcript of changes
+ epsilon : ref Bufferm->Buffer; # inversion of delta for redo
+ elogbuf: ref Bufferm->Buffer; # log of pending editor changes
+ elog: Editlog->Elog; # current pending change
+ name : string; # name of associated file
+ qidpath : big; # of file when read
+ mtime : int; # of file when read
+ dev : int; # of file when read
+ unread : int; # file has not been read from disk
+ editclean: int; # mark clean after edit command
+ seq : int; # if seq==0, File acts like Buffer
+ mod : int;
+ curtext : cyclic ref Textm->Text; # most recently used associated text
+ text : cyclic array of ref Textm->Text; # list of associated texts
+ ntext : int;
+ dumpid : int; # used in dumping zeroxed windows
+
+ addtext : fn(f : self ref File, t : ref Textm->Text) : ref File;
+ deltext : fn(f : self ref File, t : ref Textm->Text);
+ insert : fn(f : self ref File, n : int, s : string, m : int);
+ delete : fn(f : self ref File, m : int, n : int);
+ loadx : fn(f : self ref File, p : int, fd : ref Sys->FD) : int;
+ setname : fn(f : self ref File, s : string, n : int);
+ undo : fn(f : self ref File, p : int, q : int, r : int) : (int, int);
+ mark : fn(f : self ref File);
+ reset : fn(f : self ref File);
+ close : fn(f : self ref File);
+ undelete : fn(f : self ref File, b : ref Bufferm->Buffer, m : int, n : int);
+ uninsert : fn(f : self ref File, b : ref Bufferm->Buffer, m : int, n : int);
+ unsetname : fn(f : self ref File, b : ref Bufferm->Buffer);
+ redoseq : fn(f: self ref File): int;
+ };
+};