OSDN Git Service

* WorkBackup: 2015/08/04(Tue) AM 05:54
authorKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Mon, 3 Aug 2015 20:54:30 +0000 (05:54 +0900)
committerKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Mon, 3 Aug 2015 20:54:30 +0000 (05:54 +0900)
libedittext/drd64_libedittext_linectrl.c
libedittext/drd64_libedittext_lineedit.c
libedittext/drd64_libedittext_undoedit.c
libedittext/test_libedittext_undoedit.c

index 20bed24..e756be9 100644 (file)
@@ -64,8 +64,15 @@ int
        assert( NULL != p_line );
 
        if( 1 == p_tinfo->dw_maxline )  {
-               LibEditText_LineEdit_ClearLine( p_tinfo, p_line, dw_line );
-               return 0x00;
+               i_result        = LibEditText_LineEdit_ClearLine( p_tinfo, p_line, dw_line );
+               if( 0x00 != i_result )  {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
+                                       LOCATION( FUNCID_LibEditText_LineCtrl_DeleteLine ),
+                                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+               }
+
+               return i_result;
        }
 
        LibEditText_CursorCtrl_PreProc_DeleteLine( p_tinfo, dw_line );
@@ -74,8 +81,19 @@ int
        LibEditText_Section_DeleteLine( p_tinfo, dw_line );
 
        // Data Clear ---
-       pb_data = p_tinfo->pb_text + p_line->dw_start;
+       /*pb_data       = p_tinfo->pb_text + p_line->dw_start;
        memset( pb_data, 0x00, p_line->dw_linelen );
+       p_line->dw_strlen       = 0;*/
+       i_result        = LibEditText_LineEdit_ClearLine( p_tinfo, p_line, dw_line );
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_LineCtrl_DeleteLine ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return i_result;
+       }
+
        p_line->dw_strlen       = 0;
 
        // Remove Link LineInfo ---
@@ -99,7 +117,7 @@ int
        i_result        = LibEditText_LineInfo_RemoveSortChain( p_tinfo, p_line );
        if( 0x00 != i_result )  {
                LibBrownie_Error_SetErrorInfo(
-                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
                                LOCATION( FUNCID_LibEditText_LineCtrl_DeleteLine ),
                                errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
 
@@ -110,7 +128,7 @@ int
        i_result        = LibEditText_LineInfo_SetEmptyLineChain( p_tinfo, p_line );
        if( 0x00 != i_result )  {
                LibBrownie_Error_SetErrorInfo(
-                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x04 ),
                                LOCATION( FUNCID_LibEditText_LineCtrl_DeleteLine ),
                                errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
 
@@ -144,7 +162,7 @@ int
                                                        LIBEDITTEXT_UNDOCMD_DELETELINE, 0x00, NULL, 0 );
                if( 0x00 != i_result )  {
                        LibBrownie_Error_SetErrorInfo(
-                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x05 ),
                                        LOCATION( FUNCID_LibEditText_LineCtrl_DeleteLine ),
                                        errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
        
index b26cae0..8d474cc 100644 (file)
@@ -58,7 +58,9 @@ int
        assert( NULL != p_tinfo );
        assert( NULL != p_line );
 
-       if(( INVALID_LINE == p_line->dw_before ) && ( INVALID_LINE == p_line->dw_next ))
+       /*if(( INVALID_LINE == p_line->dw_before ) && ( INVALID_LINE == p_line->dw_next ))
+               { dw_len        = p_line->dw_strlen; }*/
+       if( INVALID_LINE == p_line->dw_next )
                { dw_len        = p_line->dw_strlen; }
        else    {
                if( 1 == p_line->dw_strlen )    { return 0x00; }
index d9a18c4..63d77e2 100644 (file)
@@ -116,6 +116,7 @@ int
                        DWord                                   dw_pos )
 {
        int                                             i_result        = 0x00;
+       DWord                                   dw_linfoid;
        LibEditText_LineInfo    *p_line         = NULL;
        
        if( dw_line < p_tinfo->dw_maxline )
@@ -129,15 +130,18 @@ int
        else if( LIBEDITTEXT_UNDOCMD_DELETELINE == p_udinfo->b_cmd )    {
                if( dw_line == p_tinfo->dw_maxline )    {
                        assert( INVALID_LINE != p_tinfo->dw_line_end );
-                       i_result        = LibEditText_LineCtrl_AddLine(
+                       dw_linfoid      = LibEditText_LineCtrl_AddLine(
                                                                        p_tinfo, p_tinfo->dw_line_end, (dw_line - 1), 0, 0x00, 0x01 );
                }
                else    {
                        assert( NULL != p_line );
-                       i_result        = LibEditText_LineCtrl_PushLine(
+                       dw_linfoid      = LibEditText_LineCtrl_PushLine(
                                                                        p_tinfo, p_line->dw_id, dw_line, 0, 0x01 );
                }
-               
+
+               if( INVALID_LINE == dw_linfoid )        {
+                       i_result        = -0x01;
+               }
        }
        else if( LIBEDITTEXT_UNDOCMD_INSERTSTRING == p_udinfo->b_cmd )  {
                assert( NULL != p_line );
index 39599b9..dd05ee1 100644 (file)
@@ -101,11 +101,24 @@ void Test_LibEditText_API_ExecUndo_test00_001(void)
        i_result        = LibEditText_ExecUndo( i_tinfoid );
        CU_ASSERT( 0x00 == i_result );
 
+       // Test 01-004 Delete String & Undo ---
+       i_result        = LibEditText_DeleteString( i_tinfoid, i_curid, i_len );
+       CU_ASSERT( 0x00 == i_result );
+       
+       i_result        = LibEditText_ExecUndo( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
 
+       // Test 01-005 Join Line & Undo ---
+       i_result        = LibEditText_MoveUpCursor( i_tinfoid, i_curid, 1);
+       CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_JoinLine( i_tinfoid, i_curid );
+       CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_ExecUndo( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
 
-
+//LibBrownie_Error_DebugAllInfoPrint();