text: moved inline functions to .h, fixed warnings

This commit is contained in:
tg(x) 2011-05-03 23:03:52 +02:00
parent 51c95d0858
commit c92bfd3a91
3 changed files with 44 additions and 50 deletions

View File

@ -38,21 +38,46 @@ typedef struct
* number of bytes written. 0 is a legal return value. Should the * number of bytes written. 0 is a legal return value. Should the
* callback return -1, psyc_text leaves the original template text as is. * 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, static inline
void psyc_initTextState (psycTextState *state,
char *template, size_t tlen, char *template, size_t tlen,
char *buffer, size_t blen); 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, static inline
void psyc_initTextState2 (psycTextState* state,
char *template, size_t tlen, char *template, size_t tlen,
char *buffer, size_t blen, char *buffer, size_t blen,
char *open, size_t openlen, char *open, size_t openlen,
char *close, size_t closelen); 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. * Fills out text templates by asking a callback for content.

View File

@ -1,44 +1,10 @@
#include <psyc/lib.h> #include <psyc/lib.h>
#include <psyc/text.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) psycTextRC psyc_text (psycTextState *state, psycTextCB getValue)
{ {
char *start = state->template.ptr, *end; // start & end of variable name const char *start = state->template.ptr, *end; // start & end of variable name
char *prev = state->template.ptr + state->cursor; const char *prev = state->template.ptr + state->cursor;
psycString value; psycString value;
int ret; int ret;
size_t len; size_t len;

View File

@ -7,21 +7,21 @@
uint8_t verbose; 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->ptr = "Foo Bar";
value->length = 7; value->length = 7;
return PSYC_TEXT_VALUE_FOUND; 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->ptr = "";
value->length = 0; value->length = 0;
return PSYC_TEXT_VALUE_FOUND; 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; 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!"))) if (memcmp(result.ptr, PSYC_C2ARG("Hello Foo Bar & Foo Bar!")))
return 10 + i; return 10 + i;
} }
puts("psyc_text passed all tests.");
return 0; return 0;
} }