- if (ret[6] == wxT(" ")) ret[6] = wxT("");
-
- if (ret[7].GetChar(ret[7].Length()-1) == '/') {
- ret[8] = ret[7];
- ret[8].RemoveLast();
- ret[8] = ret[7].Mid(ret[8].Find('/', true)+1);
+ if (!tkz.HasMoreTokens())
+ return false;
+ entry->user = tkz.GetNextToken();
+
+ if (!tkz.HasMoreTokens())
+ return false;
+ entry->group = tkz.GetNextToken();
+
+ if (!tkz.HasMoreTokens())
+ return false;
+ entry->size = tkz.GetNextToken();
+
+ if (!tkz.HasMoreTokens())
+ return false;
+ entry->date = tkz.GetNextToken();
+
+ if (!tkz.HasMoreTokens())
+ return false;
+ wxString marked = tkz.GetNextToken();
+ if (marked == wxT("*")) {
+ entry->marked = 1;
+ }
+ else if (marked == wxT("+")) {
+ entry->marked = 2;
+ }
+ else {
+ entry->marked = 0;
+ }
+
+ if (!tkz.HasMoreTokens())
+ return false;
+ entry->fullname = tkz.GetNextToken();
+
+ /* Get only the filename (cut path by finding the last '/') */
+ if (entry->fullname.GetChar(entry->fullname.Length()-1) == '/') {
+ wxString tmp = entry->fullname;
+ tmp.RemoveLast();
+ entry->filename = entry->fullname.Mid(tmp.Find('/', true)+1);