(svn r1616) Introduce ttd_strlcat() and use it to de-uglify some piece of code in misc_cmd.
While here rename the len parameter of ttd_strlcpy() to size, because it is a buffer size and not a string length. Also add -Wwrite-strings to the Makefile, because the above mentioned piece of code was the only part which triggered this warning.
This commit is contained in:
18
ttd.c
18
ttd.c
@@ -203,12 +203,20 @@ static const DriverDesc *ChooseDefaultDriver(const DriverDesc *dd)
|
||||
return best;
|
||||
}
|
||||
|
||||
void ttd_strlcpy(char *dst, const char *src, size_t len)
|
||||
void ttd_strlcpy(char *dst, const char *src, size_t size)
|
||||
{
|
||||
assert(len > 0);
|
||||
while (--len && *src)
|
||||
*dst++=*src++;
|
||||
*dst = 0;
|
||||
assert(size > 0);
|
||||
while (--size > 0 && *src != '\0') *dst++ = *src++;
|
||||
*dst = '\0';
|
||||
}
|
||||
|
||||
void ttd_strlcat(char *dst, const char *src, size_t size)
|
||||
{
|
||||
assert(size > 0);
|
||||
for (; size > 0 && *dst != '\0'; --size, ++dst) {}
|
||||
assert(size > 0);
|
||||
while (--size > 0 && *src != '\0') *dst++ = *src++;
|
||||
*dst = '\0';
|
||||
}
|
||||
|
||||
static char *strecpy(char *dst, const char *src)
|
||||
|
||||
Reference in New Issue
Block a user