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)
 }
 
\ No newline at end of file diff --git a/src/uu_install/install.rs.html b/src/uu_install/install.rs.html index 23ce77927..a65ee9767 100644 --- a/src/uu_install/install.rs.html +++ b/src/uu_install/install.rs.html @@ -763,6 +763,7 @@ 761 762 763 +764
 //  * This file is part of the uutils coreutils package.
 //  *
@@ -784,6 +785,7 @@
 use uucore::backup_control::{self, BackupMode};
 use uucore::entries::{grp2gid, usr2uid};
 use uucore::error::{FromIo, UError, UIoError, UResult};
+use uucore::mode::get_umask;
 use uucore::perms::{wrap_chown, Verbosity, VerbosityLevel};
 
 use libc::{getegid, geteuid};
@@ -1125,7 +1127,7 @@
 
     let specified_mode: Option<u32> = if matches.is_present(OPT_MODE) {
         let x = matches.value_of(OPT_MODE).ok_or(1)?;
-        Some(mode::parse(x, considering_dir).map_err(|err| {
+        Some(mode::parse(x, considering_dir, get_umask()).map_err(|err| {
             show_error!("Invalid mode string: {}", err);
             1
         })?)
diff --git a/src/uu_install/mode.rs.html b/src/uu_install/mode.rs.html
index a6dec05ac..62e6964bd 100644
--- a/src/uu_install/mode.rs.html
+++ b/src/uu_install/mode.rs.html
@@ -45,14 +45,14 @@
 use uucore::mode;
 
 /// Takes a user-supplied string and tries to parse to u16 mode bitmask.
-pub fn parse(mode_string: &str, considering_dir: bool) -> Result<u32, String> {
+pub fn parse(mode_string: &str, considering_dir: bool, umask: u32) -> Result<u32, String> {
     let numbers: &[char] = &['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
 
     // Passing 000 as the existing permissions seems to mirror GNU behavior.
     if mode_string.contains(numbers) {
-        mode::parse_numeric(0, mode_string)
+        mode::parse_numeric(0, mode_string, considering_dir)
     } else {
-        mode::parse_symbolic(0, mode_string, considering_dir)
+        mode::parse_symbolic(0, mode_string, umask, considering_dir)
     }
 }
 
diff --git a/src/uu_ls/quoting_style.rs.html b/src/uu_ls/quoting_style.rs.html
index 06c030b0e..d095c2a21 100644
--- a/src/uu_ls/quoting_style.rs.html
+++ b/src/uu_ls/quoting_style.rs.html
@@ -662,10 +662,44 @@
 660
 661
 662
+663
+664
+665
+666
+667
+668
+669
+670
+671
+672
+673
+674
+675
+676
+677
+678
+679
+680
+681
+682
+683
+684
+685
+686
+687
+688
+689
+690
+691
+692
+693
 
 use std::char::from_digit;
 
-const SPECIAL_SHELL_CHARS: &str = "~`#$&*()|[]{};\\'\"<>?! ";
+// These are characters with special meaning in the shell (e.g. bash).
+// The first const contains characters that only have a special meaning when they appear at the beginning of a name.
+const SPECIAL_SHELL_CHARS_START: &[char] = &['~', '#'];
+const SPECIAL_SHELL_CHARS: &str = "`$&*()|[]{};\\'\"<>?! ";
 
 pub(super) enum QuotingStyle {
     Shell {
@@ -863,6 +897,8 @@
             }
         }
     }
+
+    must_quote = must_quote || name.starts_with(SPECIAL_SHELL_CHARS_START);
     (escaped_str, must_quote)
 }
 
@@ -911,6 +947,7 @@
             }
         }
     }
+    must_quote = must_quote || name.starts_with(SPECIAL_SHELL_CHARS_START);
     (escaped_str, must_quote)
 }
 
@@ -1324,6 +1361,31 @@
             ],
         );
     }
+
+    #[test]
+    fn test_tilde_and_hash() {
+        check_names("~", vec![("'~'", "shell"), ("'~'", "shell-escape")]);
+        check_names(
+            "~name",
+            vec![("'~name'", "shell"), ("'~name'", "shell-escape")],
+        );
+        check_names(
+            "some~name",
+            vec![("some~name", "shell"), ("some~name", "shell-escape")],
+        );
+        check_names("name~", vec![("name~", "shell"), ("name~", "shell-escape")]);
+
+        check_names("#", vec![("'#'", "shell"), ("'#'", "shell-escape")]);
+        check_names(
+            "#name",
+            vec![("'#name'", "shell"), ("'#name'", "shell-escape")],
+        );
+        check_names(
+            "some#name",
+            vec![("some#name", "shell"), ("some#name", "shell-escape")],
+        );
+        check_names("name#", vec![("name#", "shell"), ("name#", "shell-escape")]);
+    }
 }
 
\ No newline at end of file diff --git a/src/uu_pwd/pwd.rs.html b/src/uu_pwd/pwd.rs.html index f9ece5d41..d02228c17 100644 --- a/src/uu_pwd/pwd.rs.html +++ b/src/uu_pwd/pwd.rs.html @@ -1,89 +1,201 @@ pwd.rs - source -
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
+
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
 
 //  * This file is part of the uutils coreutils package.
 //  *
@@ -97,28 +209,115 @@
 
 use clap::{crate_version, App, Arg};
 use std::env;
-use std::io;
+use std::io::{self, Write};
 use std::path::{Path, PathBuf};
 
-use uucore::error::{FromIo, UResult, USimpleError};
+use uucore::error::{FromIo, UResult};
 
 static ABOUT: &str = "Display the full filename of the current working directory.";
 static OPT_LOGICAL: &str = "logical";
 static OPT_PHYSICAL: &str = "physical";
 
