1. 27 Aug, 2013 3 commits
    • Glenn Morris's avatar
      3ed86db9
    • Dmitry Antipov's avatar
      * configure.ac (DOCMISC_DVI_W32, DOCMISC_HTML_W32, DOCMISC_INFO_W32) · 15091df5
      Dmitry Antipov authored
      (DOCMISC_PDF_W32, DOCMISC_PS_W32): No spaces!
      15091df5
    • Glenn Morris's avatar
      Move source for Emacs on MS Windows FAQ here from Emacs webpages repository · 1857cd3f
      Glenn Morris authored
      * 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.
      1857cd3f
  2. 23 Aug, 2013 1 commit
  3. 22 Aug, 2013 1 commit
  4. 21 Aug, 2013 1 commit
    • Paul Eggert's avatar
      Port close-on-exec pty creation to FreeBSD 9.1-RELEASE. · f035e3a9
      Paul Eggert authored
      * 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
      f035e3a9
  5. 15 Aug, 2013 1 commit
  6. 14 Aug, 2013 1 commit
  7. 12 Aug, 2013 4 commits
    • Eli Zaretskii's avatar
      Fix zlib support on MS-Windows. · aa942e2b
      Eli Zaretskii authored
       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.
      aa942e2b
    • Paul Eggert's avatar
      Minor zlib configuration tweaks. · 1d238bc7
      Paul Eggert authored
      * 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.
      1d238bc7
    • Eli Zaretskii's avatar
      Fix build with zlib on MS-Windows. · 594a4307
      Eli Zaretskii authored
       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.
      594a4307
    • Glenn Morris's avatar
      Add build, install, uninstall rules for all dvi, html, pdf, ps manuals · 8496d8d7
      Glenn Morris authored
      * 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.
      8496d8d7
  8. 11 Aug, 2013 2 commits
  9. 10 Aug, 2013 1 commit
  10. 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
  11. 27 Jul, 2013 1 commit
  12. 24 Jul, 2013 1 commit
  13. 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
  14. 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
  15. 13 Jul, 2013 1 commit
  16. 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
  17. 09 Jul, 2013 1 commit
  18. 08 Jul, 2013 1 commit
  19. 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
  20. 02 Jul, 2013 3 commits
  21. 30 Jun, 2013 1 commit
  22. 22 Jun, 2013 1 commit
  23. 21 Jun, 2013 1 commit
  24. 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
  25. 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
  26. 16 Jun, 2013 1 commit
  27. 13 Jun, 2013 1 commit