mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
FIX: Bug [0001795] DC should not hang on pipes
This commit is contained in:
parent
8525718fa8
commit
f74fdbc7cd
2 changed files with 30 additions and 1 deletions
|
|
@ -71,6 +71,9 @@ type
|
|||
FReserveSpace,
|
||||
FCheckFreeSpace: Boolean;
|
||||
FSkipAllBigFiles: Boolean;
|
||||
{$IF DEFINED(UNIX)}
|
||||
FSkipAllSpecialFiles: Boolean;
|
||||
{$ENDIF}
|
||||
FSkipOpenForReadingError: Boolean;
|
||||
FSkipOpenForWritingError: Boolean;
|
||||
FSkipReadError: Boolean;
|
||||
|
|
@ -156,7 +159,11 @@ implementation
|
|||
uses
|
||||
uDebug, uOSUtils, DCStrUtils, FileUtil, uFindEx, DCClassesUtf8, uFileProcs, uLng,
|
||||
DCBasicTypes, uFileSource, uFileSystemFileSource, uFileProperty, uAdministrator,
|
||||
StrUtils, DCDateTimeUtils, uShowMsg, Forms, LazUTF8, uHash;
|
||||
StrUtils, DCDateTimeUtils, uShowMsg, Forms, LazUTF8, uHash
|
||||
{$IFDEF UNIX}
|
||||
, BaseUnix
|
||||
{$ENDIF}
|
||||
;
|
||||
|
||||
const
|
||||
HASH_TYPE = HASH_BEST;
|
||||
|
|
@ -1140,6 +1147,27 @@ begin
|
|||
else begin
|
||||
Result:= False;
|
||||
|
||||
{$IF DEFINED(UNIX)}
|
||||
if not fpS_ISREG(aNode.TheFile.Attributes) then
|
||||
begin
|
||||
if FSkipAllSpecialFiles then Exit(False);
|
||||
|
||||
case AskQuestion('', Format(rsMsgCannotCopySpecialFile, [LineEnding + aNode.TheFile.FullPath]),
|
||||
[fsourSkip, fsourSkipAll, fsourAbort],
|
||||
fsourSkip, fsourAbort) of
|
||||
fsourSkip:
|
||||
Exit(False);
|
||||
fsourSkipAll:
|
||||
begin
|
||||
FSkipAllSpecialFiles:= True;
|
||||
Exit(False);
|
||||
end
|
||||
else
|
||||
AbortOperation;
|
||||
end;
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
if (aNode.TheFile.Size > GetDiskMaxFileSize(ExtractFileDir(AbsoluteTargetFileName))) then
|
||||
case AskQuestion('', Format(rsMsgFileSizeTooBig, [aNode.TheFile.Name]),
|
||||
[fsourSkip, fsourAbort],
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ resourcestring
|
|||
rsMsgNotDelete = 'Can not delete file %s';
|
||||
rsMsgCannotDeleteDirectory = 'Cannot delete directory %s';
|
||||
rsMsgCannotOverwriteDirectory = 'Cannot overwrite directory "%s" with non-directory "%s"';
|
||||
rsMsgCannotCopySpecialFile = 'Cannot copy special file %s';
|
||||
rsMsgErrDirExists = 'Directory %s exists!';
|
||||
rsMsgErrRename = 'Cannot rename file %s to %s';
|
||||
rsMsgErrCannotCopyFile = 'Cannot copy file %s to %s';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue