Equipped output of lsl with '+' perm if ACL is present
This commit is contained in:
parent
002ba5d6d2
commit
4ceee394f7
@ -8116,7 +8116,9 @@ ex:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int Xorriso__mode_to_perms(mode_t st_mode, char perms[10], int flag)
|
/* @param flag bit1= add '+' to perms
|
||||||
|
*/
|
||||||
|
int Xorriso__mode_to_perms(mode_t st_mode, char perms[11], int flag)
|
||||||
{
|
{
|
||||||
strcpy(perms,"--------- ");
|
strcpy(perms,"--------- ");
|
||||||
if(st_mode&S_IRUSR) perms[0]= 'r';
|
if(st_mode&S_IRUSR) perms[0]= 'r';
|
||||||
@ -8146,16 +8148,19 @@ int Xorriso__mode_to_perms(mode_t st_mode, char perms[10], int flag)
|
|||||||
else
|
else
|
||||||
perms[8]= 'T';
|
perms[8]= 'T';
|
||||||
}
|
}
|
||||||
|
if(flag & 2)
|
||||||
|
perms[9]= '+';
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* @param flag bit0= recognize Xorriso_IFBOOT as file type
|
/* @param flag bit0= recognize Xorriso_IFBOOT as file type
|
||||||
|
bit1= add '+' to perms
|
||||||
*/
|
*/
|
||||||
int Xorriso_format_ls_l(struct XorrisO *xorriso, struct stat *stbuf, int flag)
|
int Xorriso_format_ls_l(struct XorrisO *xorriso, struct stat *stbuf, int flag)
|
||||||
{
|
{
|
||||||
int show_major_minor= 0, high_shift= 0, high_mask= 0;
|
int show_major_minor= 0, high_shift= 0, high_mask= 0;
|
||||||
char *rpt, perms[10], mm_text[80];
|
char *rpt, perms[11], mm_text[80];
|
||||||
mode_t st_mode;
|
mode_t st_mode;
|
||||||
dev_t dev, major, minor;
|
dev_t dev, major, minor;
|
||||||
|
|
||||||
@ -8184,10 +8189,10 @@ int Xorriso_format_ls_l(struct XorrisO *xorriso, struct stat *stbuf, int flag)
|
|||||||
else
|
else
|
||||||
strcat(rpt, "?");
|
strcat(rpt, "?");
|
||||||
|
|
||||||
Xorriso__mode_to_perms(st_mode, perms, 0);
|
Xorriso__mode_to_perms(st_mode, perms, flag & 2);
|
||||||
strcat(rpt, perms);
|
strcat(rpt, perms);
|
||||||
|
|
||||||
sprintf(rpt+strlen(rpt),"%4u ",(unsigned int) stbuf->st_nlink);
|
sprintf(rpt+strlen(rpt)," %3u ",(unsigned int) stbuf->st_nlink);
|
||||||
|
|
||||||
sprintf(rpt+strlen(rpt), "%-8lu ", (unsigned long) stbuf->st_uid);
|
sprintf(rpt+strlen(rpt), "%-8lu ", (unsigned long) stbuf->st_uid);
|
||||||
sprintf(rpt+strlen(rpt), "%-8lu ", (unsigned long) stbuf->st_gid);
|
sprintf(rpt+strlen(rpt), "%-8lu ", (unsigned long) stbuf->st_gid);
|
||||||
|
@ -386,7 +386,7 @@ int Xorriso_regexec(struct XorrisO *xorriso, char *to_match, int *failed_at,
|
|||||||
int Xorriso_prepare_expansion_pattern(struct XorrisO *xorriso, char *pattern,
|
int Xorriso_prepare_expansion_pattern(struct XorrisO *xorriso, char *pattern,
|
||||||
int flag);
|
int flag);
|
||||||
|
|
||||||
int Xorriso__mode_to_perms(mode_t st_mode, char perms[10], int flag);
|
int Xorriso__mode_to_perms(mode_t st_mode, char perms[11], int flag);
|
||||||
|
|
||||||
int Xorriso_much_too_long(struct XorrisO *xorriso, int len, int flag);
|
int Xorriso_much_too_long(struct XorrisO *xorriso, int len, int flag);
|
||||||
|
|
||||||
|
@ -5521,6 +5521,7 @@ int Xorriso_ls_filev(struct XorrisO *xorriso, char *wd,
|
|||||||
IsoImage *volume;
|
IsoImage *volume;
|
||||||
char sfe[5*SfileadrL], sfe2[5*SfileadrL], path[SfileadrL];
|
char sfe[5*SfileadrL], sfe2[5*SfileadrL], path[SfileadrL];
|
||||||
char link_target[SfileadrL], *rpt, **dfilev= NULL;
|
char link_target[SfileadrL], *rpt, **dfilev= NULL;
|
||||||
|
char *a_text= NULL, *d_text= NULL;
|
||||||
off_t size;
|
off_t size;
|
||||||
struct stat stbuf;
|
struct stat stbuf;
|
||||||
|
|
||||||
@ -5597,7 +5598,18 @@ int Xorriso_ls_filev(struct XorrisO *xorriso, char *wd,
|
|||||||
continue;
|
continue;
|
||||||
link_target[0]= 0;
|
link_target[0]= 0;
|
||||||
if((flag&5)==1) { /* -ls_l */
|
if((flag&5)==1) { /* -ls_l */
|
||||||
ret= Xorriso_format_ls_l(xorriso, &stbuf, 1);
|
|
||||||
|
#ifdef Xorriso_with_aaiP
|
||||||
|
iso_node_get_acl_text(node, &a_text, &d_text, 16);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret= Xorriso_format_ls_l(xorriso, &stbuf,
|
||||||
|
1 | ((a_text != NULL || d_text != NULL) << 1));
|
||||||
|
|
||||||
|
#ifdef Xorriso_with_aaiP
|
||||||
|
iso_node_get_acl_text(node, &a_text, &d_text, 1 << 15);
|
||||||
|
#endif
|
||||||
|
|
||||||
if(ret<=0)
|
if(ret<=0)
|
||||||
continue;
|
continue;
|
||||||
if(LIBISO_ISLNK(node)) {
|
if(LIBISO_ISLNK(node)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user