- Consistent use of warn() vs. perror().
- Gracefully handle the case where standard input is missing a newline at EOF. - Exit with status 1 instead of -1 (really 255) on error. - Add a Diagnostics section to the manual page documenting exit status. Approved by: rwatson
This commit is contained in:
parent
c71f01affe
commit
4e65ab954d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=106388
@ -89,6 +89,8 @@ Retrieve ACL for the directory
|
|||||||
Retrieve the default ACL for the directory
|
Retrieve the default ACL for the directory
|
||||||
.Pa / ,
|
.Pa / ,
|
||||||
if any.
|
if any.
|
||||||
|
.Sh DIAGNOSTICS
|
||||||
|
.Ex -std
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr setfacl 1 ,
|
.Xr setfacl 1 ,
|
||||||
.Xr acl 3 ,
|
.Xr acl 3 ,
|
||||||
|
@ -156,7 +156,7 @@ print_acl(char *path, acl_type_t type)
|
|||||||
|
|
||||||
error = stat(path, &sb);
|
error = stat(path, &sb);
|
||||||
if (error == -1) {
|
if (error == -1) {
|
||||||
perror(path);
|
warn("%s", path);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,14 +178,14 @@ print_acl(char *path, acl_type_t type)
|
|||||||
return(0);
|
return(0);
|
||||||
acl = acl_from_stat(sb);
|
acl = acl_from_stat(sb);
|
||||||
if (!acl) {
|
if (!acl) {
|
||||||
perror("acl_from_stat()");
|
warn("acl_from_stat()");
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
acl_text = acl_to_text(acl, 0);
|
acl_text = acl_to_text(acl, 0);
|
||||||
if (!acl_text) {
|
if (!acl_text) {
|
||||||
perror(path);
|
warn("%s", path);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,13 +200,12 @@ print_acl(char *path, acl_type_t type)
|
|||||||
static int
|
static int
|
||||||
print_acl_from_stdin(acl_type_t type)
|
print_acl_from_stdin(acl_type_t type)
|
||||||
{
|
{
|
||||||
char pathname[PATH_MAX];
|
char *p, pathname[PATH_MAX];
|
||||||
int carried_error = 0;
|
int carried_error = 0;
|
||||||
|
|
||||||
pathname[sizeof(pathname) - 1] = '\0';
|
|
||||||
while (fgets(pathname, (int)sizeof(pathname), stdin)) {
|
while (fgets(pathname, (int)sizeof(pathname), stdin)) {
|
||||||
/* remove the \n */
|
if ((p = strchr(pathname, '\n')) != NULL)
|
||||||
pathname[strlen(pathname) - 1] = '\0';
|
*p = '\0';
|
||||||
if (print_acl(pathname, type) == -1) {
|
if (print_acl(pathname, type) == -1) {
|
||||||
carried_error = -1;
|
carried_error = -1;
|
||||||
}
|
}
|
||||||
@ -236,7 +235,7 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (argc == 0) {
|
if (argc == 0) {
|
||||||
error = print_acl_from_stdin(type);
|
error = print_acl_from_stdin(type);
|
||||||
return(error);
|
return(error ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < argc; i++) {
|
for (i = 0; i < argc; i++) {
|
||||||
@ -251,5 +250,5 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return(carried_error);
|
return(carried_error ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user