From 42f202f4c0b06fbb870daed81d8899f81dd04c00 Mon Sep 17 00:00:00 2001 From: "nethack.allison" Date: Mon, 2 Feb 2004 01:30:31 +0000 Subject: [PATCH] new context_info struct in compat checks (trunk only) Add the context_info struct to the version compatibility checks. This increments EDITLEVEL rendering prior save/bones files useless. --- include/global.h | 3 ++- include/patchlevel.h | 2 +- src/version.c | 5 +++-- sys/share/dgn_yacc.c | 2 +- util/dgn_comp.y | 2 +- util/makedefs.c | 22 ++++++++++++++++------ 6 files changed, 24 insertions(+), 12 deletions(-) diff --git a/include/global.h b/include/global.h index 87277cb99..f84ea0e42 100644 --- a/include/global.h +++ b/include/global.h @@ -301,7 +301,8 @@ struct version_info { unsigned long incarnation; /* actual version number */ unsigned long feature_set; /* bitmask of config settings */ unsigned long entity_count; /* # of monsters and objects */ - unsigned long struct_sizes; /* size of key structs */ + unsigned long struct_sizes1; /* size of key structs */ + unsigned long struct_sizes2; /* size of more key structs */ }; diff --git a/include/patchlevel.h b/include/patchlevel.h index a49049d7c..93222eda3 100644 --- a/include/patchlevel.h +++ b/include/patchlevel.h @@ -13,7 +13,7 @@ * Incrementing EDITLEVEL can be used to force invalidation of old bones * and save files. */ -#define EDITLEVEL 8 +#define EDITLEVEL 9 #define COPYRIGHT_BANNER_A \ "NetHack, Copyright 1985-2004" diff --git a/src/version.c b/src/version.c index 50243c0bd..1e9a3a5fc 100644 --- a/src/version.c +++ b/src/version.c @@ -89,7 +89,8 @@ boolean complain; (VERSION_FEATURES & ~IGNORED_FEATURES) || #endif version_data->entity_count != VERSION_SANITY1 || - version_data->struct_sizes != VERSION_SANITY2) { + version_data->struct_sizes1 != VERSION_SANITY2 || + version_data->struct_sizes2 != VERSION_SANITY3) { if (complain) pline("Configuration incompatibility for file \"%s\".", filename); @@ -131,7 +132,7 @@ int fd; { const static struct version_info version_data = { VERSION_NUMBER, VERSION_FEATURES, - VERSION_SANITY1, VERSION_SANITY2 + VERSION_SANITY1, VERSION_SANITY2, VERSION_SANITY3 }; bufoff(fd); diff --git a/sys/share/dgn_yacc.c b/sys/share/dgn_yacc.c index fe5657b44..359510784 100644 --- a/sys/share/dgn_yacc.c +++ b/sys/share/dgn_yacc.c @@ -544,7 +544,7 @@ output_dgn() cb = 0, nb = 0; static struct version_info version_data = { VERSION_NUMBER, VERSION_FEATURES, - VERSION_SANITY1, VERSION_SANITY2 + VERSION_SANITY1, VERSION_SANITY2, VERSION_SANITY3 }; if(++n_dgns <= 0) { diff --git a/util/dgn_comp.y b/util/dgn_comp.y index 9b355cb26..2ae1c272d 100644 --- a/util/dgn_comp.y +++ b/util/dgn_comp.y @@ -643,7 +643,7 @@ output_dgn() cb = 0, nb = 0; static struct version_info version_data = { VERSION_NUMBER, VERSION_FEATURES, - VERSION_SANITY1, VERSION_SANITY2 + VERSION_SANITY1, VERSION_SANITY2, VERSION_SANITY3 }; if(++n_dgns <= 0) { diff --git a/util/makedefs.c b/util/makedefs.c index 34a3c64ae..7f10e2668 100644 --- a/util/makedefs.c +++ b/util/makedefs.c @@ -16,6 +16,7 @@ #include "obj.h" #include "monst.h" #include "you.h" +#include "context.h" #include "flag.h" #include "dlb.h" @@ -49,7 +50,7 @@ #endif #if defined(UNIX) && !defined(LINT) && !defined(GCC_WARN) -static const char SCCS_Id[] = "@(#)makedefs.c\t3.4\t2002/02/03"; +static const char SCCS_Id[] = "@(#)makedefs.c\t3.5\t2004/02/01"; #endif /* names of files to be generated */ @@ -498,10 +499,17 @@ make_version() /* * Value used for compiler (word size/field alignment/padding) check. */ - version.struct_sizes = (((unsigned long)sizeof (struct flag) << 24) | + version.struct_sizes1 = (((unsigned long)sizeof (struct context_info) << 24) | ((unsigned long)sizeof (struct obj) << 17) | ((unsigned long)sizeof (struct monst) << 10) | ((unsigned long)sizeof (struct you))); + version.struct_sizes2 = (((unsigned long)sizeof (struct flag) << 10) | + /* free bits in here */ +#ifdef SYSFLAGS + ((unsigned long)sizeof (struct sysflag))); +#else + ((unsigned long)0L)); +#endif return; } @@ -553,7 +561,7 @@ do_date() perror(filename); exit(EXIT_FAILURE); } - Fprintf(ofp,"/*\tSCCS Id: @(#)date.h\t3.4\t2002/02/03 */\n\n"); + Fprintf(ofp,"/*\tSCCS Id: @(#)date.h\t3.5\t2004/02/01 */\n\n"); Fprintf(ofp,Dont_Edit_Code); #ifdef KR1ED @@ -584,7 +592,9 @@ do_date() Fprintf(ofp,"#define VERSION_SANITY1 0x%08lx%s\n", version.entity_count, ul_sfx); Fprintf(ofp,"#define VERSION_SANITY2 0x%08lx%s\n", - version.struct_sizes, ul_sfx); + version.struct_sizes1, ul_sfx); + Fprintf(ofp,"#define VERSION_SANITY3 0x%08lx%s\n", + version.struct_sizes2, ul_sfx); Fprintf(ofp,"\n"); Fprintf(ofp,"#define VERSION_STRING \"%s\"\n", version_string(buf)); Fprintf(ofp,"#define VERSION_ID \\\n \"%s\"\n", @@ -1391,7 +1401,7 @@ do_permonst() perror(filename); exit(EXIT_FAILURE); } - Fprintf(ofp,"/*\tSCCS Id: @(#)pm.h\t3.4\t2002/02/03 */\n\n"); + Fprintf(ofp,"/*\tSCCS Id: @(#)pm.h\t3.5\t2004/02/01 */\n\n"); Fprintf(ofp,Dont_Edit_Code); Fprintf(ofp,"#ifndef PM_H\n#define PM_H\n"); @@ -1707,7 +1717,7 @@ do_objs() perror(filename); exit(EXIT_FAILURE); } - Fprintf(ofp,"/*\tSCCS Id: @(#)onames.h\t3.4\t2002/02/03 */\n\n"); + Fprintf(ofp,"/*\tSCCS Id: @(#)onames.h\t3.5\t2004/02/01 */\n\n"); Fprintf(ofp,Dont_Edit_Code); Fprintf(ofp,"#ifndef ONAMES_H\n#define ONAMES_H\n\n"); -- 2.40.0