From a7c2b6bed845b8512e878c992e07841ea9b88462 Mon Sep 17 00:00:00 2001 From: The Linux Kitten Date: Sun, 30 Mar 2014 14:46:26 +0200 Subject: Files with the same prefix in different dirs The bug: ~% ls -1 test-dotfiles/**/*(.) test-dotfiles/tag-openbsdbox/zshrc_alias test-dotfiles/tag-openbsdbox/zshrc_bsd test-dotfiles/tag-zsh/zshrc ~% lsrc -t openbsdbox -t zsh -d test-dotfiles /home/mike/.zshrc_alias:/home/mike/test-dotfiles/tag-openbsdbox/zshrc_alias /home/mike/.zshrc_bsd:/home/mike/test-dotfiles/tag-openbsdbox/zshrc_bsd ~% We expect to also see: /home/mike/.zshrc:/home/mike/test-dotfiles/tag-zsh/zshrc This arises because we were checking for files the start with another name, rather than a full equality. --- bin/lsrc.in | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'bin') diff --git a/bin/lsrc.in b/bin/lsrc.in index 1402fec..c5ad700 100755 --- a/bin/lsrc.in +++ b/bin/lsrc.in @@ -108,20 +108,20 @@ show_file() { local dotted=$5 local symlink_dirs_file_globs="$6" local dest_file="$(build_path "$dest_dir" "$file" $dotted)" + local src_file="$(file_join "$dotfiles_subdir" "$file")" + local abs_src_file="$(file_join "$dotfiles_dir" "$src_file")" + local output="$dest_file:$abs_src_file" - if echo "$DEST_STACK" | grep -vq ":$dest_file"; then - DEST_STACK="$DEST_STACK:$dest_file" - - src_file="$(file_join "$dotfiles_subdir" "$file")" - abs_src_file="$(file_join "$dotfiles_dir" "$src_file")" - output="$dest_file:$abs_src_file" - - if [ $SHOW_SIGILS -eq 1 ]; then - sigil="$(sigil_for "$src_file" "$symlink_dirs_file_globs")" - output="$output:$sigil" - fi + if [ $SHOW_SIGILS -eq 1 ]; then + sigil="$(sigil_for "$src_file" "$symlink_dirs_file_globs")" + output="$output:$sigil" + fi + if echo "$DEST_STACK:" | grep -vq ":$dest_file:"; then + DEST_STACK="$DEST_STACK:$dest_file" $PRINT "$output" + else + $VERBOSE "skipping hidden file $output" fi } -- cgit v1.2.3