OSDN Git Service

* WorkBackup: 2015/05/31(Sun) PM 18:23
authorKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sun, 31 May 2015 09:24:25 +0000 (18:24 +0900)
committerKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sun, 31 May 2015 09:24:25 +0000 (18:24 +0900)
* BugFix: drd64_libbrownie_error.c ( not print ErrorType/Pattern/Module/Arch. Info)

include/drd64_error.h
libbrownie/drd64_libbrownie_error.c
libbrownie/test_libbrownie_error.c
libedittext/Makefile
libedittext/drd64_libedittext.h
libedittext/drd64_libedittext_system.c
libedittext/test_libedittext_system.c

index 393e377..a822183 100644 (file)
@@ -67,7 +67,7 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_LOCATION_CLEAR              0x00000000
 
 /* [Error] Type Code ==================   *_______ */
-#define        DRD64_ERROR_TYPE(n)                             (((DWord)(n))&0xf000000)
+#define        DRD64_ERROR_TYPE(n)                             (((DWord)(n))&0xf0000000)
 #define        DRD64_ERROR_TYPE_FATAL                  0x80000000
 #define        DRD64_ERROR_TYPE_ERROR                  0x40000000
 #define        DRD64_ERROR_TYPE_WARNING                0x20000000
@@ -88,6 +88,7 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_PTN_SOCKET                  0x00090000
 #define        DRD64_ERROR_PTN_INETADDR                0x000a0000
 #define        DRD64_ERROR_PTN_NCURSES                 0x000b0000
+#define        DRD64_ERROR_PTN_FAILED_ARG              0x000c0000
 #define        DRD64_ERROR_PTN_CALLFUNC                0x000f0000
 #define        DRD64_ERROR_PTN_BUG                             0x00ff0000
 
index 4600b7f..8866d42 100644 (file)
@@ -76,7 +76,7 @@ int
        p_errinfo       =       LibBrownie_Error_GetErrorInfo( i_id );
        assert( NULL != p_errinfo );
 
-       printf("[ErrorInfo] %2d ------------------------------------------------------------\n", i_id );
+       printf("[ErrorInfo] %2d ------------------------------------------------------------------\n", i_id );
        printf("  ErrCode : %08x h\n", p_errinfo->dw_error );
 
        dw_tmp  = DRD64_ERROR_TYPE( p_errinfo->dw_error );
@@ -91,58 +91,50 @@ int
 
        dw_tmp  = DRD64_ERROR_PTN( p_errinfo->dw_error );
        switch( dw_tmp )        {
-               case DRD64_ERROR_PTN_PACKET:    pstr_errptn     = "Fail Packet";                break;
-               case DRD64_ERROR_PTN_COMMAND:   pstr_errptn     = "Fail Command";               break;
-               case DRD64_ERROR_PTN_LOG:               pstr_errptn     = "Log";                                break;
-               case DRD64_ERROR_PTN_SYSCALL:   pstr_errptn     = "SysCall Error";              break;
-               case DRD64_ERROR_PTN_TIMEOUT:   pstr_errptn     = "TimeOut";                    break;
-               case DRD64_ERROR_PTN_NOEXIST:   pstr_errptn     = "No File/Dir Exist."; break;
-               case DRD64_ERROR_PTN_NOMEMORY:  pstr_errptn     = "No engouh Memory";   break;
-               case DRD64_ERROR_PTN_SOCKET:    pstr_errptn     = "Socket Error";               break;
-               case DRD64_ERROR_PTN_INETADDR:  pstr_errptn     = "Fail IPaddr.";               break;
-               case DRD64_ERROR_PTN_BUG:               pstr_errptn     = "BUG!!";                              break;
-               case DRD64_ERROR_PTN_NOERROR:   pstr_errptn     = "(no error)";                 break;
-               default:                                                pstr_errptn     = "(Undefined Ptn.)";   break;
+               case DRD64_ERROR_PTN_PACKET:
+                               pstr_errptn     = "Fail Packet";                break;
+               case DRD64_ERROR_PTN_COMMAND:
+                               pstr_errptn     = "Fail Command";               break;
+               case DRD64_ERROR_PTN_LOG:
+                               pstr_errptn     = "Log";                                break;
+               case DRD64_ERROR_PTN_SYSCALL:
+                               pstr_errptn     = "SysCall Error";              break;
+               case DRD64_ERROR_PTN_LIBCALL:
+                               pstr_errptn     = "Library Call Error"; break;
+               case DRD64_ERROR_PTN_TIMEOUT:
+                               pstr_errptn     = "TimeOut";                    break;
+               case DRD64_ERROR_PTN_NOEXIST:
+                               pstr_errptn     = "No File/Dir Exist."; break;
+               case DRD64_ERROR_PTN_NOMEMORY:
+                               pstr_errptn     = "No engouh Memory";   break;
+               case DRD64_ERROR_PTN_SOCKET:
+                               pstr_errptn     = "Socket Error";               break;
+               case DRD64_ERROR_PTN_INETADDR:
+                               pstr_errptn     = "Fail IPaddr.";               break;
+               case DRD64_ERROR_PTN_NCURSES:
+                               pstr_errptn     = "NCurses Lib.Call Error.";            break;
+               case DRD64_ERROR_PTN_FAILED_ARG:
+                               pstr_errptn     = "Failed Operand Value";                       break;
+               case DRD64_ERROR_PTN_CALLFUNC:
+                               pstr_errptn     = "Call Function Internal Error";       break;
+               case DRD64_ERROR_PTN_BUG:
+                               pstr_errptn     = "BUG!!";                              break;
+               case DRD64_ERROR_PTN_NOERROR:
+                               pstr_errptn     = "(no error)";                 break;
+               default:
+                               pstr_errptn     = "(Undefined Ptn.)";   break;
        }
 
        dw_errlv1       = DRD64_ERROR_LEVEL1( p_errinfo->dw_error );
        dw_errlv2       = DRD64_ERROR_LEVEL2( p_errinfo->dw_error );
 
