OSDN Git Service

Version 5.91
[vbslib/main.git] / _src / Test / tools / feq / clib.h
index d5e91bb..f9a359a 100644 (file)
@@ -44,6 +44,7 @@ enum { E_UNKNOWN            = E_CATEGORY_COMMON | 0x04 }; /* 1028 */
 enum { E_IN_ERROR           = E_CATEGORY_COMMON | 0x05 }; /* 1029 */\r
 enum { E_IN_FINALLY         = E_CATEGORY_COMMON | 0x06 }; /* 1030 */\r
 enum { E_INVALID_VALUE      = E_CATEGORY_COMMON | 0x07 }; /* 1031 */\r
+enum { E_UNKNOWN_DATA_TYPE  = E_CATEGORY_COMMON | 0x08 }; /* 1032 */\r
 enum { E_NOT_IMPLEMENT_YET  = E_CATEGORY_COMMON | 0x09 }; /* 1033 */\r
 enum { E_ORIGINAL           = E_CATEGORY_COMMON | 0x0A }; /* 1034 */\r
 enum { E_LIMITATION         = E_CATEGORY_COMMON | 0x0F }; /* 1039 */\r
@@ -64,6 +65,7 @@ enum { E_DEBUG_BREAK        = E_CATEGORY_COMMON | 0xDB }; /* 1243 */
 enum { E_EXIT_TEST          = E_CATEGORY_COMMON | 0xE7 }; /* 1255 */\r
 enum { E_FIFO_OVER          = E_CATEGORY_COMMON | 0xF0 }; /* 1264 */\r
 \r
+enum { NOT_FOUND_INDEX = -1 };\r
 \r
  \r
 /*=================================================================*/\r
@@ -109,6 +111,8 @@ enum { E_FIFO_OVER          = E_CATEGORY_COMMON | 0xF0 }; /* 1264 */
  \r
 #include  <direct.h> \r
  \r
+#include  <malloc.h> \r
\r
 /*=================================================================*/\r
 /* <<< [CRT_plus_1/CRT_plus_1.h] >>> */ \r
 /*=================================================================*/\r
@@ -124,6 +128,7 @@ typedef  unsigned int    uint_t;     /* MISRA-C:1998 No.13 */  /* This is not C9
 typedef  unsigned int    uint32_t;   /* For 32bit compiler */\r
 typedef  unsigned short  uint16_t;\r
 typedef  unsigned char   uint8_t;\r
+typedef  unsigned char   byte_t;     /* This is not C99 */\r
 typedef  float           float32_t;  /* This is not C99 */\r
 typedef  double          float64_t;  /* This is not C99 */\r
 typedef  unsigned int    bool_t;     /* MISRA-C:1998 No.13 */  /* This is not C99 */\r
@@ -244,6 +249,26 @@ int  ttoi_ex( const TCHAR* string,  bit_flags_fast32_t options );
 \r
 \r
  \r
+/***********************************************************************\r
+  <<< [PointerType_plus] >>> \r
+************************************************************************/\r
+inline void  PointerType_plus( const void* in_out_Element, int PlusMinusByte )\r
+{\r
+       *(int8_t**) in_out_Element = *(int8_t**) in_out_Element + PlusMinusByte;\r
+}\r
+\r
+\r
\r
+/***********************************************************************\r
+  <<< [PointerType_diff] >>> \r
+************************************************************************/\r
+inline ptrdiff_t  PointerType_diff( const void* PointerA, const void* PointerB )\r
+{\r
+       return  (uintptr_t) PointerA - (uintptr_t) PointerB;\r
+}\r
+\r
+\r
\r
 /*=================================================================*/\r
 /* <<< [Error4_Inline/Error4_Inline.h] >>> */ \r
 /*=================================================================*/\r
@@ -364,14 +389,17 @@ struct _Set2_IteratorClass {
 };\r
 \r
 #define  Set2_initConst( m )  ( (m)->First = NULL, (m)->Next = NULL )\r
