1. 04 Jul, 2013 1 commit
  2. 02 Jul, 2013 5 commits
    • Paul Eggert's avatar
      Remove some unused macros from 'configure'. · 57f8c490
      Paul Eggert authored
      * configure.ac (HAVE_SOUNDCARD_H, HAVE_LINUX_VERSION_H, HAVE_SPEED_T)
      (HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY)
      (HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION, HAVE_UTIMES)
      (HAVE_LIBHESIOD, HAVE_LIBRESOLV, HAVE_LIBCOM_ERR, HAVE_LIBCRYPTO)
      (HAVE_LIBK5CRYPTO, HAVE_LIBKRB5, HAVE_LIBDES425, HAVE_LIBDES)
      (HAVE_LIBKRB4, HAVE_LIBKRB, HAVE_DES_H, HAVE_KERBEROSIV_DES_H)
      (HAVE_DEV_PTMX, DEVICE_SEP, USG5):
      Remove these macros, as they are not used.
      (sys_siglist): Remove macro; src/sysdep.c now does this.
      * src/sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
      Define to __sys_siglist.
      57f8c490
    • Eli Zaretskii's avatar
      Fix bug #2749 with overflow-newline-into-fringe in visual-line-mode. · bcffb5ca
      Eli Zaretskii authored
       src/xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
       word-wrap, so that overflow-newline-into-fringe would work in
       visual-line-mode.
       (move_it_in_display_line_to): When the last scanned display
       element fits exactly on the display line, and
       overflow-newline-into-fringe is non-nil, but wrap_it is valid,
       don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
       wrap point and return MOVE_LINE_CONTINUED.  Fixes problems with
       finding buffer position that corresponds to pixel coordinates,
       e.g. in buffer_posn_from_coords.
      bcffb5ca
    • Jan Djärv's avatar
    • Paul Eggert's avatar
      Don't convert function pointers to void * and back. · 52a9bcae
      Paul Eggert authored
      It isn't portable C, and it's easy enough to avoid.
      * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
      (make_save_value): Add support for SAVE_FUNCPOINTER.
      * keymap.c (map_keymap_char_table_item, map_keymap_internal):
      * print.c (print_object):
      Distinguish function from object pointers.
      * lisp.h (SAVE_FUNCPOINTER): New constant.
      (SAVE_SLOT_BITS): Adjust to it.
      (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
      SAVE_TYPE_PTR_PTR_OBJ.  Change the only use.
      (voidfuncptr): New typedef.
      (struct Lisp_Save_Value): New member data[0].funcpointer.
      (XSAVE_FUNCPOINTER): New function.
      52a9bcae
    • Paul Eggert's avatar
      Simplify buildobj processing. · c2418359
      Paul Eggert authored
      * Makefile.in (buildobj.h): Make it a sequence of strings each
      followed by comma, rather than a single string.  Put it into a
      .tmp file in case there's an error while generating it.
      (gl-stamp): Use .tmp for temp files.
      (mostlyclean): Clean .tmp files.
      * doc.c (buildobj): Move to just the routine that needs it.
      It's now an array of strings, so processing is simpler.
      c2418359
  3. 01 Jul, 2013 3 commits
  4. 30 Jun, 2013 8 commits
    • Michal Nazarewicz's avatar
      Add `remember-notes' function to store random notes across Emacs · ef099a94
      Michal Nazarewicz authored
      restarts.
      * remember.el (remember-data-file): Add :set callback to affect
      notes buffer (if any).
      (remember-notes): New command.
      (remember-notes-buffer-name, bury-remember-notes-on-kill):
      New defcustoms for the `remember-notes' function.
      (remember-notes-save-and-bury-buffer): New command.
      (remember-notes-mode-map): New variable.
      (remember-mode): New minor mode.
      (remember-notes--kill-buffer-query): New function.
      * lisp/startup.el (initial-buffer-choice): Add notes to custom type.
      * src/buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
      before checking whether buffer is modified.  This lets
      `kill-buffer-query-functions' cancel killing of the buffer or save
      its content before `kill-buffer' asks user the "Buffer %s
      modified; kill anyway?" question.
      
      * remember.el (remember-append-to-file):
      Don't mix `find-buffer-visiting' and `get-file-buffer'.
      
      * lisp/files.el (find-file-noselect): Simplify conditional expression.
      ef099a94
    • Jan Djärv's avatar
      * nsfns.m (handlePanelKeys): Don't process Command+Function keys. · 9d3f2fc2
      Jan Djärv authored
      Let the super performKeyEquivalent deal with them.
      
      Fixes: debbugs:14747
      9d3f2fc2
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 1d71c1d9
      Paul Eggert authored
      * lwlib/lwlib-Xaw.h (xaw_update_one_value, xaw_popup_menu):
      * lwlib/lwlib-Xlw.h (xlw_update_one_value, xlw_pop_instance):
      * lwlib/lwlib.h (lw_allow_resizing, lw_set_main_areas) [!USE_MOTIF]:
      Now const.
      * src/widget.c (resize_cb): Remove unused local.
      1d71c1d9
    • Paul Eggert's avatar
      Remove duplicate ChangeLog entry. · 16b6e7f2
      Paul Eggert authored
      16b6e7f2
    • Paul Eggert's avatar
      Do not use GTK 3 if it exists but cannot be compiled. · 8f5f35cc
      Paul Eggert authored
      * configure.ac: Leave GTK_OBJ and term_header alone if GTK 3
      exists but cannot be compiled.
      * src/xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
      * src/xterm.c (x_error_handler) [!USE_GTK]:
      Do not use GTK 3.
      8f5f35cc
    • Paul Eggert's avatar
      * intervals.c (get_local_map): Actually clip POSITION · e6c6c8c7
      Paul Eggert authored
      Fixes: debbugs:14753
      e6c6c8c7
    • Eli Zaretskii's avatar
      A possible fix for bug #14753 with aborts in get_local_map. · 5d1c3286
      Eli Zaretskii authored
       src/intervals.c (get_local_map): Instead of aborting, clip POSITION
       to the valid range of values.
      5d1c3286
    • Eli Zaretskii's avatar
      Don't call sit-for in right-char and left-char for visual cursor motion. · 0ba54312
      Eli Zaretskii authored
       src/xdisp.c (Fmove_point_visually): Invalidate the cursor position
       when moving point by using the current glyph matrix.  This avoids
       the need to force redisplay when this function is called in a
       loop.
      
       lisp/bindings.el (right-char, left-char): Don't call sit-for, this is
       no longer needed.  Use arithmetic comparison only for numerical
       arguments.
      0ba54312
  5. 29 Jun, 2013 4 commits
    • Juanma Barranquero's avatar
      Fix typos in ChangeLogs. · c1ea3abf
      Juanma Barranquero authored
      c1ea3abf
    • Eli Zaretskii's avatar
      Fix typo in src/ChangeLog. · 671796d3
      Eli Zaretskii authored
      671796d3
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 9c90cc06
      Paul Eggert authored
      * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
      Redo the latter's body to sidestep GCC parenthesization warnings.
      (setup_coding_system, detect_coding, detect_coding_system): Use them.
      * coding.c (detect_coding, detect_coding_system):
      * coding.h (struct undecided_spec):
      Use bool for boolean.
      * image.c (QCmax_width, QCmax_height): Now static.
      * xdisp.c (Fmove_point_visually): Remove unused local.
      9c90cc06
    • Eli Zaretskii's avatar
      Implement visual-order cursor motion. · 4c672a0f
      Eli Zaretskii authored
       src/xdisp.c (Fmove_point_visually): New function.
      
       lisp/bindings.el (visual-order-cursor-movement): New defcustom.
       (right-char, left-char): Provide visual-order cursor motion by
       calling move-point-visually.  Update the doc strings.
      
       doc/emacs/basic.texi (Moving Point): Document visual-order-cursor-movement
       and its effect on right-char and left-char.
      
       doc/lispref/display.texi (Bidirectional Display): Document move-point-visually.
      
       etc/NEWS: Document the new feature.
      4c672a0f
  6. 28 Jun, 2013 4 commits
  7. 27 Jun, 2013 1 commit
    • Paul Eggert's avatar
      Do not tickle glib SIGCHLD handling if Cygwin. · dae2f5ef
      Paul Eggert authored
      This mostly consists of undoing recent changes.
      * callproc.c (Fcall_process):
      * process.c (create_process):
      Do not worry about catching SIGCHLD here, undoing previous change.
      * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
      * process.c, process.h (catch_child_signal):
      No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
      * process.c (catch_child_handler): Don't worry about being called
      lazily and do not assume caller has blocked SIGCHLD, undoing
      previous change.  Move first-time stuff back to
      init_process_emacs, undoing 06-22 change.  If CYGWIN, do not
      tickle glib, as that causes Cygwin bootstrap to fail.  Do not
      set lib_child_handler if it's already initialized, which may
      help avoid problems on GNUStep.
      dae2f5ef
  8. 24 Jun, 2013 1 commit
    • Paul Eggert's avatar
      A more-conservative workaround for Cygwin SIGCHLD issues. · fa55d2aa
      Paul Eggert authored
      * callproc.c (Fcall_process):
      * process.c (create_process):
      Make sure SIGCHLD is caught before we fork,
      since Emacs startup no arranges to catch SIGCHLD.
      * process.c (lib_child_handler): Initialize to null, not to
      dummy_handler.
      (catch_child_signal): Allow self to be called lazily.
      Do nothing if it's already been called.
      Assume caller has blocked SIGCHLD (all callers do now).
      * emacs.c (main): Do not catch SIGCHLD here; defer it until
      just before it's really needed.
      * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
      since it hasn't been caught yet.
      
      Fixes: debbugs:14569
      fa55d2aa
  9. 23 Jun, 2013 2 commits
    • Lars Magne Ingebrigtsen's avatar
      Implement :max-width/:max-height for (ImageMagic) images · f3f9606c
      Lars Magne Ingebrigtsen authored
      * doc/lispref/display.texi (ImageMagick Images): Mention :max-width and
      :max-height.
      
      * lisp/net/shr.el (shr-rescale-image): Use the new
      :max-width/:max-height functionality.
      
      * src/image.c (compute_image_size): New function to implement
      :max-width and :max-height.
      (imagemagick_load_image): Use it.
      f3f9606c
    • Paul Eggert's avatar
      Try to avoid malloc SEGVs on Cygwin. · c7041908
      Paul Eggert authored
      * callproc.c, process.h (block_child_signal, unblock_child_signal):
      Now extern.
      * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
      * process.c (catch_child_signal): Block SIGCHLD while futzing with
      the SIGCHLD handler, since the code is not atomic and (due to glib)
      signals may be arriving now.
      * sysdep.c (init_signals): Do not catch child signals here;
      'main' now does that later, at a safer time.
      
      Fixes: debbugs:14569
      c7041908
  10. 22 Jun, 2013 2 commits
    • Paul Eggert's avatar
      Clean up SIGCHLD handling a bit. · 0dfeed58
      Paul Eggert authored
      * process.c, process.h (catch_child_signal):
      Now always extern, even if !NS_IMPL_GNUSTEP.
      * process.c (catch_child_signal): Move glib tickler here from
      init_process_emacs, so that it's done earlier in Emacs
      initialization.  Also move the noninteractive && !initialized
      check here from init_process_emacs.  This is all a bit cleaner for
      GNUish platforms, and I hope it works around the Cygwin bug.
      * sysdep.c (init_signals): Invoke catch_child_signal here, so
      that glib signal handling is tickled before glib creates threads.
      
      Fixes: debbugs:14569
      0dfeed58
    • Paul Eggert's avatar
      * process.c (wait_reading_process_output): Avoid int overflow · f86852b4
      Paul Eggert authored
      when reading more than 2 GiB total from a process.
      f86852b4
  11. 21 Jun, 2013 3 commits
    • Paul Eggert's avatar
      * process.c (create_process): Handle a couple more cases, · cbd6509c
      Paul Eggert authored
      i.e., work even if new_argv and wait_child_setup[i] are cached.
      Use Fcall_process's style for volatile vars.
      cbd6509c
    • Andreas Schwab's avatar
      9de1114a
    • Paul Eggert's avatar
      Use C99-style flexible array members if available. · fbe9e0b9
      Paul Eggert authored
      This avoids some subtle aliasing issues, which typically
      aren't a problem with GCC but may be a problem elsewhere.
      * lib-src/ebrowse.c (struct member, struct alias, struct sym):
      Use FLEXIBLE_ARRAY_MEMBER.
      (add_sym, add_member, make_namespace, register_namespace_alias):
      Use offsetof (struct, flex_array_member), not sizeof (struct), as
      that ports better to pre-C99 non-GCC.
      * src/alloc.c (sdata): New typedef, replacing the old struct sdata.
      It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
      In either case, it uses a flexible array member rather than
      the old struct hack.  All uses changed.
      (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
      Adjust to sdata reorganization.
      * src/alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
      Use offsetof (struct, flex_array_member), not sizeof (struct), as
      that ports better to pre-C99 non-GCC.
      * src/chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
      Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
      as the latter has changed.
      * src/conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
      and port better to pre-C99 GCC.
      * src/image.c (struct xpm_cached_color):
      * src/lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
      (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
      Use FLEXIBLE_ARRAY_MEMBER.
      * src/lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
      Move decl to top level so it gets checked against implementation.
      (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
      * src/w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
      fbe9e0b9
  12. 20 Jun, 2013 4 commits
    • Paul Eggert's avatar
      * syntax.c: Integer cleanups. · 1fc71008
      Paul Eggert authored
      (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
      All uses that need 0-or-2 changed to:
      (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
      as the old SYNTAX_FLAGS_COMMENT_STYLEC.
      (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
      (char_quoted, prev_char_comend_first, back_comment)
      (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
      (in_classes, forw_comment, scan_lists, scan_sexps_forward):
      Use bool for boolean.
      (update_syntax_table, skip_chars, skip_syntaxes):
      Prefer int to unsigned when either will do.
      (back_comment): Return boolean success flag, like forw_comment,
      instead of positive-or-minus-1 (which might have overflowed int anyway).
      Don't stuff ptrdiff_t into int.
      (syntax_spec_code, syntax_code_spec): Now const.
      (Fmatching_paren, scan_lists, scan_sexps_forward):
      Use enum syntaxcode for syntax code.
      (Fmatching_paren): Check that arg is a character, not just an integer.
      (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
      (Finternal_describe_syntax_value): Omit no-longer-needed
      comparison to 0.
      (skip_chars): Use char, not unsigned char, when the distinction
      doesn't matter.
      (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
      * bytecode.c (exec_byte_code):
      * syntax.c (syntax_spec_code, Fchar_syntax)
      (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
      (init_syntax_once):
      * syntax.h (SYNTAX_WITH_FLAGS):
      Omit unnecessary casts.
      1fc71008
    • Eli Zaretskii's avatar
      Yet another attempt at fixing bugs #14602, 14630, 14669. · b932cad7
      Eli Zaretskii authored
       src/w32fns.c (w32_wnd_proc): Don't compute the header line and mode
       line dimensions here, to avoid race conditions with the main
       thread.
       src/w32term.c (w32_draw_window_cursor): Compute the header line and
       mode line dimensions here.
       <w32_system_caret_window, w32_system_caret_hdr_height>:
       <w32_system_caret_mode_height>: New variables.
       src/w32term.h: Declare them.
      b932cad7
    • Paul Eggert's avatar
      * alloc.c (die): Move "assertion failed" string here ... · 5013fc08
      Paul Eggert authored
      * lisp.h (eassert): ... from here.  Also, suppress evaluation of
      COND when SUPPRESS_CHECKING.  This shrinks the executable text
      size by 0.8% to 2.2% when configured with --enable-checking,
      depending on optimization flags (GCC 4.8.1 x86-64).
      5013fc08
    • 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
  13. 19 Jun, 2013 2 commits