# HG changeset patch # User Jan Dj¸«£rv # Date 1258969866 0 # Node ID 6a5f884264d9ec363a7a5d54601f02e6ef3fa75c # Parent 01190029e5d38efce4fa8eaefad1c1f40971758d * etags.c (absolute_filename): Use memove if we have it for overlapping copy. diff -r 01190029e5d3 -r 6a5f884264d9 lib-src/ChangeLog --- a/lib-src/ChangeLog Mon Nov 23 08:55:08 2009 +0000 +++ b/lib-src/ChangeLog Mon Nov 23 09:51:06 2009 +0000 @@ -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 -r 01190029e5d3 -r 6a5f884264d9 lib-src/etags.c --- a/lib-src/etags.c Mon Nov 23 08:55:08 2009 +0000 +++ b/lib-src/etags.c Mon Nov 23 09:51:06 2009 +0000 @@ -6695,13 +6695,22 @@ 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; } }