/* Copyright (C) 2025 awy stmail is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. stmail is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with stmail. If not, see . */ #define _DEFAULT_SOURCE #include #include #include #include #include int newmsg(char path[1024]) { DIR *dir; int count; struct dirent *entry; count = 0; dir = opendir(path); if (!dir) { return 1; } while ((entry = readdir(dir)) != NULL) { if (entry->d_type == DT_REG) { if (strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..")) { count++; } } } return count; } int main(void) { DIR *dir; int count; char *path; char fullpath[1024]; struct dirent *entry; path = getenv("XDG_DATA_HOME"); if (!path) { puts("XDG_DATA_HOME is not set"); return 1; } strcat(path, "/mail"); dir = opendir(path); if (!dir) { return 1; } count = 0; while ((entry = readdir(dir)) != NULL) { if (entry->d_type == DT_DIR) { if (strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..") && strcmp(entry->d_name, ".notmuch")) { strcpy(fullpath, path); strcat(fullpath, "/"); strcat(fullpath, entry->d_name); strcat(fullpath, "/INBOX/new/"); count += newmsg(fullpath); } } } if (access("/tmp/mailupdate", F_OK) != -1) { printf(""); if (count != 0) { printf(" "); } } if (count == 0) { return 0; } printf(" %d", count); closedir(dir); return 0; }