From f5b985bcc3132dc09a4ee16727b63058899820ae Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 5 Jan 2023 18:20:42 -0800 Subject: [PATCH 1/4] doomdef.h: refactor comptime externs --- src/doomdef.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/doomdef.h b/src/doomdef.h index 72ba17a84..3a1e11b44 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -663,9 +663,15 @@ UINT32 quickncasehash (const char *p, size_t n) #define PUNCTUATION "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" // Compile date and time and revision. -extern const char *compdate, *comptime, *comprevision, *compbranch; -extern int compuncommitted, compoptimized; -extern const char *comptype; +extern const char + *compdate, + *comptime, + *comprevision, + *compbranch, + *comptype; +extern int + compuncommitted, + compoptimized; // Disabled code and code under testing // None of these that are disabled in the normal build are guaranteed to work perfectly From 55636fa690ac95f50220d83b1b47984b28315410 Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 5 Jan 2023 18:29:51 -0800 Subject: [PATCH 2/4] Separate git commit subject line from comprevision, add SRB2_COMP_NOTE --- cmake/Comptime.cmake | 5 +++-- cmake/Modules/GitUtilities.cmake | 4 ++-- src/comptime.c | 1 + src/config.h.in | 1 + src/d_netcmd.c | 2 +- src/doomdef.h | 1 + src/f_finale.c | 2 +- 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cmake/Comptime.cmake b/cmake/Comptime.cmake index f50faf933..8388aed9e 100644 --- a/cmake/Comptime.cmake +++ b/cmake/Comptime.cmake @@ -11,8 +11,9 @@ include(GitUtilities) git_current_branch(SRB2_COMP_BRANCH) git_working_tree_dirty(SRB2_COMP_UNCOMMITTED) -git_summary(revision) -string(REGEX REPLACE "([\"\\])" "\\\\\\1" SRB2_COMP_REVISION "${revision}") +git_latest_commit(SRB2_COMP_REVISION) +git_subject(subject) +string(REGEX REPLACE "([\"\\])" "\\\\\\1" SRB2_COMP_NOTE "${subject}") if("${CMAKE_BUILD_TYPE}" STREQUAL "") set(CMAKE_BUILD_TYPE None) diff --git a/cmake/Modules/GitUtilities.cmake b/cmake/Modules/GitUtilities.cmake index bddc552a6..586c7b433 100644 --- a/cmake/Modules/GitUtilities.cmake +++ b/cmake/Modules/GitUtilities.cmake @@ -50,8 +50,8 @@ function(git_working_tree_dirty variable) endif() endfunction() -function(git_summary variable) - _git_easy_command(log -1 "--format=%h %s") +function(git_subject variable) + _git_easy_command(log -1 --format=%s) endfunction() function(get_git_dir variable) diff --git a/src/comptime.c b/src/comptime.c index 74b810062..386b53f46 100644 --- a/src/comptime.c +++ b/src/comptime.c @@ -11,6 +11,7 @@ #include "config.h" const char *compbranch = SRB2_COMP_BRANCH; const char *comprevision = SRB2_COMP_REVISION; +const char *compnote = SRB2_COMP_NOTE; const char *comptype = CMAKE_BUILD_TYPE; const int compoptimized = SRB2_COMP_OPTIMIZED; diff --git a/src/config.h.in b/src/config.h.in index 77a205a74..bf79b61ad 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -13,6 +13,7 @@ #define SRB2_COMP_REVISION "${SRB2_COMP_REVISION}" #define SRB2_COMP_BRANCH "${SRB2_COMP_BRANCH}" +#define SRB2_COMP_NOTE "${SRB2_COMP_NOTE}" // This is done with configure_file instead of defines in order to avoid // recompiling the whole target whenever the working directory state changes #cmakedefine SRB2_COMP_UNCOMMITTED diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 97b71478e..7529a5e94 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -4772,7 +4772,7 @@ static void Command_ListDoomednums_f(void) static void Command_Version_f(void) { #ifdef DEVELOP - CONS_Printf("Ring Racers %s %s (%s %s)\n", compbranch, comprevision, compdate, comptime); + CONS_Printf("Ring Racers %s %s %s (%s %s)\n", compbranch, comprevision, compnote, compdate, comptime); #else CONS_Printf("Ring Racers %s (%s %s %s %s) ", VERSIONSTRING, compdate, comptime, comprevision, compbranch); #endif diff --git a/src/doomdef.h b/src/doomdef.h index 3a1e11b44..ffffd59d5 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -668,6 +668,7 @@ extern const char *comptime, *comprevision, *compbranch, + *compnote, *comptype; extern int compuncommitted, diff --git a/src/f_finale.c b/src/f_finale.c index 36ca452f9..54a7bbb3b 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -1913,7 +1913,7 @@ void F_VersionDrawer(void) addtext(V_ALLOWLOWERCASE|V_REDMAP, "Netgame host for testers"); addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", compdate)); #elif defined(DEVELOP) - addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, comprevision); + addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s %s", comprevision, compnote)); addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, compbranch); #else // Regular build addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", VERSIONSTRING)); From 94e3050f104209401dc372970ade7e8a1999187b Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 5 Jan 2023 18:15:15 -0800 Subject: [PATCH 3/4] Do not overwrite compbranch in case of detached HEAD --- src/d_main.c | 17 +++++++++++------ src/d_main.h | 2 ++ src/d_netcmd.c | 4 ++-- src/f_finale.c | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index ac454f6cb..128fe9c0b 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1189,6 +1189,17 @@ D_ConvertVersionNumbers (void) #endif } +const char *D_GetFancyBranchName(void) +{ + if (!strcmp(compbranch, "")) + { + // \x8b = aqua highlight + return "\x8b" "detached HEAD" "\x80"; + } + + return compbranch; +} + // // D_SRB2Main // @@ -1206,12 +1217,6 @@ void D_SRB2Main(void) /* break the version string into version numbers, for netplay */ D_ConvertVersionNumbers(); - if (!strcmp(compbranch, "")) - { - // \x8b = aqua highlight - compbranch = "\x8b" "detached HEAD" "\x80"; - } - #ifdef DEVELOP D_AbbrevCommit(); #endif diff --git a/src/d_main.h b/src/d_main.h index 0b4f6f19d..ee636e387 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -42,6 +42,8 @@ void D_SRB2Loop(void) FUNCNORETURN; // void D_SRB2Main(void); +const char *D_GetFancyBranchName(void); + // Called by IO functions when input is detected. void D_PostEvent(const event_t *ev); #if defined (PC_DOS) && !defined (DOXYGEN) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 7529a5e94..1ebda16d5 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -4772,9 +4772,9 @@ static void Command_ListDoomednums_f(void) static void Command_Version_f(void) { #ifdef DEVELOP - CONS_Printf("Ring Racers %s %s %s (%s %s)\n", compbranch, comprevision, compnote, compdate, comptime); + CONS_Printf("Ring Racers %s %s %s (%s %s)\n", D_GetFancyBranchName(), comprevision, compnote, compdate, comptime); #else - CONS_Printf("Ring Racers %s (%s %s %s %s) ", VERSIONSTRING, compdate, comptime, comprevision, compbranch); + CONS_Printf("Ring Racers %s (%s %s %s %s) ", VERSIONSTRING, compdate, comptime, comprevision, D_GetFancyBranchName()); #endif // Base library diff --git a/src/f_finale.c b/src/f_finale.c index 54a7bbb3b..2a7d83146 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -1914,7 +1914,7 @@ void F_VersionDrawer(void) addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", compdate)); #elif defined(DEVELOP) addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s %s", comprevision, compnote)); - addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, compbranch); + addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, D_GetFancyBranchName()); #else // Regular build addtext(V_ALLOWLOWERCASE|V_TRANSLUCENT, va("%s", VERSIONSTRING)); #endif From 1f827a9c25eb656c32aaae2988a01b27d0f41cfc Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 5 Jan 2023 18:36:41 -0800 Subject: [PATCH 4/4] Omit hyphen in replay folder name if compbranch is empty (detached HEAD) --- src/p_setup.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/p_setup.c b/src/p_setup.c index d77a27971..52441c62e 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -7177,7 +7177,10 @@ static void P_InitGametype(void) int parts; #ifdef DEVELOP - sprintf(ver, "%s-%s", compbranch, comprevision); + if (strcmp(compbranch, "")) + sprintf(ver, "%s-%s", compbranch, comprevision); + else + strcpy(ver, comprevision); #else strcpy(ver, VERSIONSTRING); #endif