-#endif /* HAVE_STRSEP */
-
- psz_loc = FromLocale( psz_uri );
- psz_tmp1 = vlc_fix_readdir_charset( VLC_OBJECT(p_playlist),
- psz_loc );
- LocaleFree( psz_loc );
-
- psz_loc = FromLocale( p_dir_content->d_name );
- psz_tmp2 = vlc_fix_readdir_charset( VLC_OBJECT(p_playlist),
- psz_loc );
- msg_Err( p_playlist, "adding file %s from %s", psz_loc, p_dir_content->d_name );
- LocaleFree( psz_loc );
-
- p_item = playlist_ItemNewWithType( VLC_OBJECT(p_playlist),
- psz_tmp1, psz_tmp2, ITEM_TYPE_VFILE );
- playlist_NodeAddItem( p_playlist,p_item,
- p_parent->pp_parents[0]->i_view,
- p_parent,
- PLAYLIST_APPEND, PLAYLIST_END );
-
- playlist_CopyParents( p_parent, p_item );
+
+ memmove (psz_uri + 7, psz_uri, sizeof (psz_uri) - 7);
+ memcpy (psz_uri, "file://", 7);
+ p_input = input_ItemNewWithType( p_playlist,
+ psz_uri, entry, 0, NULL,
+ -1, ITEM_TYPE_FILE );
+ if (p_input != NULL)
+ {
+ if( p_current_input )
+ input_ItemCopyOptions( p_current_input, p_input );
+ int i_ret = playlist_BothAddInput( p_playlist, p_input,
+ p_parent_category,
+ PLAYLIST_APPEND|PLAYLIST_PREPARSE|
+ PLAYLIST_NO_REBUILD,
+ PLAYLIST_END, NULL, NULL,
+ false );
+ vlc_gc_decref( p_input );
+ if( i_ret != VLC_SUCCESS )
+ return VLC_EGENERIC;
+ }