int vlclua_dir_list( vlc_object_t *p_this, const char *luadirname,
char **ppsz_dir_list )
{
- if( asprintf( &ppsz_dir_list[0], "%s" DIR_SEP "lua" DIR_SEP "%s",
+ int i = 0;
+ if( asprintf( &ppsz_dir_list[i], "%s" DIR_SEP "lua" DIR_SEP "%s",
p_this->p_libvlc->psz_datadir, luadirname ) < 0 )
return VLC_ENOMEM;
+ i++;
# if defined(__APPLE__) || defined(SYS_BEOS) || defined(WIN32)
{
const char *psz_vlcpath = config_GetDataDir();
- if( asprintf( &ppsz_dir_list[1], "%s" DIR_SEP "lua" DIR_SEP "%s",
+ if( asprintf( &ppsz_dir_list[i], "%s" DIR_SEP "lua" DIR_SEP "%s",
psz_vlcpath, luadirname ) < 0 )
return VLC_ENOMEM;
-
- if( asprintf( &ppsz_dir_list[2], "%s" DIR_SEP "share" DIR_SEP "lua" DIR_SEP "%s",
+ i++;
+# ifdef WIN32
+ if( asprintf( &ppsz_dir_list[i], "%s" DIR_SEP "scripts" DIR_SEP "%s",
+ psz_vlcpath, luadirname ) < 0 )
+ return VLC_ENOMEM;
+ i++;
+# else
+ if( asprintf( &ppsz_dir_list[i], "%s" DIR_SEP "share" DIR_SEP "lua" DIR_SEP "%s",
psz_vlcpath, luadirname ) < 0 )
return VLC_ENOMEM;
+ i++;
+# endif
+
}
# else
- if( asprintf( &ppsz_dir_list[1],
+ if( asprintf( &ppsz_dir_list[i],
"share" DIR_SEP "lua" DIR_SEP "%s", luadirname ) < 0 )
return VLC_ENOMEM;
# ifdef HAVE_SYS_STAT_H
{
struct stat stat_info;
- if( ( utf8_stat( ppsz_dir_list[1], &stat_info ) == -1 )
+ if( ( utf8_stat( ppsz_dir_list[i], &stat_info ) == -1 )
|| !S_ISDIR( stat_info.st_mode ) )
{
- free(ppsz_dir_list[1]);
- if( asprintf( &ppsz_dir_list[1], "%s" DIR_SEP "lua" DIR_SEP "%s",
+ free(ppsz_dir_list[i]);
+ if( asprintf( &ppsz_dir_list[i], "%s" DIR_SEP "lua" DIR_SEP "%s",
config_GetDataDir (), luadirname ) < 0 )
return VLC_ENOMEM;
}
}
# endif
+ i++;
# endif
return VLC_SUCCESS;
}