1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00
Commit Graph

1188 Commits

Author SHA1 Message Date
Glenn Morris
57e96f8e22 * make-dist: Exclude generated file src/globals.h. 2011-02-12 18:04:18 -08:00
Paul Eggert
6ffb2c0ceb Undo my previous commit, as per Stefan. 2011-02-09 19:56:30 -08:00
Paul Eggert
102252aa03 New file lib/ChangeLog, with entries moved from ChangeLog 2011-02-09 19:32:03 -08:00
Paul Eggert
988c07dff2 * arg-nonnull.h, c++defs.h, warn-on-use.h: Fix licenses. 2011-02-09 19:16:11 -08:00
Stefan Monnier
ccded26c1e * lisp/progmodes/sh-script.el (sh-font-lock-open-heredoc): Fix case
of here-doc that immediately follows a comment.
* .bzrignore: Ignore globals.h and related stamp.
* test/indent/shell.sh:
* test/indent/shell.rc: New files.
2011-02-09 13:59:55 -05:00
Paul Eggert
caf825516a Sync texinfo.tex and sed-related fixes from gnulib. 2011-02-08 17:40:01 -08:00
Tom Tromey
00b3c7ac85 Make globals.h a generated header
* configure: Rebuild.
	* configure.in (NS_OBJC_OBJ): New subst.
lib-src
	* make-docfile.c: Unconditionally include stdlib.h.
	(generate_globals): New global.
	(xrealloc): New function.
	(main): Handle '-g'.  Call start_globals, write_globals.
	(scan_file): Conditionally call put_filename.
	(start_globals): New function.
	(struct global): New.
	(num_globals, globals): New globals.
	(add_global, compare_globals, write_globals): New functions.
	(scan_c_file): Update for "-g".
	(scan_lisp_file): Fail if "-g".
	(enum global_type): New.
src
	* Makefile.in (NS_OBJC_OBJ): New variable.
	(base_obj): Rename from 'obj'.
	(obj): New variable.
	(globals.h, gl-stamp, $(obj)): New targets.
	(GLOBAL_SOURCES): New variable.
	* globals.h: Remove.
	* nsselect.m (Vselection_alist): Define.  Reverts part of
	2011-01-19T22:11:33Z!jan.h.d@swipnet.se.
	* buffer.c: Don't use "no_cell" for name of kill-buffer-hook's
	variable.
	* xselect.c (Vselection_alist): Define.  Reverts part of 2011-01-19T23:32:42Z!eggert@cs.ucla.edu.
2011-02-08 14:42:56 -07:00
Paul Eggert
595785701d gnulib: allow multiple gnulib generated replacements to coexist
This defines a few preprocessor symbols that should not affect Emacs.
* lib/getopt.in.h, lib/time.in.h, lib/unistd.in.h: Regenerate
via "make sync-from-gnulib".
2011-02-06 17:01:26 -08:00
Paul Eggert
e765a38829 gnulib: undo previous change 2011-02-06 14:13:03 -08:00
Paul Eggert
91ccade49b gnulib: adjust to upstream _HEADERS change 2011-02-06 00:28:30 -08:00
Paul Eggert
d67985d3f9 sync from gnulib to remove HAVE_STDBOOL_H 2011-02-04 21:07:22 -08:00
Paul Eggert
5dc7a1d2c4 * lib/ignore-value.h: New file. 2011-02-03 13:38:34 -08:00
Paul Eggert
67342916c9 allow C code to suppress warnings about ignored return values 2011-02-03 11:29:35 -08:00
Chong Yidong
14beddf471 Merge changes from emacs-23 branch 2011-01-31 18:54:50 -05:00
Eli Zaretskii
70b0d280eb Fix the MS-Windows build broken by 2011-01-30T23:34:18Z!eggert@cs.ucla.edu and 2011-01-31T08:15:13Z!eggert@cs.ucla.edu.
lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/strftime.$(O) and
 $(BLD)/time_r.$(O).
 ($(BLD)/dtoastr.$(O)): Depend on $(EMACS_ROOT)/src/s/ms-w32.h and
 $(EMACS_ROOT)/src/m/intel386.h.
 ($(BLD)/strftime.$(O)): 
 ($(BLD)/time_r.$(O)): Define prerequisites.
 src/makefile.w32-in (OBJ2): Remove strftime.$(O).
 ($(BLD)/strftime.$(O)): Remove prerequisites.
 lib-src/makefile.w32-in (VERSION): Don't define, defined on nt/config.nt.
 (ECLIENT_CFLAGS): Remove -DVERSION.
 ($(BLD)/emacsclient.$(O)): Don't depend on makefile.w32-in.
 nt/config.nt (VERSION): Uncomment definition.
 (restrict): Define.
 nt/inc/stdbool.h: New file.
 admin/admin.el (set-version): Remove lib-src/makefile.w32-in.  Add
 nt/config.nt.
