]> git.eshelyaron.com Git - emacs.git/commitdiff
[ChangeLog]
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 5 Jul 2011 05:27:49 +0000 (22:27 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 5 Jul 2011 05:27:49 +0000 (22:27 -0700)
Assume support for memcmp, memcpy, memmove, memset.
This simplifies the code a bit.  All current platforms have these,
as they are required for C89.  If this turns into a problem we
can add the gnulib modules for these (a 1-line change to Makefile.in).
* configure.in: Don't check for memcmp, memcpy, memmove, memset.
[lib-src/ChangeLog]
Assume support for memcmp, memcpy, memmove, memset.
* etags.c (absolute_filename): Assume memmove exists.
[src/ChangeLog]
Assume support for memcmp, memcpy, memmove, memset.
* lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
* regex.c (memcmp, memcpy):
Remove; we assume C89 now.

* gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
(__malloc_safe_bcopy): Remove; no longer needed.

ChangeLog
configure.in
lib-src/ChangeLog
lib-src/etags.c
src/ChangeLog
src/gmalloc.c
src/lisp.h
src/regex.c
src/sysdep.c

index a93142648c69f58bb9ad04bddd7e1b2ecff71616..17b6bae02ccaea92fa2841da3a1c0bf9818dd99b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-07-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume support for memcmp, memcpy, memmove, memset.
+       This simplifies the code a bit.  All current platforms have these,
+       as they are required for C89.  If this turns into a problem we
+       can add the gnulib modules for these (a 1-line change to Makefile.in).
+       * configure.in: Don't check for memcmp, memcpy, memmove, memset.
+
 2011-07-01  Glenn Morris  <rgm@gnu.org>
 
        * configure.in (SETTINGS_CFLAGS, SETTINGS_LIBS) [HAVE_GCONF]: Fix typo.
index e5452f5122ba38e6cf569dc274399462416251c1..f23493811fac62658667d427cfdf1f45ea5f6daf 100644 (file)
@@ -1091,7 +1091,7 @@ if test "x$crt_files" != x; then
     dnl first there is no point asking gcc.
     crt_gcc=no
 
-    test -e $CRT_DIR/$file || crt_missing="$crt_missing $file"    
+    test -e $CRT_DIR/$file || crt_missing="$crt_missing $file"
   done                          # $crt_files
 
   test "x$crt_missing" = x || \
@@ -2704,8 +2704,8 @@ strerror fpathconf select euidaccess getpagesize tzset setlocale \
 utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
 __fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \
 sendto recvfrom getsockopt setsockopt getsockname getpeername \
-gai_strerror mkstemp getline getdelim mremap memmove fsync sync \
-memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
+gai_strerror mkstemp getline getdelim mremap fsync sync \
+difftime mempcpy mblen mbrlen posix_memalign \
 cfmakeraw cfsetspeed isnan copysign __executable_start)
 
 dnl Cannot use AC_CHECK_FUNCS
@@ -3109,8 +3109,6 @@ dnl                                and macros for terminal control.])
 dnl    AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
 dnl fi
 
-dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used.  (Needs libobj replacement.)
-
 # Set up the CFLAGS for real compilation, so we can substitute it.
 CFLAGS="$REAL_CFLAGS"
 CPPFLAGS="$REAL_CPPFLAGS"
index 098ee06c7626d5ad00cdaf497ff8d0106cc9eaaf..c2b1b106c15acd8cd99207bf277b941c2fe40418 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume support for memcmp, memcpy, memmove, memset.
+       * etags.c (absolute_filename): Assume memmove exists.
+
 2011-07-02  Jason Rumney  <jasonr@gnu.org>
 
        * emacsclient.c (decode_options) [WINDOWSNT]: Avoid tty mode on
index 693c999047fc06b30b3a480a48991fc8356c12ac..bba4b8e726768c4bdec70fc4723ecb6f9b2547e3 100644 (file)
@@ -6567,22 +6567,13 @@ absolute_filename (char *file, char *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')
            {
-#ifdef HAVE_MEMMOVE
              memmove (slashp, slashp + 2, strlen (slashp + 1));
-#else
-              strcpy (slashp, slashp + 2);
-#endif
              continue;
            }
        }
