diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 04f3f3e3b2..aa3f2a12a2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,12 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-03-02 23:55 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * examples/pe/editorlo.c + * examples/pe/pe.prg + * examples/pe/editorhi.prg + * Formatting/cleanups. + 2010-03-02 23:31 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * examples/pe/editorlo.c ; Started to level this code to Harbour standards. diff --git a/harbour/examples/pe/editorhi.prg b/harbour/examples/pe/editorhi.prg index 68a6c4e060..99bb8d0ad0 100644 --- a/harbour/examples/pe/editorhi.prg +++ b/harbour/examples/pe/editorhi.prg @@ -2,11 +2,6 @@ * $Id$ */ -//#include "expand.ch" -//#include "windows.ch" -//#include "print.ch" -//#include "helpsys.ch" - #include "inkey.ch" #include "setcurs.ch" #include "fileio.ch" @@ -14,9 +9,6 @@ #include "common.ch" -#define EXPORT -#define IFANY( x ) IF ( (x) != NIL ) -#define IFNIL( x ) IF ( (x) == NIL ) #define IIFNIL( isnil, notnil ) IIF(notnil==NIL, isnil, notnil) #define EDIT_LOWER 0 // convert to lowercase @@ -45,10 +37,10 @@ #define E_STRUCT_LEN 11 -STATIC nESize:=4096 // default buffer size -STATIC oEditor // static variable used to speed access to the editor -STATIC aEdit:={ } // the stack of used editors -STATIC lInsert //current Insert state +STATIC s_nESize := 4096 // default buffer size +STATIC s_oEditor // static variable used to speed access to the editor +STATIC s_aEdit := {} // the stack of used editors +STATIC s_lInsert //current Insert state // ** @@ -70,75 +62,74 @@ STATIC lInsert //current Insert state // will be displayed with 'text in bold' highlighted using the second // color specified by 'cColor' parameter // -EXPORT FUNCTION EditorNew( nTop, nLeft, nBottom, nRight, nLength, ; - cFrame, cTitle, cColor, nSize, nEscape ) -LOCAL nEdit, oEdit +FUNCTION EditorNew( nTop, nLeft, nBottom, nRight, nLength, ; + cFrame, cTitle, cColor, nSize, nEscape ) + LOCAL nEdit, oEdit - IF nLength == NIL - nLength := 80 - ENDIF - nEdit := ED_New( nLength, 4, IIFNIL(nESize, nSize), nEscape ) - IF nEdit >= 0 - oEdit :=ARRAY( E_STRUCT_LEN ) - oEdit[E_EDIT] := nEdit + DEFAULT nLength TO 80 - oEdit[E_TOP] := nTop - oEdit[E_LEFT] := nLeft - oEdit[E_BOTTOM] := nBottom - oEdit[E_RIGHT] := nRight - oEdit[E_LINELEN] := nLength - oEdit[E_FRAME] := IIFNIL( B_DOUBLE, cFrame ) - oEdit[E_TITLE] := cTitle - oEdit[E_COLOR] := IIFNIL( "W/N,W+/N,W+/R,GR+/N,G+/N", cColor ) - oEdit[E_MODE] := EDIT_VIEW + nEdit := ED_New( nLength, 4, IIFNIL(s_nESize, nSize), nEscape ) + IF nEdit >= 0 + oEdit := ARRAY( E_STRUCT_LEN ) + oEdit[E_EDIT] := nEdit - ED_Config( nEdit, nTop, nLeft, nBottom, nRight, 0, 0 ) - ENDIF + oEdit[E_TOP] := nTop + oEdit[E_LEFT] := nLeft + oEdit[E_BOTTOM] := nBottom + oEdit[E_RIGHT] := nRight + oEdit[E_LINELEN] := nLength + oEdit[E_FRAME] := IIFNIL( B_DOUBLE, cFrame ) + oEdit[E_TITLE] := cTitle + oEdit[E_COLOR] := IIFNIL( "W/N,W+/N,W+/R,GR+/N,G+/N", cColor ) + oEdit[E_MODE] := EDIT_VIEW -RETURN oEdit + ED_Config( nEdit, nTop, nLeft, nBottom, nRight, 0, 0 ) + ENDIF + + RETURN oEdit //--------------------------------------------------------- //03-06-93 09:16pm // -EXPORT PROCEDURE EditorKill( oEdit ) +PROCEDURE EditorKill( oEdit ) - ED_Kill( oEdit[E_EDIT] ) - MEMORY( -1 ) + ED_Kill( oEdit[E_EDIT] ) + MEMORY( -1 ) -RETURN + RETURN //--------------------------------------------------------- //96-02-29 22:22 // -EXPORT PROCEDURE EditorUnlock( oEdit ) +PROCEDURE EditorUnlock( oEdit ) - ED_Unlock( oEdit[E_EDIT] ) + ED_Unlock( oEdit[E_EDIT] ) -RETURN + RETURN //--------------------------------------------------------- //03-06-93 10:20pm // -EXPORT FUNCTION EditorCargo( oEdit, xCargo ) -LOCAL _xCargo:=oEdit[E_CARGO] +FUNCTION EditorCargo( oEdit, xCargo ) + LOCAL _xCargo:=oEdit[E_CARGO] - IFANY( xCargo ) - oEdit[E_CARGO] := xCargo - ENDIF + IF PCount() >= 2 + oEdit[E_CARGO] := xCargo + ENDIF -RETURN _xCargo + RETURN _xCargo //--------------------------------------------------------- //19-07-93 01:08am // -EXPORT FUNCTION EditorTitle( oEdit, cTitle ) -LOCAL _cTitle:=oEdit[E_TITLE] +FUNCTION EditorTitle( oEdit, cTitle ) + LOCAL _cTitle := oEdit[ E_TITLE ] - IFANY( cTitle ) - oEdit[E_TITLE] := cTitle - ENDIF + IF ISCHARACTER( cTitle ) + oEdit[ E_TITLE ] := cTitle + ENDIF -RETURN _cTitle + RETURN _cTitle //--------------------------------------------------------- //04-06-93 02:18am @@ -147,60 +138,60 @@ RETURN _cTitle // EDIT_EDIT - full edit mode // EDIT_VIEW - view only mode (no changes in text are allowed) // -EXPORT FUNCTION EditorMode( oEdit, lMode ) -LOCAL _lMode:=oEdit[E_MODE] +FUNCTION EditorMode( oEdit, lMode ) + LOCAL _lMode := oEdit[ E_MODE ] - IFANY( lMode ) - oEdit[E_MODE] := lMode - ENDIF + IF ISLOGICAL( lMode ) + oEdit[ E_MODE ] := lMode + ENDIF -RETURN _lMode + RETURN _lMode //--------------------------------------------------------- //28-05-92 09:31am // -EXPORT FUNCTION EditorSize( nSize ) -LOCAL _nSize:=nESize +FUNCTION EditorSize( nSize ) + LOCAL _nSize := s_nESize - IF nSize != NIL - nESize := nSize - ENDIF + IF nSize != NIL + s_nESize := nSize + ENDIF -RETURN _nSize + RETURN _nSize //--------------------------------------------------------- //28-02-92 10:57pm // // Appends passed text to the text already stored in editor // -EXPORT PROCEDURE EditorAddText( oEdit, cText ) +PROCEDURE EditorAddText( oEdit, cText ) - ED_AddText( oEdit[E_EDIT], cText ) + ED_AddText( oEdit[ E_EDIT ], cText ) -RETURN + RETURN //--------------------------------------------------------- //05-03-92 10:21pm // // Sets new text in editor // -EXPORT PROCEDURE EditorSetText( oEdit, cText ) +PROCEDURE EditorSetText( oEdit, cText ) - ED_SetText( oEdit[E_EDIT], cText ) + ED_SetText( oEdit[ E_EDIT ], cText ) -RETURN + RETURN //--------------------------------------------------------- //05-03-92 10:23pm // // Inserts passed text into editor starting from passed line number // -EXPORT PROCEDURE EditorInsText( oEdit, cText, nLine ) -LOCAL nNum:=IIFNIL( ED_LCount(oEdit[E_EDIT]), nLine ) +PROCEDURE EditorInsText( oEdit, cText, nLine ) + LOCAL nNum := IIFNIL( ED_LCount(oEdit[E_EDIT]), nLine ) - ED_InsText( oEdit[E_EDIT], cText, nNum ) + ED_InsText( oEdit[ E_EDIT ], cText, nNum ) -RETURN + RETURN //--------------------------------------------------------- //02-03-92 07:53pm @@ -211,34 +202,30 @@ RETURN // nCarret - specifies if soft carriage return (141/10) should be replaced by // hard carriage returns (13/10) // -EXPORT FUNCTION EditorGetText( oEdit, nUpper, nCarret ) +FUNCTION EditorGetText( oEdit, nUpper, nCarret ) - IFNIL( nUpper ) - nUpper := EDIT_SAME - ENDIF - IFNIL( nCarret ) - nCarret := EDIT_HARD - ENDIF + DEFAULT nUpper TO EDIT_SAME + DEFAULT nCarret TO EDIT_HARD -RETURN ED_GetText( oEdit[E_EDIT], nUpper, nCarret ) + RETURN ED_GetText( oEdit[E_EDIT], nUpper, nCarret ) //--------------------------------------------------------- //04-03-92 02:35pm // // Returns the line count stored in editor // -EXPORT FUNCTION EditorLCount( oEdit ) +FUNCTION EditorLCount( oEdit ) -RETURN ED_LCount( oEdit[E_EDIT] ) + RETURN ED_LCount( oEdit[E_EDIT] ) //--------------------------------------------------------- //06-03-92 07:09pm // // Returns the specified line of text from the editor // -EXPORT FUNCTION EditorGetLine( oEdit, nLine ) +FUNCTION EditorGetLine( oEdit, nLine ) -RETURN ED_GetLine( oEdit[E_EDIT], nLine ) + RETURN ED_GetLine( oEdit[E_EDIT], nLine ) //--------------------------------------------------------- //06-03-92 07:10pm @@ -252,9 +239,9 @@ RETURN ED_GetLine( oEdit[E_EDIT], nLine ) // cLine :=EditorNextLine( oEdit ) // NEXT // -EXPORT FUNCTION EditorNextLine( oEdit ) +FUNCTION EditorNextLine( oEdit ) -RETURN ED_GetNext(oEdit[E_EDIT]) + RETURN ED_GetNext(oEdit[E_EDIT]) //--------------------------------------------------------- //03-06-93 10:11pm @@ -270,69 +257,69 @@ RETURN ED_GetNext(oEdit[E_EDIT]) // nEscape - the code of color escape character // lSave - specifies if edited file can be saved under a different name // -EXPORT FUNCTION EditorFile( xInput, cOutput, nLineLen, nHelp, ; - lPrint, lConv, nEscape, lSave ) -LOCAL nHandle, nLen, oEdit, bF2, bF8, oHelp, lSaved:=.F., lClose:=.F. -LOCAL nSize +FUNCTION EditorFile( xInput, cOutput, nLineLen, nHelp, ; + lPrint, lConv, nEscape, lSave ) + LOCAL nHandle, nLen, oEdit, bF2, bF8, oHelp, lSaved:=.F., lClose:=.F. + LOCAL nSize - IF lSave == NIL - lSave := .T. - ENDIF - IF ISCHARACTER(xInput) - nHandle := FOPEN( xInput ) - lClose := .T. - ELSE - nHandle := xInput - ENDIF + IF lSave == NIL + lSave := .T. + ENDIF + IF ISCHARACTER(xInput) + nHandle := FOPEN( xInput ) + lClose := .T. + ELSE + nHandle := xInput + ENDIF - IF nHandle > 0 - nLen := MAX( FileLength( nHandle ), nESize ) - ELSE - nLen := nESize - ENDIF + IF nHandle > 0 + nLen := MAX( FileLength( nHandle ), s_nESize ) + ELSE + nLen := s_nESize + ENDIF - nSize := IIF( nLen < 8192, nLen*2, INT(nLen*1.5) ) - oEdit := EditorNew( 01,00,23,79, nLineLen, "--- ", cOutput, , ; - nSize, nEscape ) + nSize := IIF( nLen < 8192, nLen*2, INT(nLen*1.5) ) + oEdit := EditorNew( 01,00,23,79, nLineLen, "--- ", cOutput, , ; + nSize, nEscape ) - IF nHandle > 0 - ED_ReadText( oEdit[E_EDIT], nHandle, 0, nLen, ; - IIF( lConv==NIL, .F., lConv ) ) - IF lClose - FCLOSE( nHandle ) - ENDIF - ELSE - EditorSetText( oEdit, " " ) - ENDIF + IF nHandle > 0 + ED_ReadText( oEdit[E_EDIT], nHandle, 0, nLen, ; + IIF( lConv==NIL, .F., lConv ) ) + IF lClose + FCLOSE( nHandle ) + ENDIF + ELSE + EditorSetText( oEdit, " " ) + ENDIF - EditorCargo( oEdit, cOutput ) + EditorCargo( oEdit, cOutput ) -// SAVELINE 24 TO oHelp WITH 80, ColorHelp( ,COLOR_EXTEND ) -// IF lSave -// DisplayHelp( 73 ) //F2-save -// bF2 := SETKEY( K_F2, {|oE| lSaved:=EditorSave(oE)} ) -// ENDIF -// IF lPrint != NIL .AND. lPrint -// DisplayHelp( 74 ) //F8-print -// bF8 := SETKEY( K_F8, {|oE| EditorPrint(oE)} ) -// ENDIF +// SAVELINE 24 TO oHelp WITH 80, ColorHelp( ,COLOR_EXTEND ) +// IF lSave +// DisplayHelp( 73 ) //F2-save +// bF2 := SETKEY( K_F2, {|oE| lSaved:=EditorSave(oE)} ) +// ENDIF +// IF lPrint != NIL .AND. lPrint +// DisplayHelp( 74 ) //F8-print +// bF8 := SETKEY( K_F8, {|oE| EditorPrint(oE)} ) +// ENDIF - lSaved :=EditorEdit( oEdit, EDIT_EDIT, .F., nHelp ) - EditorKill( oEdit ) + lSaved := EditorEdit( oEdit, EDIT_EDIT, .F., nHelp ) + EditorKill( oEdit ) - IF lSave - SETKEY( K_F2, bF2 ) - ENDIF + IF lSave + SETKEY( K_F2, bF2 ) + ENDIF // IF lPrint != NIL .AND. lPrint -// SETKEY( K_F8, bF8 ) +// SETKEY( K_F8, bF8 ) // ENDIF // RESTLINE FROM oHelp // FT_IDLE() - MEMORY(-1) + MEMORY(-1) -RETURN lSaved + RETURN lSaved //--------------------------------------------------------- //06-07-93 06:05pm @@ -346,10 +333,10 @@ RETURN lSaved // lConv - specifies if some unprintable characters should be converted // (NOTE: it was used to allow display charcters with ASCII code 27 and 26) // -EXPORT FUNCTION EditorRead( oEditor, nHandle, nOffset, nLen, lConv ) +FUNCTION EditorRead( oEditor, nHandle, nOffset, nLen, lConv ) -RETURN ED_ReadText( oEditor[E_EDIT], nHandle, nOffset, nLen, ; - IIF( lConv==NIL, .T., lConv ) ) + RETURN ED_ReadText( oEditor[E_EDIT], nHandle, nOffset, nLen, ; + IIF( lConv==NIL, .T., lConv ) ) //--------------------------------------------------------- //03-06-93 08:31pm @@ -361,118 +348,118 @@ RETURN ED_ReadText( oEditor[E_EDIT], nHandle, nOffset, nLen, ; // lFrame - specifies if the frame around the editor should be displayed // nHelp - the help index into help subsystem // -EXPORT FUNCTION EditorEdit( oEdit, lEdit, lFrame, nHelp ) -LOCAL nRow:=0, nCol:=0, nKey, cLine, bKey, oBox, nCursor, nState -LOCAL nTop, nLeft, nBottom, nRight -LOCAL lSaveAllowed, lSaved:=.F. +FUNCTION EditorEdit( oEdit, lEdit, lFrame, nHelp ) + LOCAL nRow := 0, nCol := 0, nKey, cLine, bKey, oBox, nCursor, nState + LOCAL nTop, nLeft, nBottom, nRight + LOCAL lSaveAllowed, lSaved := .F. //HELPSAVE( IIF(nHelp==NIL, H_EDITOR, nHelp ) ) - oBox := SAVEBOX( oEdit[E_TOP], oEdit[E_LEFT], ; - oEdit[E_BOTTOM], oEdit[E_RIGHT], ; - oEdit[E_COLOR], oEdit[E_FRAME], oEdit[E_TITLE], .F. ) + oBox := SAVEBOX( oEdit[E_TOP], oEdit[E_LEFT], ; + oEdit[E_BOTTOM], oEdit[E_RIGHT], ; + oEdit[E_COLOR], oEdit[E_FRAME], oEdit[E_TITLE], .F. ) - lInsert := SET( _SET_INSERT ) -// SayInsert() - nCursor := SetCursor( IIF(lInsert, SC_NORMAL, SC_SPECIAL1) ) - IFANY( lEdit ) - oEdit[E_MODE] := lEdit - ENDIF - lSaveAllowed :=( SETKEY(K_F2) == NIL ) -// IF lSaveAllowed -// DisplayHelp( 73 ) //F2-save -// ENDIF + s_lInsert := SET( _SET_INSERT ) +// SayInsert() + nCursor := SetCursor( IIF(s_lInsert, SC_NORMAL, SC_SPECIAL1) ) + IF ISLOGICAL( lEdit ) + oEdit[E_MODE] := lEdit + ENDIF + lSaveAllowed :=( SETKEY(K_F2) == NIL ) +// IF lSaveAllowed +// DisplayHelp( 73 ) //F2-save +// ENDIF - nTop := oEdit[E_TOP] +1 - nLeft := oEdit[E_LEFT] +1 - nBottom := oEdit[E_BOTTOM] -1 - nRight := oEdit[E_RIGHT] -1 - IF lFrame != NIL .AND. !lFrame - nLeft-- - nBottom++ - nRight++ - ENDIF - nState := oEdit[E_RIGHT] -8 + nTop := oEdit[ E_TOP ] + 1 + nLeft := oEdit[ E_LEFT ] + 1 + nBottom := oEdit[ E_BOTTOM ] - 1 + nRight := oEdit[ E_RIGHT ] - 1 + IF lFrame != NIL .AND. ! lFrame + nLeft-- + nBottom++ + nRight++ + ENDIF + nState := oEdit[ E_RIGHT ] - 8 - /* It uses static variable 'oEditor' to speed access to the editor - If this function is called recursively then we have to push - currently used editor on the stack - */ - EditorPush( oEdit ) + /* It uses static variable 'oEditor' to speed access to the editor + If this function is called recursively then we have to push + currently used editor on the stack + */ + EditorPush( oEdit ) - /* The position of the editor can be changed (in a windowed environment) - then it sets current position of editor. - It also sets the current editor as the working one. This means that - all next ED_* functions will used the editor handle specified - by oEditor[E_EDIT] - it is tricky solution to speed access (we - don't need to pass the editor handle with every ED_*() call - (Well... this editor was created when AT-286 computers worked in - its full glory :) - */ - ED_Config( oEditor[E_EDIT], nTop, nLeft, nBottom, nRight, 0, 0 ) + /* The position of the editor can be changed (in a windowed environment) + then it sets current position of editor. + It also sets the current editor as the working one. This means that + all next ED_* functions will used the editor handle specified + by oEditor[E_EDIT] - it is tricky solution to speed access (we + don't need to pass the editor handle with every ED_*() call + (Well... this editor was created when AT-286 computers worked in + its full glory :) + */ + ED_Config( s_oEditor[ E_EDIT ], nTop, nLeft, nBottom, nRight, 0, 0 ) - DO WHILE .T. - nRow := ED_Stabilize() //displays all visible lines - // It don't uses incremantal stabilization for performance reasons + DO WHILE .T. + nRow := ED_Stabilize() //displays all visible lines + // It don't uses incremantal stabilization for performance reasons - IF nRow != ED_Row() - nRow := ED_Row() - @ oEditor[E_TOP], nState SAY STRZERO( nRow,4 ) - ENDIF - IF nCol != ED_Col() - nCol := ED_Col() - @ oEditor[E_TOP], nState+5 SAY STRZERO( nCol,3 ) - ENDIF - SETPOS( nTop+ED_WinRow(), nLeft+ED_WinCol() ) + IF nRow != ED_Row() + nRow := ED_Row() + @ s_oEditor[ E_TOP ], nState SAY STRZERO( nRow, 4 ) + ENDIF + IF nCol != ED_Col() + nCol := ED_Col() + @ s_oEditor[ E_TOP ], nState + 5 SAY STRZERO( nCol, 3 ) + ENDIF + SETPOS( nTop + ED_WinRow(), nLeft + ED_WinCol() ) -// nKey := WaitForKey() - nKey := INKEY(0) +// nKey := WaitForKey() + nKey := INKEY( 0 ) - DO CASE - CASE( nKey>=32 .AND. nKey<256 ) + DO CASE + CASE nKey >= 32 .AND. nKey < 256 + IF oEdit[ E_MODE ] + ED_PutChar( nKey, s_lInsert ) + ENDIF + + CASE nKey == K_F2 .AND. lSaveAllowed + lSaved := EditorSave( s_oEditor ) //save the copy of edited buffer + + CASE EditorMove( nKey ) + + CASE nKey == K_DOWN + IF ! ED_Down() + SCROLL( nTop, nLeft, nBottom, nRight, 1 ) + ENDIF + + CASE nKey == K_UP + IF ! ED_Up() + SCROLL( nTop, nLeft, nBottom, nRight, -1 ) + ENDIF + + CASE nKey == K_ESC + EXIT + + OTHERWISE + bKey := SETKEY( nKey ) + IF ISBLOCK( bKey ) + EVAL( bKey, s_oEditor ) + ELSE IF oEdit[E_MODE] - ED_PutChar( nKey, lInsert ) + EditorKeys( nKey ) ENDIF + ENDIF + ENDCASE + ENDDO - CASE( nKey == K_F2 .AND. lSaveAllowed ) - lSaved := EditorSave( oEditor ) //save the copy of edited buffer + EditorPop() //restore the proviously used editor - CASE( EditorMove( nKey ) ) + SetCursor( nCursor ) + RESTBOX( oBox ) +// HELPREST. - CASE( nKey == K_DOWN ) - IF !ED_Down() - SCROLL( nTop, nLeft, nBottom, nRight, 1 ) - ENDIF +// FT_IDLE() + MEMORY(-1) - CASE( nKey == K_UP ) - IF !ED_Up() - SCROLL( nTop, nLeft, nBottom, nRight, -1 ) - ENDIF - - CASE( nKey == K_ESC ) - EXIT - - OTHERWISE - bKey := SETKEY( nKey ) - IFNIL( bKey ) - IF oEdit[E_MODE] - EditorKeys( nKey ) - ENDIF - ELSE - EVAL( bKey, oEditor ) - ENDIF - ENDCASE - ENDDO - - EditorPop() //restore the proviously used editor - - SetCursor( nCursor ) - RESTBOX( oBox ) -// HELPREST. - -// FT_IDLE() - MEMORY(-1) - -RETURN lSaved + RETURN lSaved // @@ -483,89 +470,63 @@ RETURN lSaved //03-06-93 08:35pm // STATIC PROCEDURE EditorKeys( nKey ) -LOCAL i + LOCAL i - DO CASE - CASE( nKey == K_CTRL_Y ) - ED_DelLine() + DO CASE + CASE nKey == K_CTRL_Y + ED_DelLine() - CASE( nKey == K_CTRL_T ) - ED_DelWord() + CASE nKey == K_CTRL_T + ED_DelWord() - CASE( nKey == K_DEL ) - ED_DelChar() + CASE nKey == K_DEL + ED_DelChar() - CASE( nKey == K_BS ) - ED_BSpace( lInsert ) + CASE nKey == K_BS + ED_BSpace( s_lInsert ) - CASE( nKey == K_RETURN ) - ED_Return( lInsert ) + CASE nKey == K_RETURN + ED_Return( s_lInsert ) - CASE( nKey == K_TAB ) -// ED_Tab( lInsert ) - FOR i := 1 TO 4 - ED_PutChar( 32, lInsert ) - NEXT + CASE nKey == K_TAB +// ED_Tab( s_lInsert ) + FOR i := 1 TO 4 + ED_PutChar( 32, s_lInsert ) + NEXT - CASE( nKey == K_INS ) - lInsert := !lInsert - SET( _SET_INSERT, lInsert ) - SetCursor( IIF(lInsert, SC_NORMAL, SC_SPECIAL1) ) -// SayInsert() + CASE nKey == K_INS + s_lInsert := !s_lInsert + SET( _SET_INSERT, s_lInsert ) + SetCursor( IIF(s_lInsert, SC_NORMAL, SC_SPECIAL1) ) +// SayInsert() - ENDCASE + ENDCASE -RETURN + RETURN //--------------------------------------------------------- //04-06-93 02:06am // STATIC FUNCTION EditorMove( nKey ) -LOCAL lMoved:=.T. + LOCAL lMoved := .T. - DO CASE - CASE( nKey == K_PGDN ) - ED_PgDown() + DO CASE + CASE nKey == K_PGDN ; ED_PgDown() + CASE nKey == K_PGUP ; ED_PgUp() + CASE nKey == K_CTRL_PGUP ; ED_Top() + CASE nKey == K_CTRL_PGDN ; ED_Bottom() + CASE nKey == K_RIGHT ; ED_Right() + CASE nKey == K_LEFT ; ED_Left() + CASE nKey == K_HOME ; ED_Home() + CASE nKey == K_CTRL_HOME ; ED_Home() + CASE nKey == K_END ; ED_End() + CASE nKey == K_CTRL_END ; ED_End() + CASE nKey == K_CTRL_RIGHT // ; ED_NWord() //there are some problems with it + CASE nKey == K_CTRL_LEFT ; ED_PWord() + OTHERWISE ; lMoved := .F. + ENDCASE - CASE( nKey == K_PGUP ) - ED_PgUp() - - CASE( nKey == K_CTRL_PGUP ) - ED_Top() - - CASE( nKey == K_CTRL_PGDN ) - ED_Bottom() - - CASE( nKey == K_RIGHT ) - ED_Right() - - CASE( nKey == K_LEFT ) - ED_Left() - - CASE( nKey == K_HOME ) - ED_Home() - - CASE( nKey == K_CTRL_HOME ) - ED_Home() - - CASE( nKey == K_END ) - ED_End() - - CASE( nKey == K_CTRL_END ) - ED_End() - - CASE( nKey == K_CTRL_RIGHT ) -// ED_NWord() //there are some problems with it - - CASE( nKey == K_CTRL_LEFT ) - ED_PWord() - - OTHERWISE - lMoved := .F. - - ENDCASE - -RETURN lMoved + RETURN lMoved //--------------------------------------------------------- @@ -573,121 +534,121 @@ RETURN lMoved // STATIC PROCEDURE EditorPush( oEdit ) - ED_Push() - AADD( aEdit, oEditor ) - oEditor := oEdit + ED_Push() + AADD( s_aEdit, s_oEditor ) + s_oEditor := oEdit -RETURN + RETURN //--------------------------------------------------------- //03-06-93 09:12pm // STATIC PROCEDURE EditorPop( ) -LOCAL nLen + LOCAL nLen - nLen := LEN( aEdit ) - oEditor := aEdit[ nLen ] - ASIZE( aEdit, nLen-1 ) - ED_Pop() + nLen := LEN( s_aEdit ) + s_oEditor := s_aEdit[ nLen ] + ASIZE( s_aEdit, nLen - 1 ) + ED_Pop() -RETURN + RETURN //--------------------------------------------------------- //03-06-93 10:23pm // STATIC FUNCTION EditorSave( oEdit ) -LOCAL nHandle, cFile, cNew + LOCAL nHandle, cFile, cNew - cFile := EditorCargo(oEdit) - IF EMPTY(cFile) - cFile := "testfile.txt" //GetFileName( 10, 10 ) - ENDIF + cFile := EditorCargo( oEdit ) + IF EMPTY( cFile ) + cFile := "testfile.txt" //GetFileName( 10, 10 ) + ENDIF - IF EMPTY(cFile) - RETURN .F. - ENDIF + IF EMPTY( cFile ) + RETURN .F. + ENDIF /* - WorkStart( 75 ) - IF FILE(cFile) - cNew := FileExtension( cFile, "bak" ) - DELETEFILE( cNew ) - nHandle := RENAMEFILE( cFile, cNew ) - IF nHandle < 0 - FileError( cFile, -nHandle ) - WorkEnd() + WorkStart( 75 ) + IF hb_FileExists( cFile ) + cNew := FileExtension( cFile, "bak" ) + DELETEFILE( cNew ) + nHandle := RENAMEFILE( cFile, cNew ) + IF nHandle < 0 + FileError( cFile, -nHandle ) + WorkEnd() - RETURN .F. - ENDIF - ENDIF + RETURN .F. + ENDIF + ENDIF */ - nHandle := FCREATE( cFile, FC_NORMAL ) - IF nHandle > 0 - FWRITE( nHandle, EditorGetText(oEdit) ) + nHandle := FCREATE( cFile, FC_NORMAL ) + IF nHandle > 0 + FWRITE( nHandle, EditorGetText( oEdit ) ) - FCLOSE( nHandle ) -// ELSE -// FileError( cFile, FERROR() ) - ENDIF -// WorkEnd() + FCLOSE( nHandle ) +// ELSE +// FileError( cFile, FERROR() ) + ENDIF +// WorkEnd() -RETURN nHandle > 0 + RETURN nHandle > 0 //--------------------------------------------------------- //19-08-93 02:05am // /* STATIC PROCEDURE EditorPrint( oEdit ) -LOCAL oParm + LOCAL oParm - IF PrintReady() - PrintNewQue() - PrintSetHead( AppsOwner(), , "-", PRN_OFF ) + IF PrintReady() + PrintNewQue() + PrintSetHead( AppsOwner(), , "-", PRN_OFF ) - PrintAddJob( oEdit, PRN_EDITOR ) - PrintJob(PRN_OFF) - PrintDelQue() - ENDIF + PrintAddJob( oEdit, PRN_EDITOR ) + PrintJob(PRN_OFF) + PrintDelQue() + ENDIF -RETURN + RETURN */ //--------------------------------------------------------- *09/29/91 08:40pm * -EXPORT FUNCTION SaveBox( top,left,bott,right, kolor, patt, head, shadow ) -LOCAL cBox, cClr, nBottom,nRight +FUNCTION SaveBox( top, left, bott, right, kolor, patt, head, shadow ) + LOCAL cBox, cClr, nBottom, nRight - IF PCOUNT() > 4 - cClr := SETCOLOR(kolor) - cBox := SAVESCREEN(top,left,bott,right) -// cBox := BoxShadow(top,left,bott,right, , patt, head, shadow) - @ top, left, bott, right BOX patt -// nBottom := bott+1 -// nRight := right+1 - ELSE - cClr := SETCOLOR() - cBox := SAVESCREEN(top,left,bott,right) - nBottom := bott - nRight := right - ENDIF + IF PCOUNT() > 4 + cClr := SETCOLOR( kolor ) + cBox := SAVESCREEN( top, left, bott, right) +// cBox := BoxShadow( top, left, bott, right, , patt, head, shadow ) + @ top, left, bott, right BOX patt +// nBottom := bott + 1 +// nRight := right + 1 + ELSE + cClr := SETCOLOR() + cBox := SAVESCREEN( top, left, bott, right ) + nBottom := bott + nRight := right + ENDIF -RETURN {top,left,nBottom,nRight, cBox, cClr} + RETURN { top, left, nBottom, nRight, cBox, cClr } //--------------------------------------------------------- *09/29/91 08:42pm * -EXPORT PROCEDURE RestBox( oBox ) +PROCEDURE RestBox( oBox ) - RESTSCREEN( oBox[1], oBox[2], oBox[3], oBox[4], oBox[5] ) - SETCOLOR( oBox[6] ) + RESTSCREEN( oBox[ 1 ], oBox[ 2 ], oBox[ 3 ], oBox[ 4 ], oBox[ 5 ] ) + SETCOLOR( oBox[ 6 ] ) -RETURN + RETURN STATIC FUNCTION FileLength( nH ) -LOCAL nPos:=FSEEK( nH, 0, FS_RELATIVE ) -LOCAL nLen:=FSEEK( nH, 0, FS_END ) + LOCAL nPos := FSEEK( nH, 0, FS_RELATIVE ) + LOCAL nLen := FSEEK( nH, 0, FS_END ) - FSEEK( nH, nPos, FS_SET ) + FSEEK( nH, nPos, FS_SET ) -RETURN nLen + RETURN nLen diff --git a/harbour/examples/pe/editorlo.c b/harbour/examples/pe/editorlo.c index 23d1b63529..aa6aeb66e1 100644 --- a/harbour/examples/pe/editorlo.c +++ b/harbour/examples/pe/editorlo.c @@ -293,7 +293,7 @@ static void AddText( int nEdit, const char * adres ) dl = strlen( adres ); dlold = E->text_length; if( dlold == 2 ) - dlold =0; /* if current text buffer contains CRLF only then discard it */ + dlold = 0; /* if current text buffer contains CRLF only then discard it */ /* TODO: add reallocation of text buffer */ @@ -327,8 +327,8 @@ HB_FUNC( ED_ADDTEXT ) /* Moves text from one location into another */ -static void MoveText ( EDITOR * E, long int source, long int dest, - long int ilb ) +static void MoveText( EDITOR * E, long int source, long int dest, + long int ilb ) { long int diff; @@ -420,7 +420,7 @@ static long int InsText( EDITOR * E, char * adres, long int line ) /* TODO: add reallocation of text buffer */ - if( dl1 < (E->buffer_size - 10) ) + if( dl1 < ( E->buffer_size - 10 ) ) { /* there is some free space in text buffer */ @@ -1169,7 +1169,7 @@ static void Down( EDITOR * E ) else { /* the new line is already visible */ - if( E->line_number <= (E->bottom - E->top + 1) ) + if( E->line_number <= ( E->bottom - E->top + 1 ) ) E->last_display = E->last_line; /* the total number of lines is smaller then rows to display */ } } @@ -1527,9 +1527,9 @@ HB_FUNC( ED_LEFT ) */ static void Right( EDITOR * E ) { - if( E->cursor_col < (E->right - E->left) ) + if( E->cursor_col < ( E->right - E->left ) ) { /* inside the window */ - if( (E->first_col + E->cursor_col) < E->line_length ) + if( ( E->first_col + E->cursor_col ) < E->line_length ) E->cursor_col++; /* else no wrap allowed */ } @@ -1662,7 +1662,7 @@ static void FormatParagraph ( EDITOR * E ) while( tmp ) { source = E->current_line + ( long int )( tmp - pom - 1 ); - MoveText ( E, source + 2, source + 1, E->buffer_size - source + 2 ); + MoveText( E, source + 2, source + 1, E->buffer_size - source + 2 ); E->begin[ ( unsigned int ) ( source + 1 ) ] = ' '; rdl = format_line( E, SOFT, 0 ); @@ -2106,7 +2106,7 @@ static int format_line( EDITOR * E, int Karetka, unsigned int LineDl ) /* copy maximum allowed bytes form the line into temporary buffer */ strncpy( pom, E->begin + ( unsigned int ) E->current_line, ( int ) ( E->line_length + 10 + rdl ) ); - pom[ ( unsigned int )(E->line_length + rdl) ] = '\x0'; + pom[ ( unsigned int ) ( E->line_length + rdl ) ] = '\x0'; /* find the last space where the line can be splitted */ p = strrchr( pom, ' ' ); @@ -2124,7 +2124,7 @@ static int format_line( EDITOR * E, int Karetka, unsigned int LineDl ) } j = ( long int ) ( E->current_line + podz ); - MoveText ( E, j, j + 2, E->buffer_size - j - 2 ); + MoveText( E, j, j + 2, E->buffer_size - j - 2 ); /* replace with separators */ E->begin[ ( unsigned int ) j + 0 ] = ( char ) Karetka; @@ -2486,7 +2486,7 @@ static void Return( int INS ) End( s_ED ); ii = s_ED->current_line + ( long int ) s_ED->first_col + ( long int ) s_ED->cursor_col; - MoveText ( s_ED, ii, ii + 2, s_ED->buffer_size - ii - 2 ); + MoveText( s_ED, ii, ii + 2, s_ED->buffer_size - ii - 2 ); s_ED->begin[ ( unsigned int ) ii + 0 ] = '\r'; s_ED->begin[ ( unsigned int ) ii + 1 ] = '\n'; diff --git a/harbour/examples/pe/pe.prg b/harbour/examples/pe/pe.prg index 86249c19e9..1ba662a670 100644 --- a/harbour/examples/pe/pe.prg +++ b/harbour/examples/pe/pe.prg @@ -2,28 +2,25 @@ * $Id$ */ -#define EDIT_EDIT .T. -#define EDIT_VIEW .F. - PROCEDURE Main( cFile ) LOCAL cText - LOCAL lMode := EDIT_EDIT + LOCAL lEdit := .T. IF cFile == NIL cFile := "license.txt" - IF !File( cFile ) + IF ! hb_FileExsist( cFile ) cFile := "../../../license.txt" ENDIF - lMode := EDIT_VIEW + lEdit := .F. ENDIF - + cText := MemoRead( cFile ) - cText := MemoEditor( cText, 0, 0, MaxRow(), MaxCol(), lMode ) + cText := MemoEditor( cText, 0, 0, MaxRow(), MaxCol(), lEdit ) MemoWrit( "output.txt", cText ) - + RETURN -STATIC FUNCTION MEMOEDITOR( cText, nTop, nLeft, nBottom, nRight, lMode ) +STATIC FUNCTION MEMOEDITOR( cText, nTop, nLeft, nBottom, nRight, lEdit ) LOCAL oED /* NOTE: In current design of editor it doesn't reallocate the memory @@ -32,7 +29,7 @@ STATIC FUNCTION MEMOEDITOR( cText, nTop, nLeft, nBottom, nRight, lMode ) oED := EditorNew( nTop, nLeft, nBottom, nRight, 254, , , , Len( cText ) * 2, 168 ) IF oED != NIL EditorSetText( oED, cText ) - EditorEdit( oED, lMode, .T. ) + EditorEdit( oED, lEdit, .T. ) cText := EditorGetText( oED ) EditorKill( oED ) ELSE