OSDN Git Service

* WorkBackup: 2015/06/01(Mon) AM05:43
authorKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sun, 31 May 2015 20:43:20 +0000 (05:43 +0900)
committerKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sun, 31 May 2015 20:43:20 +0000 (05:43 +0900)
* Implement: Support drdeamon64 ErrorSystem for drd64_libedittext_file.c
* Implement: Support drdeamon64 ErrorSystem for drd64_libedittext_lineinfo.c

include/drd64_error.h
libbrownie/drd64_libbrownie_error.c
libedittext/drd64_libedittext_file.c
libedittext/drd64_libedittext_lineinfo.c

index a822183..85bd0bc 100644 (file)
@@ -89,6 +89,8 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_PTN_INETADDR                0x000a0000
 #define        DRD64_ERROR_PTN_NCURSES                 0x000b0000
 #define        DRD64_ERROR_PTN_FAILED_ARG              0x000c0000
+#define        DRD64_ERROR_PTN_LESSBUFFER              0x000d0000
+#define        DRD64_ERROR_PTN_NULLPTR                 0x000e0000
 #define        DRD64_ERROR_PTN_CALLFUNC                0x000f0000
 #define        DRD64_ERROR_PTN_BUG                             0x00ff0000
 
index 8866d42..3a69fe6 100644 (file)
@@ -115,6 +115,10 @@ int
                                pstr_errptn     = "NCurses Lib.Call Error.";            break;
                case DRD64_ERROR_PTN_FAILED_ARG:
                                pstr_errptn     = "Failed Operand Value";                       break;
+               case DRD64_ERROR_PTN_LESSBUFFER:
+                               pstr_errptn     = "Less Buffer Size";   break;
+               case DRD64_ERROR_PTN_NULLPTR:
+                               pstr_errptn     = "NULL Pointer";               break;
                case DRD64_ERROR_PTN_CALLFUNC:
                                pstr_errptn     = "Call Function Internal Error";       break;
                case DRD64_ERROR_PTN_BUG:
index 76cd468..d592238 100644 (file)
@@ -37,9 +37,15 @@ Comment:
 #define        DRD64_SRC_LIBEDITTEXT_FILE
 #include"drd64_libedittext.h"
 
+#define        DRD64_SRC_LIBEDITTEXT_FILE_SRCID        0x02
+#define        LOCATION(n)     DRD64_ERR_LOCATION( \
+                                               DRD64_ERROR_MODULE_LIBEDITTEXT, DRD64_ERROR_ARCH_NODEPEND, \
+                                               DRD64_SRC_LIBEDITTEXT_FILE_SRCID, (n))
+
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_File_CatPathFilename 0x01
 int
        LibEditText_File_CatPathFilename(
                        char    *pstr_fullpath,
@@ -49,12 +55,26 @@ int
        size_t  sz_path;
        size_t  sz_fname;
        
-       if((NULL == pstr_fullpath) ||( NULL == pstr_path) || (NULL == pstr_filename ))
-               { return -0x01; }
+       if((NULL == pstr_fullpath) ||( NULL == pstr_path) || (NULL == pstr_filename ))  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_File_CatPathFilename ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
 
        sz_path         = strnlen( pstr_path, DRD64_MAX_PATH );
        sz_fname        = strnlen( pstr_filename, DRD64_MAX_PATH );
-       if( DRD64_MAX_PATH < (sz_path + sz_fname) )             { return -0x02; }
+       if( DRD64_MAX_PATH < (sz_path + sz_fname) )             {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_LESSBUFFER, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_File_CatPathFilename ),
+                               errno, (QWord)sz_path, (QWord)sz_fname, __LINE__ ); 
+
+               return -0x02;
+       }
+
        strncpy( pstr_fullpath, pstr_path, DRD64_MAX_PATH );
        strcat( pstr_fullpath, "/" );
        strncat( pstr_fullpath, pstr_filename, DRD64_MAX_PATH );
