OSDN Git Service

* BugFix: UndoInfo Rewind line & position bug
authorKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sat, 1 Aug 2015 10:24:29 +0000 (19:24 +0900)
committerKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sat, 1 Aug 2015 10:24:29 +0000 (19:24 +0900)
libedittext/drd64_libedittext_config.h
libedittext/drd64_libedittext_debug.c
libedittext/drd64_libedittext_linectrl.c
libedittext/test_libedittext.c
libedittext/test_libedittext_cursorapi.c
libedittext/test_libedittext_cursorinfo.c
libedittext/test_libedittext_linectrl.c
libedittext/test_libedittext_lineedit.c
libedittext/test_libedittext_undoinfo.c

index 6a55b09..d619801 100644 (file)
@@ -37,7 +37,7 @@ Comment:
 #ifndef DRD64_HEADER_LIBEDITTEXT_CONFIG
 #define DRD64_HEADER_LIBEDITTEXT_CONFIG
 
-#define DEBUG_TEXTINFO_OUTPUT                                          0x03
+#define DEBUG_TEXTINFO_OUTPUT                                          0x01
        /* Output TextData for Console if this value isn't 0x00 when run test_drcc program.*/
 
 
index 401c74c..e9be560 100644 (file)
@@ -46,7 +46,7 @@ int
                Byte    b_putflag )
 {
        int             i_result;
-       int             i_cmdflag;
+       int             i_cmdflag       = 0x00;
        Byte    *pb_undo;
        Byte    *pb_now;
        DWord   dw_line;
@@ -97,7 +97,7 @@ int
                        default:
                                snprintf( str_cmd, 127, "  [%05u] *** Command Error!! [%2x] *** \n",
                                                                                                        dw_cnt, t_udinfo.b_cmd);
-                               i_cmdflag       = 0x01;
+                               i_cmdflag       = -0x01;
                                break;
                }
 
@@ -122,18 +122,10 @@ int
                                else                                                                            { putchar(' '); }
                                putchar(']');
 
-                               dw_line = t_udinfo.dw_line;
-                               dw_pos  = t_udinfo.dw_pos;
-       
-                               if( 0x00 != t_udinfo.t_udflag.bf_line ) {
-                                       printf(" Line:%u", t_udinfo.dw_line );
-                                       //dw_line       = t_udinfo.dw_line;
-                               }
-       
-                               if( 0x00 != t_udinfo.t_udflag.bf_pos )  {
-                                       printf(" Pos:%u", t_udinfo.dw_pos );
-                                       //dw_pos        = t_udinfo.dw_pos;
-                               }
+                               if( 0x00 != t_udinfo.t_udflag.bf_line )
+                                       { printf(" Line:%u", t_udinfo.dw_line ); }
+                               if( 0x00 != t_udinfo.t_udflag.bf_pos )
+                                       { printf(" Pos:%u", t_udinfo.dw_pos ); }
        
                                if( LIBEDITTEXT_UNDOCMD_INSERTSTRING == t_udinfo.b_cmd )
                                        { printf(" String(%u): %s", t_udinfo.dw_data, t_udinfo.pb_str ); }
@@ -147,10 +139,24 @@ int
                        }
                }
 
+               dw_line = t_udinfo.dw_line;
+               dw_pos  = t_udinfo.dw_pos;
+
                dw_cnt++;
                pb_undo                 -= t_udinfo.dw_prevlength;
        }while((0 < t_udinfo.dw_prevlength) && ( 0x00 == i_cmdflag ) );
 
+       if( 0x00 == i_cmdflag )         {
+               if( 0 != dw_line )              {
+                       printf("  Error!: Last Line in Undo-Info is not Line 0. (%u)\n", dw_line );
+                       i_cmdflag       = -0x02;
+               }
+               if( 0 != dw_pos )       {
+                       printf("  Error!: Last Pos. in Undo-Info is not Position 0. (%u)\n", dw_pos );
+                       i_cmdflag       = -0x03;
+               }
+       }
+
        return i_cmdflag;
 }
 
