From: DINH V. H. <ho...@us...> - 2007-01-28 12:42:44
|
Update of /cvsroot/libetpan/libetpan/src/low-level/feed In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13821/src/low-level/feed Modified Files: newsfeed.c newsfeed_private.c newsfeed_private.h newsfeed_types.h parser.c parser_atom10.c parser_rdf.c parser_rss20.c Log Message: detection for curl and expat Index: newsfeed.c =================================================================== RCS file: /cvsroot/libetpan/libetpan/src/low-level/feed/newsfeed.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- newsfeed.c 18 Jan 2007 09:15:01 -0000 1.1 +++ newsfeed.c 28 Jan 2007 12:42:41 -0000 1.2 @@ -30,15 +30,24 @@ * SUCH DAMAGE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "newsfeed.h" #include <string.h> +#include <stdlib.h> +#include "newsfeed_private.h" #include "mailstream.h" #include "newsfeed_item.h" -#include "newsfeed_private.h" #include "parser.h" +#ifdef HAVE_CURL +#include <curl/curl.h> +#endif + #ifdef LIBETPAN_REENTRANT # ifndef WIN32 # include <pthread.h> @@ -299,6 +308,7 @@ int r; unsigned int timeout_value; int response_code; + XML_Parser parser; if (feed->feed_url == NULL) { res = NEWSFEED_ERROR_BADURL; @@ -383,7 +393,8 @@ /* Cleanup, we should be done. */ mmap_string_free(feed_ctx->str); - XML_ParserFree(feed_ctx->parser); + parser = feed_ctx->parser; + XML_ParserFree(parser); free(feed_ctx); feed->feed_response_code = response_code; @@ -393,7 +404,8 @@ free_str: mmap_string_free(feed_ctx->str); free_praser: - XML_ParserFree(feed_ctx->parser); + parser = feed_ctx->parser; + XML_ParserFree(parser); free_ctx: free(feed_ctx); free_eh: @@ -412,6 +424,7 @@ static int curl_error_convert(int curl_res) { +#if HAVE_CURL switch (curl_res) { case CURLE_OK: return NEWSFEED_NO_ERROR; @@ -527,4 +540,7 @@ default: return NEWSFEED_ERROR_INTERNAL; } +#else + return NEWSFEED_ERROR_INTERNAL; +#endif } Index: newsfeed_private.c =================================================================== RCS file: /cvsroot/libetpan/libetpan/src/low-level/feed/newsfeed_private.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- newsfeed_private.c 18 Jan 2007 09:15:01 -0000 1.1 +++ newsfeed_private.c 28 Jan 2007 12:42:41 -0000 1.2 @@ -1,3 +1,7 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "newsfeed_private.h" #include <string.h> Index: newsfeed_private.h =================================================================== RCS file: /cvsroot/libetpan/libetpan/src/low-level/feed/newsfeed_private.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- newsfeed_private.h 18 Jan 2007 09:15:01 -0000 1.1 +++ newsfeed_private.h 28 Jan 2007 12:42:41 -0000 1.2 @@ -2,11 +2,6 @@ #define NEWSFEED_PRIVATE_H -#include "config.h" - -#define HAVE_EXPAT 1 /* XXX */ -#define HAVE_CURL 1 /* XXX */ - #include "newsfeed_types.h" #include "mmapstring.h" @@ -14,10 +9,6 @@ #include <expat.h> #endif -#ifdef HAVE_CURL -#include <curl/curl.h> -#endif - struct newsfeed_parser_context { unsigned int depth; unsigned int location; @@ -29,7 +20,7 @@ int error; #ifdef HAVE_EXPAT - XML_Parser parser; + void * parser; #endif }; Index: newsfeed_types.h =================================================================== RCS file: /cvsroot/libetpan/libetpan/src/low-level/feed/newsfeed_types.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- newsfeed_types.h 18 Jan 2007 09:15:01 -0000 1.1 +++ newsfeed_types.h 28 Jan 2007 12:42:41 -0000 1.2 @@ -3,7 +3,7 @@ #define NEWSFEED_TYPES_H #include <libetpan/carray.h> -#include <time.h> +#include <sys/types.h> enum { NEWSFEED_NO_ERROR = 0, Index: parser.c =================================================================== RCS file: /cvsroot/libetpan/libetpan/src/low-level/feed/parser.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- parser.c 18 Jan 2007 09:15:02 -0000 1.1 +++ parser.c 28 Jan 2007 12:42:41 -0000 1.2 @@ -30,6 +30,10 @@ * SUCH DAMAGE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "parser.h" #include <string.h> @@ -50,6 +54,7 @@ FEED_TYPE_ATOM_10 }; +#ifdef HAVE_EXPAT static void handler_set(XML_Parser parser, unsigned int type) { if (parser == NULL) @@ -57,7 +62,6 @@ switch(type) { case FEED_TYPE_RSS_20: - fprintf(stderr, "set handler rss2.0\n"); XML_SetElementHandler(parser, newsfeed_parser_rss20_start, newsfeed_parser_rss20_end); @@ -82,11 +86,11 @@ { struct newsfeed_parser_context * ctx; unsigned int feedtype; + XML_Parser parser; ctx = (struct newsfeed_parser_context *) data; feedtype = FEED_TYPE_NONE; - fprintf(stderr, "first elt %s\n", el); if (ctx->depth == 0) { /* RSS 2.0 detected */ if (strcmp(el, "rss") == 0) { @@ -109,7 +113,8 @@ } } - handler_set(ctx->parser, feedtype); + parser = ctx->parser; + handler_set(parser, feedtype); ctx->depth ++; } @@ -137,7 +142,7 @@ /* check if the string is blank, ... */ for(i = 0, pt = (XML_Char *) s ; i < len ; i ++) { - if (!isblank(* pt)) + if ((* pt != ' ') && (* pt != '\t')) blank = 0; pt ++; } @@ -157,25 +162,32 @@ } } } - +#endif void newsfeed_parser_set_expat_handlers(struct newsfeed_parser_context * ctx) { - fprintf(stderr, "coin\n"); - XML_SetUserData(ctx->parser, (void *) ctx); +#ifdef HAVE_EXPAT + XML_Parser parser; - XML_SetElementHandler(ctx->parser, + parser = ctx->parser; + + XML_SetUserData(parser, (void *) ctx); + + XML_SetElementHandler(parser, elparse_start_chooser, elparse_end_dummy); - XML_SetCharacterDataHandler(ctx->parser, + XML_SetCharacterDataHandler(parser, chparse); +#endif } size_t newsfeed_writefunc(void * ptr, size_t size, size_t nmemb, void * data) { +#ifdef HAVE_EXPAT unsigned int len; struct newsfeed_parser_context * ctx; + XML_Parser parser; ctx = data; len = size * nmemb; @@ -184,13 +196,16 @@ return 0; } - XML_Parse(ctx->parser, ptr, len, 0); + parser = ctx->parser; + XML_Parse(parser, ptr, len, 0); if (ctx->error != NEWSFEED_NO_ERROR) { return 0; } return len; +#endif + return 0; } const char * newsfeed_parser_get_attribute_value(const char ** attr, Index: parser_atom10.c =================================================================== RCS file: /cvsroot/libetpan/libetpan/src/low-level/feed/parser_atom10.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- parser_atom10.c 18 Jan 2007 09:15:02 -0000 1.1 +++ parser_atom10.c 28 Jan 2007 12:42:41 -0000 1.2 @@ -30,6 +30,10 @@ * SUCH DAMAGE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "parser_atom10.h" #include <string.h> Index: parser_rdf.c =================================================================== RCS file: /cvsroot/libetpan/libetpan/src/low-level/feed/parser_rdf.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- parser_rdf.c 18 Jan 2007 09:15:02 -0000 1.1 +++ parser_rdf.c 28 Jan 2007 12:42:41 -0000 1.2 @@ -30,6 +30,10 @@ * SUCH DAMAGE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "parser_rdf.h" #include <string.h> Index: parser_rss20.c =================================================================== RCS file: /cvsroot/libetpan/libetpan/src/low-level/feed/parser_rss20.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- parser_rss20.c 18 Jan 2007 09:15:02 -0000 1.1 +++ parser_rss20.c 28 Jan 2007 12:42:41 -0000 1.2 @@ -30,6 +30,10 @@ * SUCH DAMAGE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "parser_rss20.h" #include <string.h> |