From: Jan Djärv Date: Mon, 23 Nov 2009 09:51:06 +0000 (+0000) Subject: * etags.c (absolute_filename): Use memove if we have it for overlapping copy. X-Git-Tag: emacs-pretest-23.1.90~265 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=46f3381adef956e0e3d83e8950af6cba8420f9f5;p=emacs.git * etags.c (absolute_filename): Use memove if we have it for overlapping copy. --- 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; } }