Commit graph

34371 commits

Author SHA1 Message Date
Juanma Barranquero
1921c31bb9 src/makefile.w32-in: Update dependencies. 2013-03-29 04:03:19 +01:00
Stefan Monnier
717b8bcd96 * src/lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
(set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
forward references.
2013-03-28 12:21:38 -04:00
Dmitry Antipov
e74aeda863 * window.h (struct window): Replace hchild, vchild and buffer slots
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.
2013-03-28 18:04:49 +04:00
Eli Zaretskii
9d42d31f24 Fix inaccuracy in a comment. 2013-03-28 15:54:21 +02:00
Eli Zaretskii
21e930f8f7 Fix bug #14073 with referencing window total number of columns.
src/w32fns.c (Fx_show_tip): Fix compilation error under
 "--enable-check-lisp-object-type".
2013-03-28 15:45:27 +02:00
Dmitry Antipov
c7f53895b9 Fix 2013-03-28T02:41:05Z!dmantipov@yandex.ru which brokes Fbuffer_swap_text.
* buffer.c (Fbuffer_swap_text): Adjust window start markers.
Fix comment.
2013-03-28 13:25:25 +04:00
Eli Zaretskii
ef454cf704 Add debugging code to w32fns.c.
src/w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
 identify the reasons for assertion violations in bug#14062 and
 similar ones.
2013-03-28 11:18:16 +02:00
Eli Zaretskii
121ab1cdc4 Add DEF_IMGLIB_FN for g_error_free to image.c.
src/image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
 Reported by <rzl24ozi@gmail.com>.
2013-03-28 08:40:01 +02:00
Dmitry Antipov
5c89ca240d * xdisp.c (with_echo_area_buffer_unwind_data): Save window
start marker...
(unwind_with_echo_area_buffer): ...to restore it here.  This
is needed to ensure that...
(redisplay_window): ...both window markers are valid here,
which is verified by eassert.
* editfns.c (save_excursion_save): Do not assume that
selected_window always displays the buffer.
2013-03-28 06:41:05 +04:00
Stefan Monnier
f557c1b1a9 * lisp/case-table.el (case-table-get-table): New function.
* lisp/case-table.el: Use lexical-binding.
(case-table-get-table): New function.
(get-upcase-table): Use it.  Mark as obsolete.  Adjust callers.
* src/casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
the upcase table.
2013-03-27 10:33:03 -04:00
rzl24ozi
40693bbaa3 image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function. 2013-03-27 15:26:34 +02:00
Eli Zaretskii
c86f791f69 Fix MinGW64 compilation warnings in w32.c and w32proc.c.
src/w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
 since MinGW's w32api headers do.  This avoids compiler warnings.
 src/w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
 if already defined.
2013-03-27 14:01:31 +02:00
Paul Eggert
afeee3e578 * configure.ac (HAVE_XKBGETKEYBOARD): Remove; subsumed by HAVE_XKB.
All uses changed.
2013-03-26 22:13:31 -07:00
Eli Zaretskii
c6e72e1739 Fix MinGW64 compilation of w32.c.
src/w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
2013-03-26 23:22:39 +02:00
Jan Djärv
54e9501092 * gtkutil.c (style_changed_cb): Check if frame is live and an
X frame.

Fixes: debbugs:14038
2013-03-26 16:34:45 +01:00
Eli Zaretskii
8f5e14c849 More MinGW64 fixes.
src/w32.c Move inclusion of time.h before sys/time.h, so that MinGW64 could
 see its own definitions of 'struct timeval' and 'struct timezone'.
2013-03-26 16:04:07 +02:00
Eli Zaretskii
da9dcbb87f src/ChangeLog: Fix last log entry. 2013-03-26 15:47:58 +02:00
Eli Zaretskii
a18d7de614 Fix more MinGW64 incompatibilities.
Reported by ׃scar Fuentes in

  http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00733.html

 nt/inc/ms-w32.h (_WIN32_WINNT) [!_W64]: Don't define for MinGW64.
 nt/inc/sys/stat.h (chmod): Remove _CRTIMP from prototype.

 src/w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
 Define only for _WIN32_WINNT less than 0x0500.
2013-03-26 15:45:01 +02:00
Eli Zaretskii
b88b62dec9 Fix more incompatibilities between MinGW.org and MinGW64 headers
Reported by ׃scar Fuentes in
  http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00699.html
and in
  http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00707.html.

 nt/inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS) [_W64]: Define to 1.
 For MinGW64, include sys/types.h and time.h.
 nt/inc/sys/time.h (struct timeval) [!_W64]: Guard definition with _W64.
 (struct timezone) [!_TIMEZONE_DEFINED]: Guard definition with
 _TIMEZONE_DEFINED.
 nt/addpm.c (_WIN32_IE) [_W64]: For MinGW64, don't define to 0x400.
 nt/inc/sys/stat.h: Remove _CRTIMP from prototypes of fstat, stat,
 lstat, and fstatat.

 lib-src/ntlib.c (struct timespec) [!_TIMEZONE_DEFINED]: Define the
 struct only if _TIMEZONE_DEFINED is not defined.

 src/w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
 src/w32.c (REPARSE_DATA_BUFFER): Guard with
 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
