1. 02 Sep, 2012 1 commit
    • Paul Eggert's avatar
      * emacs.c, eval.c: Use bool for boolean. · 1882aa38
      Paul Eggert authored
      * emacs.c (initialized, inhibit_window_system, running_asynch_code):
      (malloc_using_checking) [DOUG_LEA_MALLOC]:
      (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
      (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
      (main, decode_env_path, Fdaemon_initialized):
      * eval.c (call_debugger, Finteractive_p, interactive_p):
      (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
      (maybe_call_debugger, Fbacktrace):
      * process.c (read_process_output, exec_sentinel):
      Use bool for booleans.
      * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
      All callers changed.
      * eval.c (interactive_p): Omit always-true boolean argument
      EXCLUDE_SUBRS_P.  All callers changed.
      * dispextern.h, lisp.h: Reflect above API changes.
      * firstfile.c (dummy): Use the address of 'main', whose signature
      won't change, instead of the address of 'initialize', whose
      signature just changed from int to bool.
      * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
      * msdos.c (fatal_error_in_progress): ... from here.
      * xdisp.c (redisplaying_p): Now a boolean.  Set it to 1 instead
      of incrementing it.
      (redisplay_internal, unwind_redisplay): Simply clear
      REDISPLAYING_P when unwinding, instead of saving its previous,
      always-false value and then restoring it.
      1882aa38
  2. 28 Aug, 2012 2 commits
    • Dmitry Antipov's avatar
      Fix usage of set_buffer_internal. · a3d794a1
      Dmitry Antipov authored
      * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
      * buffer.c (set_buffer_if_live): Use set_buffer_internal.
      * coding.c (decode_coding): Omit redundant test.
      * fileio.c (decide_coding_unwind): Likewise.
      * fns.c (secure_hash): Likewise.
      * insdel.c (modify_region): Likewise.
      * keyboard.c (command_loop_1): Likewise.
      * print.c (PRINTFINISH): Likewise.
      * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
      a3d794a1
    • Paul Eggert's avatar
      * dispnew.c: Use bool for boolean. · 59ea14cd
      Paul Eggert authored
      (frame_garbaged, display_completed, delayed_size_change)
      (fonts_changed_p, add_window_display_history)
      (add_frame_display_history, verify_row_hash)
      (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
      (row_equal_p, realloc_glyph_pool)
      (allocate_matrices_for_frame_redisplay)
      (showing_window_margins_p)
      (adjust_frame_glyphs_for_frame_redisplay)
      (build_frame_matrix_from_leaf_window, make_current)
      (mirrored_line_dance, mirror_line_dance, update_frame)
      (update_window_tree, update_single_window)
      (check_current_matrix_flags, update_window, update_text_area)
      (update_window_line, set_window_update_flags, scrolling_window)
      (update_frame_1, scrolling, buffer_posn_from_coords)
      (do_pending_window_change, change_frame_size)
      (change_frame_size_1, sit_for):
      Use bool for boolean.
      (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
      and remove last int (actually boolean) argument, which was always 0.
      All callers changed.
      * dispextern.h, frame.h, lisp.h: Reflect above API changes.
      * dispextern.h (struct composition_it): Use bool for boolean.
      (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
      (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
      * dired.c (file_name_completion):
      Use bool for boolean.  (This was missed in an earlier change.)
      59ea14cd
  3. 26 Aug, 2012 1 commit
  4. 21 Aug, 2012 1 commit
    • Paul Eggert's avatar
      * alloc.c: Use bool for booleans. · fce31d69
      Paul Eggert authored
      (gc_in_progress, abort_on_gc)
      (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
      (dont_register_blocks) [GC_MALLOC_CHECK]:
      (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
      (check_string_bytes, make_specified_string, memory_full)
      (live_string_p, live_cons_p, live_symbol_p, live_float_p)
      (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
      (mark_stack, valid_pointer_p, make_pure_string)
      (Fgarbage_collect, survives_gc_p, gc_sweep):
      Use bool for booleans, instead of int.
      (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
      Remove unused local.
      * alloc.c (PURE_POINTER_P):
      * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
      * editfns.c (Fformat):
      * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
      (Fdo_auto_save):
      * fns.c (sweep_weak_table):
      * lisp.h (suppress_checking, push_message, survives_gc_p)
      (make_pure_string, gc_in_progress, abort_on_gc):
      * lread.c (readchar, read1):
      * print.c (Fprin1_to_string):
      * xdisp.c (push_message):
      Use bool for booleans affected directly or indirectly by
      alloc.c's changes.
      fce31d69
  5. 19 Aug, 2012 2 commits
  6. 18 Aug, 2012 3 commits
    • Chong Yidong's avatar
      Make display strings obey buffer-invisibility-spec. · a999ce26
      Chong Yidong authored
      * src/xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
      for the string case.
      
      * redisplay-testsuite.el (test-redisplay-4): New test.
      
      Fixes: debbugs:3874
      a999ce26
    • Paul Eggert's avatar
      * buffer.h (BSET): Remove. · 39eb03f1
      Paul Eggert authored
      Replace all uses with calls to new setter functions.
      (bset_bidi_paragraph_direction, bset_case_canon_table)
      (bset_case_eqv_table, bset_directory, bset_display_count)
      (bset_display_time, bset_downcase_table)
      (bset_enable_multibyte_characters, bset_filename, bset_keymap)
      (bset_last_selected_window, bset_local_var_alist)
      (bset_mark_active, bset_point_before_scroll, bset_read_only)
      (bset_truncate_lines, bset_undo_list, bset_upcase_table)
      (bset_width_table):
      * buffer.c (bset_abbrev_mode, bset_abbrev_table)
      (bset_auto_fill_function, bset_auto_save_file_format)
      (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
      (bset_bidi_display_reordering, bset_buffer_file_coding_system)
      (bset_cache_long_line_scans, bset_case_fold_search)
      (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
      (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
      (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
      (bset_fringe_indicator_alist, bset_fringes_outside_margins)
      (bset_header_line_format, bset_indicate_buffer_boundaries)
      (bset_indicate_empty_lines, bset_invisibility_spec)
      (bset_left_fringe_width, bset_major_mode, bset_mark)
      (bset_minor_modes, bset_mode_line_format, bset_mode_name)
      (bset_name, bset_overwrite_mode, bset_pt_marker)
      (bset_right_fringe_width, bset_save_length)
      (bset_scroll_bar_width, bset_scroll_down_aggressively)
      (bset_scroll_up_aggressively, bset_selective_display)
      (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
      (bset_word_wrap, bset_zv_marker):
      * category.c (bset_category_table):
      * syntax.c (bset_syntax_table):
      New setter functions.
      
      Fixes: debbugs:12215
      39eb03f1
    • Paul Eggert's avatar
      * window.h (WSET): Remove. · e8c17b81
      Paul Eggert authored
      Replace all uses with calls to new setter functions.
      Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
      (WINDOW_INLINE): New macro.
      (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
      (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
      (wset_total_lines, wset_vertical_scroll_bar)
      (wset_window_end_pos, wset_window_end_valid)
      (wset_window_end_vpos): New setter functions.
      * window.c (WINDOW_INLINE):
      Define to EXTERN_INLINE, so that the corresponding functions
      are compiled into code.
      (wset_combination_limit, wset_dedicated, wset_display_table)
      (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
      (wset_new_normal, wset_new_total, wset_next_buffers)
      (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
      (wset_prev_buffers, wset_right_fringe_width)
      (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
      (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
      (wset_window_parameters):
      * xdisp.c (wset_base_line_number, wset_base_line_pos)
      (wset_column_number_displayed, wset_region_showing):
      New setter functions.
      
      Fixes: debbugs:12215
      e8c17b81
  7. 17 Aug, 2012 1 commit
    • Paul Eggert's avatar
      * frame.h (FSET): Remove (Bug#12215). · f00af5b1
      Paul Eggert authored
      Replace all uses with calls to new setter functions.
      Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
      (FRAME_INLINE): New macro.
      (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
      (fset_current_tool_bar_string, fset_desired_tool_bar_string)
      (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
      (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
      (fset_param_alist, fset_root_window, fset_scroll_bars)
      (fset_selected_window, fset_title, fset_tool_bar_items)
      (fset_tool_bar_position, fset_tool_bar_window): New functions.
      * frame.c (FRAME_INLINE):
      Define to EXTERN_INLINE, so that the corresponding functions
      are compiled into code.
      (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
      f00af5b1
  8. 14 Aug, 2012 1 commit
    • Dmitry Antipov's avatar
      Revert and cleanup some recent overlay changes. · fd318b54
      Dmitry Antipov authored
      * buffer.h (enum overlay_type): Remove.
      (buffer_get_overlays, buffer_set_overlays): Likewise.
      (buffer_set_overlays_before, buffer_set_overlays_after):
      New function.  Adjust users.
      (unchain_both): Add eassert.
      fd318b54
  9. 13 Aug, 2012 1 commit
  10. 08 Aug, 2012 3 commits
    • Stefan Monnier's avatar
      * src/xdisp.c (safe_eval_handler): Remove prototype. Receive args describing · cc92c454
      Stefan Monnier authored
      the failing expression, include them in the error message.
      * src/eval.c (internal_condition_case_n): Pass nargs and args to hfun.
      * src/lisp.h (internal_condition_case_n): Update declaration.
      cc92c454
    • Dmitry Antipov's avatar
      Inline functions to examine and change buffer overlays. · 4cb3e6b3
      Dmitry Antipov authored
      * buffer.c (unchain_both): New function.
      * buffer.h (buffer_get_overlays, buffer_set_overlays):
      (buffer_has_overlays): New function.
      (enum overlay_type): New enum.
      * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
      * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
      4cb3e6b3
    • Dmitry Antipov's avatar
      Cleanup intervals. · 77c7bcb1
      Dmitry Antipov authored
      * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
      (NULL_INTERVAL_P): Likewise.  Adjust users.
      (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P): Adjust
      comment.  Move under #if 0.
      * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
      * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
      77c7bcb1
  11. 07 Aug, 2012 3 commits
    • Dmitry Antipov's avatar
      Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process. · 4d2b044c
      Dmitry Antipov authored
      * process.h (PGET): Remove.
      (struct Lisp_Process): Do not use INTERNAL_FIELD.
      * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
      4d2b044c
    • Dmitry Antipov's avatar
      Drop WGET and revert read access to Lisp_Objects slots of struct window. · d3d50620
      Dmitry Antipov authored
      * window.h (WGET): Remove.
      (struct window): Do not use INTERNAL_FIELD.
      * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
      * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
      * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
      * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
      * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
      Adjust users.
      d3d50620
    • Dmitry Antipov's avatar
      Drop FGET and revert read access to Lisp_Objects slots of struct frame. · e69b0960
      Dmitry Antipov authored
      * frame.h (FGET): Remove.
      (struct frame): Do not use INTERNAL_FIELD.
      * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
      * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
      * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
      * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
      e69b0960
  12. 06 Aug, 2012 3 commits
    • Dmitry Antipov's avatar
      Separate read and write access to Lisp_Object slots of Lisp_Process. · 21238f11
      Dmitry Antipov authored
      * process.h (PGET, PSET): New macros similar to AREF and ASET.
      * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
      21238f11
    • Dmitry Antipov's avatar
      Separate read and write access to Lisp_Object slots of struct window. · 077288cf
      Dmitry Antipov authored
      * window.h (WGET, WSET): New macros similar to AREF and ASET.
      * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
      * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
      * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
      * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
      * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
      Adjust users.
      077288cf
    • Dmitry Antipov's avatar
      Separate read and write access to Lisp_Object slots of struct frame. · edd74c35
      Dmitry Antipov authored
      * frame.h (FGET, FSET): New macros similar to AREF and ASET.
      * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
      * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
      * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
      * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
      edd74c35
  13. 05 Aug, 2012 1 commit
    • Dmitry Antipov's avatar
      Generalize common compile-time constants. · 663e2b3f
      Dmitry Antipov authored
      * lisp.h (header_size, bool_header_size, word_size): Now here.
      (struct Lisp_Vector): Add comment.
      (struct Lisp_Bool_Vector): Move up to define handy constants.
      (VECSIZE, PSEUDOVECSIZE): Simplify.
      (SAFE_ALLOCA_LISP): Use new constant.  Adjust indentation.
      * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
      * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
      * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
      * xfont.c, xmenu.c: Use word_size where appropriate.
      663e2b3f
  14. 03 Aug, 2012 1 commit
    • Paul Eggert's avatar
      Remove unnecessary casts involving pointers. · 98c6f1e3
      Paul Eggert authored
      These casts are no longer needed now that we assume C89 or later,
      since they involve casting to or from void *.
      * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
      (make_pure_float, make_pure_vector):
      * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
      * macros.c (Fstart_kbd_macro):
      * menu.c (find_and_return_menu_selection):
      * minibuf.c (read_minibuf_noninteractive):
      * sysdep.c (closedir):
      * xdisp.c (x_produce_glyphs):
      * xfaces.c (compare_fonts_by_sort_order):
      * xfns.c (x_real_positions, select_visual):
      * xselect.c (x_stop_queuing_selection_requests)
      (x_get_window_property, x_get_window_property_as_lisp_data):
      * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
      Remove unnecessary pointer casts.
      * alloc.c (record_xmalloc): New function.
      * lisp.h (record_xmalloc): New decl.
      (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
      more like a function.  This is because the pointer cast is not
      needed.  All uses changed.
      * print.c (print_string, print_error_message): Avoid length recalc.
      98c6f1e3
  15. 01 Aug, 2012 3 commits
    • Eli Zaretskii's avatar
      Fix fallout from 2012-08-01T05:11:36Z!dmantipov@yandex.ru that introduced WVAR. · 4f5d0325
      Eli Zaretskii authored
       src/xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
      4f5d0325
    • Dmitry Antipov's avatar
      Use INTERNAL_FIELD for processes. · 3193acd2
      Dmitry Antipov authored
      * src/process.h (PVAR): New macro.  Adjust style.
      (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
      * src/print.c, src/process.c, src/sysdep.c, src/w32.c:
      * src/xdisp.c: Users changed.
      * admin/coccinelle/process.cocci: Semantic patch to replace direct
      access to Lisp_Object members of struct Lisp_Process to PVAR.
      3193acd2
    • Dmitry Antipov's avatar
      Use INTERNAL_FIELD for windows. · 3a45383a
      Dmitry Antipov authored
      * src/window.h (WVAR): New macro.
      (struct window): Change Lisp_Object members to INTERNAL_FIELD.
      * src/alloc.c, src/buffer.c, src/composite.c, src/dispextern.h:
      * src/dispnew.c, src/editfns.c, src/fileio.c, src/font.c, src/fontset.c:
      * src/frame.c, src/frame.h, src/fringe.c, src/indent.c, src/insdel.c:
      * src/keyboard.c, src/keymap.c, src/lisp.h, src/minibuf.c, src/nsterm.m:
      * src/print.c, src/textprop.c, src/w32fns.c, src/w32menu.c, src/w32term.c:
      * src/window.c, src/xdisp.c, src/xfaces.c, src/xfns.c, src/xmenu.c:
      * src/xterm.c: Users changed.
      * admin/coccinelle/window.cocci: Semantic patch to replace direct
      access to Lisp_Object members of struct window to WVAR.
      3a45383a
  16. 31 Jul, 2012 1 commit
    • Dmitry Antipov's avatar
      Generalize INTERNAL_FIELD between buffers, keyboards and frames. · e34f7f79
      Dmitry Antipov authored
      * src/lisp.h (INTERNAL_FIELD): New macro.
      * src/buffer.h (BUFFER_INTERNAL_FIELD): Removed.
      (BVAR): Change to use INTERNAL_FIELD.
      * src/keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
      (KVAR): Change to use INTERNAL_FIELD.
      * src/frame.h (FVAR): New macro.
      (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
      * src/alloc.c, src/buffer.c, src/data.c, src/dispnew.c, src/dosfns.c
      * src/eval.c, src/frame.c, src/fringe.c, src/gtkutil.c, src/minibuf.c
      * src/nsfns.m, src/nsterm.m, src/print.c, src/term.c, src/w32fns.c
      * src/w32menu.c, src/w32term.c, src/window.c, src/window.h, src/xdisp.c
      * src/xfaces.c, src/xfns.c, src/xmenu.c, src/xterm.c: Users changed.
      * admin/coccinelle/frame.cocci: Semantic patch to replace direct
      access to Lisp_Object members of struct frame to FVAR.
      e34f7f79
  17. 30 Jul, 2012 2 commits
  18. 28 Jul, 2012 1 commit
  19. 27 Jul, 2012 2 commits
    • Eli Zaretskii's avatar
      Fix failure to compile on Windows due to 2012-07-27T06:04:35Z!dmantipov@yandex.ru. · 3438fe21
      Eli Zaretskii authored
       src/lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
       enumeration constants, as PURE and HEAP are too general, and clash
       with other headers and sources, such as gmalloc.c and the
       MS-Windows system headers.  All users changed.
      3438fe21
    • Dmitry Antipov's avatar
      Utility function to make a list from specified amount of objects. · 694b6c97
      Dmitry Antipov authored
      * lisp.h (enum constype): New datatype.
      (listn): New prototype.
      * alloc.c (listn): New function.
      (Fmemory_use_count, syms_of_alloc): Use it.
      * buffer.c (syms_of_buffer): Likewise.
      * callint.c (syms_of_callint): Likewise.
      * charset.c (define_charset_internal): Likewise.
      * coding.c (syms_of_coding): Likewise.
      * keymap.c (syms_of_keymap): Likewise.
      * search.c (syms_of_search): Likewise.
      * syntax.c (syms_of_syntax): Likewise.
      * w32.c (init_environment): Likewise.
      * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
      * xdisp.c (syms_of_xdisp): Likewise.
      * xfns.c (syms_of_xfns): Likewise.
      694b6c97
  20. 24 Jul, 2012 1 commit
  21. 13 Jul, 2012 2 commits
  22. 12 Jul, 2012 1 commit
    • Eli Zaretskii's avatar
      Improve fix for bug #11832 with truncated/continued lines w/o margins. · 5a979817
      Eli Zaretskii authored
       src/xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
       memmove call that removes glyphs covered by the left truncation
       glyph.  Improve commentary.
       (display_line): Fix display of continuation glyphs on GUI frames
       when the right fringe is turned off and variable-size fonts are
       used in the window.  Move the code that appends a stretch glyph to
       produce_special_glyphs, so that it could be used for truncation
       and continuation glyphs alike.
       (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
       glyph of a suitably computed width, to align the special glyphs at
       the window margin.  Code moved from display_line.
      5a979817
  23. 10 Jul, 2012 3 commits
    • Paul Eggert's avatar
      EMACS_TIME simplification (Bug#11875). · e9a9ae03
      Paul Eggert authored
      This replaces macros (which typically do not work in GDB)
      with functions, typedefs and enums, making the code easier to debug.
      The functional style also makes code easier to read and maintain.
      * lib-src/profile.c (TV2): Remove no-longer-needed static var.
      * src/systime.h: Include <sys/time.h> on all hosts, not just if
      WINDOWSNT, since 'struct timeval' is needed in general.
      (EMACS_TIME): Now a typedef, not a macro.
      (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
      not macros.
      (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
      (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
      (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
      (EMACS_TIME_LE): Now functions, not macros.
      (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
      (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
      which are not functions.  All uses rewritten to use:
      (make_emacs_time): New function.
      (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
      (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
      not functions.  All uses rewritten to use the following, respectively:
      (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
      (add_emacs_time, sub_emacs_time): New functions.
      * src/atimer.c: Don't include <sys/time.h>,	as "systime.h" does this.
      * src/fileio.c (Fcopy_file):
      * src/xterm.c (XTflash): Get the current time closer to when it's used.
      * src/makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
      e9a9ae03
    • Paul Eggert's avatar
      e99a530f
    • Dmitry Antipov's avatar
      Optimize pure C strings initialization. · 2a0213a6
      Dmitry Antipov authored
      * lisp.h (make_pure_string): Fix prototype.
      (build_pure_c_string): New function, defined as static inline.  This
      provides a better opportunity to optimize away calls to strlen when
      the function is called with compile-time constant argument.
      * alloc.c (make_pure_c_string): Fix comment.  Change to add nchars
      argument, adjust users accordingly.  Use build_pure_c_string where
      appropriate.
      * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
      * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
      * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
      2a0213a6