home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
p2demo21.exe
/
PEL
/
CUA.PEL
< prev
next >
Wrap
Text File
|
1995-03-21
|
28KB
|
673 lines
# $Header: P:\source\wmacros\cua.pev 1.62 21 Mar 1995 09:02:58 WALKER $
## $Tabs:4 7$
##############################################################################
#
# Compuware Corporation
# 31440 Northwestern Highway
# Farmington Hills, Michigan 48334-2564
#
# This source code listing contains information that is
# proprietary to Compuware Corporation and may not be copied
# duplicated, translated, transmitted, stored, retrieved
# or in any manner or by any method conveyed or disclosed
# to a third party or parties without express written
# permission from Compuware Corporation.
#
#
##############################################################################
#### $Workfile: cua.pel $: Key bindings for CUA 91 compatibility
global cua_selection = FALSE
local cua_keymap = -1
local old_paste_tfunc
local old_paste_mfunc
global function cua()
{
local tbhand
local mhand
local prevPauseOnError
if (emulation_mode == "cua")
return;
emulation_mode = "cua"
cua_selection = TRUE
execute_event_handler( EVENT.EMULATION_CHANGED )
attach_event_handler(EVENT.EMULATION_CHANGED, function_id("cua_exit"))
# pause if an error or warning occurs during initialization
prevPauseOnError = pause_on_error
pause_on_error = 1
# set up cua menu and keymap
create_cua_keymap()
cua_menu()
# set up default search characteristics
# search_flags = SEARCH_MAXIMAL_MATCH \
# + SEARCH_FORWARD \
# + SEARCH_BLOCK \
# + SEARCH_REGEX \
# + SEARCH_WRAPS \
# + SEARCH_HIGHLIGHT \
# misc defaults
toggle_auto_indent( 0 )
pause_on_error = prevPauseOnError
tbhand = toolbar_info( 0 )
if ( tbhand )
{
old_paste_tfunc = toolbar_info( tbhand, TI_FUNCTIONID, IDM_PASTE )
modify_toolbaritem( tbhand, IDM_PASTE, TI_FUNCTIONID, function_id("cua_insert_scrap") )
}
old_paste_mfunc = menu_functions[IDM_PASTE]
menu_functions[IDM_PASTE] = "cua_insert_scrap"
}
global function create_cua_keymap()
{
# Enable the keymap. Subsequent mods to the keymap will persist
# through the end of the session.
# Only one-time initialization should follow this point.
if ( cua_keymap >= 0 )
{
current_keymap = cua_keymap
return
}
else
{
current_keymap = cua_keymap = create_keymap( factory_keymap )
assign_cua_keys()
assign_cua_f_keys()
assign_cua_misc_keys()
# assign_mouse_buttons()
optional_function("local_keys")
}
}
global function assign_cua_keys()
{
#--------------------------------------------------------------
# Ctrl + Alt key combinations on the main keyboard:
#--------------------------------------------------------------
assign_key( "<Esc>", "expand_template_key" )
assign_key( "<Alt-E>", "")
assign_key( "<Alt-W>", "")
#--------------------------------------------------------------
# Cursor Movement
#--------------------------------------------------------------
assign_key( "<Ctrl-G>", "optional_function routines" )
assign_key( "<Ctrl-L>", "goto_line_key" )
#--------------------------------------------------------------
# Marked Blocks
#--------------------------------------------------------------
assign_key( "<Ctrl-M>", "set_inclusive_mark" )
assign_key( "<Ctrl-F>", "set_line_mark" )
assign_key( "<Ctrl-C>", "set_column_mark" )
# assign_key( "<Ctrl-A>", "set_exclusive_mark" )
#--------------------------------------------------------------
# Command Dialog
#--------------------------------------------------------------
assign_key( "<Ctrl-A>", "gui_command" )
#--------------------------------------------------------------
# Basic Text commands
#--------------------------------------------------------------
assign_key( "<Ctrl-D>", "delete_line" )
assign_key( "<Ctrl-K>", "delete_to_eol" )
#--------------------------------------------------------------
# Manipulating Buffers
#--------------------------------------------------------------
assign_key( "<Ctrl-O>", "gui_open" )
assign_key( "<Ctrl-R>", "gui_insert_file" )
assign_key( "<Ctrl-W>", "gui_save" )
assign_key( "<Ctrl-N>", "next_buffer_mask" )
assign_key( "<Ctrl-Shift-N>", "prev_buffer_mask" )
assign_key( "<Ctrl-B>", "buffer_list" )
assign_key( "<Ctrl-X>", "write_and_exit" )
assign_key( "<Ctrl-P>", "gui_print" )
assign_key( "<Ctrl-I>", "gui_saveas" )
#--------------------------------------------------------------
# Searching and translating
#--------------------------------------------------------------
assign_key( "<Ctrl-S>", "gui_find" )
assign_key( "<Ctrl-E>", "gui_search_again" )
assign_key( "<Ctrl-T>", "gui_change" )
assign_key( "<Alt-Shift-S>", function_id("toggle_search_flags", SEARCH_CASE))
assign_key( "<Alt-Shift-R>", function_id("toggle_search_flags", SEARCH_REGEX))
#--------------------------------------------------------------
# Bookmarks
#--------------------------------------------------------------
assign_key( "<Ctrl-J>", "goto_bookmark" )
#--------------------------------------------------------------
# Miscellaneous
#--------------------------------------------------------------
assign_key( "<Alt-X>", "done" )
assign_key( "<Ctrl-V>", "print_version" )
assign_key( "<Ctrl-Q>", "insert_quoted_key" )
}
global function assign_cua_f_keys()
{
#--------------------------------------------------------------
# Function Key bindings
#--------------------------------------------------------------
# assign_key( "<F1>", "help" ) #CUA
assign_key( "<Shift-F1>", "display_filename" )
assign_key( "<Ctrl-F1>", "display_help_item" )
assign_key( "<Alt-F1>", "toggle_borders" )
# assign_key( "<F2>", "extended_help" ) #nImp #CUA
# assign_key( "<Shift-F2>", "tutorial" ) #nImp #CUA
## assign_key( "<Ctrl-F2>", "" )
# assign_key( "<Alt-F2>", "toggle_window_zoom" )
# assign_key( "<F3>", "" )
# assign_key( "<Shift-F3>", "" )
# assign_key( "<Ctrl-F3>", "gui_create_window" )
# assign_key( "<Alt-F3>", "" )
assign_key( "<F4>", "gui_delete_buffer" )
# assign_key( "<Shift-F4>", "" )
# assign_key( "<Ctrl-F4>", "delete_tiled_window" )
assign_key( "<Alt-F4>", "done2" ) #CUA
# assign_key( "<F5>", "refresh_window" ) #nImp #CUA
# assign_key( "<Shift-F5>", "" )
# assign_key( "<Ctrl-F5>", "restore_window" )
## assign_key( "<Alt-F5>", "restore_frame_window" )
# assign_key( "<F6>", "switch_tiled_window" ) #nImp #CUA
# assign_key( "<Shift-F6>", "prev_window" )
# assign_key( "<Ctrl-F6>", "next_window" ) #CUA
# assign_key( "<Alt-F6>", "next_window" ) #CUA
## assign_key( "<F7>", "" ) # (see Macros below)
## assign_key( "<Shift-F7>", "" ) # (see Macros below)
# assign_key( "<Ctrl-F7>", "adjust_window 1" ) # Move
## assign_key( "<Alt-F7>", "move frame window" )
## assign_key( "<F8>", "" ) # (see Macros below)
## assign_key( "<Shift-F8>", "" )
# assign_key( "<Ctrl-F8>", "adjust_window" ) # Size
## assign_key( "<Alt-F8>", "size frame window" )
# assign_key( "<F9>", "keys_help" ) #nImp #CUA
## assign_key( "<Shift-F9>", "" )
# assign_key( "<Ctrl-F9>", "collapse_window" ) # Minimize
## assign_key( "<Alt-F9>", "iconize frame window" )
assign_key( "<F10>", "select_menuitem" ) #CUA
# assign_key( "<Shift-F10>", "help_for_help" ) #nImp #CUA
if ( popupmenu )
assign_key( "<Shift-F10>", "gui_show_popup" )
# assign_key( "<Ctrl-F10>", "expand_window" ) # Maximize
## assign_key( "<Alt-F10>", "maximize frame window" )
#--------------------------------------------------------------
# Macros and keystroke recordings
#--------------------------------------------------------------
#commented out for version 1
assign_key( "<Alt-F7>", "load_key_file" )
assign_key( "<Alt-F8>", "write_key_file" )
assign_key( "<F7>", "record_macro" )
assign_key( "<F8>", "playback_macro" )
assign_key( "<Shift-F7>", "pause_recording" )
}
global function assign_cua_misc_keys()
{
#--------------------------------------------------------------
# Alt-digit codes, Numpad keys, keypad keys &
# non-ASCII keys on main keyboard:
#--------------------------------------------------------------
#--------------------------------------------------------------
# Cursor Movement
#--------------------------------------------------------------
assign_key( "<Left>", "left" ) #CUA
assign_key( "<Right>", "right" ) #CUA
assign_key( "<Down>", "down" ) #CUA
assign_key( "<Up>", "up" ) #CUA
assign_key( "<Home>", "goto_bol" ) #CUA
assign_key( "<End>", "goto_eol" ) #CUA
assign_key( "<PageDown>", "page_down" ) #CUA
assign_key( "<PageUp>", "page_up" ) #CUA
assign_key( "<Num-5>", "center_cursor" )
assign_key( "<Ctrl-Left>", "prev_word" ) #CUA
assign_key( "<Ctrl-Right>", "next_word" ) #CUA
assign_key( "<Ctrl-Down>", "down_whitespace" )
assign_key( "<Ctrl-Up>", "up_whitespace" )
assign_key( "<Ctrl-Home>", "goto_buffer_top" ) #CUA
assign_key( "<Ctrl-End>", "goto_buffer_bottom" ) #CUA
assign_key( "<Ctrl-PageDown>", "right_half_page" ) #CUA
assign_key( "<Ctrl-PageUp>", "left_half_page" ) #CUA
assign_key( "<Ctrl-Num-Left>", "prev_word" ) #CUA
assign_key( "<Ctrl-Num-Right>", "next_word" ) #CUA
assign_key( "<Ctrl-Num-Down>", "down_whitespace" )
assign_key( "<Ctrl-Num-Up>", "up_whitespace" )
assign_key( "<Ctrl-Num-Home>", "goto_buffer_top" ) #CUA
assign_key( "<Ctrl-Num-End>", "goto_buffer_bottom" ) #CUA
assign_key( "<Ctrl-Num-PageDown>", "right_half_page" ) #CUA
assign_key( "<Ctrl-Num-PageUp>", "left_half_page" ) #CUA
# assign_key( "<Ctrl-Num-Left>", "scroll_left_1" )
# assign_key( "<Ctrl-Num-Right>", "scroll_right_1" )
# assign_key( "<Ctrl-Num-Down>", "scroll_down_1" )
# assign_key( "<Ctrl-Num-Up>", "scroll_up_1" )
# assign_key( "<Ctrl-Num-Home>", "goto_window_left" )
# assign_key( "<Ctrl-Num-End>", "goto_window_right" )
# assign_key( "<Ctrl-Num-PageDown>", "goto_window_bottom" )
# assign_key( "<Ctrl-Num-PageUp>", "goto_window_top" )
#--------------------------------------------------------------
# Marked Blocks
#--------------------------------------------------------------
assign_key( "<Shift-Delete>", "gui_delete_to_scrap" ) #CUA
assign_key( "<Shift-Insert>", "cua_insert_scrap" ) #CUA
assign_key( "<Ctrl-Insert>", "copy_to_scrap_key" ) #CUA
assign_key( "<Shift-Left>", "cua_extend " ) #CUA
assign_key( "<Shift-Right>", "cua_extend " ) #CUA
assign_key( "<Shift-Down>", "cua_extend " ) #CUA
assign_key( "<Shift-Up>", "cua_extend " ) #CUA
assign_key( "<Shift-Home>", "cua_extend " ) #CUA
assign_key( "<Shift-End>", "cua_extend " ) #CUA
assign_key( "<Shift-PageDown>", "cua_extend " ) #CUA
assign_key( "<Shift-PageUp>", "cua_extend " ) #CUA
assign_key( "<Shift-Num-Left>", "cua_extend " ) #CUA
assign_key( "<Shift-Num-Right>", "cua_extend " ) #CUA
assign_key( "<Shift-Num-Down>", "cua_extend " ) #CUA
assign_key( "<Shift-Num-Up>", "cua_extend " ) #CUA
assign_key( "<Shift-Num-Home>", "cua_extend " ) #CUA
assign_key( "<Shift-Num-End>", "cua_extend " ) #CUA
assign_key( "<Shift-Num-PageDown>", "cua_extend " ) #CUA
assign_key( "<Shift-Num-PageUp>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Left>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Right>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Down>", "cua_extend " )
assign_key( "<Ctrl-Shift-Up>", "cua_extend " )
assign_key( "<Ctrl-Shift-Home>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-End>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-PageDown>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-PageUp>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Num-Left>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Num-Right>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Num-Down>", "cua_extend " )
assign_key( "<Ctrl-Shift-Num-Up>", "cua_extend " )
assign_key( "<Ctrl-Shift-Num-Home>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Num-End>", "cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Num-PageDown>","cua_extend " ) #CUA
assign_key( "<Ctrl-Shift-Num-PageUp>", "cua_extend " ) #CUA
#--------------------------------------------------------------
# Other Windows commands
#--------------------------------------------------------------
# assign_key( "<Alt-Left>", "w_window" )
# assign_key( "<Alt-Right>", "e_window" )
# assign_key( "<Alt-Down>", "s_window" )
# assign_key( "<Alt-Up>", "n_window" )
#--------------------------------------------------------------
# Basic Text commands
#--------------------------------------------------------------
assign_key( "<Delete>", "delete_chars" ) #CUA
assign_key( "<Insert>", function_id("toggle_buffer_flags", BUFFER_OVERTYPE_MODE)) #CUA
assign_key( "<Enter>", "cua_enter" )
assign_key( "<Num-Enter>", "cua_enter" )
assign_key( "<Ctrl-Enter>", "auto_indent_nl" )
assign_key( "<Tab>", "cua_tab" )
# use BackTab for OS2 and Shift-Tab for windows
assign_key( "<BackTab>", "outdent_tab_maybe" )
assign_key( "<Space>", "indent_space_maybe" )
assign_key( "<Shift-Space>", "indent_space_maybe" )
assign_key( "<Ctrl-Space>", "indent_space_maybe" )
assign_key( "<Backspace>", "cua_backspace" )
assign_key( "<Ctrl-Backspace>", "delete_prev_word" )
assign_key( "<Shift-Backspace>", "delete_word" )
#--------------------------------------------------------------
# Bookmarks
#--------------------------------------------------------------
assign_key( "<Alt-1>", "place_bookmark 1" )
assign_key( "<Alt-2>", "place_bookmark 2" )
assign_key( "<Alt-3>", "place_bookmark 3" )
assign_key( "<Alt-4>", "place_bookmark 4" )
assign_key( "<Alt-5>", "place_bookmark 5" )
assign_key( "<Alt-6>", "place_bookmark 6" )
assign_key( "<Alt-7>", "place_bookmark 7" )
assign_key( "<Alt-8>", "place_bookmark 8" )
assign_key( "<Alt-9>", "place_bookmark 9" )
assign_key( "<Alt-0>", "place_bookmark 10" )
#--------------------------------------------------------------
# Undo / Redo
#--------------------------------------------------------------
assign_key( "<Alt-Backspace>", "gui_undo" ) #CUA
assign_key( "<Alt-Shift-Backspace>", "gui_redo" )
#--------------------------------------------------------------
# Toggle keys used alone
#--------------------------------------------------------------
# assign_key( "<Alt>", "select_menuitem" ) #CUA
#--------------------------------------------------------------
# Miscellaneous
#--------------------------------------------------------------
## assign_key( "<>", "display_ascii_table" )
## assign_key( "<>", "toggle_file_backup" )
## assign_key( "<>", "repeat_key_action" )
## assign_key( "<>", "insert_keys" )
## assign_key( "<>", "compile_buffer" )
## assign_key( "<>", "goto_next_error" )
## assign_key( "<>", "display_errors" )
## assign_key( "<>", "system" )
## assign_key( "<>", "system_key" )
}
# this function is used to customize the menu so that the keys you have
# assigned to do the same thing as the menuitem will show on the menu
# It should be global and start with the string inside emulation_mode
global function cua_menu(noFKeys)
{
local menu = menu_info(0, MI_MENUHANDLE);
if ( menu )
{
# first, do a global fix
optional_function( "fix_menu_text" )
# add keys to menu that contain non-special-dialog box functions
optional_function( "fix_menu_text", IDM_UNDO, "gui_undo" )
optional_function( "fix_menu_text", IDM_REDO, "gui_redo" )
optional_function( "fix_menu_text", IDM_FINDAGAIN, "gui_search_again" )
optional_function( "fix_menu_text", IDM_CUT, "gui_delete_to_scrap" )
optional_function( "fix_menu_text", IDM_PASTE, "cua_insert_scrap" )
if (noFKeys)
modify_menuitem( menu, IDM_CLOSE, MI_KEYSTEXT, "")
else
modify_menuitem( menu, IDM_CLOSE, MI_KEYSTEXT, "F4")
}
}
#
# EVENT.EMULATION_CHANGED Occured - CUA Emulation is no longer active.
#
global function cua_exit()
{
local tbhand
# delete event handlers
delete_event(EVENT.EMULATION_CHANGED, function_id("cua_exit"))
cua_selection = FALSE
tbhand = toolbar_info( 0 )
if ( tbhand )
modify_toolbaritem( tbhand, IDM_PASTE, TI_FUNCTIONID, old_paste_tfunc )
menu_functions[IDM_PASTE] = old_paste_mfunc
}
##########################################################################
#
# CUA extend selection key processing
#
# DWM updated 5/26/94
#
##########################################################################
local extend_buffers[]
local extend_keys[]
global function initialize_mouse_cua_selection()
{
extend_buffers[ current_buffer ] = TRUE
}
local function initialize_extend_keys()
{
if ( !extend_keys )
{
extend_keys[ "<Shift-Up>" ] = function_id("up")
extend_keys[ "<Shift-Down>" ] = function_id("down")
extend_keys[ "<Shift-Left>" ] = function_id("left")
extend_keys[ "<Shift-Right>" ] = function_id("right")
extend_keys[ "<Shift-Home>" ] = function_id("goto_bol")
extend_keys[ "<Shift-End>" ] = function_id("goto_eol")
extend_keys[ "<Shift-PageUp>" ] = function_id("page_up")
extend_keys[ "<Shift-PageDown>" ] = function_id("page_down")
extend_keys[ "<Ctrl-Shift-Up>" ] = function_id("up_whitespace")
extend_keys[ "<Ctrl-Shift-Down>" ] = function_id("down_whitespace")
extend_keys[ "<Ctrl-Shift-Left>" ] = function_id("cua_prev_word")
extend_keys[ "<Ctrl-Shift-Right>" ] = function_id("cua_next_word")
extend_keys[ "<Ctrl-Shift-Home>" ] = function_id("goto_buffer_top")
extend_keys[ "<Ctrl-Shift-End>" ] = function_id("goto_buffer_bottom")
extend_keys[ "<Ctrl-Shift-PageUp>" ] = function_id("right_half_page")
extend_keys[ "<Ctrl-Shift-PageDown>" ] = function_id("left_half_page")
extend_keys[ "<Shift-Num-Up>" ] = function_id("up")
extend_keys[ "<Shift-Num-Down>" ] = function_id("down")
extend_keys[ "<Shift-Num-Left>" ] = function_id("left")
extend_keys[ "<Shift-Num-Right>" ] = function_id("right")
extend_keys[ "<Shift-Num-Home>" ] = function_id("goto_bol")
extend_keys[ "<Shift-Num-End>" ] = function_id("goto_eol")
extend_keys[ "<Shift-Num-PageUp>" ] = function_id("page_up")
extend_keys[ "<Shift-Num-PageDown>" ] = function_id("page_down")
extend_keys[ "<Ctrl-Shift-Num-Up>" ] = function_id("up_whitespace")
extend_keys[ "<Ctrl-Shift-Num-Down>" ] = function_id("down_whitespace")
extend_keys[ "<Ctrl-Shift-Num-Left>" ] = function_id("cua_prev_word")
extend_keys[ "<Ctrl-Shift-Num-Right>" ] = function_id("cua_next_word")
extend_keys[ "<Ctrl-Shift-Num-Home>" ] = function_id("goto_buffer_top")
extend_keys[ "<Ctrl-Shift-Num-End>" ] = function_id("goto_buffer_bottom")
extend_keys[ "<Ctrl-Shift-Num-PageUp>" ] = function_id("right_half_page")
extend_keys[ "<Ctrl-Shift-Num-PageDown>" ] = function_id("left_half_page")
}
}
global function cua_backspace()
{
if ( selection_type() )
delete_chars()
else
gui_backspace()
}
global function cua_enter()
{
if ( selection_type() )
delete_chars()
auto_indent_cr()
}
global function cua_tab()
{
indent_tab_maybe()
}
# These versions of next and previous word stop at the end and
# beginning of lines
global function cua_next_word()
{
next_word(0, "<|$")
}
global function cua_prev_word()
{
prev_word(0, ">|^")
}
global function cua_extend(mouse_sel)
{
local key = int_to_key(current_key)
local selection = selection_type()
initialize_extend_keys()
if ( !selection )
begin_selection(NORMAL_SELECTION)
if ( !mouse_sel )
execute_function( extend_keys[key] )
if ( !selection )
{
if ( !extend_buffers )
{
attach_event_handler( EVENT.KEYPRESS, function_id( "cua_extend_arrows" ) )
attach_event_handler( EVENT.KEYPRESS_AFTER, function_id( "cua_remove_selection" ) )
}
extend_buffers[ current_buffer ] = TRUE
}
}
# this function is used by the mouse processing code
# to process when a mouse selection is made in CUA
# mode.
global function cua_process_selection()
{
local keyName = int_to_key(current_key)
local charKey = int_to_ascii(current_key)
charKey = ( charKey >= 32 && charKey <= 128 )
initialize_extend_keys()
if ( current_buffer in extend_buffers && !(keyName in extend_keys) )
{
if ( charKey )
delete_chars()
else if ( selection_type() )
delete_chars()
else
cua_remove_selection()
delete extend_buffers[ current_buffer ]
}
}
global function cua_remove_selection()
{
local keyName = int_to_key(current_key)
if ( current_buffer in extend_buffers && !(keyName in extend_keys) )
{
if ( keyName != "<Tab>" && keyName != "<BackTab>")
{
delete extend_buffers[ current_buffer ]
remove_selection()
update_current_view()
if ( !extend_buffers )
delete_event(EVENT.KEYPRESS_AFTER, function_id( "cua_remove_selection" ) )
}
}
}
global function cua_extend_arrows()
{
local keyName = int_to_key(current_key)
local charKey = int_to_ascii(current_key)
charKey = ( charKey >= 32 && charKey <= 128 )
if ( current_buffer in extend_buffers && !(keyName in extend_keys) )
{
if ( !charKey )
{
delete extend_buffers[ current_buffer ]
if ( !extend_buffers )
delete_event(EVENT.KEYPRESS, function_id( "cua_extend_arrows" ) )
# must re-add current_buffer in list so the EVENT.KEYPRESS after
# can execute. We must wait otherwise command is not executed
# on the correct block
extend_buffers[ current_buffer ] = TRUE
}
else
{
delete extend_buffers[ current_buffer ]
if ( !extend_buffers )
delete_event(EVENT.KEYPRESS, function_id( "cua_extend_arrows" ) )
# must re-add current_buffer in list so the EVENT.KEYPRESS after
# can execute. We must wait otherwise command is not executed
# on the correct block
extend_buffers[ current_buffer ] = TRUE
if ( selection_type() && emulation_mode != "vi")
delete_chars()
}
}
}
global function cua_insert_scrap()
{
local type = selection_type()
local top_mark
local bottom_mark
local start_line
local start_column
if ( type )
{
if ( type != COLUMN_SELECTION )
delete_chars()
else
{
top_mark = selection_mark_top()
bottom_mark = selection_mark_bottom()
start_line = mark_line( top_mark )
if ( mark_column(bottom_mark) > mark_column(top_mark) )
start_column = mark_column( top_mark )
else
start_column = mark_column( bottom_mark )
delete_chars()
goto_pos( start_line, start_column )
}
}
insert_scrap()
}