1. 05 Sep, 2012 1 commit
    • Paul Eggert's avatar
      Fix race conditions with signal handlers and errno. · 20ef56db
      Paul Eggert authored
      Be more systematic about preserving errno whenever a signal
      handler returns, even if it's not in the main thread.  Do this by
      renaming signal handlers to distinguish between signal delivery
      and signal handling.  All uses changed.
      * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
      * data.c (deliver_arith_signal): Rename from arith_error.
      * dispnew.c (deliver_window_change_signal): Rename from
      window_change_signal.
      * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
      (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
      * keyboard.c (deliver_input_available_signal): Rename from
      input_available_signal.
      (deliver_user_signal): Rename from handle_user_signal.
      (deliver_interrupt_signal): Rename from interrupt_signal.
      * process.c (deliver_pipe_signal): Rename from send_process_trap.
      (deliver_child_signal): Rename from sigchld_handler.
      * atimer.c (handle_alarm_signal):
      * data.c (handle_arith_signal):
      * dispnew.c (handle_window_change_signal):
      * emacs.c (handle_fatal_signal, handle_danger_signal):
      * keyboard.c (handle_input_available_signal):
      * keyboard.c (handle_user_signal, handle_interrupt_signal):
      * process.c (handle_pipe_signal, handle_child_signal):
      New functions, with the actual signal-handling code taken from the
      original respective signal handlers, sans the sporadic attempts to
      preserve errno, since that's now done by handle_on_main_thread.
      * atimer.c (alarm_signal_handler): Remove unnecessary decl.
      * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
      * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
      Move to sysdep.c.
      (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
      Move initialization of main_thread to sysdep.c's init_signals.
      * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
      our usage, and simplifies the mainline code.
      (record_child_status_change): New static function, as a helper
      for handle_child_signal, and with most of the old child handler's
      contents.
      (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
      (handle_child_signal): Use the above.
      * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
      Moved here from emacs.c.
      (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
      code moved here from emacs.c's main function.
      * sysdep.c, syssignal.h (handle_on_main_thread): New function,
      replacing the old SIGNAL_THREAD_CHECK.  All uses changed.  This
      lets callers save and restore errno properly.
      20ef56db
  2. 04 Sep, 2012 2 commits
    • Paul Eggert's avatar
      Give more-useful info on a fatal error (Bug#12328). · cf29dd84
      Paul Eggert authored
      * doc/emacs/trouble.texi (Crashing): New section, documenting this.
      * etc/NEWS: Document the change.
      * src/alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
      (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
      of doing the work ourselves.
      * src/emacs.c (fatal_error_signal): Let fatal_error_backtrace
      do most of the work.
      (fatal_error_backtrace): New function, taken from the guts
      of the old fatal_error_signal, but with a new option to output
      a backtrace.
      (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
      info about the signal than just its number.
      * src/lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
      * src/sysdep.c: Include <execinfo.h>
      (emacs_backtrace): New function, taken partly from the previous
      code of the 'die' function.
      (emacs_abort): Call fatal_error_backtrace rather than abort.
      cf29dd84
    • Paul Eggert's avatar
      Simplify redefinition of 'abort' (Bug#12316). · 1088b922
      Paul Eggert authored
      Do not try to redefine the 'abort' function.  Instead, redo
      the code so that it calls 'emacs_abort' rather than 'abort'.
      This removes the need for the NO_ABORT configure-time macro
      and makes it easier to change the abort code to do a backtrace.
      * configure.ac (NO_ABRT): Remove.
      * admin/CPP-DEFINES (NO_ABORT): Remove.
      * nt/inc/ms-w32.h (w32_abort) [HAVE_NTGUI]: Remove.
      * src/.gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
      * src/emacs.c (abort) [!DOS_NT && !NO_ABORT]:
      Remove; sysdep.c's emacs_abort now takes its place.
      * src/lisp.h (emacs_abort): New decl.  All calls from Emacs code to
      'abort' changed to use 'emacs_abort'.
      * src/msdos.c (dos_abort) [defined abort]: Remove; not used.
      (abort) [!defined abort]: Rename to ...
      (emacs_abort): ... new name.
      * src/sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
      the place of the old 'abort' in emacs.c.
      * src/w32.c, src/w32fns.c (abort): Do not #undef.
      * src/w32.c (emacs_abort): Rename from w32_abort.
      1088b922
  3. 02 Sep, 2012 1 commit
    • Paul Eggert's avatar
      * emacs.c, eval.c: Use bool for boolean. · 1882aa38
      Paul Eggert authored
      * emacs.c (initialized, inhibit_window_system, running_asynch_code):
      (malloc_using_checking) [DOUG_LEA_MALLOC]:
      (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
      (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
      (main, decode_env_path, Fdaemon_initialized):
      * eval.c (call_debugger, Finteractive_p, interactive_p):
      (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
      (maybe_call_debugger, Fbacktrace):
      * process.c (read_process_output, exec_sentinel):
      Use bool for booleans.
      * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
      All callers changed.
      * eval.c (interactive_p): Omit always-true boolean argument
      EXCLUDE_SUBRS_P.  All callers changed.
      * dispextern.h, lisp.h: Reflect above API changes.
      * firstfile.c (dummy): Use the address of 'main', whose signature
      won't change, instead of the address of 'initialize', whose
      signature just changed from int to bool.
      * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
      * msdos.c (fatal_error_in_progress): ... from here.
      * xdisp.c (redisplaying_p): Now a boolean.  Set it to 1 instead
      of incrementing it.
      (redisplay_internal, unwind_redisplay): Simply clear
      REDISPLAYING_P when unwinding, instead of saving its previous,
      always-false value and then restoring it.
      1882aa38
  4. 01 Sep, 2012 2 commits
    • Daniel Colascione's avatar
      Refactor window-system configuration · 17a2cbbd
      Daniel Colascione authored
      This change streamlines the window system selection code in
      configure.in and moves many common function declarations from
      window-specific headers to frame.h.  It introduces a new TERM_HEADER
      macro in config.h: we set this macro to the right header to use for
      the window system for which we're compiling Emacs and have source
      files include it indirectly.  This way, we don't have to teach every
      file about every window system.
      17a2cbbd
    • Paul Eggert's avatar
      Better seed support for (random). · 0e23ef9d
      Paul Eggert authored
      * doc/lispref/numbers.texi (Random Numbers): Document new behavior of
      the calls (random) and (random STRING).
      * etc/NEWS: Document new behavior of (random), (random "string").
      * lisp/play/5x5.el, lisp/play/animate.el, lisp/play/cookie1.el:
      * lisp/play/dissociate.el, lisp/play/doctor.el, lisp/play/dunnet.el:
      * lisp/play/gomoku.el, lisp/play/landmark.el, lisp/play/mpuz.el:
      * lisp/play/tetris.el, lisp/play/zone.el:
      * lisp/calc/calc-comb.el (math-init-random-base):
      * lisp/play/blackbox.el (bb-init-board):
      * lisp/play/life.el (life):
      * lisp/server.el (server-use-tcp):
      * lisp/type-break.el (type-break):
      Remove unnecessary call to (random t).
      * lisp/net/sasl.el (sasl-unique-id-function):
      Change (random t) to (random), now that the latter is more random.
      * lisp/play/life.el (life-initialized): Remove no-longer-needed var.
      * lisp/gnus/gnus-sync.el (gnus-sync-lesync-setup):
      * lisp/gnus/message.el (message-canlock-generate, message-unique-id):
      Change (random t) to (random), now that the latter is more random.
      * lisp/org/org-id.el (org-id-uuid):
      Change (random t) to (random), now that the latter is more random.
      * src/emacs.c (main): Call init_random.
      * src/fns.c (Frandom): Set the seed from a string argument, if given.
      Remove long-obsolete Gentzel cruft.
      * src/lisp.h, src/sysdep.c (seed_random): Now takes address and size, not long.
      (init_random): New function.
      0e23ef9d
  5. 25 Aug, 2012 1 commit
  6. 19 Aug, 2012 1 commit
    • Paul Eggert's avatar
      Rely on <unistd.h> to declare 'environ', · b69a6d22
      Paul Eggert authored
      as gnulib does this if the system doesn't.
      * lib-src/emacsclient.c (environ): Remove decl.
      * src/callproc.c, src/editfns.c, src/process.c (environ) [!USE_CRT_DLL]:
      * src/emacs.c (environ) [DOUG_LEA_MALLOC]:
      * src/vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
      * src/vm-limit.c: Include <unistd.h>, for 'environ'.
      b69a6d22
  7. 05 Aug, 2012 2 commits
  8. 04 Aug, 2012 1 commit
    • Eli Zaretskii's avatar
      Fix bug #11959 with startup warnings on MS-Windows about ../site-lisp. · 76151e2c
      Eli Zaretskii authored
       src/w32.c (init_environment): Change the default values of many
       environment variables in dflt_envvars[] to NULL, to avoid pushing
       them into environment when they were not already defined.  Remove
       the code that deletes site-lisp subdirectories from the default
       value of EMACSLOADPATH, as it is no longer needed.
       (check_windows_init_file): Now external, not static.  Use
       Vload_path as is, without adding anything, as this function is now
       called when Vload_path is already set up.
       src/w32.h (check_windows_init_file): Add prototype.
       src/emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
       directory, ignore the /*/i386/ tail in Vinvocation_directory, for
       compatibility with Posix platforms.
       (main): Move the call to check_windows_init_file to here from
       w32.c.
       (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
       any, in the DEFALT argument into the root of the Emacs build or
       installation tree, as appropriate.
       src/callproc.c (init_callproc_1): Call decode_env_path instead of
       doing its equivalent by hand.
       (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
       the code that sets Vexec_path run on MS-Windows.
       src/lread.c (init_lread): Add comments to #ifdef's.
      
       nt/paths.h (PATH_LOADSEARCH, PATH_SITELOADSEARCH, PATH_EXEC)
       (PATH_DATA, PATH_DOC): Replace dummy directory names with
       directories relative to %emacs_dir%.
       (PATH_EXEC): Add lib-src/oo-spd/i386 and lib-src/oo/i386, to cater
       to the use case of running un-installed Emacs.
      76151e2c
  9. 02 Aug, 2012 1 commit
  10. 31 Jul, 2012 1 commit
  11. 26 Jul, 2012 3 commits
    • Paul Eggert's avatar
      * emacs.c: Do not include <verify.h>; no longer needed. · 562157c8
      Paul Eggert authored
      Fixes: debbugs:12036
      562157c8
    • Paul Eggert's avatar
      Fix export of symbols to GDB. · 5eceb8fb
      Paul Eggert authored
      * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
      emacs.c, as this is a more-suitable home.  Had this been done earlier
      the fix for 1995-05-30T23:07:27Z!kwzh@gnu.org would have avoided some of the problems noted in
      <http://bugs.gnu.org/1995-05-30T23:07:27Z!kwzh@gnu.org#13> by Eli Zaretskii, as the scope problems
      would have been more obvious.
      * emacs.c (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
      (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
      (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
      Remove; now done in lisp.h.
      * lisp.h (PUBLISH_TO_GDB): New macro.
      (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
      (DATA_SEG_BITS): Use it.
      (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
      (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
      * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
      not be usable in #if.  This simplifies things.
      5eceb8fb
    • Paul Eggert's avatar
      Simplify export of symbols to GDB; fix related .gdbinit bugs. · 1781b9e9
      Paul Eggert authored
      * etc/emacs-buffer.gdb ($tagmask, $valmask): Remove.
      (ygetptr): Adjust to recent changes in lisp.h and emacs.c,
      by using VALMASK instead of $valmask, CHECK_LISP_OBJECT_TYPE
      instead of gdb_use_union, and DATA_SEG_BITS instead of
      gdb_data_seg_bits.  Also, use $ptr.i rather than $ptr.u.val.
      * src/.gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
      $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
      (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
      Adjust to changes in lisp.h and emacs.c, by using
      CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
      of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
      INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
      gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
      instead of gdb_valbits.
      (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
      PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
      instead of gdb_array_mark_flag.
      (xboolvector): Get size from $->size, not $->header.size.
      Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
      (xreload, hook-run, hookpost-run): Remove.
      * src/emacs.c: Include <verify.h>.
      (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
      (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
      Remove.
      (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
      (gdb_USE_LSB_TAG): New enum constants.
      (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
      Also define these as enum constants, so they're visible to GDB.
      (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
      as constants, so they're visible to GDB.
      * src/lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
      (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
      Now enum constants, not macros, so they're visible to GDB.
      (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
      more convenient now.  All uses changed.
      (VALMASK) [USE_LSB_TAG]: Also define in this case.
      * src/mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
      1781b9e9
  12. 16 Jul, 2012 1 commit
    • Dmitry Antipov's avatar
      Remove empty and useless init functions. · 6a0dd1d7
      Dmitry Antipov authored
      * lisp.h (init_character_once, init_fns, init_image)
      (init_filelock, init_sound): Remove prototype.
      * character.c (init_character_once): Remove.
      * filelock.c (init_filelock): Likewise.
      * fns.c (init_fns): Likewise.
      * image.c (init_image): Likewise.
      * sound.c (init_sound): Likewise.
      * emacs.c (main): Adjust accordingly.
      6a0dd1d7
  13. 12 Jul, 2012 1 commit
    • Glenn Morris's avatar
      Rename init_process rather than working around it on Darwin · b82da769
      Glenn Morris authored
      The old name is also the name of a Mach system call.
      
      * src/process.c (init_process_emacs): Rename from init_process.
      
      * src/lisp.h, src/emacs.c: Update for this name change.
      
      * src/nsgui.h, src/sysselect.h, src/s/darwin.h:
      Remove workaround that is no longer needed.
      b82da769
  14. 10 Jul, 2012 1 commit
    • Glenn Morris's avatar
      Stop ns builds setting the EMACSLOADPATH environment variable · 9e059e3f
      Glenn Morris authored
      Ref bugs 4309, 6401, etc.
      This is the last environment variable (ab)used by the ns port in this way.
      
      * src/nsterm.m (ns_load_path): Rename from ns_init_paths.
      Now it does not set EMACSLOADPATH, just returns the load-path string.
      * src/nsterm.h: Update accordingly.
      
      * src/lread.c [HAVE_NS]: Include nsterm.h.
      (init_lread) [HAVE_NS]: Use ns_load_path.
      
      * src/emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
      9e059e3f
  15. 09 Jul, 2012 1 commit
  16. 05 Jul, 2012 2 commits
    • Paul Eggert's avatar
      More xmalloc and related cleanup. · 38182d90
      Paul Eggert authored
      * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
      * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
      * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
      * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
      * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
      * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
      * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
      * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
      * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
      * xterm.c:
      Omit needless casts involving void * pointers and allocation.
      Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
      as the former is more robust if P's type is changed.
      Prefer xzalloc to xmalloc + memset 0.
      Simplify malloc-or-realloc to realloc.
      Don't worry about xmalloc returning a null pointer.
      Prefer xstrdup to xmalloc + strcpy.
      * editfns.c (Fmessage_box): Grow message_text by at least 80 when
      growing it.
      * keyboard.c (apply_modifiers_uncached): Prefer local array to
      alloca of a constant.
      38182d90
    • Dmitry Antipov's avatar
      Cleanup xmalloc. · 23f86fce
      Dmitry Antipov authored
      * admin/coccinelle/xzalloc.cocci: Semantic patch to convert
      calls to xmalloc with following memset to xzalloc.
      * src/lisp.h (xzalloc): New prototype.  Omit needless casts.
      * src/alloc.c (xzalloc): New function.  Omit needless casts.
      * src/charset.c: Omit needless casts.  Convert all calls to
      malloc with following memset to xzalloc.
      * src/dispnew.c: Likewise.
      * src/fringe.c: Likewise.
      * src/image.c: Likewise.
      * src/sound.c: Likewise.
      * src/term.c: Likewise.
      * src/w32fns.c: Likewise.
      * src/w32font.c: Likewise.
      * src/w32term.c: Likewise.
      * src/xfaces.c: Likewise.
      * src/xfns.c: Likewise.
      * src/xterm.c: Likewise.
      * src/atimer.c: Omit needless casts.
      * src/buffer.c: Likewise.
      * src/callproc.c: Likewise.
      * src/ccl.c: Likewise.
      * src/coding.c: Likewise.
      * src/composite.c: Likewise.
      * src/doc.c: Likewise.
      * src/doprnt.c: Likewise.
      * src/editfns.c: Likewise.
      * src/emacs.c: Likewise.
      * src/eval.c: Likewise.
      * src/filelock.c: Likewise.
      * src/fns.c: Likewise.
      * src/gtkutil.c: Likewise.
      * src/keyboard.c: Likewise.
      * src/lisp.h: Likewise.
      * src/lread.c: Likewise.
      * src/minibuf.c: Likewise.
      * src/msdos.c: Likewise.
      * src/print.c: Likewise.
      * src/process.c: Likewise.
      * src/region-cache.c: Likewise.
      * src/search.c: Likewise.
      * src/sysdep.c: Likewise.
      * src/termcap.c: Likewise.
      * src/terminal.c: Likewise.
      * src/tparam.c: Likewise.
      * src/w16select.c: Likewise.
      * src/w32.c: Likewise.
      * src/w32reg.c: Likewise.
      * src/w32select.c: Likewise.
      * src/w32uniscribe.c: Likewise.
      * src/widget.c: Likewise.
      * src/xdisp.c: Likewise.
      * src/xmenu.c: Likewise.
      * src/xrdb.c: Likewise.
      * src/xselect.c: Likewise.
      23f86fce
  17. 04 Jul, 2012 2 commits
    • Paul Eggert's avatar
      * emacs.c (gdb_pvec_type): Change it back to enum pvec_type. · 065c9eb4
      Paul Eggert authored
      This variable's comment says Emacs needs at least one GDB-visible
      symbol of type enum pvec_type, to work around GDB problems.
      The symbol's value doesn't matter.
      065c9eb4
    • Stefan Monnier's avatar
      Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE. · ee28be33
      Stefan Monnier authored
      * src/lisp.h (enum pvec_type): Use fewer bits.
      (PSEUDOVECTOR_SIZE_BITS): New constant.
      (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
      (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
      change in pvec_type.
      (PSEUDOVECTOR_TYPEP): New macro.
      (TYPED_PSEUDOVECTORP): Use it.
      * src/fns.c (internal_equal): Adapt code to extract pvectype.
      * src/emacs.c (gdb_pvec_type): Update type.
      * src/alloc.c (PSEUDOVECTOR_NBYTES): New macro.
      (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
      (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
      (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
      (sweep_vectors): Use it.  Use local var `total_bytes' instead of
      abusing vector->header.next.nbytes.
      (live_vector_p): Use PVEC_TYPE.
      (mark_object): Adapt code to extract pvectype.  Use switch.
      ee28be33
  18. 24 Jun, 2012 1 commit
  19. 16 Jun, 2012 1 commit
    • Andreas Schwab's avatar
      * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline. · e5560ff7
      Andreas Schwab authored
      (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
      * character.c (_fetch_multibyte_char_p): Remove.
      * alloc.c: Include "character.h" before "buffer.h".
      * bidi.c: Likewise.
      * buffer.c: Likewise.
      * bytecode.c: Likewise.
      * callint.c: Likewise.
      * callproc.c: Likewise.
      * casefiddle.c: Likewise.
      * casetab.c: Likewise.
      * category.c: Likewise.
      * cmds.c: Likewise.
      * coding.c: Likewise.
      * composite.c: Likewise.
      * dired.c: Likewise.
      * dispnew.c: Likewise.
      * doc.c: Likewise.
      * dosfns.c: Likewise.
      * editfns.c: Likewise.
      * emacs.c: Likewise.
      * fileio.c: Likewise.
      * filelock.c: Likewise.
      * font.c: Likewise.
      * fontset.c: Likewise.
      * fringe.c: Likewise.
      * indent.c: Likewise.
      * insdel.c: Likewise.
      * intervals.c: Likewise.
      * keyboard.c: Likewise.
      * keymap.c: Likewise.
      * lread.c: Likewise.
      * macros.c: Likewise.
      * marker.c: Likewise.
      * minibuf.c: Likewise.
      * nsfns.m: Likewise.
      * nsmenu.m: Likewise.
      * print.c: Likewise.
      * process.c: Likewise.
      * regex.c: Likewise.
      * region-cache.c: Likewise.
      * search.c: Likewise.
      * syntax.c: Likewise.
      * term.c: Likewise.
      * textprop.c: Likewise.
      * undo.c: Likewise.
      * unexsol.c: Likewise.
      * w16select.c: Likewise.
      * w32fns.c: Likewise.
      * w32menu.c: Likewise.
      * window.c: Likewise.
      * xdisp.c: Likewise.
      * xfns.c: Likewise.
      * xmenu.c: Likewise.
      * xml.c: Likewise.
      * xselect.c: Likewise.
      e5560ff7
  20. 13 Jun, 2012 2 commits
    • Andreas Schwab's avatar
      Use a simple struct to implement compile time checks for the Lisp_Object type · 646b5f55
      Andreas Schwab authored
      * configure.in: Rename --enable-use-lisp-union-type to
      --enable-check-lisp-object-type and define CHECK_LISP_OBJECT_TYPE
      instead of USE_LISP_UNION_TYPE.
      
      * admin/make-emacs: Rename --union-type to --check-lisp-type.  Define
      CHECK_LISP_OBJECT_TYPE insted of USE_LISP_UNION_TYPE.
      * admin/CPP-DEFINES (DEBUG_LISP_OBJECT_TYPE): Renamed from
      USE_LISP_UNION_TYPE.
      
      * src/lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
      instead of union.
      (XLI, XIL): Define.
      (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG): Use
      them.
      * src/emacs.c (gdb_use_struct): Renamed from gdb_use_union.
      * src/.gdbinit: Check gdb_use_struct instead of gdb_use_union.
      * src/alloc.c (widen_to_Lisp_Object): Removed.
      (mark_memory): Use XIL instead of widen_to_Lisp_Object.
      * src/frame.c (delete_frame): Remove outdated comment.
      * src/w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
      USE_LISP_UNION_TYPE.
      (Fw32_unregister_hot_key): Likewise.
      (Fw32_toggle_lock_key): Likewise.
      * src/w32menu.c (add_menu_item): Likewise.
      (w32_menu_display_help): Use XIL instead of checking
      USE_LISP_UNION_TYPE.
      * src/w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
      (init_heap): Likewise.
      * src/w32term.c (w32_read_socket): Update comment.
      646b5f55
    • Paul Eggert's avatar
      USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604) · bfe3e0a2
      Paul Eggert authored
      * alloc.c (make_number) [!defined make_number]:
      Remove, as lisp.h always defines this now.
      (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
      (roundup_size): Verify that it is a power of 2.
      * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
      * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
      * lisp.h (USE_LSB_TAG): Allow the builder to compile with
      -DUSE_LSB_TAG=0, to override the automatically-selected default.
      USE_LSB_TAG now is always defined to be either 0 or 1.
      All uses changed.
      (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
      code works fine either way, and efficiency is not a concern here,
      as the union type is for debugging, not for production.
      (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
      Use an inline function on all platforms when using the union type,
      since this is simpler and 'static inline' can be used portably
      within Emacs now.
      (LISP_INITIALLY_ZERO): New macro.
      (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
      (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
      bfe3e0a2
  21. 30 May, 2012 1 commit
    • Paul Eggert's avatar
      Clean up __executable_start, monstartup when --enable-profiling. · 9e4bf381
      Paul Eggert authored
      The following changes affect the code only when profiling.
      * dispnew.c (__executable_start): Rename from safe_bcopy.
      Define only on platforms that need it.
      * emacs.c: Include <sys/gmon.h> when profiling.
      (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
      (__executable_start): Remove decl, since lisp.h does it now.
      (safe_bcopy): Remove decl; no longer has that name.
      (main): Coalesce #if into single bit of code, for simplicity.
      Cast pointers to uintptr_t, since standard libraries want integers
      and not pointers.
      * lisp.h (__executable_start): New decl.
      9e4bf381
  22. 07 Apr, 2012 1 commit
    • Eli Zaretskii's avatar
      Support building on MS-Windows with libxml2. · 9078ead6
      Eli Zaretskii authored
       src/makefile.w32-in (OBJ2): Add xml.$(O).
       (GLOBAL_SOURCES): Add xml.c.
       ($(BLD)/xml.$(O)): New dependency list.
       src/xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
       (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
       (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
       [!WINDOWSNT]: New macros.
       (init_libxml2_functions, libxml2_loaded_p): New functions.
       (parse_region): Call fn_xmlCheckVersion instead of using the macro
       LIBXML_TEST_VERSION.  Call libxml2 functions via the fn_* macros.
       (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
       Calls xmlCleanupParser only if libxml2 was loaded (or statically
       linked in).
       (Flibxml_parse_html_region, Flibxml_parse_xml_region): Call
       init_libxml2_functions before calling libxml2 functions.
       (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
       src/emacs.c: Don't include libxml/parser.h.
       (shut_down_emacs): Call xml_cleanup_parser, instead of calling
       xmlCleanupParser directly.
       src/ lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
      
       nt/configure.bat: Support building with libxml2.
       nt/INSTALL:
       nt/README.W32: Add information about libxml2.
      
       lisp/term/w32-win.el (dynamic-library-alist): Add libxml2 DLLs.
      
       lib-src/makefile.w32-in (obj): Add xml.o.
      9078ead6
  23. 11 Jan, 2012 1 commit
  24. 10 Jan, 2012 2 commits
  25. 05 Jan, 2012 2 commits
    • Glenn Morris's avatar
      acaf905b
    • Glenn Morris's avatar
      Update short copyright year to 2012. · 1c6e5a32
      Glenn Morris authored
      * etc/refcards/calccard.tex, etc/refcards/cs-dired-ref.tex:
      * etc/refcards/cs-refcard.tex, etc/refcards/cs-survival.tex:
      * etc/refcards/de-refcard.tex, etc/refcards/dired-ref.tex:
      * etc/refcards/fr-dired-ref.tex, etc/refcards/fr-refcard.tex:
      * etc/refcards/fr-survival.tex, etc/refcards/orgcard.tex:
      * etc/refcards/pl-refcard.tex, etc/refcards/pt-br-refcard.tex:
      * etc/refcards/refcard.tex, etc/refcards/ru-refcard.tex:
      * etc/refcards/sk-dired-ref.tex, etc/refcards/sk-refcard.tex:
      * etc/refcards/sk-survival.tex, etc/refcards/survival.tex:
      * etc/refcards/vipcard.tex, etc/refcards/viperCard.tex:
      * lib-src/ebrowse.c (version) <emacs_copyright>:
      * lib-src/etags.c (print_version) <emacs_copyright>:
      * lib-src/rcs2log (Copyright): Update short copyright year to 2012.
      * nextstep/Cocoa/Emacs.base/Contents/Info.plist:
      * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings:
      * nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist:
      * src/emacs.c (emacs_copyright): Update short copyright year to 2012.
      1c6e5a32
  26. 21 Dec, 2011 1 commit
    • Jan Djärv's avatar
      Fix biggest memory leaks in NS-port. More remain. · 204ee57f
      Jan Djärv authored
      * emacs.c (ns_pool): New variable.
      (main): Assign ns_pool.
      (Fkill_emacs): Call ns_release_autorelease_pool.
      
      * nsfns.m (x_set_background_color): Assign return value from
      ns_index_color to face-background instead of NSColor*.
      (ns_implicitly_set_icon_type): Fix indentation.
      Change assignment in for loop to comparison.
      
      * nsfont.m (ns_spec_to_descriptor): Fix indentation,
      autorelease fdesc, release fdAttrs and tdict.
      (ns_get_covering_families): Release charset.
      (ns_findfonts): Release NSFontDescriptor created with new.
      (ns_uni_to_glyphs): Fix indentation.
      (setString): Release attrStr before assigning new value.
      
      * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
      before returning.
      
      * nsterm.m (x_free_frame_resources): Release
      f->output_data.ns->miniimage
      (ns_index_color): Fix indentation.  Do not retain
      color_table->colors[i].
      204ee57f
  27. 12 Dec, 2011 1 commit
  28. 04 Dec, 2011 1 commit
    • Andreas Schwab's avatar
      Don't call Lisp in signal handler · 6c07aac2
      Andreas Schwab authored
      * emacs.c (Qkill_emacs): Define.
      (syms_of_emacs): Initialize it.
      * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
      Qquit_flag to `kill-emacs' instead.
      (quit_throw_to_read_char): Add parameter `from_signal'.  All
      callers changed.  Call Fkill_emacs if requested and safe.
      * lisp.h (QUIT): Call Fkill_emacs if requested.
      6c07aac2
  29. 14 Nov, 2011 1 commit
  30. 28 Oct, 2011 1 commit
    • Eli Zaretskii's avatar
      Fix bug #8562 with Emacs display on Windows 9X. · db4f02f2
      Eli Zaretskii authored
      Thanks to oslsachem <oslsachem@gmail.com> for helping to debug this.
      
       src/w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
       (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
       (g_b_init_get_glyph_outline_w): New static variables.
       (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
       (GetGlyphOutlineW_Proc): New typedefs.
       (w32_load_unicows_or_gdi32, get_outline_metrics_w)
       (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font): New
       functions.
       (w32font_open_internal, compute_metrics): Call
       get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
       instead of calling the "wide" APIs directly.
       src/emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
       src/w32.h (syms_of_w32font): Add prototype.
      db4f02f2