COMMENT(!MOD!zsh/attr
Builtins for manipulating extended attributes (xattr).
!MOD!)
The tt(zsh/attr) module is used for manipulating extended attributes.
The tt(-h) option causes all commands to operate on symbolic links instead
of their targets.
The builtins in this module are:

startitem()
findex(zgetattr)
cindex(extended attributes, xattr, getting from files)
item(tt(zgetattr) [ tt(-h) ] var(filename) var(attribute) [ var(parameter) ])(
Get the extended attribute var(attribute) from the specified
var(filename). If the optional argument var(parameter) is given, the
attribute is set on that parameter instead of being printed to stdout.
)
findex(zsetattr)
cindex(extended attributes, xattr, setting on files)
item(tt(zsetattr) [ tt(-h) ] var(filename) var(attribute) var(value))(
Set the extended attribute var(attribute) on the specified
var(filename) to var(value).
)
findex(zdelattr)
cindex(extended attributes, xattr, removing, deleting)
item(tt(zdelattr) [ tt(-h) ] var(filename) var(attribute))(
Remove the extended attribute var(attribute) from the specified
var(filename).
)
findex(zlistattr)
cindex(extended attributes, xattr, listing)
item(tt(zlistattr) [ tt(-h) ] var(filename) [ var(parameter) ])(
List the extended attributes currently set on the specified
var(filename). If the optional argument var(parameter) is given, the
list of attributes is set on that parameter instead of being printed to stdout.
)
enditem()

tt(zgetattr) and tt(zlistattr) allocate memory dynamically.  If the
attribute or list of attributes grows between the allocation and the call
to get them, they return 2.  On all other errors, 1 is returned.  This
allows the calling function to check for this case and retry.
