summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/game_text.cpp4
-rw-r--r--src/strgen/strgen.cpp4
-rw-r--r--src/strgen/strgen.h4
-rw-r--r--src/strgen/strgen_base.cpp2
4 files changed, 7 insertions, 7 deletions
diff --git a/src/game/game_text.cpp b/src/game/game_text.cpp
index f717e2dc0..d4a137904 100644
--- a/src/game/game_text.cpp
+++ b/src/game/game_text.cpp
@@ -151,11 +151,11 @@ struct StringListReader : StringReader {
{
}
- /* virtual */ char *ReadLine(char *buffer, size_t size)
+ /* virtual */ char *ReadLine(char *buffer, const char *last)
{
if (this->p == this->end) return NULL;
- strncpy(buffer, *this->p, size);
+ strecpy(buffer, *this->p, last);
this->p++;
return buffer;
diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp
index 7769ca242..606f82518 100644
--- a/src/strgen/strgen.cpp
+++ b/src/strgen/strgen.cpp
@@ -122,9 +122,9 @@ struct FileStringReader : StringReader {
fclose(this->fh);
}
- /* virtual */ char *ReadLine(char *buffer, size_t size)
+ /* virtual */ char *ReadLine(char *buffer, const char *last)
{
- return fgets(buffer, size, this->fh);
+ return fgets(buffer, last - buffer + 1, this->fh);
}
/* virtual */ void HandlePragma(char *str);
diff --git a/src/strgen/strgen.h b/src/strgen/strgen.h
index 22b24a266..ecae71a72 100644
--- a/src/strgen/strgen.h
+++ b/src/strgen/strgen.h
@@ -72,10 +72,10 @@ struct StringReader {
/**
* Read a single line from the source of strings.
* @param buffer The buffer to read the data in to.
- * @param size The size of the buffer.
+ * @param last The last element in the buffer.
* @return The buffer, or NULL if at the end of the file.
*/
- virtual char *ReadLine(char *buffer, size_t size) = 0;
+ virtual char *ReadLine(char *buffer, const char *last) = 0;
/**
* Handle the pragma of the file.
diff --git a/src/strgen/strgen_base.cpp b/src/strgen/strgen_base.cpp
index ef30a4c8a..95d3291e4 100644
--- a/src/strgen/strgen_base.cpp
+++ b/src/strgen/strgen_base.cpp
@@ -821,7 +821,7 @@ void StringReader::ParseFile()
strecpy(_lang.digit_decimal_separator, ".", lastof(_lang.digit_decimal_separator));
_cur_line = 1;
- while (this->ReadLine(buf, sizeof(buf)) != NULL) {
+ while (this->ReadLine(buf, lastof(buf)) != NULL) {
rstrip(buf);
this->HandleString(buf);
_cur_line++;