proposed minor changes
Olson, Arthur David (NIH/NCI)
olsona at dc37a.nci.nih.gov
Mon Feb 7 15:30:28 UTC 2005
Ken Pizzini reviewed the proposed changes sent out last week and pointed out
a change I failed to note in the summary: the setlocale calls in zic.c and
zdump.c have been changed to use the LC_ALL parameter rather than the
LC_MESSAGES parameter. (This based on earlier electronic mail claiming that
setting only LC_MESSAGES rather than LC_ALL can lead to problems.)
As suggested by Paul Eggert, the "diff -b" output appears below.
--ado
diff -b -c old/date.c new/date.c
*** old/date.c Mon Jan 31 09:20:47 2005
--- new/date.c Mon Jan 31 14:06:49 2005
***************
*** 1,6 ****
#ifndef lint
#ifndef NOID
! static char elsieid[] = "@(#)date.c 7.40";
/*
** Modified from the UCB version with the SCCS ID appearing below.
*/
--- 1,6 ----
#ifndef lint
#ifndef NOID
! static char elsieid[] = "@(#)date.c 7.41";
/*
** Modified from the UCB version with the SCCS ID appearing below.
*/
***************
*** 664,670 ****
cp = value;
switch (dotp - cp) {
default:
! wildinput(_("time"), value, _("main part is wrong
length"));
case 12:
if (!dousg) {
cent = ATOI2(cp);
--- 664,671 ----
cp = value;
switch (dotp - cp) {
default:
! wildinput(_("time"), value,
! _("main part is wrong length"));
case 12:
if (!dousg) {
cent = ATOI2(cp);
diff -b -c old/private.h new/private.h
*** old/private.h Mon Jan 31 09:19:08 2005
--- new/private.h Mon Jan 31 14:06:49 2005
***************
*** 91,103 ****
#include "time.h"
#include "stdlib.h"
! #if HAVE_GETTEXT - 0
#include "libintl.h"
! #endif /* HAVE_GETTEXT - 0 */
! #if HAVE_SYS_WAIT_H - 0
#include <sys/wait.h> /* for WIFEXITED and WEXITSTATUS */
! #endif /* HAVE_SYS_WAIT_H - 0 */
#ifndef WIFEXITED
#define WIFEXITED(status) (((status) & 0xff) == 0)
--- 91,103 ----
#include "time.h"
#include "stdlib.h"
! #if HAVE_GETTEXT
#include "libintl.h"
! #endif /* HAVE_GETTEXT */
! #if HAVE_SYS_WAIT_H
#include <sys/wait.h> /* for WIFEXITED and WEXITSTATUS */
! #endif /* HAVE_SYS_WAIT_H */
#ifndef WIFEXITED
#define WIFEXITED(status) (((status) & 0xff) == 0)
***************
*** 106,116 ****
#define WEXITSTATUS(status) (((status) >> 8) & 0xff)
#endif /* !defined WEXITSTATUS */
! #if HAVE_UNISTD_H - 0
#include "unistd.h" /* for F_OK and R_OK */
! #endif /* HAVE_UNISTD_H - 0 */
! #if !(HAVE_UNISTD_H - 0)
#ifndef F_OK
#define F_OK 0
#endif /* !defined F_OK */
--- 106,116 ----
#define WEXITSTATUS(status) (((status) >> 8) & 0xff)
#endif /* !defined WEXITSTATUS */
! #if HAVE_UNISTD_H
#include "unistd.h" /* for F_OK and R_OK */
! #endif /* HAVE_UNISTD_H */
! #if !HAVE_UNISTD_H
#ifndef F_OK
#define F_OK 0
#endif /* !defined F_OK */
***************
*** 117,123 ****
#ifndef R_OK
#define R_OK 4
#endif /* !defined R_OK */
! #endif /* !(HAVE_UNISTD_H - 0) */
/* Unlike <ctype.h>'s isdigit, this also works if c < 0 | c > UCHAR_MAX.
*/
#define is_digit(c) ((unsigned)(c) - '0' <= 9)
--- 117,123 ----
#ifndef R_OK
#define R_OK 4
#endif /* !defined R_OK */
! #endif /* !HAVE_UNISTD_H */
/* Unlike <ctype.h>'s isdigit, this also works if c < 0 | c > UCHAR_MAX.
*/
#define is_digit(c) ((unsigned)(c) - '0' <= 9)
***************
*** 216,222 ****
void * irealloc P((void * pointer, int size));
void icfree P((char * pointer));
void ifree P((char * pointer));
! char * scheck P((const char *string, const char *format));
/*
** Finally, some convenience items.
--- 216,222 ----
void * irealloc P((void * pointer, int size));
void icfree P((char * pointer));
void ifree P((char * pointer));
! char * scheck P((const char *string, char *format));
/*
** Finally, some convenience items.
***************
*** 255,261 ****
** add one more for a minus sign if the type is signed.
*/
#define INT_STRLEN_MAXIMUM(type) \
! ((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + 1 +
TYPE_SIGNED(type))
#endif /* !defined INT_STRLEN_MAXIMUM */
/*
--- 255,262 ----
** add one more for a minus sign if the type is signed.
*/
#define INT_STRLEN_MAXIMUM(type) \
! ((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + \
! 1 + TYPE_SIGNED(type))
#endif /* !defined INT_STRLEN_MAXIMUM */
/*
***************
*** 289,299 ****
*/
#ifndef _
! #if HAVE_GETTEXT - 0
#define _(msgid) gettext(msgid)
! #else /* !(HAVE_GETTEXT - 0) */
#define _(msgid) msgid
! #endif /* !(HAVE_GETTEXT - 0) */
#endif /* !defined _ */
#ifndef TZ_DOMAIN
--- 290,300 ----
*/
#ifndef _
! #if HAVE_GETTEXT
#define _(msgid) gettext(msgid)
! #else /* !HAVE_GETTEXT */
#define _(msgid) msgid
! #endif /* !HAVE_GETTEXT */
#endif /* !defined _ */
#ifndef TZ_DOMAIN
diff -b -c old/scheck.c new/scheck.c
*** old/scheck.c Mon Jan 31 09:20:47 2005
--- new/scheck.c Mon Jan 31 14:06:49 2005
***************
*** 1,6 ****
#ifndef lint
#ifndef NOID
! static char elsieid[] = "@(#)scheck.c 8.15";
#endif /* !defined lint */
#endif /* !defined NOID */
--- 1,6 ----
#ifndef lint
#ifndef NOID
! static char elsieid[] = "@(#)scheck.c 8.16";
#endif /* !defined lint */
#endif /* !defined NOID */
***************
*** 11,17 ****
char *
scheck(string, format)
const char * const string;
! const char * const format;
{
register char * fbuf;
register const char * fp;
--- 11,17 ----
char *
scheck(string, format)
const char * const string;
! char * const format;
{
register char * fbuf;
register const char * fp;
diff -b -c old/strftime.c new/strftime.c
*** old/strftime.c Mon Jan 31 09:20:47 2005
--- new/strftime.c Mon Jan 31 14:06:50 2005
***************
*** 1,6 ****
#ifndef lint
#ifndef NOID
! static char elsieid[] = "@(#)strftime.c 7.74";
/*
** Based on the UCB version with the ID appearing below.
** This is ANSIish only when "multibyte character == plain character".
--- 1,6 ----
#ifndef lint
#ifndef NOID
! static char elsieid[] = "@(#)strftime.c 7.75";
/*
** Based on the UCB version with the ID appearing below.
** This is ANSIish only when "multibyte character == plain character".
***************
*** 108,114 ****
static char * _add P((const char *, char *, const char *));
static char * _conv P((int, const char *, char *, const char *));
! static char * _fmt P((const char *, const struct tm *, char *, const char
*, int *));
static char * _yconv P((int, int, int, int, char *, const char *));
extern char * tzname[];
--- 108,115 ----
static char * _add P((const char *, char *, const char *));
static char * _conv P((int, const char *, char *, const char *));
! static char * _fmt P((const char *, const struct tm *, char *, const char
*,
! int *));
static char * _yconv P((int, int, int, int, char *, const char *));
extern char * tzname[];
diff -b -c old/tzfile.h new/tzfile.h
*** old/tzfile.h Mon Jan 31 09:19:08 2005
--- new/tzfile.h Mon Jan 31 14:06:49 2005
***************
*** 21,27 ****
#ifndef lint
#ifndef NOID
! static char tzfilehid[] = "@(#)tzfile.h 7.16";
#endif /* !defined NOID */
#endif /* !defined lint */
--- 21,27 ----
#ifndef lint
#ifndef NOID
! static char tzfilehid[] = "@(#)tzfile.h 7.17";
#endif /* !defined NOID */
#endif /* !defined lint */
***************
*** 172,197 ****
#define isleap_sum(a, b) isleap((a) % 400 + (b) % 400)
- #ifndef USG
-
- /*
- ** Use of the underscored variants may cause problems if you move your
code to
- ** certain System-V-based systems; for maximum portability, use the
- ** underscore-free variants. The underscored variants are provided for
- ** backward compatibility only; they may disappear from future versions of
- ** this file.
- */
-
- #define SECS_PER_MIN SECSPERMIN
- #define MINS_PER_HOUR MINSPERHOUR
- #define HOURS_PER_DAY HOURSPERDAY
- #define DAYS_PER_WEEK DAYSPERWEEK
- #define DAYS_PER_NYEAR DAYSPERNYEAR
- #define DAYS_PER_LYEAR DAYSPERLYEAR
- #define SECS_PER_HOUR SECSPERHOUR
- #define SECS_PER_DAY SECSPERDAY
- #define MONS_PER_YEAR MONSPERYEAR
-
- #endif /* !defined USG */
-
#endif /* !defined TZFILE_H */
--- 172,175 ----
diff -b -c old/zdump.c new/zdump.c
*** old/zdump.c Mon Jan 31 09:20:47 2005
--- new/zdump.c Mon Jan 31 14:20:42 2005
***************
*** 1,4 ****
! static char elsieid[] = "@(#)zdump.c 7.61";
/*
** This code has been made independent of the rest of the time
--- 1,4 ----
! static char elsieid[] = "@(#)zdump.c 7.63";
/*
** This code has been made independent of the rest of the time
***************
*** 215,221 ****
INITIALIZE(cutlotime);
INITIALIZE(cuthitime);
#if HAVE_GETTEXT
! (void) setlocale(LC_MESSAGES, "");
#ifdef TZ_DOMAINDIR
(void) bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
#endif /* defined TEXTDOMAINDIR */
--- 215,221 ----
INITIALIZE(cutlotime);
INITIALIZE(cuthitime);
#if HAVE_GETTEXT
! (void) setlocale(LC_ALL, "");
#ifdef TZ_DOMAINDIR
(void) bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
#endif /* defined TEXTDOMAINDIR */
diff -b -c old/zic.c new/zic.c
*** old/zic.c Mon Jan 31 09:20:47 2005
--- new/zic.c Mon Jan 31 14:20:42 2005
***************
*** 1,4 ****
! static char elsieid[] = "@(#)zic.c 7.120";
/*
** Regardless of the type of time_t, we do our work using this type.
--- 1,4 ----
! static char elsieid[] = "@(#)zic.c 7.122";
/*
** Regardless of the type of time_t, we do our work using this type.
***************
*** 138,146 ****
static void writezone P((const char * name));
static int yearistype P((int year, const char * type));
! #if !(HAVE_STRERROR - 0)
static char * strerror P((int));
! #endif /* !(HAVE_STRERROR - 0) */
static int charcnt;
static int errors;
--- 138,146 ----
static void writezone P((const char * name));
static int yearistype P((int year, const char * type));
! #if !HAVE_STRERROR
static char * strerror P((int));
! #endif /* !HAVE_STRERROR */
static int charcnt;
static int errors;
***************
*** 380,386 ****
** Error handling.
*/
! #if !(HAVE_STRERROR - 0)
static char *
strerror(errnum)
int errnum;
--- 380,386 ----
** Error handling.
*/
! #if !HAVE_STRERROR
static char *
strerror(errnum)
int errnum;
***************
*** 391,397 ****
return (errnum > 0 && errnum <= sys_nerr) ?
sys_errlist[errnum] : _("Unknown system error");
}
! #endif /* !(HAVE_STRERROR - 0) */
static void
eats(name, num, rname, rnum)
--- 391,397 ----
return (errnum > 0 && errnum <= sys_nerr) ?
sys_errlist[errnum] : _("Unknown system error");
}
! #endif /* !HAVE_STRERROR */
static void
eats(name, num, rname, rnum)
***************
*** 448,454 ****
static void
usage P((void))
{
! (void) fprintf(stderr, _("%s: usage is %s [ --version ] [ -s ] [ -v
] [ -l localtime ] [ -p posixrules ] \\\n\t[ -d directory ] [ -L leapseconds
] [ -y yearistype ] [ filename ... ]\n"),
progname, progname);
(void) exit(EXIT_FAILURE);
}
--- 448,456 ----
static void
usage P((void))
{
! (void) fprintf(stderr, _("%s: usage is %s \
! [ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ...
]\n"),
progname, progname);
(void) exit(EXIT_FAILURE);
}
***************
*** 472,484 ****
#ifdef unix
(void) umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH));
#endif /* defined unix */
! #if HAVE_GETTEXT - 0
! (void) setlocale(LC_MESSAGES, "");
#ifdef TZ_DOMAINDIR
(void) bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
#endif /* defined TEXTDOMAINDIR */
(void) textdomain(TZ_DOMAIN);
! #endif /* HAVE_GETTEXT - 0 */
progname = argv[0];
for (i = 1; i < argc; ++i)
if (strcmp(argv[i], "--version") == 0) {
--- 474,486 ----
#ifdef unix
(void) umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH));
#endif /* defined unix */
! #if HAVE_GETTEXT
! (void) setlocale(LC_ALL, "");
#ifdef TZ_DOMAINDIR
(void) bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
#endif /* defined TEXTDOMAINDIR */
(void) textdomain(TZ_DOMAIN);
! #endif /* HAVE_GETTEXT */
progname = argv[0];
for (i = 1; i < argc; ++i)
if (strcmp(argv[i], "--version") == 0) {
***************
*** 631,652 ****
(void) exit(EXIT_FAILURE);
result = link(fromname, toname);
! #if (HAVE_SYMLINK - 0)
if (result != 0 &&
access(fromname, F_OK) == 0 &&
!itsdir(fromname)) {
const char *s = tofile;
register char * symlinkcontents = NULL;
- while ((s = strchr(s+1, '/')) != NULL)
- symlinkcontents = ecatalloc(symlinkcontents,
"../");
- symlinkcontents = ecatalloc(symlinkcontents,
fromfile);
! result = symlink(symlinkcontents, toname);
if (result == 0)
warning(_("hard link failed, symbolic link used"));
ifree(symlinkcontents);
}
! #endif
if (result != 0) {
const char *e = strerror(errno);
--- 633,659 ----
(void) exit(EXIT_FAILURE);
result = link(fromname, toname);
! #if HAVE_SYMLINK
if (result != 0 &&
access(fromname, F_OK) == 0 &&
!itsdir(fromname)) {
const char *s = tofile;
register char * symlinkcontents = NULL;
! while ((s = strchr(s+1, '/')) != NULL)
! symlinkcontents =
! ecatalloc(symlinkcontents,
! "../");
! symlinkcontents =
! ecatalloc(symlinkcontents,
! fromfile);
! result = symlink(symlinkcontents,
! toname);
if (result == 0)
warning(_("hard link failed, symbolic link used"));
ifree(symlinkcontents);
}
! #endif /* HAVE_SYMLINK */
if (result != 0) {
const char *e = strerror(errno);
***************
*** 1107,1113 ****
zones[nzones - 1].z_untiltime > min_time &&
zones[nzones - 1].z_untiltime < max_time &&
zones[nzones - 1].z_untiltime >= z.z_untiltime) {
! error(_("Zone continuation line end time is
not after end time of previous line"));
return FALSE;
}
}
--- 1114,1122 ----
zones[nzones - 1].z_untiltime > min_time &&
zones[nzones - 1].z_untiltime < max_time &&
zones[nzones - 1].z_untiltime >= z.z_untiltime) {
! error(_(
! "Zone continuation line end time is not after end time of previous line"
! ));
return FALSE;
}
}
***************
*** 1141,1147 ****
cp = fields[LP_YEAR];
if (sscanf(cp, scheck(cp, "%d"), &year) != 1) {
/*
! * Leapin' Lizards!
*/
error(_("invalid leaping year"));
return;
--- 1150,1156 ----
cp = fields[LP_YEAR];
if (sscanf(cp, scheck(cp, "%d"), &year) != 1) {
/*
! ** Leapin' Lizards!
*/
error(_("invalid leaping year"));
return;
***************
*** 1211,1217 ****
return;
}
if ((lp = byword(fields[LP_ROLL], leap_types)) == NULL) {
! error(_("illegal Rolling/Stationary field on Leap
line"));
return;
}
leapadd(tadd(t, tod), positive, lp->l_value, count);
--- 1220,1228 ----
return;
}
if ((lp = byword(fields[LP_ROLL], leap_types)) == NULL) {
! error(_(
! "illegal Rolling/Stationary field on Leap
line"
! ));
return;
}
leapadd(tadd(t, tod), positive, lp->l_value, count);
***************
*** 1473,1485 ****
while (fromi < timecnt && attypes[fromi].type == 0)
++fromi; /* handled by default rule
*/
for ( ; fromi < timecnt; ++fromi) {
! if (toi != 0
! && ((attypes[fromi].at
! + gmtoffs[attypes[toi - 1].type])
! <= (attypes[toi - 1].at
! + gmtoffs[toi == 1 ? 0
: attypes[toi - 2].type]))) {
! attypes[toi - 1].type = attypes[fromi].type;
continue;
}
if (toi == 0 ||
--- 1484,1495 ----
while (fromi < timecnt && attypes[fromi].type == 0)
++fromi; /* handled by default rule
*/
for ( ; fromi < timecnt; ++fromi) {
! if (toi != 0 && ((attypes[fromi].at +
! gmtoffs[attypes[toi - 1].type]) <=
! (attypes[toi - 1].at + gmtoffs[toi == 1 ? 0
: attypes[toi - 2].type]))) {
! attypes[toi - 1].type =
! attypes[fromi].type;
continue;
}
if (toi == 0 ||
***************
*** 1526,1532 ****
convert(eitol(typecnt), tzh.tzh_typecnt);
convert(eitol(charcnt), tzh.tzh_charcnt);
(void) strncpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic);
! #define DO(field) (void) fwrite((void *) tzh.field, (size_t) sizeof
tzh.field, (size_t) 1, fp)
DO(tzh_magic);
DO(tzh_reserved);
DO(tzh_ttisgmtcnt);
--- 1536,1543 ----
convert(eitol(typecnt), tzh.tzh_typecnt);
convert(eitol(charcnt), tzh.tzh_charcnt);
(void) strncpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic);
! #define DO(field) (void) fwrite((void *) tzh.field, \
! (size_t) sizeof tzh.field, (size_t) 1, fp)
DO(tzh_magic);
DO(tzh_reserved);
DO(tzh_ttisgmtcnt);
***************
*** 1746,1757 ****
}
if (*startbuf == '\0' &&
startoff == oadd(zp->z_gmtoff,
! stdoff)) {
! doabbr(startbuf,
zp->z_format,
rp->r_abbrvar,
! rp->r_stdoff != 0);
}
- }
eats(zp->z_filename, zp->z_linenum,
rp->r_filename, rp->r_linenum);
doabbr(buf, zp->z_format, rp->r_abbrvar,
--- 1757,1769 ----
}
if (*startbuf == '\0' &&
startoff ==
oadd(zp->z_gmtoff,
! stdoff))
! doabbr(startbuf,
!
zp->z_format,
rp->r_abbrvar,
! rp->r_stdoff
!=
! 0);
}
eats(zp->z_filename, zp->z_linenum,
rp->r_filename, rp->r_linenum);
doabbr(buf, zp->z_format, rp->r_abbrvar,
***************
*** 2041,2047 ****
else while ((*dp = *cp++) != '"')
if (*dp != '\0')
++dp;
! else error(_("Odd number of quotation
marks"));
} while (*cp != '\0' && *cp != '#' &&
(!isascii(*cp) || !isspace((unsigned char) *cp)));
if (isascii(*cp) && isspace((unsigned char) *cp))
--- 2053,2061 ----
else while ((*dp = *cp++) != '"')
if (*dp != '\0')
++dp;
! else error(_(
! "Odd number of quotation
marks"
! ));
} while (*cp != '\0' && *cp != '#' &&
(!isascii(*cp) || !isspace((unsigned char) *cp)));
if (isascii(*cp) && isspace((unsigned char) *cp))
***************
*** 2162,2168 ****
}
if (i < 0 || i >= len_months[isleap(y)][m]) {
if (noise)
! warning(_("rule goes past start/end of
month--will not work with pre-2004 versions of zic"));
}
}
if (dayoff < 0 && !TYPE_SIGNED(zic_t))
--- 2176,2183 ----
}
if (i < 0 || i >= len_months[isleap(y)][m]) {
if (noise)
! warning(_("rule goes past start/end of
month--\
! will not work with pre-2004 versions of zic"));
}
}
if (dayoff < 0 && !TYPE_SIGNED(zic_t))
More information about the tz
mailing list