-       printf("    (Type: %5s, Pattern: %25s, Lv1: %2x h, Lv2: %2x h)\n",
+       printf("    (Type: %5s, Pattern: %30s, Lv1: %02x h, Lv2: %02x h)\n",
                                                        pstr_errtype, pstr_errptn, dw_errlv1, dw_errlv2 );
 
        printf("  Location: %08x h\n", p_errinfo->dw_location );
 
        if( DRD64_ERROR_MODULE_IsArch( p_errinfo->dw_location ) )       {
                dw_tmp  = DRD64_ERROR_MODULE_WITHARCH( p_errinfo->dw_location );
-
-               switch( dw_tmp )        {
-                       case DRD64_ERROR_MODULE_MARSHALD:
-                                       pstr_module = "marshald";               break;
-                       case DRD64_ERROR_MODULE_DEBUGD:
-                                       pstr_module = "debugd";                 break;
-                       case DRD64_ERROR_MODULE_SERVER:
-                                       pstr_module = "server";                 break;
-                       case DRD64_ERROR_MODULE_LIBDRD64:
-                                       pstr_module = "libdrd64";               break;
-                       case DRD64_ERROR_MODULE_LIBBROWNIE:
-                                       pstr_module = "libbrownie";             break;
-                       case DRD64_ERROR_MODULE_DRCC:
-                                       pstr_module = "drcc";                   break;
-                       case DRD64_ERROR_MODULE_LIBEDITTEXT:
-                                       pstr_module = "libedittext";    break;
-                       case DRD64_ERROR_MODULE_LIBFILETYPE:
-                                       pstr_module = "libfiletype";    break;
-                       case DRD64_ERROR_MODULE_LIBGOBLIN:
-                                       pstr_module = "libgoblin";              break;
-                       default:
-                                       pstr_module = "(Undef. Mod.)";  break;
-               }
-
-               pstr_arch       = "(Imdepend Arch.)";
-       }
-       else    {
-               dw_tmp  = DRD64_ERROR_MODULE_NOARCH( p_errinfo->dw_location );
                switch( dw_tmp )        {
                        case DRD64_ERROR_MODULE_LIBASM:
                                        pstr_module = "libasm";         break;
@@ -178,12 +170,39 @@ int
                                        pstr_arch = "(Undef. Arch.)";   break;
                }
        }
+       else    {
+               dw_tmp  = DRD64_ERROR_MODULE_NOARCH( p_errinfo->dw_location );
+               switch( dw_tmp )        {
+                       case DRD64_ERROR_MODULE_MARSHALD:
+                                       pstr_module = "marshald";               break;
+                       case DRD64_ERROR_MODULE_DEBUGD:
+                                       pstr_module = "debugd";                 break;
+                       case DRD64_ERROR_MODULE_SERVER:
+                                       pstr_module = "server";                 break;
+                       case DRD64_ERROR_MODULE_LIBDRD64:
+                                       pstr_module = "libdrd64";               break;
+                       case DRD64_ERROR_MODULE_LIBBROWNIE:
+                                       pstr_module = "libbrownie";             break;
+                       case DRD64_ERROR_MODULE_DRCC:
+                                       pstr_module = "drcc";                   break;
+                       case DRD64_ERROR_MODULE_LIBEDITTEXT:
+                                       pstr_module = "libedittext";    break;
+                       case DRD64_ERROR_MODULE_LIBFILETYPE:
+                                       pstr_module = "libfiletype";    break;
+                       case DRD64_ERROR_MODULE_LIBGOBLIN:
+                                       pstr_module = "libgoblin";              break;
+                       default:
+                                       pstr_module = "(Undef. Mod.)";  break;
+               }
+
+               pstr_arch       = "(Imdepend Arch.)";
+       }
 
        dw_srcid        = DRD64_ERROR_SOURCE( p_errinfo->dw_location );
        dw_funcid       = DRD64_ERROR_FUNCTION( p_errinfo->dw_location );
 
        printf("    (Module: %20s, Arch: %25s)\n", pstr_module, pstr_arch );
-       printf("    (SrcID: %2x h, FuncID: %2x h, SrcLine: %4d)\n",
+       printf("    (SrcID: %02x h, FuncID: %02x h, SrcLine: %4d)\n",
                                                        dw_srcid, dw_funcid, p_errinfo->i_srcline);
 
        printf("  errno   : %d \n", p_errinfo->i_system_errno );
@@ -203,12 +222,12 @@ int
 {
        int     i_cnt;
 
-       puts("[ErrorInfo Dump]***********************************************************");
+       puts("[ErrorInfo Dump]*****************************************************************");
 
        for( i_cnt = 0; i_cnt < gi_max_errorinfo; i_cnt++ )     {
                LibBrownie_Error_DebugErrorInfoPrint( i_cnt );
        }
-       puts("***************************************************************************");
+       puts("*********************************************************************************");
 
        return 0x00;
 }
@@ -276,12 +295,12 @@ int
 {
        Drd64_ErrorInfo         *p_errinfo;
 
-       gp_errorinfo            = NULL;
-       gi_max_errorinfo        = 0;
-
        gi_refcount++;
        if( 1 < gi_refcount )   { return 0x00; }
 
+       gp_errorinfo            = NULL;
+       gi_max_errorinfo        = 0;
+
        p_errinfo = (Drd64_ErrorInfo *)malloc(
                                        sizeof( Drd64_ErrorInfo ) * LIBBROWNIE_ERROR_MAXERRORS );
        if( NULL == p_errinfo )         { return 0x01; }
index e11ae21..0edb3e2 100644 (file)
@@ -86,7 +86,7 @@ void Test_LibBrownie_Error_test00_002(void)
        CU_ASSERT( i_result == 0x00 );
        CU_ASSERT( 1 == LibBrownie_Error_GetReferenceCount());
 
-       dw_error        = DRD64_ERR_CODE(DRD64_ERROR_TYPE_ERROR, DRD64_ERROR_PTN_PACKET, 0x1200, 0x34 );
+       dw_error        = DRD64_ERR_CODE(DRD64_ERROR_TYPE_ERROR, DRD64_ERROR_PTN_PACKET, 0x12, 0x34 );
        dw_location     = DRD64_ERR_LOCATION( DRD64_ERROR_MODULE_LIBBROWNIE, DRD64_ERROR_ARCH_NODEPEND, 0x12,0x34 );
        qw_value        = 0xfedcba0987654000;
        p_test          = &qw_value;
index c0dde82..f49fdc0 100644 (file)
@@ -48,6 +48,8 @@ FLAGS_DEBUG = -g -Wall
 FLAGS_COMPILE = 
 
 TARGET = libedittext.a
+LIBRARY = ../libbrownie.a ../libfiletype.a
+FLAGS_LINKER = -L.. -lbrownie -lfiletype
 OBJS = \
                drd64_libedittext_debug.o \
                drd64_libedittext_file.o \
@@ -70,7 +72,7 @@ HEADER = \
                $(SUPER_HEADER)
 
 TEST_FLAGS_COMPILE = -I/usr/local/include
-TEST_FLAGS_LINKER = -L/usr/local/lib
+TEST_FLAGS_LINKER = -L/usr/local/lib -lcunit
 TEST_TARGET = test_libedittext
 TEST_OBJS = \
                test_libedittext.o \
@@ -108,8 +110,8 @@ drd64_libedittext_debug.o: drd64_libedittext_debug.c $(HEADER)
        $(CC) -c -o drd64_libedittext_debug.o $(FLAGS_DEBUG) $(FLAGS_COMPILE) \
                                drd64_libedittext_debug.c
 
-$(TARGET): $(OBJS)
-       ar rv $(TARGET) $(OBJS)
+$(TARGET): $(OBJS) $(LIBRARY)
+       ar rv $(TARGET) $(OBJS) $(LIBRARY)
        ranlib $(TARGET)
        rm -f ../$(TARGET)
        cp $(TARGET) ..
@@ -139,10 +141,13 @@ test_libedittext_lineedit.o: test_libedittext_lineedit.c $(HEADER) $(TEST_HEADER
                                $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
                                test_libedittext_lineedit.c
 
-$(TEST_TARGET): $(TEST_OBJS) $(OBJS) $(TARGET)
+$(TEST_TARGET): $(TEST_OBJS) $(OBJS) $(TARGET) $(LIBRARY)
        $(CC) -o $(TEST_TARGET) $(FLAGS_DEBUG) $(OBJS) $(TEST_OBJS) $(TARGET) \
-                               ../libfiletype.a $(TEST_FLAGS_LINKER) -lcunit
+                               $(LIBRARY) $(FLAGS_LINKER) $(TEST_FLAGS_LINKER)
 
+$(LIBRARY):
+       $(MAKE) -C ../libbrownie all clean
+       $(MAKE) -C ../libfiletype all clean
 
 clean:
        rm -f *.o
index 0e34dc8..825fe2d 100644 (file)
@@ -43,6 +43,7 @@ Comment:
 #include<assert.h>
 #include<string.h>
 #include<fcntl.h>
+#include<errno.h>
 #include<sys/types.h>
 #include<sys/stat.h>
 
@@ -50,6 +51,7 @@ Comment:
 #include"../include/drd64_defines.h"
 #include"../include/drd64_error.h"
 #include"../include/drd64_conf.h"
+#include"../include/libbrownie.h"
 #include"../include/libfiletype.h"
 
 #include"drd64_libedittext_config.h"
index f2b16fd..afeeda5 100644 (file)
@@ -37,9 +37,14 @@ Comment:
 #define        DRD64_SRC_LIBEDITTEXT_SYSTEM
 #include"drd64_libedittext.h"
 
+#define        DRD64_SRC_LIBEDITTEXT_SYSTEM_SRCID      0x01
+#define LOCATION(n)    DRD64_ERR_LOCATION( \
+                                       DRD64_ERROR_MODULE_LIBEDITTEXT, DRD64_ERROR_ARCH_NODEPEND, \
+                                       DRD64_SRC_LIBEDITTEXT_SYSTEM_SRCID, (n))
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_GetMaxNum_TextInfo    0x01
 DWord
        LibEditText_System_GetMaxNum_TextInfo(
                        void )
@@ -50,6 +55,7 @@ DWord
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_GetAllocNum_TextInfo  0x02
 DWord
        LibEditText_System_GetAllocNum_TextInfo(
                        void )
@@ -60,6 +66,7 @@ DWord
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_GetNoneNameFiles      0x03
 LIBEDITTEXT_SYSTEM_EXTERN
 DWord
        LibEditText_System_GetNoneNameFiles(
@@ -71,13 +78,20 @@ DWord
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_GetTextInfo   0x04
 LIBEDITTEXT_SYSTEM_EXTERN
 LibEditText_TextInfo   *
        LibEditText_System_GetTextInfo(
                        int i_tinfoid )
 {
-       if( ( 0 > i_tinfoid ) || ( gdw_max_textinfo <= i_tinfoid ))
-               { return NULL; }
+       if( ( 0 > i_tinfoid ) || ( gdw_max_textinfo <= i_tinfoid ))             {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_System_GetTextInfo ),
+                               errno, (QWord)i_tinfoid, (QWord)0x00, __LINE__ ); 
+
+               return NULL;
+       }
 
        return (gp_textinfo + i_tinfoid);
 }
@@ -85,6 +99,7 @@ LibEditText_TextInfo  *
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_ExpandTextBuffer      0x05
 LIBEDITTEXT_SYSTEM_EXTERN
 int
        LibEditText_System_ExpandTextBuffer(
@@ -96,12 +111,24 @@ int
 
        assert( NULL != p_tinfo );
 
-       if( 0 == dw_expandsize )        { return -0x01; }
+       if( 0 == dw_expandsize )        {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_System_ExpandTextBuffer ),
+                               errno, (QWord)dw_expandsize, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
 
        pb_text = (Byte *)realloc( p_tinfo->pb_text,
                                                (p_tinfo->dw_bufsize + dw_expandsize
                                                + DRD64_LIBEDITTEXT_DEFAULT_COPYBUFFER) );
        if( NULL == pb_text )   {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_System_ExpandTextBuffer ),
+                               errno, (QWord)dw_expandsize, (QWord)0x00, __LINE__ ); 
+
                return -0x02;
        }
        p_tinfo->pb_text                = pb_text;
@@ -113,6 +140,11 @@ int
                pb_attr = (Byte *)realloc( p_tinfo->pb_attr,
                                                (p_tinfo->dw_bufsize + dw_expandsize ) );
                if( NULL == pb_attr )   {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x03 ),
+                                       LOCATION( FUNCID_LibEditText_System_ExpandTextBuffer ),
+                                       errno, (QWord)dw_expandsize, (QWord)0x00, __LINE__ ); 
+
                        return -0x03;
                }
                p_tinfo->pb_attr                = pb_attr;
