diff --git a/lib/stdlib.pas b/lib/stdlib.pas index cbd0840..c1da7de 100644 --- a/lib/stdlib.pas +++ b/lib/stdlib.pas @@ -47,7 +47,7 @@ type file = record ateof:boolean; noecho:boolean; (* read chars are not echoed *) raw:boolean; (* turn off backspace processing on input, CR processing on output *) - nointr:boolean); (* turn off keyboard interrupt character processing *) + nointr: boolean); (* turn off keyboard interrupt character processing *) IODiskFile: (volumeid: integer;fileno: integer; filpos:integer; bufStart:integer; size:integer; sizeExtents:integer; @@ -480,9 +480,6 @@ end; That means you cannot use pos to search inside a string literal. Hopefully this is not something you want to do. *) - -(* TODO: UCSD-Pascal and TP3.0 specs say, searched string - is a string expression so cannot be var parameter *) function pos(substr:string;var s:string):integer; var substrlen:integer; slen:integer; diff --git a/pcomp/pcomp.pas b/pcomp/pcomp.pas index 8936f7a..205ee3f 100644 --- a/pcomp/pcomp.pas +++ b/pcomp/pcomp.pas @@ -1,6 +1,4 @@ (* Copyright 2021-2024 Sebastian Lederer. See the file LICENSE.md for details *) -{$H384} -{$S64} program PascalCompiler; {$R+} {$!}{$ifdef FPC}uses math,crt;{$endif} diff --git a/progs/editor.pas b/progs/editor.pas index d6ec563..070aaed 100644 --- a/progs/editor.pas +++ b/progs/editor.pas @@ -137,8 +137,7 @@ end; procedure getScreenSize; var c:char; begin - (* empty keyboard buffer to make sure GetTermSize - can read the response from the terminal *) + (* empty keyboard buffer *) while conavail do read(con, c); GetTermSize(screenW, screenH); @@ -1662,10 +1661,11 @@ end; procedure gotoLine(l:integer); begin + if l < 1 then + l := 1 + else if l > lineCount then l := lineCount; - if l < 1 then - l := 1; topY := l - (screenH div 2); if topY < 1 then @@ -1713,7 +1713,7 @@ var error:integer; begin success := true; if isModified then - writeFile(success); + save; if success then begin if isAsmFile(filename) then diff --git a/utils/tdrimg.py b/utils/tdrimg.py index 0c9622a..38308ff 100644 --- a/utils/tdrimg.py +++ b/utils/tdrimg.py @@ -239,7 +239,7 @@ def listvolumes(img): return firstvolume -def listdir(img, part, verbose=False, deleted=False): +def listdir(img, part, verbose=False): print("Directory of {}:".format(part.name)) slotno = 0 done = False @@ -247,8 +247,6 @@ def listdir(img, part, verbose=False, deleted=False): slot = getdirslot(img, part, slotno) if (slot.flags & SlotFirst): print(slot.name, slot.sizeBytes, slotno) - elif deleted and (slot.flags & SlotDeleted): - print(slot.name, slot.sizeBytes, slotno, slot.generation) else: if verbose: print(flags2str(slot.flags)) @@ -274,21 +272,6 @@ def findfile(img, part, name): return None -def finddeleted(img, part, name, gen): - slotno = 0 - done = False - while not done: - slot = getdirslot(img, part, slotno) - if slot.flags & SlotDeleted: - if slot.name == name and slot.generation == gen: - return slotno - slotno += 1 - if (slot.flags & SlotEndScan) or (slotno >= part.dirSize): - done = True - - return None - - def readfile(img, part, slotno): pos = part.startBlock * 512 + slotno * part.extentSize dirslot = getdirslot(img, part, slotno) @@ -334,24 +317,6 @@ def readfromimg(img, pathname,outfilepath): f.write(data) -def recoverfromimg(img, pathname, gen, outfilepath): - vol, filename = parsepath(img, pathname) - if vol is None: - return - - listdir(img, vol, deleted=True) - - slotno = finddeleted(img, vol, filename, gen) - if slotno is None: - print("File", filename,"not found with generation no", gen) - return - - data = readfile(img, vol, slotno) - - with open(outfilepath, "wb") as f: - f.write(data) - - def writetoimg(img, pathname, infilepath): vol, filename = parsepath(img, pathname) if vol is None: @@ -590,9 +555,6 @@ if __name__ == "__main__": if sys.argv[1] == "get": f = open(sys.argv[2], "rb") readfromimg(f, sys.argv[3], sys.argv[4]) - elif sys.argv[1] == "recover": - f = open(sys.argv[2], "rb") - recoverfromimg(f, sys.argv[3], int(sys.argv[4]), sys.argv[5]) elif sys.argv[1] == "put": imgfile = open(sys.argv[2], "r+b") infilepath = sys.argv[3]