2011-01-31 21:36:08 +02:00
Paul Eggert
16fab14354 src/emacs.c now gets version number from configure.in 2011-01-31 00:12:52 -08:00
Paul Eggert
16c3e636a6 strftime: import from gnulib 2011-01-30 15:34:18 -08:00
Paul Eggert
3de84ad9c4 gnulib: import mktime and move-if-change fixes from gnulib
* configure: Regenerate from the following.

2011-01-30  Paul Eggert  <eggert@cs.ucla.edu>

mktime: clarify long_int width checking
* lib/mktime.c (long_int_is_wide_enough): Move this assertion to
the top level, to make it clearer that the assumption about
long_int width is being checked.  See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00554.html>.

2011-01-29  Paul Eggert  <eggert@cs.ucla.edu>

TYPE_MAXIMUM: avoid theoretically undefined behavior
* lib/intprops.h (TYPE_MINIMUM, TYPE_MAXIMUM): Do not shift a
negative number, which the C Standard says has undefined behavior.
In practice this is not a problem, but might as well do it by the book.
Reported by Rich Felker and Eric Blake; see
<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00493.html>.
* m4/mktime.m4 (AC_FUNC_MKTIME): Likewise.
* lib/mktime.c (TYPE_MAXIMUM): Redo slightly to match the others.

mktime: #undef mktime before #defining it
* lib/mktime.c (mktime) [DEBUG]: #undef mktime before #defining it.

mktime: systematically normalize tm_isdst comparisons
* lib/mktime.c (isdst_differ): New function.
(__mktime_internal): Use it systematically for all isdst comparisons.
This completes the fix for libc BZ #6723, and removes the need for
normalizing tm_isdst.  See
<http://sourceware.org/bugzilla/show_bug.cgi?id=6723>
(not_equal_tm) [DEBUG]: Use isdst_differ here, too.

mktime: fix some integer overflow issues and sidestep the rest

This was prompted by a bug report by Benjamin Lindner for MinGW
<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00472.html>.
His bug is due to signed integer overflow (0 - INT_MIN), and I
I scanned through mktime.c looking for other integer overflow
problems, fixing all the bugs I found.

Although the C Standard says the resulting code is still not safe
in the presence of integer overflow, in practice it should be good
enough for all real-world two's-complement implementations, except
for debugging environments that deliberately trap on integer
overflow (e.g., gcc -ftrapv).

* lib/mktime.c (WRAPV): New macro.
(SHR): Also check that long_int and time_t shift right in the
usual way, before using the fast-but-unportable method.
(TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE): Remove, no longer
used.  The code already assumed two's complement, so there's
no need to test for alternatives.  All uses removed.
(TYPE_MAXIMUM): Don't rely here on overflow behavior not defined by
the C standard.  Problem reported by Rich Felker in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00488.html>.
(twos_complement_arithmetic): Also check long_int and time_t.
(time_t_avg, time_t_add_ok, time_t_int_add_ok): New functions.
(guess_time_tm, ranged_convert, __mktime_internal): Use them.
(__mktime_internal): Avoid integer overflow with unary subtraction
in two instances where -1 - X is an adequate replacement for -X,
since the calculations are approximate.