@@ -65,6 +85,7 @@ int
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_File_ReadTextFile    0x02
 int
        LibEditText_File_ReadTextFile(
                        LibEditText_TextInfo            *p_tinfo,
@@ -84,11 +105,23 @@ int
 
        dw_allocsize    = dw_maxlength + DRD64_LIBEDITTEXT_DEFAULT_READBUF + 1;
        pb_buffer       = (Byte *)malloc( dw_allocsize );
-       if( NULL == pb_buffer )         { return -0x01; }
+       if( NULL == pb_buffer )         {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_File_ReadTextFile ),
+                               errno, (QWord)dw_allocsize, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
        memset( pb_buffer, 0x00, dw_maxlength + 1 );
 
        i_fd    = open( pstr_filepath, O_RDWR );
        if( 0x00 > i_fd )       {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_SYSCALL, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_File_ReadTextFile ),
+                               errno, (QWord)i_fd, (QWord)0x00, __LINE__ ); 
+
                i_result        = -0x02;
                goto goto_LibEditText_File_ReadTextFile_post;
        }
@@ -101,6 +134,11 @@ int
        do      {
                sz_read = read( p_tinfo->i_fd, pb_start, DRD64_LIBEDITTEXT_DEFAULT_READBUF );
                if( 0 >= sz_read )      {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_SYSCALL, 0x01, 0x03 ),
+                                       LOCATION( FUNCID_LibEditText_File_ReadTextFile ),
+                                       errno, (QWord)sz_read, (QWord)0x00, __LINE__ ); 
+
                        i_result        = -0x03;
                        goto goto_LibEditText_File_ReadTextFile_post;
                }
@@ -131,11 +169,23 @@ int
                dw_nowrow++;
        }
        else if( dw_nowrow != p_tinfo->dw_maxline )     {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_BUG, 0x01, 0x04 ),
+                               LOCATION( FUNCID_LibEditText_File_ReadTextFile ),
+                               errno, (QWord)dw_nowrow, (QWord)p_tinfo->dw_maxline, __LINE__ ); 
+
                i_result        =  -0x04;
        }
 
        i_result        = LibEditText_Section_ConstractSection( p_tinfo );
-       if( 0x00 != i_result )  { return i_result; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x05 ),
+                               LOCATION( FUNCID_LibEditText_File_ReadTextFile ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return i_result;
+       }
 
 goto_LibEditText_File_ReadTextFile_post:
        free( pb_buffer );
@@ -147,6 +197,7 @@ goto_LibEditText_File_ReadTextFile_post:
 /*----------------------------------------------------------------------
 Open Text File 
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_OpenTextFile 0x03
 LIBEDITTEXT_API_FILE
 int
        LibEditText_OpenTextFile(
@@ -162,16 +213,37 @@ int
        DWord   dw_bufsize;
        
        i_result        = LibEditText_File_CatPathFilename( str_filepath, pstr_path, pstr_filename );
-       if( 0x00 != i_result )  { return -0x01; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_OpenTextFile ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
 
        /* Get FileSize & Judge text-file & Count TextLines */
        i_result        = LibFileType_CheckFileType( &t_ftype, str_filepath );
-       if( 0x00 != i_result )  { return -0x02; }
-       if( DRD64_LIBFILETYPE_TEXT != t_ftype.b_type )  { return -0x03; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_OpenTextFile ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x02;
+       }
+       if( DRD64_LIBFILETYPE_TEXT != t_ftype.b_type )  { return 0x03; }
 
        /* Alloc TextInfo Struct. */
        p_tinfo = LibEditText_System_AllocTextInfo();
-       if( NULL == p_tinfo )   { return -0x04; }
+       if( NULL == p_tinfo )   {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x04 ),
+                               LOCATION( FUNCID_LibEditText_OpenTextFile ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x04;
+       }
 
        /* Alloc File-Buffer */
        dw_maxline      = (DWord)t_ftype.dw_lines;
@@ -182,7 +254,14 @@ int
                                        + ((dw_bufline - dw_maxline) * DRD64_LIBEDITTEXT_DEFAULT_BUFSIZE_RESERVELINE);
        i_result        = LibEditText_System_InitTextInfo( p_tinfo, t_ftype.w_subtype,
                                                                                dw_maxline, dw_bufline, dw_bufsize );
-       if( 0x00 != i_result )  { return -0x05; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x05 ),
+                               LOCATION( FUNCID_LibEditText_OpenTextFile ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x05;
+       }
 
        strncpy( p_tinfo->str_pathname, pstr_path, DRD64_MAX_PATH );
        strncpy( p_tinfo->str_filename, pstr_filename, DRD64_MAX_PATH );
