93 lines
2.2 KiB
C
93 lines
2.2 KiB
C
|
#ifndef __TMBSTR_H__
|
||
|
#define __TMBSTR_H__
|
||
|
|
||
|
/* tmbstr.h - Tidy string utility functions
|
||
|
|
||
|
(c) 1998-2006 (W3C) MIT, ERCIM, Keio University
|
||
|
See tidy.h for the copyright notice.
|
||
|
|
||
|
CVS Info :
|
||
|
|
||
|
$Author: arnaud02 $
|
||
|
$Date: 2006/12/29 16:31:09 $
|
||
|
$Revision: 1.11 $
|
||
|
|
||
|
*/
|
||
|
|
||
|
#include "platform.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C"
|
||
|
{
|
||
|
#endif
|
||
|
|
||
|
/* like strdup but using an allocator */
|
||
|
tmbstr TY_(tmbstrdup)( TidyAllocator *allocator, ctmbstr str );
|
||
|
|
||
|
/* like strndup but using an allocator */
|
||
|
tmbstr TY_(tmbstrndup)( TidyAllocator *allocator, ctmbstr str, uint len);
|
||
|
|
||
|
/* exactly same as strncpy */
|
||
|
uint TY_(tmbstrncpy)( tmbstr s1, ctmbstr s2, uint size );
|
||
|
|
||
|
uint TY_(tmbstrcpy)( tmbstr s1, ctmbstr s2 );
|
||
|
|
||
|
uint TY_(tmbstrcat)( tmbstr s1, ctmbstr s2 );
|
||
|
|
||
|
/* exactly same as strcmp */
|
||
|
int TY_(tmbstrcmp)( ctmbstr s1, ctmbstr s2 );
|
||
|
|
||
|
/* returns byte count, not char count */
|
||
|
uint TY_(tmbstrlen)( ctmbstr str );
|
||
|
|
||
|
/*
|
||
|
MS C 4.2 doesn't include strcasecmp.
|
||
|
Note that tolower and toupper won't
|
||
|
work on chars > 127.
|
||
|
|
||
|
Neither do Lexer.ToLower() or Lexer.ToUpper()!
|
||
|
|
||
|
We get away with this because, except for XML tags,
|
||
|
we are always comparing to ascii element and
|
||
|
attribute names defined by HTML specs.
|
||
|
*/
|
||
|
int TY_(tmbstrcasecmp)( ctmbstr s1, ctmbstr s2 );
|
||
|
|
||
|
int TY_(tmbstrncmp)( ctmbstr s1, ctmbstr s2, uint n );
|
||
|
|
||
|
int TY_(tmbstrncasecmp)( ctmbstr s1, ctmbstr s2, uint n );
|
||
|
|
||
|
/* return offset of cc from beginning of s1,
|
||
|
** -1 if not found.
|
||
|
*/
|
||
|
/* int TY_(tmbstrnchr)( ctmbstr s1, uint len1, tmbchar cc ); */
|
||
|
|
||
|
ctmbstr TY_(tmbsubstrn)( ctmbstr s1, uint len1, ctmbstr s2 );
|
||
|
/* ctmbstr TY_(tmbsubstrncase)( ctmbstr s1, uint len1, ctmbstr s2 ); */
|
||
|
ctmbstr TY_(tmbsubstr)( ctmbstr s1, ctmbstr s2 );
|
||
|
|
||
|
/* transform string to lower case */
|
||
|
tmbstr TY_(tmbstrtolower)( tmbstr s );
|
||
|
|
||
|
/* Transform ASCII chars in string to upper case */
|
||
|
tmbstr TY_(tmbstrtoupper)( tmbstr s );
|
||
|
|
||
|
/* Bool TY_(tmbsamefile)( ctmbstr filename1, ctmbstr filename2 ); */
|
||
|
|
||
|
int TY_(tmbvsnprintf)(tmbstr buffer, size_t count, ctmbstr format, va_list args)
|
||
|
#ifdef __GNUC__
|
||
|
__attribute__((format(printf, 3, 0)))
|
||
|
#endif
|
||
|
;
|
||
|
int TY_(tmbsnprintf)(tmbstr buffer, size_t count, ctmbstr format, ...)
|
||
|
#ifdef __GNUC__
|
||
|
__attribute__((format(printf, 3, 4)))
|
||
|
#endif
|
||
|
;
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* extern "C" */
|
||
|
#endif
|
||
|
|
||
|
#endif /* __TMBSTR_H__ */
|