2011-01-29  Eric Blake  <eblake@redhat.com>

mktime: avoid infinite loop
* m4/mktime.m4 (AC_FUNC_MKTIME): Avoid overflow on possibly-signed
type; behavior is still undefined but portable to all known targets.
Reported by Rich Felker.

2011-01-28  Paul Eggert  <eggert@cs.ucla.edu>

mktime: avoid problems on NetBSD 5 / i386
* lib/mktime.c (long_int): New type.  This works around a problem
on NetBSD 5 / i386, where 'long int' and 'int' are both 32 bits
but time_t is 64 bits, and where I expect the existing code is
wrong in some cases.
(leapyear, ydhms_diff, guess_time_tm, __mktime_internal): Use it.
(ydhms_diff): Bring back the compile-time check for wide-enough
year and yday.

mktime: fix misspelling in comment
* lib/mktime.c (__mktime_internal): Fix misspelling in comment.
This merges all recent glibc changes of importance.

2011-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

move-if-change: cope with concurrent mv of identical file.
* move-if-change (CMPPROG): Accept environment
variable as an override for `cmp'.
(usage): Document CMPPROG.
Adjust comparison to drop stdout.  Cope with failure of mv if
the target file exists and is identical to the source, for
parallel builds.
Report from H.J. Lu against binutils in PR binutils/12283.
2011-01-30 11:22:02 -08:00
Eli Zaretskii
f915f0f7c8 Fix the MS-Windows build broken by 2011-01-17T19:01:01Z!eggert@cs.ucla.edu and emacs-23/2010-05-21T19:51:48Z!acm@muc.de.
lib/makefile.w32-in:
 lib/getopt_.h: New files.
 src/s/ms-w32.h (HAVE_MKTIME): Remove.
 src/makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
 (GNULIB): New variable.
 (LIBS): Add $(GNULIB).
 $(TEMACS): Depend on $(GNULIB).
 <top-level>: Fix font-lock disrupted by a lone `"'.
 src/makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
 (GETOPTOBJS, GETOPTDEPS): Remove targets.
 (MOVEMAILOBJS): Replace $(GETOPTOBJS) with ../lib/$(BLD)/libgnu.$(A).
 ($(BLD)/movemail.exe): Depend on ../lib/getopt.h.
 (ECLIENTOBJS, ETAGSOBJ, CTAGSOBJ, EBROWSEOBJ): Replace getopt.o
 and getopt1.o with ../lib/$(BLD)/libgnu.$(A).
 (clean): Don't remove getopt.h.
 (getopt.h, $(BLD)/getopt.$(O), $(BLD)/getopt1.$(O)): Remove targets.
 ($(BLD)/ctags.$(O), $(BLD)/etags.$(O)): Replace getopt.h with
 $(EMACS_ROOT)/lib/getopt.h.
 nt/makefile.w32-in (all-other-dirs-nmake, all-other-dirs-gmake)
 (bootstrap-nmake, bootstrap-gmake, bootstrap-clean-nmake)
 (bootstrap-clean-gmake, clean-other-dirs-nmake)
 (clean-other-dirs-gmake, cleanall-other-dirs-nmake)
 (cleanall-other-dirs-gmake, distclean-other-dirs-nmake)
 (distclean-other-dirs-gmake, maintainer-clean-other-dirs-nmake)
 (maintainer-clean-other-dirs-gmake): Recurse into ../lib as well.
 nt/configure.bat: Create lib/makefile.
 nt/config.nt (HAVE_MKTIME, BROKEN_MKTIME): Remove.
 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE_DECL_GETENV)
 (HAVE_DECL_LOCALTIME_R, HAVE_WCHAR_T, PACKAGE, VERSION, inline)
 (_GL_UNUSED, _UNUSED_PARAMETER_): Add definitions, for gnulib.