-int  Set2_init( Set2* m, int FirstSize );\r
-int  Set2_finish( Set2* m, int e );\r
+errnum_t  Set2_init( Set2* m, int FirstSize );\r
+errnum_t  Set2_finish( Set2* m, errnum_t e );\r
 #define  Set2_isInited( m )  ( (m)->First != NULL )\r
 \r
+#define  Set2_allocate( m, pp ) \\r
+       Set2_alloc_imp( m, (void*)(pp), sizeof(**(pp)) )\r
+\r
 #define  Set2_alloc( m, pp, type ) \\r
        Set2_alloc_imp( m, (void*)(pp), sizeof(type) )\r
 \r
-int  Set2_alloc_imp( Set2* m, void* pm, size_t size );\r
+errnum_t  Set2_alloc_imp( Set2* m, void* pm, size_t size );\r
 \r
 #define  Set2_push( m, pp, type ) \\r
        Set2_alloc_imp( m, (void*)(pp), sizeof(type) )\r
@@ -379,7 +407,11 @@ int  Set2_alloc_imp( Set2* m, void* pm, size_t size );
 #define  Set2_pop( m, pp, type ) \\r
        Set2_pop_imp( m, (void*)(pp), sizeof(type) )\r
 \r
-int  Set2_pop_imp( Set2* m, void* pp, size_t size );\r
+errnum_t  Set2_pop_imp( Set2* m, void* pp, size_t size );\r
+\r
+#define  Set2_free( m, pp, e ) \\r
+       Set2_free_imp( m, pp, sizeof(**(pp)), e )\r
+errnum_t  Set2_free_imp( Set2* self,  void* in_PointerOfPointer,  size_t  in_Size_ofElement,  errnum_t  e );\r
 \r
 #define  Set2_freeLast( m, p, type, e ) \\r
        ( ((char*)(m)->Next - sizeof(type) == (char*)(p)) ? \\r
@@ -395,11 +427,11 @@ int  Set2_pop_imp( Set2* m, void* pp, size_t size );
 \r
 #define  Set2_expandIfOverByOffset( m, Size ) \\r
        Set2_expandIfOverByAddr( m, (char*)(m)->First + (Size) )\r
-int  Set2_expandIfOverByAddr_imp( Set2* m, void* OverAddrBasedOnNowFirst );\r
+errnum_t  Set2_expandIfOverByAddr_imp( Set2* m, void* OverAddrBasedOnNowFirst );\r
 \r
 #define  Set2_allocMulti( m, out_pElem, ElemType, nElem ) \\r
        Set2_allocMulti_sub( m, (void*)(out_pElem), sizeof(ElemType) * (nElem) )\r
-int  Set2_allocMulti_sub( Set2* m, void* out_pElem, size_t ElemsSize );\r
+errnum_t  Set2_allocMulti_sub( Set2* m, void* out_pElem, size_t ElemsSize );\r
 \r
 #define  Set2_forEach( self, Item, Item_Over, Type ) \\r
        *(Item) = (Type*)( (self)->First ),  *(Item_Over) = (Type*)( (self)->Next ); \\r
@@ -438,18 +470,31 @@ inline void  Set2_forEach2_3( Set2* self, Set2_IteratorClass* Iterator,  void* o
 }\r
 \r
 \r
+#define  Set2_getArray( self, out_Array, out_Count ) \\r
+       ( ( *(void**)(out_Array) = (self)->First, \\r
+       *(out_Count) = ( (byte_t*) (self)->Next - (byte_t*) (self)->First ) / sizeof(**(out_Array))), 0 )\r
+\r
+#define  Set2_refer( m, iElem, out_pElem ) \\r
+       Set2_ref_imp( m, iElem, out_pElem, sizeof(**(out_pElem)) )\r
+\r
 #define  Set2_ref( m, iElem, out_pElem, ElemType ) \\r
        Set2_ref_imp( m, iElem, out_pElem, sizeof(ElemType) )\r
 \r
-int  Set2_ref_imp( Set2* m, int iElem, void* out_pElem, size_t ElemSize );\r
+errnum_t  Set2_ref_imp( Set2* m, int iElem, void* out_pElem, size_t ElemSize );\r
+\r
+#define  Set2_isEmpty( m ) \\r
+       ( (m)->Next == (m)->First )\r
 \r
 #define  Set2_getCount( m, Type ) \\r
-       ( (Type*)(m)->Next - (Type*)(m)->First )\r
+       ( ( (byte_t*)(m)->Next - (byte_t*)(m)->First ) / sizeof(Type) )\r
+\r
+#define  Set2_getCountMax( m, Type ) \\r
+       ( ( (byte_t*)(m)->Over - (byte_t*)(m)->First ) / sizeof(Type) )\r
 \r
 #define  Set2_checkPtrInArr( m, p ) \\r
        ( (m)->First <= (p) && (p) < (m)->Over ? 0 : E_NOT_FOUND_SYMBOL )\r
 \r
-int  Set2_separate( Set2* m, int NextSize, void** allocate_Array );\r
+errnum_t  Set2_separate( Set2* m, int NextSize, void** allocate_Array );\r
 \r
 #ifdef _DEBUG\r
 void  Set2_setDebug( Set2* m, void* PointerOfDebugArray );\r
@@ -509,16 +554,21 @@ int      GetDebugBreakCount(void);
 \r
 errnum_t  StrT_cpy( TCHAR* Dst, size_t DstSize, const TCHAR* Src );\r
 errnum_t  StrT_cat( TCHAR* Dst, size_t DstSize, const TCHAR* Src );\r
+TCHAR*  StrT_chr( const TCHAR* String, TCHAR Key );\r
 TCHAR*  StrT_chrs( const TCHAR* s, const TCHAR* keys );\r
 TCHAR*  StrT_rstr( const TCHAR* String, const TCHAR* SearchStart, const TCHAR* Keyword,\r
        void* NullConfig );\r
+TCHAR*  StrT_chrNext( const TCHAR* in_Start, TCHAR in_KeyCharactor );\r
 TCHAR*  StrT_skip( const TCHAR* s, const TCHAR* keys );\r
 TCHAR*  StrT_rskip( const TCHAR* String, const TCHAR* SearchStart, const TCHAR* Keys,\r
        void* NullConfig );\r
 bool    StrT_isCIdentifier( TCHAR Character );\r
 TCHAR*  StrT_searchOverOfCIdentifier( const TCHAR* Text );\r
+TCHAR*  StrT_searchOverOfIdiom( const TCHAR* Text );\r
 int  StrT_cmp_part( const TCHAR* StringA_Start, const TCHAR* StringA_Over,\r
        const TCHAR* StringB );\r
+int  StrT_cmp_i_part( const TCHAR* StringA_Start, const TCHAR* StringA_Over,\r
+       const TCHAR* StringB );\r
 int  StrT_cmp_part2( const TCHAR* StringA_Start, const TCHAR* StringA_Over,\r
        const TCHAR* StringB_Start, const TCHAR* StringB_Over );\r
 #define  TwoChar8( Character1, Character2 ) \\r
@@ -552,13 +602,30 @@ errnum_t  MallocAndCopyStringByLength( const TCHAR** out_NewString, const TCHAR*
        #define  MallocAndCopyString_char  MallocAndCopyString\r
 #endif\r
 \r
+errnum_t  StrHS_insert( TCHAR**  in_out_WholeString,\r
+       int  in_TargetIndexInWholeString,  int*  out_NextWholeInWholeString,\r
+       const TCHAR*  in_InsertString );\r
+errnum_t  StrHS_printf( TCHAR**  in_out_String,  const TCHAR*  in_Format,  ... );\r
+errnum_t  StrHS_printfV( TCHAR**  in_out_String,  const TCHAR*  in_Format,  va_list  in_VaList );\r
+errnum_t  StrHS_printfPart( TCHAR**  in_out_String,\r
+       int  in_IndexInString,  int*  out_NextIndexInString,\r
+       const TCHAR*  in_Format,  ... );\r
+errnum_t  StrHS_printfPartV( TCHAR**  in_out_String,\r
+       int  in_IndexInString,  int*  out_NextIndexInString,\r
+       const TCHAR*  in_Format,  va_list  in_VaList );\r
+\r
+\r
  \r
 /***********************************************************************\r
   <<< [StrT_Edit] >>> \r
 ************************************************************************/\r
+errnum_t  StrT_cutPart( TCHAR*  in_out_String,  TCHAR*  in_StartOfCut,  TCHAR*  in_OverOfCut );\r
 errnum_t  StrT_trim( TCHAR* out_Str, size_t out_Str_Size, const TCHAR* in_Str );\r
 errnum_t  StrT_cutLastOf( TCHAR* in_out_Str, TCHAR Charactor );\r
 errnum_t  StrT_cutLineComment( TCHAR* out_Str, size_t out_Str_Size, const TCHAR* in_Str, const TCHAR* CommentSign );\r
+errnum_t  StrT_insert( TCHAR*  in_out_WholeString,  size_t  in_MaxSize_of_WholeString,\r
+       TCHAR*  in_out_Target_in_WholeString,  TCHAR**  out_NextTarget_in_WholeString,\r
+       const TCHAR*  in_InsertString );\r
 errnum_t  StrT_meltCmdLine( TCHAR* out_Str, size_t out_Str_Size, const TCHAR** pLine );\r
 errnum_t  StrT_getExistSymbols( unsigned* out, bool bCase, const TCHAR* Str, const TCHAR* Symbols, ... );\r
 errnum_t  StrT_replace1( TCHAR* in_out_String, TCHAR FromCharacter, TCHAR ToCharacter,\r
@@ -587,6 +654,7 @@ enum { StrT_LocalPathMaxSize = 4096 };
 enum { MAX_LOCAL_PATH = 4096 };\r
 TCHAR*  StrT_refFName( const TCHAR* s );\r
 TCHAR*  StrT_refExt( const TCHAR* s );\r
+void  StrT_cutFragmentInPath( TCHAR* in_out_Path );\r
 bool  StrT_isFullPath( const TCHAR* s );\r
 \r
 errnum_t  StrT_getFullPath_part( TCHAR* Str, size_t StrSize, TCHAR* StrStart,\r
@@ -600,6 +668,7 @@ errnum_t  StrT_getBaseName_part( TCHAR* Str, size_t StrSize, TCHAR* StrStart,
        TCHAR** out_StrLast, const TCHAR* SrcPath );\r
 errnum_t  StrT_addLastOfFileName( TCHAR* out_Path, size_t PathSize,\r
                              const TCHAR* BasePath, const TCHAR* AddName );\r
+errnum_t  StrT_encodeToValidPath( TCHAR* out_Path,  size_t in_OutPathSize,  const TCHAR* in_Path,  bool  in_IsName );\r
 \r
 inline errnum_t  StrT_getFullPath( TCHAR* out_FullPath, size_t FullPathSize,\r
        const TCHAR* StepPath, const TCHAR* BasePath )\r
@@ -626,11 +695,11 @@ inline errnum_t  StrT_getBaseName( TCHAR* Str, size_t StrSize, const TCHAR* SrcP
 ***************************************************************************/\r
 typedef  struct _Strs  Strs;\r
 struct _Strs {\r
-       char*   MemoryAddress;   /* first memory = [ TCHAR* FirstStr | elem[] ],  other memory = [ elem[] ] */\r
-       char*   MemoryOver;\r
-       char*   NextElem;        /* elem = [ TCHAR* NextStr | TCHAR[] ] */\r
-       TCHAR** PointerToNextStrInPrevElem;  /* first = &FirstStr,  other = &NextStr */\r
-       TCHAR** Prev_PointerToNextStrInPrevElem;\r
+       byte_t*  MemoryAddress;   /* first memory = [ TCHAR* FirstStr | elem[] ],  other memory = [ elem[] ] */\r
+       byte_t*  MemoryOver;\r
+       byte_t*  NextElem;        /* elem = [ TCHAR* NextStr | TCHAR[] ] */\r
+       TCHAR**  PointerToNextStrInPrevElem;  /* first = &FirstStr,  other = &NextStr */\r
+       TCHAR**  Prev_PointerToNextStrInPrevElem;\r
 \r
        Strs*   FirstOfStrs;\r
        Strs*   NextStrs;\r
@@ -665,11 +734,13 @@ TCHAR*  Strx_getNext( Strs* m, TCHAR* Str );
        ( *( (TCHAR**)(p) - 1 ) )\r
 \r
 #define  Strs_getFreeAddr( m )  ( (TCHAR*)( (m)->NextElem + sizeof(TCHAR*) ) )\r
-#define  Strs_getFreeSize( m )  ( (m)->MemoryOver - (char*)(m)->NextElem - sizeof(TCHAR*) )\r
+#define  Strs_getFreeSize( m )  ( (m)->MemoryOver - (byte_t*)(m)->NextElem - sizeof(TCHAR*) )\r
 #define  Strs_getFreeCount( m ) ( Strs_getFreeSize( m ) / sizeof(TCHAR) )\r
 #define  Strs_expandCount( m, c )  ( Strs_expandSize( (m), (c) * sizeof(TCHAR) ) )\r
 errnum_t  Strs_expandSize( Strs* m, size_t FreeSize );\r
 errnum_t  Strs_commit( Strs* m, TCHAR* StrOver );\r
+errnum_t  Strs_allocateArray( Strs* self,  TCHAR*** out_PointerArray,  int* out_Count );\r
+\r
 \r
  \r
 /***********************************************************************\r
@@ -845,6 +916,12 @@ inline errnum_t  FreeMemory( const void* in_out_MemoryAddress, errnum_t e )
  \r
 #endif\r
 \r
+#ifndef  NDEBUG\r
+       #define  ERR2_ENABLE_ERROR_LOG  1\r
+#else\r
+       #define  ERR2_ENABLE_ERROR_LOG  0\r
+#endif\r
+\r
 /*[dll_global_g_Error]*/\r
 #ifndef  dll_global_g_Error\r
        #define  dll_global_g_Error\r
@@ -945,6 +1022,7 @@ errnum_t  SaveWindowsLastError(void);
   <<< [stdio] >>> \r
 ************************************************************************/\r
 void  Error4_showToStdErr( int err_num );\r
+void  Error4_showToStdIO( FILE* out, int err_num );\r
 \r
 \r
  \r
@@ -1134,6 +1212,22 @@ errnum_t  FileT_closeAndNULL( FILE** in_out_File, errnum_t e );
 \r
 \r
  \r
+/***********************************************************************\r
+* Class: ViewOfFileClass\r
+************************************************************************/\r
+typedef struct _ViewOfFileClass  ViewOfFileClass;\r
+struct _ViewOfFileClass {\r
+       byte_t* Data;\r
+       size_t  Size;\r
+       HANDLE  File;\r
+       HANDLE  Memory;\r
+};\r
+void      ViewOfFileClass_initConst( ViewOfFileClass* self );\r
+errnum_t  ViewOfFileClass_initializeFromBinaryFile( ViewOfFileClass* self,  const TCHAR* Path );\r
+errnum_t  ViewOfFileClass_finalize( ViewOfFileClass* self,  errnum_t e );\r
+\r
+\r
\r
 #if  __cplusplus\r
  }  /* End of C Symbol */ \r
 #endif\r