2011-11-17 02:44:16 +00:00
|
|
|
#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.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
2015-06-30 17:59:00 +00:00
|
|
|
#include "tidyplatform.h"
|
2011-11-17 02:44:16 +00:00
|
|
|
|
|
|
|
#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__ */
|