From 2f51400fefbe74ac44228f4f113aa1df5a535e07 Mon Sep 17 00:00:00 2001 From: _N3m0 Date: Wed, 3 Jan 2024 16:17:52 +0100 Subject: [PATCH] get param but broken --- lexer.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/lexer.c b/lexer.c index f850fc0..2c5e160 100644 --- a/lexer.c +++ b/lexer.c @@ -227,6 +227,32 @@ TokenType token_by_name(const char name[HTML_BALISE_LEN]){ return DONT_CARE; } +char* getParam(const char* word, int len, char* cursor, int* size){ + do { + int succes = 0; + for (int i=0; itype = token_by_name(balise); - token->value = malloc(sizeof(char) * len); - strncpy(token->value, balise, len+1); token->len = len; + token->value = NULL; go_back(); + if (token->type == A){ + token->value = getParam("href", sizeof("href"), cursor, &token->len); + } else if (token->type == IMG){ + int len, srclen, altlen; + char* src = getParam("src", sizeof("src"), cursor, &srclen); + char* alt = getParam("alt", sizeof("alt"), cursor, &altlen); + len = srclen + altlen; + + token->value = malloc(sizeof(char) * (len + 1)); + strncat(token->value, src, srclen); + strncpy(token->value + srclen + 1, alt, altlen); + } + do { cursor = nextchar(); } while (*cursor != '>');