X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_strlist.c;h=4e316dba51015abe1bc13adac173ec2aa3b9e7d9;hp=ee46786e84f705511308250039126a5e9857854b;hb=47be714b40e14b6b5cdc2f35a7994efd13c2076e;hpb=8d05291f42b3b42159b3fe91492aa4862f3d4405 diff --git a/php_http_strlist.c b/php_http_strlist.c index ee46786..4e316db 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-2013, 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];