-pub fn absolute_path(path: &Path) -> io::Result<PathBuf> {
-    let path_buf = path.canonicalize()?;
+fn physical_path() -> io::Result<PathBuf> {
+    // std::env::current_dir() is a thin wrapper around libc's getcwd().
 
+    // On Unix, getcwd() must return the physical path:
+    // https://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html
+    #[cfg(unix)]
+    {
+        env::current_dir()
+    }
+
+    // On Windows we have to resolve it.
+    // On other systems we also resolve it, just in case.
+    #[cfg(not(unix))]
+    {
+        env::current_dir().and_then(|path| path.canonicalize())
+    }
+}
+
+fn logical_path() -> io::Result<PathBuf> {
+    // getcwd() on Windows seems to include symlinks, so this is easy.
     #[cfg(windows)]
-    let path_buf = Path::new(
-        path_buf
-            .as_path()
-            .to_string_lossy()
-            .trim_start_matches(r"\\?\"),
-    )
-    .to_path_buf();
+    {
+        env::current_dir()
+    }
 
-    Ok(path_buf)
+    // If we're not on Windows we do things Unix-style.
+    //
+    // Typical Unix-like kernels don't actually keep track of the logical working
+    // directory. They know the precise directory a process is in, and the getcwd()
+    // syscall reconstructs a path from that.
+    //
+    // The logical working directory is maintained by the shell, in the $PWD
+    // environment variable. So we check carefully if that variable looks
+    // reasonable, and if not then we fall back to the physical path.
+    //
+    // POSIX: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pwd.html
+    #[cfg(not(windows))]
+    {
+        fn looks_reasonable(path: &Path) -> bool {
+            // First, check if it's an absolute path.
+            if !path.has_root() {
+                return false;
+            }
+
+            // Then, make sure there are no . or .. components.
+            // Path::components() isn't useful here, it normalizes those out.
+
+            // to_string_lossy() may allocate, but that's fine, we call this
+            // only once per run. It may also lose information, but not any
+            // information that we need for this check.
+            if path
+                .to_string_lossy()
+                .split(std::path::is_separator)
+                .any(|piece| piece == "." || piece == "..")
+            {
+                return false;
+            }
+
+            // Finally, check if it matches the directory we're in.
+            #[cfg(unix)]
+            {
+                use std::fs::metadata;
+                use std::os::unix::fs::MetadataExt;
+                let path_info = match metadata(path) {
+                    Ok(info) => info,
+                    Err(_) => return false,
+                };
+                let real_info = match metadata(".") {
+                    Ok(info) => info,
+                    Err(_) => return false,
+                };
+                if path_info.dev() != real_info.dev() || path_info.ino() != real_info.ino() {
+                    return false;
+                }
+            }
+
+            #[cfg(not(unix))]
+            {
+                use std::fs::canonicalize;
+                let canon_path = match canonicalize(path) {
+                    Ok(path) => path,
+                    Err(_) => return false,
+                };
+                let real_path = match canonicalize(".") {
+                    Ok(path) => path,
+                    Err(_) => return false,
+                };
+                if canon_path != real_path {
+                    return false;
+                }
+            }
+
+            true
+        }
+
+        match env::var_os("PWD").map(PathBuf::from) {
+            Some(value) if looks_reasonable(&value) => Ok(value),
+            _ => env::current_dir(),
+        }
+    }
 }
 
 fn usage() -> String {
@@ -130,24 +329,48 @@
     let usage = usage();
 
     let matches = uu_app().usage(&usage[..]).get_matches_from(args);
+    let cwd = if matches.is_present(OPT_LOGICAL) {
+        logical_path()
+    } else {
+        physical_path()
+    }
+    .map_err_context(|| "failed to get current directory".to_owned())?;
 
-    match env::current_dir() {
-        Ok(logical_path) => {
-            if matches.is_present(OPT_LOGICAL) {
-                println!("{}", logical_path.display());
-            } else {
-                let physical_path = absolute_path(&logical_path)
-                    .map_err_context(|| "failed to get absolute path".to_string())?;
-                println!("{}", physical_path.display());
-            }
-        }
-        Err(e) => {
-            return Err(USimpleError::new(
-                1,
-                format!("failed to get current directory {}", e),
-            ))
-        }
-    };
+    // \\?\ is a prefix Windows gives to paths under certain circumstances,
+    // including when canonicalizing them.
+    // With the right extension trait we can remove it non-lossily, but
+    // we print it lossily anyway, so no reason to bother.
+    #[cfg(windows)]
+    let cwd = cwd
+        .to_string_lossy()
+        .strip_prefix(r"\\?\")
+        .map(Into::into)
+        .unwrap_or(cwd);
+
+    print_path(&cwd).map_err_context(|| "failed to print current directory".to_owned())?;
+
+    Ok(())
+}
+
+fn print_path(path: &Path) -> io::Result<()> {
+    let stdout = io::stdout();
+    let mut stdout = stdout.lock();
+
+    // On Unix we print non-lossily.
+    #[cfg(unix)]
+    {
+        use std::os::unix::ffi::OsStrExt;
+        stdout.write_all(path.as_os_str().as_bytes())?;
+        stdout.write_all(b"\n")?;
+    }
+
+    // On other platforms we potentially mangle it.
+    // There might be some clever way to do it correctly on Windows, but
+    // invalid unicode in filenames is rare there.
+    #[cfg(not(unix))]
+    {
+        writeln!(stdout, "{}", path.display())?;
+    }
 
     Ok(())
 }
@@ -166,6 +389,7 @@
             Arg::with_name(OPT_PHYSICAL)
                 .short("P")
                 .long(OPT_PHYSICAL)
+                .overrides_with(OPT_LOGICAL)
                 .help("avoid all symlinks"),
         )
 }
diff --git a/src/uu_seq/seq.rs.html b/src/uu_seq/seq.rs.html
index 5a64ce23b..35bc44d54 100644
--- a/src/uu_seq/seq.rs.html
+++ b/src/uu_seq/seq.rs.html
@@ -274,6 +274,48 @@
 272
 273
 274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
 
 // TODO: Make -w flag work with decimals
 // TODO: Support -f flag
@@ -315,6 +357,8 @@
 }
 
 enum Number {
+    /// Negative zero, as if it were an integer.
+    MinusZero,
     BigInt(BigInt),
     F64(f64),
 }