index e4702b4316b4eefb6c6ccf37201a7d5fd8131ea6..22d70bf54ebacc346846ce9e1833adba619a5e7b 100644 (file)
@@ -1,5 +1,13 @@
 2011-07-05  Paul Eggert  <eggert@cs.ucla.edu>
 
+       Assume support for memcmp, memcpy, memmove, memset.
+       * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
+       * regex.c (memcmp, memcpy):
+       Remove; we assume C89 now.
+
+       * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
+       (__malloc_safe_bcopy): Remove; no longer needed.
+
        * lisp.h (struct vectorlike_header, struct Lisp_Subr):  Signed sizes.
        Use EMACS_INT, not EMACS_UINT, for sizes.  The code works equally
        well either way, and we prefer signed to unsigned.
index a023d2d78e591167874822b88c93ca37cdd44c22..4f27ea3079ad48e7aab34860ba8f13f86323b1bc 100644 (file)
@@ -54,16 +54,7 @@ Fifth Floor, Boston, MA 02110-1301, USA.
 #define        __ptr_t         char *
 #endif /* C++ or ANSI C.  */
 
-#if    defined(_LIBC) || defined(STDC_HEADERS) || defined(USG)
 #include <string.h>
-#else
-#ifndef memset
-#define        memset(s, zero, n)      bzero ((s), (n))
-#endif
-#ifndef memcpy
-#define        memcpy(d, s, n)         bcopy ((s), (d), (n))
-#endif
-#endif
 
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
@@ -1069,20 +1060,6 @@ Fifth Floor, Boston, MA 02110-1301, USA.
 #endif
 
 
-/* Cope with systems lacking `memmove'.    */
-#ifndef memmove
-#if  (!defined(_LIBC) && !defined(STDC_HEADERS) && !defined(USG))
-#ifdef emacs
-#undef __malloc_safe_bcopy
-#define __malloc_safe_bcopy safe_bcopy
-#endif
-/* This function is defined in realloc.c.  */
-extern void __malloc_safe_bcopy PP ((__ptr_t, __ptr_t, __malloc_size_t));
-#define memmove(to, from, size)        __malloc_safe_bcopy ((from), (to), (size))
-#endif
-#endif
-
-
 /* Debugging hook for free.  */
 void (*__free_hook) PP ((__ptr_t __ptr));
 
@@ -1402,85 +1379,6 @@ Fifth Floor, Boston, MA 02110-1301, USA.
 #endif
 
 
-
-/* Cope with systems lacking `memmove'.    */
-#if  (!defined(_LIBC) && !defined(STDC_HEADERS) && !defined(USG))
-
-#ifdef emacs
-#undef __malloc_safe_bcopy
-#define __malloc_safe_bcopy safe_bcopy
-#else
-
-/* Snarfed directly from Emacs src/dispnew.c:
-   XXX Should use system bcopy if it handles overlap.  */
-
-/* Like bcopy except never gets confused by overlap.  */
-
-void
-__malloc_safe_bcopy (afrom, ato, size)
-     __ptr_t afrom;
-     __ptr_t ato;
-     __malloc_size_t size;
-{
-  char *from = afrom, *to = ato;
-
-  if (size <= 0 || from == to)
-    return;
-
-  /* If the source and destination don't overlap, then bcopy can
-     handle it.  If they do overlap, but the destination is lower in
-     memory than the source, we'll assume bcopy can handle that.  */
-  if (to < from || from + size <= to)
-    bcopy (from, to, size);
-
-  /* Otherwise, we'll copy from the end.  */
-  else
-    {
-      register char *endf = from + size;
-      register char *endt = to + size;
-
-      /* If TO - FROM is large, then we should break the copy into
-        nonoverlapping chunks of TO - FROM bytes each.  However, if
-        TO - FROM is small, then the bcopy function call overhead
-        makes this not worth it.  The crossover point could be about
-        anywhere.  Since I don't think the obvious copy loop is too
-        bad, I'm trying to err in its favor.  */
-      if (to - from < 64)
-       {
-         do
-           *--endt = *--endf;
-         while (endf != from);
-       }
-      else
-       {
-         for (;;)
-           {
-             endt -= (to - from);
-             endf -= (to - from);
-
-             if (endt < to)
-               break;
-
-             bcopy (endf, endt, to - from);
-           }
-
-         /* If SIZE wasn't a multiple of TO - FROM, there will be a
-            little left over.  The amount left over is
-            (endt + (to - from)) - to, which is endt - from.  */
-         bcopy (from, to, endt - from);
-       }
-    }
-}
-#endif /* emacs */
-
-#ifndef memmove
-extern void __malloc_safe_bcopy PP ((__ptr_t, __ptr_t, __malloc_size_t));
-#define memmove(to, from, size) __malloc_safe_bcopy ((from), (to), (size))
-#endif
-
-#endif
-
-
 #define min(A, B) ((A) < (B) ? (A) : (B))
 
 /* Debugging hook for realloc.  */
