Bug in g_message() with long lines ?


I'm just starting to use glib (nice library - I wish I'd known
about it a long time ago).

I think there may be a bug in glib when g_message() is used
to report long strings.  (Strings here are often DNA,
so can be very long).

This one had me puzzled for a while as I was using g_message()
to print debugging info.  The problem also seems to be a bit platform

This bit of code gives an example:

/* --- START EXAMPLE --- */
#include <glib.h>

int main(){
    gchar str[2001];
    guint i;
    for(i = 0; i < 2000; i++)
        str[i] = 'X';
    str[2000] = '\0';
    g_message("str is [%s]", str);
    return 0;
/* --- END EXAMPLE --- */

On Linux, using glib 1.2.6, the output
is truncated after reporting 1015 chars:

linux % ./example
linux %

On an alpha, using glib 1.2.7, it just reports this:
alpha % ./example
Message: str is [%s]
alpha %

I think this may be something to do with the bit in g_logv() in gmessages.c
with the comment, /* we are out of luck here */, but I am not really sure
what is going on in there, so haven't attempted a patch.

%!PS % <------ Guy St.C. Slater ------> http://www.ebi.ac.uk/~guy/  <------
210 297/a{def}def/b{translate}a b 36/c{rotate}a c 0 1 0 1 12/d{exch moveto}
a/e{closepath stroke}a/f{index}a/g{0 0 0 0 4 f}a/h{setlinewidth newpath dup
g}a{pop exch 1 f add 0 h neg d lineto 72 c lineto e 2 h d 3 f 0 108 arc d e
18 c 0 2 f neg b 18 c}for 72 c newpath add g 0 7 arc d e pop showpage

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]