You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
4.2 KiB
135 lines
4.2 KiB
|
|
/*
|
|
*
|
|
* This software is released under the provisions of the GPL version 2.
|
|
* see file "COPYING". If that file is not available, the full statement
|
|
* of the license can be found at
|
|
*
|
|
* http://www.fsf.org/licensing/licenses/gpl.txt
|
|
*
|
|
* Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
|
|
*
|
|
*/
|
|
|
|
#ifndef _HXSTRUTL_H_
|
|
#define _HXSTRUTL_H_
|
|
|
|
#include "hlxclib/string.h" /* for strxxx functions */
|
|
#include "hlxclib/stdlib.h" /* for atoi64() and itoa() functionallity */
|
|
|
|
#include "safestring.h"
|
|
|
|
#if !defined(_VXWORKS)
|
|
#ifdef _UNIX
|
|
#include <strings.h>
|
|
#include <ctype.h>
|
|
#endif
|
|
#endif
|
|
#ifdef _MACINTOSH
|
|
#include <ctype.h>
|
|
#endif
|
|
|
|
#include "hxresult.h"
|
|
|
|
#if defined (_MACINTOSH)
|
|
|
|
#define isascii isprint
|
|
|
|
inline const char *AnsiNext(const char* pcPtr) { return( pcPtr + 1 ); }
|
|
inline const char *AnsiPrev(const char * /* pcStart */, const char* pcPtr) { return (pcPtr - 1 ); }
|
|
|
|
int CopyP2CString(ConstStr255Param inSource, char* outDest, int inDestLength);
|
|
void CopyC2PString(const char* inSource, Str255 outDest);
|
|
char WINToMacCharacter( char inWINChar );
|
|
// these functions are used to convert Windows extended chars (used in non-English Roman languages)
|
|
// to Mac extended chars & vice-versa
|
|
void StripWinChars( char* pChars);
|
|
void StripMacChars( char* pChars);
|
|
|
|
inline void pstrcpy(Str255 dst, ConstStr255Param src) { BlockMoveData(src, dst, 1+src[0]); }
|
|
|
|
#ifndef _CARBON
|
|
inline void PStrCopy(StringPtr dest, ConstStr255Param src) { BlockMoveData(src, dest, 1+src[0]); }
|
|
inline void p2cstrcpy(char *dst, ConstStr255Param src) { CopyP2CString(src, dst, 255); }
|
|
inline void c2pstrcpy(Str255 dst, const char * src) { CopyC2PString(src, dst); }
|
|
#endif
|
|
|
|
#endif /* _MACINTOSH */
|
|
|
|
#define CR (CHAR) '\r'
|
|
#define LF (CHAR) '\n'
|
|
#define CRLF "\r\n"
|
|
|
|
#ifdef _WIN32
|
|
#define LINEBREAK "\015\012"
|
|
#define LINEBREAK_LEN 2
|
|
#else
|
|
#define LINEBREAK "\012"
|
|
#define LINEBREAK_LEN 1
|
|
#endif /* _WIN32 */
|
|
|
|
#define LINE_BUFFER_SIZE 4096
|
|
#define MAX_BYTES_PER_COOKIE 4096
|
|
#define MAX_NUMBER_OF_COOKIES 300
|
|
#define MAX_COOKIES_PER_SERVER 20
|
|
|
|
/*
|
|
According to C99 7.4/1:
|
|
---------------
|
|
The header <ctype.h> declares several functions useful for
|
|
classifying and mapping characters. In all cases the argument is an
|
|
int, the value of which shall be representable as an unsigned char or
|
|
shall equal the value of the macro EOF. If the argument has any other
|
|
value, the behavior is undefined.
|
|
---------------
|
|
Typecast the value to an (unsigned char) before passing it to isspace() to ensure that
|
|
if the value is a signed char it doesn't get bit extended on certain (VC) compilers.
|
|
*/
|
|
#define IS_SPACE(x) (isspace((unsigned char) x))
|
|
|
|
#ifdef __cplusplus
|
|
void StrAllocCopy(char*& pDest, const char* pSrc);
|
|
#else
|
|
void StrAllocCopy(char** pDest, const char* pSrc);
|
|
#endif
|
|
char* StripLine(char* pLine);
|
|
|
|
#include "hxtypes.h"
|
|
#include "hxcom.h"
|
|
typedef _INTERFACE IHXValues IHXValues;
|
|
HX_RESULT SaveStringToHeader(IHXValues* /* IN OUT */ pHeader,
|
|
const char* /* IN */ pszKey,
|
|
const char* /* IN */ pszValue);
|
|
|
|
char* StrStrCaseInsensitive(const char* str1, const char* str2);
|
|
char* StrNStr(const char* str1, const char* str2, size_t depth1, size_t depth2);
|
|
char *StrNChr(const char *str, int c, size_t depth);
|
|
char *StrNRChr(const char *str, int c, size_t depth);
|
|
size_t StrNSpn(const char *str1, const char *str2, size_t depth1, size_t depth2);
|
|
size_t StrNCSpn(const char *str1, const char *str2, size_t depth1, size_t depth2);
|
|
|
|
char* StrToUpper(char *pString);
|
|
|
|
/* XXXSMP We can use alloca() on platforms that support it for more speed! */
|
|
#define NEW_FAST_TEMP_STR(NAME, EstimatedBiggestSize, LenNeeded) \
|
|
char __##NAME##__StaticVersion[EstimatedBiggestSize]; \
|
|
char* NAME; \
|
|
UINT32 ulNeeded##NAME##Len = (LenNeeded); \
|
|
\
|
|
if (ulNeeded##NAME##Len <= EstimatedBiggestSize) \
|
|
{ \
|
|
NAME = __##NAME##__StaticVersion; \
|
|
} \
|
|
else \
|
|
{ \
|
|
NAME = new char[ulNeeded##NAME##Len]; \
|
|
}
|
|
|
|
#define DELETE_FAST_TEMP_STR(NAME) \
|
|
if (NAME != __##NAME##__StaticVersion) \
|
|
{ \
|
|
delete[] NAME; \
|
|
}
|
|
|
|
#endif /* _HXSTRUTL_H_ */
|