1. 03 Sep, 1997 24 commits
    • Geoff Voelker's avatar
      (INTERRUPT_INPUT): Don't define. · 7f470eff
      Geoff Voelker authored
      (bcopy): Use memmove instead of memcpy.
      Undef system calls before redefining.  Emulated calls redefined
      to sys_*, real calls redefined to _*.
      (DebPrint): Macro defined.
      Use pragmas to place Emacs initialized data in
      EMDATA segment, and Emacs uninitialized data in EMBSS segment.
    • Geoff Voelker's avatar
      (have_menus_p): Move to w32fns.c. · 4a831174
      Geoff Voelker authored
    • Geoff Voelker's avatar
      (w32_output): New fields menubar_widget, menubar_active, · 8694f11b
      Geoff Voelker authored
      and pending_menu_activation.
      (VERTICAL_SCROLL_BAR_*): Use proportional scroll bar variables.
      (W32WindowPos): Delete definition.
      (WM_EMACS_SETFOCUS, WND_*_INDEX): New macros.
      (deferred_msg): New structure.
      (WM_MOUSEWHEEL): Define if not already defined.
      Necessary for pre VC5.0 distribution.
    • Geoff Voelker's avatar
      (SIF_*): Win95 macros defined for NT. · 689004fa
      Geoff Voelker authored
      (struct tagSCROLLINFO): Win95 struct defined for NT.
      (vertical_scroll_bar_min_handle, vertical_scroll_bar_top_border,
      vertical_scroll_bar_bottom_border, last_scroll_bar_drag_pos,
      Vw32_gab_focus_on_raise, Vw32_capslock_is_shiftlock): New
      (w32_frame_up_to_date): Block input.
      (do_line_dance): Use DC while erasing, release at end.
      (show_mouse_face): Use column and endcolumn calculated at start of
      (my_create_scrollbar, my_show_window, my_set_window_pos,
      my_set_focus) [! ATTACH_THREADS]: Send message to window instead
      of invoking Windows procedure.
      (x_scroll_bar_create, x_scroll_bar_move, x_scroll_bar_handle_click,
      x_scroll_bar_report_motion): Use SCROLLINFO for proportional handle.
      (x_scroll_bar_set_handle): Create proportional sized scroll handle.
      (w32_set_vertical_scroll_bar): Size handle according to how much
      is showing in window.
      (x_scroll_bar_set_report_motion): Use top_range, calculated above.
      (x_scroll_bar_clear): Hide scroll bar until ready to repaint.
      (show_scroll_bars): Pass in frame to my_show_window.
      (w32_read_socket): Distinguish between invisible and obscured frames
      when handling PAINT messages.
      Fixup off-by-one calculation for PAINT and SIZE.
      Pass in new parameter to w32_kbd_mods_to_emacs.
      INITMENU, and ACTIVATEAPP messages.
      Explicitly check for visibile and obscured frames, and to see if
      any event should cause a redisplay.
      (x_display_bar_cursor): Don't check whether frame is updating here.
      (x_display_cursor): Check it here instead.
      (x_set_offset) [HAVE_NTGUI]: Don't add border widths.
      Set NOACTIVATE when setting window position.
      (x_set_window_size): Fixup off-by-one calculation when setting
      window position.  Mark frame garbaged earlier.  Clear mouse
      highlighting state.
      (x_focus_on_frame): Set focus by making frame the foreground window.
      (x_raise_frame): Support frames to be raised without grabbing focus.
      (x_lower_frame): Set NOACTIVATE flag when setting window position.
      (x_make_frame_visible, x_make_frame_invisible): Pass in frame
      to my_show_window.
      to my_show_window.
      (x_iconify_frame): Send a MINIMIZE message to the window.
      (x_wm_set_size_hint): Set font width, line height, border,
      and scroll bar indexes instead of X and Y unit indexes.
      (w32_initialize): Set input mode.  Use w32_msg_worker instead
      of windows_msg_worker.  Dynamically link proportional scroll bar
      functions and intialize proportional scroll bar variables.
      (syms_of_w32term): DEFVAR new variables.
      (construct_mouse_wheel): New function.  Constructs an
      input event from a WM_MOUSEWHEEL message.
      (w32_read_socket): Handle WM_MOUSEWHEEL.
      (w32_read_socket): Pass in new parameter to key_event.
      Let key_event determine whether key is dead.
      For MOVE, use x_real_positions to map to client coords.
      (x_set_mouse_pixel_position): Offset to use client area as origin.
    • Geoff Voelker's avatar
      Include w32heap.h. · b2fc9f3d
      Geoff Voelker authored
      (Vw32_start_process_share_console, Vw32_generate_fake_inodes,
      Vw32_get_true_file_attributes, Qhigh, Qlow, process_dir):
      New variables.
      (find_child_console, set_process_dir, Fw32_short_file_name,
      Fw32_long_file_name, Fw32_set_process_priority, Fw32_get_locale_info,
      Fw32_get_current_locale_id, Fw32_get_default_local_id,
      Fw32_set_current_locale): New functions.
      (CORRECT_DIR_SEPS): New macro.
      (create_child): Create a new console if subprocs don't share parent's.
      (reap_subprocess): Don't check for dos subprocesses.
      Add debug support.
      (sys_wait): Ignore socket child_procs.
      Check for quit while waiting.
      (w32_executable_type): Renamed from w32_is_dos_binary.
      Check for dos and Cygnus executables.
      (sys_spawnve): Always use cmdproxy if spawning a dos app.
      Use quotes to quote arguments for Cygnus apps, backslashes otherwise.
      Handle escape characters.  Escape quotes at start and end, too.
      (sys_select): Treat null timeout as infinite.
      Add handles of child processes.
      Loop over handles round robin to ensure fairness.
      (sys_kill): Send ctrl-break and ctrl-c keystrokes to subprocesses
      on SIGINT if not sharing consoles, otherwise generate ctrl-break event.
      On other termination signals, send WM_QUIT message to Win95 apps
      and WM_CLOSE to NT apps.
      (syms_of_ntproc): Intern new symbols.  defsubr new functions.
      DEFVAR new variables.
    • Geoff Voelker's avatar
      (init_menu_items): Disable code. · 014510b0
      Geoff Voelker authored
      (x_activate_menubar): New function.
      (initialize_frame_menubar): Pass in new param to set_frame_menubar.
      (get_frame_menubar_event): Check for the possibility
      of a menu-bar button.  A menu-bar button is a caption on the menu
      bar with no submenu.
      (set_frame_menubar): Correctly handle menu-bar buttons.
      (add_menu_item): Equiv parameter send and paid attention to.
      (keymap_panes, list_of_panes): Use CreatePopupMenu.
      (single_keymap_panes): Use CreatePopupMenu.  Send key descriptions
      to add_menu_item.
      (list_of_items): Use CreatePopupMenu.  Send nil description to
      (get_menu_event): Send keymap instead of menu to get_keymap_event.
      (Fx_popup_menu): Extra parameter to mouse_position_hook.  Don't
      send address of menu to win32menu_show.
      (win32menu_show): Send message to call popup menu rather than
      trying directly.  get_menu_event should take an address.
      Call eat_mouse_events in order to get rid of any extraneous
      mouse events.
      (list_of_panes): Only bring up one pane if the length of the list
      of panes is one.
      (single_keymap_panes): Fixed problem with 'descrip'
      lisp object not being protected properly (GCPRO).
      (get_single_keymap_event): Fixed problem with 'descrip' lisp
      object not being protected properly (GCPRO).
      (name_is_separator): New function.
      (list_of_panes): If a pane's name is empty ("") items are now
      placed in the main popup instead of a blank-named submenu.  This
      seems to be an undocumented feature of x-popup-menu.
      (list_of_items): New argument HMENU.
      Use 1 and 0 instead of Qt and Qnil for enable in add_menu_item
    • Geoff Voelker's avatar
      Declare externs from other files. · 59131421
      Geoff Voelker authored
      (w32_kbd_mods_to_emacs): New parameter KEY.
      Use w32-capslock-is-shiftlock for old behavior.
      (key_event): Pass in new parameter to w32_kbd_mods_to_emacs.
      (key_event): New parameter isdead. Set isdead if the
      key press was done using a dead key.
    • Geoff Voelker's avatar
      Enumerate operating system types. · 3443b04a
      Geoff Voelker authored
      Declare extern data and functions.
      Move file_data struct definition here.
    • Geoff Voelker's avatar
      (os_subtype): New variable. · 801f68b9
      Geoff Voelker authored
      (cache_system_info): Set os_subtype.
      (recreate_heap): Update system information after loading heap.
      Don't use data_seg pragma here.
      (_heap_init, _heap_term) [_MSC_VER >= 1000]: New functions that
      override CRT routines.
    • Geoff Voelker's avatar
      Include limits.h and errno.h. · 1edf84e7
      Geoff Voelker authored
      Declare externs from other files.
      (w32_in_use): New variable.
      (check_w32, have_menus_p, x_set_title, w32_msg_worker,
      find_deferred_msg, send_deferred_msg, complete_deferred_msg,
      Fw32_focus_frame, W32-send-sys-command): New functions.
      (last_mouse_movement_time): Delete variable.
      (x_frame_parms): Alphabetize.  Add title parm.
      (x_set_icon_name): Use title if set.
      (x_set_menu_bar_lines): Ensure client area remains the same.
      (x_set_name): Don't update if the name is the same.
      Use title for name if available.
      (x_icon): Initial support for creating window iconified.
      (x_display_info_for_name): Set w32_in_use.
      (Fx_open_connection): Validate Vwindow_system.  Set w32_in_use.
      (w32_create_window): Set window size to frame dimensions.
      Set font width, line height, border, scrollbar indexes.
      Don't set X and Y units indexes.
      (w32_msg_pump): Renamed from windows_msg_worker.
      Make static.  Don't post done message. No longer handle
      create scrollbar message.  Don't abort on anomalous messages.
      Return when completion detected.
      (w32_wnd_proc): Keep track of button state.
      For WINDOWPOSCHANGING, force window dimensions to be multiples
      of character dimensions.
      Use correct arguments for SHOWWINDOW.
      For SETWINDOWPOS, use WINDOWPOS structure.
      (my_create_window): Abort if message post fails.
      (Fx_create_frame): Use title instead of name.
      GC protect frame before make_frame_without_minibuffer.
      Set icon name.
      Use courier new as default font (has bold and italic).
      Set BufferPredicate and Title default parameters.
      (x_to_w32_weight): Support semibold weight.
      (x_to_w32_charset): Map # to numeric charset identifier.
      (w32_to_x_charset): Encode unknown charsets as a number.
      (enum_font_cb2): Don't restrict to ANSI and OEM charsets.
      (Fx_color_values): Set high and low words of color values.
      (syms_of_w32fns): Zero w32_in_use.  defsubr new functions.
      (w32_wnd_proc): Pass on WM_DISPLAYCHANGE messages.
      (win32_wnd_proc): Capture and handle WM_MOUSEWHEEL events.
      Capture and handle WM_EMACS_TRACKPOPUPMENU events.
      Allow a dragged selection from a popup menu started up
      by a mouse down event.
      (x_to_win32_color): Support for X Windows RGB string specifications.
    • Geoff Voelker's avatar
      (DebPrint, reset_kbd, unset_kbd, take_console): Delete functions. · 3e671d90
      Geoff Voelker authored
      (keyboard_init_hook): Delete variable.
      (prev_console_cursor) [! USE_SEPARATE_SCREEN]: New variable.
      (reset_terminal_modes) [! USE_SEPARATE_SCREEN]: Reset cursor info.
      (initialize_w32_display) [USE_SEPARATE_SCREEN]: Create separate
      screen buffer.
      (ctrl_c_handler): Only ignore interrupts when interactive.
      (set_terminal_modes): Set input mode.
      (initialize_w32_display): Record original settings.
      Don't reset cursor or clear frame.
    • Geoff Voelker's avatar
      Remove debugging macros. · bb06745d
      Geoff Voelker authored
      (child_process): Remove is_dos_process field, add hwnd handle field.
      (FILE_LAST_CR): New macro.
      (w32_get_long_filename): Declare extern.
    • Geoff Voelker's avatar
      Include stddef.h. · 76b3903d
      Geoff Voelker authored
      (getwd): Delete macro.
      (startup_dir): New variable.
      (getwd): Return directory in which Emacs started.
      (init_user_info): Set SHELL environment variable if not set.
      (parse_root, get_long_basename, w32_get_long_filename): New functions.
      (init_environment): Look for CMDPROXY.
      Make sure that PATH and COMSPEC are capitalized in the environment.
      Record startup directory.
      (get_emacs_configuration, sys_rename): Use OS_WIN95.
      (map_w32_filename): Calculate returned string correctly.
      (sys_fopen): Use _fdopen.
      (sys_link): Support NTFS links.
      (sys_rename): Use a long file name for temporary name.
      (sys_pipe): Make pipes binary and non-inheritable.
      (sys_read, sys_write): Spoof text mode translation for pipes
      and sockets.
      (hashval): Simplify.
      (generate_inode_val): Use long file name version of file.
      (stat): Optimize by using active readdir info.
      Set fake_inode to 0 for directories.
      Set fake_inode to xor of file indexes for files.
      Don't use generate_inode_val to set inode value.
      (volume_info_data): Renamed from volume_info.
      (volume_info, fixed_drives, volume_cache): New variables.
      (lookup_volume_info, add_volume_info, GetCachedVolumeInformation):
      New functions.
      (get_volume_info): Use volume_info_data.
      Use GetCachedVolumeInformation.
      (init_ntproc): No longer restrict to one DOS subprocess.
      Use CRT _open and _fdopen.
      Cache fixed drive information.
    • Geoff Voelker's avatar
      Include config.h and time.h. · 43640c4d
      Geoff Voelker authored
      Declare extern data and functions.
      (file_data): Move definition from w32heap.c.
      (_start): Add debug hook for when profiling.
      Spoof executable name when using profilers.
      Invoke sbrk immediately when undumped.
      (unexec): Print error messages when input and output dump files
      cannot be opened.
      Reset header checksum.
      (open_input_file, open_output_file): Return status instead of aborting.
      (get_section_size): Handle different linkers.
      (find_section, rva_to_section): New functions.
      (get_section_info) [SEPARATE_BSS_SECTION]: Make code for using
      a separate .bss section conditional.
      Use my_begbss and my_endbss to determine .bss size by default.
      Look for Emacs data in EMDATA section.
    • Geoff Voelker's avatar
      makefile.nt (TLIB0, TOBJ, OBJ0): New macro. · 17fa2f54
      Geoff Voelker authored
      (LINK_FLAGS): Separate debugging info from the executable.
      (LIBS): Include TLIB0.
      (TEMACS): Link with TLIB0.
      (EMACS): Copy temacs map file to emacs map file.
      Update file dependencies.
    • Geoff Voelker's avatar
      (redisplay_internal): Check to see if frame is not obscured · f21ef775
      Geoff Voelker authored
      as well as visible.
    • Geoff Voelker's avatar
    • Geoff Voelker's avatar
      (sys_subshell) [DOS_NT]: Save and restore parent's · ad00c243
      Geoff Voelker authored
      working directory.
      (sys_subshell) [WINDOWSNT]: Share MSDOS code. Don't take console.
      (init_sys_modes, reset_sys_modes) [WINDOWSNT]: Do it even with
      a read_socket_hook.
    • Geoff Voelker's avatar
      Declare discard_mouse_events. · 084cd810
      Geoff Voelker authored
    • Geoff Voelker's avatar
      (kbd_buffer_get_event) [WINDOWSNT]: Support · 07de30b9
      Geoff Voelker authored
      (set-input-mode) [DOS_NT]: Do not invoke reset and init sys modes.
      (Qmouse_wheel) [WINDOWSNT]: New variable.
      (discard_mouse_events): New function.
      (mouse_wheel_syms) [WINDOWSNT]: New variable.
      (lispy_mouse_wheel_names) [WINDOWSNT]: New variable.
      (make_lispy_event) [WINDOWSNT]: Make mouse-wheel events.
      (syms_of_keyboard) [WINDOWSNT]: Define Qmouse_wheel and
    • Geoff Voelker's avatar
      (FRAME_OBSCURED_P): New macro. · 0969b893
      Geoff Voelker authored
      (FRAME_SAMPLE_VISIBILITY): Distinguish between invisible and obscured.
    • Geoff Voelker's avatar
      (Fexpand_file_name) [WINDOWSNT]: When stripping · bb1ff1f4
      Geoff Voelker authored
      drive letter, be careful not to create a UNC filename.
      (Fadd_name_to_file) [WINDOWSNT]: Remove conditional.
    • Geoff Voelker's avatar
      (getpid): Delete function. · 16f49a88
      Geoff Voelker authored
    • Geoff Voelker's avatar
  2. 02 Sep, 1997 16 commits