@@ -322,6 +366,7 @@
 impl Number {
     fn is_zero(&self) -> bool {
         match self {
+            Number::MinusZero => true,
             Number::BigInt(n) => n.is_zero(),
             Number::F64(n) => n.is_zero(),
         }
@@ -329,6 +374,7 @@
 
     fn into_f64(self) -> f64 {
         match self {
+            Number::MinusZero => -0.,
             // BigInt::to_f64() can not return None.
             Number::BigInt(n) => n.to_f64().unwrap(),
             Number::F64(n) => n,
@@ -344,7 +390,16 @@
         }
 
         match s.parse::<BigInt>() {
-            Ok(n) => Ok(Number::BigInt(n)),
+            Ok(n) => {
+                // If `s` is '-0', then `parse()` returns
+                // `BigInt::zero()`, but we need to return
+                // `Number::MinusZero` instead.
+                if n == BigInt::zero() && s.starts_with('-') {
+                    Ok(Number::MinusZero)
+                } else {
+                    Ok(Number::BigInt(n))
+                }
+            }
             Err(_) => match s.parse::<f64>() {
                 Ok(value) if value.is_nan() => Err(format!(
                     "invalid 'not-a-number' argument: '{}'\nTry '{} --help' for more information.",
@@ -362,6 +417,16 @@
     }
 }
 
+/// A range of integers.
+///
+/// The elements are (first, increment, last).
+type RangeInt = (BigInt, BigInt, BigInt);
+
+/// A range of f64.
+///
+/// The elements are (first, increment, last).
+type RangeF64 = (f64, f64, f64);
+
 pub fn uumain(args: impl uucore::Args) -> i32 {
     let usage = usage();
     let matches = uu_app().usage(&usage[..]).get_matches_from(args);
@@ -414,21 +479,26 @@
     }
 
     match (first, last, increment) {
+        (Number::MinusZero, Number::BigInt(last), Number::BigInt(increment)) => print_seq_integers(
+            (BigInt::zero(), increment, last),
+            options.separator,
+            options.terminator,
+            options.widths,
+            padding,
+            true,
+        ),
         (Number::BigInt(first), Number::BigInt(last), Number::BigInt(increment)) => {
             print_seq_integers(
-                first,
-                increment,
-                last,
+                (first, increment, last),
                 options.separator,
                 options.terminator,
                 options.widths,
                 padding,
+                false,
             )
         }
         (first, last, increment) => print_seq(
-            first.into_f64(),
-            increment.into_f64(),
-            last.into_f64(),
+            (first.into_f64(), increment.into_f64(), last.into_f64()),
             largest_dec,
             options.separator,
             options.terminator,
@@ -485,17 +555,15 @@
 }
 
 /// Floating point based code path
-#[allow(clippy::too_many_arguments)]
 fn print_seq(
-    first: f64,
-    increment: f64,
-    last: f64,
+    range: RangeF64,
     largest_dec: usize,
     separator: String,
     terminator: String,
     pad: bool,
     padding: usize,
 ) {
+    let (first, increment, last) = range;
     let mut i = 0isize;
     let mut value = first + i as f64 * increment;
     while !done_printing(&value, &increment, &last) {
@@ -520,22 +588,38 @@
     crash_if_err!(1, stdout().flush());
 }
 
-/// BigInt based code path
+/// Print an integer sequence.
+///
+/// This function prints a sequence of integers defined by `range`,
+/// which defines the first integer, last integer, and increment of the
+/// range. The `separator` is inserted between each integer and
+/// `terminator` is inserted at the end.
+///
+/// The `pad` parameter indicates whether to pad numbers to the width
+/// given in `padding`.
+///
+/// If `is_first_minus_zero` is `true`, then the `first` parameter is
+/// printed as if it were negative zero, even though no such number
+/// exists as an integer (negative zero only exists for floating point
+/// numbers). Only set this to `true` if `first` is actually zero.
 fn print_seq_integers(
-    first: BigInt,
-    increment: BigInt,
-    last: BigInt,
+    range: RangeInt,
     separator: String,
     terminator: String,
     pad: bool,
     padding: usize,
+    is_first_minus_zero: bool,
 ) {
+    let (first, increment, last) = range;
     let mut value = first;
     let mut is_first_iteration = true;
     while !done_printing(&value, &increment, &last) {
         if !is_first_iteration {
             print!("{}", separator);
         }
+        if is_first_iteration && is_first_minus_zero {
+            print!("-");
+        }
         is_first_iteration = false;
         if pad {
             print!("{number:>0width$}", number = value, width = padding);
diff --git a/src/uucore/features/fs.rs.html b/src/uucore/features/fs.rs.html
index 38ea16e69..caeee38ab 100644
--- a/src/uucore/features/fs.rs.html
+++ b/src/uucore/features/fs.rs.html
@@ -442,6 +442,20 @@
 440
 441
 442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
 
 // This file is part of the uutils coreutils package.
 //
@@ -462,6 +476,7 @@
 use std::borrow::Cow;
 use std::env;
 use std::fs;
+use std::io::Error as IOError;
 use std::io::Result as IOResult;
 use std::io::{Error, ErrorKind};
 #[cfg(any(unix, target_os = "redox"))]
@@ -556,26 +571,42 @@
     ret
 }
 
-fn resolve<P: AsRef<Path>>(original: P) -> IOResult<PathBuf> {
+fn resolve<P: AsRef<Path>>(original: P) -> Result<PathBuf, (PathBuf, IOError)> {
     const MAX_LINKS_FOLLOWED: u32 = 255;
     let mut followed = 0;
     let mut result = original.as_ref().to_path_buf();
+
+    let mut first_resolution = None;
     loop {
         if followed == MAX_LINKS_FOLLOWED {
-            return Err(Error::new(
-                ErrorKind::InvalidInput,
-                "maximum links followed",
+            return Err((
+                // When we hit MAX_LINKS_FOLLOWED we should return the first resolution (that's what GNU does - for whatever reason)
+                first_resolution.unwrap(),
+                Error::new(ErrorKind::InvalidInput, "maximum links followed"),
             ));
         }
 
-        if !fs::symlink_metadata(&result)?.file_type().is_symlink() {
-            break;
+        match fs::symlink_metadata(&result) {
+            Ok(meta) => {
+                if !meta.file_type().is_symlink() {
+                    break;
+                }
+            }
+            Err(e) => return Err((result, e)),
         }
 
         followed += 1;
-        let path = fs::read_link(&result)?;
-        result.pop();
-        result.push(path);
+        match fs::read_link(&result) {
+            Ok(path) => {
+                result.pop();
+                result.push(path);
+            }
+            Err(e) => return Err((result, e)),
+        }
+
+        if first_resolution.is_none() {
+            first_resolution = Some(result.clone());
+        }
     }
     Ok(result)
 }
@@ -661,11 +692,10 @@
             }
 
             match resolve(&result) {
-                Err(_) if miss_mode == MissingHandling::Missing => continue,
-                Err(e) => return Err(e),
+                Err((path, _)) if miss_mode == MissingHandling::Missing => result = path,
+                Err((_, e)) => return Err(e),
                 Ok(path) => {
-                    result.pop();
-                    result.push(path);
+                    result = path;
                 }
             }
         }
@@ -677,14 +707,12 @@
         }
 
         match resolve(&result) {
-            Err(e) if miss_mode == MissingHandling::Existing => {
+            Err((_, e)) if miss_mode == MissingHandling::Existing => {
                 return Err(e);
             }
-            Ok(path) => {
-                result.pop();
-                result.push(path);
+            Ok(path) | Err((path, _)) => {
+                result = path;
             }
-            Err(_) => (),
         }
         if res_mode == ResolveMode::Physical {
             result = normalize_path(&result);
diff --git a/src/uucore/features/mode.rs.html b/src/uucore/features/mode.rs.html
index e3abde561..c61be7f82 100644
--- a/src/uucore/features/mode.rs.html
+++ b/src/uucore/features/mode.rs.html
@@ -162,6 +162,15 @@
 160
 161
 162
+163
+164
+165
+166
+167
+168
+169
+170
+171
 
 // This file is part of the uutils coreutils package.
 //
@@ -174,59 +183,64 @@
 
 // spell-checker:ignore (vars) fperm srwx
 
-use libc::{mode_t, S_IRGRP, S_IROTH, S_IRUSR, S_IWGRP, S_IWOTH, S_IWUSR};
+use libc::{mode_t, umask, S_IRGRP, S_IROTH, S_IRUSR, S_IWGRP, S_IWOTH, S_IWUSR};
 
-pub fn parse_numeric(fperm: u32, mut mode: &str) -> Result<u32, String> {
-    let (op, pos) = parse_op(mode, Some('='))?;
-    mode = mode[pos..].trim().trim_start_matches('0');
-    if mode.len() > 4 {
-        Err(format!("mode is too large ({} > 7777)", mode))
+pub fn parse_numeric(fperm: u32, mut mode: &str, considering_dir: bool) -> Result<u32, String> {
+    let (op, pos) = parse_op(mode).map_or_else(|_| (None, 0), |(op, pos)| (Some(op), pos));
+    mode = mode[pos..].trim();
+    let change = if mode.is_empty() {
+        0
     } else {
-        match u32::from_str_radix(mode, 8) {
-            Ok(change) => Ok(match op {
-                '+' => fperm | change,
-                '-' => fperm & !change,
-                '=' => change,
-                _ => unreachable!(),
-            }),
-            Err(err) => Err(err.to_string()),
-        }
+        u32::from_str_radix(mode, 8).map_err(|e| e.to_string())?
+    };
+    if change > 0o7777 {
+        Err(format!("mode is too large ({} > 7777", change))
+    } else {
+        Ok(match op {
+            Some('+') => fperm | change,
+            Some('-') => fperm & !change,
+            // If this is a directory, we keep the setgid and setuid bits,
+            // unless the mode contains 5 or more octal digits or the mode is "="
+            None if considering_dir && mode.len() < 5 => change | (fperm & (0o4000 | 0o2000)),
+            None | Some('=') => change,
+            Some(_) => unreachable!(),
+        })
     }
 }
 
 pub fn parse_symbolic(
     mut fperm: u32,
     mut mode: &str,
+    umask: u32,
     considering_dir: bool,
 ) -> Result<u32, String> {
-    #[cfg(unix)]
-    use libc::umask;
-
     let (mask, pos) = parse_levels(mode);
     if pos == mode.len() {
         return Err(format!("invalid mode ({})", mode));
     }
     let respect_umask = pos == 0;
-    let last_umask = unsafe { umask(0) };
     mode = &mode[pos..];
     while !mode.is_empty() {
-        let (op, pos) = parse_op(mode, None)?;
+        let (op, pos) = parse_op(mode)?;
         mode = &mode[pos..];
         let (mut srwx, pos) = parse_change(mode, fperm, considering_dir);
         if respect_umask {
-            srwx &= !(last_umask as u32);
+            srwx &= !(umask as u32);
         }
         mode = &mode[pos..];
         match op {
             '+' => fperm |= srwx & mask,
             '-' => fperm &= !(srwx & mask),
-            '=' => fperm = (fperm & !mask) | (srwx & mask),
+            '=' => {
+                if considering_dir {
+                    // keep the setgid and setuid bits for directories
+                    srwx |= fperm & (0o4000 | 0o2000);
+                }
+                fperm = (fperm & !mask) | (srwx & mask)
+            }
             _ => unreachable!(),
         }
     }
-    unsafe {
-        umask(last_umask);
-    }
     Ok(fperm)
 }
 
@@ -235,9 +249,9 @@
     let mut pos = 0;
     for ch in mode.chars() {
         mask |= match ch {
-            'u' => 0o7700,
-            'g' => 0o7070,
-            'o' => 0o7007,
+            'u' => 0o4700,
+            'g' => 0o2070,
+            'o' => 0o1007,
             'a' => 0o7777,
             _ => break,
         };
@@ -249,24 +263,22 @@
     (mask, pos)
 }
 
-fn parse_op(mode: &str, default: Option<char>) -> Result<(char, usize), String> {
+fn parse_op(mode: &str) -> Result<(char, usize), String> {
     let ch = mode
         .chars()
         .next()
         .ok_or_else(|| "unexpected end of mode".to_owned())?;
-    Ok(match ch {
-        '+' | '-' | '=' => (ch, 1),
-        _ => {
-            let ch = default.ok_or_else(|| {
-                format!("invalid operator (expected +, -, or =, but found {})", ch)
-            })?;
-            (ch, 0)
-        }
-    })
+    match ch {
+        '+' | '-' | '=' => Ok((ch, 1)),
+        _ => Err(format!(
+            "invalid operator (expected +, -, or =, but found {})",
+            ch
+        )),
+    }
 }
 
 fn parse_change(mode: &str, fperm: u32, considering_dir: bool) -> (u32, usize) {
-    let mut srwx = fperm & 0o7000;
+    let mut srwx = 0;
     let mut pos = 0;
     for ch in mode.chars() {
         match ch {
@@ -297,13 +309,19 @@
     let fperm = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
     let arr: &[char] = &['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
     let result = if mode.contains(arr) {
-        parse_numeric(fperm as u32, mode)
+        parse_numeric(fperm as u32, mode, true)
     } else {
-        parse_symbolic(fperm as u32, mode, true)
+        parse_symbolic(fperm as u32, mode, get_umask(), true)
     };
     result.map(|mode| mode as mode_t)
 }
 
+pub fn get_umask() -> u32 {
+    let mask = unsafe { umask(0) };
+    unsafe { umask(mask) };
+    mask as u32
+}
+
 #[cfg(test)]
 mod test {
 
diff --git a/uu_chmod/fn.is_symlink.html b/uu_chmod/fn.is_symlink.html
index da9699a3d..6c0144994 100644
--- a/uu_chmod/fn.is_symlink.html
+++ b/uu_chmod/fn.is_symlink.html
@@ -1,3 +1,3 @@
 is_symlink in uu_chmod - Rust
 
-

Function uu_chmod::is_symlink[][src]

pub fn is_symlink<P: AsRef<Path>>(path: P) -> bool
\ No newline at end of file +

Function uu_chmod::is_symlink[][src]

pub fn is_symlink<P: AsRef<Path>>(path: P) -> bool
\ No newline at end of file diff --git a/uu_chmod/fn.strip_minus_from_mode.html b/uu_chmod/fn.strip_minus_from_mode.html index cd1254a9c..dca8f2a14 100644 --- a/uu_chmod/fn.strip_minus_from_mode.html +++ b/uu_chmod/fn.strip_minus_from_mode.html @@ -1,3 +1,3 @@ strip_minus_from_mode in uu_chmod - Rust -

Function uu_chmod::strip_minus_from_mode[][src]

pub fn strip_minus_from_mode(args: &mut Vec<String>) -> bool
\ No newline at end of file +

Function uu_chmod::strip_minus_from_mode[][src]

pub fn strip_minus_from_mode(args: &mut Vec<String>) -> bool
\ No newline at end of file diff --git a/uu_chmod/fn.uu_app.html b/uu_chmod/fn.uu_app.html index 66a14d4a4..937b678a8 100644 --- a/uu_chmod/fn.uu_app.html +++ b/uu_chmod/fn.uu_app.html @@ -1,3 +1,3 @@ uu_app in uu_chmod - Rust -

Function uu_chmod::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file +

Function uu_chmod::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file diff --git a/uu_chmod/fn.uumain.html b/uu_chmod/fn.uumain.html index 998659364..2f52a575b 100644 --- a/uu_chmod/fn.uumain.html +++ b/uu_chmod/fn.uumain.html @@ -1,3 +1,3 @@ uumain in uu_chmod - Rust -

Function uu_chmod::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file +

Function uu_chmod::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file diff --git a/uu_chmod/index.html b/uu_chmod/index.html index f15134ef8..b48bf458d 100644 --- a/uu_chmod/index.html +++ b/uu_chmod/index.html @@ -1,4 +1,4 @@ uu_chmod - Rust -

Crate uu_chmod[][src]

Functions

+

Crate uu_chmod[][src]

Functions

is_symlink
strip_minus_from_mode
uu_app
uumain
\ No newline at end of file diff --git a/uu_env/fn.uu_app.html b/uu_env/fn.uu_app.html index dc6a736da..5c94c99fd 100644 --- a/uu_env/fn.uu_app.html +++ b/uu_env/fn.uu_app.html @@ -1,3 +1,3 @@ uu_app in uu_env - Rust -

Function uu_env::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file +

Function uu_env::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file diff --git a/uu_env/fn.uumain.html b/uu_env/fn.uumain.html index ff3a794dc..ffb7038ab 100644 --- a/uu_env/fn.uumain.html +++ b/uu_env/fn.uumain.html @@ -1,3 +1,3 @@ uumain in uu_env - Rust -

Function uu_env::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file +

Function uu_env::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file diff --git a/uu_env/index.html b/uu_env/index.html index 41282a250..a7c29b755 100644 --- a/uu_env/index.html +++ b/uu_env/index.html @@ -1,4 +1,4 @@ uu_env - Rust -

Crate uu_env[][src]

Functions

+

Crate uu_env[][src]

Functions

uu_app
uumain
\ No newline at end of file diff --git a/uu_install/enum.MainFunction.html b/uu_install/enum.MainFunction.html index 71568d9d4..33797f2d4 100644 --- a/uu_install/enum.MainFunction.html +++ b/uu_install/enum.MainFunction.html @@ -1,18 +1,18 @@ MainFunction in uu_install - Rust -

Enum uu_install::MainFunction[][src]

pub enum MainFunction {
+

Enum uu_install::MainFunction[][src]

pub enum MainFunction {
     Directory,
     Standard,
 }

Variants

Directory

Create directories

Standard

Install files to locations (primary functionality)

-

Trait Implementations

Returns a copy of the value. Read more

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

This method tests for self and other values to be equal, and is used +

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

diff --git a/uu_install/fn.uu_app.html b/uu_install/fn.uu_app.html index d65562009..3a0229097 100644 --- a/uu_install/fn.uu_app.html +++ b/uu_install/fn.uu_app.html @@ -1,3 +1,3 @@ uu_app in uu_install - Rust -

Function uu_install::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file +

Function uu_install::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file diff --git a/uu_install/fn.uumain.html b/uu_install/fn.uumain.html index f01ebc180..9be186193 100644 --- a/uu_install/fn.uumain.html +++ b/uu_install/fn.uumain.html @@ -1,3 +1,3 @@ uumain in uu_install - Rust -

Function uu_install::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file +

Function uu_install::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file diff --git a/uu_install/index.html b/uu_install/index.html index 4871f805e..b339a5dc9 100644 --- a/uu_install/index.html +++ b/uu_install/index.html @@ -1,6 +1,6 @@ uu_install - Rust -

Crate uu_install[][src]

Structs

+

Crate uu_install[][src]

Structs

Behavior

Enums

MainFunction

Functions

uu_app
uumain
\ No newline at end of file diff --git a/uu_install/struct.Behavior.html b/uu_install/struct.Behavior.html index f3eb60fe5..a85d465f6 100644 --- a/uu_install/struct.Behavior.html +++ b/uu_install/struct.Behavior.html @@ -1,6 +1,6 @@ Behavior in uu_install - Rust -

Struct uu_install::Behavior[][src]

pub struct Behavior { /* fields omitted */ }

Implementations

Determine the mode for chmod after copy.

+

Struct uu_install::Behavior[][src]

pub struct Behavior { /* fields omitted */ }

Implementations

Determine the mode for chmod after copy.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/uu_pwd/all.html b/uu_pwd/all.html index 9acf0abbf..c1d90f4be 100644 --- a/uu_pwd/all.html +++ b/uu_pwd/all.html @@ -2,4 +2,4 @@

List of all items[] -

Functions

\ No newline at end of file +

Functions

\ No newline at end of file diff --git a/uu_pwd/fn.absolute_path.html b/uu_pwd/fn.absolute_path.html deleted file mode 100644 index 4f45cf98b..000000000 --- a/uu_pwd/fn.absolute_path.html +++ /dev/null @@ -1,3 +0,0 @@ -absolute_path in uu_pwd - Rust - -

Function uu_pwd::absolute_path[][src]

pub fn absolute_path(path: &Path) -> Result<PathBuf>
\ No newline at end of file diff --git a/uu_pwd/fn.uu_app.html b/uu_pwd/fn.uu_app.html index 1eca1f3ef..7a164f18a 100644 --- a/uu_pwd/fn.uu_app.html +++ b/uu_pwd/fn.uu_app.html @@ -1,3 +1,3 @@ uu_app in uu_pwd - Rust -

Function uu_pwd::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file +

Function uu_pwd::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file diff --git a/uu_pwd/fn.uumain.html b/uu_pwd/fn.uumain.html index 52c38863c..892addd75 100644 --- a/uu_pwd/fn.uumain.html +++ b/uu_pwd/fn.uumain.html @@ -1,3 +1,3 @@ uumain in uu_pwd - Rust -

Function uu_pwd::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file +

Function uu_pwd::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file diff --git a/uu_pwd/index.html b/uu_pwd/index.html index 0a3fb449b..1a68516c4 100644 --- a/uu_pwd/index.html +++ b/uu_pwd/index.html @@ -1,4 +1,4 @@ uu_pwd - Rust -

Crate uu_pwd[][src]

Functions

-
absolute_path
uu_app
uumain
\ No newline at end of file +

Crate uu_pwd[][src]

Functions

+
uu_app
uumain
\ No newline at end of file diff --git a/uu_pwd/sidebar-items.js b/uu_pwd/sidebar-items.js index 56bdbc80f..887ccda3b 100644 --- a/uu_pwd/sidebar-items.js +++ b/uu_pwd/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["absolute_path",""],["uu_app",""],["uumain",""]]}); \ No newline at end of file +initSidebarItems({"fn":[["uu_app",""],["uumain",""]]}); \ No newline at end of file diff --git a/uu_seq/fn.uu_app.html b/uu_seq/fn.uu_app.html index de67a442f..1fdbbd6fd 100644 --- a/uu_seq/fn.uu_app.html +++ b/uu_seq/fn.uu_app.html @@ -1,3 +1,3 @@ uu_app in uu_seq - Rust -

Function uu_seq::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file +

Function uu_seq::uu_app[][src]

pub fn uu_app() -> App<'static, 'static>
\ No newline at end of file diff --git a/uu_seq/fn.uumain.html b/uu_seq/fn.uumain.html index c898ba00c..0fe062b44 100644 --- a/uu_seq/fn.uumain.html +++ b/uu_seq/fn.uumain.html @@ -1,3 +1,3 @@ uumain in uu_seq - Rust -

Function uu_seq::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file +

Function uu_seq::uumain[][src]

pub fn uumain(args: impl Args) -> i32
\ No newline at end of file diff --git a/uu_seq/index.html b/uu_seq/index.html index 56a2d748a..ec8d8ab34 100644 --- a/uu_seq/index.html +++ b/uu_seq/index.html @@ -1,4 +1,4 @@ uu_seq - Rust -

Crate uu_seq[][src]

Functions

+

Crate uu_seq[][src]

Functions

uu_app
uumain
\ No newline at end of file diff --git a/uucore/all.html b/uucore/all.html index 87eb44b51..fe2b9e451 100644 --- a/uucore/all.html +++ b/uucore/all.html @@ -2,4 +2,4 @@

List of all items[] -

Structs

Enums

Traits

Macros

Functions

Typedefs

Statics

Constants

\ No newline at end of file +

Structs

Enums

Traits

Macros

Functions

Typedefs

Statics

Constants

\ No newline at end of file diff --git a/uucore/features/mode/fn.get_umask.html b/uucore/features/mode/fn.get_umask.html new file mode 100644 index 000000000..ebf18e8f2 --- /dev/null +++ b/uucore/features/mode/fn.get_umask.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../../uucore/mode/fn.get_umask.html...

+ + + \ No newline at end of file diff --git a/uucore/fs/enum.MissingHandling.html b/uucore/fs/enum.MissingHandling.html index c74ee4fc8..4652ca28b 100644 --- a/uucore/fs/enum.MissingHandling.html +++ b/uucore/fs/enum.MissingHandling.html @@ -1,6 +1,6 @@ MissingHandling in uucore::fs - Rust -

Enum uucore::fs::MissingHandling[][src]

pub enum MissingHandling {
+

Enum uucore::fs::MissingHandling[][src]

pub enum MissingHandling {
     Normal,
     Existing,
     Missing,
@@ -10,13 +10,13 @@
 
Normal

Return an error if any part of the path is missing.

Existing

Resolve symbolic links, ignoring errors on the final component.

Missing

Resolve symbolic links, ignoring errors on the non-final components.

-

Trait Implementations

Returns a copy of the value. Read more

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

This method tests for self and other values to be equal, and is used +

Formats the value using the given formatter. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

diff --git a/uucore/fs/enum.ResolveMode.html b/uucore/fs/enum.ResolveMode.html index 2af3468ba..a7757a031 100644 --- a/uucore/fs/enum.ResolveMode.html +++ b/uucore/fs/enum.ResolveMode.html @@ -1,6 +1,6 @@ ResolveMode in uucore::fs - Rust -

Enum uucore::fs::ResolveMode[][src]

pub enum ResolveMode {
+

Enum uucore::fs::ResolveMode[][src]

pub enum ResolveMode {
     None,
     Physical,
     Logical,
@@ -10,13 +10,13 @@
 
None

Do not resolve any symbolic links.

Physical

Resolve symlinks as encountered when processing the path

Logical

Resolve ‘..’ elements before symlinks

-

Trait Implementations

Returns a copy of the value. Read more

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

This method tests for self and other values to be equal, and is used +

Formats the value using the given formatter. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

diff --git a/uucore/fs/fn.canonicalize.html b/uucore/fs/fn.canonicalize.html index e87fc734a..5899dbe4f 100644 --- a/uucore/fs/fn.canonicalize.html +++ b/uucore/fs/fn.canonicalize.html @@ -1,6 +1,6 @@ canonicalize in uucore::fs - Rust -

Function uucore::fs::canonicalize[][src]

pub fn canonicalize<P: AsRef<Path>>(
    original: P,
    miss_mode: MissingHandling,
    res_mode: ResolveMode
) -> IOResult<PathBuf>
Expand description

Return the canonical, absolute form of a path.

+

Function uucore::fs::canonicalize[][src]

pub fn canonicalize<P: AsRef<Path>>(
    original: P,
    miss_mode: MissingHandling,
    res_mode: ResolveMode
) -> IOResult<PathBuf>
Expand description

Return the canonical, absolute form of a path.

This function is a generalization of std::fs::canonicalize that allows controlling how symbolic links are resolved and how to deal with missing components. It returns the canonical, absolute form of diff --git a/uucore/fs/fn.display_permissions.html b/uucore/fs/fn.display_permissions.html index 38ea4245b..4e187ac80 100644 --- a/uucore/fs/fn.display_permissions.html +++ b/uucore/fs/fn.display_permissions.html @@ -1,3 +1,3 @@ display_permissions in uucore::fs - Rust -

Function uucore::fs::display_permissions[][src]

pub fn display_permissions(
    metadata: &Metadata,
    display_file_type: bool
) -> String
\ No newline at end of file +

Function uucore::fs::display_permissions[][src]

pub fn display_permissions(
    metadata: &Metadata,
    display_file_type: bool
) -> String
\ No newline at end of file diff --git a/uucore/fs/fn.display_permissions_unix.html b/uucore/fs/fn.display_permissions_unix.html index 95819db24..c1b9537bd 100644 --- a/uucore/fs/fn.display_permissions_unix.html +++ b/uucore/fs/fn.display_permissions_unix.html @@ -1,3 +1,3 @@ display_permissions_unix in uucore::fs - Rust -

Function uucore::fs::display_permissions_unix[][src]

pub fn display_permissions_unix(mode: mode_t, display_file_type: bool) -> String
\ No newline at end of file +

Function uucore::fs::display_permissions_unix[][src]

pub fn display_permissions_unix(mode: mode_t, display_file_type: bool) -> String
\ No newline at end of file diff --git a/uucore/fs/fn.normalize_path.html b/uucore/fs/fn.normalize_path.html index 4768c9fdb..4f1ee4344 100644 --- a/uucore/fs/fn.normalize_path.html +++ b/uucore/fs/fn.normalize_path.html @@ -1,3 +1,3 @@ normalize_path in uucore::fs - Rust -

Function uucore::fs::normalize_path[][src]

pub fn normalize_path(path: &Path) -> PathBuf
\ No newline at end of file +

Function uucore::fs::normalize_path[][src]

pub fn normalize_path(path: &Path) -> PathBuf
\ No newline at end of file diff --git a/uucore/fs/fn.resolve_relative_path.html b/uucore/fs/fn.resolve_relative_path.html index b3b0772ab..33730a356 100644 --- a/uucore/fs/fn.resolve_relative_path.html +++ b/uucore/fs/fn.resolve_relative_path.html @@ -1,3 +1,3 @@ resolve_relative_path in uucore::fs - Rust -

Function uucore::fs::resolve_relative_path[][src]

pub fn resolve_relative_path(path: &Path) -> Cow<'_, Path>
\ No newline at end of file +

Function uucore::fs::resolve_relative_path[][src]

pub fn resolve_relative_path(path: &Path) -> Cow<'_, Path>
\ No newline at end of file diff --git a/uucore/fs/index.html b/uucore/fs/index.html index 0fe6b3d74..fb5b9cd73 100644 --- a/uucore/fs/index.html +++ b/uucore/fs/index.html @@ -1,6 +1,6 @@ uucore::fs - Rust -

Module uucore::fs[][src]

Expand description

Set of functions to manage files and symlinks

+

Module uucore::fs[][src]

Expand description

Set of functions to manage files and symlinks

Enums

MissingHandling

Controls how symbolic links should be handled when canonicalizing a path.

ResolveMode

Controls when symbolic links are resolved

diff --git a/uucore/macro.has.html b/uucore/macro.has.html index dc243250c..0503da5b8 100644 --- a/uucore/macro.has.html +++ b/uucore/macro.has.html @@ -1,6 +1,6 @@ has in uucore - Rust -

Macro uucore::has[][src]

+

Macro uucore::has[][src]

 macro_rules! has {
     ($mode:expr, $perm:expr) => { ... };
 }
diff --git a/uucore/mode/fn.get_umask.html b/uucore/mode/fn.get_umask.html new file mode 100644 index 000000000..ddf65d339 --- /dev/null +++ b/uucore/mode/fn.get_umask.html @@ -0,0 +1,3 @@ +get_umask in uucore::mode - Rust + +

Function uucore::mode::get_umask[][src]

pub fn get_umask() -> u32
\ No newline at end of file diff --git a/uucore/mode/fn.parse_mode.html b/uucore/mode/fn.parse_mode.html index 5a6c94e9b..38c05af19 100644 --- a/uucore/mode/fn.parse_mode.html +++ b/uucore/mode/fn.parse_mode.html @@ -1,3 +1,3 @@ parse_mode in uucore::mode - Rust -

Function uucore::mode::parse_mode[][src]

pub fn parse_mode(mode: &str) -> Result<mode_t, String>
\ No newline at end of file +

Function uucore::mode::parse_mode[][src]

pub fn parse_mode(mode: &str) -> Result<mode_t, String>
\ No newline at end of file diff --git a/uucore/mode/fn.parse_numeric.html b/uucore/mode/fn.parse_numeric.html index e4e59d7fe..543062cd5 100644 --- a/uucore/mode/fn.parse_numeric.html +++ b/uucore/mode/fn.parse_numeric.html @@ -1,3 +1,3 @@ parse_numeric in uucore::mode - Rust -

Function uucore::mode::parse_numeric[][src]

pub fn parse_numeric(fperm: u32, mode: &str) -> Result<u32, String>
\ No newline at end of file +

Function uucore::mode::parse_numeric[][src]

pub fn parse_numeric(
    fperm: u32,
    mode: &str,
    considering_dir: bool
) -> Result<u32, String>
\ No newline at end of file diff --git a/uucore/mode/fn.parse_symbolic.html b/uucore/mode/fn.parse_symbolic.html index 1907d3f44..6dfd32f22 100644 --- a/uucore/mode/fn.parse_symbolic.html +++ b/uucore/mode/fn.parse_symbolic.html @@ -1,3 +1,3 @@ parse_symbolic in uucore::mode - Rust -

Function uucore::mode::parse_symbolic[][src]

pub fn parse_symbolic(
    fperm: u32,
    mode: &str,
    considering_dir: bool
) -> Result<u32, String>
\ No newline at end of file +

Function uucore::mode::parse_symbolic[][src]

pub fn parse_symbolic(
    fperm: u32,
    mode: &str,
    umask: u32,
    considering_dir: bool
) -> Result<u32, String>
\ No newline at end of file diff --git a/uucore/mode/index.html b/uucore/mode/index.html index 57c1fe134..9a5a205fa 100644 --- a/uucore/mode/index.html +++ b/uucore/mode/index.html @@ -1,5 +1,5 @@ uucore::mode - Rust -

Module uucore::mode[][src]

Expand description

Set of functions to parse modes

+

Module uucore::mode[][src]

Expand description

Set of functions to parse modes

Functions

-
parse_mode
parse_numeric
parse_symbolic
\ No newline at end of file +
get_umask
parse_mode
parse_numeric
parse_symbolic
\ No newline at end of file diff --git a/uucore/mode/sidebar-items.js b/uucore/mode/sidebar-items.js index 07c2f355e..11cbf1591 100644 --- a/uucore/mode/sidebar-items.js +++ b/uucore/mode/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["parse_mode",""],["parse_numeric",""],["parse_symbolic",""]]}); \ No newline at end of file +initSidebarItems({"fn":[["get_umask",""],["parse_mode",""],["parse_numeric",""],["parse_symbolic",""]]}); \ No newline at end of file