OSDN Git Service

* CreateFile: test_libedittext_undoedit.c
authorKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sun, 2 Aug 2015 19:51:39 +0000 (04:51 +0900)
committerKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sun, 2 Aug 2015 19:51:39 +0000 (04:51 +0900)
include/libedittext.h
libedittext/Makefile
libedittext/drd64_libedittext_undoedit.c
libedittext/drd64_libedittext_undoedit.h
libedittext/test_libedittext.c
libedittext/test_libedittext.h
libedittext/test_libedittext_undoedit.c [new file with mode: 0644]

index d2775e1..fb30931 100644 (file)
@@ -170,6 +170,15 @@ LIBEDITTEXT_API_CURSORAPI_MOVE
        int LibEditText_JumpCursor( int i_tinfoid, int i_curid, DWord dw_line );
 
 
+#ifdef DRD64_SRC_LIBEDITTEXT_UNDOEDIT
+       #define LIBEDITTEXT_API_UNDOEDIT
+#else
+       #define LIBEDITTEXT_API_UNDOEDIT        extern
+#endif
+LIBEDITTEXT_API_UNDOEDIT
+       int LibEditText_ExecUndo( int i_tinfoid );
+
+
 #endif /* DRD64_HEADER_DRCC_INCLUDE */
 
 
index d41b550..8cce0e5 100644 (file)
@@ -97,6 +97,7 @@ TEST_OBJS = \
                test_libedittext_cursorinfo.o \
                test_libedittext_cursorapi.o \
                test_libedittext_undoinfo.o \
+               test_libedittext_undoedit.o \
                test_libedittext_system.o
 TEST_HEADER = \
                test_libedittext.h
