Index: backend/Makefile.in --- backend/Makefile.in.orig 2006-10-10 09:53:36 +0200 +++ backend/Makefile.in 2007-01-06 10:46:22 +0100 @@ -116,7 +116,7 @@ papyrus_backend_SOURCES = backend.c $(libpapyrus_backend_la_SOURCES) papyrus_backend_LDFLAGS = -rdynamic @LDFLAGS@ @GLIB_CFLAGS@ -papyrus_backend_LDADD = -ldl -L../common -lpapyrus_common -L../equation -lpapyrus_equation @GLIB_LIBS@ @LDFLAGS@ @PQ_LIBS@ @MYSQL_LIBS@ @ORACLE_LIBS@ @LIBGDA_LIBS@ +papyrus_backend_LDADD = -L../common -lpapyrus_common -L../equation -lpapyrus_equation @GLIB_LIBS@ @LDFLAGS@ @PQ_LIBS@ @MYSQL_LIBS@ @ORACLE_LIBS@ @LIBGDA_LIBS@ libpapyrus_binding_pg_la_SOURCES = binding_pg.c Index: backend/binding_gda.c --- backend/binding_gda.c.orig 2006-10-10 09:53:36 +0200 +++ backend/binding_gda.c 2007-01-06 10:51:45 +0100 @@ -27,6 +27,7 @@ GdaCommand *command; GdaConnection *conn = connection; GdaDataModel *dm; + GError *error; if (!conn) { errormsg("Invalid connection"); @@ -42,7 +43,7 @@ GDA_COMMAND_TYPE_SQL, GDA_COMMAND_OPTION_STOP_ON_ERRORS); - dm = gda_connection_execute_single_command(conn, command, NULL); + dm = gda_connection_execute_select_command(conn, command, NULL, &error); if (!dm) { g_error("LibGda error returning data model from SQL query"); @@ -130,13 +131,28 @@ return (q->cur_record <= (pap_query_length(query) - 1)); } +static gint OLD_gda_data_model_get_column_position(GdaDataModel *model, gchar *field) +{ + const gchar *title; + gint fieldno; + + for (fieldno = 0; fieldno < 100; fieldno++) { + title = gda_data_model_get_column_title(model, fieldno); + if (strcmp(title, field) == 0) + break; + } + if (fieldno == 100) + fieldno = 0; + return fieldno; +} + gchar * pap_query_get_value(void *query, gchar *field) { gda_query *q = query; gint fieldno; gchar *retval; - GdaValue *value; + GValue *value; if (q == NULL || q->res == NULL) { errormsg("Invalid query recordset"); @@ -148,13 +164,13 @@ return NULL; } - fieldno = gda_data_model_get_column_position(q->res, field); + fieldno = OLD_gda_data_model_get_column_position(q->res, field); if (fieldno == -1) { errormsg("Invalid field: %s in query %s", field, q->string); return NULL; } - value = (GdaValue *)gda_data_model_get_value_at(q->res, fieldno, q->cur_record); + value = (GValue *)gda_data_model_get_value_at(q->res, fieldno, q->cur_record); if (!value) { g_error("Failed to get value at row %d, col %d", q->cur_record, fieldno); return NULL; @@ -177,6 +193,7 @@ GdaConnection *conn; GdaClient *client; gchar *newconnectstr; + GError *error; client = gda_client_new(); @@ -187,7 +204,8 @@ conn = gda_client_open_connection_from_string(client, provider, newconnectstr, - GDA_CONNECTION_OPTIONS_READ_ONLY); + NULL, NULL, + GDA_CONNECTION_OPTIONS_READ_ONLY, &error); if (!GDA_IS_CONNECTION(conn)) { g_error("Could not open connection from string `%s', using provider `%s'", Index: backend/convert.c --- backend/convert.c.orig 2006-10-10 09:53:36 +0200 +++ backend/convert.c 2007-01-06 10:46:11 +0100 @@ -618,6 +618,9 @@ xmlNodePtr child; char *old, *eq_str = NULL; char *data; +#ifndef INFINITY +#define INFINITY 99999999 +#endif double retval = INFINITY; for (child = equation->children; child != NULL; child = child->next) Index: equation/lexer.l --- equation/lexer.l.orig 2006-10-10 09:53:35 +0200 +++ equation/lexer.l 2007-01-06 10:46:11 +0100 @@ -3,24 +3,18 @@ #include #include #include -#ifndef WIN32 -#include -#else -#endif #include "parser.h" -double strtod(const char *nptr, char **endptr); - %} %option noyywrap %option yylineno %% -[0-9]* { eqnlval.d = strtod (eqntext, NULL); return NUMBER; } -[0-9]*\.[0-9]+ { eqnlval.d = strtod (eqntext, NULL); return NUMBER; } -[0-9]+\.[0-9]* { eqnlval.d = strtod (eqntext, NULL); return NUMBER; } -"NaN" { eqnlval.d = NAN; return NUMBER;} +[0-9]* { eqnlval.d = (double)strtod (eqntext, NULL); return NUMBER; } +[0-9]*\.[0-9]+ { eqnlval.d = (double)strtod (eqntext, NULL); return NUMBER; } +[0-9]+\.[0-9]* { eqnlval.d = (double)strtod (eqntext, NULL); return NUMBER; } +"NaN" { eqnlval.d = __builtin_nan(""); return NUMBER;} "lt" { return '<';} "gt" { return '>';} [a-zA-Z_]+ { eqnlval.string = g_strdup (eqntext); return STRING; } Index: html/xml2html.c --- html/xml2html.c.orig 2006-10-10 09:53:36 +0200 +++ html/xml2html.c 2007-01-06 10:46:11 +0100 @@ -220,7 +220,8 @@ /* Calculate size of number. e.g. "123cm" would be 3 and "12345cm" would be 5 */ for (i = 0; i < str_size && isdigit(size[i]); i++); - num_str = strndup(size, i); + num_str = strdup(size); + num_str[i] = '\0'; for (i = 0; i < atoi(size); i++) { fputs("
", output); @@ -240,7 +241,8 @@ /* Calculate size of number. e.g. "123cm" would be 3 and "12345cm" would be 5 */ for (i = 0; i < str_size && isdigit(size[i]); i++); - num_str = strndup(size, i); + num_str = strdup(size); + num_str[i] = '\0'; for (i = 0; i < atoi(size); i++) { fputs("  ", output);