@@ -129,6 +161,7 @@ int
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_InitTextInfo  0x06
 LIBEDITTEXT_SYSTEM_EXTERN
 int
        LibEditText_System_InitTextInfo(
@@ -143,12 +176,23 @@ int
        Byte    *pb_text;
        Byte    *pb_attr;
 
-       if( NULL == p_tinfo )   { return -0x01; }
-       if(( 0 == dw_bufsize ) || ( 0 == dw_bufline) )  { return -0x02; }
+       if(( NULL == p_tinfo ) || ( 0 == dw_bufsize ) || ( 0 == dw_bufline))    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_System_InitTextInfo ),
+                               errno, (QWord)dw_bufsize, (QWord)dw_bufline, __LINE__ ); 
+
+               return -0x01;
+       }
        
        /* Alloc Text Buffer Memory --- */
        pb_text = (Byte *)malloc( dw_bufsize + DRD64_LIBEDITTEXT_DEFAULT_COPYBUFFER );
        if( NULL == pb_text )   {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x11 ),
+                               LOCATION( FUNCID_LibEditText_System_InitTextInfo ),
+                               errno, (QWord)dw_bufsize, (QWord)0x00, __LINE__ ); 
+
                return -0x11;
        }
        memset( pb_text, 0x00, dw_bufsize );
@@ -156,13 +200,25 @@ int
        /* Alloc Attribute Buffer Memory --- */
        pb_attr = (Byte *)malloc( dw_bufsize );
        if( NULL == pb_attr )   {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x12 ),
+                               LOCATION( FUNCID_LibEditText_System_InitTextInfo ),
+                               errno, (QWord)dw_bufsize, (QWord)0x00, __LINE__ ); 
+
                return -0x12;
        }
        memset( pb_attr, 0x00, dw_bufsize );
 
        /* Alloc LineInfo Struct --- */
        p_line  = LibEditText_LineInfo_Init( p_tinfo, dw_bufline );
-       if( NULL == p_line )    { return -0x13; }
+       if( NULL == p_line )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x13 ),
+                               LOCATION( FUNCID_LibEditText_System_InitTextInfo ),
+                               errno, (QWord)dw_bufline, (QWord)0x00, __LINE__ ); 
+
+               return -0x13;
+       }
 
        /* Set Param. to TextInfo Struct --- */
        p_tinfo->w_subtype              = w_subtype;
@@ -177,6 +233,11 @@ int
 
        i_result        = LibEditText_Section_InitSection( p_tinfo );
        if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x14 ),
+                               LOCATION( FUNCID_LibEditText_System_InitTextInfo ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
                return -0x014;
        }
        
