# HG changeset patch # User Christian Brabandt # Date 1485463504 -3600 # Node ID 24a1fbd78b76da331b74bd94ff8694af08594f0f # Parent fe97b963559cefe5876c36dceeca53e9dfed471a patch 8.0.0241: fallback implementation of mch_memmove is unused commit https://github.com/vim/vim/commit/52c0de1de196120976fef82cbbaaeafbedd9c62f Author: Bram Moolenaar Date: Thu Jan 26 21:36:34 2017 +0100 patch 8.0.0241: fallback implementation of mch_memmove is unused Problem: Vim defines a mch_memmove() function but it doesn't work, thus is always unused. Solution: Remove the mch_memmove implementation. (suggested by Dominique Pelle) diff --git a/src/misc2.c b/src/misc2.c --- a/src/misc2.c +++ b/src/misc2.c @@ -1740,34 +1740,6 @@ vim_memset(void *ptr, int c, size_t size } #endif -/* skipped when generating prototypes, the prototype is in vim.h */ -#ifdef VIM_MEMMOVE -/* - * Version of memmove() that handles overlapping source and destination. - * For systems that don't have a function that is guaranteed to do that (SYSV). - */ - void -mch_memmove(void *src_arg, void *dst_arg, size_t len) -{ - /* - * A void doesn't have a size, we use char pointers. - */ - char *dst = dst_arg, *src = src_arg; - - /* overlap, copy backwards */ - if (dst > src && dst < src + len) - { - src += len; - dst += len; - while (len-- > 0) - *--dst = *--src; - } - else /* copy forwards */ - while (len-- > 0) - *dst++ = *src++; -} -#endif - #if (!defined(HAVE_STRCASECMP) && !defined(HAVE_STRICMP)) || defined(PROTO) /* * Compare two strings, ignoring case, using current locale. diff --git a/src/os_unix.h b/src/os_unix.h --- a/src/os_unix.h +++ b/src/os_unix.h @@ -423,21 +423,17 @@ typedef struct dsc$descriptor DESC; # endif #endif -/* memmove is not present on all systems, use memmove, bcopy, memcpy or our - * own version */ -/* Some systems have (void *) arguments, some (char *). If we use (char *) it +/* memmove() is not present on all systems, use memmove, bcopy or memcpy. + * Some systems have (void *) arguments, some (char *). If we use (char *) it * works for all */ -#ifdef USEMEMMOVE +#if defined(USEMEMMOVE) || (!defined(USEBCOPY) && !defined(USEMEMCPY)) # define mch_memmove(to, from, len) memmove((char *)(to), (char *)(from), len) #else # ifdef USEBCOPY # define mch_memmove(to, from, len) bcopy((char *)(from), (char *)(to), len) # else -# ifdef USEMEMCPY + /* ifdef USEMEMCPY */ # define mch_memmove(to, from, len) memcpy((char *)(to), (char *)(from), len) -# else -# define VIM_MEMMOVE /* found in misc2.c */ -# endif # endif #endif diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 241, +/**/ 240, /**/ 239, diff --git a/src/vim.h b/src/vim.h --- a/src/vim.h +++ b/src/vim.h @@ -1714,15 +1714,8 @@ typedef unsigned short disptick_T; /* di typedef void *vim_acl_T; /* dummy to pass an ACL to a function */ -/* - * Include a prototype for mch_memmove(), it may not be in alloc.pro. - */ -#ifdef VIM_MEMMOVE -void mch_memmove(void *, void *, size_t); -#else -# ifndef mch_memmove -# define mch_memmove(to, from, len) memmove(to, from, len) -# endif +#ifndef mch_memmove +# define mch_memmove(to, from, len) memmove((char*)(to), (char*)(from), (char*)(len)) #endif /*