/[james]/archive/guilib/messages.c
ViewVC logotype

Contents of /archive/guilib/messages.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 16 - (show annotations) (download) (as text)
Mon Feb 10 22:56:40 2003 UTC (21 years, 3 months ago) by james
File MIME type: text/x-csrc
File size: 919 byte(s)
Initial import.

1 /*
2 * messages.c
3 */
4
5 #include "gui.h"
6
7
8 /*
9 * gui_messages_read
10 */
11
12 char **gui_messages_read(const char *file_name)
13 {
14 char *data;
15 char **table;
16 unsigned int size = 0, count = 0, pos = 0, i, len;
17 int c;
18 FILE *file;
19
20 file = fopen(file_name, "rb");
21 if (file == NULL) gui_raise_error("unable to open file");
22
23 while ((c = fgetc(file)) != EOF)
24 {
25 size++;
26 if (c == '\n') count++;
27 }
28 size++;
29
30 data = malloc(size);
31 if (data == NULL) gui_raise_error("out of memory");
32 table = calloc(count, sizeof(char *));
33 if (table == NULL) gui_raise_error("out of memory");
34
35 if (fseek(file, 0, SEEK_SET)) gui_raise_error("file seek failed");
36
37 for (i = 0; i < count; i++)
38 {
39 if (!fgets(data + pos, size - pos, file)) gui_raise_error("fgets failed");
40 len = strlen(data + pos);
41 data[pos + len - 1] = '\0';
42 table[i] = data + pos;
43 pos += len;
44 }
45
46 fclose(file);
47
48 return table;
49 }

  ViewVC Help
Powered by ViewVC 1.1.26