From 5e90054f208028909dec2c5b3d66994fa2c189db Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 25 Apr 2014 17:43:09 +0000 Subject: [PATCH] (svn r26511) -Codechange: use strecpy in game_text --- src/game/game_text.cpp | 4 ++-- src/strgen/strgen.cpp | 4 ++-- src/strgen/strgen.h | 4 ++-- src/strgen/strgen_base.cpp | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/game/game_text.cpp b/src/game/game_text.cpp index f717e2dc06..d4a1379047 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 7769ca2428..606f825189 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 22b24a2660..ecae71a72a 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 ef30a4c8a9..95d3291e49 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++;