index 2356861..8da8da3 100644 (file)
@@ -164,7 +164,6 @@ int
                DWord   dw_line )
 {
        int             i_result;
-       //Byte  *pb_dest;
        Byte    *pb_src;
        DWord   dw_pos;
        DWord   dw_srclen;
index 0194f9b..4567e18 100644 (file)
@@ -47,7 +47,6 @@ int
                char *argv[] )
 {
        CU_initialize_registry();
-
        Test_LibEditText_System();
        Test_LibEditText_File();
        Test_LibEditText_LineInfo();
index a98c5f3..0fe2d9c 100644 (file)
@@ -373,6 +373,9 @@ void Test_LibEditText_API_CursorAPI_test00_001(void)
                                                i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "Cursor API 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
index cbeacf2..61995b4 100644 (file)
@@ -65,6 +65,9 @@ void Test_LibEditText_API_InitFreeCursor_test00_001(void)
        i_result        = LibEditText_Debug_DebugTextInfo( i_tinfoid, 0x01, "InitFreeCursor (Free)- test 00-001");
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -113,6 +116,9 @@ void Test_LibEditText_API_InitFreeCursor_test00_002(void)
        i_result        = LibEditText_Debug_DebugTextInfo( i_tinfoid, 0x01, "InitFreeCursor (Free)- test 00-002b");
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
index 0f94dce..7230c4e 100644 (file)
@@ -94,6 +94,9 @@ void Test_LibEditText_LineCtrl_SplitLine_test00_001(void)
                                                i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "LineCtrl_SplitLine 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -148,6 +151,9 @@ void Test_LibEditText_LineCtrl_PushLine_test00_001(void)
                                                i_tinfoid, /* DEBUG_TEXTINFO_OUTPUT */ 0x01, "LineCtrl_PushLine 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -202,6 +208,9 @@ void Test_LibEditText_LineCtrl_AddLine_test00_001(void)
                                                i_tinfoid, /* DEBUG_TEXTINFO_OUTPUT */ 0x01, "LineCtrl_AddLine 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -243,6 +252,9 @@ void Test_LibEditText_API_AppendLastLine_test00_001(void)
                                                i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API AppendLastLine 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -285,6 +297,9 @@ void Test_LibEditText_API_InsertLine_test00_001(void)
                                                i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API InsertLine 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -327,6 +342,9 @@ void Test_LibEditText_API_InsertLine_test00_002(void)
                                                i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API InsertLine 00-002" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -379,6 +397,9 @@ void Test_LibEditText_API_JoinLine_test00_001(void)
                                                i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API JoinLine 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
index c1d2623..7786c2c 100644 (file)
@@ -73,6 +73,9 @@ void Test_LibEditText_API_InsertStringChar_toLine_test00_001(void)
                                                i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "InsertStringChar 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+       
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -98,12 +101,13 @@ void Test_LibEditText_API_DeleteStringChar_toLine_test00_001(void)
        i_result        = LibEditText_InsertString_toLine( i_tinfoid, 0, 0, "Line 1: " );
        CU_ASSERT( 0x00 == i_result );
 
-       i_result        = LibEditText_AppendLastLine( i_tinfoid, "Line 2:_\n", 9);
+       i_result        = LibEditText_AppendLastLine( i_tinfoid, "Line 2:_", 8);
        CU_ASSERT( 0x00 == i_result );
 
-       i_result        = LibEditText_AppendLastLine( i_tinfoid, "Line 3:_\n", 9);
+       i_result        = LibEditText_AppendLastLine( i_tinfoid, "Line 3:_", 8);
        CU_ASSERT( 0x00 == i_result );
 
+
        for( i_cnt = 0; i_cnt < 1025; i_cnt++ ) {
                c_tmp   = 0x30 + (i_cnt % 10);
                i_result        = LibEditText_InsertChar_toLine( i_tinfoid, 1, 8, c_tmp );
@@ -116,9 +120,12 @@ void Test_LibEditText_API_DeleteStringChar_toLine_test00_001(void)
        }
 
        i_result        = LibEditText_Debug_DebugTextInfo(
-                                               i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API DebugString 00-001" );
+                                               i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API DeleteString 00-001" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+       
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -158,6 +165,9 @@ void Test_LibEditText_API_DeleteStringChar_toLine_test00_002(void)
                                                i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "DeleteStringChar 00-002" );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+       
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );
 