2013-03-26 10:21:27 +02:00
Jan Djärv
c074e458df Changelog for previous commit. 2013-03-25 18:59:59 +01:00
Jan Djärv
a4cedbf774 * configure.ac (HAVE_XKB): Define if Xkb is present.
* src/xterm.c: Include X11/XKBlib.h
(XTring_bell): Use XkbBell if HAVE_XKB.

Fixes: debbugs:14041
2013-03-25 18:58:35 +01:00
Andreas Schwab
908589fd28 Reorder conditions that are written backwards
* alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
written backwards.
* blockinput.h (input_blocked_p): Likewise.
* bytecode.c (exec_byte_code): Likewise.
* callproc.c (call_process_kill, call_process_cleanup)
(Fcall_process): Likewise.
* ccl.c (ccl_driver, resolve_symbol_ccl_program)
(Fccl_execute_on_string): Likewise.
* character.c (string_escape_byte8): Likewise.
* charset.c (read_hex): Likewise.
* cm.c (calccost): Likewise.
* data.c (cons_to_unsigned): Likewise.
* dired.c (directory_files_internal, file_name_completion):
Likewise.
* dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
(sit_for): Likewise.
* doc.c (Fsubstitute_command_keys): Likewise.
* doprnt.c (doprnt): Likewise.
* editfns.c (hi_time, decode_time_components, Fformat): Likewise.
* emacsgtkfixed.c: Likewise.
* fileio.c (file_offset, Fwrite_region): Likewise.
* floatfns.c (Fexpt, fmod_float): Likewise.
* fns.c (larger_vector, make_hash_table, Fmake_hash_table):
Likewise.
* font.c (font_intern_prop): Likewise.
* frame.c (x_set_alpha): Likewise.
* gtkutil.c (get_utf8_string): Likewise.
* indent.c (check_display_width): Likewise.
* intervals.c (create_root_interval, rotate_right, rotate_left)
(split_interval_right, split_interval_left)
(adjust_intervals_for_insertion, delete_node)
(interval_deletion_adjustment, adjust_intervals_for_deletion)
(merge_interval_right, merge_interval_left, copy_intervals)
(set_intervals_multibyte_1): Likewise.
* keyboard.c (gobble_input, append_tool_bar_item): Likewise.
* keymap.c (Fkey_description): Likewise.
* lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
* lread.c (openp, read_integer, read1, string_to_number):
Likewise.
* menu.c (ensure_menu_items): Likewise.
* minibuf.c (read_minibuf_noninteractive): Likewise.
* print.c (printchar, strout): Likewise.
* process.c (create_process, Faccept_process_output)
(wait_reading_process_output, read_process_output, send_process)
(wait_reading_process_output): Likewise.
* profiler.c (make_log, handle_profiler_signal): Likewise.
* regex.c (re_exec): Likewise.
* regex.h: Likewise.
* search.c (looking_at_1, Freplace_match): Likewise.
* sysdep.c (get_child_status, procfs_ttyname)
(procfs_get_total_memory): Likewise.
* systime.h (EMACS_TIME_VALID_P): Likewise.
* term.c (dissociate_if_controlling_tty): Likewise.
* window.c (get_phys_cursor_glyph): Likewise.
* xdisp.c (init_iterator, redisplay_internal, redisplay_window)
(try_window_reusing_current_matrix, try_window_id, pint2hrstr):
Likewise.
* xfns.c (Fx_window_property): Likewise.
* xmenu.c (set_frame_menubar): Likewise.
* xselect.c (x_get_window_property, x_handle_dnd_message):
Likewise.
* xsmfns.c (smc_save_yourself_CB): Likewise.
* xterm.c (x_scroll_bar_set_handle): Likewise.
2013-03-24 13:59:45 +01:00
Dmitry Antipov
2bf7d27acd * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
to be optional or nil.  Adjust comment and convert it to docstring.
* xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
* frame.c (display_x_get_resource, Fx_get_resource): Break long line.
2013-03-24 09:29:35 +04:00
Paul Eggert
a9ebfa0b3e Static checking by GCC 4.8-20130319.
* image.c (gif_load): Assume pass < 3 to pacify GCC.
* process.c (Fset_process_datagram_address)
(Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
* xdisp.c (get_char_face_and_encoding):
(get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
(get_glyph_face_and_encoding): Prepare face before possibly using it.
(get_per_char_metric): Don't use CHAR2B if it might not be initialized.
2013-03-23 19:40:51 -07:00
Ken Brown
789b5e9a7f * src/w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro. 2013-03-23 20:48:49 -04:00
Ken Brown
4f3576ee21 * src/w32term.c (w32_initialize): Silence compiler warning. 2013-03-23 20:16:11 -04:00
Eli Zaretskii
cdc0d0bdbd Fix fullscreen resizing of multiple frames on MS-Windows.
src/w32term.h (struct w32_output): New members normal_width,
 normal_height, normal_top, normal_left, and prev_fsmode.
 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
 members of a frame.
 src/w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
 variables, to save and restore frame dimensions.  Use
 FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
 after returning from a 'fullscreen' configuration.  use
 SendMessage instead of PostMessage to send the SC_RESTORE message,
 to avoid races between the main thread and the input thread.
2013-03-23 21:40:43 +02:00
Eli Zaretskii
b5b7745f1f Fix bug #14032 with restoring frame dimensions on MS-Windows.
src/w32term.c (w32fullscreen_hook): Record last value of the frame's
 'fullscreen' parameter.  Always record previous width and height
 of the frame, except when switching out of maximized modes, so
 that they could be restored correctly, instead of resetting to the
 default frame dimensions.  Send SC_RESTORE command to the frame,
 unless we are going to send SC_MAXIMIZE, to restore the frame
 resize hints in the mouse pointer shown by the window manager.
 src/frame.c (get_frame_param): Now extern for WINDOWSNT as well.
 src/lisp.h (get_frame_param): Adjust conditions for prototype
 declaration.
2013-03-23 11:01:14 +02:00
Ken Brown
a3454eedcd * src/unexcw.c: Update for x86_64-cygwin.
Drop unneeded inclusion of w32common.h.
(report_sheap_usage): Declare.
(read_exe_header): Add magic numbers for x86_64.
(fixup_executable): Fix printf format specifier for unsigned long
argument.
2013-03-22 12:52:31 -04:00
Dmitry Antipov
5a49b79cf8 * frame.h (struct frame): Put menu_bar_window under #ifdef
because this member is not needed when X toolkit is in use.
(fset_menu_bar_window):
* dispnew.c (clear_current_matrices, clear_desired_matrices)
(free_glyphs, update_frame):
* xdisp.c (expose_frame): Likewise.
(display_menu_bar): Likewise.  Remove redundant eassert.
* window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
toolkit is in use.
2013-03-22 16:41:34 +04:00
Paul Eggert
7b1123d824 Use functions and constants to manipulate Lisp_Save_Value objects.
This replaces code that used macros and strings and token-pasting.
The change makes the C source a bit easier to follow,
and shrinks the Emacs executable a bit.
* alloc.c: Verify some properties of Lisp_Save_Value's representation.
(make_save_value): Change 1st arg from string to enum.  All callers
changed.
(INTX): Remove.
(mark_object): Use if, not #if, for GC_MARK_STACK.
* lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
(XSAVE_OBJECT): Now functions, not macros.
(STRING_BYTES_BOUND): Now just a macro, not a constant too;
the constant was never used.
(SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
(SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
(SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
(SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
New constants.
(struct Lisp_Save_Value): Replace members area, type0, type1, type2,
type3 with a single member save_type.  All uses changed.
(save_type, set_save_pointer, set_save_integer): New functions.
* print.c (PRINTX): Remove.
2013-03-21 13:56:22 -07:00
Paul Eggert
d6723bf7e5 * alloc.c: Remove redundant static declarations. 2013-03-21 11:28:50 -07:00
Dmitry Antipov
5f24fa51a0 * window.h (struct window): Convert left_col, top_line, total_lines
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.
2013-03-20 15:29:37 +04:00
Dmitry Antipov
96061a2180 Fix ChangeLog entry. 2013-03-20 13:59:07 +04:00
Dmitry Antipov
42143acda9 * frame.h (struct frame): Drop resx and resy because the same data is
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.
2013-03-20 13:56:19 +04:00
Kenichi Handa
47077837af merge trunk 2013-03-20 17:08:34 +09:00
Kenichi Handa
c0a17406ac coding.c (syms_of_coding): Initialize disable_ascii_optimization 1. 2013-03-20 16:58:20 +09:00
Dmitry Antipov
cf4bb06de4 * print.c (syms_of_print): Initialize debugging output not here...
(init_print_once): ...but in a new function here.
* lisp.h (init_print_once): Add prototype.
* emacs.c (main): Add call to init_print_once.  Adjust comments.
2013-03-19 18:09:05 +04:00
Dmitry Antipov
095d384da6 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
Signal error if window is not internal.  Adjust docstring.
(delete_all_child_windows): Use combination_limit to save the buffer.
(Fset_window_configuration): Adjust accordingly.
2013-03-19 13:21:31 +04:00
Paul Eggert
bad98418bf Spelling fixes. 2013-03-18 21:41:53 -07:00
Dmitry Antipov
748fa866ad * window.c (window_resize_check, window_resize_apply)
(window_from_coordinates, recombine_windows, set_window_buffer)
(make_parent_window, Fwindow_resize_apply, resize_frame_windows)
(Fsplit_window_internal, Fdelete_window_internal)
(freeze_window_starts): Use bool for booleans.
* window.h (window_frame_coordinates, resize_frame_windows)
(freeze_window_starts, set_window_buffer): Adjust prototypes.
2013-03-18 17:21:12 +04:00
Stefan Monnier
81519fd2fb * src/dispnew.c (bitch_at_user): Use `user-error'. 2013-03-17 18:49:50 -04:00
Ken Brown
6db423a92a Fix return type of image_background (Bug#13981)
* src/dispextern.h (RGB_PIXEL_COLOR): Move here from image.c.  Use it
as return type of image_background.  (Bug#13981)
* src/image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
2013-03-17 10:34:18 -04:00
Jan Djärv
6615748ac6 * nsterm.m (ns_select): Don't return with result uninitialized. 2013-03-16 15:22:37 +01:00
Jan Djärv
960ce48010 * nsterm.m (updateFrameSize:): Change resize increments if needed. 2013-03-16 15:15:42 +01:00
Jan Djärv
8f2906f551 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel): New
functions.
(Fns_read_file_name): ret is BOOL.  If ! dir_only_p, don't choose
directories.  If filename is nil, get directory name.
Use getFilename and getDirectory.
(getFilename, getDirectory): New methods for EmacsSavePanel and
EmacsOpenPanel.
(ok:): In EmacsOpenPanel, if we can't choose directories, just return.

* nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
and getDirectory.

Fixes: debbugs:13932
2013-03-16 14:52:12 +01:00
Paul Eggert
cded56c19b * coding.c (decode_coding_gap): Fix typo caught by static checking. 2013-03-15 13:03:31 -07:00
Kenichi Handa
646859d33a merge trunk 2013-03-16 01:04:47 +09:00
Kenichi Handa
8a44e6d176 Optimize ASCII file reading with EOL format detection and decoding. 2013-03-16 01:03:54 +09:00
Eli Zaretskii
5f795e34b3 Match the effect of FULLSCREEN_BOTH and FULLSCREEN_MAXIMIZED to docs on Windows.
src/w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
 FULLSCREEN_MAXIMIZED.

Fixes: debbugs:13935
2013-03-15 12:07:29 +02:00