From befe8946932091f6001cf43f9b7fc0ddd2ed15ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Mon, 23 Nov 2009 09:51:06 +0000 Subject: [PATCH] * etags.c (absolute_filename): Use memove if we have it for overlapping copy. --- lib-src/ChangeLog | 5 +++++ lib-src/etags.c | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index b72d928dc6c..e4a1a3ea576 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,8 @@ +2009-11-23 Tobias Ringström (tiny change) + + * etags.c (absolute_filename): Use memove if we have it for + overlapping copy. + 2009-11-04 Dan Nicolaescu * make-docfile.c (scan_lisp_file): Also look for `defvaralias'. diff --git a/lib-src/etags.c b/lib-src/etags.c index 0fbade822d5..6fce4529855 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -6695,13 +6695,22 @@ absolute_filename (file, dir) else if (cp[0] != '/') cp = slashp; #endif +#ifdef HAVE_MEMMOVE + memmove (cp, slashp + 3, strlen (slashp + 2)); +#else + /* Overlapping copy isn't really okay */ strcpy (cp, slashp + 3); +#endif slashp = cp; continue; } else if (slashp[2] == '/' || slashp[2] == '\0') { - strcpy (slashp, slashp + 2); +#ifdef HAVE_MEMMOVE + memmove (slashp, slashp + 2, strlen (slashp + 1)); +#else + strcpy (slashp, slashp + 2); +#endif continue; } } -- 2.11.4.GIT