1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-04 08:47:11 +00:00
Commit Graph

2241 Commits

Author SHA1 Message Date
Paul Eggert
1a191e5c73 * configure.ac (DEBUGGER_SEES_C_MACROS): New macro.
* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END):
Define to empty if DEBUGGER_SEES_C_MACROS is defined.
This avoids placing unnecessary constants into the Emacs code.
2013-11-14 17:59:57 -08:00
Paul Eggert
2cf00efc1b Simplify, port and tune bool vector implementation.
* configure.ac (BITSIZEOF_SIZE_T, SIZEOF_SIZE_T): Remove.
* src/alloc.c (bool_vector_exact_payload_bytes)
(bool_vector_payload_bytes): Remove.
(bool_vector_fill): Return its argument.
* src/alloc.c (bool_vector_fill):
* src/lread.c (read1):
* src/print.c (print_object):
Simplify by using bool_vector_bytes.
* src/alloc.c (make_uninit_bool_vector):
New function, broken out from Fmake_bool_vector.
(Fmake_bool_vector): Use it.  Use tail call.
(make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
* src/data.c (BITS_PER_ULL): New constant.
(ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
if long long versions don't exist.
(shift_right_ull): New function.
(count_one_bits_word): New function, replacing popcount_bits_word
macro.  Don't assume that bits_word is no wider than long long.
(count_one_bits_word, count_trailing_zero_bits):
Don't assume that bits_word is no wider than long long.
* src/data.c (bool_vector_binop_driver, bool_vector_not):
* src/fns.c (Fcopy_sequence):
* src/lread.c (read1):
Create an uninitialized destination, to avoid needless work.
(internal_equal): Simplify.
(Ffillarray): Prefer tail call.
* src/data.c (bool_vector_binop_driver): Don't assume bit vectors always
contain at least one word.
(bits_word_to_host_endian): Prefer if to #if.  Don't assume
chars are narrower than ints.
* src/data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
* src/fns.c (Fcopy_sequence):
Simplify and tune.
* src/lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
Don't try to port to hosts where bits_word values have holes; the
code wouldn't work there anyway.  Verify this assumption, though.
(bool_vector_bytes): New function.
(make_uninit_bool_vector): New decl.
(bool_vector_fill): Now returns Lisp_Object.
2013-11-13 18:39:28 -08:00
Paul Eggert
946ec22440 * Makefile.in (ACLOCAL_INPUTS): Add configure.ac. 2013-11-13 00:04:57 -08:00
Dani Moncayo
f4f38fad9a Remove nt/msysconfig.sh
* configure.ac [MINGW32]: Source nt/mingw-cfg.site.

* make-dist: Don't distribute nt/msysconfig.sh.

* nt/msysconfig.sh: Remove.

* nt/INSTALL: Update for this.

* nt/mingw-cfg.site: Comment.
2013-11-11 18:50:28 -08:00
Dani Moncayo
632e833fee * Makefile.in (epaths-force-w32): Simplify w32srcdir computation. 2013-11-11 18:40:14 -08:00
Paul Eggert
220a304ac3 Merge from gnulib.
This incorporates:
2013-11-08 extern-inline: port better to OS X 10.9
2013-11-08 fpending: fix regression on DragonFly BSD
* lib/fpending.h, m4/extern-inline.m4, m4/fpending.m4:
Update from gnulib.
2013-11-08 08:24:40 -08:00
Paul Eggert
aea07e2c6e Port to C11 aligned_alloc, and fix some integer overflows.
* configure.ac (GMALLOC_OBJ): Initialize to empty if !system_malloc
and doug_lea_malloc.
(aligned_alloc): Test for existence if !GMALLOC_OBJ and not darwin.
(posix_memalign): Test for existence only if !GMALLOC_OBJ and
not darwin and !aligned_alloc.
* src/alloc.c (USE_ALIGNED_ALLOC): New symbol.
(USE_POSIX_MEMALIGN): Remove.  All uses replaced with USE_ALIGNED_ALLOC,
and use of posix_memalign replaced with aligned_alloc.
(aligned_alloc): New function, defined or declared as needed.
* src/conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
Don't undef; configure.ac now does this.
* src/gmalloc.c (aligned_alloc) [MSDOS]: New decl.
(calloc, aligned_alloc): Check for integer overflow.
(aligned_alloc): Rename from memalign.  All uses changed.
(memalign): New function, an alias for aligned_alloc.
2013-11-06 21:31:04 -08:00
Glenn Morris
c923b188f4 * Makefile.in (epaths-force-w32): Move srcdir tweak here
* configure.ac (abs_srcdir) [MINGW32]: No point setting it here,
config.status computes it.
2013-11-05 16:51:09 -05:00
Eli Zaretskii
80ff092b47 Correct the top-level ChangeLog. 2013-11-05 18:15:24 +02:00
Glenn Morris
da6a8debb2 * make-dist: Don't distribute old, unsupported w32 build method. 2013-11-05 00:13:09 -08:00
Glenn Morris
4dde498bce Remove the autogen/ directory
Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00806.html

* autogen: Remove directory.  Move update_autogen to admin/.
* autogen.sh: Remove reference to copy_autogen.
* GNUmakefile (configure):
* Makefile.in (bootstrap): Do not try to run copy_autogen.
* config.bat: Use msdos/autogen rather than autogen.

* admin/update_autogen: Move here from ../autogen.
(usage): Update.  Remove -l, add -A.
(autogendir): New variable.
(ldefs_flag): Default to set.
(genfiles): Reduce to only ms-dos relevant files.
(main): Make checking autogen sources optional.
Make copying of autogen files optional.

* msdos/autogen/config.in:
* msdos/autogen/Makefile.in: Move here from ../autogen.

* nt/INSTALL: Remove reference to copy_autogen.

* nt/config.nt: Comment.
2013-11-04 23:54:03 -08:00
Paul Eggert
df5b49306e Simplify and port recent bool vector changes.
* configure.ac (BITSIZEOF_SIZE_T, SIZEOF_SIZE_T):
New symbols to configure.
* src/alloc.c (ROUNDUP): Move here from lisp.h, since it's now used
only in this file.  Use a more-efficient implementation if the
second argument is a power of 2.
(ALIGN): Rewrite in terms of ROUNDUP.  Make it a function.
Remove no-longer-necessary compile-time checks.
(bool_vector_exact_payload_bytes): New function.
(bool_vector_payload_bytes): Remove 2nd arg; callers that need
exact payload changed to call the new function.  Do not assume
that the arg or result fits in ptrdiff_t.
(bool_vector_fill): New function.
(Fmake_bool_vector): Use it.  Don't assume bit counts fit
in ptrdiff_t.
(vroundup_ct): Don't assume arg fits in size_t.
* src/category.c (SET_CATEGORY_SET): Remove.  All callers now just
invoke set_category_set.
(set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool.
All callers changed.  Use bool_vector_set.
* src/category.h (XCATEGORY_SET): Remove; no longer needed.
(CATEGORY_MEMBER): Now a function.  Rewrite in terms of
bool_vector_bitref.
* src/data.c (Faref): Use bool_vector_ref.
(Faset): Use bool_vector_set.
(bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT.
(Fbool_vector_not, Fbool_vector_count_matches)
(Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8.
* src/fns.c (concat): Use bool_vector_ref.
(Ffillarray): Use bool_vector_fill.
(mapcar1): Use bool_vector_ref.
(sxhash_bool_vector): Hash words, not bytes.
* src/lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as
a constant, since it's now used in #if.
(bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on
unsigned char on unusual architectures, so that we no longer
assume that the number of bits per bits_word is a power of two or
is a multiple of 8 or of CHAR_BIT.
(Qt): Add forward decl.
(struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned
at least as strictly as bits_word.
(bool_vector_data, bool_vector_uchar_data): New accessors.
All data structure accesses changed to use them.
(bool_vector_words, bool_vector_bitref, bool_vector_ref)
(bool_vector_set): New functions.
(bool_vector_fill): New decl.
(ROUNDUP): Move to alloc.c as described above.
2013-11-04 23:11:24 -08:00
Eli Zaretskii
d0065ff124 Fix bug #15260 with building and installing Emacs in non-ASCII directories.
src/xdisp.c (message3_nolog, message_with_string): Encode the string
 before writing it to the terminal in a non-interactive session.
 src/lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
 sure we concatenate them into a unibyte string.
 src/fileio.c (make_temp_name): Encode PREFIX, and decode the
 resulting temporary name before returning it to the caller.
 (Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
 is a unibyte string, convert NAME to a unibyte string to ensure
 that the result is also a unibyte string.
 src/emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
 create unibyte strings from default paths and directory/file
 names.
 src/coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
 string.
 src/callproc.c (init_callproc): Use build_unibyte_string to make
 sure we create unibyte strings from default paths and
 directory/file names.
 src/buffer.c (init_buffer): Don't store default-directory of
 *scratch* in multibyte form.  The original problem which led to
 that is described in
 http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html,
 but it was solved long ago.

 lisp/startup.el (normal-top-level): Move setting eol-mnemonic-unix,
 eol-mnemonic-mac, eol-mnemonic-dos, and also setup of the locale
 environment and decoding all of the default-directory's to here
 from command-line.
 (command-line): Decode also argv[0].
 lisp/loadup.el: Error out if default-directory is a multibyte string
 when we are dumping.
 lisp/Makefile.in (emacs): Don't set LC_ALL=C.

 leim/Makefile.in (RUN_EMACS): Don't set LC_ALL=C.

 configure.ac: Don't disallow builds in non-ASCII directories.
2013-11-04 19:30:33 +02:00
Paul Eggert
91f2d27289 Port to stricter C99 platforms.
Especially, C99 prohibits nesting a struct X inside struct Y if
struct X has a flexible array member.
Also, merge from gnulib, incorporating:
2013-11-03 intprops: port to Oracle Studio c99
* lib/intprops.h: Update from gnulib.
* src/alloc.c (struct sdata): New type.
(sdata): Implement in terms of struct sdata.
Remove u member; all uses replaced by next_vector, set_next_vector.
(SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
(SDATA_DATA_OFFSET): Now a constant, not a macro.
(struct sblock): Rename first_data member to data, which is now
a flexible array member.  All uses changed.
(next_vector, set_next_vector, large_vector_vec): New functions.
(vector_alignment): New constant.
(roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
(struct large-vector): Now merely a NEXT member, since the old approach
ran afoul of stricter C99.  All uses changed to use
large_vector_vec or large_vector_offset.
(large_vector_offset): New constant.
* src/dispnew.c: Include tparam.h, for tgetent.
Do not include term.h; no longer needed.
* src/gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
* src/lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
(struct Lisp_Vector): Use a flexible array member for contents,
instead of a union with a member that is an array of size 1.
All uses changed.
(ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
fact that the struct no longer contains a union.
(struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
(struct Lisp_Save_Value, struct Lisp_Free):
Use unsigned, not int, for spacers, to avoid c99 warning.
(union specbinding): Use unsigned, not bool, for bitfield, as
bool is not portable to pre-C99 hosts.
2013-11-03 22:09:03 -08:00
Glenn Morris
67fb4e6a86 test/automated: Use relative filename for emacs executable
* Makefile.in (check): Depend on all.

* test/automated/Makefile.in (abs_top_builddir): Remove variable.
(EMACS): Use a relative file name.
(lisp-compile): Remove (assume it's up-to-date).
(compile-main): Do not run lisp-compile.
(check): Use --chdir.
2013-11-02 13:54:08 -07:00
Glenn Morris
cb16270e14 * configure.ac: Use [!...] rather than [^...], for ksh. (Bug#15769) 2013-10-31 17:39:10 -04:00
Glenn Morris
55498a0fe4 * Makefile.in (distclean, bootstrap-clean, maintainer-clean):
Also clean admin/unidata, if present.

* admin/unidata/Makefile.in (bootstrap-clean): New rule.
2013-10-29 23:40:15 -07:00
Glenn Morris
a94fc965f4 * configure.ac: It seems installing in non-ASCII is not, in fact, ok. 2013-10-27 11:57:20 -07:00
Glenn Morris
da504eec70 * configure.ac: It seems _installing_ in non-ASCII is ok, not building. 2013-10-24 19:22:13 -07:00
Glenn Morris
357a508109 Avoid non-portable " ... \"...\" ... " nesting
* configure.ac:
* Makefile.in (install-arch-indep, install-etcdoc, install-info):
* lib-src/Makefile.in ($(DESTDIR)${archlibdir}):
* nt/Makefile.in ($(DESTDIR)${archlibdir}):
Avoid non-portable "`\" nesting.
2013-10-24 19:04:33 -04:00
Glenn Morris
eb9a36619e Attempt at a fix for mingw CPPFLAGS
* configure.ac (CPPFLAGS) [mingw32]: Use abs_top_srcdir.

* Makefile.in (abs_top_srcdir):
* lib-src/Makefile.in (abs_top_srcdir):
* lwlib/Makefile.in (abs_top_srcdir):
* nt/Makefile.in (abs_top_srcdir):
* oldXMenu/Makefile.in (abs_top_srcdir):
* src/Makefile.in (abs_top_srcdir):
New, set by configure.
2013-10-23 19:15:16 -07:00
Glenn Morris
9843415589 * configure.ac (src/.gdbinit): Use ac_abs_top_srcdir. 2013-10-23 19:27:19 -04:00
Glenn Morris
4b56b9d703 * Makefile.in (epaths-force-w32): Use abs_srcdir 2013-10-23 18:33:08 -04:00
Glenn Morris
7b65c8d0b9 * configure.ac: Explicit error for non-ASCII directories
Fixes: debbugs:15260
2013-10-23 16:46:46 -04:00
Glenn Morris
a318e28f0d More Makefile quoting
* Makefile.in (install-arch-dep, install-nt, uninstall, uninstall-nt):
Quote entities that might contain whitespace.
2013-10-23 00:28:30 -07:00
Glenn Morris
48f73cfbf3 Progress towards allowing installation in directories with whitespace
* Makefile.in (COPYDESTS, write_subdir, install-arch-dep)
(install-arch-indep, install-etcdoc, install-info, install-man)
(install-etc, uninstall): Quote entities that might contain whitespace.

* build-aux/update-subdirs: Handle whitespace in argument.
Check cd return value.

* doc/emacs/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/lispintro/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/lispref/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/misc/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* lib-src/Makefile.in ($(DESTDIR)${archlibdir}, need-blessmail, install)
(uninstall): Quote entities that might contain whitespace.

* nt/Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall):
Quote entities that might contain whitespace.
2013-10-23 00:20:57 -07:00
Glenn Morris
b8e3b0a9ec Make building in directories with whitespace possible
Make has trouble with targets containing whitespace, 
http://savannah.gnu.org/bugs/?712, so the general approach is
to use relative paths where possible.  It's generally only Emacs
itself that needs absolute paths, eg in src/epaths.h.

* configure.ac (srcdir): Don't make it absolute - abs_srcdir exists.

* Makefile.in (abs_srcdir): New, set by configure.
(buildlisppath): Use abs_srcdir.
(install-arch-indep, install-etcdoc, install-info, install-man)
(install-etc): Quote entities that might contain whitespace.

* admin/unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el):
Quote entities that might contain whitespace.

* leim/Makefile.in (abs_srcdir): New, set by configure.
(buildlisppath): Use abs_srcdir.
(RUN_EMACS, .el.elc, changed.tit, changed.misc, leim-list.el)
($(srcdir)/ja-dic/ja-dic.el, setwins, distclean, check-declare):
Quote entities that might contain whitespace.

* lib-src/Makefile.in ($(DESTDIR)${archlibdir}):
Quote entities that might contain whitespace.

* lisp/Makefile.in (abs_srcdir, abs_lisp): New, set by configure.
(emacs, compile, compile-always):
Quote entities that might contain whitespace.
(custom-deps, finder-data, autoloads): Use abs_lisp.
($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el)
($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el)
($(CAL_DIR)/hol-loaddefs.el): Manually expand target file name.

* nextstep/Makefile.in (${ns_check_file} ${ns_appdir}):
Quote entities that might contain whitespace.

* nt/Makefile.in ($(DESTDIR)${archlibdir}):
Quote entities that might contain whitespace.

* src/Makefile.in (RUN_TEMACS): Make relative (again).
($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
(bootstrap-emacs$(EXEEXT)):
Quote entities that might contain whitespace.

* test/automated/Makefile.in (abs_top_srcdir, top_builddir):
New, set by configure.
(top_srcdir): Remove.
(abs_test, abs_lispsrc): New.
(lisp): No longer absolute.
(emacs, lisp-compile, compile, compile-always):
Quote entities that might contain whitespace.

Fixes: debbugs:15675
2013-10-22 23:22:54 -07:00
Paul Eggert
758bed52af Merge from gnulib.
This incorporates:
2013-10-14 acl: allow cross-compilation to Gentoo
2013-10-18 extern-inline: make safe for -Wundef usage
2013-09-30 fpending: use pure+const function attrs
* lib/fpending.h, m4/acl.m4, m4/extern-inline.m4: Update from gnulib.
2013-10-22 21:01:46 -07:00
Glenn Morris
9148ee920e * configure.ac [alpha]: Explicit error in non-ELF case.
* doc/emacs/ack.texi (Acknowledgments): Comment out old alpha stuff.

* lisp/emacs-lisp/authors.el (authors-fixed-entries):
Comment out old alpha stuff.

Fixes: debbugs:15601
2013-10-13 16:01:20 -07:00
Paul Eggert
46e5e833d9 Merge from gnulib.
This incorporates:
2013-10-10 strtoumax: port to Solaris 8
2013-10-09 strtoimax, strtoumax: port to HP-UX 11.11
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/inttypes.in.h, lib/strtoimax.c, m4/inttypes.m4, m4/strtoimax.m4:
* m4/strtoumax.m4:
Update from gnulib.
2013-10-12 13:00:38 -07:00
Stefan Monnier
c5fc017811 * configure.ac (LIBGNUTLS): Don't set LIBGNUTLS_* back to the empty
string when gnutls2 is installed but gnutls3 is not.
2013-10-11 14:29:18 -04:00
Ted Zlatanov
e1f9f9e3d8 Support GnuTLS v3 and set up its audit logging properly.
* configure.ac: Define HAVE_GNUTLS3 if GnuTLS v3 is found.

* src/gnutls.c (gnutls_audit_log_function): Add function for GnuTLS
audit logging (only used with GnuTLS 3.x) and enable it.
2013-10-11 09:47:35 -04:00
Barry Fishman
f3606ef766 Handle giflib 5 changes (tiny change)
* configure.ac: Update for giflib 5. 

* src/image.c (GIFLIB_MAJOR): Ensure it's defined.
(DGifOpen, DGifOpenFileName): Handle giflib 5 syntax.  (Bug#15531)
2013-10-09 20:37:44 -04:00
Eli Zaretskii
4ed774157d Support menus on text-mode terminals.
src/xterm.h (xw_popup_dialog): Add prototype.
 src/xmenu.c (Fx_popup_dialog): Function moved to menu.c.
 (xmenu_show): Block input here, instead in Fx_popup_menu.
 (xw_popup_dialog): New function, with X-specific bits of popup
 dialogs.
 src/xdisp.c (deep_copy_glyph_row, display_tty_menu_item): New
 functions.
 src/window.c (Fset_window_configuration): Use run-time tests of the
 frame type instead of compile-time conditionals, when menu-bar
 lines are considered.
 src/w32term.h (w32con_hide_cursor, w32con_show_cursor)
 (w32_popup_dialog): New prototypes.
 src/w32menu.c (Fx_popup_dialog): Function deleted.
 (w32_popup_dialog): New function, with w32 specific bits of popup
 dialogs.  Block input here.
 src/w32inevt.c (w32_console_read_socket): Minor change to add
 debugging TTY events.
 src/w32fns.c (show_hourglass): If returning early because the frame
 is not a GUI frame, unblock input.
 src/w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX)
 (cursorY): New functions.
 src/termhooks.h (cursorX, cursorY): Prototypes of functions on
 WINDOWSNT, macros that call curX and curY elsewhere.
 src/termchar.h (struct tty_display_info) <showing_menu>: New flag.
 src/term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32
 specific function to hide and show cursor on a text-mode terminal.
 (tty_menu_struct, struct tty_menu_state): New structures.
 (tty_menu_create, tty_menu_make_room, tty_menu_search_pane)
 (tty_menu_calc_size, mouse_get_xy, tty_menu_display)
 (have_menus_p, tty_menu_add_pane, tty_menu_add_selection)
 (tty_menu_locate, save_and_enable_current_matrix)
 (restore_desired_matrix, screen_update, read_menu_input)
 (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback)
 (tty_pop_down_menu, tty_menu_last_menubar_item)
 (tty_menu_new_item_coords, tty_menu_show): New functions.
 (syms_of_term): New DEFSYMs for tty-menu-* symbols.
 src/nsterm.h (ns_popup_dialog): Adjust prototype.
 src/nsmenu.m (ns_menu_show): Block and unblock input here, instead
 of in x-popup-menu.
 (ns_popup_dialog): Adapt order of arguments to the other
 *_menu_show implementations.
 (Fx_popup_dialog): Function deleted.
 src/msdos.c (x_set_menu_bar_lines): Delete unused function.
 src/menu.h (tty_menu_show, menu_item_width): provide prototypes.
 src/menu.c (have_boxes): New function.
 (single_keymap_panes): Use it instead of a compile-time
 conditional.
 (single_menu_item): Use run-time tests of the frame type instead
 of compile-time conditionals.
 (encode_menu_string): New function.
 (list_of_items, list_of_panes): Use it instead of ENCODE_STRING
 the macro, since different types of frame need different encoding
 of menu items.
 (digest_single_submenu): Use run-time tests of frame type instead
 of, or in addition to, compile-time conditionals.
 (menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
 (Fx_popup_menu): Detect when the function is called from keyboard
 on a TTY.  Don't barf when invoked on a text-mode frame.  Check
 frame type at run time, instead of compile-time conditionals for
 invoking terminal-specific menu-show functions.  Call
 tty_menu_show on text-mode frames.
 (Fx_popup_dialog): Moved here from xmenu.c.  Test frame types at
 run time to determine which alternative to invoke; support dialogs
 on TTYs.
 src/keyboard.h <Qmouse_movement>: Declare.
 src/keyboard.c <Qmouse_movement>: Now extern.
 <Qecho_keystrokes>: New static variable.
 (read_key_sequence): Accept an additional argument, a flag to
 prevent redisplay during reading of the key sequence.  All callers
 changed.
 (read_menu_command): New function.
 (read_char): When COMMANDFLAG is -2, do not redisplay and do not
 autosave.
 (toolkit_menubar_in_use): New function.
 (make_lispy_event): Use it instead of a compile-time test.
 src/fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on
 window-system being available.
 src/editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call
 to x-popup-dialog on the frame type, they all now support popup
 dialogs.
 src/dispnew.c (save_current_matrix): Save the margin areas.
 (restore_current_matrix): Restore margin areas.
 (update_frame_with_menu): New function.
 src/dispextern.h (display_tty_menu_item, update_frame_with_menu):
 Add prototypes.
 src/alloc.c (make_save_ptr): Now compiled unconditionally.
 
 lisp/tmm.el (tmm-menubar): Adapt doc string to TTY menus
 functionality.
 lisp/tooltip.el (tooltip-mode): Don't error out on TTYs.
 lisp/menu-bar.el (popup-menu, popup-menu-normalize-position): Moved
 here from mouse.el.
 (popup-menu): Support menu-bar navigation on TTYs using C-f/C-b
 and arrow keys.
 (tty-menu-navigation-map): New map for TTY menu navigation.
 lisp/loadup.el ("tooltip"): Load even if x-show-tip is not available.
 lisp/frame.el (display-mouse-p): Report text-mode mouse as available
 on w32.
 (display-popup-menus-p): Report availability if mouse is
 available; don't condition on window-system.
 lisp/faces.el (tty-menu-enabled-face, tty-menu-disabled-face)
 (tty-menu-selected-face): New faces.

 configure.ac (HAVE_MENUS): Define unconditionally.

 doc/emacs/screen.texi (Menu Bar): Adapt to TTY menus.
 doc/emacs/frames.texi (Frames): Mention menu support on text terminals.
 doc/emacs/files.texi (Visiting): Mention the "File" menu-bar menu.
 doc/emacs/display.texi (Standard Faces): Mention TTY faces for menus.
 
 doc/lispref/keymaps.texi (Defining Menus, Mouse Menus, Menu Bar): Modify
 wording to the effect that menus are supported on TTYs.
 doc/lisprefframes.texi (Pop-Up Menus, Dialog Boxes)
 (Display Feature Testing): Update for menu support on TTYs.

  etc/NEWS: Mention the new features.
2013-10-08 20:49:20 +03:00
Paul Eggert
3e45e7023e ChangeLog consistency. 2013-10-07 22:12:29 -07:00
Paul Eggert
595e113b15 Improve support for popcount and counting trailing zeros.
Do this by using the Gnulib modules for this.
This should generate faster code on non-GCC, non-MSC platforms,
and make the code a bit more portable, at least in theory.
* admin/merge-gnulib (GNULIB_MODULES): Add count-one-bits
and count-trailing-zeros.
* lib/count-one-bits.c, lib/count-one-bits.h:
* lib/count-trailing-zeros.c, lib/count-trailing-zeros.h:
* m4/count-one-bits.m4, m4/count-trailing-zeros.m4:
New files, copied from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* nt/gnulib.mk: Merge changes from lib/gnulib.mk.
* src/data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>.
(USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE)
(NEED_GENERIC_POPCOUNT, popcount_size_t_generic)
(popcount_size_t_msc, popcount_size_t_gcc):
Remove; now done by Gnulib.
(popcount_size_t): Now a macro that defers to Gnulib.
(count_trailing_zero_bits): Return int, for consistency with
Gnulib and because Emacs prefers signed to unsigned int.
Don't assume that size_t is either unsigned int or unsigned long
or unsigned long long.
(size_t_to_host_endian): Do not assume that size_t is either
exactly 32 or exactly 64 bits wide.
* src/lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG
etc., so that it's now an enum constant, not a macro.
No need to assume that it's either 32 or 64.

Fixes: debbugs:15550
2013-10-07 14:37:19 -07:00
Paul Eggert
4eed315732 Use hardware support for byteswapping on glibc x86 etc.
On Fedora 19 x86-64, the new bswap_64 needs 1 instruction,
whereas the old swap64 needed 30.
* admin/merge-gnulib (GNULIB_MODULES): Add byteswap.
* lib/byteswap.in.h, m4/byteswap.m4: New files, copied from Gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* src/fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]:
* src/sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]:
Use byteswap.h's macros to swap bytes.
* src/lisp.h (swap16, swap32, swap64): Remove.
All uses replaced by bswap_16, bswap_32, bswap_64.
2013-10-04 00:36:22 -07:00
Paul Eggert
0a858ebfc5 Merge from gnulib.
* src/conf_post.h (__has_builtin, assume): Remove; gnulib now does these.
* src/lisp.h: Include <verify.h>, for 'assume'.

This also incorpoprates:
2013-10-02 verify: new macro 'assume'
2013-09-26 dup2, dup3: work around another cygwin crasher
2013-09-26 getdtablesize: work around cygwin issue
2013-10-03 00:06:52 -07:00
Paul Eggert
959c3d24a7 Merge from gnulib.
This incorporates:
2013-09-24 manywarnings: enable nicer gcc warning messages
2013-09-23 warnings: port --enable-gcc-warnings to Solaris Studio 12.3
2013-09-21 timespec: use the new TIMESPEC_RESOLUTION elsewhere
* configure.ac (WERROR_CFLAGS): Omit -fdiagnostics-show-option
and -funit-at-a-time, since manywarnings does that for us now.
2013-09-24 20:44:34 -07:00
Jan Djärv
8762e52438 Suppress some unhelpful warnings when using clang.
* configure.ac: With clang, check for and use -Wno-switch,
-Wno-tautological-constant-out-of-range-compare and -Wno-pointer-sign.

* conf_post.h(assume): Use __builtin_unreachable for clang.

* src/filelock.c (lock_file_1): Rearrange to remove compiler warning
about excess arguments to snprintf.
2013-09-23 09:12:01 +02:00
Daniel Colascione
a84683fdd5 Tell valgrind about conservative GC regions and suppress spurious
warings.

* alloc.c (USE_VALGRIND): New macro; on by default
when ENABLE_CHECKING.
(mark_maybe_object,mark_maybe_pointer)
[USE_VALGRIND]: Mark conservatively-scanned regions valid for
valgrind purposes.
(valgrind_p) [USE_VALGRIND]: New variable.
(init_alloc) [USE_VALGRIND]: Initialize valgrind_p.
2013-09-22 18:34:52 -08:00
Xue Fuqiao
3054cd0150 * INSTALL: New homepage of libtiff. 2013-09-20 17:19:56 +08:00
Paul Eggert
f5f0132bc9 Work around performance bug on OS X 10.8 and earlier.
Perhaps Apple will fix this bug some day.
See the thread starting with Daniel Colascione's email in:
http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00343.html
* configure.ac (FORTIFY_SOUR): New verbatim section.
2013-09-19 20:41:37 -07:00
Paul Eggert
230fe2a5a1 Merge from gnulib.
This incorporates the following changes:
2013-09-19 stdio: OS X port of putc_unlocked + extern inline
2013-09-19 signal: OS X port of sigaddset etc. + extern inline
2013-09-19 extern-inline: do not always suppress extern inline on OS X
2013-09-17 getgroups: statement without effect
2013-08-28 headers: check that _GL_INLINE_HEADER_BEGIN is defined
2013-09-19 14:40:08 -07:00
Eli Zaretskii
be9bc55efd Fix MinGW builds from inside the MSYS installation tree.
configure.ac <srcdir> [MINGW32]: Make sure the value of 'srcdir'
 is in the full /d/foo/bar form.  See the discussion in
 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00210.html,
 and in particular
 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00252.html
 and its followups, for the details.
2013-09-19 11:43:01 +03:00
Dmitry Antipov
19452b8665 * configure.ac: Do not check for g_type_init because we
require glib >= 2.28 for GTK3, glib >= 2.10 for GTK2,
glib >= 2.26 for GSettings and glib >= 2.7.0 for GConf, so
suitable glib should provide g_type_init unconditionally.
* src/image.c (fn_g_type_init) [WINDOWSNT]: Define and load
only if Glib < 2.36.0.
(fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
* src/xsettings.c (init_gconf, init_gsettings): Do not check
for g_type_init.
2013-09-17 10:33:24 +04:00
Jan Djärv
3fa2054efd Port the font backend from the Mac port.
* configure.ac: Add check for OSX 10.5, required for macfont.o.

* etc/NEWS: Mention the macfont backend.

* src/Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.

* src/font.c (syms_of_font): Call syms_of_macfont.

* src/font.h: Declare syms_of_macfont.

* src/nsfns.m: Include macfont.h.
(Fx_create_frame): Register macfont driver, make a better default font.
(Fns_popup_font_panel): Get font from macfont driver, if used.

* src/nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
(nsfont_open): Set font driver type.
Set font->ascent and font->descent.  Figure out font instead of
ns_tmp_font, and flags instead of ns_tmp_flags.
Fix indentation. Remove call to ns_draw_text_decoration,
moved to nsterm.

* src/nsterm.m: Include macfont.h.
(ns_tmp_flags, ns_tmp_font): Remove.
(ns_compute_glyph_string_overhangs): Check for driver Qns.
(ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
ns_tmp_font.  Call ns_draw_text_decoration here instead of nsfont.m.
(changeFont:): Fix code style.  Check for font driver type when
getiing font.

* src/nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
(f)->descent.
2013-09-15 19:58:46 +02:00
Glenn Morris
48b48f98e2 Convert ChangeLog text to in-file comment 2013-09-09 08:54:03 -07:00
Glenn Morris
8d17ef8d54 Fix treatment of ld's nocombreloc option
* configure.ac (LDFLAGS_NOCOMBRELOC): New variable.
(LDFLAGS): Move nocombreloc option from here...
(LD_SWITCH_SYSTEM_TEMACS): ... to here.
This is an essential option that should not be in LDFLAGS,
because the user may override that at build time; eg
http://bugs.debian.org/684788.  temacs is the only thing
that actually needs this option; this is where it was orginally:
http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-03/msg00170.html
2013-09-09 00:34:15 -07:00
Glenn Morris
335142f9f3 Rename configure's --without-compress-info to --without-compress-install
* configure.ac (--without-compress-install):
Rename from --without-compress-info. 

(GZIP_INFO): Remove.
(GZIP_PROG): Allow --without-compress-install to disable it.
* Makefile.in (GZIP_INFO): Remove all references.

* etc/NEWS: Mention this.

Fixes: debbugs:9789
2013-09-08 16:50:23 -07:00
Glenn Morris
7dc61a66e7 * doc/misc/emacs-gnutls.texi: Tweak direntry.
* info/dir: Tweak emacs-gnutls entry.
2013-09-08 16:31:14 -07:00
Paul Eggert
4b73fc7347 Port --without-x --enable-gcc-warnings to Fedora 19.
* configure.ac (WERROR_CFLAGS): Omit redundant use of
-Wmissing-field-initializers, -Wswitch, -Wtype-limits,
-Wunused-parameter.  If there is no window system, also omit
-Wsuggest-attribute=const and -Wsuggest-attribute=noreturn; this
is needed for Fedora 19.
* src/gfilenotify.c (globals_of_gfilenotify):
Call g_type_init only if using an older glib version that needs it.
2013-09-06 17:20:56 -07:00
Dmitry Antipov
257b3b03cb Make --without-x compatible with --enable-gcc-warnings.
* configure.ac: If both --without-x and --enable-gcc-warnings are
specified, use -Wno-unused-variable, -Wno-unused-but-set-variable
and -Wno-unused-but-set-parameter.
* src/font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
* src/font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
members under HAVE_WINDOW_SYSTEM.
* src/keyboard.c (make_lispy_focus_out): Likewise.
(record_menu_key): Move under HAVE_MENUS.
* src/xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
(syms_of_xdisp): Adjust user.
(window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
(start_hourglass, cancel_hourglass):
* src/xfaces.c (toplevel): Likewise with PT_PER_INCH,
clear_font_table_count, CLEAR_FONT_TABLE_COUNT
and CLEAR_FONT_TABLE_NFONTS.
(set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
Declare only if HAVE_WINDOW_SYSTEM.
(lface_same_font_attributes_p, clear_face_gcs): Define only
if HAVE_WINDOW_SYSTEM.
2013-09-05 10:25:12 +04:00
Paul Eggert
224e313d3b Makefile improvements.
* Makefile.in (lib): Depend on am--refresh, to avoid a race.
(src): Remove duplicate dependency on FRC.
Invoke just one submake, not two.  Avoid the need for 'pwd'.
* lwlib/Makefile.in (all): Put this first.  Don't use double-colon
rules, as they are not portable according to POSIX.  Mark as phony.
* oldXMenu/Makefile.in (all, tags): Don't use double-colon rules, as they
are not portable according to POSIX.  Mark as phony.
* src/Makefile.in (config.status): Don't use double-colon rules, as
they are not portable according to POSIX.  Fix shell typo with `;
I guess this rule has never been tested?
(VCSWITNESS): New macro, to override any environment var.
2013-09-03 23:45:44 -07:00
Jan Djärv
de3d0b572d Fix copying of nextstep/Emacs.app for make -j install
* configure.ac: Add ns_check_file.

* nextstep/Makefile.in (${ns_check_file}): Add so Emacs.app gets properly
updated when doing parallel make install.
2013-09-02 09:01:53 +02:00
Glenn Morris
2c347217ca * configure.ac (--with-sound): Rename ossaudio to bsd-ossaudio,
and voxware to oss.
2013-08-31 13:00:22 -07:00
Ulrich Müller
e0936eed9b * configure.ac: Allow for --with-sound=voxware that will enable
sound but otherwise disable ALSA.  This will use the OSS device,
typically /dev/dsp, for sound output.

Fixes: debbugs:15067
2013-08-31 12:54:17 -07:00
Glenn Morris
7605d081ba Update nt installation instructions to point to supported method
* nt/INSTALL: Rename from INSTALL.MSYS.

* nt/INSTALL.OLD: Rename from INSTALL.

* nt/configure.bat: Update for INSTALL name changes.

* make-dist: Update for nt/INSTALL* changes.
2013-08-31 11:26:59 -07:00
Paul Eggert
50b13cdedb * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
for portability to hosts where /bin/sh has problems.
2013-08-27 23:01:52 -07:00
Stefan Monnier
0acfedd349 Try to reduce redundancy in doc/misc/Makefile.in.
* configure.ac (DOCMISC_W32): New var to replace DOCMISC_*_W32.
* doc/misc/Makefile.in (DOCMISC_W32): New var to replace DOCMISC_*_W32.
(TARGETS): New intermediate variable.
(DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS): Use it.
2013-08-27 21:37:13 -04:00
Paul Eggert
43aac990c3 Simplify EMACS_TIME-related code.
This portability layer is no longer needed, since Emacs has been
using struct timespec as a portability layer for some time.
Merge from gnulib, incorporating:
2013-08-27 timespec: new convenience constants and function
* src/atimer.h, src/buffer.h, src/dispextern.h, src/xgselect.h:
Include <time.h> rather than "systime.h"; that's all that's needed now.
* src/dispnew.c: Include <timespec.h> rather than "systime.h";
that's all that's needed now.
* src/systime.h (EMACS_TIME): Remove.  All uses changed to struct timespec.
(EMACS_TIME_RESOLUTION): Remove.  All uses changed to
TIMESPEC_RESOLUTION.
(LOG10_EMACS_TIME_RESOLUTION): Remove.  All uses changed to
LOG10_TIMESPEC_RESOLUTION.
(EMACS_SECS, emacs_secs_addr): Remove.  All uses changed to tv_sec.
(EMACS_NSECS): Remove.  All uses changed to tv_nsec.
(make_emacs_time): Remove.  All used changed to make_timespec.
(invalid_timespec): Rename from invalid_emacs_time.  All uses changed.
(current_timespec): Rename from current_emacs_time.  All uses changed.
(add_emacs_time): Remove.  All uses changed to timespec_add.
(sub_emacs_time): Remove.  All uses change dot timespec_sub.
(EMACS_TIME_SIGN): Remove.  All uses changed to timespec_sign.
(timespec_valid_p): Rename from EMACS_TIME_VALID_P.  All uses changed.
(EMACS_TIME_FROM_DOUBLE): Remove.  All uses changed to dtotimespec.
(EMACS_TIME_TO_DOUBLE): Remove.  All uses changed to timespectod.
(current_timespec): Rename from current_emacs_time.  All uses changed.
(EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove.  All uses
changed to timespec_cmp.
* src/xgselect.c: Include <timespec.h>, since our .h files don't.
2013-08-27 11:47:55 -07:00
Dmitry Antipov
15091df55b * configure.ac (DOCMISC_DVI_W32, DOCMISC_HTML_W32, DOCMISC_INFO_W32)
(DOCMISC_PDF_W32, DOCMISC_PS_W32): No spaces!
2013-08-27 13:21:46 +04:00
Glenn Morris
a0b5606ec7 Merge from emacs-24; up to 2013-01-03T01:56:56Z!rgm@gnu.org 2013-08-27 01:01:13 -07:00
Glenn Morris
1857cd3f9e Move source for Emacs on MS Windows FAQ here from Emacs webpages repository
* Makefile.in (mostlyclean, clean, distclean, bootstrap-clean)
(maintainer-clean, check-declare): Remove pointless subshells.
Check cd return value.

* configure.ac (DOCMISC_DVI_W32, DOCMISC_HTML_W32, DOCMISC_INFO_W32)
(DOCMISC_PDF_W32, DOCMISC_PS_W32): New output variables.
* Makefile.in (check-info-dir): Ignore efaq-w32.

* admin/admin.el (manual-misc-manuals): Use INFO_COMMON rather than
INFO_TARGETS.

* doc/misc/efaq-w32.texi: Move here from the web-pages repository.

* doc/misc/Makefile.in (DOCMISC_DVI_W32, DOCMISC_HTML_W32, DOCMISC_INFO_W32)
(DOCMISC_PDF_W32, DOCMISC_PS_W32): New configure output variables.
(INFO_COMMON, INFO_INSTALL): New derivations of INFO_TARGETS.
(DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
Add DOCMISC_*_W32 variables.
(echo-info): Use INFO_INSTALL rather than INFO_TARGETS.
(efaq_w32_deps): New variable.
(efaq-w32, $(buildinfodir)/efaq-w32$(INFO_EXT), efaq-w32.dvi)
(efaq-w32.pdf, efaq-w32.html): New rules.
(clean): Remove efaq-w32 products.
2013-08-27 00:57:39 -07:00
Glenn Morris
61ac6b9f82 * Makefile.in (mostlyclean, clean, distclean, bootstrap-clean)
(maintainer-clean, check-declare): Remove pointless subshells.
Check cd return value.
2013-08-26 23:58:08 -07:00
Paul Eggert
12c4970d70 Minor merge from gnulib (mostly just for texinfo.tex). 2013-08-26 15:17:31 -07:00
Glenn Morris
b4f581f004 * configure.ac (emacs_broken_SIGIO): No longer set on gnu-kfreebsd. 2013-08-22 23:44:59 -07:00
Paul Eggert
917c483a29 * configure.ac (EMACS_CONFIG_OPTIONS): Quote systematically.
This improves on the patch already installed, by quoting options
that contain spaces and suchlike systematically, so that
EMACS_CONFIG_OPTIONS is no longer ambiguous when options contain
these characters.

Fixes: debbugs:13274
2013-08-22 10:35:00 -07:00
Paul Eggert
f035e3a91c Port close-on-exec pty creation to FreeBSD 9.1-RELEASE.
* configure.ac (PTY_OPEN): If posix_openpt with O_CLOEXEC fails
and reports EINVAL, try it again without O_CLOEXEC.  This should
port PTY_OPEN to FreeBSD 9, which stupidly rejects O_CLOEXEC.
What were they thinking?

Fixes: debbugs:15129
2013-08-20 23:11:50 -07:00
Paul Eggert
236beba0c2 * Makefile.in (distclean, bootstrap-clean, maintainer-clean):
Fix shell-operator precedence problem in previous change.
2013-08-20 01:30:24 -07:00
Glenn Morris
f67dce44d5 * Makefile.in (distclean, bootstrap-clean, maintainer-clean):
Clean test/automated if present.
2013-08-19 23:36:10 -07:00
Paul Eggert
51632863c2 Merge from gnulib.
This incorporates:
2013-08-15 warnings: minor optimization
2013-08-15 warnings: check -Wfoo rather than -Wno-foo
2013-08-18 22:23:05 -07:00
Ken Brown
0fe73012cd Revert last change to gmalloc.c; update some comments. 2013-08-15 12:37:15 -04:00
Glenn Morris
4fa4485689 Cleanup for etc/refcards/Makefile and related items
* .bzrignore: Unignore etc/refcards/Makefile.

* make-dist: Do not distribute etc/refcards TeX intermediate files.

* Makefile.in (install-arch-indep):
Do not install etc/refcards TeX intermediate files.

* etc/refcards/Makefile: Rewrite to use portable Makefile syntax.
Add language-specific targets.
(distclean, extraclean): New rules.

*  etc/refcards/README: Add copyright and license.  Add Makefile details.
Mention http and FSF store versions.
2013-08-14 23:31:14 -07:00
Ulrich Mueller
af79c3cb0b * configure.ac (EMACS_CONFIGURATION): Escape backslashes.
Fixes: debbugs:15091
2013-08-13 22:15:01 -04:00
Eli Zaretskii
aa942e2bf4 Fix zlib support on MS-Windows.
configure.ac (HAVE_ZLIB): Don't use -lz on MinGW.

 src/decompress.c <zlib_initialized> [WINDOWSNT]: New static variable.
 (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if
 not yet initialized.
2013-08-12 22:48:04 +03:00
Paul Eggert
1d238bc75a Minor zlib configuration tweaks.
* configure.ac (HAVE_ZLIB): Don't assume zlib is linked if PNG is.
* src/decompress.c (fn_inflateInit2) [!WINDOWSNT]:
Don't assume presence of fn_inflateInit2_ zlib internal function.
2013-08-12 09:05:58 -07:00
Eli Zaretskii
594a430782 Fix build with zlib on MS-Windows.
configure.ac (LIBZ): Comment on w32 peculiarities regarding LIBZ.

 src/decompress.c [WINDOWSNT]: Include windows.h and w32.h.
 (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros.  Use them to
 define static variables that are pointers to zlib functions to be
 dynamically loaded.
 (init_zlib_functions) [WINDOWSNT]: New function.
 (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2):
 New macros.
 (Fdecompress_gzipped_region, unwind_decompress): Use the fn_*
 macros instead of invoking the zlib functions directly.
 (syms_of_decompress): DEFSYM Qzlib_dll.  Staticpro
 Szlib_available_p.

 lisp/term/w32-win.el (dynamic-library-alist): Add DLLs for zlib.
2013-08-12 16:15:01 +03:00
Paul Eggert
eaca0446e7 Merge from gnulib.
This incorporates:
2013-08-11 fpending: port to recent Cygwin change to stdio_ext.h
2013-08-10 sys_time: port to OpenBSD
2013-08-11 17:52:17 -07:00
Glenn Morris
8496d8d706 Add build, install, uninstall rules for all dvi, html, pdf, ps manuals
* configure.ac (etcdocdir): Rename from docdir, to avoid confusion
with configure's standard --docdir argument.  All uses updated.

* Makefile.in (etcdocdir): Rename from docdir.  All uses updated.
(install-etcdoc): Rename from install-doc.  All uses updated.
(uninstall): Run uninstall-doc.
(PSS): Add misc-ps.
(INSTALL_DVI, INSTALL_HTML, INSTALL_PDF, INSTALL_PS)
(INSTALL_DOC, UNINSTALL_DVI, UNINSTALL_HTML, UNINSTALL_PDF)
(UNINSTALL_PS, UNINSTALL_DOC): New variables.
($(INSTALL_DOC), install-doc, install-dvi, install-html, install-pdf)
(install-ps, $(UNINSTALL_DOC), uninstall-doc, uninstall-dvi)
(uninstall-html, uninstall-pdf, uninstall-ps): New .PHONY rules.

* doc/emacs/Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
(docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
(INSTALL_DATA): New, set by configure.
(HTML_OPTS, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
New variables.
(.SUFFIXES): Add .ps and .dvi.
(.dvi.ps): New suffix rule.
(dvi, html, pdf, ps): Use *_TARGETS variables.
(emacs.ps, emacs-xtra.ps): Remove explicit rules.
(emacs.html): Use HTML_OPTS.
(clean): Use DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS.
(.PHONY): install-dvi, install-html, install-pdf, install-ps
,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
uninstall-ps, and uninstall-doc.
(install-dvi, install-html, install-pdf, install-ps, install-doc)
(uninstall-dvi, uninstall-html, uninstall-ps, uninstall-pdf)
(uninstall-doc): New rules.

* doc/lispintro/Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
(docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
(INSTALL_DATA): New, set by configure.
(HTML_OPTS, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
New variables.
(.SUFFIXES): Add .ps and .dvi.
(.dvi.ps): New suffix rule.
(dvi, html, pdf, ps): Use *_TARGETS variables.
(emacs-lisp-intro.ps): Remove explicit rule.
(emacs-lisp-intro.html): Use HTML_OPTS.
(clean): Use DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS.
(.PHONY): install-dvi, install-html, install-pdf, install-ps
,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
uninstall-ps, and uninstall-doc.
(install-dvi, install-html, install-pdf, install-ps, install-doc)
(uninstall-dvi, uninstall-html, uninstall-ps, uninstall-pdf)
(uninstall-doc): New rules.

* doc/lispref/Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
(docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
(INSTALL_DATA): New, set by configure.
(HTML_OPTS, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
New variables.
(.SUFFIXES): Add .ps and .dvi.
(.dvi.ps): New suffix rule.
(dvi, html, pdf, ps): Use *_TARGETS variables.
(elisp.html): Use HTML_OPTS.
(elisp.ps): Remove explicit rule.
(.PHONY): install-dvi, install-html, install-pdf, install-ps
,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
uninstall-ps, and uninstall-doc.
(install-dvi, install-html, install-pdf, install-ps, install-doc)
(uninstall-dvi, uninstall-html, uninstall-ps, uninstall-pdf)
(uninstall-doc): New rules.
(clean): Use DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS.

* doc/misc/Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
(docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
(INSTALL_DATA): New, set by configure.
(HTML_OPTS, HTML_TARGETS, PS_TARGETS, DVIPS): New variables.
(.PHONY): Add html, ps, install-dvi, install-html, install-pdf,
install-ps ,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
uninstall-ps, and uninstall-doc.
(.SUFFIXES): Add .ps and .dvi.
(.dvi.ps): New suffix rule.
(html, ps, ada-mode.html, auth.html, autotype.html, bovine.html)
(calc.html, cc-mode.html, cl.html, dbus.html, dired-x.html)
(ebrowse.html, ede.html, ediff.html, edt.html, eieio.html)
(emacs-gnutls.html, emacs-mime.html, epa.html, erc.html)
(ert.html, eshell.html, eudc.html, faq.html, flymake.html)
(forms.html, gnus.html, htmlfontify.html, idlwave.html)
(ido.html, mairix-el.html, message.html, mh-e.html)
(newsticker.html, nxml-mode.html, org.html, pgg.html)
(rcirc.html, reftex.html, remember.html, sasl.html, sc.html)
(semantic.html, sieve.html, smtpmail.html, speedbar.html)
(srecode.html, todo-mode.html, tramp.html, url.html, vip.html)
(viper.html, widget.html, wisent.html, woman.html, install-dvi)
(install-html, install-pdf, install-ps, install-doc, uninstall-dvi)
(uninstall-html, uninstall-ps, uninstall-pdf, uninstall-doc):
New rules.
(clean): Remove HTML_TARGETS and PS_TARGETS.
2013-08-11 17:04:15 -07:00
Paul Eggert
8d28d0ac2a Add --with-zlib to 'configure'.
* configure.ac: Add --with-zlib option to 'configure', so that Emacs
can be built without zlib.  Don't assume that -lz is needed on
non-PNG hosts.  Mention zlib configuration status in 'configure' output.
2013-08-11 15:58:47 -07:00
Lars Magne Ingebrigtsen
313546eb79 Add zlib support via the `decompress-gzipped-region' function
This adds a new file, src/decompress.c, as well as tests for the
presence of -lz.
2013-08-11 21:43:36 +02:00
Eli Zaretskii
d4166523bc Provide a Windows manifest for update-game-score.exe.
lib-src/update-game-score.exe.manifest: New file.
 lib-src/Makefile.in (UPDATE_MANIFEST): New variable.
 (SCRIPTS): Add $(UPDATE_MANIFEST).

 configure.ac: Define and substitute UPDATE_MANIFEST.
2013-08-10 10:43:41 +03:00
Stephen Berman
016d3f7ddc Add Todo mode user manual.
* doc/misc/Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add todo-mode.
(todo-mode, $(buildinfodir)/todo-mode$(INFO_EXT)):
(todo-mode.dvi, todo-mode.pdf): New rules.

* doc/misc/todo-mode.texi: New file.

* info/dir: Add todo-mode.
2013-08-04 23:27:49 +02:00
Paul Eggert
e0fdb69430 Fix some minor races in hosts lacking mkostemp.
Gnulib's emulation of mkostemp doesn't have races that Emacs's does.
* configure.ac (mkostemp): Remove check for this function;
gnulib does the check now.
(mkstemp): Remove check for this no-longer-used function.
* lib/mkostemp.c, lib/secure_getenv.c, lib/tempname.c, lib/tempname.h:
* m4/mkostemp.m4, m4/secure_getenv.m4, m4/tempname.m4:
New files, copied from Gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* admin/merge-gnulib (GNULIB_MODULES): Add mkostemp.
* lib-src/movemail.c (main):
* lib-src/update-game-score.c (write_scores):
Use mkostemp (which now works on all platforms, due to changes
in the portability layer) rather than mktemp (which has a race)
or mkstemp (which we no longer bother with).
* src/callproc.c (create_temp_file):
* src/filelock.c (create_lock_file):
Assume mkostemp, since it's now provided by Gnulib.

Fixes: debbugs:15015
2013-08-04 09:56:56 -07:00
Michael Albinus
7bddb12029 * INSTALL (DETAILED BUILDING AND INSTALLATION): Add
--without-file-notification to --without-all.
2013-07-29 13:35:16 +02:00
Xue Fuqiao
dfc7be3975 * INSTALL: Fix description. 2013-07-29 09:32:01 +08:00
Glenn Morris
885e792c90 * configure.ac: Extend the --with-sound option
to allow specification of OSS or ALSA (see bug#14812#64).
2013-07-26 21:18:21 -04:00
Juanma Barranquero
a04689de43 Fix typos in ChangeLogs. 2013-07-26 19:02:22 +02:00
Glenn Morris
57cff71206 Add Makefile rules for ido.texi
* doc/misc/Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add ido.
(ido, $(buildinfodir)/ido$(INFO_EXT), ido.dvi, ido.pdf): New rules.

* info/dir: Add ido.
2013-07-25 08:46:00 -07:00
Glenn Morris
ff62aabc62 * make-dist: Add a --tests option, to include test/ (backport from trunk) 2013-07-25 00:03:33 -07:00
Glenn Morris
ef75383cd2 * make-dist: Add a --tests option, to include test/. 2013-07-24 23:57:25 -07:00
Glenn Morris
1813e115ce * configure.ac: Use self-descriptive tags for AC_CONFIG_COMMANDS. 2013-07-23 21:03:56 -04:00
Glenn Morris
60967f56e7 No need for configure to create etc/ and lisp/ any more
* configure.ac (etc, lisp): No need to create specially.
Configure already creates lisp when generating lisp/Makefile;
src/Makefile now creates etc when needed.

* src/Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
2013-07-23 19:00:43 -04:00
Paul Eggert
e3ebe15a74 Fix ChangeLog typo. 2013-07-23 10:06:46 +01:00
Paul Eggert
a29c3e6db0 Port to GNU/Linux systems with tinfo but not ncurses.
* configure.ac (USE_NCURSES): New symbol.
* src/dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
to decide whether ncurses is being used.  Without this change,
GCC complains about tgetent not being declared, on a system
that has tinfo installed but ncurses not installed.
2013-07-23 09:08:57 +01:00
Paul Eggert
6496aec9e9 Fix array bounds violation when pty allocation fails.
* configure.ac (PTY_TTY_NAME_SPRINTF): Use PTY_NAME_SIZE,
not sizeof pty_name, since pty_name is now a pointer to the array.
* src/process.c (PTY_NAME_SIZE): New constant.
(pty_name): Remove static variable; it's now auto.
(allocate_pty): Define even if !HAVE_PTYS; that's simpler.
Take pty_name as an arg rather than using a static variable.
All callers changed.
(create_process): Recover pty_flag from process, not from volatile local.
(create_pty): Stay inside array even when pty allocation fails.
(Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
2013-07-20 08:33:00 -07:00
Paul Eggert
c04bbd85c9 * configure.ac: Simplify --with-file-notification handling. 2013-07-12 17:01:43 -07:00
Glenn Morris
671d4bfc55 * configure.ac: If with-file-notification=yes, if gfile not found,
go on to try inotify (not on MS Windows or Nextstep).

* etc/NEWS: Copyedits.
2013-07-12 13:36:42 -04:00
Paul Eggert
bacba3c265 Fix races with threads and file descriptors.
* configure.ac (PTY_TTY_NAME_SPRINTF): Use emacs_close, not close.
* src/callproc.c (Fcall_process_region):
* src/dired.c (open_directory):
* src/emacs.c (main, Fdaemon_initialized):
* src/image.c (x_find_image_file):
* src/inotify.c (Finotify_rm_watch):
* src/lread.c (Flocate_file_internal):
* src/process.c (Fnetwork_interface_list, Fnetwork_interface_info):
* src/term.c (term_mouse_moveto, init_tty):
* src/termcap.c (tgetent):
* src/unexaix.c, src/unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
* src/unexaix.c, src/unexcoff.c, src/unexcw.c, src/unexelf.c (unexec):
* src/unexhp9k800.c, src/unexmacosx.c (unexec):
* src/callproc.c (Fcall_process_region):
Use emacs_close, not close.
* src/sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
New macro and function, which emulates the POSIX_CLOSE_RESTART macro
and posix_close function on current platforms (which all lack them).
(emacs_close): Use it.  This should fix the races on GNU/Linux and
on AIX and on future platforms that support POSIX_CLOSE_RESTART,
and it should avoid closing random victim file descriptors on
other platforms.
2013-07-11 19:03:47 -07:00
Glenn Morris
daca02043b ChangeLog fix (no need to merge to trunk) 2013-07-11 13:19:31 -04:00
Glenn Morris
6e0e82a034 ChangeLog fixes 2013-07-11 13:18:48 -04:00
Paul Eggert
c6e7fc0ea7 * Makefile.in (removenullpaths): Remove adjacent null paths.
Fixes: debbugs:14835
2013-07-09 23:41:37 -07:00
Peter Rosin
2aae948de5 Avoid nexted functions in AC_LANG_PROGRAM test for Windows headers.
configure.ac (HAVE_W32): Avoid nested functions (the second
 argument of AC_LANG_PROGRAM is already expanded inside a
 function).

Fixes: debbugs:14830
2013-07-09 21:06:25 +03:00
Paul Eggert
7b154deff5 Port recent close-on-exec changes to Cygwin.
* lib/binary-io.c, lib/binary-io.h: New files.
Merge from gnulib, incorporating:
2013-07-09 accept4, dup3, pipe2: port to Cygwin
* lib/pipe2.c: Update from gnulib, as part of this merge.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.

Fixes: debbugs:14821
2013-07-09 10:16:21 -07:00
Paul Eggert
4ebbdd6712 Handle errno and exit status a bit more carefully.
* lib/ignore-value.h: Remove this gnulib-imported file.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* admin/merge-gnulib (GNULIB_MODULES): Remove ignore-value.
* src/callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
number into an exit status.  Instead, use EXIT_CANCELED.
(child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
* src/callproc.c (relocate_fd):
* src/emacs.c (close_output_streams, main):
* src/process.c (create_process):
* src/sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
Use emacs_perror for simplicity.
* src/callproc.c (relocate_fd, main):
* src/sysdep.c (sys_subshell):
Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
(shut_down_emacs): Use emacs_write, not write.
* src/emacs.c, src/sysdep.c: Don't include <ignore-value.h>.
* src/fileio.c (Fcopy_file, e_write):
* src/nsterm.m (ns_select):
* src/process.c (send_process):
* src/sound.c (vox_write):
Use emacs_write_sig, not emacs_write.
* src/lisp.h (emacs_write_sig, emacs_perror): New decls.
* src/process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
New constants.
* src/sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
of write.
(emacs_full_write): New function.
(emacs_write): Rewrite to use it.
(emacswrite_sig, emacs_perror): New functions.
* src/xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
2013-07-09 00:04:48 -07:00
Jan Djärv
e4b1e5afb4 configure.ac (HAVE_IMAGEMAGICK): Check on NS also.
image.c (imagemagick_load_image): Do not use MagickExportImagePixels
on NS even if it is present.  Pixmap on NS is a void*.

Fixes: debbugs:14798
2013-07-08 15:26:13 +02:00
Paul Eggert
2a74a90a03 Try to fix FreeBSD 9.1 porting problem.
This incorporates the following merge from gnulib:
2013-07-07 stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11

Fixes: debbugs:14812
2013-07-07 23:15:38 -07:00
Paul Eggert
6602769357 Remove stray empty line. 2013-07-07 20:20:35 -07:00
Paul Eggert
9caab067d6 Port to Ubuntu 10.
Problem reported by T.V. Raman.
* configure.ac (accept4): New function to check for.
* src/process.c (close_on_exec, accept4, process_socket):
Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.

Fixes: debbugs:14803
2013-07-07 16:22:43 -07:00
Paul Eggert
067428c171 Make file descriptors close-on-exec when possible.
This simplifies Emacs a bit, since it no longer needs to worry
about closing file descriptors by hand in some cases.
It also fixes some unlikely races.  Not all such races, as
libraries often open files internally without setting
close-on-exec, but it's an improvement.
* admin/merge-gnulib (GNULIB_MODULES): Add fcntl, pipe2.
(GNULIB_TOOL_FLAGS): Avoid binary-io, close.  Do not avoid fcntl.
* configure.ac (mkostemp): New function to check for.
(PTY_OPEN): Pass O_CLOEXEC to posix_openpt.
* lib/fcntl.c, lib/getdtablesize.c, lib/pipe2.c, m4/fcntl.m4:
* m4/getdtablesize.m4, m4/pipe2.m4: New files, taken from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* nt/gnulib.mk: Remove empty gl_GNULIB_ENABLED_verify section;
otherwise, gnulib-tool complains given close-on-exec changes.
* nt/inc/ms-w32.h (pipe): Remove.
* nt/mingw-cfg.site (ac_cv_func_fcntl, gl_cv_func_fcntl_f_dupfd_cloexec)
(gl_cv_func_fcntl_f_dupfd_works, ac_cv_func_pipe2): New vars.
* src/alloc.c (valid_pointer_p) [!WINDOWSNT]:
* src/callproc.c (Fcall_process) [!MSDOS]:
* src/emacs.c (main) [!DOS_NT]:
* src/nsterm.m (ns_term_init):
* src/process.c (create_process):
Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
* src/emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
* src/filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
Prefer mkostemp with O_CLOEXEC to mkstemp.
* src/callproc.c (relocate_fd) [!WINDOWSNT]:
* src/emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
now using pipe2.
* src/filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
Make the resulting file descriptor close-on-exec.
* src/lisp.h, src/lread.c, src/process.c (close_load_descs, close_process_descs):
* src/lread.c (load_descriptor_list, load_descriptor_unwind):
Remove; no longer needed.  All uses removed.
* src/process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
(close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
New functions.
(socket) [!SOCK_CLOEXEC]: Supply a substitute.
(Fmake_network_process, Fnetwork_interface_list):
(Fnetwork_interface_info, server_accept_connection):
Make newly-created socket close-on-exec.
* src/sysdep.c (emacs_open, emacs_fopen):
Make new-created descriptor close-on-exec.
* src/w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
* src/w32.c, src/w32.h (pipe2): Rename from 'pipe', with new flags arg.

Fixes: debbugs:14803
2013-07-07 11:00:14 -07:00
Glenn Morris
1399490e2b Merge from emacs-24; up to 2012-12-29T12:57:49Z!fgallina@gnu.org 2013-07-02 20:20:04 -07:00
Paul Eggert
57f8c49045 Remove some unused macros from 'configure'.
* configure.ac (HAVE_SOUNDCARD_H, HAVE_LINUX_VERSION_H, HAVE_SPEED_T)
(HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY)
(HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION, HAVE_UTIMES)
(HAVE_LIBHESIOD, HAVE_LIBRESOLV, HAVE_LIBCOM_ERR, HAVE_LIBCRYPTO)
(HAVE_LIBK5CRYPTO, HAVE_LIBKRB5, HAVE_LIBDES425, HAVE_LIBDES)
(HAVE_LIBKRB4, HAVE_LIBKRB, HAVE_DES_H, HAVE_KERBEROSIV_DES_H)
(HAVE_DEV_PTMX, DEVICE_SEP, USG5):
Remove these macros, as they are not used.
(sys_siglist): Remove macro; src/sysdep.c now does this.
* src/sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
Define to __sys_siglist.
2013-07-02 09:56:29 -07:00
Christoph Egger
0946b7cade * configure.ac (emacs_broken_SIGIO): Set on gnu-kfreebsd (tiny change)
http://bugs.debian.org/712974
2013-07-02 09:11:15 -07:00
Paul Eggert
5583dcb6c8 * configure.ac (GTK_COMPILES): Check API a bit more carefully.
Also check that it links.  Say whether it compiled and linked.
2013-07-01 19:17:12 -07:00
Paul Eggert
37afa042f9 Fix ChangeLog dates. 2013-07-01 17:35:28 -07:00
Paul Eggert
aaea749595 Merge from gnulib.
This incorporates:
2013-06-23 ignore-value: port to gcc -pedantic
2013-06-21 extern-inline: port to gcc -std=c89
2013-07-01 16:43:19 -07:00
Paul Eggert
8f5f35ccca Do not use GTK 3 if it exists but cannot be compiled.
* configure.ac: Leave GTK_OBJ and term_header alone if GTK 3
exists but cannot be compiled.
* src/xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
* src/xterm.c (x_error_handler) [!USE_GTK]:
Do not use GTK 3.
2013-06-30 08:24:14 -07:00
Juanma Barranquero
ae7bfbf5a4 Do not create locallisppath directories.
* Makefile.in (install-arch-indep): Do not create directories passed
with --enable-locallisppath.

* etc/NEWS: Mention policy change with respect to locallisppath dirs.
2013-06-27 03:40:46 +02:00
Glenn Morris
f99f7826a0 Merge from emacs-24; up to 2012-12-29T06:14:00Z!cyd@gnu.org 2013-06-23 23:58:52 -07:00
Juanma Barranquero
c9509ef465 .bzrignore: Add GNU idutils ID database file. 2013-06-22 04:41:14 +02:00
Glenn Morris
ab6a27d879 * configure.ac: Include X11/X.h when testing for Xft.h.
Fixes: debbugs:14684
2013-06-21 20:28:07 -04:00
YAMAMOTO Mitsuharu
6b4914d244 configure.ac (HAVE_LIBXML2): Try built-in libxml2 on OS X 10.8 as a fallback. 2013-06-21 10:03:23 +09:00
Stefan Monnier
aff6371e32 * lisp/emacs-lisp/cl-loaddefs.el: Don't version-control any more.
* lisp/emacs-lisp/cl-lib.el: Load cl-macs when cl-loaddefs is not
yet available.
* lisp/Makefile.in (AUTOGEN_VCS): Move cl-loaddefs.el...
(AUTOGENEL): ... here.
* lisp/emacs-lisp/cl-macs.el (cl--sublis): New function.
(cl--defsubst-expand): Use it.
* .bzrignore: Don't unignore cl-loaddefs.el.
2013-06-20 16:01:51 -04:00
Paul Eggert
89561f72e5 Add log2 support and make log10 obsolete for consistency.
* configure.ac (log2): Check for this function.
* doc/lispref/numbers.texi (Math Functions): Remove obsolete function log10.
* lisp/subr.el (log10): Move here from C code, and declare as obsolete.
All uses of (log10 X) replaced with (log X 10).
* src/floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
base is 2; this is more accurate.
(Flog10): Move to Lisp (marked obsolete there).
2013-06-20 07:15:42 -07:00
Juanma Barranquero
4f40506961 Fix typos in ChangeLogs. 2013-06-19 22:10:57 +02:00
Juanma Barranquero
53d829de5f .bzrignore: Add GNU GLOBAL files. 2013-06-19 16:27:21 +02:00
Paul Eggert
84575e67fc Use functions, not macros, for XINT etc.
In lisp.h, prefer functions to function-like macros, and
constants to object-like macros, when either will do.  This:
 . simplifies use, as there's no more need to worry about
   arguments' side effects being evaluated multiple times.
 . makes the code easier to debug on some platforms.
However, when using gcc -O0, keep using function-like macros
for a few critical operations, for performance reasons.
This sort of thing isn't needed with gcc -Og, but -Og
is a GCC 4.8 feature and isn't widely-enough available yet.
Also, move functions from lisp.h to individual modules when possible.
From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
* alloc.c (XFLOAT_INIT, set_symbol_name):
* buffer.c (CHECK_OVERLAY):
* chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
(set_char_table_parent):
* coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
* data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
(XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
(blv_value, set_blv_value, set_blv_where, set_blv_defcell)
(set_blv_valcell):
* emacs.c (setlocale) [!HAVE_SETLOCALE]:
* eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
(specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
(backtrace_args, backtrace_debug_on_exit):
* floatfns.c (CHECK_FLOAT):
* fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
(set_hash_key_and_value, set_hash_next, set_hash_next_slot)
(set_hash_hash, set_hash_hash_slot, set_hash_index)
(set_hash_index_slot):
* keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
* marker.c (CHECK_MARKER):
* textprop.c (CHECK_STRING_OR_BUFFER):
* window.c (CHECK_WINDOW_CONFIGURATION):
Move here from lisp.h, and make these functions static rather than
extern inline.
* buffer.c (Qoverlayp):
* data.c (Qsubrp):
* fns.c (Qhash_table_p):
* window.c (Qwindow_configuration_p):
Now static.
* lisp.h: Remove the abovementioned defns and decls.

* configure.ac (WARN_CFLAGS): Remove -Wbad-function-cast,
as it generates bogus warnings about reasonable casts of calls.
* alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
Remove enum lsb_bits; no longer needed.
(allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
* buffer.c (Qoverlap):
* data.c (Qsubrp):
* fns.c (Qhash_table_p):
Now extern, so lisp.h can use these symbols.
* dispextern.h: Include character.h, for MAX_CHAR etc.
(GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
(SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
(SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
(GLYPH_CODE_P): Move here from lisp.h.
(GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
(GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
(GLYPH_MODE_LINE_FACE): Now enums, not macros.
* eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
XUNTAG now returns void *.
* lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
(lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
(lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
(lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
(lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
(lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
(lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
(lisp_h_XPNTR, lisp_h_XSYMBOL):
New macros, renamed from their sans-lisp_h_ counterparts.
(XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
(CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
(MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
(VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
If compiling via GCC without optimization, define these as macros
in addition to inline functions.
To disable this, compile with -DINLINING=0.
(LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
(check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
(make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
(INTMASK, VALMASK): Now macros, since static values cannot be
accessed from extern inline functions.
(VALMASK): Also a constant, for benefit of old GDB.
(LISP_INT_TAG_P): Remove; no longer needed as the only caller
is INTEGERP, which can fold it in.
(XLI, XIL, XHASH, XTYPE,XINT, XFASTINT, XUINT)
(make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
(XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
(XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
(CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
(CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
(SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
(ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
(CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
(SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
(SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
(SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
(XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
(HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
(XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
(XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
(XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
(RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
(INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
(MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
(BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
(PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
(TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
(SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
(CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
(CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
(CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
(CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
(CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
(CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
(CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
(CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
(CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
Now functions.
(check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
(LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
(VALMASK): Define in one place rather than in two, merging the
USE_LSB_TAG parts; this is simpler.
(aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
(max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
Move up, to avoid use before definition.
Also include "globals.h" earlier, for the same reason.
(make_natnum): New function.
(XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
(union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
(CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
(KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
(PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
(VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
(char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
(Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
(Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
(Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
(initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
(Qwindow_configuration_p, Qimage): New forward declarations.
(XSETFASTINT): Simplify by rewriting in terms of make_natnum.
(STRING_COPYIN): Remove; unused.
(XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
(xcar_addr, xcdr_addr): New functions.  All uses changed.
(IEEE_FLOATING_POINT): Now a constant, not a macro.
(GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
(SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
(SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
(GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
(TYPE_RANGED_INTEGERP): Simplify.
(Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
(setlocale, fixup_locale, synchronize_system_messages_locale)
(synchronize_system_time_locale) [!HAVE_SETLOCALE]:
Now empty functions, not macros.
(functionp): Return bool, not int.
* window.c (Qwindow_configuration_p): Now extern,
so window.h can use it.
* window.h (Qwindowp): Move decl back to lisp.h.
2013-06-16 23:03:19 -07:00
Paul Eggert
2a540847b6 * configure.ac: Report ACL usage at the end.
Fixes: debbugs:14612
2013-06-15 22:33:12 -07:00
Paul Eggert
b0e2283134 --without-all should imply --with-file-notification=no.
* configure.ac (with_file_notification): Default to $with_features.

Fixes: debbugs:14569
2013-06-11 11:05:05 -07:00
Juanma Barranquero
e7b41c4c9a Fix ChangeLog typos and whitespace. 2013-06-10 16:58:52 +02:00
Paul Eggert
bf77e2305f Merge from gnulib.
This incorporates:
2013-06-02 sig2str: port to C++
2013-05-29 c-ctype, regex, verify: port to gcc -std=c90 -pedantic
2013-06-09 08:59:30 -07:00
Jan Djärv
b33f93eea9 Fix compilation issues for GNUStep and GLIB conflicts.
* configure.ac (HAVE_GLIB): Only set XGSELOBJ if HAVE_NS = no.
(with_file_notification): Don't set to gfile if with_ns = yes.

* src/process.c (wait_reading_process_output): Check for NS before GLIB.
GLIB may be linked in due to rsvg, but ns_select must be called.

* src/xgselect.c (xg_select): Remove call to window_system_available
and g_main_context_pending at the top, so Gdk events (i.e. file
notify) are processed when Emacs is started with -nw.

* src/xgselect.c: Remove unneeded include xterm.h
2013-06-08 20:13:24 +02:00
Eli Zaretskii
d6f008198f Fix ChangeLog entry of last commit. 2013-06-07 11:10:44 +03:00
Richard Copley
6c0a9ed1b1 Fix bug #14513 with --enable-locallisppath not working on MS-Windows.
Makefile.in (msys_to_w32): Modify to support d:\foo file names.
 (msys_lisppath_to_w32, msys_prefix_subst, msys_sed_sh_escape): New
 variables.
 (epaths-force-w32): Use them.

 epaths.nt (PATH_SITELOADSEARCH): Fix commentary.

 epaths.in: Fix commentary to PATH_SITELOADSEARCH.
2013-06-07 11:08:29 +03:00
Michael Albinus
b9110c6b2f * configure.ac (HAVE_GFILENOTIFY): Check for gio >= 2.24. 2013-06-03 21:38:06 +02:00
Eli Zaretskii
7f203aa1fd * configure.ac (HAVE_GFILENOTIFY): Do not change $LIBS.
(GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): Substitute.

* nt/config.nt: Add HAVE_GFILENOTIFY, HAVE_W32NOTIFY and USE_FILE_NOTIFY.

* src/Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
(ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
(LIBES): Add $(GFILENOTIFY_LIBS).

* src/w32inevt.c (handle_file_notifications): Add dummy implementation
for !HAVE_W32NOTIFY.

* src/w32term.c: Wrap code with HAVE_W32NOTIFY.
2013-06-03 21:06:09 +02:00
Jan Djärv
55a87246ba Add HAVE_GLIB check instead of checking individual libraries that use GLib.
* configure.ac (HAVE_GLIB): Add GLib check.  Set XGSELOBJ if GLib is
used.  Remove xgselect.o from XOBJ.

* src/Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.

* src/process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.

* src/xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
2013-06-03 20:47:35 +02:00
Michael Albinus
c9628c79bb * configure.ac (file-notification): New option, replaces inotify option.
(HAVE_W32): Remove w32notify.o.
(with_file_notification): Add checks for glib and w32. Adapt check
for inotify.
(Summary): Add entry for file notification.

* autogen/config.in: Add entries for HAVE_GFILENOTIFY,
HAVE_W32NOTIFY and USE_FILE_NOTIFY.

* lisp/autorevert.el (auto-revert-notify-enabled)
(auto-revert-notify-rm-watch, auto-revert-notify-add-watch)
(auto-revert-notify-event-p, auto-revert-notify-event-file-name)
(auto-revert-notify-handler): Handle also gfilenotify.

* lisp/subr.el: (file-notify-handle-event): New defun. Replacing ...
(inotify-event-p, inotify-handle-event, w32notify-handle-event):
Removed.

* src/Makefile.in (NOTIFY_OBJ): New variable.
(base_obj): Replace inotify.o by $(NOTIFY_OBJ).

* src/emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
Call syms_of_gfilenotify.

* src/gfilenotify.c: New file.

* src/keyboard.c (Qfile_notify): New variable.  Replaces Qfile_inotify
and Qfile_w32notify.
(top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
HAVE_W32NOTIFY and USE_FILE_NOTIFY.

* src/lisp.h: Declare syms_of_gfilenotify.

* src/termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
2013-06-03 15:03:05 +02:00
Juanma Barranquero
2044e704a4 * .bzrignore: Ignore dirs libexec/, share/ and var/. 2013-06-02 05:56:40 +02:00
Xue Fuqiao
9dbd3bb11a * INSTALL: Fix description. 2013-05-29 21:21:17 +08:00
YAMAMOTO Mitsuharu
2d8ac645c2 * configure.ac (HAVE_XRANDR): Check availability of XRRGetScreenResources rather than that of XRRQueryExtension. 2013-05-27 11:03:18 +09:00
Eli Zaretskii
6b56a60ae8 Add new files in nt/ to make-dist.
make-dist (files): Add nt/msysconfig.sh, nt/mingw-cfg.site,
 nt/epaths.nt, and nt/INSTALL.MSYS.
2013-05-18 15:04:40 +03:00
Paul Eggert
31ff141c22 Port --enable-gcc-warnings to clang.
* configure.ac (nw): Remove obsolescent warnings.
These aren't needed for clang, or for gcc for that matter.
(emacs_cv_clang): New var, which tests for clang.
Omit warnings that clang is too picky about.
(GLIB_DISABLE_DEPRECATION_WARNINGS): Define this;
needed for Ubuntu 13.04 + clang + --enable-gcc-warnings.
* lib-src/etags.c: Omit unnecessary forward decls.
(print_version, print_help): Declare _Noreturn.
* lib-src/pop.c (socket_connection) [HAVE_GETADDRINFO]: Simplify.
* src/bytecode.c (exec_byte_code):
* src/regex.c:
Redo diagnostic pragmas to pacify clang, too.
* src/dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
* src/editfns.c (Fencode_time):
* src/fileio.c (file_accessible_directory_p):
* src/font.c (font_unparse_xlfd):
Use '&"string"[index]' instead of '"string" + (index)'.
* src/undo.c (user_error): Remove; unused.
2013-05-17 22:32:17 -07:00
Paul Eggert
bfbe26276d * make-dist (files): Add nt/Makefile.in, nt/gnulib.mk.
Otherwise, 'configure; make' fails on non-Windows builds.
2013-05-17 22:21:24 -07:00
Eli Zaretskii
df065a0b9a Support building Emacs on MS-Windows using the Posix configury.
lib/Makefile.am: If building for MS-Windows, include
 nt/gnulib.mk instead of lib/gnulib.mk.
 configure.ac: Adapt to MSYS build on MS-Windows.
 Makefile.in (NTDIR): New variable, for the MSYS build on
 MS-Windows.
 (SUBDIR): Add $(NTDIR).
 (.PHONY): Add epaths-force-w32.
 (msys_to_w32): New variable.
 (epaths-force-w32, install-nt, uninstall-nt): New targets.
 (lib-src src): Add $(NTLIB) to prerequisites.
 (lib lib-src lisp leim nt): Add 'nt'.
 (config.status): Use $(CFG).
 (.PHONY): Add install-$(NTDIR) and uninstall-$(NTDIR).
 (install, install-arch-dep): Add install-$(NTDIR).
 (uninstall): Depend on uninstall-$(NTDIR).
 (mostlyclean, clean, distclean, bootstrap-clean): Add 'nt'.
 * GNUmakefile (CFG): New variable, uses mingw-cfg.site as
 CONFIG_SITE for the MSYS build on MS-Windows.
 (Makefile): Use $(CFG).
 .bzrignore: Ignore *.res, *.tmp, and *.map.  Remove
 src/emacs.res.

 etc/NEWS: Advertise the MSYS build on MS-Windows.

 leim/Makefile.in (leim-list.el, check-declare): Use reveal-filename.

 lib-src/update-game-score.c [WINDOWSNT]: Include "ntlib.h".
 lib-src/ntlib.h (sleep): Update prototype.
 (geteuid): Add prototype.
 lib-src/ntlib.c (sleep): Now returns an unsigned value.
 (getgid): New function.
 lib-src/Makefile.in (CLIENTW, LIB_WSOCK32, LIBS_ECLIENT, NTLIB)
 (CLIENTRES, WINDRES, NTINC, NTDEPS): New variables.
 (INSTALLABLES): Add $(CLIENTW).
 (LIBS_MOVE): Use $(LIB_WSOCK32).
 ($(DESTDIR)${archlibdir}): Use $(EXEEXT) on update-game-score.
 (test-distrib${EXEEXT}): Use $(EXEEXT) on test-distrib.
 (etags${EXEEXT}, ebrowse${EXEEXT}, ctags${EXEEXT})
 (profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT})
 (emacsclient${EXEEXT}, hexl${EXEEXT}, update-game-score${EXEEXT}):
 Add $(NTLIB) to prerequisites.  Use $(EXEEXT).
 (pop.o): Add pop.h to prerequisites.
 (emacsclientw${EXEEXT}, ntlib.o): New targets.
 (emacsclient.res): New target.

 lisp/subr.el (reveal-filename): New function.
 lisp/loadup.el: Compute Emacs executable versions on MS-Windows,
 where executables have the .exe extension.  Add a hard link
 emacs-XX.YY.ZZ.exe on MS-Windows.
 lisp/Makefile.in (XARGS_LIMIT): New variable.
 (custom-deps, finder-data, autoloads)
 ($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el)
 ($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el)
 ($(CAL_DIR)/hol-loaddefs.el): Use reveal-filename.
 (compile-main): Limit xargs according to $(XARGS_LIMIT).

 nt/msysconfig.sh: New file.
 nt/mingw-cfg.site: New file.
 nt/makefile.w32-in (LOCAL_FLAGS): Add -DOLD_PATHS=1.
 nt/inc/unistd.h: Include pwd.h and sys/types.h.
 nt/inc/sys/time.h (_TIMEVAL_DEFINED, timerisset, timercmp)
 (timerclear): Define.
 (gettimeofday): Adjust signature to be Posix compatible, by using
 the 'restrict' keyword.
 nt/inc/sys/stat.h (UTIME_NOW, UTIME_OMIT): Define.
 (struct _stat, struct _stati64): Define.
 nt/inc/sys/socket.h (timeval): Define only for MSVC.
 (FD_SET, FD_CLR, FD_ISSET, fd_set): Redefine only if
 EMACS_CONFIG_H is defined.
 (timeval): Undefine only for MSVC.
 nt/inc/ms-w32.h (HAVE___BUILTIN_UNWIND_INIT, restrict)
 (HAVE_WINDOW_SYSTEM, HAVE_MENUS, EMACS_CONFIGURATION)
 (EMACS_CONFIG_OPTIONS, HAVE_LONG_LONG_INT)
 (HAVE_UNSIGNED_LONG_LONG_INT): Define only if not already defined.
 (fileno): Move definition after including stdio.h.
 (sigset_t): Guard typedef by _W64.
 nt/gnulib.mk: New file.
 nt/epaths.nt: New file.
 nt/addpm.c [!OLD_PATHS]: Include src/epaths.h, instead of having a
 copy of the file names there.
 <env_vars> [!OLD_PATHS]: Use macros from epaths.h instead of
 literal strings.
 nt/Makefile.in: New file.
 nt/INSTALL.MSYS: New file.
 nt/INSTALL: Mention INSTALL.MSYS.

 src/w32.c: Include epaths.h.
 (init_environment): Use cmdproxy.exe without leading directories.
 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
 case.
 (gettimeofday): Adjust signature and return value to Posix
 expectations.
 src/unexw32.c (open_output_file): Delete the existing emacs.exe
 before creating it, to break the hard link to the versioned
 executable.
 src/Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
 (FIRSTFILE_OBJ): New variables.
 (W32_RES): Rename to EMACSRES.  All users changed.
 (base_obj): Use $(CM_OBJ).
 (ALLOBJS): Use $(FIRSTFILE_OBJ).
 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
 $(W32_RES_LINK) before $(LIBES).
 (emacs.res): Depend on $(EMACS_MANIFEST).  Put emacs.rc in nt.
2013-05-16 15:48:54 +03:00
Paul Eggert
cdd0de4b05 Merge from gnulib.
2013-05-15 manywarnings: update for GCC 4.8.0
2013-05-15 stdio: use __REDIRECT for fwrite, fwrite_unlocked
2013-05-15 sig2str, stdio, warnings: port to clang
2013-05-16 00:10:39 -07:00
Stefan Monnier
6e911150d0 Use just DOC instead of DOC-nn.mm.
* lisp/loadup.el: Just use unversioned DOC.
* Makefile.in (install-doc): DOC file is not version specific any more.
* .bzrignore: Don't ignore DOC-* any more.
* admin/quick-install-emacs: Don't prune DOC-* files a any more.
* doc/lispref/loading.texi (Autoload):
* doc/lispref/help.texi (Documentation Basics, Accessing Documentation)
(Accessing Documentation, Accessing Documentation): DOC-* is now DOC.
* etc/.gitignore: Don't ignore DOC-* any more.
* lib-src/makefile.w32-in ($(DOC)): Use DOC rather than DOC-X.
* msdos/sed1x.inp: Don't rewrite DOC any more.
* nt/makefile.w32-in (clean, top-distclean): DOC-X doesn't exist any more.
* src/Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
* src/makefile.w32-in (DOC): Use just "DOC".
2013-05-15 16:12:53 -04:00
Paul Eggert
bb8eb35723 * configure.ac (LD_SWITCH_SYSTEM_EMACS): Fix typo in previous change. 2013-05-12 23:23:08 -07:00
Paul Eggert
522fe43b9f * configure.ac (LD_SWITCH_SYSTEM_TEMACS): OpenBSD needs -fno-pie.
Reported privately by Han Boetes <han@boetes.org>.
2013-05-12 20:54:34 -07:00
Juanma Barranquero
86cec47883 lib/makefile.w32-in (ACL_H): New macro.
($(BLD)/acl-errno-valid.$(O)): Update dependencies.
2013-05-08 18:22:09 +02:00
Paul Eggert
ffdc270a76 Use Gnulib ACL implementation, for benefit of Solaris etc.
* configure.ac: Remove -with-acl option, since Gnulib does that for
us now.
(LIBACL_LIBS): Remove; no longer needed.
* lib/Makefile.am (CLEANFILES, SUFFIXES): New (empty) macros,
for the benefit of the new ACL implementation.
* lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/acl-errno-valid.$(O).
($(BLD)/acl-errno-valid.$(O)): New rule.
* lib/acl-errno-valid.c, lib/acl-internal.h, lib/acl.h:
* lib/acl_entries.c, lib/errno.in.h, lib/file-has-acl.c:
* lib/qcopy-acl.c, lib/qset-acl.c, m4/acl.m4, m4/errno_h.m4:
New files, taken from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* admin/merge-gnulib (GNULIB_MODULES): Add qacl.
(GNULIB_TOOL_FLAGS): Do not avoid errno.
* etc/NEWS: Emacs is no longer limited to POSIX ACLs.  --disable-acl,
not --without-acl, since we're now using Gnulib's implementation.
* nt/config.nt (HAVE_ACL_SET_FILE): Rename from HAVE_POSIX_ACL.
* nt/inc/ms-w32.h (EOPNOTSUPP): New macro.
* src/Makefile.in (LIB_ACL): New macro.
(LIBACL_LIBS): Remove.
(LIBES): Use LIB_ACL, not LIBACL_LIBS.
* src/fileio.c: Include <acl.h>.
Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
(ACL_NOT_WELL_SUPPORTED): Remove.  All uses replaced by
!acl_errno_valid.
(Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
it ourselves.

Fixes: debbugs:14295
2013-05-07 14:34:03 -07:00
YAMAMOTO Mitsuharu
4e3f92301d Add multi-monitor support on X11. 2013-05-07 10:12:22 +09:00
Paul Eggert
7a6018ad21 Merge from gnulib.
This incorporates:
2013-04-30 utimens, utimensat: work around Solaris UTIME_OMIT bug
2013-05-06 06:37:42 -07:00
Paul Eggert
0922c47591 * make-dist: Keep necessary restrictions on file access. 2013-05-01 12:28:41 -07:00
Paul Eggert
d9774ea487 Merge from gnulib.
This incorporates:
2013-04-28 extern-inline: work around bug in Sun c99
2013-04-28 21:48:30 -07:00
Paul Eggert
d7ed9b364a Merge from gnulib. 2013-04-27 12:30:33 -07:00
Paul Eggert
f780d632f2 Port better to AIX.
* configure.ac (CFLAGS): Append -O if the user did not specify CFLAGS,
we did not already infer an optimization option, and -O works.
AIX xlc needs -O, otherwise garbage collection doesn't work.
* src/lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
to pacify AIX xlc.

Fixes: debbugs:14258
2013-04-26 12:31:09 -07:00
Paul Eggert
1e8589d3d4 * make-dist: Do not distribute admin/unidata/Makefile.
It is generated by 'configure'.
2013-04-21 22:08:36 -07:00
Paul Eggert
c6cb2f53ac * build-aux/update-subdirs: Don't leave subdirs.el~ behind.
It messes up 'make distclean', and contains no useful information
because it's a copy of subdirs.el.
2013-04-21 22:01:33 -07:00
John Marino
7e00831f51 * configure.ac: Add DragonFly BSD, mostly same as FreeBSD (tiny change)
Fixes: debbugs:14068
2013-04-18 10:12:21 -07:00
Glenn Morris
4f8902cd02 Replace AC_PROG_LN_S by a less strict configure test
* configure.ac (AC_PROG_LN_S): Remove, too restrictive.
(LN_S_FILEONLY): New output variable.
* Makefile.in (LN_S): Remove.
(LN_S_FILEONLY): New, set by configure.
(install-arch-dep): Use LN_S_FILEONLY rather than LN_S.
2013-04-17 22:03:53 -07:00
Ken Brown
e8bdb06e29 * configure.ac (canonical): Adapt to 64-bit Cygwin. 2013-04-12 09:00:57 -04:00
Ken Brown
ba3b2d88d8 Fix icon for the cygw32 build on 64-bit Cygwin. (Bug#12993)
* nt/emacs.rc: Use 64-bit manifest for 64-bit Cygwin build.

* configure.ac (W32_RES_LINK): Remove unnecessary linker directive
`-Wl,-bpe-i386', which is confusing in the 64-bit case.
2013-04-08 22:38:56 -04:00
Paul Eggert
876da980f8 Fix --enable-profiling bug introduced by 2013-02-25 change.
This bug was introduced by my 2013-02-25 change that simplified
data_start configuration.  Without this change, on GNU/Linux
an Emacs configured with --enable-profiling fails immediately
due to a profiler signal.
* configure.ac (LD_SWITCH_SYSTEM_TEMACS): Append -pg if profiling
and if not on GNU/Linux or FreeBSD.
* lib/Makefile.am (AM_CFLAGS): Add $(PROFILING_CFLAGS), so that
lib/*.o is profiled too.
* src/Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
with these flags.  On platforms where special flags are needed
when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
(ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
(.c.o, .m.o): Compile with $(PROFILING_CFLAGS).

Fixes: debbugs:13783
2013-04-06 23:21:40 -07:00
Glenn Morris
47d038b3af ChangeLog fixes
2013-03-16 was not the date Emacs 24.3 was released, it was not even
the date on which I merged all changes from that release into trunk.
Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00990.html
2013-04-03 20:46:25 -07:00
Paul Eggert
119b2d43cc Merge from gnulib
This incorporates:
2013-03-29 stdalign: port to stricter ISO C11
This helps to run 'configure' on MS-Windows; see Eli Zaretskii in
<http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00999.html>.
2013-03-30 10:30:06 -07:00
Aidan Gauland
73572c7215 Moved my ChangeLog entries to the correct ChageLog files. 2013-03-30 21:14:31 +13:00
Aidan Gauland
aa534cb70b Added entry to NEWS for em-tramp change in 2013-03-26T22:08:58Z!aidalgol@no8wireless.co.nz 2013-03-29 20:12:11 +13:00
Aidan Gauland
fce31b0e75 Corrected type in ChangeLog
Missing > after email address.
2013-03-29 20:08:36 +13:00
Paul Eggert
afeee3e578 * configure.ac (HAVE_XKBGETKEYBOARD): Remove; subsumed by HAVE_XKB.
All uses changed.
2013-03-26 22:13:31 -07:00
Aidan Gauland
15e4ed9c6a Added eshell-tramp module
* lisp/eshell/em-unix.el: Moved su and sudo to...
* lisp/eshell/em-tramp.el: ...Eshell tramp module
* doc/misc/eshell.texi: Updated manual to reflect changes.

External su and sudo commands are now the default; the internal,
TRAMP-using variants can still be used by enabling the eshell-tramp
module.
2013-03-27 11:08:58 +13:00
Jan Djärv
a4cedbf774 * configure.ac (HAVE_XKB): Define if Xkb is present.
* src/xterm.c: Include X11/XKBlib.h
(XTring_bell): Use XkbBell if HAVE_XKB.

Fixes: debbugs:14041
2013-03-25 18:58:35 +01:00
Paul Eggert
f8ce376ec8 Merge from gnulib. 2013-03-23 17:49:50 -07:00
Paul Eggert
4c9a137782 Fix bug when building Emacs with a GNU Make submake.
* Makefile.in (QUIET_SUBMAKE): New macro.
(install-info, uninstall): Use it.

Fixes: debbugs:13962
2013-03-18 14:02:34 -07:00
Paul Eggert
19151a7f8c Emacs crashes with ImageMagick 6.8.2-3 through 6.8.3-9.
* configure.ac (IMAGEMAGICK_MODULE): Reject 6.8.2.
We want to reject 6.8.2-3 through 6.8.3-9, but there seems to be
no way to do this in pkg-config, so make do with a reasonable
approximation.
* etc/PROBLEMS: Mention problem with ImageMagick 6.8.2-3 through 6.8.3-9.

Fixes: debbugs:13867
2013-03-17 22:26:56 -07:00
Paul Eggert
982efbcdc4 Automate the build of ja-dic.el.
ja-dic.el no longer needs to be in the repository: it's now
generated as part of the build from bzr.  Also, update SKK-JISYO.L to
match the upstream source exactly.
* .bzrignore: Add leim/ja-dic/.
* leim/ja-dic/ja-dic.el: Remove from repository.  It is still distributed
as part of the Emacs tarball.
* leim/Makefile.in ($(srcdir)/ja-dic/ja-dic.el): New rule.
(compile-main): Depend on it.
* leim/SKK-DIC/README: Update to reflect new build procedure.
* leim/SKK-DIC/SKK-JISYO.L: Update to match source exactly.
This is now the annotated version, to match the upstream file name;
the unannotated one is built from it automatically.
* lisp/international/ja-dic-cnv.el (skkdic-convert): Remove the annotations
from the input, rather than assume that it's been done for us by the
SKK script unannotate.awk.  Switch ja-dic.el to UTF-8.  Don't put
the current date into a ja-dic.el comment, as that complicates
regression testing.

Fixes: debbugs:13984
2013-03-17 21:30:20 -07:00
Paul Eggert
47d7532e09 File synchronization fixes.
* admin/CPP-DEFINES (BSD_SYSTEM, HAVE_FSYNC): Remove.
* admin/merge-gnulib (GNULIB_MODULES): Add fsync, fdatasync.
* configure.ac (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
(fsync): Remove check; now done by gnulib.
* lib/fdatasync.c, lib/fsync.c, m4/fdatasync.m4, m4/fsync.m4:
New files, from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib-src/Makefile.in (LIB_FDATASYNC): New macro.
(emacsclient${EXEEXT}): Use it.
* lib-src/emacsclient.c (main): Use fdatasync, not fsync, since we don't
care about metadata.  Keep trying if interrupted.
* lib-src/movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since
fsync is available everywhere (or there is a substitute).  Don't
report an error if fsync returns EINVAL.
* nt/inc/ms-w32.h (fdatasync): New macro, suggested by Eli Zaretskii.
* src/Makefile.in (LIB_FDATASYNC): New macro.
(LIBES): Use it.
* src/conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
* src/fileio.c (Fwrite_region, write_region_inhibit_fsync):
Don't worry about HAVE_FSYNC, since a substitute fsync is
available if the system lacks one.
(Fwrite_regin): Retry fsync if interrupted.

Fixes: debbugs:13944
2013-03-13 11:42:22 -07:00
Paul Eggert
2c3f72f4b5 Merge from gnulib: putenv: port to Solaris 10. 2013-03-13 00:15:17 -07:00
Paul Eggert
5615c9a9af Merge from gnulib.
This incorporates:
2013-03-12 mktime: fix configure typo
2013-03-11 regex: port to mingw's recent addition of undeclared alarm
2013-03-11 putenv: avoid compilation warning on mingw
2013-03-11 unistd: don't prevent Tru64 Unix from using gnulib strtod.
2013-03-12 17:38:42 -07:00
Glenn Morris
24958590a0 Add 24.3 release to ChangeLogs 2013-03-10 19:35:23 -07:00
Glenn Morris
0bafabe7b2 Merge from emacs-24; up to 2012-12-25T11:37:21Z!dmantipov@yandex.ru 2013-03-06 00:01:47 -08:00
Paul Eggert
3b108d19a0 * configure.ac (TERM_HEADER): Remove duplicate definition.
It can mess up 'configure' runs.

Fixes: debbugs:13872
2013-03-05 09:25:50 -08:00
Glenn Morris
28b6b84d4e Merge from emacs-24; up to 2012-12-24T15:56:17Z!eliz@gnu.org 2013-03-04 19:59:35 -08:00
Glenn Morris
b3cdfd9e06 * Makefile.in (install-man): Ignore gzip exit status. 2013-03-04 19:43:52 -08:00
Glenn Morris
4aff132c63 * make-dist: Remove lzma (it's replaced by xz). 2013-03-02 18:43:30 -08:00
Paul Eggert
89bd9d3685 Merge from gnulib.
2013-02-21 putenv: port better to native Windows
2013-02-18 extern-inline: avoid compilation error with HP-UX cc
2013-02-14 putenv: fix heap corruption with mixed putenv/_putenv
2013-03-01 07:16:43 -08:00
Ken Brown
0e9467861c * configure.ac (HAVE_DATA_START): Fix test. (Bug#13818) 2013-02-27 22:19:51 -05:00
Paul Eggert
1ddc2bd6ff Simplify data_start configuration.
This is a followon simplification to the fix for Bug#13650.
* admin/CPP-DEFINES (DATA_START, ORDINARY_LINK): Remove.
* configure.ac (CRT_DIR, LIB_STANDARD, START_FILES, DATA_START)
(LD_FIRSTFLAG, ORDINARY_LINK, LIB_GCC): Remove.
(AC_CHECK_HEADERS_ONCE): Remove sys/resource.h, as it's
not always needed.
(HAVE_DATA_START): New macro.
* etc/PROBLEMS (LIBS_SYSTEM, LIBS_MACHINE, LIBS_STANDARD): Remove.
Remove legacy-systems section, as this stuff is no longer
applicable with current linking strategies.
* src/Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD)
(START_FILES): Remove.  All uses removed.
(otherobj): Remove $(VMLIMIT_OBJ), as it's now first.
(ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first.
(buildobj.h): Use it.
($(ALLOBJS)): Depend on globals.h.
(temacs$(EXEEXT)): Use $(ALLOBJS).
* src/autodeps.mk (ALLOBJS): Move to Makefile.in.
* src/deps.mk (vm-limit.o):
* src/makefile.w32-in ($(BLD)/vm-limit.$(O)):
Do not depend on mem-limits.h.
* src/emacs.c (__do_global_ctors, __do_global_ctors_aux)
(__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__)
[__GNUC__ && !ORDINARY_LINK]: Remove.
* src/mem-limits.h, src/pre-crt0.c: Remove.
* src/unexaix.c, src/unexcoff.c: Don't include mem-limits.h.
* src/unexcoff.c (etext): New decl.
(make_hdr): Use it instead of start_of_data.
* src/vm-limit.c: Move most of mem-limits.h's contents here.
(data_start): New decl.  It's OK if this is approximate,
so simplify-away some unnecessary exactness.
(POINTER): Remove; all uses removed.
(data_space_start): Now char *, to avoid casts.
(exceeds_lisp_ptr): New function, replacing the old
EXCEEDS_LISP_PTR macro.  All uses changed.
(check_memory_limits): Simplify and remove casts.
(start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove.
(memory_warnings): Use data_start instead of start_of_data.

Fixes: debbugs:13783
2013-02-24 21:55:37 -08:00
Aidan Gauland
4b9f0b67da * lisp/eshell/em-cmpl.el: Corrected "context-related help"
keybinding in commentary.
2013-02-24 18:34:22 +13:00
Paul Eggert
b59a2e9edb Parallelize documentation builds.
This speeds up building of documentation on multiprocessor
platforms, and is motivated by Texinfo 5.0, which is much slower.
Add a toplevel rule 'make docs' to make all the documentation.
* .bzrignore: Add .dvi, .html, .ps.
* Makefile.in (DVIS, HTMLS, INFOS, PSS, DOCS): New macros.
($(DOCS), docs, vi, html, pdf, ps): New rules.
(info-real): Depend on $(INFOS) rather than doing it sequentially.
(dvi): Depend on $(DVIS) rather than doing it sequentially.
* doc/misc/Makefile.in (html): New rule.
2013-02-21 14:42:56 -08:00
Aidan Gauland
6a0fda530d Documented Eshell's insert output-redirection operator 2013-02-19 07:27:51 +13:00
Paul Eggert
648e5523fb Merge from emacs-24; up to 2012-12-19T13:01:16Z!michael.albinus@gmx.de 2013-02-14 22:35:54 -08:00
Paul Eggert
35b3a27e67 Fix AIX port.
* configure.ac (DATA_START, DATA_SEG_BITS): Set to 0x20000000 on AIX.
(GC_MARK_STACK): Do not set to GC_USE_GCPROS_AS_BEFORE, as that
runs afoul of some other bug in Emacs, and the default value
GC_MAKE_GCPROS_NOOPS has been tested and works.
* src/lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
Fix bug introduced in 2012-07-27 change.  DATA_SEG_BITS, if set,
was #undeffed earlier, so it cannot be used as a macro here.
Use the constant and not the macro.  Tested on AIX.
* src/unexaix.c: Revert 2013-02-11 and 2013-02-12 changes to this
file.  They're almost surely OK but we're just before a release so
we should avoid changes unless they're clearly needed.  Instead,
make the following minor change:
(ADDR_CORRECT): New macro.

Fixes: debbugs:13650
2013-02-14 12:05:10 -08:00
Eli Zaretskii
8c0905acd1 MS-Windows followup for 2013-02-11T23:37:18Z!eggert@cs.ucla.edu.
lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/memrchr.$(O).
 ($(BLD)/memrchr.$(O)): New dependency.

 nt/inc/ms-w32.h: Add prototype for memrchr.
2013-02-12 05:52:04 +02:00
Paul Eggert
a84b7c5334 Tune by using memchr and memrchr.
* .bzrignore: Add string.h.
* admin/merge-gnulib (GNULIB_MODULES): Add memrchr.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/memrchr.c, lib/string.in.h, m4/memrchr.m4, m4/string_h.m4:
New files, from gnulib.
* src/doc.c (Fsnarf_documentation):
* src/fileio.c (Fsubstitute_in_file_name):
* src/search.c (find_newline, scan_newline):
* src/xdisp.c (pos_visible_p, display_count_lines):
Use memchr and memrchr rather than scanning byte-by-byte.
* src/search.c (find_newline): Rename from scan_buffer.
Omit first arg TARGET, as it's always '\n'.  All callers changed.
2013-02-11 15:37:18 -08:00
Paul Eggert
71d4202f20 Merge from gnulib. 2013-02-11 15:15:46 -08:00
Glenn Morris
55fe8e6492 ChangeLog for previous 2013-02-10 16:55:26 -08:00
Glenn Morris
8b0590de7e * configure.ac (emacs_config_options): Strip out the (internal) arguments
--no-create and --no-recursion.
2013-02-09 19:37:48 -08:00
Paul Eggert
8376d87efc Merge from gnulib. 2013-02-08 15:37:17 -08:00
Paul Eggert
8654f9d7d6 Use fdopendir, fstatat and readlinkat, for efficiency.
On my host, this speeds up directory-files-and-attributes by a
factor of 3, when applied to Emacs's src directory.
These functions are standardized by POSIX and are common these
days; fall back on a (slower) gnulib implementation if the host
is too old to supply them.
* .bzrignore: Add lib/dirent.h.
* lib/Makefile.am (libgnu_a_SOURCES): Add openat-die.c, save-cwd.c.
* lib/careadlinkat.c, lib/careadlinkat.h: Merge from gnulib,
incorporating: 2013-01-29 careadlinkat: do not provide careadlinkatcwd.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/dirent.in.h, lib/fdopendir.c, lib/fstatat.c, lib/openat-priv.h:
* lib/openat-proc.c, lib/openat.h, m4/dirent_h.m4, m4/fdopendir.m4:
* m4/fstatat.m4: New files, from gnulib.
* lib/openat-die.c, lib/save-cwd.c, lib/save-cwd.h: New files.
These last three are specific to Emacs and are not copied from gnulib.
They are simpler than the gnulib versions and are tuned for Emacs.
* admin/merge-gnulib (GNULIB_MODULES): Add fdopendir, fstatat, readlinkat.
(GNULIB_TOOL_FLAGS): Do not avoid at-internal, openat-h.
Avoid dup, open, opendir.
* nt/inc/sys/stat.h (fstatat):
* nt/inc/unistd.h (readlinkat): New decls.
* src/conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
* src/dired.c: Include <fcntl.h>.
(open_directory): New function, which uses open and fdopendir
rather than opendir.  DOS_NT platforms still use opendir, though.
(directory_files_internal, file_name_completion): Use it.
(file_attributes): New function, with most of the old Ffile_attributes.
(directory_files_internal, Ffile_attributes): Use it.
(file_attributes, file_name_completion_stat): First arg is now fd,
not dir name.  All uses changed.  Use fstatat rather than lstat +
stat.
(file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
* src/fileio.c: Include <allocator.h>, <careadlinkat.h>.
(emacs_readlinkat): New function, with much of the old
Ffile_symlink_p, but with an fd argument for speed.
It uses readlinkat rather than careadlinkatcwd, so that it
need not assume the working directory.
(Ffile_symlink_p): Use it.
* src/filelock.c (current_lock_owner): Use emacs_readlinkat
rather than emacs_readlink.
* src/lisp.h (emacs_readlinkat): New decl.
(READLINK_BUFSIZE, emacs_readlink): Remove.
* src/sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
(emacs_norealloc_allocator, emacs_readlink): Remove.
This stuff is moved to fileio.c.
* src/w32.c (fstatat, readlinkat): New functions.
(careadlinkat): Don't check that fd == AT_FDCWD.
(careadlinkatcwd): Remove; no longer needed.

Fixes: debbugs:13539
2013-01-31 22:30:51 -08:00
Glenn Morris
0eb61895e5 Move lisp/calc/README* to etc/CALC-NEWS
* make-dist: Only README files exist in lisp/ now, not README*.

* doc/misc/calc.texi (Help Commands): Mention etc/CALC-NEWS.

* etc/CALC-NEWS: Move here from lisp/calc/README, README.prev.

* lisp/calc/README, lisp/calc/README.prev: Rename/merge to etc/CALC-NEWS.
2013-01-31 19:58:50 -08:00
Giorgos Keramidas
e02703bda9 * .bzrignore: add lib-src/blessmail. 2013-01-23 15:49:46 -08:00
Paul Eggert
ea78b88298 Merge from gnulib. 2013-01-22 17:47:44 -08:00
Glenn Morris
795e7a5b32 Merge from emacs-24; up to 2012-12-11T09:51:12Z!dmantipov@yandex.ru 2013-01-19 12:38:13 -08:00
Paul Eggert
ffe04adc88 Merge from gnulib. 2013-01-16 09:45:39 -08:00
Paul Eggert
c4e2ba0a60 * configure.ac: Document that --enable-gcc-warnings emits errors.
Fixes: debbugs:13448
2013-01-15 22:04:58 -08:00
Glenn Morris
94898d72a3 * Makefile.in (install-arch-indep): Put back a chmod
that was removed 2012-05-19.  (Bug#13430)
2013-01-15 20:41:31 -05:00
Glenn Morris
c0511b5769 Merge from emacs-24; up to 2012-12-10T20:27:33Z!eggert@cs.ucla.edu 2013-01-13 12:03:01 -08:00
Paul Eggert
444b01bb49 Enable conservative stack scanning for all architectures.
Suggested by Stefan Monnier in
<http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00183.html>.
* configure.ac (GC_MARK_STACK): Remove.
2013-01-11 21:21:06 -08:00
Paul Eggert
002b843312 * lib/getopt_.h: Remove trailing CRs that crept in. 2013-01-11 15:28:04 -08:00
Eli Zaretskii
b76381c62b lib/getopt_.h: Regenerate. 2013-01-11 11:20:41 +02:00
Glenn Morris
39aff4a79f * make-dist: Add options for xz compression and no compression. 2013-01-09 20:00:02 -08:00
Paul Eggert
6466e676b9 Merge from gnulib. 2013-01-09 18:19:44 -08:00
Glenn Morris
0f668a4db4 Merge from emacs-24; up to 2012-12-06T20:16:38Z!monnier@iro.umontreal.ca 2013-01-04 11:22:37 -08:00
Glenn Morris
92d5961122 Add htmlfontify manual to build process
* doc/misc/Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS):
Add htmlfontify.
(htmlfontify, $(buildinfodir)/htmlfontify$(INFO_EXT))
(htmlfontify.dvi, htmlfontify.pdf): New targets.

* doc/misc/makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean):
Add htmlfontify.
($(infodir)/htmlfontify$(INFO_EXT), htmlfontify.dvi): New targets.

* info/dir: Add htmlfontify.
2013-01-04 01:43:08 -08:00
Paul Eggert
ee0d39381a Merge from gnulib.
This incorporates:
2013-01-04 stdio: remove now-unnecessary stdio.c
2013-01-04 fprintftime: depend on stdio, not ignore-value
2013-01-04 fwrite: silence __wur only for older glibc versions
2013-01-04 fwrite: silence __wur without using inline
* lib/stdio.c: Remove.
* lib/stdio.in.h, lib/strftime.c: Update from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
2013-01-03 18:17:49 -08:00
Paul Eggert
9ff99d22a0 Merge from gnulib. 2013-01-02 08:37:04 -08:00
Paul Eggert
0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Jan Djärv
7ec363cf23 Silence Gtk deprecation warnings by default.
* configure.ac: New enable: --enable-gtk-deprecation-warnings, default off.
(HAVE_GTK3): If above enable is off, add
-DGDK_DISABLE_DEPRECATION_WARNINGS to GTK_CFLAGS.
2012-12-30 20:34:25 +01:00
Jan Djärv
8b745d925b Check for deprecated gtk tearoff menu item in configure.
* configure.ac: Check for GtkHandlebox.
Check for GtkTearoffMenuItem.

* src/gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
(xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
handlebox_widget.  Set toolbar_in_hbox to false/true, set
toolbar_is_packed to true.
(xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
(update_frame_tool_bar): Check toolbar_is_packed for packing.
Show all on TOOLBAR_TOP_WIDGET.
(free_frame_tool_bar): Check toolbar_is_packed.  Use widget returned
by TOOLBAR_TOP_WIDGET.
(xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
Check toolbar_is_packed.
(xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
(xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
false.
(create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
(xg_update_menubar): Update title only if
HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
(xg_update_submenu): Skip tearoff only if
HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
(xg_initialize): Initialize xg_detached_menus only if
HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2012-12-30 20:08:15 +01:00
Jan Djärv
5a1d858bbc Check for deprecated gtk_handle_box in configure.
* configure.ac: Check for GtkHandlebox.

* src/gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
(xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
handlebox_widget.  Set toolbar_in_hbox to false/true, set
toolbar_is_packed to true.
(xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
(update_frame_tool_bar): Check toolbar_is_packed for packing.
Show all on TOOLBAR_TOP_WIDGET.
(free_frame_tool_bar): Check toolbar_is_packed.  Use widget returned
by TOOLBAR_TOP_WIDGET.
(xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
Check toolbar_is_packed.

* src/xterm.h (struct x_output): Surround handlebox_widget with
#ifdef HAVE_GTK_HANDLE_BOX_NEW.  toolbar_is_packed is new,
toolbar_in_hbox is bool.
2012-12-30 19:44:00 +01:00
Glenn Morris
d5e5e7b411 Merge from emacs-24; up to 2012-12-05T00:13:56Z!yamaoka@jpl.org 2012-12-30 10:09:01 -08:00
Andreas Schwab
2550c6e404 Properly configure GNUstep libraries
* configure.ac (TEMACS_LDFLAGS2): Don't define.
(LIBS_GNUSTEP): Set for GNUstep and substitute.
(LD_SWITCH_SYSTEM_TEMACS): Don't set for GNUstep.

* src/Makefile.in (TEMACS_LDFLAGS2): Remove.
(LIBS_GNUSTEP): Define.
(LIBES): Add $(LIBS_GNUSTEP).
(temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
2012-12-29 20:37:32 +01:00
Glenn Morris
60f5e585bd configure.ac fix for double quotes in configure command-line
* configure.ac (emacs_config_options): New.
Use $@ rather than undocumented $ac_configure_args.
Replace any embedded double quotes.

Fixes: debbugs:13274
2012-12-27 09:59:21 -08:00
Glenn Morris
82e2a1f054 Merge from emacs-24; up to 2012-12-03T21:07:47Z!eggert@cs.ucla.edu 2012-12-27 00:21:08 -08:00
Paul Eggert
a8e1690bbd Revert static checking of stack smashing.
* configure.ac (WARN_CFLAGS): Omit -Wstack-protector when
configured with --enable-gcc-warnings.  -Wstack-protector causes
diagnostics to be issued on Ubuntu 12.10 x86-64.
2012-12-25 21:41:42 -08:00
Andreas Schwab
02e7729e7b Fixes: debbugs:13222
* configure.ac (SIGNALS_VIA_CHARACTERS): Also define for darwin.
2012-12-24 11:26:35 +01:00
Paul Eggert
219023c434 Merge from gnulib. 2012-12-23 22:24:08 -08:00
Glenn Morris
a4b0cca119 Merge from emacs-24; up to 2012-12-01T13:25:13Z!cyd@gnu.org 2012-12-21 11:32:43 -08:00
Akinori MUSHA
018246572c * Makefile.in (install-arch-dep): Ignore chmod errors (tiny change)
Fixes: debbugs:13233
2012-12-19 23:56:56 -08:00
Romain Francoise
7c3d167f48 Add support for preserving ACL entries of files.
* configure.ac (acl): New option.
	(HAVE_POSIX_ACL): Test for POSIX ACL support.  This is typically
	provided by libacl on GNU/Linux.

	* fileio.c (Ffile_acl, Fset_file_acl): New functions.
	(Fcopy_file): Change last arg to `preserve_extended_attributes'
	and copy ACL entries of file in addition to SELinux context if
	set.
	(syms_of_fileio): Add `file-acl' and `set-file-acl'.

	* Makefile.in (LIBACL_LIBS): New macro.
	(LIBES): Use it.

	* files.el (file-extended-attributes)
	(set-file-extended-attributes): New functions.
	(backup-buffer): Use them to handle both SELinux context and ACL
	entries.
	(backup-buffer-copy): Work with an alist of extended attributes,
	rather than an SELinux context.
	(basic-save-buffer-2): Ditto.

	* files.texi (File Attributes): Document ACL support and new
	`file-acl' function.
	(Changing Files): Mention argument name change of `copy-file' and
	document new function `set-file-acl'.
2012-12-16 19:22:27 +01:00
Paul Eggert
97976f9f3f Fix permissions bugs with setgid directories etc.
* configure.ac (BSD4_2): Remove; no longer needed.
* admin/CPP-DEFINES (BSD4_2): Remove.
* doc/lispintro/emacs-lisp-intro.texi (Files List):
directory-files-and-attributes now outputs t for attribute that's
now a placeholder.
* doc/lispref/files.texi (Testing Accessibility): Document GROUP arg
of file-ownership-preserved-p.
(File Attributes): Document that 9th element is now
just a placeholder.
* doc/lispref/os.texi (User Identification): Document new functions group-gid,
group-real-gid.
* etc/NEWS: Document changes to file-attributes,
file-ownership-preserved-p.
Mention new functions group-gid, group-real-gid.
* lisp/files.el (backup-buffer): Don't rely on 9th output of
file-attributes, as it's now a placeholder.  Instead, use the new
optional arg of file-ownership-preserved-p.
(file-ownership-preserved-p): New optional arg GROUP.
Fix mishandling of setuid directories that would cause this
function to return t when it should have returned nil.
Document what happens if the file does not exist, and when
it's not known whether the ownership will be preserved.
* lisp/net/tramp-sh.el (tramp-sh-handle-file-ownership-preserved-p):
Likewise.
(tramp-get-local-gid): Use group-gid for integer, as that's
faster and more reliable.
* src/dired.c (Ffile_attributes): Return t as the 9th attribute,
to mark it as a placeholder.  The old value was often wrong.
The only user of this attribute has been changed to use
file-ownership-preserved-p instead, with its new group arg.
* src/editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.

Fixes: debbugs:13125
2012-12-14 10:59:00 -08:00
Glenn Morris
727f973937 Merge from emacs-24; up to 2012-11-30T04:44:52Z!cyd@gnu.org 2012-12-12 21:29:15 -08:00
Glenn Morris
bfe6ffb652 Add wisent manual to build process
* doc/misc/wisent.texi: Small edits.  Set copyright to FSF, update license to
GFDL 1.3+.

* doc/misc/Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add wisent.
(wisent, $(buildinfodir)/wisent$(INFO_EXT), wisent.dvi, wisent.pdf):
New targets.

* doc/misc/makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add wisent.
($(infodir)/wisent$(INFO_EXT), wisent.dvi): New targets.

* info/dir: wisent.
2012-12-12 20:47:14 -08:00
Glenn Morris
98c94021a1 Add bovine manual to build process
* doc/misc/bovine.texi: Small edits.  Set copyright to FSF, update license to
GFDL 1.3+, remove empty index.

* doc/misc/Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add bovine.
(bovine, $(buildinfodir)/bovine$(INFO_EXT), bovine.dvi, bovine.pdf):
New targets.

* doc/misc/makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add bovine.
($(infodir)/bovine$(INFO_EXT), bovine.dvi): New targets.

* info/dir: Add bovine.
2012-12-12 20:25:50 -08:00
Andreas Schwab
0f59daafb7 * Makefile.in (install-info): Use `${MAKE} -s' for echo-info.
(uninstall): Likewise.
2012-12-12 18:52:01 +01:00
Glenn Morris
4c2dd4eeff Add srecode manual to build process
* doc/misc/srecode.texi: Small edits.  Set copyright to FSF, add explicit
GFDL 1.3+ license, fix up index.

* doc/misc/Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add srecode.
(srecode, $(buildinfodir)/srecode$(INFO_EXT), srecode.dvi)
(srecode.pdf): New targets.

* doc/misc/makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add srecode.
($(infodir)/srecode$(INFO_EXT), srecode.dvi): New targets.

* info/dir: Add srecode.
2012-12-12 09:19:20 -08:00
Nicolas Avrutin
02925206eb Fix for install-info in non-English locales (tiny change)
* Makefile.in (install-info, uninstall):
Ensure make's messages about changing directories are in English.

Fixes: debbugs:13142
2012-12-11 13:37:53 -05:00
Paul Eggert
904dd565a0 Merge from gnulib for 'inline', incorporating:
2012-12-11 extern-inline: avoid incompatibility with Darwin Libc
* m4/extern-inline.m4: Update from gnulib.

Fixes: debbugs:13040
2012-12-11 10:18:13 -08:00
Juanma Barranquero
0eeb69fe15 (lib-src,src,lib)/makefile.w32-in: Update dependencies. 2012-12-11 03:06:53 +01:00
Daniel Colascione
5b55e0b70f Merge from private trunk
Daniel Colascione 2012-12-10 Add emacs.res to .bzrignore
Daniel Colascione 2012-12-10 Fix cygw32 build break
2012-12-10 12:55:02 -08:00
Daniel Colascione
9ca3e73ac3 Add emacs.res to .bzrignore 2012-12-10 12:47:57 -08:00
Paul Eggert
7e77303ee5 * configure.ac (HAVE_INOTIFY): Speed up configure-time test.
There's no need to test for any of three inotify functions,
since we use all three.  Check for just the first one.
2012-12-10 12:27:33 -08:00
Daniel Colascione
78f9ea875a Move fix for bug#12993 to trunk 2012-12-10 09:55:03 -08:00
Daniel Colascione
743fa5cbdd Move fix for cygw32 icon issue from emacs-24 branch to trunk as Stefan Monnier requests 2012-12-10 09:52:35 -08:00
Rüdiger Sonderfeld
81606b1050 Support filesystem notification through inotify on GNU/Linux.
configure.ac (inotify): New option.
 (HAVE_INOTIFY): Test for inotify.

 src/termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add
 FILE_NOTIFY_EVENT.
 src/lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
 src/keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
 (syms_of_keyboard): DEFSYM it.
 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
 Qfile_inotify events.
 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
 special-event-map to inotify-handle-event.
 src/emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
 src/Makefile.in (base_obj): Add inotify.o.
 src/inotify.c: New file.

 lisp/subr.el (inotify-event-p, inotify-handle-event): New functions.

 test/automated/inotify-test.el: New test.
2012-12-10 06:17:21 -05:00
Daniel Colascione
1cf1bbd51e Compile Windows resources into cygw32 Emacs 2012-12-09 23:11:21 -08:00
Andreas Schwab
75d7aa242d * configure.ac: Fix source command in .gdbinit.
Don't quote $MAKEINFO.
2012-12-09 09:37:01 +01:00