1. 01 Oct, 2012 1 commit
  2. 30 Sep, 2012 1 commit
    • Fabrice Popineau's avatar
      Support x64 build on MS-Windows with MSVC. · 62aba0d4
      Fabrice Popineau authored
       src/w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
       (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
       compatibility with x64.
       src/w32term.c (w32_draw_underwave): Don't use GCC extensions for
       defining an XRectangle structure.
       src/w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
       arithmetics for compatibility with x64.
       src/w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
       compatibility with x64.
       src/w32heap.h: Adjust prototypes and declarations.
       src/w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
       (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
       DWORD, long, and unsigned long, for compatibility with x64.
       (allocate_heap) [_WIN64]: Reserve 32GB of memory.
       (sbrk): Argument is now of type ptrdiff_t.
       src/w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
       less than 0x0500.
       (w32_msg_pump): Use WPARAM type for 'result'.
       src/w32.c (init_environment, get_emacs_configuration): Support AMD64
       architecture.
       (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
       compatibility with x64.
       src/vm-limit.c (lim_data): Now size_t.
       (check_memory_limits): Adjust prototypes of real_morecore and
       __morecore to receive argument of type ptrdiff_t.  Use size_t for
       five_percent and data_size.
       src/unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
       variables, for compatibility with x64.
       (rva_to_section, offset_to_section, relocate_offset)
       (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
       (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
       (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
       for compatibility with x64.
       src/sysdep.c (STDERR_FILENO): Define if not already defined.
       src/ralloc.c (real_morecore): Argument type is now ptrdiff_t.
       (__morecore): Argument type is now ptrdiff_t.
       (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
       (relinquish): Use ptrdiff_t type for 'excess'.
       (r_alloc_sbrk): Argument type is now ptrdiff_t.
       src/makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
       (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
       instead of a literal number.
       src/gmalloc.c [WINDOWSNT]: Include w32heap.h.
       (min): Define only if not already defined.
       src/frame.c (x_report_frame_params): Use EMACS_UINT for the return
       value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
       hosts.
       src/image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
       'bitmaps' is a pointer.
       src/dispextern.h (x_bitmap_pixmap): Adjust prototype.
       src/alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
      
       nt/makefile.w32-in ($(TRES)): Use $(EMACS_MANIFEST).
       nt/inc/sys/socket.h: Don't map Winsock error codes to standard ones
       that are already defined.
       nt/inc/ms-w32.h (EMACS_INT, EMACS_UINT, EMACS_INT_MAX, PRIuMAX)
       (pI, _INTPTR) [_MSC_VER]: Fix definitions for MSVC.
       [_MSC_VER]: Add pragmas to suppress some MSVC warnings.
       nt/preprep.c (pfnCheckSumMappedFile, rva_to_section)
       (offset_to_section, relocate_offset, OFFSET_TO_RVA)
       (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
       (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
       (copy_executable_and_move_sections, ADJUST_IMPORT_RVA, main): Use
       DWORD_PTR instead of DWORD for compatibility with x64.
       nt/nmake.defs: Support AMD64.
       (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): New macros.
       nt/gmake.defs: (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST):
       New macros.
       nt/addsection.c (pfnCheckSumMappedFile, rva_to_section)
       (offset_to_section, relocate_offset, OFFSET_TO_RVA)
       (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
       (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
       (copy_executable_and_add_section, main): Use DWORD_PTR instead of
       DWORD, for compatibility with x64.
       nt/emacs-x64.manifest: New file.
       nt/emacs-x86.manifest: Renamed from emacs.manifest.
      
       lib-src/ntlib.c (gettimeofday): Copy from src/w32.c.  lib/gettime. 
       needs this function.
      62aba0d4
  3. 23 Sep, 2012 1 commit
    • Paul Eggert's avatar
      Simplify and avoid signal-handling races. · 4d7e6e51
      Paul Eggert authored
      * nt/inc/ms-w32.h (emacs_raise): New macro.
      * src/alloc.c (die):
      * src/sysdep.c (emacs_abort) [HAVE_NTGUI]:
      Avoid recursive loop if there's a fatal error in the function itself.
      * src/atimer.c (pending_atimers):
      * src/blockinput.h: Don't include "atimer.h"; no longer needed.
      (interrupt_input_pending): Remove.  All uses removed.
      pending_signals now counts both atimers and ordinary interrupts.
      This is less racy than having three separate pending-signal flags.
      (block_input, unblock_input, totally_unblock_input, unblock_input_to)
      (input_blocked_p):
      Rename from their upper-case counterparts BLOCK_INPUT,
      UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
      INPUT_BLOCKED_P, and turn into functions.  All uses changed.
      This makes it easier to access volatile variables more accurately.
      (BLOCK_INPUT_RESIGNAL): Remove.  All uses replaced by unblock_input ().
      (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
      that's more reliable if the code is buggy and sets
      interrupt_input_blocked to a negative value.  All uses changed.
      * src/atimer.c (deliver_alarm_signal):
      Remove.  No need to deliver this to the parent; any thread can
      handle this signal now.  All uses replaced by underlying handler.
      * src/atimer.c (turn_on_atimers):
      * src/dispnew.c (handle_window_change_signal):
      * src/emacs.c (handle_danger_signal):
      * src/keyboard.c (kbd_buffer_get_event):
      Don't reestablish signal handler; not needed with sigaction.
      * src/blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
      (UNBLOCK_INPUT_TO):
      Rework to avoid unnecessary accesses to volatile variables.
      (UNBLOCK_INPUT_TO): Now a function.
      (totally_unblock_input, unblock_input): New decls.
      * src/data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
      (init_data): Remove.  Necessary stuff now done in init_signal.
      * src/emacs.c, src/xdisp.c: Include "atimer.h", since we invoke atimer functions.
      * src/emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
      (fatal_error_code): Remove; no longer needed.
      (terminate_due_to_signal): Rename from fatal_error_backtrace, since
      it doesn't always backtrace.  All uses changed.  No need to reset
      signal to default, since sigaction and/or die does that for us now.
      Use emacs_raise (FOO), not kill (getpid (), FOO).
      (main): Check more-accurately whether we're dumping.
      Move fatal-error setup to sysdep.c
      * src/floatfns.c: Do not include "syssignal.h"; no longer needed.
      * src/gtkutil.c (xg_get_file_name, xg_get_font):
      Remove no-longer-needed signal-mask manipulation.
      * src/keyboard.c, src/process.c (POLL_FOR_INPUT):
      Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
      * src/keyboard.c (read_avail_input): Remove.
      All uses replaced by gobble_input.
      (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
      (kbd_buffer_store_event_hold, gobble_input):
      (record_asynch_buffer_change) [USABLE_SIGIO]:
      (store_user_signal_events):
      No need to mess with signal mask.
      (gobble_input): If blocking input and there are terminals, simply
      set pending_signals to 1 and return.  All hooks changed to not
      worry about whether input is blocked.
      (process_pending_signals): Clear pending_signals before processing
      them, in case a signal comes in while we're processing.
      By convention callers now test pending_signals before calling us.
      (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
      New functions, to support changes to blockinput.h.
      (handle_input_available_signal): Now extern.
      (reinvoke_input_signal): Remove.  All uses replaced by
      handle_async_input.
      (quit_count): Now volatile, since a signal handler uses it.
      (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.  All
      callers changed.  Block SIGINT only if not already blocked.
      Clear sigmask reliably, even if Fsignal returns, which it can.
      Omit unnecessary accesses to volatile var.
      (quit_throw_to_read_char): No need to restore sigmask.
      * src/keyboard.c (gobble_input, handle_user_signal):
      * src/process.c (wait_reading_process_output):
      Call signal-handling code rather than killing ourselves.
      * src/lisp.h: Include <float.h>, for...
      (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
      (pending_signals): Now volatile.
      (syms_of_data): Now const if IEEE floating point.
      (handle_input_available_signal) [USABLE_SIGIO]:
      (terminate_due_to_signal, record_child_status_change): New decls.
      * src/process.c (create_process): Avoid disaster if memory is exhausted
      while we're processing a vfork, by tightening the critical section
      around the vfork.
      (send_process_frame, process_sent_to, handle_pipe_signal)
      (deliver_pipe_signal): Remove.  No longer needed, as Emacs now
      ignores SIGPIPE.
      (send_process): No need for setjmp/longjmp any more, since the
      SIGPIPE stuff is now gone.  Instead, report an error if errno
      is EPIPE.
      (record_child_status_change): Now extern.  PID and W are now args.
      Return void, not bool.  All callers changed.
      * src/sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
      Remove.  All uses removed.  This bug should be fixed now in a
      different way.
      (wait_for_termination_1): Use waitpid rather than sigsuspend,
      and record the child status change directly.  This avoids the
      need to futz with the signal mask.
      (process_fatal_action): Move here from emacs.c.
      (emacs_sigaction_flags): New function, containing
      much of what used to be in emacs_sigaction_init.
      (emacs_sigaction_init): Use it.  Block nonfatal system signals that are
      caught by emacs, to make races less likely.
      (deliver_process_signal): Rename from handle_on_main_thread.
      All uses changed.
      (BACKTRACE_LIMIT_MAX): Now at top level.
      (thread_backtrace_buffer, threadback_backtrace_pointers):
      New static vars.
      (deliver_thread_signal, deliver_fatal_thread_signal):
      New functions, for more-accurate delivery of thread-specific signals.
      (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
      (deliver_arith_signal): Handle in this thread, not
      in the main thread, since it's triggered by this thread.
      (maybe_fatal_sig): New function.
      (init_signals): New arg DUMPING so that we can be more accurate
      about whether we're dumping.  Caller changed.
      Treat thread-specific signals differently from process-general signals.
      Block all signals while handling fatal error; that's safer.
      xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
      on IEEE hosts.
      When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
      Ignore SIGPIPE unless batch.
      (emacs_backtrace): Output backtrace for the appropriate thread,
      which is not necessarily the main thread.
      * src/syssignal.h: Include <stdbool.h>.
      (emacs_raise): New macro.
      * src/xterm.c (x_connection_signal): Remove; no longer needed
      now that we use sigaction.
      (x_connection_closed): No need to mess with sigmask now.
      (x_initialize): No need to reset SIGPIPE handler here, since
      init_signals does this for us now.
      
      Fixes: debbugs:12471
      4d7e6e51
  4. 19 Sep, 2012 2 commits
  5. 15 Sep, 2012 1 commit
    • Paul Eggert's avatar
      Port better to POSIX hosts lacking _setjmp. · 0328b6de
      Paul Eggert authored
      * configure.ac (HAVE__SETJMP, HAVE_SIGSETJMP): New symbols.
      (_setjmp, _longjmp): Remove.
      * src/lisp.h: Include <setjmp.h> here, since we use its symbols here.
      All instances of '#include <setjmp.h>' removed, if the
      only reason for the instance was because "lisp.h" was included.
      (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
      Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
      and _longjmp with the new symbols.  Emacs already uses _setjmp if
      available, so this change affects only POSIXish hosts that have
      sigsetjmp but not _setjmp, such as some versions of Solaris and
      Unixware.  (Also, POSIX-2008 marks _setjmp as obsolescent.)
      * src/image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
      (png_load_body) [HAVE_PNG]:
      (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
      (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
      Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
      since PNG requires jmp_buf.  This is the only exception to the
      general rule that we now use sys_setjmp and sys_longjmp.
      This exception is OK since this code does not change the signal
      mask or longjmp out of a signal handler.
      
      Fixes: debbugs:12446
      0328b6de
  6. 13 Sep, 2012 1 commit
    • Dmitry Antipov's avatar
      Function to mark objects and remove killed buffers at once. · d59a1afb
      Dmitry Antipov authored
      * alloc.c (discard_killed_buffers): Rename to ...
      (mark_discard_killed buffers) ... new name.  Add marking
      of remaining objects.  Fix comment.  Adjust users.
      (mark_object): Do not touch frame buffer lists here.
      * frame.c (delete_frame): Reset frame buffer lists here.
      d59a1afb
  7. 04 Sep, 2012 1 commit
    • 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
  8. 01 Sep, 2012 1 commit
    • Daniel Colascione's avatar
      Refactor window-system configuration · 17a2cbbd
      Daniel Colascione authored
      This change streamlines the window system selection code in
      configure.in and moves many common function declarations from
      window-specific headers to frame.h.  It introduces a new TERM_HEADER
      macro in config.h: we set this macro to the right header to use for
      the window system for which we're compiling Emacs and have source
      files include it indirectly.  This way, we don't have to teach every
      file about every window system.
      17a2cbbd
  9. 22 Aug, 2012 1 commit
  10. 18 Aug, 2012 2 commits
    • 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
  11. 17 Aug, 2012 3 commits
    • Paul Eggert's avatar
      * keyboard.h (KSET): Remove. · 15dbb4d6
      Paul Eggert authored
      Replace all uses with calls to new setter functions.
      Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
      (KEYBOARD_INLINE): New macro.
      (kset_default_minibuffer_frame, kset_defining_kbd_macro)
      (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
      (kset_prefix_arg, kset_system_key_alist, kset_window_system):
      New setter functions.
      * keyboard.c (KEYBOARD_INLINE):
      Define to EXTERN_INLINE, so that the corresponding functions
      are compiled into code.
      (kset_echo_string, kset_kbd_queue)
      (kset_keyboard_translate_table, kset_last_prefix_arg)
      (kset_last_repeatable_command, kset_local_function_key_map)
      (kset_overriding_terminal_local_map, kset_real_last_command)
      (kset_system_key_syms): New setter functions.
      
      Fixes: debbugs:12215
      15dbb4d6
    • 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
    • Dmitry Antipov's avatar
      Functions to get and set Lisp_Object fields of buffer-local variables. · a04e2c62
      Dmitry Antipov authored
      * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
      (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
      (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
      * data.c, eval.c, frame.c: Adjust users.
      a04e2c62
  12. 16 Aug, 2012 1 commit
    • Paul Eggert's avatar
      Use ASCII tests for character types. · 620f13b0
      Paul Eggert authored
      * admin/merge-gnulib (GNULIB_MODULES): Add c-ctype.
      * lwlib/lwlib-Xaw.c, lwlib/lwlib.c, lwlib/xlwmenu.c:
      Don't include <ctype.h>; no longer needed.
      * lwlib/lwlib-Xaw.c (openFont):
      * lwlib/xlwmenu.c (openXftFont): Test just for ASCII digits.
      * src/category.c, src/dispnew.c, src/doprnt.c, src/editfns.c, src/syntax.c
      * src/term.c, src/xfns.c, src/xterm.c:
      Don't include <ctype.h>; was not needed.
      * src/charset.c, src/doc.c, src/fileio.c, src/font.c, src/frame.c:
      * src/gtkutil.c, src/image.c, src/sysdep.c, src/xfaces.c:
      Include <c-ctype.h> instead of <ctype.h>.
      * src/nsterm.m: Include <c-ctype.h>.
      * src/charset.c (read_hex):
      * src/doc.c (Fsnarf_documentation):
      * src/fileio.c (IS_DRIVE) [WINDOWSNT]:
      (DRIVE_LETTER) [DOS_NT]:
      (Ffile_name_directory, Fexpand_file_name)
      (Fsubstitute_in_file_name):
      * src/font.c (font_parse_xlfd, font_parse_fcname):
      * src/frame.c (x_set_font_backend):
      * src/gtkutil.c (xg_get_font):
      * src/image.c (xbm_scan, xpm_scan, pbm_scan_number):
      * src/nsimage.m (hexchar):
      * src/nsterm.m (ns_xlfd_to_fontname):
      * src/sysdep.c (system_process_attributes):
      * src/xfaces.c (hash_string_case_insensitive):
      Use C-locale tests instead of locale-specific tests for character
      types, since we want the ASCII interpretation here, not the
      interpretation suitable for whatever happens to be the current locale.
      620f13b0
  13. 14 Aug, 2012 1 commit
    • Martin Rudalics's avatar
      Don't call Fset_window_buffer from C code. · 08908aca
      Martin Rudalics authored
      * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
      (delete_frame, Fmake_frame_invisible, Ficonify_frame):
      * minibuf.c (choose_minibuf_frame, read_minibuf):
      * w32fns.c (x_create_tip_frame):
      * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
      Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
      08908aca
  14. 13 Aug, 2012 2 commits
  15. 10 Aug, 2012 1 commit
    • Dmitry Antipov's avatar
      Define Qnone once for all platforms. · 9fb0c957
      Dmitry Antipov authored
      * frame.c (Qnone): Define here.
      (syms_of_frame): DEFSYM it.
      * lisp.h (Qnone): New declaration.
      * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
      * xfns.c: Remove duplication.  Adjust users.
      9fb0c957
  16. 07 Aug, 2012 2 commits
    • 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
  17. 06 Aug, 2012 2 commits
    • 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
  18. 05 Aug, 2012 1 commit
    • Chong Yidong's avatar
      Docfix for kill-buffer-hook and others. · e5d9c0d1
      Chong Yidong authored
      * lisp/files.el (kill-buffer-hook): Provide a defvar.
      
      * src/term.c (Vsuspend_tty_functions, Vresume_tty_functions):
      * src/frame.c (Vdelete_frame_functions):
      * src/emacs.c (Vkill_emacs_hook): Doc fix.
      e5d9c0d1
  19. 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
  20. 01 Aug, 2012 1 commit
    • 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
  21. 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
  22. 25 Jul, 2012 1 commit
  23. 20 Jul, 2012 1 commit
    • Dmitry Antipov's avatar
      Simple wrapper for make_unibyte_string, adjust font_open_by_name. · d7ea76b4
      Dmitry Antipov authored
      * src/lisp.h (build_unibyte_string): New function.
      * src/dosfns.c, src/fileio.c, src/fns.c, src/ftfont.c, src/process.c:
      * src/sysdep.c, src/w32fns.c, src/xfns.c: Use it.
      * src/font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
      of type Lisp_Object to avoid redundant calls to make_unibyte_string.
      Adjust users accordingly.
      * src/font.h (font_open_by_name): Adjust prototype.
      * admin/coccinelle/unibyte_string.cocci: Semantic patch to convert from
      make_unibyte_string to build_unibyte_string where appropriate.
      d7ea76b4
  24. 18 Jul, 2012 1 commit
  25. 11 Jul, 2012 1 commit
    • Dmitry Antipov's avatar
      Avoid calls to strlen in font processing functions. · 984e7f30
      Dmitry Antipov authored
      * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
      (font_open_by_name): Changed to use length argument.  Adjust
      users accordingly.
      * font.h (font_open_by_name, font_parse_xlfd): Adjust prototypes.
      * xfont.c (xfont_decode_coding_xlfd): Changed to return ptrdiff_t.
      (xfont_list_pattern, xfont_match): Use length returned by
      xfont_decode_coding_xlfd.
      * xfns.c (x_default_font_parameter): Omit useless xstrdup.
      984e7f30
  26. 10 Jul, 2012 3 commits
    • Paul Eggert's avatar
      e99a530f
    • Dmitry Antipov's avatar
      Use XCAR and XCDR instead of Fcar and Fcdr where possible. · 7d7bbefd
      Dmitry Antipov authored
      * admin/coccinelle/list_loop.cocci: Semantic patch to convert from Fcdr
      to XCDR and consistently use CONSP in the list iteration loops.
      * admin/coccinelle/vector_contents.cocci: Fix indentation.
      * src/callint.c, src/coding.c, src/doc.c, src/editfns.c, src/eval.c,
      * src/font.c, src/fontset.c, src/frame.c, src/gnutls.c, src/minibuf.c,
      * src/msdos.c, src/textprop.c, src/w32fns.c, src/w32menu.c, src/window.c,
      * src/xmenu.c: Changed to use XCAR and XCDR where argument type is known
      to be a Lisp_Cons.
      7d7bbefd
    • 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
  27. 09 Jul, 2012 1 commit
    • Dmitry Antipov's avatar
      Use make_formatted_string to avoid double length calculation. · a8290ec3
      Dmitry Antipov authored
      * lisp.h (make_formatted_string): New prototype.
      * alloc.c (make_formatted_string): New function.
      * buffer.c (Fgenerate_new_buffer_name): Use it.
      * dbus.c (syms_of_dbusbind): Likewise.
      * editfns.c (Fcurrent_time_zone): Likewise.
      * filelock.c (get_boot_time): Likewise.
      * frame.c (make_terminal_frame, set_term_frame_name)
      (x_report_frame_params): Likewise.
      * image.c (gs_load): Likewise.
      * minibuf.c (get_minibuffer): Likewise.
      * msdos.c (dos_set_window_size): Likewise.
      * process.c (make_process): Likewise.
      * xdisp.c (ensure_echo_area_buffers): Likewise.
      * xsettings.c (apply_xft_settings): Likewise.
      a8290ec3
  28. 07 Jul, 2012 2 commits
    • Andreas Schwab's avatar
    • Paul Eggert's avatar
      Improve static checking when configured --with-ns. · 6045c4fd
      Paul Eggert authored
      See Samuel Bronson's remarks in
      <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00146.html>.
      * configure.in (WARN_CFLAGS): Omit -Wunreachable-code, as it's
      a no-op with recent GCC and harmful in earlier ones.
      Omit -Wsync-nand, as it's irrelevant to Emacs and provokes a
      warning when compiling with ObjC.  Always omit
      -Wunsafe-loop-optimizations, as we don't mind when optimization is
      being done correctly.
      
      Fix some minor --with-ns problems found by static checking.
      * src/frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
      (x_set_font) [!HAVE_X_WINDOWS]:
      * src/image.c (xpm_load_image) [HAVE_NS]:
      (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
      (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
      Remove unused local.
      (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
      (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
      * src/image.c (x_create_bitmap_from_file) [HAVE_NS]:
      (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
      * src/nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
      * src/xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
      Fix pointer signedness problem.
      * src/xfaces.c (FRAME_X_FONT_TABLE):
      * src/xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
      6045c4fd
  29. 05 Jul, 2012 1 commit
    • Paul Eggert's avatar
      More xmalloc and related cleanup. · 38182d90
      Paul Eggert authored
      * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
      * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
      * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
      * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
      * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
      * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
      * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
      * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
      * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
      * xterm.c:
      Omit needless casts involving void * pointers and allocation.
      Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
      as the former is more robust if P's type is changed.
      Prefer xzalloc to xmalloc + memset 0.
      Simplify malloc-or-realloc to realloc.
      Don't worry about xmalloc returning a null pointer.
      Prefer xstrdup to xmalloc + strcpy.
      * editfns.c (Fmessage_box): Grow message_text by at least 80 when
      growing it.
      * keyboard.c (apply_modifiers_uncached): Prefer local array to
      alloca of a constant.
      38182d90
  30. 28 Jun, 2012 1 commit
    • Dmitry Antipov's avatar
      * window.h (struct window): Change type of 'hscroll', · 80b00b08
      Dmitry Antipov authored
      'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
      'last_modified' and 'last_overlay_modified' to EMACS_INT.
      Adjust users accordingly.
      * xdisp.c (try_cursor_movement): Replace type check with eassert.
      * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
      from EMACS_INT to ptrdiff_t.
      (make_window): Omit redundant initialization.
      80b00b08