* merged fixes from 1.0.x

This commit is contained in:
peter 2000-12-28 20:50:04 +00:00
parent 8ff3ed8de9
commit 679b2ec5e4
3 changed files with 46 additions and 24 deletions

View File

@ -914,6 +914,15 @@ begin
LinuxError:=Errno;
end;
Function IoPL(Level : longint) : Boolean;
Var
Sr : Syscallregs;
begin
Sr.Reg2:=Level;
IOPL:=Syscall(Syscall_nr_iopl,sr)=0;
LinuxError:=Errno;
end;
{$IFDEF I386}
@ -1184,7 +1193,10 @@ end;
{
$Log$
Revision 1.4 2000-10-26 22:51:12 peter
Revision 1.5 2000-12-28 20:50:04 peter
* merged fixes from 1.0.x
Revision 1.4 2000/10/26 22:51:12 peter
* nano sleep (merged)
Revision 1.3 2000/10/02 17:57:37 peter

View File

@ -99,7 +99,8 @@ procedure SerSetParams(Handle: TSerialHandle; BitsPerSec: LongInt;
var
tios: termios;
begin
ioctl(Handle, TCGETS, @tios);
TcGetAttr(handle,tios);
// ioctl(Handle, TCGETS, @tios);
case BitsPerSec of
50: tios.c_cflag := B50;
@ -119,7 +120,9 @@ begin
57600: tios.c_cflag := B57600;
115200: tios.c_cflag := B115200;
230400: tios.c_cflag := B230400;
{$ifndef BSD}
460800: tios.c_cflag := B460800;
{$endif}
else tios.c_cflag := B9600;
end;
@ -142,20 +145,23 @@ begin
tios.c_cflag := tios.c_cflag or CRTSCTS;
tios.c_cflag := tios.c_cflag or CLOCAL or CREAD;
ioctl(Handle, TCSETS, @tios);
TCSetAttr(handle,TCSANOW,tios)
// ioctl(Handle, TCSETS, @tios);
end;
function SerSaveState(Handle: TSerialHandle): TSerialState;
begin
ioctl(Handle, TIOCMGET, @Result.LineState);
ioctl(Handle, TCGETS, @Result.tios);
// ioctl(Handle, TCGETS, @Result.tios);
TcGetAttr(handle,result.tios);
end;
procedure SerRestoreState(Handle: TSerialHandle; State: TSerialState);
begin
ioctl(Handle, TCSETS, @State.tios);
ioctl(Handle, TIOCMSET, @State.LineState);
// ioctl(Handle, TCSETS, @State.tios);
TCSetAttr(handle,TCSANOW,State.tios);
ioctl(Handle, TIOCMSET, @State.LineState);
end;
procedure SerSetDTR(Handle: TSerialHandle; State: Boolean);
@ -207,7 +213,10 @@ end.
{
$Log$
Revision 1.3 2000-10-10 14:12:36 sg
Revision 1.4 2000-12-28 20:50:04 peter
* merged fixes from 1.0.x
Revision 1.3 2000/10/10 14:12:36 sg
* Some cosmetic improvements (no changes in interface, only within the
source itself (comments etc.)
@ -216,5 +225,5 @@ end.
Revision 1.2 2000/07/13 11:33:49 michael
+ removed logs
}

View File

@ -119,14 +119,14 @@ begin
end;
Function LinuxToWinAttr (FN : Char; Const Info : Stat) : Longint;
Function LinuxToWinAttr (FN : Pchar; Const Info : Stat) : Longint;
begin
Result:=faArchive;
If FN='.' then
Result:=Result or faHidden;
If (Info.Mode and STAT_IFDIR)=STAT_IFDIR then
Result:=Result or faDirectory;
If (FN[0]='.') and (not (FN[1] in [#0,'.'])) then
Result:=Result or faHidden;
If (Info.Mode and STAT_IWUSR)=0 Then
Result:=Result or faReadOnly;
If (Info.Mode and
@ -144,18 +144,16 @@ Type
TGlobSearchRec = Record
Path : String;
GlobHandle : PGlob;
end;
end;
PGlobSearchRec = ^TGlobSearchRec;
Function GlobToTSearchRec (Var Info : TSearchRec) : Boolean;
Var SInfo : Stat;
p : Pglob;
TAttr : Longint;
GlobSearchRec : PGlobSearchrec;
begin
TAttr:=longint($ffffffff);
GlobSearchRec:=PGlobSearchrec(Info.FindHandle);
P:=GlobSearchRec^.GlobHandle;
Result:=P<>Nil;
@ -165,8 +163,8 @@ begin
Result:=Fstat(GlobSearchRec^.Path+StrPas(p^.name),SInfo);
If Result then
begin
Info.Attr:=LinuxToWinAttr(p^.name[0],SInfo);
Result:=(Info.ExcludeAttr and TAttr)<>0;
Info.Attr:=LinuxToWinAttr(p^.name,SInfo);
Result:=(Info.ExcludeAttr and Info.Attr)=0;
If Result Then
With Info do
begin
@ -199,14 +197,14 @@ end;
Function FindFirst (Const Path : String; Attr : Longint; Var Rslt : TSearchRec) : Longint;
Var
Var
GlobSearchRec : PGlobSearchRec;
begin
New(GlobSearchRec);
GlobSearchRec^.Path:=ExpandFileName(ExtractFilePath(Path));
GlobSearchRec^.GlobHandle:=Glob(Path);
Rslt.ExcludeAttr:=Attr; //!! Not correct !!
Rslt.ExcludeAttr:=Not Attr; //!! Not correct !!
Rslt.FindHandle:=Longint(GlobSearchRec);
Result:=DoFind (Rslt);
end;
@ -259,7 +257,7 @@ begin
If Not FStat (FileName,Info) then
Result:=-1
Else
Result:=LinuxToWinAttr(FileName[1],Info);
Result:=LinuxToWinAttr(Pchar(FileName),Info);
end;
@ -458,7 +456,10 @@ end.
{
$Log$
Revision 1.4 2000-12-18 14:01:42 jonas
Revision 1.5 2000-12-28 20:50:04 peter
* merged fixes from 1.0.x
Revision 1.4 2000/12/18 14:01:42 jonas
* fixed constant range error
Revision 1.3 2000/11/28 20:06:12 michael