* fixed for unix

This commit is contained in:
peter 2003-09-27 14:03:45 +00:00
parent 309742257d
commit f224659a77
6 changed files with 65 additions and 37 deletions

View File

@ -107,6 +107,7 @@ uses
{$ifdef VER1_0}
linux,
{$else}
baseunix,
unix,
{$endif}
{$endif}
@ -289,7 +290,7 @@ begin
{$endif HasSignal}
begin
{$ifdef HasSignal}
StoreSigFPE:=Signal(SIGFPE,@CalcSigFPE);
StoreSigFPE:={$ifdef ver1_0}Signal{$else}fpSignal{$endif}(SIGFPE,@CalcSigFPE);
{$endif HasSignal}
if (Status = csError) and (Key <> 'C') then Key := ' ';
if HexShown then
@ -379,7 +380,7 @@ begin
else CalcKey:=false;
end;
{$ifdef HasSignal}
Signal(SIGFPE,StoreSigFPE);
{$ifdef ver1_0}Signal{$else}fpSignal{$endif}(SIGFPE,StoreSigFPE);
{$endif HasSignal}
DrawView;
{$ifdef HasSignal}
@ -571,7 +572,10 @@ end;
end.
{
$Log$
Revision 1.7 2002-09-13 08:13:07 pierre
Revision 1.8 2003-09-27 14:03:45 peter
* fixed for unix
Revision 1.7 2002/09/13 08:13:07 pierre
* avoid RTE 201 in hexstr calls
Revision 1.6 2002/09/07 15:40:42 peter

View File

@ -23,6 +23,7 @@ uses
{$ifdef VER1_0}
linux;
{$else}
baseunix,
unix;
{$endif}
{$endif}
@ -101,9 +102,9 @@ end;
{$ifdef HasSignal}
{$ifdef Unix}
Procedure CatchSignal(Sig : Longint);cdecl;
Procedure Catchsignal(Sig : Longint);cdecl;
{$else}
Function CatchSignal(Sig : longint):longint;
Function Catchsignal(Sig : longint):longint;
{$endif}
var MustQuit: boolean;
begin
@ -204,10 +205,10 @@ begin
{$else TP}
NewSignal:=SignalHandler(CatchSignal);
{$endif TP}
OldSigSegm:=Signal (SIGSEGV,NewSignal);
OldSigInt:=Signal (SIGINT,NewSignal);
OldSigFPE:=Signal (SIGFPE,NewSignal);
OldSigILL:=Signal (SIGILL,NewSignal);
OldSigSegm:={$ifdef ver1_0}signal{$else}fpsignal{$endif}(SIGSEGV,NewSignal);
OldSigInt:={$ifdef ver1_0}signal{$else}fpsignal{$endif}(SIGINT,NewSignal);
OldSigFPE:={$ifdef ver1_0}signal{$else}fpsignal{$endif}(SIGFPE,NewSignal);
OldSigILL:={$ifdef ver1_0}signal{$else}fpsignal{$endif}(SIGILL,NewSignal);
CatchSignalsEnabled:=true;
{$endif}
end;
@ -217,10 +218,10 @@ begin
{$ifdef HasSignal}
if not CatchSignalsEnabled then
exit;
Signal (SIGSEGV,OldSigSegm);
Signal (SIGINT,OldSigInt);
Signal (SIGFPE,OldSigFPE);
Signal (SIGILL,OldSigILL);
{$ifdef ver1_0}signal{$else}fpsignal{$endif}(SIGSEGV,OldSigSegm);
{$ifdef ver1_0}signal{$else}fpsignal{$endif}(SIGINT,OldSigInt);
{$ifdef ver1_0}signal{$else}fpsignal{$endif}(SIGFPE,OldSigFPE);
{$ifdef ver1_0}signal{$else}fpsignal{$endif}(SIGILL,OldSigILL);
CatchSignalsEnabled:=false;
{$endif}
end;
@ -229,7 +230,10 @@ end.
{
$Log$
Revision 1.7 2003-04-23 09:49:26 peter
Revision 1.8 2003-09-27 14:03:45 peter
* fixed for unix
Revision 1.7 2003/04/23 09:49:26 peter
* unix signal handler needs longint
Revision 1.6 2002/09/07 21:04:41 carl

View File

@ -15,7 +15,7 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
Unit Redir;
Unit FpRedir;
Interface
{$R-}
@ -970,7 +970,10 @@ finalization
End.
{
$Log$
Revision 1.3 2003-09-25 16:49:08 peter
Revision 1.4 2003-09-27 14:03:45 peter
* fixed for unix
Revision 1.3 2003/09/25 16:49:08 peter
* adapted for 1.1 unix
Revision 1.13 2003/06/05 20:03:22 peter

View File

@ -26,6 +26,7 @@ uses
{$ifdef VER1_0}
linux,
{$else}
baseunix,
unix,
{$endif}
{$endif}
@ -782,18 +783,18 @@ begin
'0'..'9' :
begin { running Linux on native console or native-emulation }
FName:='/dev/vcsa' + ThisTTY[9];
TTYFd:=fdOpen(FName, Octal(666), Open_RdWr); { open console }
TTYFd:={$ifdef ver1_0}fdOpen{$else}fpOpen{$endif}(FName, Octal(666), Open_RdWr); { open console }
If TTYFd <>-1 Then
Console:=ttyLinux;
Console:=ttyLinux;
end;
'v' : { check for (Free?)BSD native}
If (ThisTTY[10]>='0') and (ThisTTY[10]<='9') Then
Console:=ttyFreeBSD; {TTYFd ?}
end;
'v' : { check for (Free?)BSD native}
If (ThisTTY[10]>='0') and (ThisTTY[10]<='9') Then
Console:=ttyFreeBSD; {TTYFd ?}
end;
end;
If Copy(GetEnv('TERM'),1,6)='cons25' Then
Console:=ttyFreeBSD;
ioctl(stdinputhandle, TIOCGWINSZ, @WS);
{$ifdef ver1_0}ioctl{$else}fpioctl{$endif}(stdinputhandle, TIOCGWINSZ, @WS);
if WS.ws_Col=0 then
WS.ws_Col:=80;
if WS.ws_Row=0 then
@ -884,11 +885,11 @@ begin
write(#27'7'#27'[?47h')
else if (TTYfd<>-1) then
begin
fdSeek(TTYFd, 0, Seek_Set);
fdRead(TTYFd,ConsHeight,sizeof(byte));
fdRead(TTYFd,ConsWidth,sizeof(byte));
fdRead(TTYFd,ConsCursorX,sizeof(byte));
fdRead(TTYFd,ConsCursorY,sizeof(byte));
{$ifdef ver1_0}fdSeek{$else}fpLSeek{$endif}(TTYFd, 0, Seek_Set);
{$ifdef ver1_0}fdread{$else}fpread{$endif}(TTYFd,ConsHeight,sizeof(byte));
{$ifdef ver1_0}fdread{$else}fpread{$endif}(TTYFd,ConsWidth,sizeof(byte));
{$ifdef ver1_0}fdread{$else}fpread{$endif}(TTYFd,ConsCursorX,sizeof(byte));
{$ifdef ver1_0}fdread{$else}fpread{$endif}(TTYFd,ConsCursorY,sizeof(byte));
NewSize:=ConsWidth*ConsHeight*sizeof(word);
if (NewSize<>ConsVideoBufSize) and
assigned(ConsVideoBuf) then
@ -899,7 +900,7 @@ begin
If not assigned(ConsVideoBuf) then
GetMem(ConsVideoBuf,NewSize);
ConsVideoBufSize:=NewSize;
fdRead(TTYFd,ConsVideoBuf^,ConsVideoBufSize);
{$ifdef ver1_0}fdread{$else}fpread{$endif}(TTYFd,ConsVideoBuf^,ConsVideoBufSize);
end
else
begin
@ -922,10 +923,10 @@ begin
end
else if (TTyfd<>-1) then
begin
fdSeek(TTYFd, 2, Seek_Set);
fdWrite(TTYFd, ConsCursorX, sizeof(byte));
fdWrite(TTYFd, ConsCursorY, sizeof(byte));
fdWrite(TTYFd, ConsVideoBuf^,ConsVideoBufSize);
{$ifdef ver1_0}fdSeek{$else}fplSeek{$endif}(TTYFd, 2, Seek_Set);
{$ifdef ver1_0}fdwrite{$else}fpwrite{$endif}(TTYFd, ConsCursorX, sizeof(byte));
{$ifdef ver1_0}fdwrite{$else}fpwrite{$endif}(TTYFd, ConsCursorY, sizeof(byte));
{$ifdef ver1_0}fdwrite{$else}fpwrite{$endif}(TTYFd, ConsVideoBuf^,ConsVideoBufSize);
{ FreeMem(ConsVideoBuf,ConsVideoBufSize);
ConsVideoBuf:=nil; }
end;
@ -1440,7 +1441,10 @@ end;
end.
{
$Log$
Revision 1.27 2003-02-04 22:05:56 pierre
Revision 1.28 2003-09-27 14:03:45 peter
* fixed for unix
Revision 1.27 2003/02/04 22:05:56 pierre
* fix bug 2253
Revision 1.26 2002/10/30 22:07:11 pierre

View File

@ -188,6 +188,7 @@ uses
{$ifdef VER1_0}
linux,
{$else}
baseunix,
unix,
{$endif}
{$endif Unix}
@ -303,8 +304,13 @@ Function GetDosTicks:longint; { returns ticks at 18.2 Hz, just like DOS }
tv : TimeVal;
tz : TimeZone;
begin
{$ifdef ver1_0}
GetTimeOfDay(tv); {Timezone no longer used?}
GetDosTicks:=((tv.Sec mod 86400) div 60)*1092+((tv.Sec mod 60)*1000000+tv.USec) div 54945;
{$else}
fpGetTimeOfDay(@tv,@tz);
GetDosTicks:=((tv.tv_Sec mod 86400) div 60)*1092+((tv.tv_Sec mod 60)*1000000+tv.tv_USec) div 54945;
{$endif}
end;
{$endif Unix}
{$ifdef Win32}
@ -951,7 +957,10 @@ end;
END.
{
$Log$
Revision 1.9 2002-11-22 15:18:24 pierre
Revision 1.10 2003-09-27 14:03:45 peter
* fixed for unix
Revision 1.9 2002/11/22 15:18:24 pierre
* fix SwapWord, arg must be of var type
Revision 1.8 2002/11/22 12:21:16 pierre

View File

@ -28,6 +28,7 @@ uses
{$ifdef VER1_0}
linux,
{$else}
baseunix,
unix,
{$endif}
{$endif Unix}
@ -1328,7 +1329,7 @@ end;
begin
req.tv_sec:=0;
req.tv_nsec:=10000000;{ 10 ms }
nanosleep(req,rem);
{$ifdef ver1_0}nanosleep(req,rem){$else}fpnanosleep(@req,@rem){$endif};
end;
{$endif}
{$IFDEF OS2}
@ -1363,7 +1364,10 @@ BEGIN
END.
{
$Log$
Revision 1.16 2002-09-11 12:10:03 pierre
Revision 1.17 2003-09-27 14:03:45 peter
* fixed for unix
Revision 1.16 2002/09/11 12:10:03 pierre
* fix bug in new readline method on line overflow
Revision 1.15 2002/09/11 08:30:38 pierre