1 /* 2 ***************************************************************** 3 ***************************************************************** 4 ******* ******** 5 ****** Copyright (C) 1988-2010 Tecplot, Inc. ******* 6 ******* ******** 7 ***************************************************************** 8 ***************************************************************** 9 */ 10 #if defined EXTERN 11 # undef EXTERN 12 #endif 13 #if defined STRLISTMODULE 14 # define EXTERN 15 #else 16 # define EXTERN extern 17 #endif 18 19 #if !defined ARRLIST_h 20 # error "Include ARRLIST.h before including STRLIST.h" 21 #endif 22 23 /* 24 * 25 * For building pltview.exe under Windows, we use 26 * tecio.dll (which is linked to pltview). 27 * Since pltview.exe uses a few of the 28 * functions here, they need to be exported into 29 * the tecio.dll, thus "TECXXX.h" is included for the 30 * LIBFUNCTION & LIBCALL keywords. They are not 31 * documented with the other TECXXX() functions, 32 * however. 33 * 34 * If pltview requires other string functions 35 * in the future, they can be added to the dll 36 * by adding LIBFUNCTION & LIBCALL as in 37 * StringListDealloc(), etc. below. 38 * 39 * When building the tecplot kernel, LIBFUNCTION 40 * and LIBCALL are nop's. 41 * 42 */ 43 #include "TECXXX.h" 44 45 EXTERN Boolean_t StringListValid(StringList_pa StringList); 46 EXTERN void StringListClear(StringList_pa StringList); 47 EXTERN void StringListRemoveStrings(StringList_pa StringList, 48 LgIndex_t StringOffset, 49 LgIndex_t Count); 50 EXTERN void StringListRemoveString(StringList_pa StringList, 51 LgIndex_t StringOffset); 52 LIBFUNCTION void LIBCALL StringListDealloc(StringList_pa* StringList); 53 EXTERN StringList_pa StringListAlloc(void); 54 EXTERN Boolean_t StringListAppendString(StringList_pa StringList, 55 char const* String); 56 LIBFUNCTION LgIndex_t LIBCALL StringListCount(StringList_pa StringList); 57 LIBFUNCTION char* LIBCALL StringListGetString(StringList_pa StringList, 58 LgIndex_t StringOffset); 59 60 #if defined USE_MACROS_FOR_FUNCTIONS 61 # define StringListGetStringRef StringListGetStringRef_MACRO 62 #else 63 # define StringListGetStringRef StringListGetStringRef_FUNC 64 #endif 65 66 #if !defined USE_MACROS_FOR_FUNCTIONS 67 EXTERN char const* StringListGetStringRef_FUNC(StringList_pa StringList, 68 LgIndex_t StringOffset); 69 #endif 70 /** 71 * To maintain the string list's integrity the result is cast to a 72 * (char const*) to minimize the risk of users passing the result 73 * to FREE_ARRAY. 74 */ 75 #define StringListGetStringRef_MACRO(StringList, StringOffset) \ 76 static_cast<char const*>(ArrayListGetCharPtr(reinterpret_cast<ArrayList_pa>(StringList), StringOffset)) 77 78 EXTERN Boolean_t StringListSetString(StringList_pa StringList, 79 LgIndex_t StringOffset, 80 char const* String); 81 EXTERN Boolean_t StringListInsertString(StringList_pa StringList, 82 LgIndex_t StringOffset, 83 char const* String); 84 EXTERN StringList_pa StringListCopy(StringList_pa StringList); 85 EXTERN Boolean_t StringListAppend(StringList_pa Target, 86 StringList_pa Source); 87 88 EXTERN char* StringListToNLString(StringList_pa StringList); 89 EXTERN StringList_pa StringListFromNLString(char const* String); 90 EXTERN char** StringListToArray(StringList_pa StringList); 91 EXTERN StringList_pa StringListFromArray(char const** StringArray, 92 LgIndex_t Count); 93 EXTERN StringList_pa StringListFromCompound(char const* String); 94 EXTERN char* StringListToCompound(StringList_pa StringList, 95 char GroupJoinCharacter, 96 char const* CharsToEscape); 97 #if defined TECPLOTKERNEL 98 /* CORE SOURCE CODE REMOVED */ 99 #endif 100