安定化
このコミットが含まれているのは:
コミット
89b7ad439c
51
paleofetch.c
51
paleofetch.c
|
@ -161,34 +161,47 @@ static char *get_kernel() {
|
|||
}
|
||||
|
||||
static char *get_host() {
|
||||
char *host = malloc(BUF_SIZE), buffer[BUF_SIZE/2];
|
||||
FILE *product_name, *product_version, *model;
|
||||
char buffer[BUF_SIZE / 2];
|
||||
char *host = NULL;
|
||||
|
||||
if ((product_name = fopen("/sys/devices/virtual/dmi/id/product_name", "r")) != NULL) {
|
||||
if ((product_version = fopen("/sys/devices/virtual/dmi/id/product_version", "r")) != NULL) {
|
||||
fread(host, 1, BUF_SIZE/2, product_name);
|
||||
product_name = fopen("/sys/devices/virtual/dmi/id/product_name", "r");
|
||||
if (product_name != NULL) {
|
||||
host = malloc(BUF_SIZE);
|
||||
size_t read_len = fread(host, 1, BUF_SIZE / 2, product_name);
|
||||
if (read_len > 0) {
|
||||
remove_newline(host);
|
||||
strcat(host, " ");
|
||||
fread(buffer, 1, BUF_SIZE/2, product_version);
|
||||
remove_newline(buffer);
|
||||
if (strcmp(buffer, "To Be Filled By O.E.M.") != 0) {
|
||||
strcat(host, " ");
|
||||
strcat(host, buffer);
|
||||
|
||||
product_version = fopen("/sys/devices/virtual/dmi/id/product_version", "r");
|
||||
if (product_version != NULL) {
|
||||
read_len = fread(buffer, 1, BUF_SIZE / 2, product_version);
|
||||
if (read_len > 0) {
|
||||
remove_newline(buffer);
|
||||
if (strcmp(buffer, "To Be Filled By O.E.M.") != 0) {
|
||||
size_t host_len = strlen(host);
|
||||
size_t remain_size = (BUF_SIZE - host_len) - 1;
|
||||
if (remain_size > 0) {
|
||||
snprintf(host + host_len, remain_size, " %s", buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose(product_version);
|
||||
}
|
||||
fclose(product_version);
|
||||
} else {
|
||||
fclose(product_name);
|
||||
goto model_fallback;
|
||||
return host;
|
||||
}
|
||||
fclose(product_name);
|
||||
return host;
|
||||
}
|
||||
|
||||
model_fallback:
|
||||
if ((model = fopen("/sys/firmware/devicetree/base/model", "r")) != NULL) {
|
||||
fread(host, 1, BUF_SIZE, model);
|
||||
remove_newline(host);
|
||||
return host;
|
||||
model = fopen("/sys/firmware/devicetree/base/model", "r");
|
||||
if (model != NULL) {
|
||||
host = malloc(BUF_SIZE);
|
||||
size_t read_len = fread(host, 1, BUF_SIZE, model);
|
||||
if (read_len > 0) {
|
||||
remove_newline(host);
|
||||
return host;
|
||||
}
|
||||
fclose(model);
|
||||
}
|
||||
|
||||
status = -1;
|
||||
|
|
読み込み中…
新しいイシューから参照