1. 23 Feb, 2019 1 commit
    • Paul Eggert's avatar
      Don’t assume timersub and gettimeofday · 975893b2
      Paul Eggert authored
      POSIX does not specify timersub, and marks gettimeofday as
      obsolescent.  Avoid porting problems by using timespec.h
      functions instead.
      * src/editfns.c: Include systime.h instead of sys/time.h.
      (EXTRA_CONTEXT_FIELDS): Replace start and max_secs with
      time_limit.  All uses changed.  This removes the need to call
      gettimeofday or timersub.
      * src/term.c (timeval_to_Time): Remove.  Replace all uses with ...
      (current_Time): ... this new function, removing the need to
      call gettimeofday.
      975893b2
  2. 01 Feb, 2019 1 commit
    • Paul Eggert's avatar
      Rename CANNOT_DUMP to HAVE_UNEXEC · 3b69e02a
      Paul Eggert authored
      * configure.ac (CANNOT_DUMP): Remove.  All uses removed,
      or changed to the negative of with_unexec.
      (HAVE_UNEXEC): New macro.  All uses of CANNOT_DUMP changed
      to the negative of this macro.
      3b69e02a
  3. 01 Jan, 2019 1 commit
  4. 09 Dec, 2018 1 commit
    • Paul Eggert's avatar
      Add make_vector and make_nil_vector · d79bb756
      Paul Eggert authored
      This makes the callers a bit easier to read, and doubtless
      improves efficiency very slightly.  It also simplifies
      possible future changes to allow bignum indexes to buffers.
      * src/alloc.c (allocate_vectorlike):
      Prefer ptrdiff_t to size_t when either will do.
      (make_vector): New function.
      (Fmake_vector): Use it.
      * src/buffer.c (syms_of_buffer):
      * src/bytecode.c (syms_of_bytecode):
      * src/category.c (Fmake_category_table, init_category_once):
      * src/ccl.c (syms_of_ccl):
      * src/character.c (syms_of_character):
      * src/charset.c (Fdefine_charset_internal)
      (Ffind_charset_region, Ffind_charset_string):
      * src/chartab.c (copy_char_table):
      * src/coding.c (Fdefine_coding_system_internal, syms_of_coding):
      * src/composite.c (get_composition_id, Fcomposition_get_gstring):
      * src/composite.h (LGLYPH_NEW):
      * src/fns.c (concat, Flocale_info, make_hash_table):
      * src/font.c (font_otf_ValueRecord, font_otf_anchor)
      (build_style_table, syms_of_font):
      * src/fontset.c (RFONT_DEF_NEW, fontset_find_font)
      (dump_fontset, syms_of_fontset):
      * src/image.c (xpm_make_color_table_v):
      * src/keyboard.c (modify_event_symbol, menu_bar_items)
      (parse_menu_item, parse_tool_bar_item, init_tool_bar_items)
      (syms_of_keyboard):
      * src/keymap.c (Fdefine_key, describe_map, describe_vector):
      * src/lread.c (read_vector):
      * src/macfont.m (macfont_shape):
      * src/menu.c (init_menu_items):
      * src/nsfns.m (ns_make_monitor_attribute_list):
      * src/process.c (conv_sockaddr_to_lisp, network_interface_info):
      * src/profiler.c (make_log):
      * src/window.c (Fcurrent_window_configuration):
      * src/xdisp.c (with_echo_area_buffer_unwind_data)
      (format_mode_line_unwind_data):
      * src/xfaces.c (Finternal_make_lisp_face)
      (Fface_attributes_as_vector):
      * src/xfns.c (x_make_monitor_attribute_list)
      (Fx_display_monitor_attributes_list):
      * src/xfont.c (syms_of_xfont):
      * src/xselect.c (x_handle_dnd_message):
      * src/xwidget.c (save_script_callback):
      Prefer make_nil_vector (N) to Fmake_vector (make_fixnum (N), Qnil).
      * src/callint.c (Fcall_interactively):
      * src/charset.c (load_charset_map):
      * src/chartab.c (Fmake_char_table, uniprop_encode_value_numeric):
      * src/composite.c (get_composition_id)
      * src/dispnew.c (Fframe_or_buffer_changed_p)
      (syms_of_display):
      * src/fns.c (make_hash_table, maybe_resize_hash_table):
      * src/font.c (font_style_to_value):
      * src/fontset.c (FONTSET_ADD, fontset_add):
      * src/json.c (json_to_lisp):
      * src/keymap.c (syms_of_keymap):
      * src/lread.c (init_obarray):
      * src/profiler.c (make_log, Fprofiler_cpu_log):
      * src/term.c (term_get_fkeys_1):
      Prefer make_vector (N, V) to Fmake_vector (make_fixnum (N), V).
      * src/font.c (build_style_table):
      * src/macfont.m (macfont_shape):
      * src/process.c (conv_sockaddr_to_lisp, network_interface_info):
      Prefer make_uninit_vector if the vector will be initialized soon.
      * src/lisp.h (make_nil_vector): New function.
      d79bb756
  5. 29 Sep, 2018 1 commit
    • John Shahid's avatar
      Cleanup when opening a new terminal fails. (Bug#32794) · e8a4d942
      John Shahid authored
      * src/term.c (init_tty): Call delete_terminal_internal if emacs_open
      fail.
      * src/terminal.c (delete_terminal): Move some code into
      delete_terminal_internal and call it.
      (delete_terminal_internal): New function.
      * src/termhooks.h: Prototype for delete_terminal_internal.
      e8a4d942
  6. 08 Aug, 2018 1 commit
    • Tom Tromey's avatar
      More macro renamings for bignum · d1ec3a0a
      Tom Tromey authored
      * src/alloc.c, src/bidi.c, src/buffer.c, src/buffer.h, src/bytecode.c,
      src/callint.c, src/callproc.c, src/casefiddle.c, src/casetab.c,
      src/category.c, src/ccl.c, src/character.c, src/character.h,
      src/charset.c, src/charset.h, src/chartab.c, src/cmds.c, src/coding.c,
      src/composite.c, src/composite.h, src/data.c, src/dbusbind.c,
      src/decompress.c, src/dired.c, src/dispextern.h, src/dispnew.c,
      src/disptab.h, src/doc.c, src/dosfns.c, src/editfns.c,
      src/emacs-module.c, src/emacs.c, src/eval.c, src/fileio.c,
      src/floatfns.c, src/fns.c, src/font.c, src/font.h, src/fontset.c,
      src/frame.c, src/frame.h, src/fringe.c, src/ftcrfont.c, src/ftfont.c,
      src/gfilenotify.c, src/gnutls.c, src/gtkutil.c, src/image.c,
      src/indent.c, src/insdel.c, src/intervals.c, src/json.c,
      src/keyboard.c, src/keymap.c, src/kqueue.c, src/lcms.c, src/lisp.h,
      src/lread.c, src/macros.c, src/marker.c, src/menu.c, src/minibuf.c,
      src/msdos.c, src/print.c, src/process.c, src/profiler.c, src/search.c,
      src/sound.c, src/syntax.c, src/syntax.h, src/sysdep.c, src/term.c,
      src/termhooks.h, src/textprop.c, src/undo.c, src/w32.c,
      src/w32console.c, src/w32fns.c, src/w32font.c, src/w32inevt.c,
      src/w32proc.c, src/w32select.c, src/w32term.c, src/w32term.h,
      src/w32uniscribe.c, src/window.c, src/xdisp.c, src/xfaces.c,
      src/xfns.c, src/xfont.c, src/xftfont.c, src/xmenu.c, src/xml.c,
      src/xrdb.c, src/xselect.c, src/xsettings.c, src/xterm.c, src/xwidget.c
      Rename XINT->XFIXNUM, XFASTINT->XFIXNAT, XUINT->XUFIXNUM.
      d1ec3a0a
  7. 13 Jul, 2018 1 commit
    • Tom Tromey's avatar
      Rename integerp->fixnum, etc, in preparation for bignums · 42fe787b
      Tom Tromey authored
      * src/json.c, src/keyboard.c, src/keyboard.h, src/keymap.c,
      src/kqueue.c, src/lcms.c, src/lisp.h, src/lread.c, src/macros.c,
      src/marker.c, src/menu.c, src/minibuf.c, src/msdos.c, src/print.c,
      src/process.c, src/profiler.c, src/search.c, src/sound.c,
      src/syntax.c, src/sysdep.c, src/term.c, src/terminal.c,
      src/textprop.c, src/undo.c, src/w16select.c, src/w32.c,
      src/w32console.c, src/w32cygwinx.c, src/w32fns.c, src/w32font.c,
      src/w32inevt.c, src/w32proc.c, src/w32select.c, src/w32term.c,
      src/w32uniscribe.c, src/widget.c, src/window.c, src/xdisp.c,
      src/xfaces.c, src/xfns.c, src/xfont.c, src/xftfont.c, src/xmenu.c,
      src/xrdb.c, src/xselect.c, src/xterm.c, src/xwidget.c: Rename
      INTEGERP->FIXNUM, make_number->make_fixnum, CHECK_NUMBER->CHECK_FIXNUM,
      make_natnum->make_fixed_natum, NUMBERP->FIXED_OR_FLOATP,
      NATNUMP->FIXNATP, CHECK_NATNUM->CHECK_FIXNAT.
      42fe787b
  8. 28 Jun, 2018 1 commit
    • Paul Eggert's avatar
      Tune SAFE_FREE · 76eda952
      Paul Eggert authored
      On my platform (Fedora 28 x86-64, AMD Phenom II X4 910e) this sped
      up a SAFE_FREE-using microbenchmark (string-distance "abc" "abc")
      by about 18%, and shrank the Emacs text size by about 0.1%.
      * src/callint.c (Fcall_interactively):
      * src/callproc.c (call_process):
      * src/doc.c (get_doc_string, Fsnarf_documentation):
      * src/editfns.c (Freplace_buffer_contents):
      * src/emacs-module.c (funcall_module):
      * src/eval.c (Flet):
      * src/process.c (Fmake_process):
      * src/term.c (tty_menu_show):
      * src/xdisp.c (safe__call):
      * src/xmenu.c (x_menu_show):
      Use SAFE_FREE_UNBIND_TO.
      * src/data.c (wrong_choice): No need to call SAFE_FREE here.
      * src/lisp.h (USE_SAFE_ALLOCA):
      * src/regex.c (REGEX_USE_SAFE_ALLOCA):
      Do not declare sa_must_free local; no longer needed.
      All uses removed.
      (SAFE_FREE): Rewrite in terms of safe_free.
      (safe_free): New function, optimized to use xfree.
      (SAFE_FREE_UNBIND_TO): New macro.
      (safe_free_unbind_to): New function.
      76eda952
  9. 15 Jun, 2018 1 commit
    • Paul Eggert's avatar
      Use record_unwind_protect_ptr to avoid allocation · 3f0a8a2e
      Paul Eggert authored
      * src/term.c (struct tty_pop_down_menu): New type.
      (tty_pop_down_menu, tty_menu_show): Use it, along with
      record_unwind_protect_ptr, to avoid allocating a Lisp_Misc.
      * src/xmenu.c (struct pop_down_menu): New type.
      (pop_down_menu, x_menu_show): Use it, likewise.
      * src/xterm.c (x_cr_destroy, x_cr_export_frames):
      Use record_unwind_protect_pointer to avoid possibly allocating
      a Lisp_Misc.
      3f0a8a2e
  10. 08 Jun, 2018 1 commit
    • Daniel Colascione's avatar
      Add support for per-window face remapping · 9d447fa1
      Daniel Colascione authored
      Extend face specifications to support the notion of filtering to a
      specific context and add a filter that limits a face specification to
      windows having a certain parameter.
      
      * src/xfaces.c:
      (evaluate_face_filter,filter_face_ref): New functions.
      (merge_face_ref): Ignore filtered face specifications.
      (Fx_list_fonts,get_lface_attributes,merge_face_vectors)
      (merge_named_face,merge_face_ref,merge_face_ref)
      (Finternal_merge_in_global_face,Fface_font,lookup_named_face)
      (lookup_basic_face,Fface_attributes_as_vector)
      (x_supports_face_attributes_p)
      (Fdisplay_supports_face_attributes_p,realize_named_face)
      (compute_char_face,face_at_buffer_position)
      (face_at_buffer_position,face_at_buffer_position)
      (face_at_buffer_position)
      (face_for_overlay_string,face_at_string_position,merge_faces):
      Pass window to face machinery.
      (syms_of_xfaces): Add :window and :filtered
      
      * src/xdisp.c (init_iterator, handle_face_prop)
      (handle_single_display_spec, merge_escape_glyph_face)
      (merge_glyphless_glyph_face, get_next_display_element)
      (next_element_from_display_vector, append_space_for_newline)
      (extend_face_to_end_of_line,highlight_trailing_whitespace)
      (maybe_produce_line_number)
      (display_line, calc_line_height_property): Pass window to
      face machinery.
      
      * src/term.c (tty_menu_activate): Adjust to new face core
      function signature.
      
      * src/msdos.c (XMenuActivate): Adjust to new face core
      function signature.
      
      * src/fringe.c (draw_fringe_bitmap_1, Fset_fringe_bitmap_face):
      Pass window to face machinery.
      
      * src/font.c (font_range, Finternal_char_font): Pass window to
      face machinery.
      
      * src/dispnew.c (spec_glyph_lookup_face): Pass window to
      face machinery.
      
      * src/dispextern.h:
      (lookup_named_face,lookup_basic_face)
      (lookup_derived_face,merge_faces):
      Add struct window arguments to prototypes.
      9d447fa1
  11. 02 Jun, 2018 1 commit
    • Eli Zaretskii's avatar
      Fix display of TABs in hscrolled windows with line numbers · 8b2b4b58
      Eli Zaretskii authored
      * src/dispextern.h (struct it): New members tab_offset and
      line_number_produced_p.
      * src/xdisp.c (display_line): Don't set row->x to a negative value
      if line numbers are being displayed.  (Bug#30582)
      Reset the line_number_produced_p flag before laying out the glyph
      row.
      (x_produce_glyphs): Use the line_number_produced_p flag to decide
      whether to offset the X coordinate due to line-number display.
      Use the tab_offset member to restore the original TAB width for
      alignment purposes.
      (move_it_in_display_line_to): Don't produce line numbers when moving
      in hscrolled window to the left of first_visible_x.
      (maybe_produce_line_number): Set the line_number_produced_p flag.
      (Bug#30584)
      * src/term.c (produce_glyphs): Correct TAB width only when
      line_number_produced_p flag is set.
      
      (cherry picked from commit 1ac19055)
      8b2b4b58
  12. 28 Apr, 2018 1 commit
    • Paul Eggert's avatar
      Port --enable-gcc-warnings to GCC 8 · 8c3215e7
      Paul Eggert authored
      * configure.ac: Do not use GCC 8’s new -Wcast-align flag.
      * lib-src/ebrowse.c (xmalloc):
      * lib-src/emacsclient.c (xmalloc, xstrdup):
      * lib-src/etags.c (xmalloc):
      * lib-src/make-docfile.c (xmalloc):
      * lib-src/movemail.c (xmalloc):
      * src/dispnew.c (new_glyph_pool):
      * src/regex.c (xmalloc):
      * src/term.c (tty_menu_create):
      * src/tparam.h (tparam):
      Use ATTRIBUTE_MALLOC.  Also see GCC bug 85562.
      * lib-src/emacsclient.c (fail):
      Do not dereference a null pointer.
      * src/frame.c (delete_frame):
      Add a decl with UNINIT to work around GCC bug 85563.
      * src/menu.h (finish_menu_items):
      Do not use attribute const.
      * src/regex.c (analyze_first): Use FALLTHROUGH, not a comment.
      8c3215e7
  13. 07 Mar, 2018 1 commit
    • Eli Zaretskii's avatar
      Fix display of TABs in hscrolled windows with line numbers · 1ac19055
      Eli Zaretskii authored
      * src/dispextern.h (struct it): New members tab_offset and
      line_number_produced_p.
      * src/xdisp.c (display_line): Don't set row->x to a negative value
      if line numbers are being displayed.  (Bug#30582)
      Reset the line_number_produced_p flag before laying out the glyph
      row.
      (x_produce_glyphs): Use the line_number_produced_p flag to decide
      whether to offset the X coordinate due to line-number display.
      Use the tab_offset member to restore the original TAB width for
      alignment purposes.
      (move_it_in_display_line_to): Don't produce line numbers when moving
      in hscrolled window to the left of first_visible_x.
      (maybe_produce_line_number): Set the line_number_produced_p flag.
      (Bug#30584)
      * src/term.c (produce_glyphs): Correct TAB width only when
      line_number_produced_p flag is set.
      1ac19055
  14. 10 Feb, 2018 1 commit
    • Rami Ylimäki's avatar
      Support standard Terminfo direct mode terminals · 7f6153d9
      Rami Ylimäki authored
      Latest Terminfo introduces terminal definitions that support direct
      color mode.  The "Co"/"colors" capability is set to 0x1000000 on these
      terminals and Emacs is already compatible with them.
      However, if used Terminfo library hasn't been compiled with 32-bit
      value support, "Co"/"colors" is truncated to 0x7fff.  In this case
      direct color mode support can be detected from the "RGB" capability
      flag.
      There are some minor problems if the color count isn't corrected from
      0x7fff.  First eight standard colors defined in xterm-standard-colors
      are shown correctly.  However, their RGB values match the terminal
      settings, not the RGB values defined in xterm-standard-colors.  Bright
      versions of these colors are shown incorrectly.  They are interpreted
      as pixels #000008 - #000015, which are very dark shades of blue.
      
      * src/term.c (init_tty): Force terminal color count to 0x1000000 if
      "RGB" capability is present.
      * src/tparam.h: Define prototype for tigetflag.  (Bug#30308)
      
      * doc/misc/efaq.texi (Colors on a TTY): Add information about direct
      mode terminals supported by Terminfo.
      7f6153d9
  15. 01 Jan, 2018 1 commit
  16. 26 Nov, 2017 1 commit
  17. 02 Oct, 2017 1 commit
    • Paul Eggert's avatar
      Prefer HTTPS to HTTP for gnu.org · 5172fa02
      Paul Eggert authored
      This fixes some URLs I omitted from my previous pass,
      notably those in lists.gnu.org.  Although lists.gnu.org
      does not yet support TLS 1.1, TLS 1.0 is better than nothing.
      * lisp/erc/erc.el (erc-official-location):
      * lisp/mail/emacsbug.el (report-emacs-bug):
      Use https:, not http:.
      5172fa02
  18. 18 Sep, 2017 1 commit
    • Paul Eggert's avatar
      Avoid crash with C-g C-g in GC · 059184e6
      Paul Eggert authored
      Problem reported by Richard Stallman (Bug#17406).
      Based on fix suggested by Eli Zaretskii (Bug#28279#16).
      * src/term.c (tty_send_additional_strings):
      Use only safe accessors, to avoid crash when C-g C-g in GC.
      059184e6
  19. 13 Sep, 2017 1 commit
    • Paul Eggert's avatar
      Prefer HTTPS to FTP and HTTP in documentation · bc511a64
      Paul Eggert authored
      Most of this change is to boilerplate commentary such as license URLs.
      This change was prompted by ftp://ftp.gnu.org's going-away party,
      planned for November.  Change these FTP URLs to https://ftp.gnu.org
      instead.  Make similar changes for URLs to other organizations moving
      away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
      fsf.org when this works, as this will further help defend against
      man-in-the-middle attacks (for this part I omitted the MS-DOS and
      MS-Windows sources and the test tarballs to keep the workload down).
      HTTPS is not fully working to lists.gnu.org so I left those URLs alone
      for now.
      bc511a64
  20. 08 Sep, 2017 1 commit
  21. 30 Jun, 2017 1 commit
  22. 24 Jun, 2017 2 commits
    • Eli Zaretskii's avatar
      Partial fix of hscroll of truncated lines with line numbers · 13cc19a0
      Eli Zaretskii authored
      * src/xdisp.c (x_produce_glyphs, hscroll_window_tree): Adjust
      hscroll calculations to line-number display.
      * src/term.c (produce_glyphs): Adjust tab stop to window's
      hscroll.  These two changes fix horizontal scrolling when line
      numbers are displayed.  But there's still a bug: the horizontal
      shift of lines that begin with a TAB is different from the rest.
      * src/xdisp.c (move_it_in_display_line_to): Call
      should_produce_line_number to determine whether a line number
      should be produced for this screen line.
      13cc19a0
    • Eli Zaretskii's avatar
      Fix tab stops when line numbers are displayed · 55a9298d
      Eli Zaretskii authored
      * src/xdisp.c (x_produce_glyphs):
      * src/term.c (produce_glyphs): Adjust tab stops for the horizontal
      space taken by the line-number display.
      55a9298d
  23. 22 Jun, 2017 1 commit
    • Paul Eggert's avatar
      Use unlocked stdio more systematically · f6ef15cf
      Paul Eggert authored
      This can improve performance significantly on stdio-bottlenecked code.
      E.g., make-docfile is 3x faster on my Fedora 25 x86-64 desktop.
      * admin/merge-gnulib (GNULIB_MODULES): Add unlocked-io.
      * lib-src/ebrowse.c, lib-src/emacsclient.c, lib-src/etags.c:
      * lib-src/hexl.c, lib-src/make-docfile.c, lib-src/movemail.c:
      * lib-src/profile.c, lib-src/update-game-score.c:
      Include unlocked-io.h instead of stdio.h, since these programs are
      single-threaded.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
      * lib/unlocked-io.h, m4/unlocked-io.m4: New files, copied from Gnulib.
      * src/charset.c, src/cm.c, src/emacs.c, src/image.c, src/keyboard.c:
      * src/lread.c, src/term.c:
      Include sysstdio.h, possibly instead of stdio.h, to define
      the unlocked functions if the system does not provide them.
      * src/charset.c, src/lread.c (getc_unlocked):
      Remove, since sysstdio.h now defines it if needed.
      * src/cm.c (cmputc, cmcheckmagic):
      * src/dispnew.c (update_frame, update_frame_with_menu)
      (update_frame_1, Fsend_string_to_terminal, Fding, bitch_at_user):
      * src/emacs.c (main, Fdump_emacs):
      * src/fileio.c (Fdo_auto_save, Fset_binary_mode):
      * src/image.c (slurp_file, png_read_from_file, png_load_body)
      (our_stdio_fill_input_buffer):
      * src/keyboard.c (record_char, kbd_buffer_get_event, handle_interrupt):
      * src/lread.c (readbyte_from_file):
      * src/minibuf.c (read_minibuf_noninteractive):
      * src/print.c (printchar_to_stream, strout)
      (Fredirect_debugging_output):
      * src/sysdep.c (reset_sys_modes, procfs_ttyname)
      (procfs_get_total_memory):
      * src/term.c (tty_ring_bell, tty_send_additional_strings)
      (tty_set_terminal_modes, tty_reset_terminal_modes)
      (tty_update_end, tty_clear_end_of_line, tty_write_glyphs)
      (tty_write_glyphs_with_face, tty_insert_glyphs)
      (tty_menu_activate):
      * src/xfaces.c (Fx_load_color_file):
      Use unlocked stdio when it should be safe.
      * src/sysstdio.h (clearerr_unlocked, feof_unlocked, ferror_unlocked)
      (fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked)
      (fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked)
      (putc_unlocked, putchar_unloced): Provide substitutes if not declared.
      f6ef15cf
  24. 19 Feb, 2017 1 commit
  25. 18 Feb, 2017 2 commits
    • Rami Ylimäki's avatar
      Support 24-bit direct colors on text terminals · e463e576
      Rami Ylimäki authored
      * src/term.c (init_tty): Use 24-bit terminal colors if corresponding
      foreground and background functions are present in terminal type
      definition.
      * src/tparam.h: Define prototype for tigetstr.
      
      * lisp/term/tty-colors.el (tty-color-define): Convert color palette
      index to pixel value on 16.7M color terminals.
      (tty-color-24bit): New function to convert color palette index to
      pixel value on 16.7M color terminals.
      (tty-color-desc): Don't approximate colors on 16.7M color terminals.
      * lisp/term/xterm.el (xterm-register-default-colors): Define all named
      TTY colors on 16.7M color terminals.
      
      * doc/misc/efaq.texi (Colors on a TTY): Add instructions on how to
      enable direct color TTY mode.
      * etc/NEWS: Mention direct color TTY mode and point to FAQ.
      e463e576
    • Rami Ylimäki's avatar
      Remove unused TN_max_pairs field · 464a51ed
      Rami Ylimäki authored
      * src/termchar.h (tty_display_info): Remove TN_max_pairs field,
      describing maximum number of terminal background/foreground color pairs.
      * src/term.c (tty_default_color_capabilities, tty_setup_colors)
      (init_tty): Remove references to TN_max_pairs.
      464a51ed
  26. 01 Jan, 2017 1 commit
  27. 30 Sep, 2016 1 commit
    • Paul Eggert's avatar
      Limit <config.h>’s includes · f4eb8900
      Paul Eggert authored
      This follows up on recent problems with the fact that config.h
      includes stdlib.h etc.; some files need to include stdlib.h later.
      config.h generally should limit itself to includes that are
      universally safe; outside of MS-Windows, only stdbool.h makes
      the cut among the files currently included.  So, move the
      other includes to just the files that need them (Bug#24506).
      * configure.ac (config_opsysfile): Remove, as this generic hook
      is no longer needed.
      * lib-src/etags.c, src/unexmacosx.c, src/w32.c, src/w32notify.c:
      * src/w32proc.c (_GNU_SOURCE):
      Remove, as it’s OK for config.h to do this now.
      * src/conf_post.h: Include <ms-w32.h>, instead of the generic
      config_opsysfile, for simplicity as this old way of configuring is
      now done only for the MS-Windows port.  Do not include <ms-w32.h>
      if DEFER_MS_W32_H, for the benefit of the few files that want its
      effects later.  Do not include <alloca.h>, <string.h>, or
      <stdlib.h>.  Other files modified to include these headers as
      needed, or to not include headers that are no longer needed.
      * src/lisp.h: Include <alloca.h> and <string.h> here, since
      some of the inline functions need them.
      * src/regex.c: Include <alloca.h> if not emacs.  (If emacs,
      we can rely on SAFE_ALLOCA.)  There is no longer any need to
      worry about HAVE_ALLOCA_H.
      * src/unexmacosx.c: Rely on config.h not including stdlib.h.
      * src/w32.c, src/w32notify.c, src/w32proc.c (DEFER_MS_W32_H):
      Define before including <config.h> first, and include <ms-w32.h>
      after the troublesome headers.
      f4eb8900
  28. 15 Sep, 2016 1 commit
    • Paul Eggert's avatar
      Prefer now-standard int width macros · 0bbf00c7
      Paul Eggert authored
      * src/data.c (ULL_WIDTH):
      * src/lisp.h (EMACS_INT_WIDTH, BITS_PER_BITS_WORD):
      * src/lread.c (read_integer):
      * src/term.c (produce_glyphless_glyph):
      * src/xterm.c (x_send_scroll_bar_event):
      Use *_WIDTH macros instead of CHAR_BIT * sizeof.
      * src/data.c (ULL_WIDTH): Rename from BITS_PER_ULL for consistency
      with the *_WIDTH standard macros.  All uses changed.
      * src/gmalloc.c (INT_BIT): Remove.  All uses replaced with INT_WIDTH.
      * src/lisp.h (EMACS_INT_WIDTH): Rename from BITS_PER_EMACS_INT
      for consistency with the *_WIDTH standard macros.  All uses changed.
      (BITS_PER_CHAR): Remove; all uses replaced by CHAR_BIT.  This must
      be the same as CHAR_WIDTH and avoids confusion with Elisp
      char-width, which counts columns not bits.
      (BITS_PER_SHORT): Remove; all uses replaced by SHRT_WIDTH.
      (BITS_PER_LONG): Remove; all uses replaced by LONG_WIDTH.
      * src/lread.c: Do not include limits.h since CHAR_BIT is no longer
      used directly.
      0bbf00c7
  29. 13 Sep, 2016 1 commit
  30. 07 Sep, 2016 1 commit
    • Paul Eggert's avatar
      Use DEV_TTY more consistently · 5d2ac743
      Paul Eggert authored
      * src/conf_post.h (DEV_TTY): Move from here ...
      * src/keyboard.c, src/keyboard.h: ... to here, as it doesn’t need
      to be visible everywhere.  Make it a constant.
      * src/keyboard.c (handle_interrupt, Fset_quit_char):
      * src/process.c (create_process): Prefer DEV_TTY to "/dev/tty".
      5d2ac743
  31. 05 Sep, 2016 1 commit
    • Eli Zaretskii's avatar
      Treat SIGINT correctly in GUI sessions on MS-Windows · cfaf18a2
      Eli Zaretskii authored
      * src/w32proc.c (sys_signal): Don't reject SIGINT, as it is
      supported by MS runtime.
      * src/term.c (DEV_TTY): Move from here ...
      * src/conf_post.h (DEV_TTY): ... to here.  Separate definitions
      for WINDOWSNT and for the rest.
      * src/keyboard.c (handle_interrupt_signal): Use DEV_TTY instead of
      a literal "/dev/tty".
      
      * etc/NEWS: Mention the behavior change.
      cfaf18a2
  32. 24 Jul, 2016 1 commit
    • Paul Eggert's avatar
      ‘signal’ no longer returns · 50cc08bf
      Paul Eggert authored
      Although for decades ‘signal’ has been documented to not return,
      a corner case in the Lisp debugger causes ‘signal’ to return.
      Remove the corner case and adjust Emacs internals accordingly.
      An alternative would be to document the corner case, but this
      would complicate the Lisp API unnecessarily.  (Bug#24047)
      * src/eval.c (signal_or_quit): New function, with most of the
      old contents of Fsignal.
      (quit): New function, which uses signal_or_quit and which
      might return.  All keyboard-based callers of Fsignal (Qquit,
      Qnil) changed to use this new function instead.
      (Fsignal): Use signal_or_quit.  Now _Noreturn.  All callers
      changed.
      (xsignal): Move to lisp.h.
      * src/lisp.h (xsignal): Now an inline function, as it's now
      just an alias for Fsignal.
      50cc08bf
  33. 02 Jul, 2016 1 commit
    • Eli Zaretskii's avatar
      Fix cursor positioning on TTY frames after stretch glyph · da2512f2
      Eli Zaretskii authored
      * src/term.c (append_glyph, append_composite_glyph)
      (append_glyphless_glyph): Set the avoid_cursor_p and multibyte_p
      members of the produced 'struct glyph'.  Fixes cursor positioning
      on the first character after a stretch glyph produced from
      line-prefix, wrap-prefix, etc. on TTY frames.
      da2512f2
  34. 08 Jun, 2016 1 commit
  35. 21 May, 2016 1 commit
    • Eli Zaretskii's avatar
      Fix compiler warnings in the MinGW build · cb5af792
      Eli Zaretskii authored
      * configure.ac [mingw32]: Don't add -Wpointer-sign, and add
      -Wno-pointer-sign, to keep the noise level down.
      
      * nt/mingw-cfg.site (gl_cv_warn_c__Wredundant_decls): Disable
      -Wredundant-decls, as that produces a lot of noise due to
      redeclaration of time-related functions by gnulib.
      * nt/runemacs.c (set_user_model_id): Fix argument type of
      'SetCurrentProcessExplicitAppUserModelID'.
      
      * src/image.c (x_create_bitmap_from_file) [HAVE_NTGUI]: Don't
      declare 'dpyinfo', as it is unused.
      (xpm_load): Fix warnings about pointer signedness.
      * src/w32proc.c (IsValidLocale, init_winsock): Remove redundant
      prototypes.
      (sys_spawnve): Avoid warnings about discarding 'const' qualifier.
      (sys_select): Provide prototype.
      (g_b_init_compare_string_w): Move declaration to file scope.
      * src/w32heap.c (dumped_data_commit): Now static.
      (FREEABLE_P): Avoid warnings about pointer comparison with integer.
      (mmap_realloc): Cast to 'char *' for arithmetics on void pointers.
      * src/w32console.c (ctrl_c_handler, sys_tputs, sys_tgetstr)
      (evalcost, cmputc, cmcheckmagic, cmcostinit, cmgoto, Wcm_clear):
      Provide prototypes.
      * src/w32.c (globals_of_w32, conv_sockaddr_to_lisp): Remove
      redundant prototypes.
      (w32_get_internal_run_time, map_w32_filename): Provide prototype.
      (init_environment, sys_ctime): Avoid warnings about discarding
      'const' qualifier.
      Include utimens.h.
      (sys_ctime, sys_chdir, sys_creat, sys_fopen, sys_mkdir)
      (sys_open, sys_rename, sys_rmdir, is_slow_fs, term_winsock)
      (sys_close, sys_dup2, sys_read, sys_write, sys_localtime): Provide
      prototypes.
      (sys_rename_replace): Use %d to avoid compiler warnings.
      (_wsa_errlist): Make the message text 'const char *', to avoid
      compilation warnings.
      (dynlib_reset_last_error): Move prototype to file scope.
      (w32_get_resource): First argument is now 'const char *'.
      * src/w32uniscribe.c (syms_of_w32uniscribe): Provide prototype.
      (otf_features): Second argument is no 'const char *'.
      * src/w32term.c (free_frame_menubar, x_wm_set_size_hint)
      (x_set_window_size): Remove redundant prototypes.
      (XChangeGC, XGetGCValues, w32_draw_underwave)
      (w32_draw_rectangle, w32_shift_glyphs_for_insert, x_mouse_leave)
      (x_calc_absolute_position, x_destroy_window): Now static.
      (menubar_selection_callback): Move prototype to file scope.
      * src/w32font.c (g_b_init_get_glyph_outline_w): Remove redundant
      declaration.
      (w32_to_x_charset): Fix warnings about discarding 'const' qualifier.
      (w32font_full_name): Fix warnings about implicit conversion of
      'float' to 'double'.
      * src/w32reg.c (w32_get_rdb_resource): Fix warnings about
      discarding 'const' qualifier.
      * src/w32menu.c (syms_of_w32menu, globals_of_w32menu)
      (set_frame_menubar): Remove redundant prototypes.
      (menubar_selection_callback, w32_menu_display_help): Provide
      prototypes.
      (simple_dialog_show): Avoid warnings about discarding 'const'
      qualifier.
      * src/w32fns.c (syms_of_w32fns, globals_of_w32fns)
      (free_frame_menubar, w32_strerror, x_set_menu_bar_lines)
      (x_set_tool_bar_lines, x_set_internal_border_width): Remove
      redundant prototypes.
      (current_popup_menu): Remove redundant declaration.
      (colormap_t): Member 'name' is now 'const char *'.
      (add_system_logical_colors_to_map): Fix signed/unsigned warnings.
      (x_decode_color, x_set_border_pixel)
      (x_clear_under_internal_border, x_set_name, hook_w32_key)
      (reset_w32_kbdhook_state, deliver_wm_chars, w32_backtrace): Now
      static.
      (w32_load_cursor, w32_key_to_modifier, map_keypad_keys)
      (w32_msg_worker, w32_last_error): Provide prototypes.
      (funhook, lookup_vk_code): Avoid warnings about missing
      parentheses.
      (x_default_font_parameter, Fw32_notification_notify): Avoid
      warnings about discarding 'const' qualifier.
      (Fx_create_frame): Avoid warnings about empty body of 'else'.
      (x_screen_planes): Ifdef away unused function.
      (Fx_show_tip): Remove unused variables.
      (Fw32_battery_status): Avoid warnings about implicit promotion
      from float to double.
      (Fw32_notification_notify): Initialize 'timeout'.
      * src/profiler.c (profiler_cpu_running) [HAVE_ITIMERSPEC]: Only
      define the TIMER_SETTIME_RUNNING value if it will be used.
      * src/w32notify.c (send_notifications): Ifdef away an empty if
      clause.  Remove unused variable.
      (watch_end, watch_completion): Provide prototypes.
      * src/sound.c (sound_warning) [WINDOWSNT]: Don't define: unused.
      * src/callproc.c (child_setup, getenv_internal_1) [WINDOWSNT]: Fix
      warning with pointer signedness.
      * src/gnutls.c (gnutls_x509_crt_get_signature)
      (gnutls_alert_send_appropriate) [WINDOWSNT]: Don't define, and
      don't load them from the GnuTLS library, as they are no longer
      used.
      * src/process.c (DATAGRAM_CHAN_P) [!DATAGRAM_SOCKETS]: Don't
      define, as it's unused.
      * src/unexw32.c (open_input_file, open_output_file)
      (close_file_data): Remove redundant prototypes.
      (_start): provide prototype.
      (mainCRTStartup): Move prototype to file level.
      (find_section): Use type-cast to shut up compiler warnings.
      (offset_to_section, relocate_offset): Now static.
      (find_section): First argument is now a 'const char *'.
      (offset_to_section): Ifdef away, as it's unused.
      * src/w32heap.h (find_section): Adjust prototype.
      * src/dynlib.c (dynlib_reset_last_error): Provide prototype.
      * src/dired.c (directory_files_internal_w32_unwind): Avoid
      warnings about missing prototypes.
      (is_slow_fs) [WINDOWSNT]: Provide prototype at file level.
      (directory_files_internal) [WINDOWSNT]: Fix warnings about pointer
      signedness.
      * src/fileio.c (Ffile_writable_p, Ffile_regular_p) [WINDOWSNT]:
      Fix warnings about pointer signedness.
      * src/filelock.c (WTMP_FILE) [WINDOWSNT]: Don't define, it's
      unused.
      * src/sysdep.c (_getpid): Remove redundant prototype.
      (sys_subshell) [DOS_NT]: Don't define 'status', it's unused.
      [!MSDOS]: Don't define 'st', it's unused.
      (init_sys_modes) [DOS_NT]: Don't define 'terminal', it's unused.
      (str_collate) [WINDOWSNT]: Avoid warnings about pointer signedness.
      * src/keyboard.c (tty_read_avail_input) [WINDOWSNT]: Don't define
      n_to_read, as it is not used.
      (MAX_ENCODED_BYTES) [WINDOWSNT]: Don't define, as it's unused.
      * src/w32font.h (syms_of_w32font): Remove redundant prototype.
      * src/xfaces.c (x_display_info) [HAVE_NTGUI]: Remove unused macro.
      * src/term.c (init_tty) [DOS_NT]: Ifdef away variables that are
      not used by DOS_NT builds, to avoid compiler warnings.
      * src/menu.c (current_popup_menu) [HAVE_NTGUI]: Remove redundant
      declaration.
      * src/dispnew.c (init_display) [WINDOWSNT]: Use type-cast to shut
      up compiler warnings.
      * src/w32term.h (x_set_window_size, x_get_focus_frame)
      (x_make_frame_visible, x_make_frame_invisible, x_iconify_frame)
      (x_set_frame_alpha, x_activate_menubar, x_bitmap_icon)
      (x_free_frame_resources, x_real_positions)
      (display_x_get_resource): Remove redundant prototypes.
      
      * lib-src/ntlib.c (sys_ctime, sys_fopen, sys_chdir, mkostemp)
      (sys_rename, gettimeofday): Provide prototypes.
      * lib-src/ntlib.h (getuid, geteuid, mkostemp): Remove redundant
      declarations.
      * lib-src/emacsclient.c (w32_getenv): Argument is now 'const char *'.
      (xstrdup, w32_get_resource, w32_window_app, w32_execvp, ttyname)
      (close_winsock, initialize_sockets, w32_set_user_model_id)
      (w32_find_emacs_process, w32_give_focus) [WINDOWSNT]: Add
      prototypes.
      (w32_get_resource) [WINDOWSNT]: Fix a warning about signedness
      difference.
      (w32_set_user_model_id): Update prototype of
      SetCurrentProcessExplicitAppUserModelID to avoid compiler
      warnings.
      (start_daemon_and_retry_set_socket) [WINDOWSNT]: Use type-cast to
      shut up compiler warnings.
      * lib-src/etags.c (MAXPATHLEN) [WINDOWSNT]: Remove unused macro.
      cb5af792
  36. 18 May, 2016 1 commit
    • Paul Eggert's avatar
      Port --enable-gcc-warnings to GCC 6.1 · 374f6a5f
      Paul Eggert authored
      * configure.ac (WERROR_CFLAGS): Omit -Wunused-const-variable=2.
      * lib-src/etags.c (LOOKING_AT, LOOKING_AT_NOCASE):
      Omit test whether pointer plus a constant equals a null pointer.
      * src/alloc.c (compact_small_strings):
      Avoid pointer arithmetic on null pointers.
      * src/alloc.c (mark_face_cache):
      * src/fontset.c (free_realized_fontsets, Fset_fontset_font):
      * src/fringe.c (draw_fringe_bitmap_1)
      (Fset_fringe_bitmap_face):
      * src/macfont.m (macfont_draw):
      * src/msdos.c (IT_set_face, IT_clear_screen):
      * src/nsfont.m (nsfont_draw):
      * src/nsterm.h (FRAME_DEFAULT_FACE):
      * src/nsterm.m (ns_draw_window_cursor)
      (ns_draw_vertical_window_border, ns_draw_window_divider)
      (ns_dumpglyphs_box_or_relief)
      (ns_maybe_dumpglyphs_background, ns_dumpglyphs_image)
      (ns_dumpglyphs_stretch):
      * src/w32term.c (w32_draw_vertical_window_border)
      (w32_draw_window_divider, x_set_mouse_face_gc):
      * src/xdisp.c (estimate_mode_line_height, init_iterator)
      (handle_face_prop, handle_single_display_spec, pop_it)
      (CHAR_COMPOSED_P, get_next_display_element)
      (next_element_from_display_vector, extend_face_to_end_of_line)
      (fill_gstring_glyph_string,BUILD_COMPOSITE_GLYPH_STRING):
      * src/xfaces.c (Finternal_merge_in_global_face, Fface_font)
      (lookup_named_face):
      * src/xterm.c (x_draw_vertical_window_border)
      (x_draw_window_divider, x_set_mouse_face_gc):
      Prefer FACE_OPT_FROM_ID to FACE_FROM_ID when the result might be null.
      * src/xterm.c (try_window_id):
      Redo loop to convince GCC 6.1 that it is null pointer safe.
      (x_color_cells):
      Use eassume as necessary to pacify GCC 6.1.
      * src/dispextern.h (FACE_FROM_ID, IMAGE_FROM_ID): Now returns non-null.
      (FACE_OPT_FROM_ID, IMAGE_OPT_FROM_ID): New macro, with the old
      behavior of the non-_OPT macro, to be used when the result
      might be a null pointer.
      * src/dispnew.c (buffer_posn_from_coords, marginal_area_string)
      [HAVE_WINDOW_SYSTEM]:
      * src/intervals.h (INTERVAL_WRITABLE_P):
      * src/term.c (turn_off_face):
      * src/xdisp.c (get_glyph_face_and_encoding, fill_image_glyph_string)
      (produce_image_glyph, produce_xwidget_glyph):
      * src/xfaces.c (lookup_named_face):
      Remove unnecessary test for null pointer.
      * src/keyboard.c (read_char): Suppress bogus -Wclobbered warning.
      * src/process.c (would_block): New function.
      (server_accept_connection, wait_reading_process_output, send_process):
      Use it.
      * src/xdisp.c (get_window_cursor_type, note_mouse_highlight):
      Prefer IMAGE_OPT_FROM_ID to IMAGE_FROM_ID when the result
      might be null.
      374f6a5f
  37. 01 Apr, 2016 1 commit
    • Eli Zaretskii's avatar
      Avoid crashes due to insanely large columns in tabulated-list-format · b3b523cd
      Eli Zaretskii authored
      * src/xdisp.c (append_stretch_glyph, produce_xwidget_glyph)
      (produce_image_glyph): Limit the pixel width of the produced glyph
      to SHRT_MAX.  (Bug#23178)
      (append_composite_glyph, append_glyph, append_glyphless_glyph):
      Add assertions to verify that the pixel width of the glyph will
      never overflow a 'short'.
      * src/term.c (append_composite_glyph): Add assertion to verify
      that the pixel width of the glyph will never overflow a 'short'.
      b3b523cd
  38. 24 Mar, 2016 1 commit