From: Rod O. <rod...@us...> - 2008-08-15 11:29:07
|
Update of /cvsroot/win32forth/win32forth/src/console In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv22342 Modified Files: CommandWindow.f NewConsole.f Log Message: Rod: paste-load now pastes and executes all lines from the clipboard Index: NewConsole.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/console/NewConsole.f,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** NewConsole.f 13 Aug 2008 17:00:09 -0000 1.16 --- NewConsole.f 15 Aug 2008 11:29:03 -0000 1.17 *************** *** 269,272 **** --- 269,273 ---- : c_key? ( -- f ) + cmd.ClipboardHandle IF false exit THEN \ seem to need to disable key? during paste KeysOff: cmd \ PauseForMessage Index: CommandWindow.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/console/CommandWindow.f,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** CommandWindow.f 14 Aug 2008 22:12:45 -0000 1.12 --- CommandWindow.f 15 Aug 2008 11:29:03 -0000 1.13 *************** *** 947,954 **** ;M ! :M Paste: ( -- ) \ paste only the first line (less CR) in commandline CF_TEXT call IsClipboardFormatAvailable IF hWnd call OpenClipboard drop CF_TEXT call GetClipboardData dup call GlobalLock zcount --- 947,994 ---- ;M ! int ClipboardHandle ! int ClipboardAddress ! int ClipboardCount ! ! : OpenClipboard ( -- ) CF_TEXT call IsClipboardFormatAvailable IF hWnd call OpenClipboard drop + CF_TEXT call GetClipboardData dup to ClipboardHandle + call GlobalLock zcount to ClipboardCount to ClipboardAddress + THEN + ; + + : CloseClipboard ( -- ) + ClipboardHandle call GlobalUnlock drop + call CloseClipboard drop + 0 to ClipboardHandle + ; + + :M EmptyClipboard: ( -- ) hWnd call OpenClipboard drop call EmptyClipboard drop call CloseClipboard drop ;M + + :M Paste: ( -- ) \ paste (and execute) all text in the clipboard to the commandline + ClipboardHandle 0= IF OpenClipboard ClipboardHandle 0= IF beep exitm THEN THEN + ClipboardAddress ClipboardCount 2dup 2dup 13 scan nip dup>r - dup>r \ next line without CRLF + pad place pad +null pad 1+ InsertTextOnCommandLine: self r> r> \ chars inserted, chars remaining + IF + /string 13 skip 10 skip to ClipboardCount to ClipboardAddress \ lines remaining + EndPrompt: self + ClipboardCount + IF 'V' +k_control PutKey: self \ repeat Paste: + ELSE CloseClipboard + THEN + ELSE + 3drop + 0 to ClipboardCount + CloseClipboard + THEN + true to editing + ;M + + :M PasteFirstLine: ( -- ) \ paste only the first line (less CR) to the commandline + CF_TEXT call IsClipboardFormatAvailable + IF + hWnd call OpenClipboard drop CF_TEXT call GetClipboardData dup call GlobalLock zcount |