Initial import of NFC GNSS SDK project
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
/*****************************************************************************
|
||||
* Utility Library
|
||||
*
|
||||
* Variable-length string utilities header file
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef _UTL_VSTRING_INCLUDED
|
||||
#define _UTL_VSTRING_INCLUDED
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <utlTypes.h>
|
||||
|
||||
|
||||
/*--- Data Types ------------------------------------------------------------*/
|
||||
|
||||
typedef struct utlVString_S {
|
||||
char *s_p;
|
||||
size_t length; /* length of string in characters */
|
||||
size_t size; /* size of buffer in characters */
|
||||
} utlVString_T, *utlVString_P;
|
||||
typedef const utlVString_T *utlVString_P2c;
|
||||
|
||||
#define utlEMPTY_VSTRING {NULL, 0, 0}
|
||||
|
||||
#define utlVString(v_string_p) ((v_string_p)->s_p)
|
||||
#define utlVStringLength(v_string_p) ((v_string_p)->length)
|
||||
#define utlVStringEnd(v_string_p) ((v_string_p)->s_p + (v_string_p)->length)
|
||||
|
||||
#define utlVStringTruncate(v_string_p, c_p) {*(c_p) = '\0'; (v_string_p)->length = (c_p) - (v_string_p)->s_p;}
|
||||
|
||||
#define utlInitVString(v_string_p) { \
|
||||
(v_string_p)->s_p = NULL; \
|
||||
(v_string_p)->length = 0; \
|
||||
(v_string_p)->size = 0; \
|
||||
}
|
||||
|
||||
|
||||
/*--- Prototypes ------------------------------------------------------------*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern utlReturnCode_T utlVStringReserve(const utlVString_P v_string_p,
|
||||
const size_t n);
|
||||
extern utlReturnCode_T utlVStringCat (const utlVString_P v_string_p,
|
||||
const char *s_p);
|
||||
extern utlReturnCode_T utlVStringFree (const utlVString_P v_string_p);
|
||||
extern int utlVStringVPrintF(const utlVString_P v_string_p,
|
||||
const char *format_p,
|
||||
va_list va_arg_p);
|
||||
extern int utlVStringPrintF (const utlVString_P v_string_p,
|
||||
const char *format_p,
|
||||
...);
|
||||
extern int utlVStringPuts (const utlVString_P2c v_string_p,
|
||||
FILE *file_p);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _UTL_VSTRING_INCLUDED */
|
||||
|
||||
Reference in New Issue
Block a user