diff --git a/search-index.js b/search-index.js
index cce185a41..a45a5ea7a 100644
--- a/search-index.js
+++ b/search-index.js
@@ -98,15 +98,15 @@ var searchIndex = JSON.parse('{\
"uptime":{"doc":"","t":[5],"n":["main"],"q":["uptime"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\
"users":{"doc":"","t":[5],"n":["main"],"q":["users"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\
"uu_arch":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_arch",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
-"uu_base32":{"doc":"","t":[0,5,5,3,5,11,11,12,11,11,5,5,12,11,0,5,12,11,11,11,12,7,7,7,7],"n":["base_common","uu_app","uumain","Config","base_app","borrow","borrow_mut","decode","from","from","get_input","handle_input","ignore_garbage","into","options","parse_base_cmd_args","to_read","try_from","try_into","type_id","wrap_cols","DECODE","FILE","IGNORE_GARBAGE","WRAP"],"q":["uu_base32","","","uu_base32::base_common","","","","","","","","","","","","","","","","","","uu_base32::base_common::options","","",""],"d":["","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0],"f":[null,[[],["app",3]],[[],["i32",15]],null,[[["str",15],["str",15]],["app",3]],[[]],[[]],null,[[]],[[["argmatches",3],["str",15]],[["result",4],["config",3],["string",3]]],[[["config",3],["stdin",3]],[["read",8],["box",3]]],[[["format",4],["bool",15],["str",15],["usize",15],["option",4]]],null,[[]],null,[[["str",15]],[["result",4],["config",3],["string",3]]],null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null],"p":[[3,"Config"]]},\
+"uu_base32":{"doc":"","t":[0,5,5,3,5,11,11,12,11,11,5,5,12,11,0,5,12,11,11,11,12,7,7,7,7],"n":["base_common","uu_app","uumain","Config","base_app","borrow","borrow_mut","decode","from","from","get_input","handle_input","ignore_garbage","into","options","parse_base_cmd_args","to_read","try_from","try_into","type_id","wrap_cols","DECODE","FILE","IGNORE_GARBAGE","WRAP"],"q":["uu_base32","","","uu_base32::base_common","","","","","","","","","","","","","","","","","","uu_base32::base_common::options","","",""],"d":["","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0],"f":[null,[[],["app",3]],[[],["i32",15]],null,[[["str",15],["str",15]],["app",3]],[[]],[[]],null,[[]],[[["argmatches",3],["str",15]],[["result",4],["config",3],["string",3]]],[[["config",3],["stdin",3]],[["read",8],["box",3]]],[[["bool",15],["str",15],["format",4],["usize",15],["option",4]]],null,[[]],null,[[["str",15]],[["result",4],["config",3],["string",3]]],null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null],"p":[[3,"Config"]]},\
"uu_base64":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_base64",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_basename":{"doc":"","t":[0,5,5,7,7,7,7],"n":["options","uu_app","uumain","MULTIPLE","NAME","SUFFIX","ZERO"],"q":["uu_basename","","","uu_basename::options","","",""],"d":["","","","","","",""],"i":[0,0,0,0,0,0,0],"f":[null,[[],["app",3]],[[],["i32",15]],null,null,null,null],"p":[]},\
"uu_basenc":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_basenc",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_cat":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_cat",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_chcon":{"doc":"","t":[0,5,5,7,7,7,7,7,7,7,0,0,0,7,7,7,7,7,7,7],"n":["options","uu_app","uumain","RANGE","RECURSIVE","REFERENCE","ROLE","TYPE","USER","VERBOSE","dereference","preserve_root","sym_links","DEREFERENCE","NO_DEREFERENCE","NO_PRESERVE_ROOT","PRESERVE_ROOT","FOLLOW_ARG_DIR_SYM_LINK","FOLLOW_DIR_SYM_LINKS","NO_FOLLOW_SYM_LINKS"],"q":["uu_chcon","","","uu_chcon::options","","","","","","","","","","uu_chcon::options::dereference","","uu_chcon::options::preserve_root","","uu_chcon::options::sym_links","",""],"d":["","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":[null,[[],["app",3]],[[],["i32",15]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"p":[]},\
-"uu_chgrp":{"doc":"","t":[0,0,5,5,3,8,3,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,5,5,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,5,7,7,7,7,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7],"n":["entries","options","uu_app","uumain","Group","Locate","Passwd","as_inner","as_inner","belongs_to","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","from","from","get_groups","get_groups_gnu","gid","gid","gid2grp","grp2gid","into","into","into_inner","into_inner","locate","locate","locate","locate","locate","name","name","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","uid","uid2usr","user_dir","user_info","user_passwd","user_shell","usr2uid","ARG_FILES","ARG_GROUP","RECURSIVE","REFERENCE","dereference","preserve_root","traverse","verbosity","DEREFERENCE","NO_DEREFERENCE","NO_PRESERVE","PRESERVE","EVERY","NO_TRAVERSE","TRAVERSE","CHANGES","QUIET","SILENT","VERBOSE"],"q":["uu_chgrp","","","","uu_chgrp::entries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uu_chgrp::options","","","","","","","","uu_chgrp::options::dereference","","uu_chgrp::options::preserve_root","","uu_chgrp::options::traverse","","","uu_chgrp::options::verbosity","","",""],"d":["Get password/group file entry","","","","","Fetch desired entry.","","","","This is a wrapper function for libc::getgrouplist.","","","","","","","","","From: …","The list of group IDs returned from GNU’s groups and GNU…","AKA group.gr_gid","AKA passwd.pw_gid","","","","","","","","","","","","AKA group.gr_name","AKA passwd.pw_name","","","","","","","","AKA passwd.pw_uid","","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,1,2,2,1,2,1,2,2,2,1,2,0,0,1,2,0,0,1,2,1,2,3,1,1,2,2,1,2,2,1,2,1,2,1,2,2,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":[null,null,[[],["app",3]],[[],["i32",15]],null,null,null,[[],["group",3]],[[],["passwd",3]],[[],[["global",3],["u32",15],["vec",3]]],[[]],[[]],[[]],[[]],[[],["passwd",3]],[[]],[[]],[[]],[[],[["vec",3],["error",3],["result",4]]],[[["u32",15],["option",4]],[["vec",3],["error",3],["result",4]]],[[],["u32",15]],[[],["u32",15]],[[["u32",15]],[["string",3],["error",3],["result",4]]],[[["str",15]],[["result",4],["u32",15],["error",3]]],[[]],[[]],[[],["group",3]],[[],["passwd",3]],[[],[["result",4],["error",3]]],[[["str",15]],[["group",3],["result",4],["error",3]]],[[["u32",15]],[["group",3],["result",4],["error",3]]],[[["u32",15]],[["result",4],["passwd",3],["error",3]]],[[["str",15]],[["result",4],["passwd",3],["error",3]]],[[],[["cow",4],["str",15]]],[[],[["cow",4],["str",15]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["u32",15]],[[["u32",15]],[["string",3],["error",3],["result",4]]],[[],[["cow",4],["str",15]]],[[],[["cow",4],["str",15]]],[[],[["cow",4],["str",15]]],[[],[["cow",4],["str",15]]],[[["str",15]],[["result",4],["u32",15],["error",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"p":[[3,"Group"],[3,"Passwd"],[8,"Locate"]]},\
-"uu_chmod":{"doc":"","t":[5,5,5,5],"n":["is_symlink","strip_minus_from_mode","uu_app","uumain"],"q":["uu_chmod","","",""],"d":["","","",""],"i":[0,0,0,0],"f":[[[["path",3],["asref",8]],["bool",15]],[[["vec",3]],["bool",15]],[[],["app",3]],[[],["i32",15]]],"p":[]},\
-"uu_chown":{"doc":"","t":[3,8,3,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,5,5,3,8,3,5,5,5,5,10,5,5,7,7,7,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7],"n":["Group","Locate","Passwd","as_inner","as_inner","belongs_to","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","entries","from","from","gid","gid","into","into","into_inner","into_inner","locate","locate","locate","locate","locate","name","name","options","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","uid","user_dir","user_info","user_passwd","user_shell","uu_app","uumain","Group","Locate","Passwd","get_groups","get_groups_gnu","gid2grp","grp2gid","locate","uid2usr","usr2uid","FROM","RECURSIVE","REFERENCE","dereference","preserve_root","traverse","verbosity","DEREFERENCE","NO_DEREFERENCE","NO_PRESERVE","PRESERVE","EVERY","NO_TRAVERSE","TRAVERSE","CHANGES","QUIET","SILENT","VERBOSE"],"q":["uu_chown","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uu_chown::entries","","","","","","","","","","uu_chown::options","","","","","","","uu_chown::options::dereference","","uu_chown::options::preserve_root","","uu_chown::options::traverse","","","uu_chown::options::verbosity","","",""],"d":["","Fetch desired entry.","","","","This is a wrapper function for libc::getgrouplist.","","","","","","","Get password/group file entry","","","AKA group.gr_gid","AKA passwd.pw_gid","","","","","","","","","","AKA group.gr_name","AKA passwd.pw_name","","","","","","","","","AKA passwd.pw_uid","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","","","Fetch desired entry.","","From: …","The list of group IDs returned from GNU’s groups and GNU…","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,1,2,2,1,2,1,2,2,2,0,1,2,1,2,1,2,1,2,3,1,1,2,2,1,2,0,2,1,2,1,2,1,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":[null,null,null,[[],["group",3]],[[],["passwd",3]],[[],[["u32",15],["vec",3],["global",3]]],[[]],[[]],[[]],[[]],[[],["passwd",3]],[[]],null,[[]],[[]],[[],["u32",15]],[[],["u32",15]],[[]],[[]],[[],["group",3]],[[],["passwd",3]],[[],[["result",4],["error",3]]],[[["str",15]],[["group",3],["result",4],["error",3]]],[[["u32",15]],[["group",3],["result",4],["error",3]]],[[["u32",15]],[["result",4],["passwd",3],["error",3]]],[[["str",15]],[["result",4],["passwd",3],["error",3]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["u32",15]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],["app",3]],[[],["i32",15]],null,null,null,[[],[["error",3],["vec",3],["result",4]]],[[["u32",15],["option",4]],[["error",3],["vec",3],["result",4]]],[[["u32",15]],[["error",3],["result",4],["string",3]]],[[["str",15]],[["result",4],["u32",15],["error",3]]],[[],[["result",4],["error",3]]],[[["u32",15]],[["error",3],["result",4],["string",3]]],[[["str",15]],[["result",4],["u32",15],["error",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"p":[[3,"Group"],[3,"Passwd"],[8,"Locate"]]},\
+"uu_chgrp":{"doc":"","t":[0,0,5,5,3,8,3,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,5,5,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,5,7,7,7,7,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7],"n":["entries","options","uu_app","uumain","Group","Locate","Passwd","as_inner","as_inner","belongs_to","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","from","from","get_groups","get_groups_gnu","gid","gid","gid2grp","grp2gid","into","into","into_inner","into_inner","locate","locate","locate","locate","locate","name","name","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","uid","uid2usr","user_dir","user_info","user_passwd","user_shell","usr2uid","ARG_FILES","ARG_GROUP","RECURSIVE","REFERENCE","dereference","preserve_root","traverse","verbosity","DEREFERENCE","NO_DEREFERENCE","NO_PRESERVE","PRESERVE","EVERY","NO_TRAVERSE","TRAVERSE","CHANGES","QUIET","SILENT","VERBOSE"],"q":["uu_chgrp","","","","uu_chgrp::entries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uu_chgrp::options","","","","","","","","uu_chgrp::options::dereference","","uu_chgrp::options::preserve_root","","uu_chgrp::options::traverse","","","uu_chgrp::options::verbosity","","",""],"d":["Get password/group file entry","","","","","Fetch desired entry.","","","","This is a wrapper function for libc::getgrouplist.","","","","","","","","","From: …","The list of group IDs returned from GNU’s groups and GNU…","AKA group.gr_gid","AKA passwd.pw_gid","","","","","","","","","","","","AKA group.gr_name","AKA passwd.pw_name","","","","","","","","AKA passwd.pw_uid","","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,1,2,2,1,2,1,2,2,2,1,2,0,0,1,2,0,0,1,2,1,2,3,1,1,2,2,1,2,2,1,2,1,2,1,2,2,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":[null,null,[[],["app",3]],[[],["i32",15]],null,null,null,[[],["group",3]],[[],["passwd",3]],[[],[["global",3],["u32",15],["vec",3]]],[[]],[[]],[[]],[[]],[[],["passwd",3]],[[]],[[]],[[]],[[],[["vec",3],["error",3],["result",4]]],[[["u32",15],["option",4]],[["vec",3],["error",3],["result",4]]],[[],["u32",15]],[[],["u32",15]],[[["u32",15]],[["string",3],["error",3],["result",4]]],[[["str",15]],[["result",4],["u32",15],["error",3]]],[[]],[[]],[[],["group",3]],[[],["passwd",3]],[[],[["result",4],["error",3]]],[[["str",15]],[["error",3],["group",3],["result",4]]],[[["u32",15]],[["error",3],["group",3],["result",4]]],[[["u32",15]],[["result",4],["error",3],["passwd",3]]],[[["str",15]],[["result",4],["error",3],["passwd",3]]],[[],[["cow",4],["str",15]]],[[],[["cow",4],["str",15]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["u32",15]],[[["u32",15]],[["string",3],["error",3],["result",4]]],[[],[["cow",4],["str",15]]],[[],[["cow",4],["str",15]]],[[],[["cow",4],["str",15]]],[[],[["cow",4],["str",15]]],[[["str",15]],[["result",4],["u32",15],["error",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"p":[[3,"Group"],[3,"Passwd"],[8,"Locate"]]},\
+"uu_chmod":{"doc":"","t":[5,5,5,5],"n":["is_symlink","strip_minus_from_mode","uu_app","uumain"],"q":["uu_chmod","","",""],"d":["","","",""],"i":[0,0,0,0],"f":[[[["asref",8],["path",3]],["bool",15]],[[["vec",3]],["bool",15]],[[],["app",3]],[[],["i32",15]]],"p":[]},\
+"uu_chown":{"doc":"","t":[3,8,3,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,5,5,3,8,3,5,5,5,5,10,5,5,7,7,7,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7],"n":["Group","Locate","Passwd","as_inner","as_inner","belongs_to","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","entries","from","from","gid","gid","into","into","into_inner","into_inner","locate","locate","locate","locate","locate","name","name","options","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","uid","user_dir","user_info","user_passwd","user_shell","uu_app","uumain","Group","Locate","Passwd","get_groups","get_groups_gnu","gid2grp","grp2gid","locate","uid2usr","usr2uid","FROM","RECURSIVE","REFERENCE","dereference","preserve_root","traverse","verbosity","DEREFERENCE","NO_DEREFERENCE","NO_PRESERVE","PRESERVE","EVERY","NO_TRAVERSE","TRAVERSE","CHANGES","QUIET","SILENT","VERBOSE"],"q":["uu_chown","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uu_chown::entries","","","","","","","","","","uu_chown::options","","","","","","","uu_chown::options::dereference","","uu_chown::options::preserve_root","","uu_chown::options::traverse","","","uu_chown::options::verbosity","","",""],"d":["","Fetch desired entry.","","","","This is a wrapper function for libc::getgrouplist.","","","","","","","Get password/group file entry","","","AKA group.gr_gid","AKA passwd.pw_gid","","","","","","","","","","AKA group.gr_name","AKA passwd.pw_name","","","","","","","","","AKA passwd.pw_uid","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","","","Fetch desired entry.","","From: …","The list of group IDs returned from GNU’s groups and GNU…","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,1,2,2,1,2,1,2,2,2,0,1,2,1,2,1,2,1,2,3,1,1,2,2,1,2,0,2,1,2,1,2,1,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":[null,null,null,[[],["group",3]],[[],["passwd",3]],[[],[["u32",15],["vec",3],["global",3]]],[[]],[[]],[[]],[[]],[[],["passwd",3]],[[]],null,[[]],[[]],[[],["u32",15]],[[],["u32",15]],[[]],[[]],[[],["group",3]],[[],["passwd",3]],[[],[["result",4],["error",3]]],[[["str",15]],[["group",3],["result",4],["error",3]]],[[["u32",15]],[["group",3],["result",4],["error",3]]],[[["u32",15]],[["error",3],["passwd",3],["result",4]]],[[["str",15]],[["error",3],["passwd",3],["result",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["u32",15]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],["app",3]],[[],["i32",15]],null,null,null,[[],[["error",3],["vec",3],["result",4]]],[[["u32",15],["option",4]],[["error",3],["vec",3],["result",4]]],[[["u32",15]],[["error",3],["result",4],["string",3]]],[[["str",15]],[["result",4],["u32",15],["error",3]]],[[],[["result",4],["error",3]]],[[["u32",15]],[["error",3],["result",4],["string",3]]],[[["str",15]],[["result",4],["u32",15],["error",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"p":[[3,"Group"],[3,"Passwd"],[8,"Locate"]]},\
"uu_chroot":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_chroot",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_cksum":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_cksum",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_comm":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_comm",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
@@ -159,7 +159,7 @@ var searchIndex = JSON.parse('{\
"uu_printenv":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_printenv",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_printf":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_printf",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_ptx":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_ptx",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
-"uu_pwd":{"doc":"","t":[5,5,5],"n":["absolute_path","uu_app","uumain"],"q":["uu_pwd","",""],"d":["","",""],"i":[0,0,0],"f":[[[["path",3]],[["result",6],["pathbuf",3]]],[[],["app",3]],[[],["i32",15]]],"p":[]},\
+"uu_pwd":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_pwd",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_readlink":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_readlink",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_realpath":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_realpath",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_relpath":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_relpath",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
@@ -197,7 +197,7 @@ var searchIndex = JSON.parse('{\
"uu_who":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_who",""],"d":["",""],"i":[0,0],"f":[[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_whoami":{"doc":"","t":[5,5,5],"n":["exec","uu_app","uumain"],"q":["uu_whoami","",""],"d":["","",""],"i":[0,0,0],"f":[[[]],[[],["app",3]],[[],["i32",15]]],"p":[]},\
"uu_yes":{"doc":"","t":[5,5,5],"n":["exec","uu_app","uumain"],"q":["uu_yes","",""],"d":["","",""],"i":[0,0,0],"f":[[[],["result",6]],[[],["app",3]],[[],["i32",15]]],"p":[]},\
-"uucore":{"doc":"","t":[8,13,4,13,13,4,13,13,11,14,5,5,0,11,11,11,11,11,11,0,14,14,0,0,0,5,14,11,11,11,11,0,0,5,14,11,11,0,14,14,14,14,14,14,0,0,0,0,0,0,0,0,14,14,5,14,14,14,14,14,14,0,14,14,11,11,11,11,11,11,14,5,0,0,13,7,7,4,13,4,13,13,13,13,13,0,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,7,7,7,5,5,5,3,3,11,11,11,11,12,11,11,11,11,12,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,12,13,13,13,13,13,13,13,3,13,4,6,13,4,4,13,13,13,11,11,11,11,11,11,11,11,11,11,5,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,3,8,3,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,5,5,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,5,12,3,8,8,3,6,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,10,12,12,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,13,13,4,11,11,11,11,5,11,11,11,11,5,5,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,8,8,3,3,3,5,10,11,12,12,12,10,10,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,10,11,10,11,11,11,11,10,11,12,10,11,11,11,11,11,10,11,12,12,12,10,11,11,11,10,5,5,5,5,12,5,3,5,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,5,5,5,5,5,5,13,4,13,11,11,11,11,11,11,11,11,11,5,11,11,11,11,5,13,13,3,17,17,17,13,4,13,13,13,13,13,3,4,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,0,11,11,11,12,12,11,11,11,11,11,11,12,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,3,8,3,5,5,5,5,10,5,5,8,13,4,13,11,11,11,11,11,11,11,11,11,5,5,5,5,11,11,10,11,11,11,11,11,11,11,10,3,11,11,11,5,5,11,11,11,11,11,12,11,12,11,11,11,11,11,3,11,11,12,11,11,11,11,11,11,11,11,7,7,5,5,5,17,17,17,7,17,17,17,17,17,17,17,17,17,17,17,3,3,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,5,5],"n":["Args","Complete","ConversionResult","ConvertLossy","Ignore","InvalidEncodingHandling","Lossy","Panic","accept_any","app","args","args_os","backup_control","borrow","borrow","borrow_mut","borrow_mut","collect_str","collect_str_lossy","coreopts","crash","crash_if_err","encoding","entries","error","execution_phrase","exit","expect_complete","expect_lossy","from","from","fs","fsext","get_utility_is_second_arg","has","into","into","mode","msg_expects_no_more_than_one_of","msg_expects_one_of","msg_invalid_input","msg_invalid_opt_use","msg_opt_invalid_should_be","msg_opt_only_usable_if","os","panic","parse_size","parse_time","perms","process","ranges","ringbuffer","safe_write","safe_writeln","set_utility_is_second_arg","show","show_error","show_error_custom_description","show_if_err","show_usage_error","show_warning","signals","snippet_list_join","snippet_list_join_oxford_comma","try_from","try_from","try_into","try_into","type_id","type_id","uio_error","util_name","utmpx","version_cmp","AmbiguousArgument","BACKUP_CONTROL_LONG_HELP","BACKUP_CONTROL_VALUES","BackupError","BackupImpossible","BackupMode","ExistingBackup","InvalidArgument","NoBackup","NumberedBackup","SimpleBackup","arguments","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","code","determine_backup_mode","determine_backup_suffix","eq","eq","fmt","fmt","fmt","from","from","get_backup_path","into","into","ne","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","usage","OPT_BACKUP","OPT_BACKUP_NO_ARG","OPT_SUFFIX","backup","backup_no_args","suffix","CoreOptions","HelpText","borrow","borrow","borrow_mut","borrow_mut","display_usage","from","from","into","into","long_help","name","new","optflag","optflagmulti","optflagopt","optmulti","optopt","parse","summary","syntax","try_from","try_from","try_into","try_into","type_id","type_id","usage","version","Base16","Base2Lsbf","Base2Msbf","Base32","Base32Hex","Base64","Base64Url","Data","Decode","DecodeError","DecodeResult","DecodeZ85","EncodeError","Format","Io","Z85","Z85InputLenNotMultipleOf4","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","decode","decode","encode","encode","fmt","fmt","from","from","from","from","from","from","from","ignore_garbage","into","into","into","into","line_wrap","new","source","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","wrap_print","wrap_write","Group","Locate","Passwd","as_inner","as_inner","belongs_to","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","from","from","get_groups","get_groups_gnu","gid","gid","gid2grp","grp2gid","into","into","into_inner","into_inner","locate","locate","locate","locate","locate","name","name","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","uid","uid2usr","user_dir","user_info","user_passwd","user_shell","usr2uid","0","ExitCode","FromIo","UError","UIoError","UResult","USimpleError","UUsageError","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","code","code","code","code","code","code","code","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","get_exit_code","into","into","into","into","map_err_context","message","message","new","new","new","new","set_exit_code","strip_errno","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","usage","usage","usage","Existing","Logical","Missing","MissingHandling","None","Normal","Physical","ResolveMode","borrow","borrow","borrow_mut","borrow_mut","canonicalize","clone","clone","clone_into","clone_into","display_permissions","display_permissions_unix","eq","eq","fmt","fmt","from","from","into","into","normalize_path","resolve_relative_path","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","BirthTime","FsMeta","FsUsage","MountInfo","StatFs","StatFs","avail_blocks","avail_blocks","bavail","bavail_top_bit_set","bfree","birth","block_size","block_size","blocks","blocksize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","dev_id","dev_name","dummy","eq","f_bavail","f_bavail","f_bfree","f_bfree","f_blocks","f_blocks","f_bsize","f_bsize","f_ffree","f_ffree","f_files","f_files","f_frsize","f_frsize","f_fsid","f_fsid","f_namelen","f_namelen","f_type","f_type","ffree","files","fmt","fmt","fmt","free_blocks","free_blocks","free_file_nodes","free_file_nodes","from","from","from","fs_type","fs_type","fs_type","fsid","fsid","hash","into","into","into","io_size","io_size","mount_dir","mount_option","mount_root","namelen","namelen","ne","new","pretty_birth","pretty_filetype","pretty_fstype","pretty_time","read_fs_list","remote","statfs","statfs_fn","statfs_fn","to_owned","to_owned","to_owned","total_blocks","total_blocks","total_file_nodes","total_file_nodes","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","parse_mode","parse_numeric","parse_symbolic","is_wsl_1","is_wsl_2","mute_sigpipe_panic","ParseFailure","ParseSizeError","SizeTooBig","borrow","borrow_mut","description","eq","fmt","fmt","from","into","ne","parse_size","to_string","try_from","try_into","type_id","from_str","All","Changes","ChownExecutor","FTS_COMFOLLOW","FTS_LOGICAL","FTS_PHYSICAL","Group","IfFrom","Normal","Silent","User","UserGroup","Verbose","Verbosity","VerbosityLevel","bit_flag","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","dereference","dest_gid","dest_uid","entries","eq","eq","exec","files","filter","fmt","fmt","from","from","from","from","groups_only","into","into","into","into","level","ne","preserve_root","recursive","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verbosity","wrap_chown","Group","Locate","Passwd","get_groups","get_groups_gnu","gid2grp","grp2gid","locate","uid2usr","usr2uid","ChildExt","Code","ExitStatus","Signal","borrow","borrow_mut","clone","clone_into","code","eq","fmt","fmt","from","getegid","geteuid","getgid","getuid","into","ne","send_signal","signal","success","to_owned","to_string","try_from","try_into","type_id","wait_or_timeout","Range","borrow","borrow_mut","cmp","complement","contain","eq","fmt","from","from_list","from_str","high","into","low","ne","partial_cmp","try_from","try_into","type_id","RingBuffer","borrow","borrow_mut","data","from","from_iter","into","new","push_back","try_from","try_into","type_id","ALL_SIGNALS","DEFAULT_SIGNAL","is_signal","signal_by_name_or_value","signal_name_by_value","ACCOUNTING","BOOT_TIME","DEAD_PROCESS","DEFAULT_FILE","EMPTY","INIT_PROCESS","LOGIN_PROCESS","NEW_TIME","OLD_TIME","RUN_LVL","USER_PROCESS","UT_HOSTSIZE","UT_IDSIZE","UT_LINESIZE","UT_NAMESIZE","Utmpx","UtmpxIter","borrow","borrow","borrow_mut","borrow_mut","canon_host","endutxent","exit_status","from","from","getutxent","host","into","into","into_inner","into_iter","is_user_process","iter_all_records","login_time","next","pid","read_from","record_type","setutxent","terminal_suffix","try_from","try_from","try_into","try_into","tty_device","type_id","type_id","user","utmpxname","version_cmp"],"q":["uucore","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::backup_control","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::backup_control::arguments","","","","","","uucore::coreopts","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::encoding","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::entries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::fs","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::fsext","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::mode","","","uucore::os","","uucore::panic","uucore::parse_size","","","","","","","","","","","","","","","","","uucore::parse_time","uucore::perms","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::perms::entries","","","","","","","","","","uucore::process","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::ranges","","","","","","","","","","","","","","","","","","","uucore::ringbuffer","","","","","","","","","","","","uucore::signals","","","","","uucore::utmpx","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::version_cmp"],"d":["","","","","","","","","","","","","Implement GNU-style backup functionality.","","","","","Converts each iterator item to a String and collects …","convenience function for a more slim interface","","Display the provided error message, then exit() with the …","Unwraps the Result. Instead of panicking, it exists the …","","Get password/group file entry","All utils return exit with an exit code. Usually, the …","Derive the complete execution phrase for “usage”.","Calls exit() with the provided exit code.","","","","","Set of functions to manage files and symlinks","Set of functions to manage file systems","","","","","Set of functions to parse modes","","","","","","","","","","","Common functions to manage permissions","Set of functions to manage IDs","","A fixed-size ring buffer.","","","","","Show an error to stderr in a similar style to GNU …","Show a warning to stderr in a similar style to GNU …","","Show a bad invocation help message in a similar style to …","","","","","","","","","","","Shorthand to construct [UIoError]-instances.","Derive the utility name.","Aims to provide platform-independent methods to obtain …","","An ambiguous argument (e.g. ‘n’) was given as backup …","","","Backup error types.","Currently unused","Available backup modes.","Argument ‘existing’, ‘nil’","An invalid argument (e.g. ‘foo’) was given as backup …","Argument ‘none’, ‘off’","Argument ‘numbered’, ‘t’","Argument ‘simple’, ‘never’","Arguments for backup-related functionality.","","","","","","","","Determine the “mode” for the backup operation to …","Obtain the suffix to use for a backup.","","","","","","","","","","","","","","","","","","","","","","","","‘–backup’ argument","‘-b’ argument","‘-S, –suffix’ argument","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Fetch desired entry.","","","","This is a wrapper function for libc::getgrouplist.","","","","","","","","","From: …","The list of group IDs returned from GNU’s groups and GNU…","AKA group.gr_gid","AKA passwd.pw_gid","","","","","","","","","","","","AKA group.gr_name","AKA passwd.pw_name","","","","","","","","AKA passwd.pw_uid","","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","","A special error type that does not print any message when …","Enables the conversion from [std::io::Error] to [UError] …","Custom errors defined by the utils and uucore.","Wrapper type around [std::io::Error].","Result type that should be returned by all utils.","A simple error type with an exit code and a message that …","","","","","","","","","","Error code of a custom error.","Error code of a custom error.","","","","","","","","","","","","","","","","","","Get the last exit code set with [set_exit_code]. The …","","","","","","","","","","","","Set the exit code for the program if uumain returns Ok(())…","Strip the trailing “ (os error XX)“ from io error …","","","","","","","","","","","","","","","","","Print usage help to a custom error.","Print usage help to a custom error.","","Resolve symbolic links, ignoring errors on the final …","Resolve ‘..’ elements before symlinks","Resolve symbolic links, ignoring errors on the non-final …","Controls how symbolic links should be handled when …","Do not resolve any symbolic links.","Return an error if any part of the path is missing.","Resolve symlinks as encountered when processing the path","Controls when symbolic links are resolved","","","","","Return the canonical, absolute form of a path.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Read file system list.","","","","","","","","","","","","","","","","","","","","","","","","Test if the program is running under WSL","","","","","","","","","","","","","","","Parse a size string into a number of bytes.","","","","","","","","","","","","","","","","","","","","The various level of verbosity","","","","","","","","","","","","","","","","","Get password/group file entry","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Perform the change of owner on a path with the various …","","Fetch desired entry.","","From: …","The list of group IDs returned from GNU’s groups and GNU…","","","","","","Missing methods for Child objects","","","","","","","","","","","","","getegid() returns the effective group ID of the calling …","geteuid() returns the effective user ID of the calling …","getgid() returns the real group ID of the calling process.","getuid() returns the real user ID of the calling process.","","","Send a signal to a Child process.","","","","","","","","Wait for a process to finish or return after the …","","","","","","Test if at least one of the given Ranges contain the …","","","","","","","","","","","","","","A fixed-size ring buffer backed by a VecDeque.","","","","","","","","Append a value to the end of the ring buffer.","","","","","","","","","","","","","","","","","","","","","","","","","Iterator of login records","","","","","Canonicalize host name using DNS","","A.K.A. ut.ut_exit","","","","A.K.A. ut.ut_host","","","Consumes the Utmpx, returning the underlying C struct …","","","","A.K.A. ut.ut_tv","","A.K.A. ut.ut_pid","Sets the name of the utmpx-format file for the other …","A.K.A. ut.ut_type","","A.K.A. ut.ut_id","","","","","A.K.A. ut.ut_line","","","A.K.A. ut.ut_user","",""],"i":[0,1,0,2,2,0,1,2,1,0,0,0,0,2,1,2,1,3,3,0,0,0,0,0,0,0,0,1,1,2,1,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,1,2,1,0,0,0,0,4,0,0,0,4,0,5,4,5,5,5,0,5,4,5,4,5,5,4,0,0,5,4,5,4,4,5,4,0,5,4,4,5,4,5,4,5,4,5,4,4,0,0,0,0,0,0,0,0,6,7,6,7,6,6,7,6,7,6,6,7,7,7,7,7,7,7,6,6,6,7,6,7,6,7,7,6,8,8,8,8,8,8,8,0,9,0,0,9,0,0,9,8,10,10,11,9,8,10,11,9,8,8,8,0,11,0,11,9,9,10,11,9,9,9,9,8,11,10,11,9,8,11,11,9,8,9,10,11,9,8,10,11,9,8,10,11,9,8,0,0,0,0,0,12,13,13,12,13,12,13,13,13,12,13,0,0,12,13,0,0,12,13,12,13,14,12,12,13,13,12,13,13,12,13,12,13,12,13,13,0,13,13,13,13,0,15,0,0,0,0,0,0,0,16,17,18,15,16,17,18,15,19,19,16,17,15,16,17,16,16,17,17,18,18,15,15,16,17,18,15,0,16,17,18,15,20,16,17,16,17,18,15,0,0,16,17,18,15,16,17,18,15,16,17,18,15,16,17,18,15,19,19,17,21,22,21,0,22,21,22,0,21,22,21,22,0,21,22,21,22,0,0,21,22,21,22,21,22,21,22,0,0,21,22,21,22,21,22,21,22,0,0,0,0,0,0,23,24,25,25,25,26,23,24,25,25,27,25,24,27,25,24,27,25,24,27,25,24,27,27,27,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,27,25,24,23,24,23,24,27,25,24,23,24,27,23,24,24,27,25,24,23,24,27,27,27,23,24,24,25,26,0,0,0,0,27,0,0,0,27,25,24,23,24,23,24,27,25,24,27,25,24,27,25,24,0,0,0,0,0,0,28,0,28,28,28,28,28,28,28,28,28,28,0,28,28,28,28,0,29,30,0,0,0,0,29,0,30,30,29,29,30,0,0,31,29,31,30,32,29,31,30,32,30,32,30,32,31,31,31,0,30,32,31,31,31,30,32,29,31,30,32,32,29,31,30,32,32,32,31,31,30,32,29,31,30,32,29,31,30,32,29,31,30,32,31,0,0,0,0,0,0,0,0,14,0,0,0,33,0,33,33,33,33,33,33,33,33,33,33,0,0,0,0,33,33,34,33,33,33,33,33,33,33,34,0,35,35,35,0,0,35,35,35,35,35,35,35,35,35,35,35,35,35,0,36,36,36,36,36,36,36,36,36,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,38,37,38,37,0,37,37,38,0,37,37,38,37,38,37,37,37,38,37,38,37,0,37,37,38,37,38,37,37,38,37,0,0],"f":[null,null,null,null,null,null,null,null,[[],[["string",3],["vec",3]]],null,[[]],[[]],null,[[]],[[]],[[]],[[]],[[["invalidencodinghandling",4]],["conversionresult",4]],[[],["conversionresult",4]],null,null,null,null,null,null,[[],["string",3]],null,[[["str",15]],[["string",3],["vec",3]]],[[["str",15]],[["string",3],["vec",3]]],[[]],[[]],null,null,[[],["bool",15]],null,[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],null,null,null,null,null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,[[],["string",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["backupmode",4]],[[]],[[],["i32",15]],[[["argmatches",3]],[["backupmode",4],["uresult",6]]],[[["argmatches",3]],["string",3]],[[["backupmode",4]],["bool",15]],[[["backuperror",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["path",3],["backupmode",4],["str",15]],[["pathbuf",3],["option",4]]],[[]],[[]],[[["backuperror",4]],["bool",15]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["bool",15]],null,null,null,[[],["arg",3]],[[],["arg",3]],[[],["arg",3]],null,null,[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],null,null,[[["helptext",3]]],[[["str",15]],["coreoptions",3]],[[["str",15]],["coreoptions",3]],[[["str",15]],["coreoptions",3]],[[["str",15]],["coreoptions",3]],[[["str",15]],["coreoptions",3]],[[["vec",3],["string",3]],["matches",3]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[["str",15]],["string",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["format",4]],[[]],[[["format",4]],["decoderesult",6]],[[],["decoderesult",6]],[[["format",4]],[["result",4],["encodeerror",4],["string",3]]],[[],[["result",4],["encodeerror",4],["string",3]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[["decodeerror",3]]],[[["error",3]]],[[["decodeerror",4]]],[[]],[[["bool",15]]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[["format",4]]],[[],[["error",8],["option",4]]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["data",3],["string",3]]],[[["write",8],["usize",15],["string",3]],["result",6]],null,null,null,[[],["group",3]],[[],["passwd",3]],[[],[["gid_t",6],["vec",3]]],[[]],[[]],[[]],[[]],[[],["passwd",3]],[[]],[[]],[[]],[[],[["ioresult",6],["vec",3]]],[[["u32",15],["option",4]],[["ioresult",6],["vec",3]]],[[],["gid_t",6]],[[],["gid_t",6]],[[["gid_t",6]],[["ioresult",6],["string",3]]],[[["str",15]],[["gid_t",6],["ioresult",6]]],[[]],[[]],[[],["group",3]],[[],["passwd",3]],[[],["ioresult",6]],[[["str",15]],["ioresult",6]],[[["gid_t",6]],["ioresult",6]],[[["uid_t",6]],["ioresult",6]],[[["str",15]],["ioresult",6]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["uid_t",6]],[[["uid_t",6]],[["ioresult",6],["string",3]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[["str",15]],[["ioresult",6],["uid_t",6]]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["i32",15]],[[],["i32",15]],[[],["i32",15]],[[],["i32",15]],[[],["i32",15]],null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[],["i32",15]],[[]],[[]],[[]],[[]],[[]],null,null,[[["into",8],["i32",15],["string",3]],[["box",3],["uerror",8]]],[[["into",8],["i32",15],["string",3]],[["box",3],["uerror",8]]],[[["into",8],["string",3],["errorkind",4]],[["box",3],["uerror",8]]],[[["i32",15]],[["box",3],["uerror",8]]],[[["i32",15]]],[[["error",3]],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["resolvemode",4],["missinghandling",4],["path",3],["asref",8]],[["ioresult",6],["pathbuf",3]]],[[],["missinghandling",4]],[[],["resolvemode",4]],[[]],[[]],[[["bool",15],["metadata",3]],["string",3]],[[["bool",15],["mode_t",6]],["string",3]],[[["missinghandling",4]],["bool",15]],[[["resolvemode",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["path",3]],["pathbuf",3]],[[["path",3]],[["cow",4],["path",3]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,[[],["i32",15]],[[],["u64",15]],[[],["u64",15]],null,null,null,[[],["string",3]],[[],["i64",15]],[[],["i64",15]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["mountinfo",3]],[[],["fsusage",3]],[[],["statfs",3]],[[]],[[]],[[]],null,null,null,[[["statfs",3]],["bool",15]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4]]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[]],[[]],[[]],[[],["i64",15]],[[],["i64",15]],null,[[],["u64",15]],[[],["u64",15]],[[]],[[]],[[]],[[]],[[],["u64",15]],[[],["u64",15]],null,null,null,[[],["u64",15]],[[],["u64",15]],[[["statfs",3]],["bool",15]],[[["statfs",3]],["fsusage",3]],[[],["string",3]],[[["u64",15],["mode_t",6]],["str",15]],[[["i64",15]],[["str",15],["cow",4]]],[[["i64",15]],["string",3]],[[],[["mountinfo",3],["vec",3]]],null,[[["path",3],["asref",8]],[["string",3],["statfs",3],["result",4]]],null,[[],["i32",15]],[[]],[[]],[[]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["str",15]],[["string",3],["result",4],["mode_t",6]]],[[["u32",15],["str",15]],[["u32",15],["result",4],["string",3]]],[[["u32",15],["str",15],["bool",15]],[["u32",15],["result",4],["string",3]]],[[],["bool",15]],[[],["bool",15]],[[]],null,null,null,[[]],[[]],[[],["str",15]],[[["parsesizeerror",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["result",4],["error",3]]],[[]],[[]],[[["parsesizeerror",4]],["bool",15]],[[["str",15]],[["result",4],["usize",15],["parsesizeerror",4]]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["str",15]],[["duration",3],["result",4],["string",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["verbositylevel",4]],[[],["verbosity",3]],[[]],[[]],null,null,null,null,[[["verbositylevel",4]],["bool",15]],[[["verbosity",3]],["bool",15]],[[],["uresult",6]],null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],null,[[["verbosity",3]],["bool",15]],null,null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,[[["metadata",3],["path",3],["asref",8],["bool",15],["u32",15],["option",4],["verbosity",3]],[["result",4],["string",3]]],null,null,null,[[],[["ioresult",6],["vec",3]]],[[["u32",15],["option",4]],[["ioresult",6],["vec",3]]],[[["gid_t",6]],[["ioresult",6],["string",3]]],[[["str",15]],[["gid_t",6],["ioresult",6]]],[[],["ioresult",6]],[[["uid_t",6]],[["ioresult",6],["string",3]]],[[["str",15]],[["ioresult",6],["uid_t",6]]],null,null,null,null,[[]],[[]],[[],["exitstatus",4]],[[]],[[],[["option",4],["i32",15]]],[[["exitstatus",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[],["gid_t",6]],[[],["uid_t",6]],[[],["gid_t",6]],[[],["uid_t",6]],[[]],[[["exitstatus",4]],["bool",15]],[[["usize",15]],["result",6]],[[],[["option",4],["i32",15]]],[[],["bool",15]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["duration",3]],[["option",4],["result",6]]],null,[[]],[[]],[[["range",3]],["ordering",4]],[[],[["range",3],["vec",3]]],[[["usize",15]],["bool",15]],[[["range",3]],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[["str",15]],[["string",3],["result",4],["vec",3]]],[[["str",15]],[["range",3],["str",15],["result",4]]],null,[[]],null,[[["range",3]],["bool",15]],[[["range",3]],[["option",4],["ordering",4]]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],null,[[]],[[["usize",15]],["ringbuffer",3]],[[]],[[["usize",15]],["ringbuffer",3]],[[],["option",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,[[["usize",15]],["bool",15]],[[["str",15]],[["usize",15],["option",4]]],[[["usize",15]],[["str",15],["option",4]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],[["ioresult",6],["string",3]]],[[]],[[]],[[]],[[]],[[]],[[],["string",3]],[[]],[[]],[[],["utmpx",3]],[[]],[[],["bool",15]],[[],["utmpxiter",3]],[[],["tm",3]],[[],["option",4]],[[],["i32",15]],[[["str",15]]],[[],["i16",15]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["string",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["string",3]],[[],["i32",15]],[[["str",15]],["ordering",4]]],"p":[[4,"ConversionResult"],[4,"InvalidEncodingHandling"],[8,"Args"],[4,"BackupError"],[4,"BackupMode"],[3,"HelpText"],[3,"CoreOptions"],[4,"Format"],[4,"DecodeError"],[4,"EncodeError"],[3,"Data"],[3,"Group"],[3,"Passwd"],[8,"Locate"],[3,"ExitCode"],[3,"USimpleError"],[3,"UUsageError"],[3,"UIoError"],[8,"UError"],[8,"FromIo"],[4,"MissingHandling"],[4,"ResolveMode"],[8,"FsMeta"],[3,"statfs_fn"],[3,"FsUsage"],[8,"BirthTime"],[3,"MountInfo"],[4,"ParseSizeError"],[4,"IfFrom"],[4,"VerbosityLevel"],[3,"ChownExecutor"],[3,"Verbosity"],[4,"ExitStatus"],[8,"ChildExt"],[3,"Range"],[3,"RingBuffer"],[3,"Utmpx"],[3,"UtmpxIter"]]},\
+"uucore":{"doc":"","t":[8,13,4,13,13,4,13,13,11,14,5,5,0,11,11,11,11,11,11,0,14,14,0,0,0,5,14,11,11,11,11,0,0,5,14,11,11,0,14,14,14,14,14,14,0,0,0,0,0,0,0,0,14,14,5,14,14,14,14,14,14,0,14,14,11,11,11,11,11,11,14,5,0,0,13,7,7,4,13,4,13,13,13,13,13,0,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,7,7,7,5,5,5,3,3,11,11,11,11,12,11,11,11,11,12,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,12,13,13,13,13,13,13,13,3,13,4,6,13,4,4,13,13,13,11,11,11,11,11,11,11,11,11,11,5,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,3,8,3,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,5,5,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,5,12,3,8,8,3,6,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,10,12,12,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,13,13,4,11,11,11,11,5,11,11,11,11,5,5,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,8,8,3,3,3,5,10,11,12,12,12,10,10,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,10,11,10,11,11,11,11,10,11,12,10,11,11,11,11,11,10,11,12,12,12,10,11,11,11,10,5,5,5,5,12,5,3,5,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,5,5,5,5,5,5,5,13,4,13,11,11,11,11,11,11,11,11,11,5,11,11,11,11,5,13,13,3,17,17,17,13,4,13,13,13,13,13,3,4,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,0,11,11,11,12,12,11,11,11,11,11,11,12,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,3,8,3,5,5,5,5,10,5,5,8,13,4,13,11,11,11,11,11,11,11,11,11,5,5,5,5,11,11,10,11,11,11,11,11,11,11,10,3,11,11,11,5,5,11,11,11,11,11,12,11,12,11,11,11,11,11,3,11,11,12,11,11,11,11,11,11,11,11,7,7,5,5,5,17,17,17,7,17,17,17,17,17,17,17,17,17,17,17,3,3,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,5,5],"n":["Args","Complete","ConversionResult","ConvertLossy","Ignore","InvalidEncodingHandling","Lossy","Panic","accept_any","app","args","args_os","backup_control","borrow","borrow","borrow_mut","borrow_mut","collect_str","collect_str_lossy","coreopts","crash","crash_if_err","encoding","entries","error","execution_phrase","exit","expect_complete","expect_lossy","from","from","fs","fsext","get_utility_is_second_arg","has","into","into","mode","msg_expects_no_more_than_one_of","msg_expects_one_of","msg_invalid_input","msg_invalid_opt_use","msg_opt_invalid_should_be","msg_opt_only_usable_if","os","panic","parse_size","parse_time","perms","process","ranges","ringbuffer","safe_write","safe_writeln","set_utility_is_second_arg","show","show_error","show_error_custom_description","show_if_err","show_usage_error","show_warning","signals","snippet_list_join","snippet_list_join_oxford_comma","try_from","try_from","try_into","try_into","type_id","type_id","uio_error","util_name","utmpx","version_cmp","AmbiguousArgument","BACKUP_CONTROL_LONG_HELP","BACKUP_CONTROL_VALUES","BackupError","BackupImpossible","BackupMode","ExistingBackup","InvalidArgument","NoBackup","NumberedBackup","SimpleBackup","arguments","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","code","determine_backup_mode","determine_backup_suffix","eq","eq","fmt","fmt","fmt","from","from","get_backup_path","into","into","ne","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","usage","OPT_BACKUP","OPT_BACKUP_NO_ARG","OPT_SUFFIX","backup","backup_no_args","suffix","CoreOptions","HelpText","borrow","borrow","borrow_mut","borrow_mut","display_usage","from","from","into","into","long_help","name","new","optflag","optflagmulti","optflagopt","optmulti","optopt","parse","summary","syntax","try_from","try_from","try_into","try_into","type_id","type_id","usage","version","Base16","Base2Lsbf","Base2Msbf","Base32","Base32Hex","Base64","Base64Url","Data","Decode","DecodeError","DecodeResult","DecodeZ85","EncodeError","Format","Io","Z85","Z85InputLenNotMultipleOf4","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","decode","decode","encode","encode","fmt","fmt","from","from","from","from","from","from","from","ignore_garbage","into","into","into","into","line_wrap","new","source","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","wrap_print","wrap_write","Group","Locate","Passwd","as_inner","as_inner","belongs_to","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","from","from","get_groups","get_groups_gnu","gid","gid","gid2grp","grp2gid","into","into","into_inner","into_inner","locate","locate","locate","locate","locate","name","name","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","uid","uid2usr","user_dir","user_info","user_passwd","user_shell","usr2uid","0","ExitCode","FromIo","UError","UIoError","UResult","USimpleError","UUsageError","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","code","code","code","code","code","code","code","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","get_exit_code","into","into","into","into","map_err_context","message","message","new","new","new","new","set_exit_code","strip_errno","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","usage","usage","usage","Existing","Logical","Missing","MissingHandling","None","Normal","Physical","ResolveMode","borrow","borrow","borrow_mut","borrow_mut","canonicalize","clone","clone","clone_into","clone_into","display_permissions","display_permissions_unix","eq","eq","fmt","fmt","from","from","into","into","normalize_path","resolve_relative_path","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","BirthTime","FsMeta","FsUsage","MountInfo","StatFs","StatFs","avail_blocks","avail_blocks","bavail","bavail_top_bit_set","bfree","birth","block_size","block_size","blocks","blocksize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","dev_id","dev_name","dummy","eq","f_bavail","f_bavail","f_bfree","f_bfree","f_blocks","f_blocks","f_bsize","f_bsize","f_ffree","f_ffree","f_files","f_files","f_frsize","f_frsize","f_fsid","f_fsid","f_namelen","f_namelen","f_type","f_type","ffree","files","fmt","fmt","fmt","free_blocks","free_blocks","free_file_nodes","free_file_nodes","from","from","from","fs_type","fs_type","fs_type","fsid","fsid","hash","into","into","into","io_size","io_size","mount_dir","mount_option","mount_root","namelen","namelen","ne","new","pretty_birth","pretty_filetype","pretty_fstype","pretty_time","read_fs_list","remote","statfs","statfs_fn","statfs_fn","to_owned","to_owned","to_owned","total_blocks","total_blocks","total_file_nodes","total_file_nodes","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","get_umask","parse_mode","parse_numeric","parse_symbolic","is_wsl_1","is_wsl_2","mute_sigpipe_panic","ParseFailure","ParseSizeError","SizeTooBig","borrow","borrow_mut","description","eq","fmt","fmt","from","into","ne","parse_size","to_string","try_from","try_into","type_id","from_str","All","Changes","ChownExecutor","FTS_COMFOLLOW","FTS_LOGICAL","FTS_PHYSICAL","Group","IfFrom","Normal","Silent","User","UserGroup","Verbose","Verbosity","VerbosityLevel","bit_flag","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","dereference","dest_gid","dest_uid","entries","eq","eq","exec","files","filter","fmt","fmt","from","from","from","from","groups_only","into","into","into","into","level","ne","preserve_root","recursive","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verbosity","wrap_chown","Group","Locate","Passwd","get_groups","get_groups_gnu","gid2grp","grp2gid","locate","uid2usr","usr2uid","ChildExt","Code","ExitStatus","Signal","borrow","borrow_mut","clone","clone_into","code","eq","fmt","fmt","from","getegid","geteuid","getgid","getuid","into","ne","send_signal","signal","success","to_owned","to_string","try_from","try_into","type_id","wait_or_timeout","Range","borrow","borrow_mut","cmp","complement","contain","eq","fmt","from","from_list","from_str","high","into","low","ne","partial_cmp","try_from","try_into","type_id","RingBuffer","borrow","borrow_mut","data","from","from_iter","into","new","push_back","try_from","try_into","type_id","ALL_SIGNALS","DEFAULT_SIGNAL","is_signal","signal_by_name_or_value","signal_name_by_value","ACCOUNTING","BOOT_TIME","DEAD_PROCESS","DEFAULT_FILE","EMPTY","INIT_PROCESS","LOGIN_PROCESS","NEW_TIME","OLD_TIME","RUN_LVL","USER_PROCESS","UT_HOSTSIZE","UT_IDSIZE","UT_LINESIZE","UT_NAMESIZE","Utmpx","UtmpxIter","borrow","borrow","borrow_mut","borrow_mut","canon_host","endutxent","exit_status","from","from","getutxent","host","into","into","into_inner","into_iter","is_user_process","iter_all_records","login_time","next","pid","read_from","record_type","setutxent","terminal_suffix","try_from","try_from","try_into","try_into","tty_device","type_id","type_id","user","utmpxname","version_cmp"],"q":["uucore","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::backup_control","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::backup_control::arguments","","","","","","uucore::coreopts","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::encoding","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::entries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::fs","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::fsext","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::mode","","","","uucore::os","","uucore::panic","uucore::parse_size","","","","","","","","","","","","","","","","","uucore::parse_time","uucore::perms","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::perms::entries","","","","","","","","","","uucore::process","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::ranges","","","","","","","","","","","","","","","","","","","uucore::ringbuffer","","","","","","","","","","","","uucore::signals","","","","","uucore::utmpx","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::version_cmp"],"d":["","","","","","","","","","","","","Implement GNU-style backup functionality.","","","","","Converts each iterator item to a String and collects …","convenience function for a more slim interface","","Display the provided error message, then exit() with the …","Unwraps the Result. Instead of panicking, it exists the …","","Get password/group file entry","All utils return exit with an exit code. Usually, the …","Derive the complete execution phrase for “usage”.","Calls exit() with the provided exit code.","","","","","Set of functions to manage files and symlinks","Set of functions to manage file systems","","","","","Set of functions to parse modes","","","","","","","","","","","Common functions to manage permissions","Set of functions to manage IDs","","A fixed-size ring buffer.","","","","","Show an error to stderr in a similar style to GNU …","Show a warning to stderr in a similar style to GNU …","","Show a bad invocation help message in a similar style to …","","","","","","","","","","","Shorthand to construct [UIoError]-instances.","Derive the utility name.","Aims to provide platform-independent methods to obtain …","","An ambiguous argument (e.g. ‘n’) was given as backup …","","","Backup error types.","Currently unused","Available backup modes.","Argument ‘existing’, ‘nil’","An invalid argument (e.g. ‘foo’) was given as backup …","Argument ‘none’, ‘off’","Argument ‘numbered’, ‘t’","Argument ‘simple’, ‘never’","Arguments for backup-related functionality.","","","","","","","","Determine the “mode” for the backup operation to …","Obtain the suffix to use for a backup.","","","","","","","","","","","","","","","","","","","","","","","","‘–backup’ argument","‘-b’ argument","‘-S, –suffix’ argument","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Fetch desired entry.","","","","This is a wrapper function for libc::getgrouplist.","","","","","","","","","From: …","The list of group IDs returned from GNU’s groups and GNU…","AKA group.gr_gid","AKA passwd.pw_gid","","","","","","","","","","","","AKA group.gr_name","AKA passwd.pw_name","","","","","","","","AKA passwd.pw_uid","","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","","A special error type that does not print any message when …","Enables the conversion from [std::io::Error] to [UError] …","Custom errors defined by the utils and uucore.","Wrapper type around [std::io::Error].","Result type that should be returned by all utils.","A simple error type with an exit code and a message that …","","","","","","","","","","Error code of a custom error.","Error code of a custom error.","","","","","","","","","","","","","","","","","","Get the last exit code set with [set_exit_code]. The …","","","","","","","","","","","","Set the exit code for the program if uumain returns Ok(())…","Strip the trailing “ (os error XX)“ from io error …","","","","","","","","","","","","","","","","","Print usage help to a custom error.","Print usage help to a custom error.","","Resolve symbolic links, ignoring errors on the final …","Resolve ‘..’ elements before symlinks","Resolve symbolic links, ignoring errors on the non-final …","Controls how symbolic links should be handled when …","Do not resolve any symbolic links.","Return an error if any part of the path is missing.","Resolve symlinks as encountered when processing the path","Controls when symbolic links are resolved","","","","","Return the canonical, absolute form of a path.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Read file system list.","","","","","","","","","","","","","","","","","","","","","","","","","Test if the program is running under WSL","","","","","","","","","","","","","","","Parse a size string into a number of bytes.","","","","","","","","","","","","","","","","","","","","The various level of verbosity","","","","","","","","","","","","","","","","","Get password/group file entry","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Perform the change of owner on a path with the various …","","Fetch desired entry.","","From: …","The list of group IDs returned from GNU’s groups and GNU…","","","","","","Missing methods for Child objects","","","","","","","","","","","","","getegid() returns the effective group ID of the calling …","geteuid() returns the effective user ID of the calling …","getgid() returns the real group ID of the calling process.","getuid() returns the real user ID of the calling process.","","","Send a signal to a Child process.","","","","","","","","Wait for a process to finish or return after the …","","","","","","Test if at least one of the given Ranges contain the …","","","","","","","","","","","","","","A fixed-size ring buffer backed by a VecDeque.","","","","","","","","Append a value to the end of the ring buffer.","","","","","","","","","","","","","","","","","","","","","","","","","Iterator of login records","","","","","Canonicalize host name using DNS","","A.K.A. ut.ut_exit","","","","A.K.A. ut.ut_host","","","Consumes the Utmpx, returning the underlying C struct …","","","","A.K.A. ut.ut_tv","","A.K.A. ut.ut_pid","Sets the name of the utmpx-format file for the other …","A.K.A. ut.ut_type","","A.K.A. ut.ut_id","","","","","A.K.A. ut.ut_line","","","A.K.A. ut.ut_user","",""],"i":[0,1,0,2,2,0,1,2,1,0,0,0,0,2,1,2,1,3,3,0,0,0,0,0,0,0,0,1,1,2,1,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,1,2,1,0,0,0,0,4,0,0,0,4,0,5,4,5,5,5,0,5,4,5,4,5,5,4,0,0,5,4,5,4,4,5,4,0,5,4,4,5,4,5,4,5,4,5,4,4,0,0,0,0,0,0,0,0,6,7,6,7,6,6,7,6,7,6,6,7,7,7,7,7,7,7,6,6,6,7,6,7,6,7,7,6,8,8,8,8,8,8,8,0,9,0,0,9,0,0,9,8,10,10,11,9,8,10,11,9,8,8,8,0,11,0,11,9,9,10,11,9,9,9,9,8,11,10,11,9,8,11,11,9,8,9,10,11,9,8,10,11,9,8,10,11,9,8,0,0,0,0,0,12,13,13,12,13,12,13,13,13,12,13,0,0,12,13,0,0,12,13,12,13,14,12,12,13,13,12,13,13,12,13,12,13,12,13,13,0,13,13,13,13,0,15,0,0,0,0,0,0,0,16,17,18,15,16,17,18,15,19,19,16,17,15,16,17,16,16,17,17,18,18,15,15,16,17,18,15,0,16,17,18,15,20,16,17,16,17,18,15,0,0,16,17,18,15,16,17,18,15,16,17,18,15,16,17,18,15,19,19,17,21,22,21,0,22,21,22,0,21,22,21,22,0,21,22,21,22,0,0,21,22,21,22,21,22,21,22,0,0,21,22,21,22,21,22,21,22,0,0,0,0,0,0,23,24,25,25,25,26,23,24,25,25,27,25,24,27,25,24,27,25,24,27,25,24,27,27,27,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,27,25,24,23,24,23,24,27,25,24,23,24,27,23,24,24,27,25,24,23,24,27,27,27,23,24,24,25,26,0,0,0,0,27,0,0,0,27,25,24,23,24,23,24,27,25,24,27,25,24,27,25,24,0,0,0,0,0,0,0,28,0,28,28,28,28,28,28,28,28,28,28,0,28,28,28,28,0,29,30,0,0,0,0,29,0,30,30,29,29,30,0,0,31,29,31,30,32,29,31,30,32,30,32,30,32,31,31,31,0,30,32,31,31,31,30,32,29,31,30,32,32,29,31,30,32,32,32,31,31,30,32,29,31,30,32,29,31,30,32,29,31,30,32,31,0,0,0,0,0,0,0,0,14,0,0,0,33,0,33,33,33,33,33,33,33,33,33,33,0,0,0,0,33,33,34,33,33,33,33,33,33,33,34,0,35,35,35,0,0,35,35,35,35,35,35,35,35,35,35,35,35,35,0,36,36,36,36,36,36,36,36,36,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,38,37,38,37,0,37,37,38,0,37,37,38,37,38,37,37,37,38,37,38,37,0,37,37,38,37,38,37,37,38,37,0,0],"f":[null,null,null,null,null,null,null,null,[[],[["string",3],["vec",3]]],null,[[]],[[]],null,[[]],[[]],[[]],[[]],[[["invalidencodinghandling",4]],["conversionresult",4]],[[],["conversionresult",4]],null,null,null,null,null,null,[[],["string",3]],null,[[["str",15]],[["string",3],["vec",3]]],[[["str",15]],[["string",3],["vec",3]]],[[]],[[]],null,null,[[],["bool",15]],null,[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],null,null,null,null,null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,[[],["string",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["backupmode",4]],[[]],[[],["i32",15]],[[["argmatches",3]],[["uresult",6],["backupmode",4]]],[[["argmatches",3]],["string",3]],[[["backupmode",4]],["bool",15]],[[["backuperror",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["path",3],["backupmode",4],["str",15]],[["pathbuf",3],["option",4]]],[[]],[[]],[[["backuperror",4]],["bool",15]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["bool",15]],null,null,null,[[],["arg",3]],[[],["arg",3]],[[],["arg",3]],null,null,[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],null,null,[[["helptext",3]]],[[["str",15]],["coreoptions",3]],[[["str",15]],["coreoptions",3]],[[["str",15]],["coreoptions",3]],[[["str",15]],["coreoptions",3]],[[["str",15]],["coreoptions",3]],[[["vec",3],["string",3]],["matches",3]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[["str",15]],["string",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["format",4]],[[]],[[["format",4]],["decoderesult",6]],[[],["decoderesult",6]],[[["format",4]],[["result",4],["encodeerror",4],["string",3]]],[[],[["result",4],["encodeerror",4],["string",3]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["error",3]]],[[["decodeerror",4]]],[[["decodeerror",3]]],[[]],[[]],[[["bool",15]]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[["format",4]]],[[],[["error",8],["option",4]]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["data",3],["string",3]]],[[["write",8],["usize",15],["string",3]],["result",6]],null,null,null,[[],["group",3]],[[],["passwd",3]],[[],[["gid_t",6],["vec",3]]],[[]],[[]],[[]],[[]],[[],["passwd",3]],[[]],[[]],[[]],[[],[["vec",3],["ioresult",6]]],[[["u32",15],["option",4]],[["vec",3],["ioresult",6]]],[[],["gid_t",6]],[[],["gid_t",6]],[[["gid_t",6]],[["string",3],["ioresult",6]]],[[["str",15]],[["gid_t",6],["ioresult",6]]],[[]],[[]],[[],["group",3]],[[],["passwd",3]],[[],["ioresult",6]],[[["str",15]],["ioresult",6]],[[["gid_t",6]],["ioresult",6]],[[["uid_t",6]],["ioresult",6]],[[["str",15]],["ioresult",6]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["uid_t",6]],[[["uid_t",6]],[["string",3],["ioresult",6]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[],[["str",15],["cow",4]]],[[["str",15]],[["ioresult",6],["uid_t",6]]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["i32",15]],[[],["i32",15]],[[],["i32",15]],[[],["i32",15]],[[],["i32",15]],null,null,[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[],["i32",15]],[[]],[[]],[[]],[[]],[[]],null,null,[[["into",8],["i32",15],["string",3]],[["uerror",8],["box",3]]],[[["into",8],["i32",15],["string",3]],[["uerror",8],["box",3]]],[[["errorkind",4],["into",8],["string",3]],[["uerror",8],["box",3]]],[[["i32",15]],[["uerror",8],["box",3]]],[[["i32",15]]],[[["error",3]],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["resolvemode",4],["path",3],["asref",8],["missinghandling",4]],[["ioresult",6],["pathbuf",3]]],[[],["missinghandling",4]],[[],["resolvemode",4]],[[]],[[]],[[["bool",15],["metadata",3]],["string",3]],[[["bool",15],["mode_t",6]],["string",3]],[[["missinghandling",4]],["bool",15]],[[["resolvemode",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["path",3]],["pathbuf",3]],[[["path",3]],[["cow",4],["path",3]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,[[],["i32",15]],[[],["u64",15]],[[],["u64",15]],null,null,null,[[],["string",3]],[[],["i64",15]],[[],["i64",15]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["mountinfo",3]],[[],["fsusage",3]],[[],["statfs",3]],[[]],[[]],[[]],null,null,null,[[["statfs",3]],["bool",15]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4]]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[]],[[]],[[]],[[],["i64",15]],[[],["i64",15]],null,[[],["u64",15]],[[],["u64",15]],[[]],[[]],[[]],[[]],[[],["u64",15]],[[],["u64",15]],null,null,null,[[],["u64",15]],[[],["u64",15]],[[["statfs",3]],["bool",15]],[[["statfs",3]],["fsusage",3]],[[],["string",3]],[[["u64",15],["mode_t",6]],["str",15]],[[["i64",15]],[["cow",4],["str",15]]],[[["i64",15]],["string",3]],[[],[["vec",3],["mountinfo",3]]],null,[[["asref",8],["path",3]],[["statfs",3],["string",3],["result",4]]],null,[[],["i32",15]],[[]],[[]],[[]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["u64",15]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["u32",15]],[[["str",15]],[["string",3],["result",4],["mode_t",6]]],[[["u32",15],["str",15],["bool",15]],[["u32",15],["result",4],["string",3]]],[[["u32",15],["str",15],["bool",15]],[["u32",15],["result",4],["string",3]]],[[],["bool",15]],[[],["bool",15]],[[]],null,null,null,[[]],[[]],[[],["str",15]],[[["parsesizeerror",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["result",4],["error",3]]],[[]],[[]],[[["parsesizeerror",4]],["bool",15]],[[["str",15]],[["usize",15],["result",4],["parsesizeerror",4]]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["str",15]],[["string",3],["result",4],["duration",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["verbositylevel",4]],[[],["verbosity",3]],[[]],[[]],null,null,null,null,[[["verbositylevel",4]],["bool",15]],[[["verbosity",3]],["bool",15]],[[],["uresult",6]],null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],null,[[["verbosity",3]],["bool",15]],null,null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,[[["metadata",3],["bool",15],["path",3],["asref",8],["u32",15],["option",4],["verbosity",3]],[["result",4],["string",3]]],null,null,null,[[],[["vec",3],["ioresult",6]]],[[["u32",15],["option",4]],[["vec",3],["ioresult",6]]],[[["gid_t",6]],[["string",3],["ioresult",6]]],[[["str",15]],[["gid_t",6],["ioresult",6]]],[[],["ioresult",6]],[[["uid_t",6]],[["string",3],["ioresult",6]]],[[["str",15]],[["ioresult",6],["uid_t",6]]],null,null,null,null,[[]],[[]],[[],["exitstatus",4]],[[]],[[],[["option",4],["i32",15]]],[[["exitstatus",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[],["gid_t",6]],[[],["uid_t",6]],[[],["gid_t",6]],[[],["uid_t",6]],[[]],[[["exitstatus",4]],["bool",15]],[[["usize",15]],["result",6]],[[],[["option",4],["i32",15]]],[[],["bool",15]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["duration",3]],[["result",6],["option",4]]],null,[[]],[[]],[[["range",3]],["ordering",4]],[[],[["vec",3],["range",3]]],[[["usize",15]],["bool",15]],[[["range",3]],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[["str",15]],[["result",4],["vec",3],["string",3]]],[[["str",15]],[["str",15],["range",3],["result",4]]],null,[[]],null,[[["range",3]],["bool",15]],[[["range",3]],[["option",4],["ordering",4]]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],null,[[]],[[["usize",15]],["ringbuffer",3]],[[]],[[["usize",15]],["ringbuffer",3]],[[],["option",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,[[["usize",15]],["bool",15]],[[["str",15]],[["usize",15],["option",4]]],[[["usize",15]],[["str",15],["option",4]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],[["string",3],["ioresult",6]]],[[]],[[]],[[]],[[]],[[]],[[],["string",3]],[[]],[[]],[[],["utmpx",3]],[[]],[[],["bool",15]],[[],["utmpxiter",3]],[[],["tm",3]],[[],["option",4]],[[],["i32",15]],[[["str",15]]],[[],["i16",15]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["string",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["string",3]],[[],["i32",15]],[[["str",15]],["ordering",4]]],"p":[[4,"ConversionResult"],[4,"InvalidEncodingHandling"],[8,"Args"],[4,"BackupError"],[4,"BackupMode"],[3,"HelpText"],[3,"CoreOptions"],[4,"Format"],[4,"DecodeError"],[4,"EncodeError"],[3,"Data"],[3,"Group"],[3,"Passwd"],[8,"Locate"],[3,"ExitCode"],[3,"USimpleError"],[3,"UUsageError"],[3,"UIoError"],[8,"UError"],[8,"FromIo"],[4,"MissingHandling"],[4,"ResolveMode"],[8,"FsMeta"],[3,"statfs_fn"],[3,"FsUsage"],[8,"BirthTime"],[3,"MountInfo"],[4,"ParseSizeError"],[4,"IfFrom"],[4,"VerbosityLevel"],[3,"ChownExecutor"],[3,"Verbosity"],[4,"ExitStatus"],[8,"ChildExt"],[3,"Range"],[3,"RingBuffer"],[3,"Utmpx"],[3,"UtmpxIter"]]},\
"uucore_procs":{"doc":"","t":[23,14],"n":["gen_uumain","main"],"q":["uucore_procs",""],"d":["",""],"i":[0,0],"f":[null,null],"p":[]},\
"wc":{"doc":"","t":[5],"n":["main"],"q":["wc"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\
"who":{"doc":"","t":[5],"n":["main"],"q":["who"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\
diff --git a/src/uu_chmod/chmod.rs.html b/src/uu_chmod/chmod.rs.html
index 10b71da90..5b2ea57b0 100644
--- a/src/uu_chmod/chmod.rs.html
+++ b/src/uu_chmod/chmod.rs.html
@@ -356,6 +356,38 @@
354
355
356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
// This file is part of the uutils coreutils package. // @@ -457,6 +489,10 @@ or: {0} [OPTION]... --reference=RFILE FILE...", Some(cmode) }; + if files.is_empty() { + crash!(1, "missing operand"); + } + let chmoder = Chmoder { changes, quiet, @@ -539,6 +575,9 @@ or: {0} [OPTION]... --reference=RFILE FILE...", // e.g. "chmod -v -xw -R FILE" -> "chmod -v xw -R FILE" pub fn strip_minus_from_mode(args: &mut Vec<String>) -> bool { for arg in args { + if arg == "--" { + break; + } if arg.starts_with('-') { if let Some(second) = arg.chars().nth(1) { match second { @@ -581,7 +620,7 @@ or: {0} [OPTION]... --reference=RFILE FILE...", if !self.quiet { show_error!("cannot operate on dangling symlink '{}'", filename); } - } else { + } else if !self.quiet { show_error!("cannot access '{}': No such file or directory", filename); } return Err(1); @@ -612,9 +651,11 @@ or: {0} [OPTION]... --reference=RFILE FILE...", // instead it just sets the readonly attribute on the file Err(0) } - #[cfg(any(unix, target_os = "redox"))] + #[cfg(unix)] fn chmod_file(&self, file: &Path) -> Result<(), i32> { - let mut fperm = match fs::metadata(file) { + use uucore::mode::get_umask; + + let fperm = match fs::metadata(file) { Ok(meta) => meta.mode() & 0o7777, Err(err) => { if is_symlink(file) { @@ -637,18 +678,30 @@ or: {0} [OPTION]... --reference=RFILE FILE...", Some(mode) => self.change_file(fperm, mode, file)?, None => { let cmode_unwrapped = self.cmode.clone().unwrap(); + let mut new_mode = fperm; + let mut naively_expected_new_mode = new_mode; for mode in cmode_unwrapped.split(',') { // cmode is guaranteed to be Some in this case let arr: &[char] = &['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; let result = if mode.contains(arr) { - mode::parse_numeric(fperm, mode) + mode::parse_numeric(new_mode, mode, file.is_dir()).map(|v| (v, v)) } else { - mode::parse_symbolic(fperm, mode, file.is_dir()) + mode::parse_symbolic(new_mode, mode, get_umask(), file.is_dir()).map(|m| { + // calculate the new mode as if umask was 0 + let naive_mode = mode::parse_symbolic( + naively_expected_new_mode, + mode, + 0, + file.is_dir(), + ) + .unwrap(); // we know that mode must be valid, so this cannot fail + (m, naive_mode) + }) }; match result { - Ok(mode) => { - self.change_file(fperm, mode, file)?; - fperm = mode; + Ok((mode, naive_mode)) => { + new_mode = mode; + naively_expected_new_mode = naive_mode; } Err(f) => { if !self.quiet { @@ -658,6 +711,17 @@ or: {0} [OPTION]... --reference=RFILE FILE...", } } } + self.change_file(fperm, new_mode, file)?; + // if a permission would have been removed if umask was 0, but it wasn't because umask was not 0, print an error and fail + if (new_mode & !naively_expected_new_mode) != 0 { + show_error!( + "{}: new permissions are {}, not {}", + file.display(), + display_permissions_unix(new_mode as mode_t, false), + display_permissions_unix(naively_expected_new_mode as mode_t, false) + ); + return Err(1); + } } } @@ -681,8 +745,8 @@ or: {0} [OPTION]... --reference=RFILE FILE...", show_error!("{}", err); } if self.verbose { - show_error!( - "failed to change mode of file '{}' from {:o} ({}) to {:o} ({})", + println!( + "failed to change mode of file '{}' from {:04o} ({}) to {:04o} ({})", file.display(), fperm, display_permissions_unix(fperm as mode_t, false), @@ -693,8 +757,8 @@ or: {0} [OPTION]... --reference=RFILE FILE...", Err(1) } else { if self.verbose || self.changes { - show_error!( - "mode of '{}' changed from {:o} ({}) to {:o} ({})", + println!( + "mode of '{}' changed from {:04o} ({}) to {:04o} ({})", file.display(), fperm, display_permissions_unix(fperm as mode_t, false), diff --git a/src/uu_env/env.rs.html b/src/uu_env/env.rs.html index b9ec1dfa9..322d5f52d 100644 --- a/src/uu_env/env.rs.html +++ b/src/uu_env/env.rs.html @@ -274,6 +274,10 @@ 272 273 274 +275 +276 +277 +278
// This file is part of the uutils coreutils package. // @@ -289,6 +293,9 @@ #[macro_use] extern crate clap; +#[macro_use] +extern crate uucore; + use clap::{App, AppSettings, Arg}; use ini::Ini; use std::borrow::Cow; @@ -296,6 +303,7 @@ use std::io::{self, Write}; use std::iter::Iterator; use std::process::Command; +use uucore::error::{UResult, USimpleError}; const USAGE: &str = "env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]"; const AFTER_HELP: &str = "\ @@ -347,7 +355,7 @@ A mere - implies -i. If no COMMAND, print the resulting environment. } } -fn load_config_file(opts: &mut Options) -> Result<(), i32> { +fn load_config_file(opts: &mut Options) -> UResult<()> { // NOTE: config files are parsed using an INI parser b/c it's available and compatible with ".env"-style files // ... * but support for actual INI files, although working, is not intended, nor claimed for &file in &opts.files { @@ -434,7 +442,7 @@ A mere - implies -i. If no COMMAND, print the resulting environment. .help("remove variable from the environment")) } -fn run_env(args: impl uucore::Args) -> Result<(), i32> { +fn run_env(args: impl uucore::Args) -> UResult<()> { let app = uu_app(); let matches = app.get_matches_from(args); @@ -465,8 +473,10 @@ A mere - implies -i. If no COMMAND, print the resulting environment. match env::set_current_dir(d) { Ok(()) => d, Err(error) => { - eprintln!("env: cannot change directory to \"{}\": {}", d, error); - return Err(125); + return Err(USimpleError::new( + 125, + format!("cannot change directory to \"{}\": {}", d, error), + )); } }; } @@ -530,9 +540,9 @@ A mere - implies -i. If no COMMAND, print the resulting environment. // FIXME: this should just use execvp() (no fork()) on Unix-like systems match Command::new(&*prog).args(args).status() { - Ok(exit) if !exit.success() => return Err(exit.code().unwrap()), - Err(ref err) if err.kind() == io::ErrorKind::NotFound => return Err(127), - Err(_) => return Err(126), + Ok(exit) if !exit.success() => return Err(exit.code().unwrap().into()), + Err(ref err) if err.kind() == io::ErrorKind::NotFound => return Err(127.into()), + Err(_) => return Err(126.into()), Ok(_) => (), } } else { @@ -543,11 +553,9 @@ A mere - implies -i. If no COMMAND, print the resulting environment. Ok(()) } -pub fn uumain(args: impl uucore::Args) -> i32 { - match run_env(args) { - Ok(()) => 0, - Err(code) => code, - } +#[uucore_procs::gen_uumain] +pub fn uumain(args: impl uucore::Args) -> UResult<()> { + run_env(args) }