index 2835302947f43cc8e5b6992f698281cc35c7607a..cd3cfd316a524d237ab6d4864817410046c6cd4b 100644 (file)
@@ -3429,18 +3429,6 @@ extern EMACS_INT emacs_read (int, char *, EMACS_INT);
 extern EMACS_INT emacs_write (int, const char *, EMACS_INT);
 enum { READLINK_BUFSIZE = 1024 };
 extern char *emacs_readlink (const char *, char [READLINK_BUFSIZE]);
-#ifndef HAVE_MEMSET
-extern void *memset (void *, int, size_t);
-#endif
-#ifndef HAVE_MEMCPY
-extern void *memcpy (void *, void *, size_t);
-#endif
-#ifndef HAVE_MEMMOVE
-extern void *memmove (void *, void *, size_t);
-#endif
-#ifndef HAVE_MEMCMP
-extern int memcmp (void *, void *, size_t);
-#endif
 
 EXFUN (Funlock_buffer, 0);
 extern void unlock_all_files (void);
index 479239897bc89dd53b075befdb329cf4086beda4..f514b60348851b1cd5c4819b8f548c45345bb932 100644 (file)
@@ -238,18 +238,7 @@ xrealloc (void *block, size_t size)
 # endif
 # define realloc xrealloc
 
-/* This is the normal way of making sure we have memcpy, memcmp and memset.  */
-# if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC
-#  include <string.h>
-# else
-#  include <strings.h>
-#  ifndef memcmp
-#   define memcmp(s1, s2, n)   bcmp (s1, s2, n)
-#  endif
-#  ifndef memcpy
-#   define memcpy(d, s, n)     (bcopy (s, d, n), (d))
-#  endif
-# endif
+# include <string.h>
 
 /* Define the syntax stuff for \<, \>, etc.  */
 
index 8b6939b91fede147f4645d5d4f1188090f776a37..f157baf3e76e5a1dd2561545f8a37b72e5e77a9c 100644 (file)
@@ -2215,59 +2215,6 @@ rmdir (char *dpath)
 }
 #endif /* !HAVE_RMDIR */
 
-\f
-#ifndef HAVE_MEMSET
-void *
-memset (void *b, int n, size_t length)
-{
-  unsigned char *p = b;
-  while (length-- > 0)
-    *p++ = n;
-  return b;
-}
-#endif /* !HAVE_MEMSET */
-
-#ifndef HAVE_MEMCPY
-void *
-memcpy (void *b1, void *b2, size_t length)
-{
-  unsigned char *p1 = b1, *p2 = b2;
-  while (length-- > 0)
-    *p1++ = *p2++;
-  return b1;
-}
-#endif /* !HAVE_MEMCPY */
-
-#ifndef HAVE_MEMMOVE
-void *
-memmove (void *b1, void *b2, size_t length)
-{
-  unsigned char *p1 = b1, *p2 = b2;
-  if (p1 < p2 || p1 >= p2 + length)
-    while (length-- > 0)
-      *p1++ = *p2++;
-  else
-    {
-      p1 += length;
-      p2 += length;
-      while (length-- > 0)
-       *--p1 = *--p2;
-    }
-  return b1;
-}
-#endif /* !HAVE_MEMCPY */
-
-#ifndef HAVE_MEMCMP
-int
-memcmp (void *b1, void *b2, size_t length)
-{
-  unsigned char *p1 = b1, *p2 = b2;
-  while (length-- > 0)
-    if (*p1++ != *p2++)
-      return p1[-1] < p2[-1] ? -1 : 1;
-  return 0;
-}
-#endif /* !HAVE_MEMCMP */
 \f
 #ifndef HAVE_STRSIGNAL
 char *