| 1420 g_return_val_if_fail(data->length > 0, g_strdup("")); |
1420 g_return_val_if_fail(data->length > 0, g_strdup("")); |
| 1421 g_return_val_if_fail(data->their_nickname != NULL, g_strdup("")); |
1421 g_return_val_if_fail(data->their_nickname != NULL, g_strdup("")); |
| 1422 |
1422 |
| 1423 purple_debug_info("Trillian log read", "Reading %s\n", data->path); |
1423 purple_debug_info("Trillian log read", "Reading %s\n", data->path); |
| 1424 |
1424 |
| 1425 read = g_malloc(data->length + 2); |
|
| 1426 |
|
| 1427 file = g_fopen(data->path, "rb"); |
1425 file = g_fopen(data->path, "rb"); |
| 1428 g_return_val_if_fail(file != NULL, g_strdup("")); |
1426 g_return_val_if_fail(file != NULL, g_strdup("")); |
| 1429 if (fseek(file, data->offset, SEEK_SET) != 0) |
1427 |
| |
1428 read = g_malloc(data->length + 2); |
| |
1429 |
| |
1430 if (fseek(file, data->offset, SEEK_SET) != 0) { |
| |
1431 fclose(file); |
| |
1432 g_free(read); |
| 1430 g_return_val_if_reached(g_strdup("")); |
1433 g_return_val_if_reached(g_strdup("")); |
| |
1434 } |
| 1431 data->length = fread(read, 1, data->length, file); |
1435 data->length = fread(read, 1, data->length, file); |
| 1432 fclose(file); |
1436 fclose(file); |
| 1433 |
1437 |
| 1434 if (read[data->length-1] == '\n') { |
1438 if (read[data->length-1] == '\n') { |
| 1435 read[data->length] = '\0'; |
1439 read[data->length] = '\0'; |
| 1951 file = g_fopen(data->path, "rb"); |
1954 file = g_fopen(data->path, "rb"); |
| 1952 g_return_val_if_fail(file != NULL, g_strdup("")); |
1955 g_return_val_if_fail(file != NULL, g_strdup("")); |
| 1953 |
1956 |
| 1954 contents = g_malloc(data->length + 2); |
1957 contents = g_malloc(data->length + 2); |
| 1955 |
1958 |
| 1956 if (fseek(file, data->offset, SEEK_SET) != 0) |
1959 if (fseek(file, data->offset, SEEK_SET) != 0) { |
| |
1960 fclose(file); |
| |
1961 g_free(contents); |
| 1957 g_return_val_if_reached(g_strdup("")); |
1962 g_return_val_if_reached(g_strdup("")); |
| |
1963 } |
| 1958 data->length = fread(contents, 1, data->length, file); |
1964 data->length = fread(contents, 1, data->length, file); |
| 1959 fclose(file); |
1965 fclose(file); |
| 1960 |
1966 |
| 1961 contents[data->length] = '\n'; |
1967 contents[data->length] = '\n'; |
| 1962 contents[data->length + 1] = '\0'; |
1968 contents[data->length + 1] = '\0'; |
| 2333 data = log->logger_data; |
2339 data = log->logger_data; |
| 2334 |
2340 |
| 2335 g_return_val_if_fail(data->path != NULL, g_strdup("")); |
2341 g_return_val_if_fail(data->path != NULL, g_strdup("")); |
| 2336 g_return_val_if_fail(data->length > 0, g_strdup("")); |
2342 g_return_val_if_fail(data->length > 0, g_strdup("")); |
| 2337 |
2343 |
| 2338 contents = g_malloc(data->length + 2); |
|
| 2339 |
|
| 2340 file = g_fopen(data->path, "rb"); |
2344 file = g_fopen(data->path, "rb"); |
| 2341 g_return_val_if_fail(file != NULL, g_strdup("")); |
2345 g_return_val_if_fail(file != NULL, g_strdup("")); |
| 2342 |
2346 |
| 2343 if (fseek(file, data->offset, SEEK_SET) != 0) |
2347 contents = g_malloc(data->length + 2); |
| |
2348 |
| |
2349 if (fseek(file, data->offset, SEEK_SET) != 0) { |
| |
2350 fclose(file); |
| |
2351 free(contents); |
| 2344 g_return_val_if_reached(g_strdup("")); |
2352 g_return_val_if_reached(g_strdup("")); |
| |
2353 } |
| 2345 data->length = fread(contents, 1, data->length, file); |
2354 data->length = fread(contents, 1, data->length, file); |
| 2346 fclose(file); |
2355 fclose(file); |
| 2347 |
2356 |
| 2348 contents[data->length] = '\n'; |
2357 contents[data->length] = '\n'; |
| 2349 contents[data->length + 1] = '\0'; |
2358 contents[data->length + 1] = '\0'; |