Ignore files and hidden dirs which are not actually addons
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3187 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
+25
-15
@@ -64,8 +64,6 @@ uio_MountHandle* contentMountHandle;
|
|||||||
|
|
||||||
char baseContentPath[PATH_MAX];
|
char baseContentPath[PATH_MAX];
|
||||||
|
|
||||||
uio_DirList *availableAddons;
|
|
||||||
|
|
||||||
extern uio_Repository *repository;
|
extern uio_Repository *repository;
|
||||||
extern uio_DirHandle *rootDir;
|
extern uio_DirHandle *rootDir;
|
||||||
|
|
||||||
@@ -358,8 +356,7 @@ mountAddonDir (uio_Repository *repository, uio_MountHandle *contentMountHandle,
|
|||||||
uio_DirHandle *addonsDir;
|
uio_DirHandle *addonsDir;
|
||||||
static uio_AutoMount *autoMount[] = { NULL };
|
static uio_AutoMount *autoMount[] = { NULL };
|
||||||
uio_MountHandle *mountHandle;
|
uio_MountHandle *mountHandle;
|
||||||
|
uio_DirList *availableAddons;
|
||||||
availableAddons = NULL;
|
|
||||||
|
|
||||||
if (addonDirName != NULL)
|
if (addonDirName != NULL)
|
||||||
{
|
{
|
||||||
@@ -396,22 +393,37 @@ mountAddonDir (uio_Repository *repository, uio_MountHandle *contentMountHandle,
|
|||||||
if (availableAddons != NULL)
|
if (availableAddons != NULL)
|
||||||
{
|
{
|
||||||
int i, count;
|
int i, count;
|
||||||
count = availableAddons->numNames;
|
|
||||||
|
|
||||||
if (count != 1)
|
// count the actual addon dirs
|
||||||
|
count = 0;
|
||||||
|
for (i = 0; i < availableAddons->numNames; ++i)
|
||||||
{
|
{
|
||||||
log_add (log_Info, "%d available addon packs.", count);
|
struct stat sb;
|
||||||
|
|
||||||
|
if (availableAddons->names[i][0] == '.' ||
|
||||||
|
uio_stat (addonsDir, availableAddons->names[i], &sb) == -1
|
||||||
|
|| !S_ISDIR (sb.st_mode))
|
||||||
|
{ // this dir entry ignored
|
||||||
|
availableAddons->names[i] = NULL;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
++count;
|
||||||
}
|
}
|
||||||
else
|
log_add (log_Info, "%d available addon pack%s.", count,
|
||||||
{
|
count == 1 ? "" : "s");
|
||||||
log_add (log_Info, "1 available addon pack.");
|
|
||||||
}
|
count = 0;
|
||||||
for (i = 0; i < count; i++)
|
for (i = 0; i < availableAddons->numNames; ++i)
|
||||||
{
|
{
|
||||||
static char mountname[128];
|
static char mountname[128];
|
||||||
uio_DirHandle *addonDir;
|
uio_DirHandle *addonDir;
|
||||||
const char *addon = availableAddons->names[i];
|
const char *addon = availableAddons->names[i];
|
||||||
log_add (log_Info, " %d. %s", i+1, addon);
|
|
||||||
|
if (!addon)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
++count;
|
||||||
|
log_add (log_Info, " %d. %s", count, addon);
|
||||||
|
|
||||||
snprintf(mountname, 128, "addons/%s", addon);
|
snprintf(mountname, 128, "addons/%s", addon);
|
||||||
mountname[127]=0;
|
mountname[127]=0;
|
||||||
@@ -433,8 +445,6 @@ mountAddonDir (uio_Repository *repository, uio_MountHandle *contentMountHandle,
|
|||||||
}
|
}
|
||||||
|
|
||||||
uio_DirList_free (availableAddons);
|
uio_DirList_free (availableAddons);
|
||||||
availableAddons = NULL;
|
|
||||||
|
|
||||||
uio_closeDir (addonsDir);
|
uio_closeDir (addonsDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ extern uio_DirHandle *saveDir;
|
|||||||
extern uio_DirHandle *meleeDir;
|
extern uio_DirHandle *meleeDir;
|
||||||
extern char baseContentPath[PATH_MAX];
|
extern char baseContentPath[PATH_MAX];
|
||||||
|
|
||||||
extern uio_DirList *availableAddons;
|
|
||||||
extern const char **optAddons;
|
extern const char **optAddons;
|
||||||
|
|
||||||
/* These get edited by TEXTENTRY widgets, so they should have room to
|
/* These get edited by TEXTENTRY widgets, so they should have room to
|
||||||
|
|||||||
Reference in New Issue
Block a user