diff options
| -rw-r--r-- | UEngines.pas | 12 | ||||
| -rw-r--r-- | UGnome.pas | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/UEngines.pas b/UEngines.pas index 9483dfb..b77d7e3 100644 --- a/UEngines.pas +++ b/UEngines.pas @@ -185,7 +185,7 @@ procedure FreeDataItem(DataItem: PDataItem); overload; implementation -uses SysUtils, UCoreUtils; +uses SysUtils, UCoreUtils, UGnome; (********************************************************************************************************************************) constructor TPanelEngine.Create; @@ -446,15 +446,17 @@ begin // DebugMsg(['(II) TLocalTreeEngine.MakeDir: begin']); Result := __mkdir(PChar(NewDir), OctalToAttr(ConfDefaultDirCreationMask)); // DebugMsg(['(II) TLocalTreeEngine.MakeDir: Result = ', Result]); - if Result <> 0 then Result := errno; -(* +// if Result <> 0 then Result := errno; + if Result <> 0 then try - if Self.DirectoryExists(NewDir) { or (not g_mkdir_with_parents(dd))} {ForceDirectories(NewDir))} then Result := errno; + if Self.DirectoryExists(NewDir) or (g_mkdir_with_parents(PChar(NewDir), OctalToAttr(ConfDefaultDirCreationMask)) <> 0) {ForceDirectories(NewDir))} + then Result := errno + else Result := 0; except Result := -1; DebugMsg(['(II) TLocalTreeEngine.MakeDir: Exception']); end; -*) + // DebugMsg(['(II) TLocalTreeEngine.MakeDir: end']); end; @@ -208,6 +208,7 @@ var libGlib2Handle, libGtk2Handle, libGnome2Handle, libGnomeUI2Handle: Pointer; _type:TGtkMessageType; buttons:TGtkButtonsType; message_format:Pgchar):PGtkWidget; varargs; cdecl; {$ENDIF} + g_mkdir_with_parents: function (const pathname: PChar; mode: integer): integer; cdecl; @@ -1589,6 +1590,7 @@ begin if libGlib2Handle = nil then libGlib2Handle := dlopen('libglib-2.0.so', RTLD_LAZY); if libGlib2Handle <> nil then begin @g_filename_display_name := dlsym(libGlib2Handle, 'g_filename_display_name'); + @g_mkdir_with_parents := dlsym(libGlib2Handle, 'g_mkdir_with_parents'); DebugMsg(['libglib-2.0.so loaded, @g_filename_display_name = 0x', IntToHex(QWORD(@g_filename_display_name), 8)]); end; libGtk2Handle := dlopen('libgtk-x11-2.0.so.0', RTLD_LAZY); |
