The patch I've submitted with bug 0000045: http://bugs.xfce.org/view_bug_page.php?f_id=0000045 doesn't work always.
Additional information: I've read ls manuals for Linux, FreeBSD, Solaris, AIX and True64 and according to them the fix I suggested doesn't work. Since my fix is now in the CVS, I need to follow up with more refined patch. See below. The patch below should be OK on all the systems I mentioned above except for Solaris. Solaris has '/usr/bin/ls' and '/usr/xpg4/bin/ls' and they behave differently according to 'man ls'. The manual lists another mode/bit that these ls commands supposedly show but there is no recipe how to detect it. I'm talking about "mandatory locking" mode. My code doesn't check for it but I think it is very esoteric (I could not get that mode with chmod). Use your own judgement. The patch I'm sending was tested on linux. But the test just involved the function I've changed. I did not compile the whole xffm. I'm sorry for the trouble Here is the patch: *** xfce4/xffm/src/ls.c.orig Sun Jan 4 16:11:36 2004 --- xfce4/xffm/src/ls.c Sun Jan 4 17:24:53 2004 *************** char *mode_string(mode_t mode) *** 217,225 **** str[7] = mode & S_IROTH ? 'r' : '-'; str[8] = mode & S_IWOTH ? 'w' : '-'; str[9] = mode & S_IXOTH ? 'x' : '-'; ! if (mode & S_ISUID) str[3] = 's'; ! if (mode & S_ISGID) str[6] = 'S'; ! if (mode & S_ISVTX) str[9] = 't'; str[10] = 0; return (str); } --- 217,225 ---- str[7] = mode & S_IROTH ? 'r' : '-'; str[8] = mode & S_IWOTH ? 'w' : '-'; str[9] = mode & S_IXOTH ? 'x' : '-'; ! if (mode & S_ISUID) str[3] = mode & S_IXUSR ? 's' : 'S'; ! if (mode & S_ISGID) str[6] = mode & S_IXGRP ? 's' : 'S'; ! if (mode & S_ISVTX) str[9] = mode & S_IXOTH ? 't' : 'T'; str[10] = 0; return (str); }