Commit 7cd43111 authored by Glenn Morris's avatar Glenn Morris

Remove lib-src/test-distrib.c and related

The class of problems that this was designed to detect, namely .elc
files getting corrupted by being passed around by email via uuencode
or somesuch, has not been a relevant concern for many years.

* lib-src/test-distrib.c, lib-src/testfile: Remove.

* lib-src/ (DONT_INSTALL): Remove test-distrib.
(test-distrib${EXEEXT}): Remove rule.

* make-dist: Do not distribute lib-src/testfile.

* admin/quick-install-emacs (AVOID): Remove testfile and test-distrib.

* INSTALL, etc/PROBLEMS, admin/notes/unicode:
Remove references to test-distrib and testfile.
parent f9c81e7b
2014-03-22 Glenn Morris <>
* make-dist: Do not distribute lib-src/testfile.
2014-03-21 Eli Zaretskii <>
* Bump version to 24.4.50.
......@@ -726,8 +726,8 @@ Strictly speaking, not all of the executables in `./lib-src' need be copied.
are used by Emacs; they do need to be copied.
- The programs `etags', `ctags', and `emacsclient' are intended to be
run by users; they are handled below.
- The programs `make-docfile' and `test-distrib' were
used in building Emacs, and are not needed any more.
- The program `make-docfile' was used in building Emacs, and is
not needed any more.
2) Copy the files in `./info' to the place specified in
`./lisp/site-init.el' or `./lisp/info.el'. Note that if the
2014-03-22 Glenn Morris <>
* quick-install-emacs (AVOID): Remove testfile and test-distrib.
2014-03-21 Glenn Morris <>
* update_autogen: Auto-detect VCS in use.
......@@ -181,13 +181,6 @@ nontrivial changes to the build process.
* no-conversion
This file purposely contains arbitrary bytes interspersed within text,
to test whether the Emacs distribution is corrupted.
* iso-2022-7bit
This file switches between CJK charsets, which is not encoded in UTF-8.
......@@ -30,7 +30,7 @@
PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse'
AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib"
AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile"
# Prune old binaries lying around in the source tree
......@@ -2504,22 +2504,6 @@ or
(The -R option disables address space randomization.)
*** test-distrib says that the distribution has been clobbered.
*** or, temacs prints "Command key out of range 0-127".
*** or, temacs runs and dumps emacs, but emacs totally fails to work.
*** or, temacs gets errors dumping emacs.
This can be because the .elc files have been garbled. Do not be
fooled by the fact that most of a .elc file is text: these are
binary files and can contain all 256 byte values.
If you have a copy of Emacs whose .elc files have been damaged in this
way, you should be able to fix it by using:
make bootstrap
to regenerate all the .elc files.
*** temacs prints "Pure Lisp storage exhausted".
This means that the Lisp code loaded from the .elc and .el files
2014-03-22 Glenn Morris <>
* (DONT_INSTALL): Remove test-distrib.
(test-distrib${EXEEXT}): Remove rule.
* test-distrib.c, testfile: Remove.
2014-03-10 Juanma Barranquero <>
* emacsclient.c (main): #ifdef out previous change on Windows.
......@@ -128,7 +128,7 @@ INSTALLABLE_SCRIPTS = grep-changelog
UTILITIES = profile${EXEEXT} movemail${EXEEXT} hexl${EXEEXT} \
DONT_INSTALL= test-distrib${EXEEXT} make-docfile${EXEEXT}
DONT_INSTALL= make-docfile${EXEEXT}
# Like UTILITIES, but they're not system-dependent, and should not be
# deleted by the distclean target.
......@@ -303,14 +303,6 @@ tags: TAGS
TAGS: etags${EXEEXT}
etags *.[ch]
## This verifies that the non-ASCII characters in the file \`testfile\'
## have not been clobbered by whatever means were used to copy and
## distribute Emacs. If they were clobbered, all the .elc files were
## clobbered too.
test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
$(CC) ${ALL_CFLAGS} -o test-distrib${EXEEXT} ${srcdir}/test-distrib.c
./test-distrib ${srcdir}/testfile
../lib/libgnu.a: $(config_h)
cd ../lib && $(MAKE) libgnu.a
/* test-distrib.c --- testing distribution of nonprinting chars
Copyright (C) 1987, 1993-1995, 1999, 2001-2014 Free Software Foundation,
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <>. */
#include <config.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
/* Break string in two parts to avoid buggy C compilers that ignore characters
after nulls in strings. */
static char string1[] = "Testing distribution of nonprinting chars:\n\
Should be 0177: \177 Should be 0377: \377 Should be 0212: \212.\n\
Should be 0000: ";
static char string2[] = ".\n\
This file is read by the `test-distribution' program.\n\
If you change it, you will make that program fail.\n";
/* Like `read' but keeps trying until it gets SIZE bytes or reaches eof. */
static int
cool_read (int fd, char *buf, size_t size)
ssize_t num;
ssize_t sofar = 0;
while (1)
if ((num = read (fd, buf + sofar, size - sofar)) == 0)
return sofar;
else if (num < 0)
return num;
sofar += num;
main (int argc, char **argv)
int fd;
char buf[300];
if (argc != 2)
fprintf (stderr, "Usage: %s testfile\n", argv[0]);
fd = open (argv[1], O_RDONLY);
if (fd < 0)
perror (argv[1]);
if (cool_read (fd, buf, sizeof string1) != sizeof string1 ||
strcmp (buf, string1) ||
cool_read (fd, buf, sizeof string2) != sizeof string2 - 1 ||
strncmp (buf, string2, sizeof string2 - 1))
fprintf (stderr, "Data in file `%s' has been damaged.\n\
Most likely this means that many nonprinting characters\n\
have been corrupted in the files of Emacs, and it will not work.\n",
close (fd);
/* test-distrib.c ends here */
......@@ -383,7 +383,7 @@ echo "Making links to \`lib'"
echo "Making links to \`lib-src'"
(cd lib-src
ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src
ln ChangeLog README testfile ../${tempdir}/lib-src
ln ChangeLog README ../${tempdir}/lib-src
ln grep-changelog rcs2log ../${tempdir}/lib-src
ln makefile.w32-in ../${tempdir}/lib-src)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment