summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2009-11-29 13:31:03 +0100
committerTomas Bzatek <tbzatek@users.sourceforge.net>2009-11-29 13:31:03 +0100
commit9883e3b4eec8e457b49cb70ca006f5f7601332da (patch)
treebb9c8fdb6e6a2a1b57458b2d036ee76040977265
parentfa0bc075f4f3cfc841f4003914ce729820b09d22 (diff)
downloadtuxcmd-9883e3b4eec8e457b49cb70ca006f5f7601332da.tar.xz
Introduce inode_no property
-rw-r--r--UCore.pas2
-rw-r--r--UCoreWorkers.pas2
-rw-r--r--UEngines.pas2
-rw-r--r--vfs/UVFSCore.pas1
-rw-r--r--vfs/uVFSprototypes.pas5
5 files changed, 8 insertions, 4 deletions
diff --git a/UCore.pas b/UCore.pas
index d23d76c..1fec52c 100644
--- a/UCore.pas
+++ b/UCore.pas
@@ -449,7 +449,7 @@ begin
try
WriteLn('**** List Item idx ', i, '; base @ ', integer(List[i]), '; sizeof = ', SizeOf(List[i]));
Item := List[i];
- WriteLn(' Stage1: ', Item^.Stage1, ', Level: ', Item^.Level, ', IsDir: ', Item^.DataItem^.IsDir, ', IsLnk: ', Item^.DataItem^.IsLnk, ', ForceMove: ', Item^.ForceMove{, ', Size: ', Item^.Size});
+ WriteLn(' Stage1: ', Item^.Stage1, ', Level: ', Item^.Level, ', IsDir: ', Item^.DataItem^.IsDir, ', IsLnk: ', Item^.DataItem^.IsLnk, ', ForceMove: ', Item^.ForceMove{, ', Size: ', Item^.DataItem^.Size}, ', inode: ', Item^.DataItem^.inode_no);
WriteLn(' FName: ', Item^.DataItem^.FName);
WriteLn(' LnkPointTo: ', Item^.DataItem^.LnkPointTo);
WriteLn(' ADestination: ', Item^.ADestination);
diff --git a/UCoreWorkers.pas b/UCoreWorkers.pas
index bcdd07f..b2b6479 100644
--- a/UCoreWorkers.pas
+++ b/UCoreWorkers.pas
@@ -1371,7 +1371,7 @@ begin
{ if DestEngine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour may occur.']);
if SrcEngine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour may occur.']); }
-// DebugWriteListSL(List);
+ DebugWriteListSL(List);
__chdir('/');
// Compute total size of files to copy
diff --git a/UEngines.pas b/UEngines.pas
index cc0e1f3..a8f1923 100644
--- a/UEngines.pas
+++ b/UEngines.pas
@@ -47,6 +47,7 @@ type
ColumnData: array[0..9] of PChar;
Size: cuLongLong;
PackedSize: Int64;
+ inode_no: cuLong;
UpDir: boolean;
Mode, UID, GID: cuLong;
IsDir, IsLnk, IsBlk, IsChr, IsFIFO, IsSock: boolean;
@@ -318,6 +319,7 @@ begin
Item^.GID := StatBuf^.st_gid;
Item^.Size := StatBuf^.st_size;
Item^.PackedSize := -1;
+ Item^.inode_no := StatBuf^.st_ino;
libc_free(StatBuf);
if Item^.IsLnk then begin
diff --git a/vfs/UVFSCore.pas b/vfs/UVFSCore.pas
index 90b31b5..2bccea7 100644
--- a/vfs/UVFSCore.pas
+++ b/vfs/UVFSCore.pas
@@ -433,6 +433,7 @@ begin
Item^.GID := P^.iGID;
Item^.Size := P^.iSize;
Item^.PackedSize := P^.iPackedSize;
+ Item^.inode_no := P^.inode_no;
Result := Item;
end;
diff --git a/vfs/uVFSprototypes.pas b/vfs/uVFSprototypes.pas
index 75c7349..bef0246 100644
--- a/vfs/uVFSprototypes.pas
+++ b/vfs/uVFSprototypes.pas
@@ -90,9 +90,10 @@ type
PVFSItem = ^TVFSItem;
TVFSItem = record
FName: PChar;
- FDisplayName: PChar; // FDisplayName - plugins must return valid UTF-8 string
+ FDisplayName: PChar; // plugins must return valid UTF-8 string
iSize: guint64;
- iPackedSize: gint64; // iPackedSize - set to -1 if plugin doesn't support this feature
+ iPackedSize: gint64; // set to -1 if plugin doesn't support this feature
+ inode_no: guint64; // return 0 if not supported
m_time: guint32;
a_time: guint32;
c_time: guint32;