- 02 Jun, 2013 1 commit
-
-
Jan Djärv authored
* nextstep/templates/Info-gnustep.plist.in: Add NSDocumentClass EmacsDocument. * src/nsfns.m (x_set_foreground_color, x_set_background_color): Use EmacsCGFloat. (ns_implicitly_set_icon_type, Fx_create_frame): Make static, remove unused variables. (Fns_read_file_name): Keep track if panel is for save. Use ns_filename_from_panel/ns_directory_from_panel. (Fns_list_services): delegate only used for COCOA. (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUStep. Just return the input if GNUStep. (x_screen_planes): Remove. (Fxw_color_values): Use EmacsCGFloat (Fns_display_monitor_attributes_list): Only get screen number for Cocoa. (getDirectory, getFilename): Removed from EmacsOpenPanel and EmacsSavePanel. (EmacsOpenPanel:ok:): Use ns_filename_from_panel and ns_directory_from_panel. * src/nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor) (ns_charset_covers, ns_get_covering_families, nsfont_open): Use F suffix on floats. (ns_char_width): Returns CGFloat. (ns_ascii_average_width): w is CGFloat instead of float. (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to DPSxshow. (ns_glyph_metrics): CGFloat instead of float. * src/nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat. * src/nsmenu.m (ns_update_menubar): Make static. (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA (fillWithWidgetValue:): Add cast to SEL for setAction. (addSubmenuWithTitle:forFrame:): Add cast to SEL for action. (update_frame_tool_bar): Update code for GNUStep. (clearAll): New method. (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP. Move identifierToItem setObject and activeIdentifiers addObject before call to insertItemWithItemIdentifier. (validateVisibleItems): Fix indentation. (toolbarAllowedItemIdentifiers:): Return activeIdentifiers. (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and UtilityWindow to aStyle, remove call to setStyleMask. * src/nsselect.m (ns_get_local_selection): Remove unused variable type. * src/nsterm.h (EmacsCGFloat): Typedef for OSX and GNUStep when the size of CGFloat differs. (EmacsApp): New variable nextappdefined. Declare sendFromMainThread when NS_IMPL_GNUSTEP. (EmacsDocument): Declare when NS_IMPL_GNUSTEP. (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove. (EmacsToolbar): Add clearAll. Add tag argument to addDisplayItemWithImage. (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory. * src/nsterm.m: Include src/process.h if NS_IMPL_GNUSTEP. (ns_menu_bar_is_hidden, menu_will_open_state): Define only if NS_IMPL_COCOA. (x_set_cursor_type): Remove declaration. (ns_update_begin): Only use r and bp if NS_IMPL_COCOA. (ns_update_end, ns_focus, ns_unfocus): Remove GNUStep specific code. (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP. (ns_get_color): Use F suffix on float. (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat. (ns_get_rgb_color): Remove. (x_set_frame_alpha): Move view inside NS_IMPL_COCOA. (note_mouse_movement): x and y are CGFloat. (ns_draw_fringe_bitmap): Remove unused rowY. Change #if to COCOA && >= 10_6. (ns_draw_window_cursor): Remove unused overspill. (ns_draw_underwave): width and x are EamcsCGFloat. (ns_draw_box): thickness is CGFloat. (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6. (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread if not in main thread. (ns_get_pending_menu_title, ns_check_menu_open) (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5. (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD. (sendFromMainThread:): New method. (changeFont:): size is CGFloat. (keyDown:): Check for Delete when NS_IMPL_GNUSTEP. Disable warning about permanent text. (characterIndexForPoint:): Adjust return type depending on GNUStep version. (mouseDown:): delta is CGFloat. (updateFrameSize): Remove unised variable f. (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA. Cast float to EmacsCGFloat. (windowWillUseStandardFrame:defaultFrame:): Set maximized_height also to -1 when restoring. (windowDidExitFullScreen:): Put call to updateCollectionBehaviour inside NS_IMPL_COCOA. (toggleFullScreen:): Put call to toggleFullScreen inside NS_IMPL_COCOA. Cast float to EmacsCGFloat. (setPosition:portion:whole:): por is CGFloat. (getMouseMotionPart:window:x:y:): Add F suffix to float. (mouseDown:): Use CGFloat. (mouseDragged:): Remove unised variable edge. (EmacsDocument): Implement for NS_IMPL_GNUSTEP. * src/process.c (catch_child_signal): New function. (init_process_emacs): Call it. * src/process.h (catch_child_signal): Declare.
-
- 25 May, 2013 1 commit
-
-
Jan Djärv authored
* frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New Lisp_Object:s. (free_monitors, make_monitor_attribute_list): New functions. (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource. * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. (struct MonitorInfo): New struct. (free_monitors, make_monitor_attribute_list): Declare. * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. (struct MonitorInfo, free_monitors): Remove. (ns_screen_name): Make static. (ns_make_monitor_attribute_list): Call make_monitor_attribute_list. (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource. * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. (struct MonitorInfo, free_monitors): Remove. (x_make_monitor_attribute_list): Call make_monitor_attribute_list. (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list. (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource.
-
- 20 May, 2013 1 commit
-
-
YAMAMOTO Mitsuharu authored
-
- 09 May, 2013 1 commit
-
-
Jan Djärv authored
* lisp/frame.el (display-monitor-attributes-list): Add NS case. (ns-display-monitor-attributes-list): Declare. * src/nsfns.m: Include IOGraphicsLib.h if Cocoa. (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. (MonitorInfo): New struct. (free_monitors, ns_screen_name, ns_make_monitor_attribute_list) (Fns_display_monitor_attributes_list): New functions. (display-usable-bounds): Remove. (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and Qsource.
-
- 05 May, 2013 1 commit
-
-
Paul Eggert authored
-
- 01 May, 2013 1 commit
-
-
David Reitter authored
-
- 28 Apr, 2013 1 commit
-
-
Jan Djärv authored
(EmacsOpenPanel:performKeyEquivalent:) (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle arrows/function/control and copy/paste keys. Fixes: debbugs:14296
-
- 07 Apr, 2013 1 commit
-
-
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.
-
- 05 Apr, 2013 1 commit
-
-
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.
-
- 28 Mar, 2013 1 commit
-
-
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.
-
- 20 Mar, 2013 1 commit
-
-
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.
-
- 16 Mar, 2013 1 commit
-
-
Jan Djärv authored
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
-
- 07 Mar, 2013 1 commit
-
-
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.
-
- 09 Jan, 2013 1 commit
-
-
Paul Eggert authored
* lisp/net/tramp-adb.el (tramp-adb-get-toolbox): Fix misspelling of 'unknown'.
-
- 01 Jan, 2013 1 commit
-
-
Paul Eggert authored
-
- 23 Dec, 2012 1 commit
-
-
Jan Djärv authored
been executed. (ns_run_ascript): Chech as_script for nil, set to nil after executing script. Fixes: debbugs:12969
-
- 06 Dec, 2012 1 commit
-
-
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.
-
- 03 Nov, 2012 1 commit
-
-
Dmitry Antipov authored
which is meaningless for a long time. Adjust comments. (FRAME_CAN_HAVE_SCROLL_BARS): Remove. * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
-
- 07 Oct, 2012 2 commits
-
-
Jan Djärv authored
* configure.ac: Check that OSX is 10.4 or newer. * etc/NEWS (NextStep/OSX port changes): OSX 10.4 or newer is required. * src/nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4. (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4. * src/nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger. * src/nsmenu.m (fillWithWidgetValue:): Remove code for < MAC_OS_X_VERSION_10_2. * src/nsselect.m (ns_string_from_pasteboard): Remove check for >= MAC_OS_X_VERSION_10_4. * src/nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove. (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4. (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
-
Jan Djärv authored
(x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove ns_in_resize check. * nsterm.m (ns_in_resize): Remove. (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove. (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove ns_in_resize check. (ns_clear_frame_area): Remove resize handle code. Fixes: debbugs:12479
-
- 06 Oct, 2012 1 commit
-
-
Jan Djärv authored
* nsfns.m (Fx_create_frame): Call x_default_parameter with fullscreen/Fullscreen. * nsterm.h (EmacsView): Rename tbar_height to tibar_height. tobar_height is new. * nsterm.m (x_make_frame_visible): Check for fullscreen. (ns_fullscreen_hook): Activate old style fullscreen with a timer. (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen. (windowDidResize:): Check for correct window if old style fullscreen. Capitalize word in comment. Remove incorrect comment. (initFrameFromEmacs:): tbar_height renamed tibar_height. (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix error in drawing background. (toggleFullScreen:): Remove comment. Rearrange calls. Set toolbar values to zero, save old height in tobar_height. Restore tool bar height when leaving fullscreen. (canBecomeMainWindow): New function.
-
- 30 Sep, 2012 2 commits
-
-
Jan Djärv authored
* etc/NEWS: Mention that the file dialog is used on NS. * lisp/term/ns-win.el (x-file-dialog): New function. * src/fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS. * src/nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen. * src/nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P. Initialize panel name field if OSX >= 10.6. * src/w32fns.c (Fx_file_dialog): Update comment. * src/xfns.c (Fx_file_dialog): Update comment.
-
Jan Djärv authored
* etc/NEWS: The NS port supports fullscreen. * src/nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen. * src/nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New. (EmacsView): Add variables for fullscreen. (handleFS, setFSValue, toggleFullScreen): New in EmacsView. (EmacsFSWindow): New interface for fullscreen. * src/nsterm.m (NEW_STYLE_FS): New define. (ns_fullscreen_hook, windowWillEnterFullScreen) (windowDidEnterFullScreen, windowWillExitFullScreen) (windowDidExitFullScreen, toggleFullScreen, handleFS) (setFSValue): New functions. (EmacsFSWindow): New implementation. (canBecomeKeyWindow): New function for EmacsFSWindow. (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook. (dealloc): Release nonfs_window if in fullscreen. (updateFrameSize:): Call windowDidMove to update top/left. (windowWillResize:toSize:): Check if frame is still maximized. (initFrameFromEmacs:): Initialize fs_state, fs_before_fs, next_maximized, maximized_width, maximized_height and nonfs_window. Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and tbar_height. (windowWillUseStandardFrame:defaultFrame:): Update frame parameter fullscreen. Set maximized_width/height. Act on next_maximized.
-
- 23 Sep, 2012 1 commit
-
-
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
-
- 19 Sep, 2012 1 commit
-
-
Jan Djärv authored
* src/frame.c (read_integer, XParseGeometry): Moved from w32xfns.c. (Fx_parse_geometry): If there is a space in string, call Qns_parse_geometry, otherwise do as on other terms. * src/w32xfns.c (read_integer, XParseGeometry): Move to frame.c. * src/nsfns.m (XParseGeometry): Remove. (Fx_create_frame): Call x_set_offset to correctly interpret top_pos in geometry. Fixes: debbugs:12368
-
- 16 Sep, 2012 1 commit
-
-
Jan Djärv authored
* nsfns.m (Fx_open_connection): Move initialization of ns_*_types to ns_term_init to avoid memory leak. * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use explicit retain/release. (ns_term_init): Only allow one display. Initialize outerpool and ns_*_types.
-
- 15 Sep, 2012 1 commit
-
-
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
-
- 07 Sep, 2012 1 commit
-
-
Paul Eggert authored
Emacs's signal handlers were written in the old 4.2BSD style with sigblock and sigmask and so forth, and this led to some inefficiencies and confusion. Rewrite these to use pthread_sigmask etc. without copying signal sets around. Also, get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and 'signal', and instead use functions that do not attempt to take over the system name space. This patch causes Emacs's text segment to shrink by 0.7% on my platform, Fedora 17 x86-64. * configure.ac (PTY_OPEN, PTY_TTY_NAME_SPRINTF): Adjust to syssignal.h changes. (SIGNAL_H_AB): Remove; no longer needed. * src/alloc.c, src/emacsgtkfixed.c, src/nsfns.m, src/widget.c, src/xmenu.c: Do not include <signal.h> or "syssignal.h", as these modules do not use signals. * src/atimer.c, src/callproc.c, src/data.c, src/dispnew.c, src/emacs.c: * src/floatfns.c, src/gtkutil.c, src/keyboard.c, src/process.c, src/sound.c: * src/sysdep.c, src/term.c, src/xterm.c: Do not include <signal.h>, as "syssignal.h" does that for us now. * src/atimer.c (sigmask_atimers): New function. (block_atimers, unblock_atimers): New functions, replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS. All uses replaced. * src/conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>; no longer needed here. * src/emacs.c (main): Inspect existing signal handler with sigaction, so that there's no need to block and unblock SIGHUP. * src/sysdep.c (struct save_signal): New member 'action', replacing old member 'handler'. (save_signal_handlers, restore_signal_handlers): Use sigaction instead of 'signal' to save and restore. (get_set_sighandler, set_sighandler) [!WINDOWSNT]: New function. All users of 'signal' modified to use set_sighandler if they're writeonly, and to use sys_signal if they're read+write. (emacs_sigaction_init, forwarded_signal): New functions. (sys_signal): Remove. All uses replaced by calls to sigaction and emacs_sigaction_init, or by direct calls to 'signal'. (sys_sigmask) [!__GNUC__]: Remove; no longer needed. (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove; all uses replaced by pthread_sigmask etc. calls. * src/syssignal.h: Include <signal.h>. (emacs_sigaction_init, forwarded_signal): New decls. (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t. (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask. (sigmask, sys_sigmask): Remove; no longer needed. (sigpause): Remove. All uses replaced by its definiens, sigsuspend. (sigblock, sigunblock, sigfree): (sigsetmask) [!defined sigsetmask]: Remove. All uses replaced by pthread_sigmask. (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN) no longer need to be replaced, and its typical old uses are now done via emacs_sigaction_init and sigaction. (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls. (sys_sigdel): Remove; unused. (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef. Fixes: debbugs:12327
-
- 17 Aug, 2012 2 commits
-
-
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
-
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.
-
- 13 Aug, 2012 1 commit
-
-
Dmitry Antipov authored
* keyboard.h (KSET): New macro. * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c: * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c: * xterm.c: Adjust users.
-
- 10 Aug, 2012 1 commit
-
-
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.
-
- 07 Aug, 2012 2 commits
-
-
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.
-
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.
-
- 06 Aug, 2012 2 commits
-
-
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.
-
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.
-
- 01 Aug, 2012 1 commit
-
-
Alp Aker authored
(EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:) (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114) * nsfns.m (ns_set_name_as_filename): Likewise. * nsmenu.m (ns_update_menubar): Likewise. * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
-
- 31 Jul, 2012 2 commits
-
-
Jan Djärv authored
-
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.
-
- 13 Jul, 2012 1 commit
-
-
Jan Djärv authored
* nsfns.m (x_set_icon_name, ns_set_name_internal) (ns_set_name_as_filename, ns_implicitly_set_icon_type) (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name) (Fns_get_resource, Fns_set_resource, Fx_open_connection) (Fns_font_name, Fns_perform_service) (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript) (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate. (ns_set_name): Remove unused variable view. (x_set_menu_bar_lines): Remove unused variable olines. (x_set_tool_bar_lines): Remove unused variable root_window. (Fns_list_colors): Put () around assignment in while statement. (Fns_perform_service): Remove unused variable len. (Fns_display_usable_bounds): Remove unused variable top. (syms_of_nsfns): Remove unused variable i. * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script) (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA where appropriate. (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put () around assignment in loop statement. (nsfont_open): Remove unused variable i. (nsfont_open): Remove unused variable len. (nsfont_draw): Remove unused variable cs. * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where appropriate. (setXBMColor): Remove unused variable len. (setPixmapData): Put () around assignment in loop statement. * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog) (initFromContents): Use SSDATA where appropriate. (ns_update_menubar): Add braces to ambigous if-else. (initWithTitle): Put () around assignment in if statement. (ns_menu_show): Remove unused variables window and keymap. (update_frame_tool_bar): Remove unused variable selected_p. (initWithContentRect): Remove unused variable this_cmd_name. * nsterm.h (menuDown): Add id as type to argument sender. (ns_display_info_for_name): Add Lisp_Object argument. (ns_term_init): Add Lisp_Object argument. (ns_map_event_to_object): Add void argument. (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct prototype with arguments and only declare if __OBJC__. (nxatoms_of_nsselect): Add void argument. (ns_lisp_to_cursor_type): Add Lisp_Object argument. (ns_alloc_autorelease_pool): Add void argument. (ns_release_autorelease_pool): Add void* argument. (ns_get_defaults_value): Add const char* argument. * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP. (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE. (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init) (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA where appropriate. (ns_exec_path, ns_load_path, changeFont): Put () around assignment used as boolean expression. (x_set_window_size): Remove unused variable toolbar. (ns_get_color_default, ns_mod_to_lisp): Remove. (ns_mouse_position): Remove unused variables xchar and ychar. (ns_compute_glyph_string_overhangs): Remove unused variable face. (ns_set_vertical_scroll_bar): Remove unused variable count. (ns_delete_terminal): Remove unused variable i. (ns_term_init): Remove unused variables r, g and b. (mouseDown): Remove unused variable window. (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP. (initFrameFromEmacs): Remove unused variable vbextra. (mouseEntered): Remove unused variables p and dpyinfo. (mouseExited): Remove unused variables p and r. (ns_define_frame_cursor, ns_clear_frame_area) (ns_draw_window_cursor, ns_initialize_display_info): Make static. (menuDown): Assign [sender tag] to variable and cast the variable.
-