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. --- NEWS.md.in | 3 +++ bin/lsrc.in | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/NEWS.md.in b/NEWS.md.in index 10c1084..6e7451e 100644 --- a/NEWS.md.in +++ b/NEWS.md.in @@ -1,5 +1,8 @@ rcm (@PACKAGE_VERSION@) unstable; urgency=low + * BUGFIX: Allow files with the same prefix name in the same + directory. Verbose hidden files for lsrc(1) (Javier López). + -- Mike Burns Fri, 28 Mar 2014 16:30:53 +0100 rcm (1.2.2) unstable; urgency=low 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