(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]} ) (FunctionDef test_prefix [] (Com {[LIT_CHARS test_expect_success]} {[DQ [VarSub 1]]} {[DQ [LIT_CHARS "test '"][VarSub 2][LIT_CHARS "' = "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "(git rev-parse --show-prefix)"][\ LIT_ESCAPED_CHAR "\\\""]]} ) ) (FunctionDef test_fail [] (Com {[LIT_CHARS test_expect_success]} {[DQ [VarSub 1][LIT_CHARS ": prefix"]]} {[SQ ]} ) ) (= scope= flags=0 words=[] bindings=[('TRASH_ROOT', {[DQ [VarSub PWD]]})]) (= scope= flags=0 words=[] bindings=[('ROOT_PARENT', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub TRASH_ROOT]]})]})]) (Com {[LIT_CHARS unset]} {[LIT_CHARS GIT_CEILING_DIRECTORIES]} ) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS no_ceil]} {[DQ ]} ) (= scope= flags=1 words=[{[LIT_CHARS GIT_CEILING_DIRECTORIES]}] bindings=[]) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ ]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS ceil_empty]} {[DQ ]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub ROOT_PARENT]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS ceil_at_parent]} {[DQ ]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub ROOT_PARENT][LIT_CHARS /]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS ceil_at_parent_slash]} {[DQ ]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS ceil_at_trash]} {[DQ ]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS ceil_at_trash_slash]} {[DQ ]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS ceil_at_sub]} {[DQ ]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub/]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS ceil_at_sub_slash]} {[DQ ]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS sub/dir]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS sub/dir]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS GIT_CEILING_DIRECTORIES]} ) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_no_ceil]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=1 words=[{[LIT_CHARS GIT_CEILING_DIRECTORIES]}] bindings=[]) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ ]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_empty]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS subdir_ceil_at_trash]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS subdir_ceil_at_trash_slash]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS subdir_ceil_at_sub]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub/]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS subdir_ceil_at_sub_slash]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub/dir]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_at_subdir]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub/dir/]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_at_subdir_slash]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /su]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_at_su]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /su/]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_at_su_slash]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub/di]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_at_sub_di]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub/di]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_at_sub_di_slash]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /subdi]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_at_subdi]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /subdi]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS subdir_ceil_at_subdi_slash]} {[DQ [LIT_CHARS sub/dir/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [LIT_CHARS "/foo:"][VarSub TRASH_ROOT][LIT_CHARS /sub]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS second_of_two]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS "/sub:/bar"]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS first_of_two]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [LIT_CHARS "/foo:"][VarSub TRASH_ROOT][LIT_CHARS "/sub:/bar"]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS second_of_three]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sub]]})]) (= scope= flags=0 words=[] bindings=[('GIT_DIR', {[LIT_CHARS ../../.git]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_DIR]}] bindings=[]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS git_dir_specified]} {[DQ ]} ) (Com {[LIT_CHARS unset]} {[LIT_CHARS GIT_DIR]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS ../..]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS s/d]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS s/d]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS GIT_CEILING_DIRECTORIES]} ) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_no_ceil]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=1 words=[{[LIT_CHARS GIT_CEILING_DIRECTORIES]}] bindings=[]) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ ]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_empty]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS sd_ceil_at_trash]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS sd_ceil_at_trash_slash]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /s]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS sd_ceil_at_s]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /s/]]})]) (Com {[LIT_CHARS test_fail]} {[LIT_CHARS sd_ceil_at_s_slash]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /s/d]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_at_sd]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /s/d/]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_at_sd_slash]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /su]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_at_su]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /su/]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_at_su_slash]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /s/di]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_at_s_di]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /s/di]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_at_s_di_slash]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sdi]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_at_sdi]} {[DQ [LIT_CHARS s/d/]]} ) (= scope= flags=0 words=[] bindings=[('GIT_CEILING_DIRECTORIES', {[DQ [VarSub TRASH_ROOT][LIT_CHARS /sdi]]})]) (Com {[LIT_CHARS test_prefix]} {[LIT_CHARS sd_ceil_at_sdi_slash]} {[DQ [LIT_CHARS s/d/]]} ) (Com {[LIT_CHARS test_done]} ) )