summaryrefslogtreecommitdiff
path: root/src/function.c
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2022-07-09 13:26:30 -0400
committerPaul Smith <psmith@gnu.org>2022-07-30 18:40:21 -0400
commit2fe96e4a410c346483a20376e58c40e63887d652 (patch)
tree717a2f61cedcebab86b070fb1fb8c743069d8387 /src/function.c
parentdd24a4c1cfa7b6928ddb2bcd00a023f23aaaf440 (diff)
downloadmake-git-2fe96e4a410c346483a20376e58c40e63887d652.tar.gz
Take advantage of mempcpy() and stpcpy()
* src/makeint.h (stpcpy): Add missing declaration. * src/amiga.c (MyExecute): Avoid extra strlen using stpcpy. * src/function.c (func_shell_base): Ditto. (func_error): Use memcpy() not strcpy() when we know the length. * src/job.c (construct_command_argv_internal): Use stpcpy(). * src/main.c (main): Ditto. (define_makeflags): Ditto. * src/variable.c (print_target_variables): Use memcpy() when we know the length. * src/commands.c (set_file_variables): Use mempcpy(). * src/expand.c (variable_buffer_output): Ditto. * src/file.c (expand_deps): Ditto. * src/function.c (abspath): Ditto. (handle_function): Ditto. * src/implicit.c (pattern_search): Ditto. * src/job.c (construct_command_argv_internal): Use mempcpy() and don't add multiple spaces when there are no shell flags. * src/main.c (decode_env_switches): Use mempcpy() to simplify. (define_makeflags): Ditto. * src/variable.c (selective_vpath_search): Ditto.
Diffstat (limited to 'src/function.c')
-rw-r--r--src/function.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/function.c b/src/function.c
index 9247fc3f..1f490fa2 100644
--- a/src/function.c
+++ b/src/function.c
@@ -1185,7 +1185,7 @@ func_error (char *o, char **argv, const char *funcname)
{
size_t len = strlen (argv[0]);
char *msg = alloca (len + 2);
- strcpy (msg, argv[0]);
+ memcpy (msg, argv[0], len);
msg[len] = '\n';
msg[len + 1] = '\0';
outputs (0, msg);
@@ -2060,8 +2060,8 @@ func_shell_base (char *o, char **argv, int trim_newlines)
{
strcpy (ptr, *aptr);
ptr += strlen (ptr) + 1;
- *ptr ++ = ' ';
- *ptr = 0;
+ *(ptr++) = ' ';
+ *ptr = '\0';
}
ptr[-1] = '\n';
@@ -2249,8 +2249,7 @@ abspath (const char *name, char *apath)
if (dest + len >= apath_limit)
return NULL;
- dest = memcpy (dest, start, len);
- dest += len;
+ dest = mempcpy (dest, start, len);
*dest = '\0';
}
}
@@ -2646,9 +2645,8 @@ handle_function (char **op, const char **stringp)
char *p, *aend;
abeg = xmalloc (len+1);
- memcpy (abeg, beg, len);
- abeg[len] = '\0';
- aend = abeg + len;
+ aend = mempcpy (abeg, beg, len);
+ *aend = '\0';
for (p=abeg, nargs=0; p <= aend; ++argvp)
{