Author: se
Date: Sat Dec 12 11:51:29 2020
New Revision: 368578
URL: https://svnweb.freebsd.org/changeset/base/368578

Log:
  Use getlocalbase() instead of compiled in LOCALBASE to locate calendars

Modified:
  head/usr.bin/calendar/io.c
  head/usr.bin/calendar/pathnames.h

Modified: head/usr.bin/calendar/io.c
==============================================================================
--- head/usr.bin/calendar/io.c  Sat Dec 12 11:23:52 2020        (r368577)
+++ head/usr.bin/calendar/io.c  Sat Dec 12 11:51:29 2020        (r368578)
@@ -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);
                }

Modified: head/usr.bin/calendar/pathnames.h
==============================================================================
--- head/usr.bin/calendar/pathnames.h   Sat Dec 12 11:23:52 2020        
(r368577)
+++ head/usr.bin/calendar/pathnames.h   Sat Dec 12 11:51:29 2020        
(r368578)
@@ -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"
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to