1. 17 Jun, 2013 1 commit
  2. 14 May, 2013 1 commit
  3. 04 May, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix bug #14062 with assertion violations on MS-Windows. · 5bebd186
      Eli Zaretskii authored
       src/dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
       w->contents is a buffer before computing everything else.  Use
       parentheses to disambiguate last part of the condition.
       src/w32fns.c (w32_wnd_proc): Remove temporary code used to trap
       assertion violations.
      5bebd186
  4. 15 Apr, 2013 1 commit
    • Eli Zaretskii's avatar
      More debugging code to investigate bug #14062. · fd16b54c
      Eli Zaretskii authored
       src/w32fns.c (w32_wnd_proc): Add more assertions to investigate
       bug#14062.
       src/frame.h (WINDOW_FRAME): Protect macro and its argument with
       parentheses.
       src/dispextern.h (CURRENT_MODE_LINE_HEIGHT)
       (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
       (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
       parentheses where appropriate.
      fd16b54c
  5. 14 Apr, 2013 1 commit
    • Erik Charlebois's avatar
      * src/w32fns.c (w32_fullscreen_rect): New function to compute the · 1f635a07
      Erik Charlebois authored
      window rectangle for the given fullscreen mode.
      (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING
      no longer tunes the window size.  This keeps the window's edges
      flush with the screen and allows the taskbar to hide itself in
      fullboth.
      * src/w32term.c (w32fullscreen_hook): fullboth now shows without
      window decorations and uses the entire screen.
      1f635a07
  6. 07 Apr, 2013 1 commit
    • Dmitry Antipov's avatar
      Get rid of some platform-specific functions examining window · 7452b7bd
      Dmitry Antipov authored
      system and its capabilities.  This is a partial rework of the
      2013-04-05 change.
      * lisp.h (have_menus_p): Remove prototype.  This function is
      replaced with platform-independent window_system_available.
      (check_window_system): Move to...
      * frame.h (decode_window_system_frame, window_system_available):
      ...here, add new prototypes.
      * frame.c (window_system_available, decode_window_system_frame):
      New functions.
      (check_window_system): Platform-independent now.
      * xterm.h (x_in_use): Remove declaration.
      (check_x_frame):
      * w32term.h (check_x_frame):
      * nsterm.h (check_x_frame): Remove prototypes.  This function
      is replaced with platform-independent decode_window_system_frame.
      * msdos.c (have_menus_p): Remove.
      * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
      Remove platform-specific functions.  Use check_window_system,
      decode_window_system_frame and check_ns_display_info where
      appropriate.  Minor style and comment tweaks.
      * w32fns.c (w32_in_use, check_window_system, have_menus_p)
      (check_x_frame): Likewise.
      * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
      Likewise.
      * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
      * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
      * xmenu.c, xselect.c: All related users changed.
      7452b7bd
  7. 05 Apr, 2013 1 commit
    • Dmitry Antipov's avatar
      Consistently use platform-specific function to detect window system. · 73931ad1
      Dmitry Antipov authored
      * lisp.h (check_window_system): New prototype.  This function is
      going to replace check_x, check_w32 and check_ns.
      (have_menus_p): Mention msdos.c in comment.
      * fontset.c (check_window_system_func): Remove.  Adjust all users.
      * fontset.h (check_window_system_func): Remove prototype.
      * nsterm.h (check_ns):
      * xterm.h (check_x):
      * w32term.h (check_w32): Likewise.
      * menu.c (Fx_popup_menu): Use check_window_system.
      * msdos.c (check_window_system): Define for MS-DOS.
      * nsfns.m (check_window_system): Define for NS.  Adjust all users.
      * w32fns.c (check_window_system): Likewise for MS-Windows.
      * xfns.c (check_window_system): Likewise for X.
      * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
      * xfaces.c, xmenu.c: Use check_window_system where appropriate.
      73931ad1
  8. 28 Mar, 2013 3 commits
    • Dmitry Antipov's avatar
      * window.h (struct window): Replace hchild, vchild and buffer slots · e74aeda8
      Dmitry Antipov authored
      with the only contents slot.  This is possible because each valid
      window may have either the child window (in vertical or horizontal
      combination) or buffer to display (for the leaf window).  Using that,
      a lof of operations to traverse and/or change window hierarchies may
      be simplified.  New member horizontal is used to distinguish between
      horizontal and vertical combinations of internal windows.
      (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
      (WINDOW_VERTICAL_COMBINATION_P): New macros.
      (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
      * window.c (wset_hchild, wset_vchild): Remove.  Adjust all users.
      Use contents slot, not buffer, where appropriate.
      (wset_combination): New function.
      (wset_buffer): Add eassert.
      (Fframe_first_window): Simplify the loop reaching first window.
      (Fwindow_buffer): Use WINDOW_LEAF_P.
      (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
      (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
      (unshow_buffer): Convert initial debugging check to eassert.
      (replace_window, recombine_windows, Fdelete_other_windows_internal)
      (make_parent_window, window_resize_check, window_resize_apply)
      (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
      (Fset_window_configuration, delete_all_child_windows, save_window_save):
      Adjust to match struct window changes.
      (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
      (mark_window_cursors_off, count_windows, get_leaf_windows)
      (foreach_window_1): Simplify the loop.
      * alloc.c (mark_object): Do not check for the leaf window because
      internal windows has no glyph matrices anyway.
      * dispnew.c (clear_window_matrices, showing_window_margins_p)
      (allocate_matrices_for_window_redisplay, fake_current_matrices)
      (allocate_matrices_for_frame_redisplay, free_window_matrices)
      (build_frame_matrix_from_window_tree, mirror_make_current)
      (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
      (update_window_tree, set_window_update_flags): Simplify the loop.
      (sync_window_with_frame_matrix_rows): Enforce live window.
      Use contents slot, not buffer, where appropriate.
      * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
      and WINDOW_HORIZONTAL_COMBINATION_P.
      (make_frame_visible_1): Simplify the loop.
      Use contents slot, not buffer, where appropriate.
      * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
      (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
      (expose_window_tree): Likewise.
      Use contents slot, not buffer, where appropriate.
      * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
      to avoid deleted windows.  Use contents slot instead of buffer.
      * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
      * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
      * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
      * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
      e74aeda8
    • Eli Zaretskii's avatar
      Fix bug #14073 with referencing window total number of columns. · 21e930f8
      Eli Zaretskii authored
       src/w32fns.c (Fx_show_tip): Fix compilation error under
       "--enable-check-lisp-object-type".
      21e930f8
    • Eli Zaretskii's avatar
      Add debugging code to w32fns.c. · ef454cf7
      Eli Zaretskii authored
       src/w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
       identify the reasons for assertion violations in bug#14062 and
       similar ones.
      ef454cf7
  9. 24 Mar, 2013 1 commit
  10. 20 Mar, 2013 2 commits
    • Dmitry Antipov's avatar
      * window.h (struct window): Convert left_col, top_line, total_lines · 5f24fa51
      Dmitry Antipov authored
      and total_cols from Lisp_Objects to integers.  Adjust comments.
      (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
      Remove.
      (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
      (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
      * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
      Adjust users where appropriate.
      5f24fa51
    • Dmitry Antipov's avatar
      * frame.h (struct frame): Drop resx and resy because the same data is · 42143acd
      Dmitry Antipov authored
      available from window system-specific output context.  Adjust users.
      (default_pixesls_per_inch_x, default_pixesls_per_inch_y): New
      functions to provide defaults when no window system available.
      (FRAME_RES_X, FRAME_RES_Y): New macros.
      (NUMVAL): Moved from xdisp.c.
      * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
      (Ffont_face_attributes, Fopen_font):
      * image.c (gs_load):
      * w32font.c (fill_in_logfont):
      * xdisp.c (calc_pixel_width_or_height):
      * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
      * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
      42143acd
  11. 10 Mar, 2013 2 commits
    • Daniel Colascione's avatar
      2013-03-10 Daniel Colascione <dancol@dancol.org> · 819e2da9
      Daniel Colascione authored
      	* w32term.h (GUISTR, GUI_ENCODE_FILE, GUI_ENCODE_SYSTEM, GUI_FN)
      	(GUI_SDATA, guichar_t): Macros to abstract out differences between
      	NTGUI_UNICODE and !NTGUI_UNICODE builds, some moved out of
      	w32fns.c.
      
      	* w32term.c (construct_drag_n_drop): Use the above macros to make
      	drag-and-drop work for non-ASCII filenames in cygw32 builds.
      
      	* w32fns.c (x_set_name, x_set_title): Use the above macros to
      	properly display non-ASCII frame titles in cygw32 builds.
      
      	* w32fns.c (Fw32_shell_execute): Use the above macros to properly
      	call ShellExecute in cygw32 builds.
      
      	* w32fn.c (Fx_file_dialog): Use the above macros to simplify the
      	common file dialog code.
      
      	* w32fns.c (Ffile_system_info): Remove from cygw32 builds, which
      	can just use du like other systems.
      
      	* coding.c (from_unicode_buffer): Declare.
      	* coding.c (from_unicode_buffer): Implement.
      819e2da9
    • Eli Zaretskii's avatar
      Use macros from dispextern.h where appropriate. · 138c0ae8
      Eli Zaretskii authored
       src/xdisp.c (display_tool_bar_line, redisplay_tool_bar)
       (redisplay_internal, set_cursor_from_row, try_window)
       (try_window_id, dump_glyph_row, extend_face_to_end_of_line)
       (display_line, notice_overwritten_cursor)
       (mouse_face_from_buffer_pos, note_mouse_highlight): Use
       MATRIX_ROW_DISPLAYS_TEXT_P.
       (note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
       (mouse_face_from_string_pos, fast_find_string_pos): Use
       MATRIX_ROW_VPOS.
       src/xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
       src/w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
       src/xdisp.c (try_cursor_movement): Use MATRIX_ROW and
       MATRIX_MODE_LINE_ROW.
       src/dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
      138c0ae8
  12. 07 Mar, 2013 1 commit
    • Dmitry Antipov's avatar
      * lisp.h (list2i, list3i): New functions. · 3de717bd
      Dmitry Antipov authored
      (list4i): Move from window.c and make LISP_INLINE.
      * editfns.c (make_lisp_time):
      * fns.c (Flocale_info):
      * keyboard.c (parse_modifiers):
      * xterm.c (x_ewmh_activate_frame): Use list2i.
      * instel.c (signal_after_change):
      * nsfns.m (Fx_server_version, Fxw_color_values):
      * w32fns.c (Fxw_color_values, Fx_server_version):
      * xfns.c (Fxw_color_values, Fx_server_version): Use list3i.
      * fileio.c (Fvisited_file_modtime):
      * nsfns.m (Fns_display_usable_bounds):
      * w32.c (ltime): Use list4i.
      3de717bd
  13. 07 Feb, 2013 1 commit
  14. 02 Feb, 2013 1 commit
    • Eli Zaretskii's avatar
      Avoid encoding file names run through dostounix_filename on MS-Windows. · e7ac588e
      Eli Zaretskii authored
       src/w32.c (normalize_filename): Accept an additional argument
       MULTIBYTE; if non-zero, traverse the file name by bytes and don't
       downcase it even if w32-downcase-file-names is non-nil.
       (dostounix_filename): Accept an additional argument MULTIBYTE and
       pass it to normalize_filename.
       (emacs_root_dir): Adjust.
       src/msdos.h (dostounix_filename): Adjust prototype.
       src/w32.h (dostounix_filename): Adjust prototype.
       src/msdos.c (dostounix_filename): Accept an additional argument and
       ignore it.
       (init_environment): Adjust callers of dostounix_filename.
       src/fileio.c (Ffile_name_directory, file_name_as_directory)
       (directory_file_name, Fexpand_file_name)
       (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
       dostounix_filename.
       [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
       non-nil.
       (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
       variables, as egetenv is case-insensitive for DOS_NT.
       src/dired.c (file_name_completion): Don't call Fdirectory_file_name
       with an encoded file name.
       src/w32proc.c (Fw32_short_file_name, Fw32_long_file_name): Adjust
       calls to dostounix_filename.
       src/w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
       src/unexw32.c (unexec): Adjust call to dostounix_filename.
       src/termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
       src/emacs.c (decode_env_path) [DOS_NT]: Adjust call to
       dostounix_filename.
       src/callproc.c (Fcall_process) [MSDOS]: Adjust call to
       dostounix_filename.
      e7ac588e
  15. 24 Jan, 2013 1 commit
    • Dmitry Antipov's avatar
      Drop async_visible and async_iconified fields of struct frame. · edfa7fa0
      Dmitry Antipov authored
      This is possible because async input is gone; for details, see
      http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
      * frame.h (struct frame): Remove async_visible and async_iconified
      members, convert garbaged to unsigned bitfield.  Adjust comments.
      (FRAME_SAMPLE_VISIBILITY): Remove.  Adjust all users.
      (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
      * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
      Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
      FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
      * w32term.c: Ditto.
      (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
      properly.  Likewise for obscured.
      * xterm.c: Ditto.
      (handle_one_xevent): Save visible state go generate ICONIFY_EVENT
      properly.
      * nsterm.m: Ditto.
      (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
      edfa7fa0
  16. 01 Jan, 2013 1 commit
  17. 10 Dec, 2012 2 commits
  18. 08 Dec, 2012 2 commits
  19. 06 Dec, 2012 1 commit
    • Dmitry Antipov's avatar
      * frame.h (x_char_width, x_char_height): Remove prototypes. · 1700db3c
      Dmitry Antipov authored
      * w32term.h (x_char_width, x_char_height): Likewise.
      * xfns.c (x_char_width, x_char_height): Remove.
      * w32fns.c (x_char_width, x_char_height): Likewise.
      * nsfns.c (x_char_width, x_char_height): Likewise.
      * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
      all window frames.
      (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
      * keyboard.c (command_loop_1): Remove prototype.
      (command_loop_2, top_level_1): Add static to match prototype.
      1700db3c
  20. 30 Nov, 2012 1 commit
    • Fabrice Popineau's avatar
      Fix compilation problems with 64-bit MSVC compiler. · c7b36b95
      Fabrice Popineau authored
       src/w32fns.c: Remove prototype of atof.
       (syspage_mask): Declared DWORD_PTR, for compatibility with 64-bit
       builds.
       (file_dialog_callback): Declared UINT_PTR.
       src/w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
       with 64-bit builds.
       src/w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
       (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
       defined.
      c7b36b95
  21. 20 Nov, 2012 1 commit
  22. 19 Nov, 2012 1 commit
  23. 12 Nov, 2012 1 commit
    • Dmitry Antipov's avatar
      Simplify by using FOR_EACH_FRAME here and there. · 5b04e9f9
      Dmitry Antipov authored
      * frame.c (next_frame, prev_frame, other_visible_frames)
      (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
      * w32term.c (x_window_to_scroll_bar): Likewise.
      * window.c (window_list): Likewise.
      * xdisp.c (x_consider_frame_title): Likewise.
      * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
      * xfns.c (x_window_to_frame, x_any_window_to_frame)
      (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
      * xmenu.c (menubar_id_to_frame): Likewise.
      * xselect.c (frame_for_x_selection): Likewise.
      * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
      (x_window_to_menu_bar): Likewise.
      * w32fns.c (x_window_to_frame): Likewise.  Adjust comment.
      5b04e9f9
  24. 08 Nov, 2012 1 commit
    • Eli Zaretskii's avatar
      More fixes for bug #12806. · 88002743
      Eli Zaretskii authored
       src/w32fns.c (modifier_set): Fix handling of Scroll Lock when the
       value of w32-scroll-lock-modifier is neither nil nor one of the
       known key modifiers.
      88002743
  25. 07 Nov, 2012 4 commits
  26. 06 Nov, 2012 1 commit
    • Dmitry Antipov's avatar
      Widely used frame validity and checking functions. · d9f07150
      Dmitry Antipov authored
      * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
      * frame.c (decode_live_frame, decode_any_frame): New functions.
      (delete_frame, Fredirect_frame_focus, Fframe_parameters)
      (Fframe_parameter, Fframe_char_height, Fframe_char_width)
      (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
      (Fframe_pointer_visible_p): Use decode_any_frame.
      (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
      (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
      (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
      (Fframe_focus): Likewise.  Allow zero number of arguments.
      Adjust docstring.
      (frame_buffer_list, frame_buffer_predicate): Remove.
      * lisp.h (frame_buffer_predicate): Remove prototype.
      * buffer.c (Fother_buffer): Use decode_any_frame.
      * xdisp.c (Ftool_bar_lines_needed): Likewise.
      * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
      * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
      (Fclose_font, Ffont_info): Use decode_live_frame.
      * fontset.c (check_fontset_name): Likewise.
      * terminal.c (Fframe_terminal): Likewise.
      * w32fns.c (check_x_frame): Likewise.
      * window.c (Fminibuffer_window, Fwindow_at)
      (Fcurrent_window_configuration): Likewise.
      (Frun_window_configuration_change_hook, Fwindow_resize_apply):
      Likewise.  Allow zero number of arguments.  Adjust docstring.
      * dispnew.c (Fredraw_frame): Likewise.
      * xfaces.c (frame_or_selected_frame): Remove.
      (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
      (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
      (Fframe_face_alist): Use decode_live_frame.
      * xfns.c (check_x_frame): Likewise.
      d9f07150
  27. 05 Nov, 2012 1 commit
    • Eli Zaretskii's avatar
      Fix bug #12805 with compilation error in the cygw32 build. · c8e3a9c3
      Eli Zaretskii authored
       src/makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
       src/w32fns.c Include unistd.h, to avoid compiler warnings on Cygwin.
       (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
       file descriptor 2 for standard error.
      c8e3a9c3
  28. 03 Nov, 2012 1 commit
  29. 02 Nov, 2012 1 commit
    • Eli Zaretskii's avatar
      Implement backtrace output for fatal errors on MS-Windows. · 1005b4b9
      Eli Zaretskii authored
       src/w32fns.c (CaptureStackBackTrace_proc): New typedef.
       (BACKTRACE_LIMIT_MAX): New macro.
       (w32_backtrace): New function.
       (emacs_abort): Use w32_backtrace when the user chooses not to
       attach a debugger.  Update the text of the abort dialog.
      1005b4b9
  30. 26 Oct, 2012 1 commit
  31. 21 Oct, 2012 1 commit