+/* This macro is used to make a filename found in a configuration file
+ into an absolute path. The zdir argument is the directory to put it
+ in. The zset argument is set to the new string. The fallocated
+ argument is set to TRUE if the new string was allocated. */
+#define MAKE_ABSOLUTE(zset, fallocated, zfile, zdir, pblock) \
+ do \
+ { \
+ if (*(zfile) == '/') \
+ { \
+ (zset) = (zfile); \
+ (fallocated) = FALSE; \
+ } \
+ else \
+ { \
+ size_t abs_cdir, abs_cfile; \
+ char *abs_zret; \
+\
+ abs_cdir = strlen (zdir); \
+ abs_cfile = strlen (zfile); \
+ abs_zret = (char *) uuconf_malloc ((pblock), \
+ abs_cdir + abs_cfile + 2); \
+ (zset) = abs_zret; \
+ (fallocated) = TRUE; \
+ if (abs_zret != NULL) \
+ { \
+ memcpy ((pointer) abs_zret, (pointer) (zdir), abs_cdir); \
+ abs_zret[abs_cdir] = '/'; \
+ memcpy ((pointer) (abs_zret + abs_cdir + 1), \
+ (pointer) (zfile), abs_cfile + 1); \
+ } \
+ } \
+ } \
+ while (0)
+