@@ -186,6 +247,7 @@ int
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_SearchEmptyTextInfo   0x07
 DWord
        LibEditText_System_SearchEmptyTextInfo(
                        void )
@@ -207,12 +269,14 @@ DWord
 /*----------------------------------------------------------------------
 Alloc
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_AllocTextInfo 0x08
 LIBEDITTEXT_SYSTEM_EXTERN
 LibEditText_TextInfo *
        LibEditText_System_AllocTextInfo(
                        void )
 {
        int                     i_tmp;
+       DWord           dw_size;
        DWord           dw_cnt;
        LibEditText_TextInfo            *p_textinfo     = NULL;
        LibEditText_TextInfo            *p_tmp;
@@ -221,10 +285,17 @@ LibEditText_TextInfo *
 
        if( 0 == dw_cnt )       {
                if( gdw_max_textinfo == gdw_alloc_textinfo )    {
-                       p_textinfo      = (LibEditText_TextInfo *)realloc(
-                                       gp_textinfo, sizeof( LibEditText_TextInfo )
-                                               * (gdw_alloc_textinfo + DRD64_LIBEDITTEXT_DEFAULT_ALLOC_TEXTINFO ) );
-                       if( NULL == p_textinfo )        { return NULL; }
+                       dw_size = sizeof( LibEditText_TextInfo )
+                                               * (gdw_alloc_textinfo + DRD64_LIBEDITTEXT_DEFAULT_ALLOC_TEXTINFO);
+                       p_textinfo      = (LibEditText_TextInfo *)realloc( gp_textinfo, dw_size );
+                       if( NULL == p_textinfo )        {
+                               LibBrownie_Error_SetErrorInfo(
+                                               DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x00 ),
+                                               LOCATION( FUNCID_LibEditText_System_AllocTextInfo ),
+                                               errno, (QWord)0x00, (QWord)dw_size, __LINE__ ); 
+
+                               return NULL;
+                       }
 
                        p_tmp   = p_textinfo + gdw_max_textinfo;
                        memset( p_tmp, 0x00,
@@ -262,6 +333,7 @@ LibEditText_TextInfo *
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_ClearTextInfo 0x09
 LIBEDITTEXT_SYSTEM_EXTERN
 int
        LibEditText_System_ClearTextInfo(
@@ -269,10 +341,24 @@ int
 {
        int             i_result;
 
-       if( NULL == p_tinfo )   { return -0x01; }
+       if( NULL == p_tinfo )   {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibEditText_System_ClearTextInfo ),
+                       errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
 
        i_result        = LibEditText_Section_TermSection( p_tinfo );
-       if( 0x00 != i_result )  { return -0x02; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x02 ),
+                       LOCATION( FUNCID_LibEditText_System_ClearTextInfo ),
+                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x02;
+       }
 
        assert( NULL != p_tinfo->pb_text );
        free( p_tinfo->pb_text );
@@ -298,6 +384,7 @@ int
 /*----------------------------------------------------------------------
 Alloc
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_System_FreeTextInfo  0x0a
 LIBEDITTEXT_SYSTEM_EXTERN
 int
        LibEditText_System_FreeTextInfo(
@@ -307,8 +394,22 @@ int
        DWord                                   dw_cnt  = 0;
        LibEditText_TextInfo            *p_tmp;
 
-       if( NULL == p_tinfo )           { return -0x01; }
-       if( -1 == p_tinfo->i_id )       { return -0x02; }
+       if( NULL == p_tinfo )           {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibEditText_System_FreeTextInfo ),
+                       errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
+       if( -1 == p_tinfo->i_id )       {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x02 ),
+                       LOCATION( FUNCID_LibEditText_System_FreeTextInfo ),
+                       errno, (QWord)p_tinfo->i_id, (QWord)0x00, __LINE__ ); 
+
+               return -0x02;
+       }
 
        /* Clear TextInfo Struct */
        i_oldid                         = p_tinfo->i_id;
