diff --git a/src/sbbs3/scfgsave.c b/src/sbbs3/scfgsave.c index 81168ecea1807ae3506b3e9e41ccccbd54517462..8f5eb41883baf1f6542f156d935102189c757839 100644 --- a/src/sbbs3/scfgsave.c +++ b/src/sbbs3/scfgsave.c @@ -398,12 +398,19 @@ BOOL DLLCALL write_msgs_cfg(scfg_t* cfg, int backup_level) /* Calculate and save the actual number (total) of sub-boards that will be written */ n = 0; for(i=0; i<cfg->total_subs; i++) - if(cfg->sub[i]->grp < cfg->total_grps) /* total VALID sub-boards */ + if(cfg->sub[i]->grp < cfg->total_grps /* total VALID sub-boards */ + && cfg->sub[i]->lname[0] + && cfg->sub[i]->sname[0] + && cfg->sub[i]->code_suffix[0]) n++; put_int(n,stream); unsigned int subnum = 0; /* New sub-board numbering (as saved) */ for(unsigned grp = 0; grp < cfg->total_grps; grp++) { for(i=0;i<cfg->total_subs;i++) { + if(cfg->sub[i]->lname[0] == 0 + || cfg->sub[i]->sname[0] == 0 + || cfg->sub[i]->code_suffix[0] == 0) + continue; if(cfg->sub[i]->grp != grp) continue; cfg->sub[i]->subnum = subnum++; @@ -784,12 +791,19 @@ BOOL DLLCALL write_file_cfg(scfg_t* cfg, int backup_level) /* Calculate and save the actual number (total) of dirs that will be written */ n = 0; for (i = 0; i < cfg->total_dirs; i++) - if (cfg->dir[i]->lib < cfg->total_libs) /* total VALID file dirs */ + if (cfg->dir[i]->lib < cfg->total_libs /* total VALID file dirs */ + && cfg->dir[i]->lname[0] + && cfg->dir[i]->sname[0] + && cfg->dir[i]->code_suffix[0]) n++; put_int(n,stream); unsigned int dirnum = 0; /* New directory numbering (as saved) */ for (j = 0; j < cfg->total_libs; j++) { for (i = 0; i < cfg->total_dirs; i++) { + if (cfg->dir[i]->lname[0] == 0 + || cfg->dir[i]->sname[0] == 0 + || cfg->dir[i]->code_suffix[0] == 0) + continue; if (cfg->dir[i]->lib == j) { cfg->dir[i]->dirnum = dirnum++; put_int(cfg->dir[i]->lib, stream);