1. 04 Aug, 2013 1 commit
    • Paul Eggert's avatar
      Fix some minor races in hosts lacking mkostemp. · e0fdb694
      Paul Eggert authored
      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
      e0fdb694
  2. 27 Jul, 2013 1 commit
  3. 24 Jul, 2013 1 commit
  4. 23 Jul, 2013 2 commits
    • Glenn Morris's avatar
      No need for configure to create etc/ and lisp/ any more · 60967f56
      Glenn Morris authored
      * 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.
      60967f56
    • Paul Eggert's avatar
      Port to GNU/Linux systems with tinfo but not ncurses. · a29c3e6d
      Paul Eggert authored
      * 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.
      a29c3e6d
  5. 20 Jul, 2013 1 commit
    • Paul Eggert's avatar
      Fix array bounds violation when pty allocation fails. · 6496aec9
      Paul Eggert authored
      * 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.
      6496aec9
  6. 13 Jul, 2013 1 commit
  7. 12 Jul, 2013 4 commits
    • Glenn Morris's avatar
      * configure.ac: Further fix. · f7306b81
      Glenn Morris authored
      f7306b81
    • Glenn Morris's avatar
      * configure.ac: Fix goofs in previous. · 81974faa
      Glenn Morris authored
      81974faa
    • Glenn Morris's avatar
      * configure.ac: If with-file-notification=yes, if gfile not found, · 671d4bfc
      Glenn Morris authored
      go on to try inotify (not on MS Windows or Nextstep).
      
      * etc/NEWS: Copyedits.
      671d4bfc
    • Paul Eggert's avatar
      Fix races with threads and file descriptors. · bacba3c2
      Paul Eggert authored
      * 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.
      bacba3c2
  8. 09 Jul, 2013 1 commit
  9. 08 Jul, 2013 1 commit
  10. 07 Jul, 2013 2 commits
    • Paul Eggert's avatar
      Port to Ubuntu 10. · 9caab067
      Paul Eggert authored
      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
      9caab067
    • Paul Eggert's avatar
      Make file descriptors close-on-exec when possible. · 067428c1
      Paul Eggert authored
      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
      067428c1
  11. 02 Jul, 2013 3 commits
  12. 30 Jun, 2013 1 commit
  13. 22 Jun, 2013 1 commit
  14. 21 Jun, 2013 1 commit
  15. 20 Jun, 2013 1 commit
    • Paul Eggert's avatar
      Add log2 support and make log10 obsolete for consistency. · 89561f72
      Paul Eggert authored
      * 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).
      89561f72
  16. 17 Jun, 2013 1 commit
    • Paul Eggert's avatar
      Use functions, not macros, for XINT etc. · 84575e67
      Paul Eggert authored
      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.
      84575e67
  17. 16 Jun, 2013 1 commit
  18. 13 Jun, 2013 1 commit
  19. 11 Jun, 2013 1 commit
  20. 08 Jun, 2013 1 commit
    • Jan Djärv's avatar
      Fix compilation issues for GNUStep and GLIB conflicts. · b33f93ee
      Jan Djärv authored
      * 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
      b33f93ee
  21. 03 Jun, 2013 4 commits
    • Michael Albinus's avatar
    • Eli Zaretskii's avatar
      * configure.ac (HAVE_GFILENOTIFY): Do not change $LIBS. · 7f203aa1
      Eli Zaretskii authored
      (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.
      7f203aa1
    • Jan Djärv's avatar
      Add HAVE_GLIB check instead of checking individual libraries that use GLib. · 55a87246
      Jan Djärv authored
      * 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.
      55a87246
    • Michael Albinus's avatar
      * configure.ac (file-notification): New option, replaces inotify option. · c9628c79
      Michael Albinus authored
      (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.
      c9628c79
  22. 27 May, 2013 1 commit
  23. 18 May, 2013 1 commit
    • Paul Eggert's avatar
      Port --enable-gcc-warnings to clang. · 31ff141c
      Paul Eggert authored
      * 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.
      31ff141c
  24. 13 May, 2013 2 commits
  25. 09 May, 2013 1 commit
    • Jan Djärv's avatar
      Implement display-monitor-attributes-list for NS. · 4465bfb4
      Jan Djärv authored
      * 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.
      4465bfb4
  26. 07 May, 2013 2 commits
    • Paul Eggert's avatar
      Use Gnulib ACL implementation, for benefit of Solaris etc. · ffdc270a
      Paul Eggert authored
      * 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
      ffdc270a
    • YAMAMOTO Mitsuharu's avatar
      Add multi-monitor support on X11. · 4e3f9230
      YAMAMOTO Mitsuharu authored
      4e3f9230
  27. 26 Apr, 2013 1 commit
    • Paul Eggert's avatar
      Port better to AIX. · f780d632
      Paul Eggert authored
      * 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
      f780d632
  28. 23 Apr, 2013 1 commit