X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_strlist.c;h=f4571780005bf7d3a61bbf4df1ba3cec4425c031;hp=ee46786e84f705511308250039126a5e9857854b;hb=046973e332c1475f9bf7717af9d33a75283deb37;hpb=8d05291f42b3b42159b3fe91492aa4862f3d4405 diff --git a/php_http_strlist.c b/php_http_strlist.c index ee46786..f457178 100644 --- a/php_http_strlist.c +++ b/php_http_strlist.c @@ -6,13 +6,13 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2011, Michael Wallner | + | Copyright (c) 2004-2014, Michael Wallner | +--------------------------------------------------------------------+ */ -#include "php_http.h" +#include "php_http_api.h" -PHP_HTTP_API php_http_strlist_iterator_t *php_http_strlist_iterator_init(php_http_strlist_iterator_t *iter, const char list[], unsigned factor) +php_http_strlist_iterator_t *php_http_strlist_iterator_init(php_http_strlist_iterator_t *iter, const char list[], unsigned factor) { if (!iter) { iter = emalloc(sizeof(*iter)); @@ -25,16 +25,16 @@ PHP_HTTP_API php_http_strlist_iterator_t *php_http_strlist_iterator_init(php_htt return iter; } -PHP_HTTP_API const char *php_http_strlist_iterator_this(php_http_strlist_iterator_t *iter, unsigned *id) +const char *php_http_strlist_iterator_this(php_http_strlist_iterator_t *iter, unsigned *id) { if (id) { - *id = iter->major * iter->factor + iter->minor; + *id = (iter->major + 1) * iter->factor + iter->minor; } return iter->p; } -PHP_HTTP_API const char *php_http_strlist_iterator_next(php_http_strlist_iterator_t *iter) +const char *php_http_strlist_iterator_next(php_http_strlist_iterator_t *iter) { if (*iter->p) { while (*iter->p) { @@ -46,18 +46,19 @@ PHP_HTTP_API const char *php_http_strlist_iterator_next(php_http_strlist_iterato if (!*iter->p) { ++iter->p; ++iter->major; + iter->minor = 0; } } return iter->p; } -PHP_HTTP_API void php_http_strlist_iterator_dtor(php_http_strlist_iterator_t *iter) +void php_http_strlist_iterator_dtor(php_http_strlist_iterator_t *iter) { } -PHP_HTTP_API void php_http_strlist_iterator_free(php_http_strlist_iterator_t **iter) +void php_http_strlist_iterator_free(php_http_strlist_iterator_t **iter) { if (*iter) { efree(*iter); @@ -65,7 +66,7 @@ PHP_HTTP_API void php_http_strlist_iterator_free(php_http_strlist_iterator_t **i } } -PHP_HTTP_API const char *php_http_strlist_find(const char list[], unsigned factor, unsigned item) +const char *php_http_strlist_find(const char list[], unsigned factor, unsigned item) { unsigned M = 0, m = 0, major, minor; const char *p = &list[0];