shithub: choc

Download patch

ref: 1e5e0a565cbcaf4f8aafa5a12c84e987aa822e13
parent: 2e6e43c4a706e3670f131c7b2d5a5525f9bf0d7b
author: Simon Howard <fraggle@gmail.com>
date: Sat Mar 29 17:38:11 EDT 2014

misc: Make arguments to string functions const.

Where a pointer is to a buffer that does not need to be mutable for
the operation of the function, use const char * instead. This avoids
some type errors where constant string are passed.

--- a/src/hexen/r_data.c
+++ b/src/hexen/r_data.c
@@ -26,6 +26,7 @@
 #include "h2def.h"
 #include "i_system.h"
 #include "i_swap.h"
+#include "m_misc.h"
 #include "r_local.h"
 #include "p_local.h"
 
--- a/src/m_misc.c
+++ b/src/m_misc.c
@@ -300,10 +300,11 @@
 // String replace function.
 //
 
-char *M_StringReplace(char *haystack, char *needle, char *replacement)
+char *M_StringReplace(const char *haystack, const char *needle,
+                      const char *replacement)
 {
-    char *result, *p;
-    char *dst;
+    char *result, *dst;
+    const char *p;
     size_t needle_len = strlen(needle);
     size_t result_len, dst_len;
 
@@ -359,7 +360,7 @@
 // Safe string copy function that works like OpenBSD's strlcpy().
 // Returns true if the string was not truncated.
 
-boolean M_StringCopy(char *dest, char *src, size_t dest_size)
+boolean M_StringCopy(char *dest, const char *src, size_t dest_size)
 {
     strncpy(dest, src, dest_size);
     dest[dest_size - 1] = '\0';
@@ -369,7 +370,7 @@
 // Safe string concat function that works like OpenBSD's strlcat().
 // Returns true if string not truncated.
 
-boolean M_StringConcat(char *dest, char *src, size_t dest_size)
+boolean M_StringConcat(char *dest, const char *src, size_t dest_size)
 {
     size_t offset;
 
@@ -387,7 +388,7 @@
 
 // Returns true if 's' begins with the specified prefix.
 
-boolean M_StringStartsWith(char *s, char *prefix)
+boolean M_StringStartsWith(const char *s, const char *prefix)
 {
     return strlen(s) > strlen(prefix)
         && strncmp(s, prefix, strlen(prefix)) == 0;
@@ -395,7 +396,7 @@
 
 // Returns true if 's' ends with the specified suffix.
 
-boolean M_StringEndsWith(char *s, char *suffix)
+boolean M_StringEndsWith(const char *s, const char *suffix)
 {
     return strlen(s) >= strlen(suffix)
         && strcmp(s + strlen(s) - strlen(suffix), suffix) == 0;
@@ -404,9 +405,10 @@
 // Return a newly-malloced string with all the strings given as arguments
 // concatenated together.
 
-char *M_StringJoin(char *s, ...)
+char *M_StringJoin(const char *s, ...)
 {
-    char *result, *v;
+    char *result;
+    const char *v;
     va_list args;
     size_t result_len;
 
@@ -415,7 +417,7 @@
     va_start(args, s);
     for (;;)
     {
-        v = va_arg(args, char *);
+        v = va_arg(args, const char *);
         if (v == NULL)
         {
             break;
@@ -438,7 +440,7 @@
     va_start(args, s);
     for (;;)
     {
-        v = va_arg(args, char *);
+        v = va_arg(args, const char *);
         if (v == NULL)
         {
             break;
--- a/src/m_misc.h
+++ b/src/m_misc.h
@@ -43,12 +43,13 @@
 void M_ExtractFileBase(char *path, char *dest);
 void M_ForceUppercase(char *text);
 char *M_StrCaseStr(char *haystack, char *needle);
-boolean M_StringCopy(char *dest, char *src, size_t dest_size);
-boolean M_StringConcat(char *dest, char *src, size_t dest_size);
-char *M_StringReplace(char *haystack, char *needle, char *replacement);
-char *M_StringJoin(char *s, ...);
-boolean M_StringStartsWith(char *s, char *prefix);
-boolean M_StringEndsWith(char *s, char *suffix);
+boolean M_StringCopy(char *dest, const char *src, size_t dest_size);
+boolean M_StringConcat(char *dest, const char *src, size_t dest_size);
+char *M_StringReplace(const char *haystack, const char *needle,
+                      const char *replacement);
+char *M_StringJoin(const char *s, ...);
+boolean M_StringStartsWith(const char *s, const char *prefix);
+boolean M_StringEndsWith(const char *s, const char *suffix);
 char *M_OEMToUTF8(const char *ansi);
 
 #endif