summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorStefan Eßer <se@FreeBSD.org>2020-12-12 11:51:29 +0000
committerStefan Eßer <se@FreeBSD.org>2020-12-12 11:51:29 +0000
commit6f139d796f0585c7d663f4178f0053a6f4c0af8b (patch)
tree03d00836e41466de09456a40441e0cc06791490f /usr.bin
parent6c2596f00c26085ed9e3544a415f5f275c41eaec (diff)
downloadsrc-test2-6f139d796f0585c7d663f4178f0053a6f4c0af8b.tar.gz
src-test2-6f139d796f0585c7d663f4178f0053a6f4c0af8b.zip
Use getlocalbase() instead of compiled in LOCALBASE to locate calendars
Notes
Notes: svn path=/head/; revision=368578
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/calendar/io.c10
-rw-r--r--usr.bin/calendar/pathnames.h2
2 files changed, 9 insertions, 3 deletions
diff --git a/usr.bin/calendar/io.c b/usr.bin/calendar/io.c
index b9fef2684091..adea085cf3da 100644
--- a/usr.bin/calendar/io.c
+++ b/usr.bin/calendar/io.c
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
#include <ctype.h>
#include <err.h>
#include <errno.h>
+#include <libutil.h>
#include <locale.h>
#include <pwd.h>
#include <stdbool.h>
@@ -121,6 +122,7 @@ cal_fopen(const char *file)
unsigned int i;
struct stat sb;
static bool warned = false;
+ char calendarhome[MAXPATHLEN];
if (home == NULL || *home == '\0') {
warnx("Cannot get home directory");
@@ -133,12 +135,16 @@ cal_fopen(const char *file)
}
for (i = 0; i < nitems(calendarHomes); i++) {
- if (chdir(calendarHomes[i]) != 0)
+ if (snprintf(calendarhome, sizeof (calendarhome), calendarHomes[i],
+ getlocalbase()) >= (int)sizeof (calendarhome))
+ continue;
+
+ if (chdir(calendarhome) != 0)
continue;
if ((fp = fopen(file, "r")) != NULL) {
cal_home = home;
- cal_dir = calendarHomes[i];
+ cal_dir = calendarhome;
cal_file = file;
return (fp);
}
diff --git a/usr.bin/calendar/pathnames.h b/usr.bin/calendar/pathnames.h
index 95f41a25758f..fa46eb0c7e50 100644
--- a/usr.bin/calendar/pathnames.h
+++ b/usr.bin/calendar/pathnames.h
@@ -35,4 +35,4 @@
#include <paths.h>
#define _PATH_INCLUDE "/usr/share/calendar"
-#define _PATH_INCLUDE_LOCAL _PATH_LOCALBASE "/share/calendar"
+#define _PATH_INCLUDE_LOCAL "%s/share/calendar"