Set b_net to true, and set ITEM_TYPE_DIRECTORY if the item is a share of a
directory.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
static void backslash_path( vlc_url_t *p_url );
static bool get_path( access_t *p_access );
static int add_item( access_t *p_access, input_item_node_t *p_node,
static void backslash_path( vlc_url_t *p_url );
static bool get_path( access_t *p_access );
static int add_item( access_t *p_access, input_item_node_t *p_node,
- const char *psz_name );
+ const char *psz_name, int i_type );
}
static int add_item( access_t *p_access, input_item_node_t *p_node,
}
static int add_item( access_t *p_access, input_item_node_t *p_node,
+ const char *psz_name, int i_type )
{
access_sys_t *p_sys = p_access->p_sys;
input_item_t *p_item;
{
access_sys_t *p_sys = p_access->p_sys;
input_item_t *p_item;
if( i_ret == -1 )
return VLC_ENOMEM;
if( i_ret == -1 )
return VLC_ENOMEM;
- p_item = input_item_New( psz_uri, psz_name );
+ p_item = input_item_NewWithTypeExt( psz_uri, psz_name, 0, NULL, 0, -1,
+ i_type, 1 );
free( psz_uri );
if( p_item == NULL )
return VLC_ENOMEM;
free( psz_uri );
if( p_item == NULL )
return VLC_ENOMEM;
if( psz_name[strlen( psz_name ) - 1] == '$')
continue;
if( psz_name[strlen( psz_name ) - 1] == '$')
continue;
- i_ret = add_item( p_access, p_node, psz_name );
+ i_ret = add_item( p_access, p_node, psz_name, ITEM_TYPE_DIRECTORY );
if( i_ret != VLC_SUCCESS )
goto error;
}
if( i_ret != VLC_SUCCESS )
goto error;
}
files_count = smb_stat_list_count( files );
for( size_t i = 0; i < files_count; i++ )
{
files_count = smb_stat_list_count( files );
for( size_t i = 0; i < files_count; i++ )
{
st = smb_stat_list_at( files, i );
if( st == NULL ) {
st = smb_stat_list_at( files, i );
if( st == NULL ) {
/* Avoid infinite loop */
if( !strcmp( psz_name, ".") || !strcmp( psz_name, "..") )
continue;
/* Avoid infinite loop */
if( !strcmp( psz_name, ".") || !strcmp( psz_name, "..") )
continue;
-
- i_ret = add_item( p_access, p_node, psz_name );
+ i_type = smb_stat_get( st, SMB_STAT_ISDIR ) ?
+ ITEM_TYPE_DIRECTORY : ITEM_TYPE_FILE;
+ i_ret = add_item( p_access, p_node, psz_name, i_type );
if( i_ret != VLC_SUCCESS )
goto error;
}
if( i_ret != VLC_SUCCESS )
goto error;
}
if( asprintf(&psz_mrl, "smb://%s", name) < 0 )
return;
if( asprintf(&psz_mrl, "smb://%s", name) < 0 )
return;
- p_item = input_item_NewWithType( psz_mrl, name, 0, NULL,
- 0, -1, ITEM_TYPE_NODE );
+ p_item = input_item_NewWithTypeExt( psz_mrl, name, 0, NULL,
+ 0, -1, ITEM_TYPE_NODE, 1 );
msg_Dbg( p_sd, "Adding item %s", psz_mrl );
free(psz_mrl);
msg_Dbg( p_sd, "Adding item %s", psz_mrl );
free(psz_mrl);