! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
refinement of sticky bit display
Status:
CLOSED: FIXED
Severity:
trivial

Comments

Description tuxgent00 2004-01-04 23:06:22 CET
The patch I've submitted with bug 0000045:
http://bugs.xfce.org/view_bug_page.php?f_id=0000045

doesn't work always.
Comment 1 tuxgent00 2004-01-04 23:06:24 CET
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);
}

Bug #62

Reported by:
tuxgent00
Reported on: 2004-01-04
Last modified on: 2009-07-14

People

Assignee:
edscott
CC List:
0 users

Version

Version:
unspecified

Attachments

Additional information