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