Update lsextattr(8) to use the new extattr_list_*() APIs, rather than
using the somewhat more hackish variant on extattr_get_*() to retrieve the attribute list on an object. Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
This commit is contained in:
parent
bba9599afb
commit
52271f82d6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=115864
@ -1,5 +1,5 @@
|
|||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2002 Networks Associates Technology, Inc.
|
* Copyright (c) 2002, 2003 Networks Associates Technology, Inc.
|
||||||
* Copyright (c) 2002 Poul-Henning Kamp.
|
* Copyright (c) 2002 Poul-Henning Kamp.
|
||||||
* Copyright (c) 1999, 2000, 2001, 2002 Robert N. M. Watson
|
* Copyright (c) 1999, 2000, 2001, 2002 Robert N. M. Watson
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -175,12 +175,11 @@ main(int argc, char *argv[])
|
|||||||
err(-1, argv[0]);
|
err(-1, argv[0]);
|
||||||
argc--; argv++;
|
argc--; argv++;
|
||||||
|
|
||||||
if (what == EALS) {
|
if (what != EALS) {
|
||||||
attrname = "";
|
|
||||||
} else {
|
|
||||||
attrname = argv[0];
|
attrname = argv[0];
|
||||||
argc--; argv++;
|
argc--; argv++;
|
||||||
}
|
} else
|
||||||
|
attrname = NULL;
|
||||||
|
|
||||||
if (what == EASET) {
|
if (what == EASET) {
|
||||||
mkbuf(&buf, &buflen, strlen(argv[0]) + 1);
|
mkbuf(&buf, &buflen, strlen(argv[0]) + 1);
|
||||||
@ -213,6 +212,30 @@ main(int argc, char *argv[])
|
|||||||
continue;
|
continue;
|
||||||
break;
|
break;
|
||||||
case EALS:
|
case EALS:
|
||||||
|
if (flag_nofollow)
|
||||||
|
error = extattr_list_link(argv[arg_counter],
|
||||||
|
attrnamespace, NULL, 0);
|
||||||
|
else
|
||||||
|
error = extattr_list_file(argv[arg_counter],
|
||||||
|
attrnamespace, NULL, 0);
|
||||||
|
if (error < 0)
|
||||||
|
break;
|
||||||
|
mkbuf(&buf, &buflen, error);
|
||||||
|
if (flag_nofollow)
|
||||||
|
error = extattr_list_link(argv[arg_counter],
|
||||||
|
attrnamespace, buf, buflen);
|
||||||
|
else
|
||||||
|
error = extattr_list_file(argv[arg_counter],
|
||||||
|
attrnamespace, buf, buflen);
|
||||||
|
if (error < 0)
|
||||||
|
break;
|
||||||
|
if (!flag_quiet)
|
||||||
|
printf("%s\t", argv[arg_counter]);
|
||||||
|
for (i = 0; i < error; i += buf[i] + 1)
|
||||||
|
printf("%s%*.*s", i ? "\t" : "",
|
||||||
|
buf[i], buf[i], buf + i + 1);
|
||||||
|
printf("\n");
|
||||||
|
continue;
|
||||||
case EAGET:
|
case EAGET:
|
||||||
if (flag_nofollow)
|
if (flag_nofollow)
|
||||||
error = extattr_get_link(argv[arg_counter],
|
error = extattr_get_link(argv[arg_counter],
|
||||||
@ -233,13 +256,6 @@ main(int argc, char *argv[])
|
|||||||
break;
|
break;
|
||||||
if (!flag_quiet)
|
if (!flag_quiet)
|
||||||
printf("%s\t", argv[arg_counter]);
|
printf("%s\t", argv[arg_counter]);
|
||||||
if (what == EALS) {
|
|
||||||
for (i = 0; i < error; i += buf[i] + 1)
|
|
||||||
printf("%s%*.*s", i ? "\t" : "",
|
|
||||||
buf[i], buf[i], buf + i + 1);
|
|
||||||
printf("\n");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (flag_string) {
|
if (flag_string) {
|
||||||
mkbuf(&visbuf, &visbuflen, error * 4 + 1);
|
mkbuf(&visbuf, &visbuflen, error * 4 + 1);
|
||||||
strvisx(visbuf, buf, error,
|
strvisx(visbuf, buf, error,
|
||||||
|
Loading…
Reference in New Issue
Block a user