symlinks
Arthur David Olson
ado
Sat Jan 31 18:55:56 UTC 1998
Below is my guess as to the best way to handle the symlinks situation;
absent adverse feedback, it will show up in the next tzcode1998...
--ado
*** 7.64/Makefile Sat Jan 31 13:53:19 1998
--- 7.65/Makefile Sat Jan 31 13:53:19 1998
***************
*** 1,4 ****
! # @(#)Makefile 7.64
# Change the line below for your time zone (after finding the zone you want in
# the time zone files, or adding it to a time zone file).
--- 1,4 ----
! # @(#)Makefile 7.65
# Change the line below for your time zone (after finding the zone you want in
# the time zone files, or adding it to a time zone file).
***************
*** 91,96 ****
--- 91,97 ----
# -DHAVE_SETTIMEOFDAY=2 if settimeofday uses 2nd arg (4.3BSD)
# -DHAVE_SETTIMEOFDAY=3 if settimeofday ignores 2nd arg (4.4BSD)
# -DHAVE_STRERROR=1 if `strerror' works
+ # -DHAVE_SYMLINK=0 if your system lacks the symlink function
# -DLOCALE_HOME=\"path\" if locales are in "path", not "/usr/lib/locale"
# -DHAVE_UNISTD_H=0 if your compiler lacks a "unistd.h" (Microsoft C++ 7?)
# -DHAVE_UTMPX_H=1 if your compiler has a "utmpx.h"
*** 7.93/zic.c Sat Jan 31 13:53:21 1998
--- 7.94/zic.c Sat Jan 31 13:53:21 1998
***************
*** 1,6 ****
#ifndef lint
#ifndef NOID
! static char elsieid[] = "@(#)zic.c 7.93";
#endif /* !defined NOID */
#endif /* !defined lint */
--- 1,6 ----
#ifndef lint
#ifndef NOID
! static char elsieid[] = "@(#)zic.c 7.94";
#endif /* !defined NOID */
#endif /* !defined lint */
***************
*** 601,609 ****
if (!itsdir(toname))
(void) remove(toname);
if (link(fromname, toname) != 0) {
if (mkdirs(toname) != 0)
(void) exit(EXIT_FAILURE);
! if (link(fromname, toname) != 0) {
const char *e = strerror(errno);
(void) fprintf(stderr,
--- 601,619 ----
if (!itsdir(toname))
(void) remove(toname);
if (link(fromname, toname) != 0) {
+ int result;
+
if (mkdirs(toname) != 0)
(void) exit(EXIT_FAILURE);
! result = link(fromname, toname);
! #if (HAVE_SYMLINK - 0)
! if (result != 0) {
! result = symlink(fromname, toname);
! if (result == 0)
! warning(_("hard link failed, symbolic link used"));
! }
! #endif
! if (result != 0) {
const char *e = strerror(errno);
(void) fprintf(stderr,
More information about the tz
mailing list