1. 07 Sep, 2012 1 commit
    • Paul Eggert's avatar
      Signal-handler cleanup. · 2fe28299
      Paul Eggert authored
      Emacs's signal handlers were written in the old 4.2BSD style with
      sigblock and sigmask and so forth, and this led to some
      inefficiencies and confusion.  Rewrite these to use
      pthread_sigmask etc. without copying signal sets around.  Also,
      get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
      'signal', and instead use functions that do not attempt to take
      over the system name space.  This patch causes Emacs's text
      segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
      * configure.ac (PTY_OPEN, PTY_TTY_NAME_SPRINTF):
      Adjust to syssignal.h changes.
      (SIGNAL_H_AB): Remove; no longer needed.
      * src/alloc.c, src/emacsgtkfixed.c, src/nsfns.m, src/widget.c, src/xmenu.c:
      Do not include <signal.h> or "syssignal.h", as these
      modules do not use signals.
      * src/atimer.c, src/callproc.c, src/data.c, src/dispnew.c, src/emacs.c:
      * src/floatfns.c, src/gtkutil.c, src/keyboard.c, src/process.c, src/sound.c:
      * src/sysdep.c, src/term.c, src/xterm.c:
      Do not include <signal.h>, as "syssignal.h" does that for us now.
      * src/atimer.c (sigmask_atimers): New function.
      (block_atimers, unblock_atimers): New functions,
      replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
      All uses replaced.
      * src/conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
      no longer needed here.
      * src/emacs.c (main): Inspect existing signal handler with sigaction,
      so that there's	no need to block and unblock SIGHUP.
      * src/sysdep.c (struct save_signal): New member 'action', replacing
      old member 'handler'.
      (save_signal_handlers, restore_signal_handlers):
      Use sigaction instead of 'signal' to save and restore.
      (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
      New function.  All users of 'signal' modified to use set_sighandler
      if they're writeonly, and to use sys_signal if they're read+write.
      (emacs_sigaction_init, forwarded_signal): New functions.
      (sys_signal): Remove.  All uses replaced by calls to sigaction
      and emacs_sigaction_init, or by direct calls to 'signal'.
      (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
      (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
      all uses replaced by pthread_sigmask etc. calls.
      * src/syssignal.h: Include <signal.h>.
      (emacs_sigaction_init, forwarded_signal): New decls.
      (SIGMASKTYPE): Remove.  All uses replaced by its definiens, sigset_t.
      (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
      (sigmask, sys_sigmask): Remove; no longer needed.
      (sigpause): Remove.  All uses replaced by its definiens, sigsuspend.
      (sigblock, sigunblock, sigfree):
      (sigsetmask) [!defined sigsetmask]:
      Remove.  All uses replaced by pthread_sigmask.
      (signal): Remove.  Its remaining uses (with SIG_DFL and SIG_IGN)
      no longer need to be replaced, and its typical old uses
      are now done via emacs_sigaction_init and sigaction.
      (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
      (sys_sigdel): Remove; unused.
      (NSIG): Remove a FIXME; the code's fine.  Remove an unnecessary ifdef.
      
      Fixes: debbugs:12327
      2fe28299
  2. 06 Sep, 2012 14 commits
    • Gnus developers's avatar
      Misc changes made in Gnus master · 845ce106
      Gnus developers authored
      Use combining faces for highlighting.
      Change ephemeral Gnus group names to be prettier.
      gnus-util.el: Fix compilation error on XEmacs 21.4.
      845ce106
    • 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
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Understand _ on &key args. · d458ef98
      Stefan Monnier authored
      (cl--make-usage-args): Strip _ from argument names.
      
      Fixes: debbugs:12367
      d458ef98
    • Chong Yidong's avatar
      Remove references to obsolete variable speedbar-key-map. · fcbfbdea
      Chong Yidong authored
      * speedbar.el (speedbar-update-flag, speedbar-mode): Remove
      references to obsolete variable speedbar-key-map.
      fcbfbdea
    • Rüdiger Sonderfeld's avatar
      Fix use of obsolete variables in vhdl-mode.el. · 20367d28
      Rüdiger Sonderfeld authored
      * progmodes/vhdl-mode.el (vhdl-speedbar-initialize): Don't use
      obsolete alias speedbar-key-map.
      (vhdl-doc-variable, vhdl-doc-mode): Use called-interactively-p.
      (vhdl-index-menu-init): Don't use obsolete variable font-lock-maximum-size.
      20367d28
    • Chong Yidong's avatar
    • 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
    • Juri Linkov's avatar
      * lisp/replace.el (replace-lax-whitespace): New defcustom. · 826b3235
      Juri Linkov authored
      (query-replace, query-replace-regexp, query-replace-regexp-eval)
      (replace-string, replace-regexp): Mention it in docstrings.
      (perform-replace, replace-highlight): Let-bind
      isearch-lax-whitespace and isearch-regexp-lax-whitespace according
      to the values of replace-lax-whitespace and regexp-flag.
      Don't let-bind search-whitespace-regexp. 
      
      * lisp/isearch.el (isearch-query-replace): Let-bind
      replace-lax-whitespace instead of let-binding
      replace-search-function and replace-re-search-function.
      (isearch-lazy-highlight-search): Let-bind isearch-lax-whitespace
      and isearch-regexp-lax-whitespace to lazy-highlight variables.
      (isearch-toggle-symbol): Set isearch-regexp to nil
      in isearch-word mode (like in isearch-toggle-word).
      
      Fixes: debbugs:10885
      826b3235
    • Juri Linkov's avatar
      Use `isearch-search-fun' in `perform-replace' (bug#10885, bug#10887). · 1ec5e41d
      Juri Linkov authored
      * lisp/replace.el (replace-search-function)
      (replace-re-search-function): Set default values to nil.
      (perform-replace): Let-bind isearch-related variables based on
      replace-related values, call `isearch-search-fun' and let-bind
      the result to `search-function'.  Remove code that sets
      `search-function' and `search-string' separately for
      `delimited-flag'.
      (replace-highlight): Add new argument `delimited-flag' and
      rename other arguments to the names used in `perform-replace'.
      Let-bind `isearch-word' to the argument `delimited-flag'.
      1ec5e41d
    • 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
    • Katsumi Yamaoka's avatar
      [Gnus] XEmacs 21.5 compilation fix · 4fd78b62
      Katsumi Yamaoka authored
      * gnus-score.el (gnus-score-decode-text-parts): Use #' for
        mm-text-parts used in labels macro to make it work with XEmacs 21.5.
      * gnus-util.el (gnus-string-prefix-p): New function, an alias to
        string-prefix-p in Emacs >=23.2.
      * nnmaildir.el (nnmaildir--ensure-suffix, nnmaildir--add-flag)
        (nnmaildir--remove-flag, nnmaildir--scan): Use gnus-string-match-p
        instead of string-match-p.
        (nnmaildir--scan): Use gnus-string-prefix-p instead of string-prefix-p.
      4fd78b62
    • Kenichi Handa's avatar
      merge trunk · fca81a8d
      Kenichi Handa authored
      fca81a8d
    • Kenichi Handa's avatar
  3. 05 Sep, 2012 15 commits
    • Gnus developers's avatar
      Merge changes made in Gnus master · 067b39d4
      Gnus developers authored
      2012-09-05  Magnus Henoch  <magnus.henoch@gmail.com>
      * nnmaildir.el (nnmaildir--article-set-flags): Fix compilation error.
      
      2012-09-05  Martin Stjernholm  <mast@lysator.liu.se>
      * gnus-demon.el (gnus-demon-init): Fixed regression when IDLE is t and
        TIME is set.
      
      2012-09-05  Juri Linkov  <juri@jurta.org>
      * gnus-group.el (gnus-read-ephemeral-bug-group): Allow opening more
        than one group at a time (bug#11961).
      067b39d4
    • Gnus developers's avatar
      Merge changes made in Gnus master · 350a1888
      Gnus developers authored
      2012-09-05 Julien Danjou <julien@danjou.info>
      * gnus-srvr.el (gnus-server-open-server): Don't message on failure:
        this hide the real reason with a message giving absolutely no hint.
      
      2012-09-05 Lars Ingebrigtsen <larsi@gnus.org>
      * gnus-group.el (gnus-group-mark-article-read): Propagate the read mark
        to the backend (bug#11804).
      * message.el (message-insert-newsgroups): Don't insert newsgroup
        duplicates (bug#12275).
      
      2012-09-05 John Wiegley <johnw@newartisans.com>
      * gnus.el (gnus-expand-group-parameters): Allow regexp substitutions in
        sieve rules.
      
      2012-09-05 Jan Tatarik <jan.tatarik@gmail.com>
      * gnus-score.el (gnus-score-decode-text-parts): Use #' for the local
        function.
      * gnus-logic.el (gnus-advanced-body): Allow scoring on decoded bodies.
      * gnus-score.el (gnus-score-decode-text-parts): Ditto.
      
      2012-09-05 Magnus Henoch <magnus.henoch@gmail.com>
      * nnmaildir.el: Make nnmaildir understand and write maildir flags.
        That is, rename files from "unique:2," to "unique:2,S" for "seen", etc.
        This should make nnmaildir more usable with offlineimap.
      350a1888
    • 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
    • Eli Zaretskii's avatar
    • 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
    • Glenn Morris's avatar
      Auto-commit of generated files. · e4996ae9
      Glenn Morris authored
      e4996ae9
    • Martin Rudalics's avatar
      Provide support for fitting frames to buffers. · ef654460
      Martin Rudalics authored
      * help.el (temp-buffer-max-height): New default value.
      (temp-buffer-resize-frames): New option.
      (resize-temp-buffer-window): Optionally resize frame.
      
      * window.el (fit-frame-to-buffer-bottom-margin): New option.
      (fit-frame-to-buffer): New function.
      ef654460
    • 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
    • Glenn Morris's avatar
    • Glenn Morris's avatar
      ChangeLog fixes · 1a1ecd2b
      Glenn Morris authored
      1a1ecd2b
    • Paul Eggert's avatar
    • Juanma Barranquero's avatar
    • Juanma Barranquero's avatar
      5dbaffae
  4. 04 Sep, 2012 10 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
    • Lars Ingebrigtsen's avatar
      Have smtpmail.el prefer the From: header for the MAIL FROM envelope · 8ce192e3
      Lars Ingebrigtsen authored
      * mail/smtpmail.el (smtpmail-send-it): Prefer the From: header
      over `user-mail-address' for the SMTP MAIL FROM envelope.
      (smtpmail-via-smtp): Ditto.
      8ce192e3
    • Glenn Morris's avatar
      Auto-commit of generated files. · 6ec9a5a7
      Glenn Morris authored
      6ec9a5a7
    • 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
    • Paul Eggert's avatar
      * configure.ac (_setjmp, _longjmp): Check by compiling · 7b6c362e
      Paul Eggert authored
      instead of by guessing.  The guesses were wrong for
      recent versions of Solaris, such as Solaris 11.
      7b6c362e
    • Dmitry Gutov's avatar