+ if (!logline) {
+ line_size = 256;
+ logline = g_malloc(line_size);
+ }
+
+ logline[0] = '\0';
+ while(1) {
+ lline = fgets(logline + loffset, line_size - loffset, logf);
+ if (lline == NULL) {
+ break; /* EOF */
+ }
+ if (strlen(logline) == line_size -1 &&
+ logline[strlen(logline)-1] != '\n') {
+ line_size *= 2;
+ logline = g_realloc(logline, line_size);
+ loffset = strlen(logline);
+ } else if (strlen(logline) == 0 ||
+ (strlen(logline) == 1 && logline[0] == '\n')) {
+ } else {
+ break; /* good line */
+ }
+ logline[loffset] = '\0';