/** * @brief Renames all the currently selected systems. */ static void uniedit_renameSys (void) { int i, j; char *name, *oldName, *newName; StarSystem *sys; for (i=0; i<uniedit_nsys; i++) { sys = uniedit_sys[i]; /* Get name. */ name = dialogue_input( "Rename Star System", 1, 32, "What do you want to rename \er%s\e0?", sys->name ); /* Keep current name. */ if (name == NULL) continue; /* Try again. */ if (uniedit_checkName( name )) { free(name); i--; continue; } /* Change the name. */ oldName = malloc((14+strlen(sys->name))); nsnprintf(oldName,14+strlen(sys->name),"dat/ssys/%s.xml", uniedit_nameFilter(sys->name) ); newName = malloc(14+strlen(name)); nsnprintf(newName,14+strlen(name),"dat/ssys/%s.xml", uniedit_nameFilter(name) ); nfile_rename(oldName,newName); free(oldName); free(newName); free(sys->name); sys->name = name; if (conf.devautosave) { dsys_saveSystem(sys); /* Re-save adjacent systems. */ for (j=0; j<sys->njumps; j++) dsys_saveSystem( sys->jumps[j].target ); } } }
/** * @brief Renames all the currently selected systems. */ static void uniedit_renameSys (void) { int i; char *name, *oldName, *newName; StarSystem *sys; for (i=0; i<uniedit_nsys; i++) { sys = uniedit_sys[i]; /* Get name. */ name = dialogue_input( "Rename Star System", 1, 32, "What do you want to rename \er%s\e0?", sys->name ); /* Keep current name. */ if (name == NULL) continue; /* Try again. */ if (uniedit_checkName( name )) { free(name); i--; continue; } /* Change the name. */ oldName = malloc((16+strlen(sys->name))*sizeof(char)); nsnprintf(oldName,15+strlen(sys->name),"dat/ssys/%s.xml",sys->name); newName = malloc((16+strlen(name))*sizeof(char)); nsnprintf(newName,15+strlen(name),"dat/ssys/%s.xml",name); nfile_rename(oldName,newName); free(oldName); free(newName); free(sys->name); sys->name = name; dsys_saveSystem(sys); } }