コンフィグのエラーの修正(osとhostのコンフリクト) (#40)

このコミットが含まれているのは:
守矢諏訪子 2024-07-17 21:02:39 +09:00
コミット 4e6d1d305a
2個のファイルの変更32行の追加14行の削除

ファイルの表示

@ -1,6 +1,7 @@
# 0.3.0
* macOSでOS情報の修正
* macOS: 解像度の追加
* コンフィグのエラーの修正(osとhostのコンフリクト)
# 0.2.0
* Manjaroのロゴの追加

ファイルの表示

@ -2,6 +2,8 @@
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>
#include "config.h"
@ -24,6 +26,21 @@ bool isgpu = true;
bool ismemory = true;
bool isstorage = true;
bool containvocab(const char *line, const char *word) {
const char *p = line;
size_t len = strlen(word);
while ((p = strstr(p, word)) != NULL) {
if (
(p == line || !isalnum((unsigned char)p[-1])) &&
!isalnum((unsigned char)p[len])
) return true;
p += len;
}
return false;
}
void getconf() {
char *homedir = getenv("HOME");
if (homedir == NULL) {
@ -61,24 +78,24 @@ void getconf() {
while (fgets(line, sizeof(line), file)) {
if (line[0] == '#' || line[0] == '\n') continue;
if (strstr(line, "hide ") != NULL) {
if (strstr(line, "os") != NULL) isos = false;
if (strstr(line, "host") != NULL) ishost = false;
if (containvocab(line, "os")) isos = false;
if (containvocab(line, "host")) ishost = false;
#if defined(__linux__) || defined(__sunos)
if (strstr(line, "distro") != NULL) isdistro = false;
if (containvocab(line, "distro")) isdistro = false;
#endif
if (strstr(line, "uptime") != NULL) isuptime = false;
if (containvocab(line, "uptime")) isuptime = false;
#if defined (__OpenBSD__)
if (strstr(line, "recording") != NULL) isrecording = false;
if (containvocab(line, "recording")) isrecording = false;
#endif
if (strstr(line, "packages") != NULL) ispackages = false;
if (strstr(line, "libc") != NULL) islibc = false;
if (strstr(line, "resolution") != NULL) isresolution = false;
if (strstr(line, "wm") != NULL) iswm = false;
if (strstr(line, "shell") != NULL) isshell = false;
if (strstr(line, "cpu") != NULL) iscpu = false;
if (strstr(line, "gpu") != NULL) isgpu = false;
if (strstr(line, "memory") != NULL) ismemory = false;
if (strstr(line, "storage") != NULL) isstorage = false;
if (containvocab(line, "packages")) ispackages = false;
if (containvocab(line, "libc")) islibc = false;
if (containvocab(line, "resolution")) isresolution = false;
if (containvocab(line, "wm")) iswm = false;
if (containvocab(line, "shell")) isshell = false;
if (containvocab(line, "cpu")) iscpu = false;
if (containvocab(line, "gpu")) isgpu = false;
if (containvocab(line, "memory")) ismemory = false;
if (containvocab(line, "storage")) isstorage = false;
}
}