(CommandList children: [ (C {(Lit_Other ":")} {(gnu)} {(updatedb)} {(wrapper)} {(KW_For for)} {(tw)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:codes_default) op: Equal rhs: {(DQ (lib/find/codes))} spids: [70] ) ] spids: [70] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:dirs_default) op:Equal rhs:{(DQ (/))} spids:[75])] spids: [75] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:drop_default) op: Equal rhs: {(DQ ("/afs|/backup|/dev|/proc|/tmp|/usr/tmp|/var/tmp"))} spids: [80] ) ] spids: [80] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep_default) op: Equal rhs: {(DQ ("/home|/usr/local|/usr/common"))} spids: [85] ) ] spids: [85] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:COMMAND) op:Equal rhs:{(updatedb)} spids:[91])] spids: [91] ) (Case to_match: { (CommandSubPart command_list: (CommandList children: [ (Subshell child: (CommandList children: [ (Sentence child: (C {(getopts)} {(SQ <"[-][123:xyz]">)} {(opt)} {(--xyz)}) terminator: <Op_Semi ";"> ) (C {(echo)} {(0) ($ VSub_Name "$opt")}) ] ) redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[115])] spids: [97 113] ) ] ) left_token: <Left_Backtick "`"> spids: [96 117] ) } arms: [ (case_arm pat_list: [{(0123)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARGV0) op: Equal rhs: {(DQ ("-a ") ($ VSub_Name "$COMMAND"))} spids: [124] ) ] spids: [124] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:USAGE) op: Equal rhs: { (SQ <"\n"> <"[-?\n"> <"@(#)$Id: updatedb (AT&T Labs Research) 2003-11-14 $\n"> <"]\n"> ) ($ VSub_Name "$USAGE_LICENSE") (SQ <"\n"> <"[+NAME?updatedb - generate locate pathname database]\n"> <"[+DESCRIPTION?"> <Lit_EscapedChar "\\b"> <updatedb> <Lit_EscapedChar "\\b"> <" generates the locate pathname database that is used\n"> <"\tby "> <Lit_EscapedChar "\\b"> <locate> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <find> <Lit_EscapedChar "\\b"> <"(1), and "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> <"(1). Sufficient privilege\n"> <"\tis required to change the system locate database.]\n"> <"[+?This implemenation is a script that generates a "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> <"(1) command that\n"> <"\tdoes all the work.]\n"> <"[a:auto-home?Include the "> <Lit_EscapedChar "\\b"> <nis> <Lit_EscapedChar "\\b"> <"(1) "> <Lit_EscapedChar "\\a"> <auto.home> <Lit_EscapedChar "\\a"> <" auto mounter home directories\n"> <"\tin "> <Lit_EscapedChar "\\b"> </home> <Lit_EscapedChar "\\b"> <". NOTE: this causes the home directories to be mounted\n"> <"\tand may swamp the mount table.]\n"> < "[d:directory|localpaths?Local directories to include in the database. If the\n" > <"\tfirst "> <Lit_EscapedChar "\\a"> <dir> <Lit_EscapedChar "\\a"> <" is "> <Lit_EscapedChar "\\b"> <"+"> <Lit_EscapedChar "\\b"> <" then the default list is appended.]:\n"> <"\t[\"dir1 dir2 ...\":="> ) (${ VSub_Name dirs_default) (SQ <"]\n"> < "[i:ignore-errors?Omit inaccessible files and directory error messages.]\n" > <"[k:keep?Directories to retain in the database; used to override\n"> <"\t"> <Lit_EscapedChar "\\b"> <--nocrossdevice> <Lit_EscapedChar "\\b"> <". If any of the paths are symbolic links then they\n"> <"\tare followed. If the first "> <Lit_EscapedChar "\\a"> <dir> <Lit_EscapedChar "\\a"> <" is "> <Lit_EscapedChar "\\b"> <"+"> <Lit_EscapedChar "\\b"> <" then the default list\n"> <"\tis appended.]:[\"dir1 dir2 ...\":="> ) (BracedVarSub token: <VSub_Name keep_default> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\|">)} replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\ ">)} do_all: True do_prefix: False do_suffix: False ) spids: [217 224] ) (SQ <"]\n"> <"[l:local?Do not descend into non-local filesystem directories.]\n"> <"[r:netpaths?Network directories to include in the database. Currently\n"> <"\tequivalent to "> <Lit_EscapedChar "\\b"> <--localpaths> <Lit_EscapedChar "\\b"> <".]:[\"dir1 dir2 ...\"]\n"> < "[p:prunepaths|drop?Directories to exclude from the database. If the first " > <Lit_EscapedChar "\\a"> <dir> <Lit_EscapedChar "\\a"> <"\n"> <"\tis "> <Lit_EscapedChar "\\b"> <"+"> <Lit_EscapedChar "\\b"> <" then the default list is appended.]:\n"> <"\t[\"dir1 dir2 ...\":="> ) (BracedVarSub token: <VSub_Name drop_default> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\|">)} replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\ ">)} do_all: True do_prefix: False do_suffix: False ) spids: [246 253] ) (SQ <"]\n"> <"[o:output|codes?The path of the generated database.]:[dbfile:=">) (${ VSub_Name codes_default) (SQ <"]\n"> < "[P:public?Omit files that are not publicly readable and directories that\n" > <"\tare not publicly searchable.]\n"> <"[u:user|netuser?The user id used to search directories.]:[user]\n"> <"[m:dir-format?Generate a database similar to "> <Lit_EscapedChar "\\b"> <--gnu-format> <Lit_EscapedChar "\\b"> <", except that\n"> <"\tdirectories are marked for efficient implementations of "> <Lit_EscapedChar "\\b"> <find> <Lit_EscapedChar "\\b"> <"(1)\n"> <"\tand "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> <"(1). This is the default database format.]\n"> <"[g:gnu-format?Generate a machine independent gnu "> <Lit_EscapedChar "\\b"> <locate> <Lit_EscapedChar "\\b"> <"(1) compatible\n"> <"\tdatabase.]\n"> <"[O:old-format?Generate a database compatible with the obsolete\n"> <"\t"> <Lit_EscapedChar "\\b"> <fastfind> <Lit_EscapedChar "\\b"> <"(1). This format has a machine dependent encoding.]\n"> <"[D:depth?Limit the directory traversal depth to "> <Lit_EscapedChar "\\a"> <level> <Lit_EscapedChar "\\a"> <".]#[level]\n"> <"[X!:crossdevice?Retain subdirectories that cross device boundaries.]\n"> <"[n:show?Show the underlying the "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> <"(1) command but do not execute.]\n"> <"[+FILES]{[+"> ) (${ VSub_Name codes_default) (SQ <"?Default locate database on "> <Lit_EscapedChar "\\b"> <Lit_EscapedChar "\\$"> <PATH> <Lit_EscapedChar "\\b"> <".]}\n"> <"[+CAVEATS?If you run "> <Lit_EscapedChar "\\b"> <updatedb> <Lit_EscapedChar "\\b"> <" as root then protected directory\n"> <"\tcontents may be visible to everyone via the database. Use the\n"> <"\t"> <Lit_EscapedChar "\\b"> <--public> <Lit_EscapedChar "\\b"> <" option to limit the database to publically visible\n"> <"\tfiles and directories.]\n"> <"[+SEE ALSO?"> <Lit_EscapedChar "\\b"> <locate> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <fastfind> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <find> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <nis> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> <"(1)]\n"> ) } spids: [131] ) ] spids: [131] ) ] spids: [121 122 352 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ARGV0) op:Equal rhs:{(DQ )} spids:[357])] spids: [357] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:USAGE) op: Equal rhs: { (DQ ( "aiglnOPXd:['dir1 dir2 ...']k:['dir1 dir2 ...']o:[dbfile]p:['dir1 dir2 ...']r:['dir1 dir2 ...']u:[user]D:[level]" ) ) } spids: [362] ) ] spids: [362] ) ] spids: [354 355 368 -1] ) ] spids: [94 119 370] ) (FuncDef name: usage body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTIND) op:Equal rhs:{(0)} spids:[380])] spids: [380] ) (C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)} {(SQ <"-?">)}) (C {(exit)} {(2)}) ] spids: [377] ) spids: [373 376] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:cross) op:Equal rhs:{(1)} spids:[406])] spids: [406] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depth) op:Equal rhs:{(SQ )} spids:[409])] spids: [409] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:dirs) op:Equal rhs:{(SQ )} spids:[411])] spids: [411] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:drop) op:Equal rhs:{(SQ )} spids:[413])] spids: [413] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:format) op:Equal rhs:{(DQ (-))} spids:[415])] spids: [415] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:keep) op:Equal rhs:{(SQ )} spids:[420])] spids: [420] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ (-P))} spids:[422])] spids: [422] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:output) op:Equal rhs:{(DQ (-))} spids:[427])] spids: [427] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:public) op:Equal rhs:{(SQ )} spids:[432])] spids: [432] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:show) op:Equal rhs:{(SQ )} spids:[434])] spids: [434] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:su) op:Equal rhs:{(SQ )} spids:[436])] spids: [436] ) (While cond: [(C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)})] body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$OPT")} arms: [ (case_arm pat_list: [{(a)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dirs) op: Equal rhs: { (DQ ($ VSub_Name "$dirs") (" ") (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (BraceGroup children: [ (Pipeline children: [ (C {(ypcat)} {(auto.home)}) (C {(sed)} {(SQ <"s,.*/,-d /home/,">)}) ] negated: False ) (Pipeline children: [ (C {(ls)} {(/home)}) (C {(sed)} {(SQ <"s,^,-d /home/,">)}) ] negated: False ) ] spids: [467] ) (C {(sort)} {(-u)}) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [466 503] ) ) } spids: [462] ) ] spids: [462] ) ] spids: [459 460 507 -1] ) (case_arm pat_list: [{(d)} {(r)}] action: [ (Case to_match: {($ VSub_Name "$OPTARG")} arms: [ (case_arm pat_list: [{(DQ ("+"))} {(DQ ("+ ")) (Lit_Other "*")}] spids: [523 530 532 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dirs_default) op: Equal rhs: {(SQ )} spids: [538] ) ] spids: [538] ) ] spids: [535 536 540 -1] ) ] spids: [515 519 543] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name "$OPTARG")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$dir")} arms: [ (case_arm pat_list: [{(Lit_Other "+")}] spids: [564 565 567 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dirs) op: Equal rhs: { (DQ ($ VSub_Name "$dirs") (" -d ") ($ VSub_Name "$dir")) } spids: [573] ) ] spids: [573] ) ] spids: [570 571 580 -1] ) ] spids: [557 561 583] ) ] spids: [555 586] ) spids: [551 -1] ) ] spids: [510 513 589 -1] ) (case_arm pat_list: [{(g)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:format) op: Equal rhs: {(gnu)} spids: [595] ) ] spids: [595] ) ] spids: [592 593 599 -1] ) (case_arm pat_list: [{(i)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(DQ ($ VSub_Name "$options") (" -i"))} spids: [605] ) ] spids: [605] ) ] spids: [602 603 612 -1] ) (case_arm pat_list: [{(k)}] action: [ (Case to_match: {($ VSub_Name "$OPTARG")} arms: [ (case_arm pat_list: [{(DQ ("+"))} {(DQ ("+ ")) (Lit_Other "*")}] spids: [626 633 635 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep_default) op: Equal rhs: {(SQ )} spids: [641] ) ] spids: [641] ) ] spids: [638 639 643 -1] ) ] spids: [618 622 646] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name "$OPTARG")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$dir")} arms: [ (case_arm pat_list: [{(Lit_Other "+")}] spids: [667 668 670 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Case to_match: {($ VSub_Name "$keep")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep) op: Equal rhs: { (DQ ($ VSub_Name "$keep") ("|") ($ VSub_Name "$dir") ) } spids: [687] ) ] spids: [687] ) ] spids: [683 685 694 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep) op: Equal rhs: {(DQ ($ VSub_Name "$dir"))} spids: [700] ) ] spids: [700] ) ] spids: [697 698 705 -1] ) ] spids: [676 680 708] ) ] spids: [673 674 711 -1] ) ] spids: [660 664 714] ) ] spids: [658 717] ) spids: [654 -1] ) ] spids: [615 616 720 -1] ) (case_arm pat_list: [{(l)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(DQ ($ VSub_Name "$options") (" -l"))} spids: [726] ) ] spids: [726] ) ] spids: [723 724 733 -1] ) (case_arm pat_list: [{(m)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:format) op: Equal rhs: {(DQ (-))} spids: [739] ) ] spids: [739] ) ] spids: [736 737 745 -1] ) (case_arm pat_list: [{(o)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:output) op: Equal rhs: {($ VSub_Name "$OPTARG")} spids: [751] ) ] spids: [751] ) ] spids: [748 749 755 -1] ) (case_arm pat_list: [{(n)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:show) op: Equal rhs: {(DQ ("print --"))} spids: [761] ) ] spids: [761] ) ] spids: [758 759 767 -1] ) (case_arm pat_list: [{(p)}] action: [ (Case to_match: {($ VSub_Name "$OPTARG")} arms: [ (case_arm pat_list: [{(DQ ("+"))} {(DQ ("+ ")) (Lit_Other "*")}] spids: [781 788 790 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:drop_default) op: Equal rhs: {(SQ )} spids: [796] ) ] spids: [796] ) ] spids: [793 794 798 -1] ) ] spids: [773 777 801] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name "$OPTARG")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$dir")} arms: [ (case_arm pat_list: [{(Lit_Other "+")}] spids: [822 823 825 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Case to_match: {($ VSub_Name "$drop")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:drop) op: Equal rhs: { (DQ ($ VSub_Name "$drop") ("|") ($ VSub_Name "$dir") ) } spids: [842] ) ] spids: [842] ) ] spids: [838 840 849 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:drop) op: Equal rhs: {(DQ ($ VSub_Name "$dir"))} spids: [855] ) ] spids: [855] ) ] spids: [852 853 860 -1] ) ] spids: [831 835 863] ) ] spids: [828 829 866 -1] ) ] spids: [815 819 869] ) ] spids: [813 872] ) spids: [809 -1] ) ] spids: [770 771 875 -1] ) (case_arm pat_list: [{(u)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:su) op: Equal rhs: {(DQ ("su ") ($ VSub_Name "$OPTARG"))} spids: [881] ) ] spids: [881] ) ] spids: [878 879 888 -1] ) (case_arm pat_list: [{(D)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depth) op: Equal rhs: {($ VSub_Name "$OPTARG")} spids: [894] ) ] spids: [894] ) ] spids: [891 892 898 -1] ) (case_arm pat_list: [{(O)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:format) op: Equal rhs: {(old)} spids: [904] ) ] spids: [904] ) ] spids: [901 902 908 -1] ) (case_arm pat_list: [{(P)}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:public) op:Equal rhs:{(1)} spids:[914])] spids: [914] ) ] spids: [911 912 918 -1] ) (case_arm pat_list: [{(X)}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:cross) op:Equal rhs:{(SQ )} spids:[924])] spids: [924] ) ] spids: [921 922 927 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(usage)})] spids: [930 931 936 -1] ) ] spids: [452 456 939] ) ] spids: [450 941] ) ) (C {(shift)} {($ VSub_Name "$OPTIND") (-1)}) (Case to_match: {($ VSub_Pound "$#")} arms: [ (case_arm pat_list:[{(0)}] spids:[954955957-1]) (case_arm pat_list:[{(Lit_Other "*")}] action:[(C {(usage)})] spids:[959960964-1]) ] spids: [948 952 966] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name "$dirs_default")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dirs) op: Equal rhs: {(DQ ($ VSub_Name "$dirs") (" -d ") ($ VSub_Name "$dir"))} spids: [979] ) ] spids: [979] ) ] spids: [977 986] ) spids: [974 -1] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name "$drop_default")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$drop")} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:drop) op: Equal rhs: {(DQ ($ VSub_Name "$dir"))} spids: [1009] ) ] spids: [1009] ) ] spids: [-1 1007 1014 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:drop) op: Equal rhs: {(DQ ($ VSub_Name "$drop") ("|") ($ VSub_Name "$dir"))} spids: [1020] ) ] spids: [1020] ) ] spids: [1017 1018 1027 -1] ) ] spids: [998 1002 1030] ) ] spids: [996 1032] ) spids: [993 -1] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name "$keep_default")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$keep")} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep) op: Equal rhs: {(DQ ($ VSub_Name "$dir"))} spids: [1055] ) ] spids: [1055] ) ] spids: [-1 1053 1060 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keep) op: Equal rhs: {(DQ ($ VSub_Name "$keep") ("|") ($ VSub_Name "$dir"))} spids: [1066] ) ] spids: [1066] ) ] spids: [1063 1064 1073 -1] ) ] spids: [1044 1048 1076] ) ] spids: [1042 1078] ) spids: [1039 -1] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:skip) op:Equal rhs:{(SQ )} spids:[1081])] spids: [1081] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:follow) op:Equal rhs:{(SQ )} spids:[1083])] spids: [1083] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:alt) op:Equal rhs:{(DQ ("\n") ("\t\t"))} spids:[1085])] spids: [1085] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:sep) op:Equal rhs:{(DQ ("\n") ("\t"))} spids:[1091])] spids: [1091] ) (Case to_match: {($ VSub_Name "$public")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Case to_match: {($ VSub_Name "$skip")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: {(DQ ($ VSub_Name "$skip") (" ||"))} spids: [1118] ) ] spids: [1118] ) ] spids: [1114 1116 1124 -1] ) ] spids: [1107 1111 1127] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: { (DQ (${ VSub_Name skip) (${ VSub_Name alt) ("!(mode & 'o+r') ||") (${ VSub_Name alt) ("type == DIR &&") (${ VSub_Name alt) ("!(mode & 'o+x')") ) } spids: [1130] ) ] spids: [1130] ) ] spids: [1103 1105 1150 -1] ) ] spids: [1097 1101 1152] ) (Case to_match: {($ VSub_Name "$depth")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Case to_match: {($ VSub_Name "$skip")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: {(DQ ($ VSub_Name "$skip") (" ||"))} spids: [1175] ) ] spids: [1175] ) ] spids: [1171 1173 1181 -1] ) ] spids: [1164 1168 1184] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: {(DQ (${ VSub_Name skip) (${ VSub_Name alt) ("level > ") ($ VSub_Name "$depth"))} spids: [1187] ) ] spids: [1187] ) ] spids: [1160 1162 1200 -1] ) ] spids: [1154 1158 1202] ) (Case to_match: {($ VSub_Name "$cross")} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (Case to_match: {($ VSub_Name "$skip")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: {(DQ ($ VSub_Name "$skip") (" ||"))} spids: [1225] ) ] spids: [1225] ) ] spids: [1221 1223 1231 -1] ) ] spids: [1214 1218 1234] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: {(DQ (${ VSub_Name skip) (${ VSub_Name alt) ("fstype != '/'.fstype"))} spids: [1237] ) ] spids: [1237] ) (Case to_match: {($ VSub_Name "$keep")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: { (DQ (${ VSub_Name skip) (" &&") (${ VSub_Name alt) ("path != '(") ($ VSub_Name "$keep") (")?(/*)'") ) } spids: [1260] ) ] spids: [1260] ) ] spids: [1256 1258 -1 1275] ) ] spids: [1249 1253 1275] ) ] spids: [-1 1212 1278 -1] ) ] spids: [1204 1208 1280] ) (Case to_match: {($ VSub_Name "$drop")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Case to_match: {($ VSub_Name "$skip")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: {(DQ ($ VSub_Name "$skip") (" ||"))} spids: [1303] ) ] spids: [1303] ) ] spids: [1299 1301 1309 -1] ) ] spids: [1292 1296 1312] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip) op: Equal rhs: { (DQ (${ VSub_Name skip) (${ VSub_Name alt) ("path == '(") ($ VSub_Name "$drop") (")?(/*)'") ) } spids: [1315] ) ] spids: [1315] ) ] spids: [1288 1290 1329 -1] ) ] spids: [1282 1286 1331] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:expr) op:Equal rhs:{(SQ )} spids:[1333])] spids: [1333] ) (Case to_match: {($ VSub_Name "$skip")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expr) op: Equal rhs: { (DQ ("if (") (${ VSub_Name skip) (${ VSub_Name alt) (")") (${ VSub_Name alt) ("\tstatus = SKIP;") ) } spids: [1345] ) ] spids: [1345] ) ] spids: [1341 1343 1361 -1] ) ] spids: [1335 1339 1363] ) (Case to_match: {($ VSub_Name "$keep")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Case to_match: {($ VSub_Name "$expr")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expr) op: Equal rhs: {(DQ (${ VSub_Name expr) (${ VSub_Name sep) ("else "))} spids: [1386] ) ] spids: [1386] ) ] spids: [1382 1384 1397 -1] ) ] spids: [1375 1379 1400] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expr) op: Equal rhs: { (DQ (${ VSub_Name expr) ("if (") (${ VSub_Name alt) ("type == LNK &&") (${ VSub_Name alt) ("level < 3 &&") (${ VSub_Name alt) ("path == '(") ($ VSub_Name "$keep") (")?(/*)'") (${ VSub_Name alt) (")") (${ VSub_Name alt) ("\tstatus = FOLLOW;") ) } spids: [1403] ) ] spids: [1403] ) ] spids: [1371 1373 1434 -1] ) ] spids: [1365 1369 1436] ) (Case to_match: {($ VSub_Name "$expr")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Case to_match: {($ VSub_Name "$show")} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expr) op: Equal rhs: {(DQ (-e) (${ VSub_Name sep) (${ VSub_Name expr) (${ VSub_Name sep))} spids: [1459] ) ] spids: [1459] ) ] spids: [-1 1457 1473 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expr) op: Equal rhs: { (DQ ("-e ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name sep) (${ VSub_Name expr) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name sep) ) } spids: [1479] ) ] spids: [1479] ) ] spids: [1476 1477 1495 -1] ) ] spids: [1448 1452 1498] ) ] spids: [1444 1446 1501 -1] ) ] spids: [1438 1442 1503] ) (C {($ VSub_Name "$show")} {($ VSub_Name "$su")} {(tw)} {($ VSub_Name "$options")} {(-F)} {(DQ ($ VSub_Name "$output"))} {(-G)} {(DQ ($ VSub_Name "$format"))} {(DQ ($ VSub_Name "$expr"))} {($ VSub_Name "$dirs")} ) ] )