src/newgrf_gui.cpp
changeset 5609 dc6a58930ba4
parent 5587 167d9a91ef02
child 5634 ba6b9ebe197a
equal deleted inserted replaced
5608:0b0aff054402 5609:dc6a58930ba4
   152 				}
   152 				}
   153 
   153 
   154 				case 6: /* Add selection to list */
   154 				case 6: /* Add selection to list */
   155 					if (WP(w, newgrf_add_d).sel != NULL) {
   155 					if (WP(w, newgrf_add_d).sel != NULL) {
   156 						const GRFConfig *src = WP(w, newgrf_add_d).sel;
   156 						const GRFConfig *src = WP(w, newgrf_add_d).sel;
   157 						GRFConfig **list, *c;
   157 						GRFConfig **list;
   158 
   158 
   159 						/* Find last entry in the list, checking for duplicate grfid on the way */
   159 						/* Find last entry in the list, checking for duplicate grfid on the way */
   160 						for (list = WP(w, newgrf_add_d).list; *list != NULL; list = &(*list)->next) {
   160 						for (list = WP(w, newgrf_add_d).list; *list != NULL; list = &(*list)->next) {
   161 							if ((*list)->grfid == src->grfid) {
   161 							if ((*list)->grfid == src->grfid) {
   162 								ShowErrorMessage(INVALID_STRING_ID, STR_NEWGRF_DUPLICATE_GRFID, 0, 0);
   162 								ShowErrorMessage(INVALID_STRING_ID, STR_NEWGRF_DUPLICATE_GRFID, 0, 0);
   163 								return;
   163 								return;
   164 							}
   164 							}
   165 						}
   165 						}
   166 
   166 
   167 						/* Copy GRF details from scanned list */
   167 						/* Copy GRF details from scanned list */
   168 						CallocT(&c, 1);
   168 						GRFConfig *c = CallocT<GRFConfig>(1);
   169 						*c = *src;
   169 						*c = *src;
   170 						c->filename = strdup(src->filename);
   170 						c->filename = strdup(src->filename);
   171 						if (src->name != NULL) c->name = strdup(src->name);
   171 						if (src->name != NULL) c->name = strdup(src->name);
   172 						if (src->info != NULL) c->info = strdup(src->info);
   172 						if (src->info != NULL) c->info = strdup(src->info);
   173 						c->next = NULL;
   173 						c->next = NULL;