diff --git a/lib/AnyEvent/I3.pm b/lib/AnyEvent/I3.pm index d9a55b2b..944d5f02 100644 --- a/lib/AnyEvent/I3.pm +++ b/lib/AnyEvent/I3.pm @@ -96,7 +96,16 @@ sub new { $path ||= '~/.i3/ipc.sock'; - bless { path => glob($path) } => $class; + # Check if we need to resolve ~ + if ($path =~ /~/) { + # We use getpwuid() instead of $ENV{HOME} because the latter is tainted + # and thus produces warnings when running tests with perl -T + my $home = (getpwuid($<))[7]; + die "Could not get home directory" unless $home and -d $home; + $path =~ s/~/$home/g; + } + + bless { path => $path } => $class; } =head2 $i3->connect