Commit graph

255 commits

Author SHA1 Message Date
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
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
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
f7306b812c * configure.ac: Further fix. 2013-07-12 19:15:20 -04:00
Glenn Morris
81974faaba * configure.ac: Fix goofs in previous. 2013-07-12 19:14:20 -04: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
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
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
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
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
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
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
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
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
Michael Albinus
58556eb49e Fix typo in comment. 2013-06-13 08:28:05 +02: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
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
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
YAMAMOTO Mitsuharu
2d8ac645c2 * configure.ac (HAVE_XRANDR): Check availability of XRRGetScreenResources rather than that of XRRQueryExtension. 2013-05-27 11:03:18 +09: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
Eli Zaretskii
d14365f941 Merge from trunk, configury not fixed yet. 2013-05-15 19:15:07 +03: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
Jan Djärv
4465bfb465 Implement display-monitor-attributes-list for NS.
* lisp/frame.el (display-monitor-attributes-list): Add NS case.
(ns-display-monitor-attributes-list): Declare.

* src/nsfns.m: Include IOGraphicsLib.h if Cocoa.
(Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
(MonitorInfo): New struct.
(free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
(Fns_display_monitor_attributes_list): New functions.
(display-usable-bounds): Remove.
(syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
Qsource.
2013-05-09 17:17:38 +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
Eli Zaretskii
b1cb82edff Merge from trunk. 2013-05-01 20:47:50 +03: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
Eli Zaretskii
54ab7d34c5 Don't use -subsystem=console link option, it is the default. 2013-04-23 20:06:09 +03:00
Eli Zaretskii
4cf86a2fa7 Merge from trunk. 2013-04-19 11:39:24 +03:00
Eli Zaretskii
d4d223998d Used AH_TEMPLATE as suggested by Glenn Morris. 2013-04-18 21:29:04 +03:00
Eli Zaretskii
09e94df23e Refactored tests for windows.h as suggested by Paul Eggert. 2013-04-18 21:02:48 +03: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
Eli Zaretskii
4f0e6095fc Merge from trunk. 2013-04-18 19:20:48 +03: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
Eli Zaretskii
f576f7fb04 Fixed the LN_S and LN_EMACS issue. 2013-04-17 20:51:31 +03:00