1. 06 Sep, 2012 4 commits
    • Eli Zaretskii's avatar
      Fix bug #12327 with SIGCHLD handling on Windows and some other systems. · 0216c128
      Eli Zaretskii authored
       src/process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
       SIGCHLD handling on systems that don't have WNOHANG.
      0216c128
    • Dmitry Antipov's avatar
      Explicitly mark buffer_defaults and buffer_local_symbols. · c752cfa9
      Dmitry Antipov authored
      * alloc.c (Fgarbage_collect): Mark buffer_defaults and
      mark_local_symbols here.
      (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
      since special buffers aren't marked here any more.
      (allocate_buffer): Chain new buffer with all_buffers here...
      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
      not here.
      (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
      (syms_of_buffer): Remove staticpro of the above.
      (init_buffer_once): Set names for buffer_defaults and
      buffer_local_symbols.
      c752cfa9
    • Paul Eggert's avatar
      Use bool for booleans in font-related modules. · a864ef14
      Paul Eggert authored
      * font.c (font_intern_prop, font_style_to_value)
      (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
      (generate_otf_features, font_check_otf_features, font_check_otf)
      (font_match_p, font_list_entities, font_at):
      * fontset.c (fontset_id_valid_p, reorder_font_vector
      (fontset_find_font, Fset_fontset_font)
      (face_suitable_for_char_p) [0]:
      * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
      (ftfont_open, ftfont_text_extents, ftfont_check_otf):
      (m17n_flt_initialized, ftfont_shape_by_flt):
      * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
      * nsfont.m (nsfont_draw):
      * w32font.c (w32font_draw):
      * w32term.c (x_draw_glyphless_glyph_string_foreground):
      Use bool for booleans.
      * font.h: Adjust to above API changes.
      (struct font, struct font_driver, struct font_driver_list):
      Use bool for booleans.
      (struct font): Remove useless member encoding_type.
      All users removed.
      * fontset.c, xftfont.c: Omit unnecessary static decls.
      a864ef14
    • Dmitry Antipov's avatar
      * alloc.c (mark_object): Revert window marking code · 0699fc18
      Dmitry Antipov authored
      since it's unsafe for the Fset_window_configuration.
      0699fc18
  2. 05 Sep, 2012 7 commits
    • 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
    • Dmitry Antipov's avatar
      Remove redundant or unused things here and there. · e3ccf108
      Dmitry Antipov authored
      * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
      * conf_post.h (RE_TRANSLATE): Use char_table_translate.
      * editfns.c (Fcompare_buffer_substrings): Likewise.
      * frame.h (struct terminal, struct font_driver_list):
      Remove redundant declarations.
      * window.h (Qleft, Qright): Likewise.
      e3ccf108
    • Dmitry Antipov's avatar
      Do not mark objects from deleted buffers, windows and frames. · 697e1e39
      Dmitry Antipov authored
      * alloc.c (mark_buffer): Mark just the buffer if it is dead.
      (mark_object): Likewise for windows and frames.
      697e1e39
    • Dmitry Antipov's avatar
      * alloc.c (valid_lisp_object_p): Treat killed buffers, · c1ca42ca
      Dmitry Antipov authored
      buffer_defaults and buffer_local_symbols as valid objects.
      Return special value to denote them.
      c1ca42ca
    • Paul Eggert's avatar
      * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean. · f75d7a91
      Paul Eggert authored
      * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
      (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
      (file_name_absolute_p, Fsubstitute_in_file_name):
      (check_executable, check_writable, Ffile_accessible_directory_p)
      (Fset_file_selinux_context, Fdefault_file_modes)
      (Finsert_file_contents, choose_write_coding_system)
      (Fwrite_region, build_annotations, a_write, e_write)
      (Fdo_auto_save):
      * filelock.c (boot_time_initialized, get_boot_time)
      (get_boot_time_1, lock_file_1, within_one_second):
      * floatfns.c (in_float):
      * fns.c (concat, internal_equal, Frequire, base64_encode_1)
      (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
      (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
      * lisp.h (struct Lisp_Hash_Table.cmpfn):
      * window.c (compare_window_configurations):
      Use bool for booleans.
      * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
      (Fdefault_file_modes): Now mode_t, not int, for modes.
      (Fdo_auto_save): Set a boolean to 1 rather than using ++.
      (internal_delete_file): Now returns void, not a (boolean) int,
      since nobody was looking at the return value.
      * lisp.h, window.h: Adjust to above API changes.
      f75d7a91
    • Paul Eggert's avatar
    • Juanma Barranquero's avatar
  3. 04 Sep, 2012 6 commits
    • Lars Ingebrigtsen's avatar
      Implement `debug-on-message'. · 7f7e0167
      Lars Ingebrigtsen authored
      This allows tracking down what piece of code is outputting stuff in
      the echo area.
      
      * eval.c (call_debugger): Make the function non-static so that we
      can call it from set_message.
      
      * xdisp.c (set_message): Implement the new variable `debug-on-message'.
      (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
      7f7e0167
    • 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
    • Stefan Monnier's avatar
      Macro-expand interpreted code during load. · 972debf2
      Stefan Monnier authored
      * src/lread.c (readevalloop): Call internal-macroexpand-for-load to perform
      eager (load-time) macro-expansion.
      * src/lisp.mk (lisp): Add macroexp.
      * lisp/loadup.el: Load macroexp.  Remove hack.
      * lisp/emacs-lisp/macroexp.el (macroexp--eval-if-compile): New function.
      (macroexp--expand-all): Use it to get better warnings.
      (macroexp--backtrace, macroexp--trim-backtrace-frame)
      (internal-macroexpand-for-load): New functions.
      (macroexp--pending-eager-loads): New var.
      (emacs-startup-hook): New hack to replace one in loadup.el.
      * lisp/emacs-lisp/cl-macs.el (cl--compiler-macro-list*)
      (cl--compiler-macro-cXXr): Move to top, before they can be used.
      (cl-psetf): Simplify.
      (cl-defstruct): Add indent rule.
      972debf2
    • 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
    • Eli Zaretskii's avatar
      Fix display of Arabic diacriticals on Windows, per bug #11860. · 30934d33
      Eli Zaretskii authored
       src/w32uniscribe.c (uniscribe_shape): Reverse the sign of
       offsets[j].dv, since the y axis of the screen coordinates points
       down, while the y axis of the font definition coordinates points
       up.  This fixes display of Arabic diacritics such as KASRA and
       KASRATAN.
      30934d33
    • Paul Eggert's avatar
      Be more systematic about _setjmp vs setjmp. · af26b72c
      Paul Eggert authored
      * alloc.c (test_setjmp, mark_stack):
      * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
      (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
      (png_load, my_error_exit, jpeg_load):
      * process.c (send_process_trap, send_process):
      Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
      The underscored versions are up to 30x faster on some hosts.
      Formerly, the code used setjmp+longjmp sometimes and
      _setjmp+_longjmp at other times, with no particular reason to
      prefer setjmp+longjmp.
      af26b72c
  4. 03 Sep, 2012 4 commits
    • Paul Eggert's avatar
      d42f4f0f
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 26d4541d
      Paul Eggert authored
      * buffer.c (Fdelete_all_overlays): Return nil.
      * doc.c (Fsubstitute_command_keys):
      * regex.c (WEAK_ALIAS):
      * xdisp.c (redisplay_internal):
      Move initialization down, to pacify GCC 4.7.1 -Wjump-misses-init.
      26d4541d
    • Martin Rudalics's avatar
      New macro with-temp-buffer-window and related fixes. · c5e28e39
      Martin Rudalics authored
      * buffer.c (Fdelete_all_overlays): New function.
      
      * window.el (temp-buffer-window-setup-hook)
      (temp-buffer-window-show-hook): New hooks.
      (temp-buffer-window-setup, temp-buffer-window-show)
      (with-temp-buffer-window): New functions.
      (fit-window-to-buffer): Remove unused optional argument
      OVERRIDE.
      (special-display-popup-frame): Make sure the window used shows
      BUFFER.
      
      * help.el (temp-buffer-resize-mode): Fix doc-string.
      (resize-temp-buffer-window): New optional argument WINDOW.
      
      * files.el (recover-file, save-buffers-kill-emacs):
      * dired.el (dired-mark-pop-up): Use with-temp-buffer-window.
      c5e28e39
    • Chong Yidong's avatar
      * gtkutil.c: Add extern decl for Qxft. · 3eab3ca9
      Chong Yidong authored
      3eab3ca9
  5. 02 Sep, 2012 7 commits
    • 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
    • Paul Eggert's avatar
      Clean up some extern decls. · a411ac43
      Paul Eggert authored
      Mostly, this hoists extern decls out of .c files and into .h files.
      That way, we're more likely to catch errors if the interfaces change.
      * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
      declare xg_mark_data.
      * dispextern.h (x_frame_parm_handlers):
      * font.h (Qxft):
      * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
      (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
      (Qultra_bold, Qoblique, Qitalic):
      Move extern decl here from .c file.
      * alloc.c (xg_mark_data) [USE_GTK]:
      * doc.c (Qclosure):
      * eval.c (Qlexical_binding):
      * fns.c (time) [!HAVE_UNISTD_H]:
      * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
      (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
      * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
      * lread.c (Qinternal_interpreter_environment):
      * minibuf.c (Qbuffer):
      * process.c (QCfamily, QCfilter):
      * widget.c (free_frame_faces):
      * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
      * xfont.c (x_clear_errors):
      * xterm.c (x_frame_parm_handlers):
      Remove now-redundant extern decls.
      * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
      * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
      Now static.
      * xfaces.c: Remove unnecessary static decls.
      * xterm.c (updating_frame): Remove decl of nonexistent object.
      a411ac43
    • Paul Eggert's avatar
      * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS) · c04889f8
      Paul Eggert authored
      when building globals.h, as the objects that are not built on
      this host are not needed to compile C files on this host.
      c04889f8
    • Jan Djärv's avatar
      Prototype for x_wm_set_size_hint restored. · 8b339673
      Jan Djärv authored
      * frame.h: Add missing prototype for x_wm_set_size_hint.
      
      * gtkutil.h: Remove prototype for x_wm_set_size_hint.
      8b339673
    • Paul Eggert's avatar
      * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean. · a08d4ba7
      Paul Eggert authored
      * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
      (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
      (Fsubstitute_command_keys):
      * editfns.c (region_limit, find_field, Fconstrain_to_field)
      (save_excursion_save, save_excursion_restore)
      (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
      (format_time_string, general_insert_function)
      (make_buffer_string, make_buffer_string_both)
      (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
      * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
      (copy_text, insert_1, insert_1_both, insert_from_string)
      (insert_from_string_before_markers, insert_from_string_1)
      (insert_from_buffer, insert_from_buffer_1, replace_range)
      (replace_range_2, del_range_1, del_range_byte, del_range_both)
      (del_range_2, modify_region):
      * intervals.c (intervals_equal, balance_possible_root_interval)
      (adjust_intervals_for_insertion, merge_properties_sticky)
      (graft_intervals_into_buffer, lookup_char_property)
      (adjust_for_invis_intang, set_point_both)
      (get_property_and_range, compare_string_intervals)
      (set_intervals_multibyte_1, set_intervals_multibyte):
      * keyboard.c (decode_timer):
      Use bool for boolean.
      * intervals.h, lisp.h, systime.h: Reflect above API changes.
      * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
      a08d4ba7
    • Chong Yidong's avatar
      * keymap.c (push_key_description): Print M-TAB as C-M-i. · 48c948de
      Chong Yidong authored
      Fixes: debbugs:11758
      48c948de
    • Juanma Barranquero's avatar
      src/makefile.w32-in: Update dependencies. · 6c49a40b
      Juanma Barranquero authored
      (CCL_H, W32FONT_H): New macros.
      (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
      ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
      ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
      ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
      ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
      ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update.
      6c49a40b
  6. 01 Sep, 2012 7 commits
    • Eli Zaretskii's avatar
      Further fix for bug #11860 with Arabic display on Windows. · 7e510e28
      Eli Zaretskii authored
       src/w32uniscribe.c (uniscribe_shape): Handle correctly the case of
       more than one grapheme cluster passed to the shaper: compute the
       offset adjustment values separately for each cluster.
      7e510e28
    • Eli Zaretskii's avatar
    • Eli Zaretskii's avatar
      Fix last changes related to w32 and Cygwin. · 4dfbd238
      Eli Zaretskii authored
       src/image.c: Restore mistakenly removed inclusion of w32.h.  Without
       it, GCC doesn't see prototypes of w32_delayed_load, and complains
       about implicit conversions from integer to pointer.
      4dfbd238
    • Daniel Colascione's avatar
      86571ae0
    • 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
      * sysdep.c (seed_random): Fix typo: HAV_LRAND48 -> HAVE_LRAND48. · 33634217
      Paul Eggert authored
      This fixes a bug on old systems that do not have the 'random' function.
      33634217
    • 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
  7. 31 Aug, 2012 3 commits
  8. 30 Aug, 2012 2 commits