2011-01-29 14:36:11 +02:00
Paul Eggert
c7e95b9146 improve fix for MS-DOS file name clash
* Makefile.in (DOS_gnulib_comp.m4): Renamed from DOS-gnulib-comp.m4,
for portability to POSIX make.  Reported by Bruno Haible.
(sync-from-gnulib): Copy gl-comp.m4 (if present) back to
gnulib-comp.m4 before running gnulib-tool, to prevent old gnulib
files from accumulating as garbage.  Also reported by Bruno Haible.
2011-01-27 16:25:24 -08:00
Chong Yidong
37f7b7843a * configure.in: Test existence of xaw3d library, not just the header (Bug#7642).
* configure: Regenerate.
2011-01-27 15:49:48 -05:00
Paul Eggert
125c3718c2 fix two m4/gnulib-*.m4 file names that clashed under MS-DOS 2011-01-26 23:24:57 -08:00
Glenn Morris
95df8112a0 Refill some long/short copyright headers. 2011-01-26 00:36:39 -08:00
Glenn Morris
73b0cd5003 Convert consecutive FSF copyright years to ranges. 2011-01-24 20:08:28 -08:00
Glenn Morris
0b5c5d8291 * README: Add a note about ranges in copyright years.
(See current maintain.info.)
2011-01-24 20:03:31 -08:00
Glenn Morris
4004ef4661 * configure.in: Set CANNOT_DUMP on ia64 hpux (port from emacs-23). 2011-01-24 19:55:12 -08:00
Glenn Morris
06d8ace515 Merge from emacs-23.
Note setting of CANNOT_DUMP on ia64 hpux is still to be merged manually.
2011-01-24 19:47:47 -08:00
Paul Eggert
d6974efa70 Remove HAVE_RAW_DECL_CHOWN etc. from config.h 2011-01-23 20:53:39 -08:00
Peter O'Gorman
6de1218f3c Two more hunks from the HP-UX patch at Bug#6811.
* configure.in: Add HP-UX on IA64 (Bug#6811).
* src/s/hpux11.h: Set CANNOT_DUMP on IA64 (Bug#6811).
2011-01-23 17:00:22 -05:00
Paul Eggert
e02ea74b7e aclocal.m4: put this file back into repository
This way, we don't have to assume that the maintainer has
the automake package installed.  See
<http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00746.html>.
* .bzrignore: Remove aclocal.m4, undoing the previous change.
* Makefile.in (top_maintainer_clean): Do not remove aclocal.m4,
undoing the previous change.
* aclocal.m4: New file (actually, resurrected).
2011-01-21 23:18:23 -08:00
Miles Bader
48dcd48260 configure.in: Don't zero-out FONTCONFIG_CFLAGS and FONTCONFIG_LIBS
when building with XFT (doing so is incorrect, as Emacs directly uses
fontconfig, and breaks building when using a strict linker).
2011-01-22 11:45:57 +09:00
Paul Eggert
b06b1098fc src/config.in: shrink slightly
* configure.in: Invoke the new gnulib macro gl_ASSERT_NO_GNULIB_TESTS.
This makes src/config.in a bit smaller, by removing identifiers
like GNULIB_TEST_MKTIME that Emacs does not need.
* m4/getopt.m4, m4/gnulib-common.m4, m4/include_next.m4:
* m4/multiarch.m4, m4/stddef_h.m4, m4/time_h.m4, m4/unistd_h.m4:
Sync from gnulib.  This removes a few more unnecessary symbols from
src/config.in, such as AA_APPLE_UNIVERSAL_BUILD and HAVE_STDDEF_H.
* configure, src/config.in: Regenerate.
2011-01-21 16:12:10 -08:00
Paul Eggert
925e561d32 aclocal.m4: tweaks to regenerate more conveniently
This attempts to act better when the source is in a weird state.  See
<http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00734.html>.
* Makefile.in (am--refresh): Add aclocal.m4, configure, config.in.
* .bzrignore: Add aclocal.m4.
2011-01-21 12:23:24 -08:00
Paul Eggert
942be821a9 aclocal.m4: omit auto-generated file from repository 2011-01-19 21:00:40 -08:00
Paul Eggert
0813c96eb2 Minor Makefile.in tweaks to build from gnulib better.
<http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00673.html>
* Makefile.in (sync-from-gnulib): Also run autoreconf -I m4.
(top_maintainer_clean): Don't remove aclocal.m4.
2011-01-19 15:56:53 -08:00
Paul Eggert
53911e8f4e Minor cleanups for 'bzr status'
* .bzrignore: Add emacs-*/, the output of make-dist, and stamp-h1,
the output of config.guess.
* Makefile.in (top_distclean): Remove stamp-h1 too.
2011-01-17 21:23:52 -08:00
Paul Eggert
7cae64b4ee Improve performance on non-GCC hosts with __aligned__. 2011-01-17 20:54:23 -08:00
Paul Eggert
3cbecb8f28 Makefile.in: tidy up the building of lib
* Makefile.in (am--refresh): Mark as .PHONY.
(top_maintainer_clean): Don't remove lib/gnulib.mk m4/gnulib-cache.m4,
as they're not rebuilt unless you do a "make sync-from-gnulib"
and the former is needed for "configure".
(maintainer-clean): Don't recurse into lib, as "make bootstrap-clean"
has already removed lib/Makefile.
2011-01-17 11:20:37 -08:00
Paul Eggert
a3e44e7937 Merge from mainline. 2011-01-17 11:01:01 -08:00
Glenn Morris
dc3e3e7b22 * Makefile.in (epaths-force): No more arch-tag to edit. 2011-01-15 15:23:57 -08:00
Chong Yidong
dab7376027 * configure: Bump min libxml2 version to 2.6.17 (Bug#7603). 2011-01-14 22:21:48 -05:00
Paul Eggert
c35917bae4 Merge from mainline. 2011-01-14 13:12:57 -08:00
Paul Eggert
9f4b8b4732 * make-dist: Distribute test/ files too.
Distribute every file under test/ that is under version control,
using patterns like *.el to capture files that are added later.
Without this change, "configure" would fail, because it would
attempt to build from a Makefile.in that was not distributed.
2011-01-14 10:56:58 -08:00
Paul Eggert
193770eec9 Merge from mainline. 2011-01-13 09:17:33 -08:00
Christian Ohler
d221e7808c Add ERT, a tool for automated testing in Emacs Lisp.
* Makefile.in, configure.in, doc/misc/Makefile.in, doc/misc/makefile.w32-in:
Add ERT.  Make "make check" run tests in test/automated.

* doc/misc/ert.texi, lisp/emacs-lisp/ert.el, lisp/emacs-lisp/ert-x.el:
New files.

* test/automated: New directory.
2011-01-13 03:08:24 +11:00
Paul Eggert
ecbfcc83bf * Makefile.in (GNULIB_MODULES): Change ftoastr to dtoastr.
This avoids building ftoastr and ldtoastr, which aren't needed.  See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00199.html>.
2011-01-11 22:10:37 -08:00
Chong Yidong
70ba1ec80c Distinguish between terminfo and termcap on NetBSD (Bug#7642).
* configure.in [netbsd systems]: Check for tputs definition.

* src/config.in (TERMINFO): New definition.

* src/s/netbsd.h: Use it to choose between terminfo and termcap.
2011-01-11 21:29:23 -05:00
Paul Eggert
803059b950 * .bzrignore: Add .h files that are host-dependent.
Add lib/.deps/, lib/arg-nonnull.h, lib/c++defs.h, lib/getopt.h,
lib/time.h, lib/unistd.h, lib/warn-on-use.h.  These are
host-dependent and are built as part of an ordinary 'make', and
should not be checked in.
2011-01-09 00:30:09 -08:00
Paul Eggert
2582eaa4cc * lib/Makefile.in: Regenerate. 2011-01-08 23:46:17 -08:00
Paul Eggert
9bfeed9359 * lib/COPYING: New file, a copy of COPYING. 2011-01-08 23:43:55 -08:00