From: Zoltan B. <zb...@du...> - 2008-08-15 12:58:05
|
Hi, another one, now it's a bit more serious, not fixable by a one-liner. It started out with an observation: * rlib_set_output_format_from_text() matches the passed-in string and if the string doesn't match to any known format string, TXT is assumed and r->format is set accordingly. * rlib_set_output_format() accepts any number as format indicator. this seems to be a bug by itself. I think there is an unintentional mixup in the defines. #define RLIB_CONTENT_TYPE_ERROR -1 #define RLIB_CONTENT_TYPE_PDF 1 #define RLIB_CONTENT_TYPE_HTML 2 #define RLIB_CONTENT_TYPE_TXT 3 #define RLIB_CONTENT_TYPE_CSV 4 #define RLIB_FORMAT_PDF 1 #define RLIB_FORMAT_HTML 2 #define RLIB_FORMAT_TXT 3 #define RLIB_FORMAT_CSV 4 #define RLIB_FORMAT_XML 5 And look at the usage patterns of r->format: rlib_make_report() uses r->format in a multi-conditional if() where the following output formats are handled explicitely: HTML, TXT, CSV. The last else (if all else fails) assumes PDF output is given. r->format is matched against RLIB_FORMAT_* here. RLIB_FORMAT_XML is not handled, rlib_xml_new_output_filter() does not exist. rlib_get_content_type_as_text() matches r->format against RLIB_CONTENT_TYPE_*. Also, the matching order is different from rlib_make_report(). PDF, CSV and HTML is explicitely tested, if all else fails TXT is assumed. Now, consider someone uses: rlib_set_output_format(RLIB_FORMAT_XML); It's valid reading only the API headers. But the result is unexpected: - rlib_execute() generates a PDF report - rlib_get_content_type_as_text() returns the content of RLIB_WEB_CONTENT_TYPE_TEXT with the proper charset So, this part needs rethinking. I think you need to decide which part of the defines has to be deprecated deleted and use the other set of the defines exclusively in the sources. Also, were there any plans to introduce rlib_xml_new_output_filter()? Or only the input filter as it exists now? Best regards, Zoltán Böszörményi Zoltan Boszormenyi írta: > Hi, > > another question. There's two difference between > rlib_add_query_pointer_as() and rlib_add_query_as(): > > - The "sql" parameter string is strdup()ed by rlib_add_query_as() but > not by rlib_add_query_pointer_as(). > I guess it's intentional, that's why there's a distinction at all. > > - rlib_add_query_as() returns an error if "input_source" was not yet > defined as an input source by one of the rlib_add_datasource_*() calls. > But rlib_add_query_pointer_as() doesn't. And there's not a single C > source > under libsrc where this is rechecked later. This seems to be a bug, > fix is attached. > > Best regards, > Zoltán Böszörményi > > Zoltan Boszormenyi írta: > >> Hi, >> >> I was reviewing the function reference and crosschecking it >> with the source. Some notes: >> I think the source mixes up bitwise AND and logical AND. >> * && works on expressions of the same type: >> NUMBER && NUMBER (and performs logical AND) >> STRING && STRING returns TRUE if both STRINGs are non-NULL >> DATE && DATE would return TRUE always by intention >> but there's a missing "return TRUE;" in the code, causing >> double freeing. >> Fix is attached. >> * & works on NUMBERs only and performs bitwise or binary AND >> but the naming in the source labels it as "logical AND" >> I don't intend to change the naming in the source but it's good to know. >> The wiki documentation lacked bitwise AND up to now. >> Also, some others are also missing: >> * N^M, a.k.a. power(N, M) >> * chgdateof() >> * dtosf() >> >> Best regards, >> Zoltán Böszörményi >> >> Bob Doan írta: >> >> >>> Hi Zoltan, >>> >>> All patches have been applied. >>> >>> We're ready for the next round :) >>> >>> - Bob >>> >>> On Mon, 2008-08-11 at 15:30 +0200, Zoltan Boszormenyi wrote: >>> >>> >>> >>>> Hi, >>>> >>>> here are the patches that make RLIB compile on Windows. >>>> The patches are split up in a way to contain only one fix. >>>> >>>> There's one thing that's missing though, namely PHP. >>>> PHP on Windows absolutely requires MSVC, the PHP/Win >>>> distribution(s) doesn't even contain php.h, etc., only the stub >>>> library called php5ts.lib to make it possible to link with php5ts.dll. >>>> Making a Zend extension under Windows starts with compiling >>>> PHP from source, it seems... >>>> >>>> Best regards, >>>> Zoltán Böszörményi >>>> >>>> ------------------------------------------------------------------------- >>>> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >>>> Build the coolest Linux based applications with Moblin SDK & win great prizes >>>> Grand prize is a trip for two to an Open Source event anywhere in the world >>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >>>> _______________________________________________ Rlib-devel mailing list Rli...@li... https://lists.sourceforge.net/lists/listinfo/rlib-devel >>>> >>>> >>>> >>> ------------------------------------------------------------------------- >>> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >>> Build the coolest Linux based applications with Moblin SDK & win great prizes >>> Grand prize is a trip for two to an Open Source event anywhere in the world >>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >>> _______________________________________________ >>> Rlib-devel mailing list >>> Rli...@li... >>> https://lists.sourceforge.net/lists/listinfo/rlib-devel >>> >>> >>> >> >> ------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >> Build the coolest Linux based applications with Moblin SDK & win great prizes >> Grand prize is a trip for two to an Open Source event anywhere in the world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Rlib-devel mailing list >> Rli...@li... >> https://lists.sourceforge.net/lists/listinfo/rlib-devel >> > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > ------------------------------------------------------------------------ > > _______________________________________________ > Rlib-devel mailing list > Rli...@li... > https://lists.sourceforge.net/lists/listinfo/rlib-devel |