From: Koine Yuusuke(koinec) Date: Sun, 31 May 2015 20:43:20 +0000 (+0900) Subject: * WorkBackup: 2015/06/01(Mon) AM05:43 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=219dceebed7c2c15741ec2c98a1fc90333249254;p=drdeamon64%2Fdrdeamon64.git * WorkBackup: 2015/06/01(Mon) AM05:43 * Implement: Support drdeamon64 ErrorSystem for drd64_libedittext_file.c * Implement: Support drdeamon64 ErrorSystem for drd64_libedittext_lineinfo.c --- diff --git a/include/drd64_error.h b/include/drd64_error.h index a822183..85bd0bc 100644 --- a/include/drd64_error.h +++ b/include/drd64_error.h @@ -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 diff --git a/libbrownie/drd64_libbrownie_error.c b/libbrownie/drd64_libbrownie_error.c index 8866d42..3a69fe6 100644 --- a/libbrownie/drd64_libbrownie_error.c +++ b/libbrownie/drd64_libbrownie_error.c @@ -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: diff --git a/libedittext/drd64_libedittext_file.c b/libedittext/drd64_libedittext_file.c index 76cd468..d592238 100644 --- a/libedittext/drd64_libedittext_file.c +++ b/libedittext/drd64_libedittext_file.c @@ -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; } diff --git a/libedittext/drd64_libedittext_lineinfo.c b/libedittext/drd64_libedittext_lineinfo.c index 335099a..e2695b3 100644 --- a/libedittext/drd64_libedittext_lineinfo.c +++ b/libedittext/drd64_libedittext_lineinfo.c @@ -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 ----------------------------------- */