if (strlen(sanitized) > 1 && sanitized[strlen(sanitized) - 1] == '/')
sanitized[strlen(sanitized) - 1] = '\0';
FILE *mntentfile = setmntent("/etc/mtab", "r");
- struct mntent *m;
+ if (mntentfile == NULL) {
+ mntentfile = setmntent("/proc/mounts", "r");
+ }
+ if (mntentfile == NULL) {
+ fprintf(stderr, "i3status: files /etc/mtab and /proc/mounts aren't accessible\n");
+ } else {
+ struct mntent *m;
- while ((m = getmntent(mntentfile)) != NULL) {
- if (strcmp(m->mnt_dir, sanitized) == 0) {
- mounted = true;
- break;
+ while ((m = getmntent(mntentfile)) != NULL) {
+ if (strcmp(m->mnt_dir, sanitized) == 0) {
+ mounted = true;
+ break;
+ }
}
+ endmntent(mntentfile);
}
- endmntent(mntentfile);
free(sanitized);
}
#endif