--- Scan.pm.old 2004-10-13 10:39:27.406250000 -0700 +++ Scan.pm 2004-10-13 10:40:16.031250000 -0700 @@ -341,7 +341,7 @@ sub readList { # reads a directory or my($playlisturl, $listref, $sorted) = @_; $::d_scan && msg("Scan::readList gonna read $playlisturl\n"); - + my ($playlist_filehandle, $numitems); $numitems = 0; @@ -385,13 +385,17 @@ sub readList { # reads a directory or $::d_scan && msg("Ignoring playlist name with .. in it: $playlistpath\n"); return 0; } - + if (Slim::Music::Info::isITunesPlaylistURL($playlistpath) || Slim::Music::Info::isMoodLogicPlaylistURL($playlistpath) || (defined Slim::Music::Info::cachedPlaylist($playlistpath) && (Slim::Music::Info::isDir($playlistpath) && (((stat(Slim::Utils::Misc::pathFromFileURL($playlistpath)))[9]) == Slim::Music::Info::age($playlistpath)))) ) { $::d_scan && msg("*** found a current entry for $playlisturl in playlist cache ***\n"); + if (Slim::Music::Info::isWinShortcut($playlisturl)) { + $::d_scan && msg($playlisturl." might be circular link, skipping\n"); + return 0; + } my $cacheentryref = Slim::Music::Info::cachedPlaylist( $playlistpath ); if ($cacheentryref) { $numitems = (push @$listref, @{$cacheentryref}) - $startingsize;