@@ -332,7 +433,6 @@ int
                if( 0 < dw_cnt )
                        { gdw_max_textinfo      = dw_cnt; }
        }
-
        
        return 0x00;
 }
@@ -341,20 +441,42 @@ int
 /*----------------------------------------------------------------------
 Init
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_Init 0x0b
 LIBEDITTEXT_API_SYSTEM
 int
        LibEditText_Init(
                        void )
 {
        int                                             i_cnt;
+       int                                             i_result;
        LibEditText_TextInfo    *p_textinfo;
        LibEditText_TextInfo    *p_tmp;
 
        if( NULL != gp_textinfo )       { return 0x01; }
 
+       i_result        = LibBrownie_Init();
+       if( 0x00 != i_result )          { return -0x02; }
+
+       i_result        = LibFileType_Init();
+       if( 0x00 != i_result )          {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
+                       LOCATION( FUNCID_LibEditText_Init ),
+                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x03;
+       }
+
        p_textinfo      = (LibEditText_TextInfo *)malloc(
                                        sizeof( LibEditText_TextInfo ) * DRD64_LIBEDITTEXT_DEFAULT_ALLOC_TEXTINFO );
-       if( NULL == p_textinfo )        { return 0x02; }
+       if( NULL == p_textinfo )        {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x04 ),
+                       LOCATION( FUNCID_LibEditText_Init ),
+                       errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x04;
+       }
        memset( p_textinfo, 0x00,
                        sizeof( LibEditText_TextInfo ) * DRD64_LIBEDITTEXT_DEFAULT_ALLOC_TEXTINFO );
 
@@ -373,6 +495,7 @@ int
 /*----------------------------------------------------------------------
 Term
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_Term 0x0c
 LIBEDITTEXT_API_SYSTEM
 int
        LibEditText_Term(
@@ -381,8 +504,14 @@ int
        DWord   dw_cnt;
        LibEditText_TextInfo    *p_textinfo;
 
-       if( NULL == gp_textinfo)        { return 0x01; }
-       
+       if( NULL == gp_textinfo)        {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibEditText_Term ),
+                       errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
 
        for( dw_cnt = gdw_max_textinfo; dw_cnt > 0; dw_cnt-- )  {
                p_textinfo      = (gp_textinfo + dw_cnt - 1);
@@ -391,10 +520,12 @@ int
                p_textinfo->i_id        = -1;
        }
 
-
        free( gp_textinfo );
        gp_textinfo     = NULL;
 
+       LibFileType_Term();
+       LibBrownie_Term();
+
        return 0x00;
 }
 
index e4ee03f..b9c705d 100644 (file)
@@ -191,7 +191,13 @@ void Test_LibEditText_System_AllocTextInfo_test00_001(void)
 /*--------------------------------------------------------------------*/
 void Test_LibEditText_System_FreeTextInfo_test00_001(void)
 {
-       CU_ASSERT( 0x00 != LibEditText_System_FreeTextInfo( NULL ) );
+       int             i_result;
+       LibBrownie_Init();
+
+       i_result        = LibEditText_System_FreeTextInfo( NULL );
+       CU_ASSERT( i_result != 0x00 );
+
+       LibBrownie_Term();
        return;
 }
 
@@ -204,6 +210,7 @@ void Test_LibEditText_System_Init_test00_001(void)
 
        i_result        = LibEditText_Init();
        CU_ASSERT( 0x00 == i_result );
+       LibBrownie_Term();
 
        return;
 }
@@ -215,6 +222,7 @@ void Test_LibEditText_System_Init_test00_002(void)
 
        i_result        = LibEditText_Init();
        CU_ASSERT( 0x00 == i_result );
+       LibBrownie_Term();
 
        return;
 }