blob: 6dd3232feed275693fd9e311dd0f5ef608aa7f32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <stdio.h>
#include <stdlib.h>
char *default_font_path(void)
{
FILE *fc_pipe = popen("fc-match -f '%{file}'", "r");
if (!fc_pipe) {
return NULL;
}
size_t buf_size = 128;
char *buffer = NULL;
size_t total = 0, read = 0;
do {
total += read;
buf_size *= 2;
buffer = realloc(buffer, buf_size);
if (!buffer) {
return NULL;
}
read = fread(buffer, 1, buf_size - total, fc_pipe);
} while (read == (buf_size - total));
total += read;
buffer[total] = 0;
return buffer;
}
|