stdlib: add nointr procedure
stdlib: give PExec2 and PExec3 more sensible names pcomp: increase heap size
This commit is contained in:
parent
b0c4b664f2
commit
c779cd0d3f
4 changed files with 22 additions and 10 deletions
|
|
@ -240,6 +240,7 @@ procedure freadreal(var v:real;var f:file); external;
|
|||
procedure openchannel(name:filenamestr; var f:file; mode:filemode; var error:integer); external;
|
||||
procedure open(var f:file; name:pathnamestr; mode: filemode); external;
|
||||
procedure noecho(var f:file; noecho:boolean; var old:boolean); external;
|
||||
procedure nointr(var f:file; aBool:boolean; var old:boolean); external;
|
||||
|
||||
procedure intstr(v:integer; fieldWith:integer; var rbuf:string);
|
||||
external;
|
||||
|
|
@ -269,8 +270,8 @@ procedure TextDefault; external;
|
|||
|
||||
procedure PTerm; external; (* from runtime.s *)
|
||||
procedure PExec(prgfile:pathnamestr; var args:PArgVec; argCount:integer;var error:integer); external;
|
||||
procedure PExec2(prgfile:pathnamestr; arg1:string; var error:integer); external;
|
||||
procedure PExec3(prgfile:pathnamestr; arg1, arg2:string; var error:integer); external;
|
||||
procedure PExec1(prgfile:pathnamestr; arg1:string; var error:integer); external;
|
||||
procedure PExec2(prgfile:pathnamestr; arg1, arg2:string; var error:integer); external;
|
||||
function ParamStr(i:integer):string; external;
|
||||
function ParamCount():integer; external;
|
||||
|
||||
|
|
|
|||
|
|
@ -2563,6 +2563,16 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure nointr(var f:file;aBool:boolean;var old:boolean);
|
||||
begin
|
||||
if f.typ <> IOChannel then
|
||||
fileerror(f, IOInvalidOp)
|
||||
else
|
||||
begin
|
||||
old := f.nointr;
|
||||
f.nointr := nointr;
|
||||
end;
|
||||
end;
|
||||
(*
|
||||
implementation of Xorshift algorithm by George Marsaglia,
|
||||
see: Marsaglia, George (July 2003).
|
||||
|
|
@ -2599,6 +2609,7 @@ begin
|
|||
if ord(aChar) <= ord('z') then
|
||||
upcase := chr(ord(aChar) - 32)
|
||||
else
|
||||
upcase := aChar
|
||||
else
|
||||
upcase := aChar;
|
||||
end;
|
||||
|
|
@ -2664,14 +2675,14 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure PExec2(prgfile:pathnamestr; arg1:string; var error:integer);
|
||||
procedure PExec1(prgfile:pathnamestr; arg1:string; var error:integer);
|
||||
var args:PArgVec;
|
||||
begin
|
||||
args[0] := arg1;
|
||||
PExec(prgfile, args, 1, error);
|
||||
end;
|
||||
|
||||
procedure PExec3(prgfile:pathnamestr; arg1, arg2:string; var error:integer);
|
||||
procedure PExec2(prgfile:pathnamestr; arg1, arg2:string; var error:integer);
|
||||
var args:PArgVec;
|
||||
begin
|
||||
args[0] := arg1;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
(* Copyright 2021-2024 Sebastian Lederer. See the file LICENSE.md for details *)
|
||||
{$H384}
|
||||
{$H600}
|
||||
{$S64}
|
||||
program PascalCompiler;
|
||||
{$R+}
|
||||
|
|
|
|||
|
|
@ -324,7 +324,7 @@ begin
|
|||
PExec(EDITORPROG, args, 3, error);
|
||||
end
|
||||
else
|
||||
PExec2(EDITORPROG, ShellWorkFile, error);
|
||||
PExec1(EDITORPROG, ShellWorkFile, error);
|
||||
writeln('PExec error ', error);
|
||||
end;
|
||||
|
||||
|
|
@ -334,7 +334,7 @@ var filename:filenamestr;
|
|||
begin
|
||||
requireWorkfile;
|
||||
filename := replaceExtension(ShellWorkFile, '.s');
|
||||
PExec2(ASMPROG, filename, error);
|
||||
PExec1(ASMPROG, filename, error);
|
||||
writeln('PExec error ', error);
|
||||
end;
|
||||
|
||||
|
|
@ -344,7 +344,7 @@ var filename:filenamestr;
|
|||
begin
|
||||
requireWorkfile;
|
||||
filename := replaceExtension(ShellWorkFile, '.pas');
|
||||
PExec3(COMPILERPROG, '-S', filename, error);
|
||||
PExec2(COMPILERPROG, '-S', filename, error);
|
||||
writeln('PExec error ', error);
|
||||
end;
|
||||
|
||||
|
|
@ -354,7 +354,7 @@ var filename:filenamestr;
|
|||
begin
|
||||
requireWorkfile;
|
||||
filename := replaceExtension(ShellWorkFile, '.pas');
|
||||
PExec2(COMPILERPROG, filename, error);
|
||||
PExec1(COMPILERPROG, filename, error);
|
||||
writeln('PExec error ', error);
|
||||
end;
|
||||
|
||||
|
|
@ -373,7 +373,7 @@ end;
|
|||
procedure krunch;
|
||||
var error:integer;
|
||||
begin
|
||||
PExec2(RECLAIMPROG, DefaultVolume, error);
|
||||
PExec1(RECLAIMPROG, DefaultVolume, error);
|
||||
writeln('PExec error ', error);
|
||||
end;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue