mirror of
git://git.psyc.eu/libpsyc
synced 2024-08-15 03:19:02 +00:00
text: moved inline functions to .h, fixed warnings
This commit is contained in:
parent
7320d5671e
commit
9941b82761
3 changed files with 44 additions and 50 deletions
|
@ -38,21 +38,46 @@ typedef struct
|
|||
* number of bytes written. 0 is a legal return value. Should the
|
||||
* callback return -1, psyc_text leaves the original template text as is.
|
||||
*/
|
||||
typedef psycTextValueRC (*psycTextCB)(char *name, size_t len, psycString *value);
|
||||
typedef psycTextValueRC (*psycTextCB)(const char *name, size_t len, psycString *value);
|
||||
|
||||
inline void psyc_initTextState (psycTextState *state,
|
||||
char *template, size_t tlen,
|
||||
char *buffer, size_t blen);
|
||||
static inline
|
||||
void psyc_initTextState (psycTextState *state,
|
||||
char *template, size_t tlen,
|
||||
char *buffer, size_t blen)
|
||||
{
|
||||
state->cursor = state->written = 0;
|
||||
state->template = psyc_newString(template, tlen);
|
||||
state->buffer = psyc_newString(buffer, blen);
|
||||
state->open = psyc_newString("[", 1);
|
||||
state->close = psyc_newString("]", 1);
|
||||
}
|
||||
|
||||
inline void psyc_initTextState2 (psycTextState* state,
|
||||
char *template, size_t tlen,
|
||||
char *buffer, size_t blen,
|
||||
char *open, size_t openlen,
|
||||
char *close, size_t closelen);
|
||||
static inline
|
||||
void psyc_initTextState2 (psycTextState* state,
|
||||
char *template, size_t tlen,
|
||||
char *buffer, size_t blen,
|
||||
char *open, size_t openlen,
|
||||
char *close, size_t closelen)
|
||||
{
|
||||
state->template = psyc_newString(template, tlen);
|
||||
state->buffer = psyc_newString(buffer, blen);
|
||||
state->open = psyc_newString(open, openlen);
|
||||
state->close = psyc_newString(close, closelen);
|
||||
}
|
||||
|
||||
inline void psyc_setTextBuffer (psycTextState *state, psycString buffer);
|
||||
static inline
|
||||
void psyc_setTextBuffer (psycTextState* state, psycString buffer)
|
||||
{
|
||||
state->buffer = buffer;
|
||||
state->written = 0;
|
||||
}
|
||||
|
||||
inline void psyc_setTextBuffer2 (psycTextState *state, char *buffer, size_t length);
|
||||
static inline
|
||||
void psyc_setTextBuffer2 (psycTextState* state,
|
||||
char *buffer, size_t length)
|
||||
{
|
||||
psyc_setTextBuffer(state, psyc_newString(buffer, length));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills out text templates by asking a callback for content.
|
||||
|
|
38
src/text.c
38
src/text.c
|
@ -1,44 +1,10 @@
|
|||
#include <psyc/lib.h>
|
||||
#include <psyc/text.h>
|
||||
|
||||
inline void psyc_initTextState (psycTextState *state,
|
||||
char *template, size_t tlen,
|
||||
char *buffer, size_t blen)
|
||||
{
|
||||
state->cursor = state->written = 0;
|
||||
state->template = psyc_newString(template, tlen);
|
||||
state->buffer = psyc_newString(buffer, blen);
|
||||
state->open = psyc_newString("[", 1);
|
||||
state->close = psyc_newString("]", 1);
|
||||
}
|
||||
|
||||
inline void psyc_initTextState2 (psycTextState* state,
|
||||
char *template, size_t tlen,
|
||||
char *buffer, size_t blen,
|
||||
char *open, size_t openlen,
|
||||
char *close, size_t closelen)
|
||||
{
|
||||
state->template = psyc_newString(template, tlen);
|
||||
state->buffer = psyc_newString(buffer, blen);
|
||||
state->open = psyc_newString(open, openlen);
|
||||
state->close = psyc_newString(close, closelen);
|
||||
}
|
||||
|
||||
inline void psyc_setTextBuffer (psycTextState* state, psycString buffer)
|
||||
{
|
||||
state->buffer = buffer;
|
||||
state->written = 0;
|
||||
}
|
||||
|
||||
inline void psyc_setTextBuffer2 (psycTextState* state, char *buffer, size_t length)
|
||||
{
|
||||
psyc_setTextBuffer(state, psyc_newString(buffer, length));
|
||||
}
|
||||
|
||||
psycTextRC psyc_text (psycTextState *state, psycTextCB getValue)
|
||||
{
|
||||
char *start = state->template.ptr, *end; // start & end of variable name
|
||||
char *prev = state->template.ptr + state->cursor;
|
||||
const char *start = state->template.ptr, *end; // start & end of variable name
|
||||
const char *prev = state->template.ptr + state->cursor;
|
||||
psycString value;
|
||||
int ret;
|
||||
size_t len;
|
||||
|
|
|
@ -7,21 +7,21 @@
|
|||
|
||||
uint8_t verbose;
|
||||
|
||||
psycTextValueRC getValueFooBar (char *name, size_t len, psycString *value)
|
||||
psycTextValueRC getValueFooBar (const char *name, size_t len, psycString *value)
|
||||
{
|
||||
value->ptr = "Foo Bar";
|
||||
value->length = 7;
|
||||
return PSYC_TEXT_VALUE_FOUND;
|
||||
}
|
||||
|
||||
psycTextValueRC getValueEmpty (char *name, size_t len, psycString *value)
|
||||
psycTextValueRC getValueEmpty (const char *name, size_t len, psycString *value)
|
||||
{
|
||||
value->ptr = "";
|
||||
value->length = 0;
|
||||
return PSYC_TEXT_VALUE_FOUND;
|
||||
}
|
||||
|
||||
psycTextValueRC getValueNotFound (char *name, size_t len, psycString *value)
|
||||
psycTextValueRC getValueNotFound (const char *name, size_t len, psycString *value)
|
||||
{
|
||||
return PSYC_TEXT_VALUE_NOT_FOUND;
|
||||
}
|
||||
|
@ -88,5 +88,8 @@ int main(int argc, char **argv)
|
|||
if (memcmp(result.ptr, PSYC_C2ARG("Hello Foo Bar & Foo Bar!")))
|
||||
return 10 + i;
|
||||
}
|
||||
|
||||
puts("psyc_text passed all tests.");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue