ref: 79b2fed04cf818c81186a8df50a566ec2415cc40
parent: 31accc834d768a8a6431a20fa1895f4f01f24442
parent: 7f7a72d67a97c2a4419cdb0a0673c4c99a639553
author: Simon Howard <[email protected]>
date: Sun Jan 27 18:37:51 EST 2019
Merge branch 'master' of github.com:chocolate-doom/chocolate-doom
--- a/.travis.sh
+++ b/.travis.sh
@@ -1,8 +1,14 @@
#!/bin/sh
-set -e
if [ "$ANALYZE" = "true" ] ; then
- cppcheck --error-exitcode=1 -j2 -UTESTING -Iopl -Isrc -Isrc/setup opl pcsound src textscreen > /dev/null
+ cppcheck --error-exitcode=1 -j2 -UTESTING -Iopl -Isrc -Isrc/setup opl pcsound src textscreen 2> stderr.txt
+ RET=$?
+ if [ -s stderr.txt ]
+ then
+ cat stderr.txt
+ fi
+ exit $RET
else
+ set -e
./autogen.sh --enable-werror
make
make install DESTDIR=/tmp/whatever
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,6 +15,7 @@
apt:
packages:
- cppcheck
+ - libpng-dev
- libsdl2-dev
- libsdl2-mixer-dev
- libsdl2-net-dev
--- a/configure.ac
+++ b/configure.ac
@@ -62,7 +62,7 @@
[with_libpng=check]
])
AS_IF([test "x$with_libpng" != xno], [
- PKG_CHECK_MODULES(PNG, libpng >= 1.6.10, [
+ PKG_CHECK_MODULES(PNG, libpng >= 1.2.50, [
AC_DEFINE([HAVE_LIBPNG], [1], [libpng installed])
], [
AS_IF([test "x$with_libpng" != xcheck], [AC_MSG_FAILURE(
--- a/src/doom/d_main.c
+++ b/src/doom/d_main.c
@@ -1173,7 +1173,7 @@
// Look for chex.deh in the same directory as the IWAD file.
dirname = M_DirName(iwadfile);
- chex_deh = M_StringJoin(dirname, DIR_SEPARATOR_S, "chex.deh");
+ chex_deh = M_StringJoin(dirname, DIR_SEPARATOR_S, "chex.deh", NULL);
free(dirname);
// If the dehacked patch isn't found, try searching the WAD
--- a/src/doom/m_menu.c
+++ b/src/doom/m_menu.c
@@ -49,6 +49,7 @@
#include "m_argv.h"
#include "m_controls.h"
#include "p_saveg.h"
+#include "p_setup.h"
#include "s_sound.h"
@@ -634,8 +635,19 @@
//
static void SetDefaultSaveName(int slot)
{
- M_snprintf(savegamestrings[itemOn], SAVESTRINGSIZE - 1,
- "JOYSTICK SLOT %i", itemOn + 1);
+ // map from IWAD or PWAD?
+ if (W_IsIWADLump(maplumpinfo))
+ {
+ M_snprintf(savegamestrings[itemOn], SAVESTRINGSIZE,
+ "%s", maplumpinfo->name);
+ }
+ else
+ {
+ M_snprintf(savegamestrings[itemOn], SAVESTRINGSIZE,
+ "%s: %s", W_WadNameForLump(maplumpinfo),
+ maplumpinfo->name);
+ }
+ M_ForceUppercase(savegamestrings[itemOn]);
joypadSave = false;
}
--- a/src/doom/p_setup.c
+++ b/src/doom/p_setup.c
@@ -760,6 +760,9 @@
}
}
+// pointer to the current map lump info struct
+lumpinfo_t *maplumpinfo;
+
//
// P_SetupLevel
//
@@ -816,6 +819,8 @@
lumpnum = W_GetNumForName (lumpname);
+ maplumpinfo = lumpinfo[lumpnum];
+
leveltime = 0;
// note: most of this ordering is important
--- a/src/doom/p_setup.h
+++ b/src/doom/p_setup.h
@@ -20,8 +20,10 @@
#ifndef __P_SETUP__
#define __P_SETUP__
+#include "w_wad.h"
+extern lumpinfo_t *maplumpinfo;
// NOT called by W_Ticker. Fixme.
void
--- a/src/hexen/sc_man.c
+++ b/src/hexen/sc_man.c
@@ -195,13 +195,8 @@
}
while (foundToken == false)
{
- while (*ScriptPtr <= 32)
+ while (ScriptPtr < ScriptEndPtr && *ScriptPtr <= 32)
{
- if (ScriptPtr >= ScriptEndPtr)
- {
- sc_End = true;
- return false;
- }
if (*ScriptPtr++ == '\n')
{
sc_Line++;
--- a/src/i_glob.c
+++ b/src/i_glob.c
@@ -319,6 +319,11 @@
{
const char *result;
+ if (glob == NULL)
+ {
+ return NULL;
+ }
+
// In unsorted mode we just return the filenames as we read
// them back from the system API.
if ((glob->flags & GLOB_FLAG_SORTED) == 0)
--- a/src/m_misc.c
+++ b/src/m_misc.c
@@ -291,7 +291,7 @@
// allocated.
const char *M_BaseName(const char *path)
{
- char *p;
+ const char *p;
p = strrchr(path, DIR_SEPARATOR);
if (p == NULL)
--- a/src/setup/execute.c
+++ b/src/setup/execute.c
@@ -54,9 +54,9 @@
// Returns the path to a temporary file of the given name, stored
// inside the system temporary directory.
-static char *TempFile(char *s)
+static char *TempFile(const char *s)
{
- char *tempdir;
+ const char *tempdir;
#ifdef _WIN32
// Check the TEMP environment variable to find the location.
@@ -130,7 +130,7 @@
return result;
}
-void AddCmdLineParameter(execute_context_t *context, char *s, ...)
+void AddCmdLineParameter(execute_context_t *context, const char *s, ...)
{
va_list args;
--- a/src/setup/execute.h
+++ b/src/setup/execute.h
@@ -28,7 +28,7 @@
#define IWAD_CHEX (1 << 5) /* chex.wad */
execute_context_t *NewExecuteContext(void);
-void AddCmdLineParameter(execute_context_t *context, char *s, ...) PRINTF_ATTR(2, 3);
+void AddCmdLineParameter(execute_context_t *context, const char *s, ...) PRINTF_ATTR(2, 3);
void PassThroughArguments(execute_context_t *context);
int ExecuteDoom(execute_context_t *context);
int FindInstalledIWADs(void);
--- a/src/setup/joystick.c
+++ b/src/setup/joystick.c
@@ -33,13 +33,13 @@
typedef struct
{
- char *name; // Config file name
+ const char *name; // Config file name
int value;
} joystick_config_t;
typedef struct
{
- char *name;
+ const char *name;
int axes, buttons, hats;
const joystick_config_t *configs;
} known_joystick_t;
@@ -972,7 +972,7 @@
// GUI
//
-static void AddJoystickControl(TXT_UNCAST_ARG(table), char *label, int *var)
+static void AddJoystickControl(TXT_UNCAST_ARG(table), const char *label, int *var)
{
TXT_CAST_ARG(txt_table_t, table);
txt_joystick_input_t *joy_input;
--- a/src/setup/keyboard.c
+++ b/src/setup/keyboard.c
@@ -146,7 +146,7 @@
// Add a label and keyboard input to the specified table.
-static void AddKeyControl(TXT_UNCAST_ARG(table), char *name, int *var)
+static void AddKeyControl(TXT_UNCAST_ARG(table), const char *name, int *var)
{
TXT_CAST_ARG(txt_table_t, table);
txt_key_input_t *key_input;
@@ -158,7 +158,7 @@
TXT_SignalConnect(key_input, "set", KeySetCallback, var);
}
-static void AddSectionLabel(TXT_UNCAST_ARG(table), char *title,
+static void AddSectionLabel(TXT_UNCAST_ARG(table), const char *title,
boolean add_space)
{
TXT_CAST_ARG(txt_table_t, table);
--- a/src/setup/mainmenu.c
+++ b/src/setup/mainmenu.c
@@ -181,7 +181,7 @@
static txt_button_t *GetLaunchButton(void)
{
- char *label;
+ const char *label;
switch (gamemission)
{
--- a/src/setup/mode.c
+++ b/src/setup/mode.c
@@ -44,13 +44,13 @@
typedef struct
{
- char *label;
+ const char *label;
GameMission_t mission;
int mask;
- char *name;
- char *config_file;
- char *extra_config_file;
- char *executable;
+ const char *name;
+ const char *config_file;
+ const char *extra_config_file;
+ const char *executable;
} mission_config_t;
// Default mission to fall back on, if no IWADs are found at all:
@@ -106,7 +106,7 @@
static int detailLevel = 0;
static char *savedir = NULL;
static char *executable = NULL;
-static char *game_title = "Doom";
+static const char *game_title = "Doom";
static char *back_flat = "F_PAVE01";
static int comport = 0;
static char *nickname = NULL;
@@ -367,12 +367,12 @@
}
}
-char *GetExecutableName(void)
+const char *GetExecutableName(void)
{
return executable;
}
-char *GetGameTitle(void)
+const char *GetGameTitle(void)
{
return game_title;
}
--- a/src/setup/mode.h
+++ b/src/setup/mode.h
@@ -23,8 +23,8 @@
void SetupMission(GameSelectCallback callback);
void InitBindings(void);
-char *GetExecutableName(void);
-char *GetGameTitle(void);
+const char *GetExecutableName(void);
+const char *GetGameTitle(void);
const iwad_t **GetIwads(void);
#endif /* #ifndef SETUP_MODE_H */
--- a/src/setup/mouse.c
+++ b/src/setup/mouse.c
@@ -67,7 +67,7 @@
}
}
-static void AddMouseControl(TXT_UNCAST_ARG(table), char *label, int *var)
+static void AddMouseControl(TXT_UNCAST_ARG(table), const char *label, int *var)
{
TXT_CAST_ARG(txt_table_t, table);
txt_mouse_input_t *mouse_input;
--- a/src/setup/multiplayer.c
+++ b/src/setup/multiplayer.c
@@ -705,7 +705,7 @@
// and the single player warp menu. The parameters specify
// the window title and whether to display multiplayer options.
-static void StartGameMenu(char *window_title, int multiplayer)
+static void StartGameMenu(const char *window_title, int multiplayer)
{
txt_window_t *window;
txt_widget_t *iwad_selector;
@@ -984,7 +984,7 @@
TXT_SetPeriodicCallback(NULL, NULL, 0);
}
-static void ServerQueryWindow(char *title)
+static void ServerQueryWindow(const char *title)
{
txt_table_t *results_table;
@@ -1067,7 +1067,7 @@
void SetChatMacroDefaults(void)
{
int i;
- char *defaults[] =
+ const char *const defaults[] =
{
HUSTR_CHATMACRO0,
HUSTR_CHATMACRO1,
--- a/src/setup/txt_joyaxis.c
+++ b/src/setup/txt_joyaxis.c
@@ -32,7 +32,7 @@
#define JOYSTICK_AXIS_WIDTH 20
-static char *CalibrationLabel(txt_joystick_axis_t *joystick_axis)
+static const char *CalibrationLabel(txt_joystick_axis_t *joystick_axis)
{
switch (joystick_axis->config_stage)
{
--- a/src/w_wad.c
+++ b/src/w_wad.c
@@ -618,3 +618,12 @@
W_GenerateHashTable();
}
+const char *W_WadNameForLump(const lumpinfo_t *lump)
+{
+ return M_BaseName(lump->wad_file->path);
+}
+
+boolean W_IsIWADLump(const lumpinfo_t *lump)
+{
+ return lump->wad_file == lumpinfo[0]->wad_file;
+}
--- a/src/w_wad.h
+++ b/src/w_wad.h
@@ -72,4 +72,7 @@
void W_ReleaseLumpNum(lumpindex_t lump);
void W_ReleaseLumpName(const char *name);
+const char *W_WadNameForLump(const lumpinfo_t *lump);
+boolean W_IsIWADLump(const lumpinfo_t *lump);
+
#endif