@@ -197,6 +198,10 @@ test_libedittext_undoinfo.o: test_libedittext_undoinfo.c $(HEADER) $(TEST_HEADER
        $(CC) -c -o test_libedittext_undoinfo.o \
                                $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
                                test_libedittext_undoinfo.c
+test_libedittext_undoedit.o: test_libedittext_undoedit.c $(HEADER) $(TEST_HEADER)
+       $(CC) -c -o test_libedittext_undoedit.o \
+                               $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
+                               test_libedittext_undoedit.c
 
 $(TEST_TARGET): $(TEST_OBJS) $(OBJS) $(TARGET) $(LIBRARY)
        $(CC) -o $(TEST_TARGET) $(FLAGS_DEBUG) $(OBJS) $(TEST_OBJS) $(TARGET) \
index 4cb12c4..d9a18c4 100644 (file)
@@ -174,14 +174,15 @@ int
 ----------------------------------------------------------------------*/
 LIBEDITTEXT_UNDOEDIT_EXTERN
 int
-       LibEditText_UndoEdit_ExecUnDo(
+       LibEditText_UndoEdit_ExecUndo(
                        LibEditText_TextInfo    *p_tinfo )
 {
-       int                                             i_result;
+       int                                             i_result        = 0x00;
        Byte                                    *pb_undo;
        Byte                                    *pb_last;
        DWord                                   dw_line;
        DWord                                   dw_pos;
+       DWord                                   dw_cnt;
        LibEditText_UndoInfo    t_udinfo;
 
        assert( NULL != p_tinfo );
@@ -194,17 +195,22 @@ int
        pb_last = p_tinfo->pb_undo + p_tinfo->dw_undo_last;
        dw_line = p_tinfo->dw_undo_line;
        dw_pos  = p_tinfo->dw_undo_pos;
+       dw_cnt  = 0;
+
+       memset( &t_udinfo, 0x00, sizeof( LibEditText_UndoInfo ) );
 
        do{
                
                i_result        = LibEditText_UndoInfo_ReadUndoInfo(
                                                        p_tinfo, &t_udinfo, dw_line, dw_pos, pb_undo, 0x00 );
+               if(( 0 < dw_cnt ) && ( 0x00 != t_udinfo.t_udflag.bf_chain ))    { break; }
                
+               // Exec Undo ---
                dw_line         -= t_udinfo.dw_plusline;
                dw_pos          -= t_udinfo.dw_pluspos;
                
-               // Exec Undo ---
                i_result        = LibEditText_UndoEdit_ExecUnDoInfo( p_tinfo, &t_udinfo, dw_line, dw_pos );
+               if( 0x00 != i_result )  { return i_result; }
 
                LibEditText_UndoInfo_SetRedoFlag( pb_undo );
 
@@ -214,8 +220,8 @@ int
                pb_last         = pb_undo;
                pb_undo         -= t_udinfo.dw_prevlength;
 
-       }while(( 0x00 == t_udinfo.t_udflag.bf_chain) && ( 0x00 != t_udinfo.t_udflag.bf_linksz )
-                       && ( pb_last > p_tinfo->pb_undo ));
+               dw_cnt++;
+       }while(( 0x00 != t_udinfo.t_udflag.bf_linksz ) && ( pb_last > p_tinfo->pb_undo ));
 
        p_tinfo->dw_undo_end    = pb_undo - p_tinfo->pb_undo;
        p_tinfo->dw_undo_last   = pb_last - p_tinfo->pb_undo;
@@ -226,4 +232,26 @@ int
 }
 
 
+/***********************************************************************
+***********************************************************************/
+LIBEDITTEXT_API_UNDOEDIT
+int
+       LibEditText_ExecUndo( int i_tinfoid )
+{
+       int                                             i_result        = 0x00;
+       LibEditText_TextInfo    *p_tinfo;
+
+       p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
+       if( NULL == p_tinfo )   {
+               i_result        = -0x01;
+               goto    goto_LibEditText_ExecUndo_post;
+       }
+
+       i_result        = LibEditText_UndoEdit_ExecUndo( p_tinfo );
+
+goto_LibEditText_ExecUndo_post:
+       return i_result;
+}
+
+
 /* EOF of drd64_.c ----------------------------------- */
index a575e32..15cddd1 100644 (file)
@@ -49,6 +49,8 @@ Comment:
        #define LIBEDITTEXT_UNDOEDIT_INTERNALFUNC
 #endif
 
+LIBEDITTEXT_UNDOEDIT_EXTERN
+       int LibEditText_UndoEdit_ExecUndo( LibEditText_TextInfo *p_tinfo );
 
 
 #ifdef LIBEDITTEXT_UNDOEDIT_INTERNALFUNC
index 4567e18..22a0693 100644 (file)
@@ -47,6 +47,7 @@ int
                char *argv[] )
 {
        CU_initialize_registry();
+/*
        Test_LibEditText_System();
        Test_LibEditText_File();
        Test_LibEditText_LineInfo();
@@ -55,6 +56,8 @@ int
        Test_LibEditText_CursorInfo();
        Test_LibEditText_CursorAPI();
        Test_LibEditText_Undo();
+*/
+       Test_LibEditText_UndoEdit();
 
        CU_basic_run_tests();
        CU_cleanup_registry();
index 4250ae1..b84f06c 100644 (file)
@@ -105,6 +105,14 @@ DRD64_TEST_LIBEDITTEXT_CURSORAPI_EXTERN int Test_LibEditText_CursorAPI( void );
 #endif
 DRD64_TEST_LIBEDITTEXT_UNDOINFO_EXTERN int Test_LibEditText_Undo( void );
 
+/*---------------------------------------------------------------------*/
+#ifdef DRD64_SRC_TEST_LIBEDITTEXT_UNDOEDIT
+       #define DRD64_TEST_LIBEDITTEXT_UNDOEDIT_EXTERN
+#else
+       #define DRD64_TEST_LIBEDITTEXT_UNDOEDIT_EXTERN  extern
+#endif
+DRD64_TEST_LIBEDITTEXT_UNDOEDIT_EXTERN int Test_LibEditText_UndoEdit( void );
+
 
 #endif /* DRD64_HEADER_XXX */
 
diff --git a/libedittext/test_libedittext_undoedit.c b/libedittext/test_libedittext_undoedit.c
new file mode 100644 (file)
index 0000000..39599b9
--- /dev/null
@@ -0,0 +1,384 @@
+/*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
+
+                         D r . D e a m o n  6 4
+                        for INTEL64(R), AMD64(R)
+       
+   Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
+
+/* File Info -----------------------------------------------------------
+File: drd64_.c
+Function: 
+Comment: 
+----------------------------------------------------------------------*/
+
+#define DRD64_SRC_TEST_LIBEDITTEXT_UNDOEDIT
+#include"test_libedittext.h"
+#include"drd64_libedittext.h"
+
+
+/* LibEditText_Undo (API) *********************************************/
+/*--------------------------------------------------------------------*/
+void Test_LibEditText_API_ExecUndo_test00_001(void)
+{
+       int     i_result;
+       int             i_tinfoid;
+       int             i_cnt;
+       int             i_curid;
+       int             i_curb;
+       int             i_len;
+       char    c_data;
+       char    str_data[256];
+       DWord   dw_maxline;
+       DWord   dw_nowline;
+       DWord   dw_targline;
+       DWord   dw_pos;
+       DWord   dw_len;
+       DWord   dw_bytes;
+       const char      *pstr_data;
+       LibEditText_TextInfo    *p_tinfo;
+       
+       i_result        = LibEditText_Init();
+       CU_ASSERT( 0x00 == i_result );
+
+       i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_curid = LibEditText_AllocCursor( i_tinfoid, 13 );
+       CU_ASSERT( 0x00 <= i_curid );
+
+       // Test 01-001 Append Line & Undo ---
+       i_result        = LibEditText_AppendLine( i_tinfoid, i_curid );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_result        = LibEditText_ExecUndo( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
+       // Test 01-002 InsertString & Undo ---
+       i_len   = snprintf( str_data, 256, "Test 01-002: InsertLine & Undo", i_cnt );
+       i_result = LibEditText_InsertString( i_tinfoid, i_curid, str_data, (DWord)i_len );
+       CU_ASSERT( 0x00 == i_result );
+       
+       i_result        = LibEditText_ExecUndo( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
+       // Test 01-003 Insert Line & Undo ---
+       i_result        = LibEditText_AppendLine( i_tinfoid, i_curid );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_len   = snprintf( str_data, 256, "Test 01-003: InsertLine & Undo", i_cnt );
+       i_result = LibEditText_InsertString( i_tinfoid, i_curid, str_data, (DWord)i_len );
+       CU_ASSERT( 0x00 == i_result );
+       
+       i_result        = LibEditText_MoveStartCursor( i_tinfoid, i_curid );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_result = LibEditText_InsertChar( i_tinfoid, i_curid, '\n' );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_result        = LibEditText_ExecUndo( i_tinfoid );
+       CU_ASSERT( 0x00 == i_result );
+
+
+
+
+
+
+
+
+
+
+/*
+       // TestPhase A --- Data Addition ============================
+       // Test 01 --- AppendLine
+       for( i_cnt = 0; i_cnt < 1025; i_cnt++ )         {
+               i_len   = snprintf( str_data, 256, "Test A01: AppendLine %d", i_cnt );
+               i_result = LibEditText_InsertString( i_tinfoid, i_curb, str_data, (DWord)i_len );
+               CU_ASSERT( 0x00 == i_result );
+
+               i_result        = LibEditText_AppendLine( i_tinfoid, i_curid );
+               CU_ASSERT( 0x00 == i_result );
+
+               i_result        = LibEditText_MoveDownCursor( i_tinfoid, i_curb, 1);
+               CU_ASSERT( 0x00 == i_result );
+       }
+
+       // Test 02 --- InsertLine
+       for( i_cnt = 0; i_cnt < 1025; i_cnt++ )         {
+               i_len   = snprintf( str_data, 256, "Test A02: InsertLine %d", i_cnt );
+               i_result = LibEditText_InsertString( i_tinfoid, i_curid, str_data, (DWord)i_len );
+               CU_ASSERT( 0x00 == i_result );
+
+               i_result        = LibEditText_AppendLine( i_tinfoid, i_curid );
+               CU_ASSERT( 0x00 == i_result );
+       }
+
+       // Test 03 --- InsertChar
+       i_result        = LibEditText_JumpCursor( i_tinfoid, i_curid, 2050 );
+       CU_ASSERT( 0x00 == i_result );
+
+       for( i_cnt = 0; i_cnt < 16 * 27; i_cnt++ )      {
+               if( (i_cnt % 27) == 26 )        { c_data        = '\n'; }
+               else    { c_data        = 'a' + (i_cnt % 27); }
+
+               i_result = LibEditText_InsertChar( i_tinfoid, i_curid, c_data );
+               CU_ASSERT( 0x00 == i_result );
+       }
+
+       // Test 04-1 --- InsertString
+       for( i_cnt = 0; i_cnt < 16; i_cnt++ )   {
+               i_len   = snprintf( str_data, 256, "Test A04-1: InsertLine %d\n", i_cnt );
+               i_result = LibEditText_InsertString( i_tinfoid, i_curid, str_data, (DWord)i_len );
+               CU_ASSERT( 0x00 == i_result );
+       }
+
+       // Test 04-2 --- InsertString
+       i_result        = LibEditText_JumpCursor( i_tinfoid, i_curid, 2050 );
+       CU_ASSERT( 0x00 == i_result );
+
+       for( i_cnt = 0; i_cnt < 16; i_cnt++ )   {
+               i_len   = snprintf( str_data, 256, "Test A04-2: InsertLine %d\n", i_cnt );
+               i_result = LibEditText_InsertString( i_tinfoid, i_curid, str_data, (DWord)i_len );
+               CU_ASSERT( 0x00 == i_result );
+       }
+
+       // TestPhase B --- CursorMove & Jump ========================
+       // First Move -- Right + Jump
+       i_result        = LibEditText_JumpCursor( i_tinfoid, i_curid, 0 );
+       CU_ASSERT( 0x00 == i_result );
+
+       dw_maxline      = LibEditText_GetMaxLines( i_tinfoid );
+       CU_ASSERT( MAXLINES > dw_maxline );
+
+       dw_bytes        = 0;
+       do      {
+               dw_bytes++;
+               i_result        = LibEditText_MoveRightCursor( i_tinfoid, i_curid, 1 );
+       }while( i_result == 0x00 );
+
+       i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curid, &dw_nowline, &dw_pos );
+       CU_ASSERT( 0x00 == i_result );
+
+       CU_ASSERT( dw_nowline + 1 == dw_maxline );
+       
+       pstr_data       = LibEditText_GetCursorLineString( i_tinfoid, i_curid, &dw_len );
+       CU_ASSERT( NULL != pstr_data );
+
+       CU_ASSERT( dw_pos == dw_len );
+
+       // 2nd Move -- Start + Left 
+       for( dw_nowline = dw_maxline; dw_nowline > 0; dw_nowline-- )    {
+               i_result        = LibEditText_MoveStartCursor( i_tinfoid, i_curid );
+               CU_ASSERT( 0x00 == i_result );
+
+               i_result        = LibEditText_MoveLeftCursor( i_tinfoid, i_curid, 1 );
+               CU_ASSERT( 0x00 <= i_result );
+       }
+       
+       i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curid, &dw_nowline, &dw_pos );
+       CU_ASSERT( 0x00 == i_result );
+
+       CU_ASSERT( dw_nowline == 0 );
+       CU_ASSERT( dw_pos == 0 );
+
+       // 3rd Move -- End + Down 
+       do      {
+               i_result        = LibEditText_MoveEndCursor( i_tinfoid, i_curid );
+               CU_ASSERT( 0x00 == i_result );
+
+               i_result        = LibEditText_MoveDownCursor( i_tinfoid, i_curid, 1);
+       }while( 0x00 == i_result );
+
+       i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curid, &dw_nowline, &dw_pos );
+       CU_ASSERT( 0x00 == i_result );
+
+       CU_ASSERT( dw_nowline + 1 == dw_maxline );
+
+       // 4th Move -- Up
+       do      {
+               i_result        = LibEditText_MoveUpCursor( i_tinfoid, i_curid, 20);
+       }while( 0x00 == i_result );
+
+       i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curid, &dw_nowline, &dw_pos );
+       CU_ASSERT( 0x00 == i_result );
+
+       CU_ASSERT( dw_nowline == 0 );
+
+       // TestPhase D --- SplitLine & OutputData ===================
+       do      {
+               pstr_data       = LibEditText_GetCursorLineString( i_tinfoid, i_curid, &dw_len );
+               CU_ASSERT( NULL != pstr_data );
+
+               if( 0 < dw_len )        {
+                       dw_pos  = rand() % dw_len;
+               }
+               else    {
+                       dw_pos  = 0;
+               }
+               i_result        = LibEditText_SetCursor( i_tinfoid, i_curid, dw_pos );
+               CU_ASSERT( 0x00 == i_result );
+               
+               i_result        = LibEditText_InsertChar( i_tinfoid, i_curid, '\n' );
+               CU_ASSERT( 0x00 == i_result );
+
+               i_result        = LibEditText_MoveDownCursor( i_tinfoid, i_curid, 1);
+       }while( 0x00 == i_result );
+
+       i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curid, &dw_nowline, &dw_pos );
+       CU_ASSERT( 0x00 == i_result );
+
+       dw_maxline      = LibEditText_GetMaxLines( i_tinfoid );
+       CU_ASSERT( dw_nowline + 1 == dw_maxline );
+
+       // TestPhase E --- Delete Data ==============================
+       // Test 30 --- JoinLine
+       i_result        = LibEditText_JumpCursor( i_tinfoid, i_curb, 0 );
+       CU_ASSERT( 0x00 == i_result );
+
+       do      {
+               i_result        = LibEditText_JoinLine( i_tinfoid, i_curb );
+               CU_ASSERT( 0x00 == i_result );
+
+               i_result        = LibEditText_MoveDownCursor( i_tinfoid, i_curb, 1);
+       }while( 0x00 == i_result );
+
+       i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curb, &dw_nowline, &dw_pos );
+       CU_ASSERT( 0x00 == i_result );
+
+       dw_maxline      = LibEditText_GetMaxLines( i_tinfoid );
+       CU_ASSERT( dw_nowline + 1 == dw_maxline );
+
+       i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curid, &dw_nowline, &dw_pos );
+       CU_ASSERT( 0x00 == i_result );
+       CU_ASSERT( dw_nowline + 1 == dw_maxline );
+
+       // Test 31 --- BackSpace
+       dw_targline     = (dw_maxline / 4) * 3;
+       i_result        = LibEditText_MoveEndCursor( i_tinfoid, i_curid );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curid, &dw_nowline, &dw_pos );
+       CU_ASSERT( 0x00 == i_result );
+
+       do {
+               i_result        = LibEditText_BackSpace( i_tinfoid, i_curid );
+               CU_ASSERT( 0x00 == i_result );
+
+               i_result        = LibEditText_GetCursorPosition( i_tinfoid, i_curid, &dw_nowline, &dw_pos );
+               CU_ASSERT( 0x00 == i_result );
+       }while( ( dw_targline < dw_nowline ) || ( 0 < dw_pos ) );
+
+       // Test 32 --- DeleteChar
+       dw_targline     = (dw_maxline / 4) * 2;
+       i_result        = LibEditText_JumpCursor( i_tinfoid, i_curid, dw_targline );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_result        = LibEditText_MoveStartCursor( i_tinfoid, i_curid );
+       CU_ASSERT( 0x00 == i_result );
+
+       do      {
+               i_result        = LibEditText_DeleteChar( i_tinfoid, i_curid );
+               CU_ASSERT( 0x00 == i_result );
+
+               dw_nowline      = LibEditText_GetMaxLines( i_tinfoid );
+       }while(  (dw_targline + 1) < dw_nowline );
+
+       // Test 33 --- DeleteString
+       dw_targline     = (dw_maxline / 4);
+       i_result        = LibEditText_JumpCursor( i_tinfoid, i_curid, dw_targline );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_result        = LibEditText_MoveStartCursor( i_tinfoid, i_curid );
+       CU_ASSERT( 0x00 == i_result );
+
+       do      {
+               pstr_data       = LibEditText_GetCursorLineString( i_tinfoid, i_curid, &dw_len );
+               CU_ASSERT( NULL != pstr_data );
+
+               if( 0 < dw_len )        {
+                       dw_pos  = rand() % dw_len;
+                       dw_len  -= dw_pos;
+
+                       i_result        = LibEditText_DeleteString( i_tinfoid, i_curid, dw_pos );
+                       CU_ASSERT( 0x00 == i_result );
+
+                       i_result        = LibEditText_DeleteString( i_tinfoid, i_curid, dw_len );
+                       CU_ASSERT( 0x00 == i_result );
+               }
+
+               dw_nowline      = LibEditText_GetMaxLines( i_tinfoid );
+       }while( (dw_targline + 1) < dw_nowline );
+
+       // Test 34 --- DeleteLine
+       do      {
+               i_result        = LibEditText_DeleteLine( i_tinfoid, i_curid );
+               CU_ASSERT( 0x00 == i_result );
+
+               dw_nowline      = LibEditText_GetMaxLines( i_tinfoid );
+       }while( 1 < dw_nowline );
+
+       // TestPhase F --- Delete Data ==============================
+       i_result        = LibEditText_FreeCursor( i_tinfoid, i_curb );
+       CU_ASSERT( 0x00 == i_result );
+
+       i_result        = LibEditText_FreeCursor( i_tinfoid, i_curid );
+       CU_ASSERT( 0x00 == i_result );
+*/
+
+       i_result        = LibEditText_Debug_DebugTextInfo(
+                                               i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "UndoEdit ExecUndo() API 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 );
+
+       return;
+}
+
+
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+DRD64_TEST_LIBEDITTEXT_UNDOEDIT_EXTERN
+int
+       Test_LibEditText_UndoEdit(
+               void )
+{
+       CU_pSuite       pt_undoexec;
+
+       pt_undoexec     = CU_add_suite( "LibEditText_UndoExecAPI", NULL, NULL );
+
+       CU_add_test( pt_undoexec, "EditText_API_UndoExecAPI_test00_001",
+                                                               Test_LibEditText_API_ExecUndo_test00_001 );
+
+       return 0x00;
+}
+
+
+/* EOF of drd64_.c ----------------------------------- */