@@ -190,7 +269,14 @@ int
        /* Read Textfile & Generate LineInfo */
        i_result        = LibEditText_File_ReadTextFile(
                                        p_tinfo, str_filepath, t_ftype.dw_filesize, t_ftype.dw_maxlength );
-       if( 0x00 != i_result )  { return -0x06; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x06 ),
+                               LOCATION( FUNCID_LibEditText_OpenTextFile ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x06;
+       }
 
        return p_tinfo->i_id;
 }
@@ -199,6 +285,7 @@ int
 /*----------------------------------------------------------------------
 Create Text File
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_CreateTextFile       0x04
 LIBEDITTEXT_API_FILE
 int
        LibEditText_CreateTextFile(
@@ -217,12 +304,26 @@ int
 
        /* Alloc TextInfo Struct. */
        p_tinfo = LibEditText_System_AllocTextInfo();
-       if( NULL == p_tinfo )   { return -0x02; }
+       if( NULL == p_tinfo )   {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_CreateTextFile     ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
        
        if(( NULL != pstr_path) && (NULL != pstr_filename))             {
                i_result        = LibEditText_File_CatPathFilename(
                                                        str_filepath, pstr_path, pstr_filename );
-               if( 0x00 != i_result )  { return -0x01; }
+               if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_CreateTextFile     ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+                       return -0x02;
+               }
 
                i_result        = LibFileType_GetFileType_fromFileName( &t_ftype, str_filepath );
                if( DRD64_LIBFILETYPE_BINARY == t_ftype.b_type )        {
@@ -259,7 +360,14 @@ int
        /* XXX: 0x0001 */
        i_result        = LibEditText_System_InitTextInfo( p_tinfo, 0x0001,
                                                                                dw_maxline, dw_bufline, dw_bufsize );
-       if( 0x00 != i_result )  { return -0x03; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
+                               LOCATION( FUNCID_LibEditText_CreateTextFile     ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x03;
+       }
 
        /* Generate LineInfo (Only First-Line) ---*/
        p_line  = LibEditText_LineInfo_GetEmptyLineInfo( p_tinfo,
@@ -271,10 +379,24 @@ int
        p_tinfo->dw_line_end    = p_line->dw_id;
        
        i_result        = LibEditText_LineInfo_AddSortChain( p_tinfo, p_line ); 
-       if( 0x00 != i_result )  { return -0x02; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x04 ),
+                               LOCATION( FUNCID_LibEditText_CreateTextFile     ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x04;
+       }
 
        i_result        = LibEditText_Section_ConstractSection( p_tinfo );
-       if( 0x00 != i_result )  { return -0x03; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x05 ),
+                               LOCATION( FUNCID_LibEditText_CreateTextFile     ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x05;
+       }
        
        return p_tinfo->i_id;
 }
@@ -283,6 +405,7 @@ int
 /*----------------------------------------------------------------------
 Save Text File
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_SaveTextFile 0x05
 LIBEDITTEXT_API_FILE
 int
        LibEditText_SaveTextFile(
@@ -302,9 +425,23 @@ int
        LibEditText_TextInfo            *p_tinfo;
        LibEditText_LineInfo            *p_line;
 
-       if( 0 > i_tinfoid )             { return -0x01; }
+       if( 0 > i_tinfoid )             {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_SaveTextFile ),
+                               errno, (QWord)i_tinfoid, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
        p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
-       if( NULL == p_tinfo )   { return -0x02; }
+       if( NULL == p_tinfo )   {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_SaveTextFile ),
+                               errno, (QWord)i_tinfoid, (QWord)0x00, __LINE__ ); 
+
+               return -0x02;
+       }
 
        if(( NULL == pstr_path ) || ( NULL == pstr_filename))   {
                i_result        = LibEditText_File_CatPathFilename(
@@ -314,13 +451,27 @@ int
                i_result        = LibEditText_File_CatPathFilename(
                                                str_filepath_tmp, pstr_path, pstr_filename );
        }
-       if( 0x00 != i_result )  { return -0x03; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
+                               LOCATION( FUNCID_LibEditText_SaveTextFile ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x03;
+       }
 
        pstr_filepath   = str_filepath_tmp;
 
        t_mode  = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; 
        i_fd    = open( pstr_filepath, O_RDWR | O_CREAT, t_mode );
-       if( 0x00 > i_fd )       { return -0x04; }
+       if( 0x00 > i_fd )       {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_SYSCALL, 0x01, 0x04 ),
+                               LOCATION( FUNCID_LibEditText_SaveTextFile ),
+                               errno, (QWord)i_fd, (QWord)0x00, __LINE__ ); 
+
+               return -0x04;
+       }
 
        if( -1 < p_tinfo->i_fd )        {
                close( p_tinfo->i_fd );
@@ -332,21 +483,48 @@ int
        }
 
        t_offset        = lseek( p_tinfo->i_fd, 0, SEEK_SET );
-       if( -0x01 == t_offset )         { return -0x10; }
+       if( -0x01 == t_offset )         {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_LIBCALL, 0x01, 0x10 ),
+                               LOCATION( FUNCID_LibEditText_SaveTextFile ),
+                               errno, (QWord)t_offset, (QWord)i_fd, __LINE__ ); 
+
+               return -0x10;
+       }
        
        p_line          = p_tinfo->p_lineinfo;
        for( dw_nowrow = 0; dw_nowrow < p_tinfo->dw_maxline; dw_nowrow++ )      {
                pb_now  = p_tinfo->pb_text + p_line->dw_start;
                if(( dw_nowrow + 1 < p_tinfo->dw_maxline )
-                               && ( '\n' != *(pb_now + p_line->dw_strlen - 1)))
-                       { return -0x12; }
+                                       && ( '\n' != *(pb_now + p_line->dw_strlen - 1)))        {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_BUG, 0x01, 0x12 ),
+                                       LOCATION( FUNCID_LibEditText_SaveTextFile ),
+                                       errno, (QWord)dw_nowrow, (QWord)p_tinfo->dw_maxline, __LINE__ ); 
+
+                       return -0x12;
+               }
 
                sz_write        = write( p_tinfo->i_fd, (void *)pb_now, (size_t)p_line->dw_strlen );
-               if( (size_t)p_line->dw_strlen != sz_write )     { return -0x13; } 
+               if( (size_t)p_line->dw_strlen != sz_write )     {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_SYSCALL, 0x01, 0x13 ),
+                                       LOCATION( FUNCID_LibEditText_SaveTextFile ),
+                                       errno, (QWord)sz_write, (QWord)p_line->dw_strlen, __LINE__ ); 
+
+                       return -0x13;
+               } 
 
                p_line          = LINFO(p_tinfo, p_line->dw_next);
        }
-       if( NULL != p_line )    { return -0x20; }
+       if( NULL != p_line )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_BUG, 0x01, 0x20 ),
+                               LOCATION( FUNCID_LibEditText_SaveTextFile ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x20;
+       }
 
        return 0x00;
 }
@@ -355,6 +533,7 @@ int
 /*----------------------------------------------------------------------
 Close Text File
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_CloseFile    0x06
 LIBEDITTEXT_API_FILE
 int
        LibEditText_CloseFile(
@@ -364,16 +543,37 @@ int
        LibEditText_TextInfo            *p_tinfo;
 
        p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
-       if( NULL == p_tinfo )   { return -0x01; }
+       if( NULL == p_tinfo )   {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_CloseFile ),
+                               errno, (QWord)i_tinfoid, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
 
        close( p_tinfo->i_fd);
        p_tinfo->i_fd   = -1;
 
        i_result        = LibEditText_System_ClearTextInfo( p_tinfo );
-       if( 0x00 != i_result )  { return -0x01; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_CloseFile ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x02;
+       }
 
        i_result        = LibEditText_System_FreeTextInfo( p_tinfo );
-       if( 0x00 != i_result )  { return -0x02; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
+                               LOCATION( FUNCID_LibEditText_CloseFile ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x03;
+       }
 
        return 0x00;
 }
index 335099a..e2695b3 100644 (file)
@@ -37,8 +37,15 @@ Comment:
 #define        DRD64_SRC_LIBEDITTEXT_LINEINFO
 #include"drd64_libedittext.h"
 
+#define        DRD64_SRC_LIBEDITTEXT_LINEINFO_SRCID    0x03
+#define        LOCATION(n)     DRD64_ERR_LOCATION( \
+                                       DRD64_ERROR_MODULE_LIBEDITTEXT, DRD64_ERROR_ARCH_NODEPEND, \
+                                       DRD64_SRC_LIBEDITTEXT_LINEINFO_SRCID, (n))
+
+
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_ClearLineInfo       0x01
 void
        LibEditText_LineInfo_ClearLineInfo(
                LibEditText_LineInfo    *p_line,
@@ -60,6 +67,7 @@ void
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_MemCopy     0x02
 void
        LibEditText_LineInfo_MemCopy(
                Byte    *pb_dest,
@@ -84,6 +92,7 @@ void
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_SwapLineBuffer      0x03
 LIBEDITTEXT_LINEINFO_EXTERN
 void
        LibEditText_LineInfo_SwapLineBuffer(
@@ -102,8 +111,22 @@ void
        assert( NULL != p_src );
 
        // Check Dest(linelen) > Src(linelen) > Dest(strlen) ---
-       if( p_dest->dw_linelen < p_src->dw_linelen )    { return; }
-       if( p_dest->dw_strlen >= p_src->dw_linelen )    { return; }
+       if( p_dest->dw_linelen < p_src->dw_linelen )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_WARNING( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_SwapLineBuffer ),
+                               errno, (QWord)p_dest->dw_linelen, (QWord)p_src->dw_linelen, __LINE__ ); 
+
+               return;
+       }
+       if( p_dest->dw_strlen >= p_src->dw_linelen )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_SwapLineBuffer ),
+                               errno, (QWord)p_dest->dw_strlen, (QWord)p_src->dw_linelen, __LINE__ ); 
+
+               return;
+       }
 
        // Prepare ---
        pb_oldsrc       = p_tinfo->pb_text + p_src->dw_start;
@@ -146,6 +169,7 @@ void
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_MigrateLineBuffer   0x04
 void
        LibEditText_LineInfo_MigrateLineBuffer(
                LibEditText_TextInfo    *p_tinfo,
@@ -176,6 +200,7 @@ void
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_SearchChain 0x05
 LibEditText_LineInfo   *
        LibEditText_LineInfo_SearchChain(
                LibEditText_TextInfo    *p_tinfo, 
@@ -207,6 +232,11 @@ LibEditText_LineInfo       *
        p_lnow          = NULL;
        i_cnt           = -1;
 
+       LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_NOEXIST, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibEditText_LineInfo_SearchChain ),
+                       errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
 goto_LibEditText_LineInfo_SearchChain_post:
        if( NULL != pp_lbefore )        { *pp_lbefore   = p_lbefore; }
        *pi_element     = i_cnt;
@@ -216,6 +246,7 @@ goto_LibEditText_LineInfo_SearchChain_post:
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_DeliveryLineInfo    0x06
 LIBEDITTEXT_LINEINFO_EXTERN
 LibEditText_LineInfo   *
        LibEditText_LineInfo_DeliveryLineInfo(
@@ -235,15 +266,32 @@ LibEditText_LineInfo      *
                i_result        = LibEditText_System_ExpandTextBuffer(
                                                                                p_tinfo, dw_expandsize );
                if( 0x00 != i_result )  {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
+                                       LOCATION( FUNCID_LibEditText_LineInfo_DeliveryLineInfo ),
+                                       errno, (QWord)i_result, (QWord)dw_expandsize, __LINE__ ); 
+
                        return NULL;
                }
        }
 
        i_result        = LibEditText_LineInfo_ExpandLineInfo( p_tinfo, 0 );
-       if( 0x00 != i_result )  { return NULL; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_DeliveryLineInfo ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return NULL;
+       }
 
        p_line  = LINFO(p_tinfo, p_tinfo->dw_empty[0]);
        if( NULL == p_line )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NULLPTR, 0x01, 0x03 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_DeliveryLineInfo ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
                return NULL;
        }       
 
@@ -263,6 +311,7 @@ LibEditText_LineInfo        *
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_ExpandLineBuffer    0x06
 LIBEDITTEXT_LINEINFO_EXTERN
 int
        LibEditText_LineInfo_ExpandLineBuffer(
@@ -281,13 +330,27 @@ int
 
        if( p_tinfo->dw_lastsize == p_line->dw_start + p_line->dw_linelen )     {
                i_result        = LibEditText_LineInfo_RemoveSortChain( p_tinfo, p_line );
-               if( 0x00 != i_result )  { return -0x02; }
+               if( 0x00 != i_result )  {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
+                                       LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+                       return -0x01;
+               }
                
                p_line->dw_linelen              += dw_expandsize;
                p_tinfo->dw_lastsize    += dw_expandsize;
 
                i_result        = LibEditText_LineInfo_AddSortChain( p_tinfo, p_line );
-               if( 0x00 != i_result )  { return -0x03; }
+               if( 0x00 != i_result )  {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
+                                       LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+                       return -0x02;
+               }
 
                goto goto_LibEditText_LineInfo_ExpandLineBuffer_post;
        }
@@ -301,35 +364,91 @@ int
                                &p_lbefore, (p_line->dw_strlen + 1) );
        if( NULL != p_lnow )    {
                i_result        = LibEditText_LineInfo_RemoveSortChain( p_tinfo, p_line );
-               if( 0x00 != i_result )  { return -0x02; }
+               if( 0x00 != i_result )  {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x11 ),
+                                       LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+                       return -0x11;
+               }
 
                i_result        = LibEditText_LineInfo_RemoveSortChain( p_tinfo, p_lnow );
-               if( 0x00 != i_result )  { return -0x02; }
+               if( 0x00 != i_result )  {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x12 ),
+                                       LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+                       return -0x12;
+               }
 
                LibEditText_LineInfo_SwapLineBuffer( p_tinfo, p_lnow, p_line );
 
                i_result        = LibEditText_LineInfo_AddSortChain( p_tinfo, p_lnow );
-               if( 0x00 != i_result )  { return -0x03; }
+               if( 0x00 != i_result )  {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x13 ),
+                                       LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+                       return -0x13;
+               }
 
                i_result        = LibEditText_LineInfo_AddSortChain( p_tinfo, p_line );
-               if( 0x00 != i_result )  { return -0x03; }
+               if( 0x00 != i_result )  {
+                       LibBrownie_Error_SetErrorInfo(
+                                       DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x14 ),
+                                       LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                                       errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+                       return -0x14;
+               }
 
                goto goto_LibEditText_LineInfo_ExpandLineBuffer_post;
        }
 
        i_result        = LibEditText_LineInfo_RemoveSortChain( p_tinfo, p_line );
-       if( 0x00 != i_result )  { return -0x02; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x21 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x21;
+       }
 
        p_lnow  = LibEditText_LineInfo_DeliveryLineInfo( p_tinfo, dw_linesize );
-       if( NULL == p_lnow )    { return -0x01; }
+       if( NULL == p_lnow )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x22 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x22;
+       }
 
        LibEditText_LineInfo_MigrateLineBuffer( p_tinfo, p_line, p_lnow );
 
        i_result        = LibEditText_LineInfo_SetEmptyLineChain( p_tinfo, p_lnow );
-       if( 0x00 != i_result )  { return -0x04; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x23 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x23;
+       }
 
        i_result        = LibEditText_LineInfo_AddSortChain( p_tinfo, p_line );
-       if( 0x00 != i_result )  { return -0x03; }
+       if( 0x00 != i_result )  {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x24 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineBuffer ),
+                               errno, (QWord)i_result, (QWord)0x00, __LINE__ ); 
+
+               return -0x24;
+       }
 
 goto_LibEditText_LineInfo_ExpandLineBuffer_post:
 
@@ -339,6 +458,7 @@ goto_LibEditText_LineInfo_ExpandLineBuffer_post:
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_GetEmptyLineInfo    0x07
 LIBEDITTEXT_LINEINFO_EXTERN
 LibEditText_LineInfo   *
        LibEditText_LineInfo_GetEmptyLineInfo(
@@ -380,6 +500,7 @@ goto_LibEditText_LineInfo_GetEmptyLineInfo_post:
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_SetEmptyLineChain   0x08
 LIBEDITTEXT_SYSTEM_EXTERN
 int
        LibEditText_LineInfo_SetEmptyLineChain(
@@ -393,9 +514,30 @@ int
        assert( NULL != p_tinfo );
        assert( NULL != p_line );
 
-       if( INVALID_LINE != p_line->dw_next )           { return -0x01; }
-       if( INVALID_LINE != p_line->dw_before )         { return -0x02; }
-       if( INVALID_LINE != p_line->dw_sortnext )       { return -0x03; }
+       if( INVALID_LINE != p_line->dw_next )           {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_SetEmptyLineChain ),
+                               errno, (QWord)p_line->dw_next, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
+       if( INVALID_LINE != p_line->dw_before )         {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_SetEmptyLineChain ),
+                               errno, (QWord)p_line->dw_before, (QWord)0x00, __LINE__ ); 
+
+               return -0x02;
+       }
+       if( INVALID_LINE != p_line->dw_sortnext )       {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x03 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_SetEmptyLineChain ),
+                               errno, (QWord)p_line->dw_before, (QWord)0x00, __LINE__ ); 
+
+               return -0x03;
+       }
 
        /* Follow if-block is memory-garbage collect proc if this is in last buffer */
        if( p_tinfo->dw_lastsize == p_line->dw_start + p_line->dw_linelen )     {
@@ -434,6 +576,7 @@ goto_LibEditText_LineInfo_SetEmptyLineChain_post:
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_CalcSortChainElement        0x09
 int
        LibEditText_LineInfo_CalcSortChainElement(
                DWord   dw_linelen )
@@ -464,6 +607,7 @@ int
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_RemoveSortChain     0x0a
 LIBEDITTEXT_LINEINFO_EXTERN
 int
        LibEditText_LineInfo_RemoveSortChain(
@@ -480,7 +624,14 @@ int
        assert( 0 != i_element );
 
        p_sort  = LINFO(p_tinfo, p_tinfo->dw_linesort[i_element]);
-       if( NULL == p_sort )    { return -0x01; }
+       if( NULL == p_sort )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NULLPTR, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_RemoveSortChain ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
+       }
 
        p_before        = NULL;
        while(( NULL != p_sort ) && ( p_line != p_sort ))               {
@@ -489,7 +640,14 @@ int
                dw_cnt++;
        }
 
-       if( NULL == p_sort )    { return -0x02; }
+       if( NULL == p_sort )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NULLPTR, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_RemoveSortChain ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x02;
+       }
        assert( p_line == p_sort );
 
        if( NULL != p_before)
@@ -506,6 +664,7 @@ int
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_AddSortChain        0x0b
 LIBEDITTEXT_SYSTEM_EXTERN
 int
        LibEditText_LineInfo_AddSortChain(
@@ -552,6 +711,7 @@ int
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_ExpandLineInfo      0x0c
 int
        LibEditText_LineInfo_ExpandLineInfo(
                LibEditText_TextInfo    *p_tinfo,
@@ -576,7 +736,12 @@ int
        p_line  = (LibEditText_LineInfo *)realloc( p_tinfo->p_lineinfo, 
                                        sizeof( LibEditText_LineInfo ) * dw_newlines );
        if( NULL == p_line )    {
-               return -0x02;
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NULLPTR, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_ExpandLineInfo ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return -0x01;
        }
        p_tinfo->p_lineinfo     = p_line;
 
@@ -594,6 +759,7 @@ int
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibEditText_LineInfo_Init        0x0d
 LIBEDITTEXT_SYSTEM_EXTERN
 LibEditText_LineInfo   *
        LibEditText_LineInfo_Init(
@@ -613,11 +779,18 @@ LibEditText_LineInfo      *
        /* Alloc LineInfo Struct --- */
        p_line  = (LibEditText_LineInfo *)malloc(
                                                        sizeof( LibEditText_LineInfo ) * dw_line );
-       if( NULL == p_line )    { return NULL; }
+       if( NULL == p_line )    {
+               LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NULLPTR, 0x01, 0x01 ),
+                               LOCATION( FUNCID_LibEditText_LineInfo_Init ),
+                               errno, (QWord)0x00, (QWord)0x00, __LINE__ ); 
+
+               return NULL;
+       }
+
        memset( p_line, 0x00, sizeof( LibEditText_LineInfo) * dw_line );
        p_tinfo->p_lineinfo     = p_line;
 
-
        /* Init LineInfo Data --- */
        p_lnow  = p_line;
        for( dw_cnt = 0; dw_cnt < dw_line; dw_cnt++ )   {
@@ -629,4 +802,5 @@ LibEditText_LineInfo        *
        return p_line;
 }
 
+
 /* EOF of drd64_.c ----------------------------------- */