aboutsummaryrefslogtreecommitdiff
path: root/gnu/libexec/uucp/libuuconf/syshdr.h
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/libexec/uucp/libuuconf/syshdr.h')
-rw-r--r--gnu/libexec/uucp/libuuconf/syshdr.h38
1 files changed, 36 insertions, 2 deletions
diff --git a/gnu/libexec/uucp/libuuconf/syshdr.h b/gnu/libexec/uucp/libuuconf/syshdr.h
index 8ff18a6ca49e..b5a759fd1a6c 100644
--- a/gnu/libexec/uucp/libuuconf/syshdr.h
+++ b/gnu/libexec/uucp/libuuconf/syshdr.h
@@ -1,7 +1,7 @@
/* syshdr.unx -*- C -*-
Unix system header for the uuconf library.
- Copyright (C) 1992 Ian Lance Taylor
+ Copyright (C) 1992, 1993 Ian Lance Taylor
This file is part of the Taylor UUCP uuconf library.
@@ -20,7 +20,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The author of the program may be contacted at ian@airs.com or
- c/o Infinity Development Systems, P.O. Box 520, Waltham, MA 02254.
+ c/o Cygnus Support, Building 200, 1 Kendall Square, Cambridge, MA 02139.
*/
/* The root directory (used when setting local-send and local-receive
@@ -82,6 +82,40 @@ extern char *sys_errlist[];
#endif /* ! HAVE_STRERROR */
+/* 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)
+
/* We want to be able to mark the Taylor UUCP system files as close on
exec. */
#if HAVE_FCNTL_H