(svn r10298) -Fix [FS#903]: show the subdirectory below the default data directory in this filename in the newgrf list. The directory was removed in r9560 because then it used to full path instead of the path relative to the data directory, but since the inclusion of "search paths" that is not necessary anymore.
--- a/src/network/network_udp.cpp Sat Jun 23 20:38:28 2007 +0000
+++ b/src/network/network_udp.cpp Sat Jun 23 21:12:09 2007 +0000
@@ -395,7 +395,6 @@
config->status = GCS_NOT_FOUND;
} else {
config->filename = f->filename;
- config->full_path = f->full_path;
config->name = f->name;
config->info = f->info;
}
--- a/src/newgrf.cpp Sat Jun 23 20:38:28 2007 +0000
+++ b/src/newgrf.cpp Sat Jun 23 21:12:09 2007 +0000
@@ -4659,7 +4659,7 @@
if (newfile == NULL) error ("Out of memory");
- newfile->filename = strdup(config->full_path);
+ newfile->filename = strdup(config->filename);
newfile->sprite_offset = sprite_offset;
/* Copy the initial parameter list */
@@ -4936,7 +4936,7 @@
void LoadNewGRFFile(GRFConfig *config, uint file_index, GrfLoadingStage stage)
{
- const char *filename = config->full_path;
+ const char *filename = config->filename;
uint16 num;
/* A .grf file is activated only if it was active when the game was
@@ -5069,7 +5069,7 @@
if (stage > GLS_INIT && HASBIT(c->flags, GCF_INIT_ONLY)) continue;
/* @todo usererror() */
- if (!FioCheckFileExists(c->full_path)) error("NewGRF file is missing '%s'", c->filename);
+ if (!FioCheckFileExists(c->filename)) error("NewGRF file is missing '%s'", c->filename);
if (stage == GLS_LABELSCAN) InitNewGRFFile(c, _cur_spriteid);
LoadNewGRFFile(c, slot++, stage);
--- a/src/newgrf_config.cpp Sat Jun 23 20:38:28 2007 +0000
+++ b/src/newgrf_config.cpp Sat Jun 23 21:12:09 2007 +0000
@@ -40,7 +40,7 @@
size_t len;
/* open the file */
- f = FioFOpenFile(config->full_path);
+ f = FioFOpenFile(config->filename);
if (f == NULL) return false;
/* calculate md5sum */
@@ -59,16 +59,11 @@
/* Find the GRFID and calculate the md5sum */
bool FillGRFDetails(GRFConfig *config, bool is_static)
{
- if (!FioCheckFileExists(config->full_path)) {
+ if (!FioCheckFileExists(config->filename)) {
config->status = GCS_NOT_FOUND;
return false;
}
- if (config->filename == NULL) {
- const char *t = strrchr(config->full_path, PATHSEPCHAR);
- config->filename = strdup(t != NULL ? t + 1 : config->full_path);
- }
-
/* Find and load the Action 8 information */
/* 62 is the last file slot before sample.cat.
* Should perhaps be some "don't care" value */
@@ -94,7 +89,6 @@
/* GCF_COPY as in NOT strdupped/alloced the filename, name and info */
if (!HASBIT((*config)->flags, GCF_COPY)) {
free((*config)->filename);
- free((*config)->full_path);
free((*config)->name);
free((*config)->info);
@@ -134,7 +128,6 @@
GRFConfig *c = CallocT<GRFConfig>(1);
*c = *src;
if (src->filename != NULL) c->filename = strdup(src->filename);
- if (src->full_path != NULL) c->full_path = strdup(src->full_path);
if (src->name != NULL) c->name = strdup(src->name);
if (src->info != NULL) c->info = strdup(src->info);
if (src->error != NULL) {
@@ -265,9 +258,7 @@
* already a local one, so there is no need to replace it. */
if (!HASBIT(c->flags, GCF_COPY)) {
free(c->filename);
- free(c->full_path);
c->filename = strdup(f->filename);
- c->full_path = strdup(f->full_path);
memcpy(c->md5sum, f->md5sum, sizeof(c->md5sum));
if (c->name == NULL && f->name != NULL) c->name = strdup(f->name);
if (c->info == NULL && f->info != NULL) c->info = strdup(f->info);
@@ -314,7 +305,7 @@
if (strcasecmp(ext, ".grf") != 0) continue;
GRFConfig *c = CallocT<GRFConfig>(1);
- c->full_path = strdup(filename + basepath_length);
+ c->filename = strdup(filename + basepath_length);
bool added = true;
if (FillGRFDetails(c, false)) {
@@ -341,7 +332,6 @@
/* File couldn't be opened, or is either not a NewGRF or is a
* 'system' NewGRF or it's already known, so forget about it. */
free(c->filename);
- free(c->full_path);
free(c->name);
free(c->info);
free(c);
--- a/src/newgrf_config.h Sat Jun 23 20:38:28 2007 +0000
+++ b/src/newgrf_config.h Sat Jun 23 21:12:09 2007 +0000
@@ -47,7 +47,6 @@
struct GRFConfig : public GRFIdentifier {
char *filename;
- char *full_path;
char *name;
char *info;
GRFError *error;
--- a/src/newgrf_gui.cpp Sat Jun 23 20:38:28 2007 +0000
+++ b/src/newgrf_gui.cpp Sat Jun 23 21:12:09 2007 +0000
@@ -191,7 +191,6 @@
GRFConfig *c = CallocT<GRFConfig>(1);
*c = *src;
c->filename = strdup(src->filename);
- if (src->full_path != NULL) c->full_path = strdup(src->full_path);
if (src->name != NULL) c->name = strdup(src->name);
if (src->info != NULL) c->info = strdup(src->info);
c->next = NULL;
--- a/src/settings.cpp Sat Jun 23 20:38:28 2007 +0000
+++ b/src/settings.cpp Sat Jun 23 21:12:09 2007 +0000
@@ -1626,7 +1626,7 @@
for (item = group->item; item != NULL; item = item->next) {
GRFConfig *c = CallocT<GRFConfig>(1);
- c->full_path = strdup(item->name);
+ c->filename = strdup(item->name);
/* Parse parameters */
if (*item->value != '\0') {
@@ -1703,7 +1703,7 @@
char params[512];
GRFBuildParamList(params, c, lastof(params));
- *item = ini_item_alloc(group, c->full_path, strlen(c->full_path));
+ *item = ini_item_alloc(group, c->filename, strlen(c->filename));
(*item)->value = (char*)pool_strdup(&ini->pool, params, strlen(params));
item = &(*item)->next;
}