(svn r22905) -Fix [FS#4753] (r22836): the name of the tar was removed from the AI filenames, so record it differently. Also removes some of the hackery to get the tar's filename
This commit is contained in:
@@ -31,6 +31,7 @@ ScriptFileInfo::~ScriptFileInfo()
|
||||
free((void *)this->instance_name);
|
||||
free((void *)this->url);
|
||||
free(this->main_script);
|
||||
free(this->tar_file);
|
||||
free(this->SQ_instance);
|
||||
}
|
||||
|
||||
@@ -69,6 +70,8 @@ bool ScriptFileInfo::CheckMethod(const char *name) const
|
||||
}
|
||||
|
||||
info->main_script = strdup(scanner->GetMainScript());
|
||||
const char *tar_name = scanner->GetTarFile();
|
||||
if (tar_name != NULL) info->tar_file = strdup(tar_name);
|
||||
|
||||
/* Cache the data the info file gives us. */
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetAuthor", &info->author, MAX_GET_OPS)) return SQ_ERROR;
|
||||
|
@@ -20,6 +20,7 @@ public:
|
||||
ScriptFileInfo() :
|
||||
SQ_instance(NULL),
|
||||
main_script(NULL),
|
||||
tar_file(NULL),
|
||||
author(NULL),
|
||||
name(NULL),
|
||||
short_name(NULL),
|
||||
@@ -76,6 +77,11 @@ public:
|
||||
*/
|
||||
const char *GetMainScript() const { return this->main_script; }
|
||||
|
||||
/**
|
||||
* Get the filename of the tar the script is in.
|
||||
*/
|
||||
const char *GetTarFile() const { return this->tar_file; }
|
||||
|
||||
/**
|
||||
* Check if a given method exists.
|
||||
*/
|
||||
@@ -91,6 +97,7 @@ protected:
|
||||
HSQOBJECT *SQ_instance;
|
||||
private:
|
||||
char *main_script;
|
||||
char *tar_file;
|
||||
const char *author;
|
||||
const char *name;
|
||||
const char *short_name;
|
||||
|
@@ -23,6 +23,14 @@ bool ScriptScanner::AddFile(const char *filename, size_t basepath_length, const
|
||||
this->main_script = strdup(filename);
|
||||
if (this->main_script == NULL) return false;
|
||||
|
||||
free(this->tar_file);
|
||||
if (tar_filename != NULL) {
|
||||
this->tar_file = strdup(tar_filename);
|
||||
if (this->tar_file == NULL) return false;
|
||||
} else {
|
||||
this->tar_file = NULL;
|
||||
}
|
||||
|
||||
const char *end = this->main_script + strlen(this->main_script) + 1;
|
||||
char *p = strrchr(this->main_script, PATHSEPCHAR);
|
||||
if (p == NULL) {
|
||||
|
Reference in New Issue
Block a user