Package: vim-addon-manager Version: 0.5.2 Severity: normal Tags: patch Dear Maintainer,
when executing vam in an environment that does not include $HOME, it errors out: $ env -u HOME vam -w show foo /usr/bin/vim-addon-manager:201:in `join': can't convert nil into String (TypeError) from /usr/bin/vim-addon-manager:201:in `parse_cmdline' from /usr/bin/vim-addon-manager:251:in `<top (required)>' from /usr/bin/vam:2:in `load' from /usr/bin/vam:2:in `<main>' $ Why is this bad? * The error message does not tell the user what is wrong. * Other programs trying to access the users home default to using getent if $HOME is unavailable. * When passing the -w switch there is no need to access any home at all. I propose to use look up the home directory using the 'etc' Ruby stdlib module. Have a look at the attached patch for details. Helmut
--- vim-addon-manager.orig 2013-10-14 17:36:06.000000000 +0200 +++ vim-addon-manager 2013-10-14 17:36:47.000000000 +0200 @@ -155,6 +155,7 @@ =end +require 'etc' require 'getoptlong' require 'vim/addon_manager' @@ -198,7 +199,7 @@ :registry_dir => '/usr/share/vim/registry', :source_dir => '/usr/share/vim/addons', :system_dir => '/var/lib/vim/addons', - :target_dir => File.join(ENV['HOME'], '.vim'), + :target_dir => File.join(ENV['HOME'] || (Etc.getpwnam Etc.getlogin).dir, '.vim'), :query => false, :system_wide => false, }