Skip to content
Snippets Groups Projects
Unverified Commit b5817f55 authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

gluon-web: replace custom strfind() function with memmem()

parent 0ff4761a
No related branches found
No related tags found
No related merge requests found
all: compile all: compile
%.o: %.c %.o: %.c
$(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c -o $@ $< $(CC) $(CPPFLAGS) $(CFLAGS) -D_GNU_SOURCE -fPIC -c -o $@ $<
clean: clean:
rm -f parser.so *.o rm -f parser.so *.o
......
...@@ -34,35 +34,6 @@ static const char *const gen_code[9][2] = { ...@@ -34,35 +34,6 @@ static const char *const gen_code[9][2] = {
{} {}
}; };
/* Simple strstr() like function that takes len arguments for both haystack and needle. */
static char *strfind(char *haystack, int hslen, const char *needle, int ndlen)
{
int match = 0;
int i, j;
for( i = 0; i < hslen; i++ )
{
if( haystack[i] == needle[0] )
{
match = ((ndlen == 1) || ((i + ndlen) <= hslen));
for( j = 1; (j < ndlen) && ((i + j) < hslen); j++ )
{
if( haystack[i+j] != needle[j] )
{
match = 0;
break;
}
}
if( match )
return &haystack[i];
}
}
return NULL;
}
struct template_parser * template_open(const char *file) struct template_parser * template_open(const char *file)
{ {
struct stat s; struct stat s;
...@@ -339,7 +310,7 @@ const char *template_reader(lua_State *L, void *ud, size_t *sz) ...@@ -339,7 +310,7 @@ const char *template_reader(lua_State *L, void *ud, size_t *sz)
/* before tag */ /* before tag */
if (!parser->in_expr) if (!parser->in_expr)
{ {
if ((tag = strfind(parser->off, rem, "<%", 2)) != NULL) if ((tag = memmem(parser->off, rem, "<%", 2)) != NULL)
{ {
template_text(parser, tag); template_text(parser, tag);
parser->off = tag + 2; parser->off = tag + 2;
...@@ -355,7 +326,7 @@ const char *template_reader(lua_State *L, void *ud, size_t *sz) ...@@ -355,7 +326,7 @@ const char *template_reader(lua_State *L, void *ud, size_t *sz)
/* inside tag */ /* inside tag */
else else
{ {
if ((tag = strfind(parser->off, rem, "%>", 2)) != NULL) if ((tag = memmem(parser->off, rem, "%>", 2)) != NULL)
{ {
template_code(parser, tag); template_code(parser, tag);
parser->off = tag + 2; parser->off = tag + 2;
...@@ -383,7 +354,7 @@ int template_error(lua_State *L, struct template_parser *parser) ...@@ -383,7 +354,7 @@ int template_error(lua_State *L, struct template_parser *parser)
int line = 0; int line = 0;
int chunkline = 0; int chunkline = 0;
if ((ptr = strfind((char *)err, strlen(err), "]:", 2)) != NULL) if ((ptr = memmem(err, strlen(err), "]:", 2)) != NULL)
{ {
chunkline = atoi(ptr + 2) - parser->prv_chunk.line; chunkline = atoi(ptr + 2) - parser->prv_chunk.line;
...@@ -397,7 +368,7 @@ int template_error(lua_State *L, struct template_parser *parser) ...@@ -397,7 +368,7 @@ int template_error(lua_State *L, struct template_parser *parser)
} }
} }
if (strfind((char *)err, strlen(err), "'char(27)'", 10) != NULL) if (memmem(err, strlen(err), "'char(27)'", 10) != NULL)
{ {
off = parser->data + parser->size; off = parser->data + parser->size;
err = "'%>' expected before end of file"; err = "'%>' expected before end of file";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment