summaryrefslogtreecommitdiffstats
path: root/usr.sbin/extattr
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2003-06-05 04:30:00 +0000
committerrwatson <rwatson@FreeBSD.org>2003-06-05 04:30:00 +0000
commit8d5437ca29f38633b7ffcaae709f015bddc8f45e (patch)
tree974c6996973a1ea8a64dfb16456455a2dadb24d6 /usr.sbin/extattr
parent6b832784228aea42a7690c9e04992ef5a660f7f8 (diff)
downloadFreeBSD-src-8d5437ca29f38633b7ffcaae709f015bddc8f45e.zip
FreeBSD-src-8d5437ca29f38633b7ffcaae709f015bddc8f45e.tar.gz
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
Diffstat (limited to 'usr.sbin/extattr')
-rw-r--r--usr.sbin/extattr/rmextattr.c40
1 files changed, 28 insertions, 12 deletions
diff --git a/usr.sbin/extattr/rmextattr.c b/usr.sbin/extattr/rmextattr.c
index a86eb62..0c65d7b 100644
--- a/usr.sbin/extattr/rmextattr.c
+++ b/usr.sbin/extattr/rmextattr.c
@@ -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) 1999, 2000, 2001, 2002 Robert N. M. Watson
* All rights reserved.
@@ -175,12 +175,11 @@ main(int argc, char *argv[])
err(-1, argv[0]);
argc--; argv++;
- if (what == EALS) {
- attrname = "";
- } else {
+ if (what != EALS) {
attrname = argv[0];
argc--; argv++;
- }
+ } else
+ attrname = NULL;
if (what == EASET) {
mkbuf(&buf, &buflen, strlen(argv[0]) + 1);
@@ -213,6 +212,30 @@ main(int argc, char *argv[])
continue;
break;
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:
if (flag_nofollow)
error = extattr_get_link(argv[arg_counter],
@@ -233,13 +256,6 @@ main(int argc, char *argv[])
break;
if (!flag_quiet)
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) {
mkbuf(&visbuf, &visbuflen, error * 4 + 1);
strvisx(visbuf, buf, error,
OpenPOWER on IntegriCloud