From 52c0de1de196120976fef82cbbaaeafbedd9c62f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 26 Jan 2017 21:36:34 +0100 Subject: [PATCH] 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) --- src/misc2.c | 28 ---------------------------- src/os_unix.h | 12 ++++-------- src/version.c | 2 ++ src/vim.h | 11 ++--------- 4 files changed, 8 insertions(+), 45 deletions(-) diff --git a/src/misc2.c b/src/misc2.c index 26d5970f9..dd0e69464 100644 --- 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 index d28aa4dde..695affaea 100644 --- 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 index 4e4161719..08b5dec68 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 241, /**/ 240, /**/ diff --git a/src/vim.h b/src/vim.h index 4ebf34804..1bd38219a 100644 --- a/src/vim.h +++ b/src/vim.h @@ -1714,15 +1714,8 @@ typedef unsigned short disptick_T; /* display tick type */ 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 /* -- 2.50.1