@@ -181,10 +191,10 @@ int
 
        CU_add_test( pt_edittext, "EditText_API_DeleteStringChar_toLine_test00_001",
                                        Test_LibEditText_API_DeleteStringChar_toLine_test00_001 );
+
        CU_add_test( pt_edittext, "EditText_API_DeleteStringChar_toLine_test00_002",
                                        Test_LibEditText_API_DeleteStringChar_toLine_test00_002 );
 
-
        return 0x00;
 }
 
index c47602a..d254eb2 100644 (file)
@@ -62,10 +62,6 @@ void Test_LibEditText_UndoInfo_SetUndoInfo_test00_001(void)
        CU_ASSERT( NULL != p_tinfo );
 
 
-
-       p_tinfo->dw_undo_line   = 100;
-       p_tinfo->dw_undo_pos    = 50;
-
        i_result        = LibEditText_UndoInfo_SetUndoInfo( p_tinfo,
                                                0, 0, LIBEDITTEXT_UNDOCMD_INSERTCHAR, 'A', NULL, 1 );
        CU_ASSERT( 0x00 == i_result );
@@ -78,11 +74,11 @@ void Test_LibEditText_UndoInfo_SetUndoInfo_test00_001(void)
 
        LibEditText_UndoInfo_CommitUndo( p_tinfo, 0x00 );
 
-       p_tinfo->dw_undo_line   = 100;
-       p_tinfo->dw_undo_pos    = 257;
+       //p_tinfo->dw_undo_line = 100;
+       //p_tinfo->dw_undo_pos  = 257;
 
        i_result        = LibEditText_UndoInfo_SetUndoInfo( p_tinfo,
-                                               0, 2, LIBEDITTEXT_UNDOCMD_INSERTCHAR, 'C', NULL, 1 );
+                                               100, 257, LIBEDITTEXT_UNDOCMD_INSERTCHAR, 'C', NULL, 1 );
        CU_ASSERT( 0x00 == i_result );
 
        i_result        = LibEditText_UndoInfo_SetUndoInfo( p_tinfo,
@@ -95,7 +91,7 @@ void Test_LibEditText_UndoInfo_SetUndoInfo_test00_001(void)
                                                0, 1, LIBEDITTEXT_UNDOCMD_INSERTSTRING, 0x00, (Byte *)"koinec", 6 );
        CU_ASSERT( 0x00 == i_result );
 
-       p_tinfo->dw_undo_pos    = 50;
+       //p_tinfo->dw_undo_pos  = 50;
 
        i_result        = LibEditText_UndoInfo_SetUndoInfo( p_tinfo,
                                                0, 50, LIBEDITTEXT_UNDOCMD_INSERTLINE, 0x00, NULL, 0 );
@@ -121,7 +117,7 @@ void Test_LibEditText_UndoInfo_SetUndoInfo_test00_001(void)
 
        LibEditText_UndoInfo_CommitUndo( p_tinfo, 0x00 );
 
-       p_tinfo->dw_undo_pos    = 1000;
+       //p_tinfo->dw_undo_pos  = 1000;
        i_result        = LibEditText_UndoInfo_SetUndoInfo( p_tinfo,
                                                3, 100, LIBEDITTEXT_UNDOCMD_DELETESTRING, 0x00, (Byte *)"koinec", 6 );
        CU_ASSERT( 0x00 == i_result );
@@ -145,6 +141,9 @@ void Test_LibEditText_UndoInfo_SetUndoInfo_test00_001(void)
        i_result        = LibEditText_FreeCursor( i_tinfoid, i_curid );
        CU_ASSERT( 0x00 == i_result );
 
+       i_result        = LibEditText_CloseFile( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+       
        i_result        = LibEditText_Term();
        CU_ASSERT( 0x00 == i_result );