Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Oct 2016 12:38:22 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r307359 - stable/10/contrib/tzcode/zic
Message-ID:  <201610151238.u9FCcMNs032079@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Sat Oct 15 12:38:21 2016
New Revision: 307359
URL: https://svnweb.freebsd.org/changeset/base/307359

Log:
  MFC r306852
  
  Incorporate a change from OpenBSD by millert@OpenBSD.org
  
  Don't warn about valid time zone abbreviations.  POSIX
  through 2000 says that an abbreviation cannot start with ':', and
  cannot contain ',', '-', '+', NUL, or a digit.  POSIX from 2001
  on changes this rule to say that an abbreviation can contain only
  '-', '+', and alphanumeric characters from the portable character
  set in the current locale.  To be portable to both sets of rules,
  an abbreviation must therefore use only ASCII letters."  Adapted
  from tzcode2015f.
  
  This is needed to be able to update tzdata to a newer version

Modified:
  stable/10/contrib/tzcode/zic/zdump.c
  stable/10/contrib/tzcode/zic/zic.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/tzcode/zic/zdump.c
==============================================================================
--- stable/10/contrib/tzcode/zic/zdump.c	Sat Oct 15 12:37:57 2016	(r307358)
+++ stable/10/contrib/tzcode/zic/zdump.c	Sat Oct 15 12:38:21 2016	(r307359)
@@ -212,24 +212,16 @@ const char * const	zone;
 		return;
 	cp = abbrp;
 	wp = NULL;
-	while (isascii((unsigned char) *cp) && isalpha((unsigned char) *cp))
+	while (isascii((unsigned char) *cp) &&
+		(isalnum((unsigned char)*cp) || *cp == '-' || *cp == '+'))
 		++cp;
-	if (cp - abbrp == 0)
-		wp = _("lacks alphabetic at start");
-	else if (cp - abbrp < 3)
-		wp = _("has fewer than 3 alphabetics");
+	if (cp - abbrp < 3)
+		wp = _("has fewer than 3 characters");
 	else if (cp - abbrp > 6)
-		wp = _("has more than 6 alphabetics");
-	if (wp == NULL && (*cp == '+' || *cp == '-')) {
-		++cp;
-		if (isascii((unsigned char) *cp) &&
-			isdigit((unsigned char) *cp))
-				if (*cp++ == '1' && *cp >= '0' && *cp <= '4')
-					++cp;
-		if (*cp != '\0')
-			wp = _("differs from POSIX standard");
-	}
-	if (wp == NULL)
+		wp = _("has more than 6 characters");
+	else if (*cp)
+		wp = "has characters other than ASCII alphanumerics, '-' or '+'";
+	else
 		return;
 	(void) fflush(stdout);
 	(void) fprintf(stderr,

Modified: stable/10/contrib/tzcode/zic/zic.c
==============================================================================
--- stable/10/contrib/tzcode/zic/zic.c	Sat Oct 15 12:37:57 2016	(r307358)
+++ stable/10/contrib/tzcode/zic/zic.c	Sat Oct 15 12:38:21 2016	(r307359)
@@ -2615,29 +2615,15 @@ const char * const	string;
 		register const char *	cp;
 		register char *		wp;
 
-		/*
-		** Want one to ZIC_MAX_ABBR_LEN_WO_WARN alphabetics
-		** optionally followed by a + or - and a number from 1 to 14.
-		*/
 		cp = string;
 		wp = NULL;
 		while (isascii((unsigned char) *cp) &&
-			isalpha((unsigned char) *cp))
+			(isalnum((unsigned char)*cp) || *cp == '-' || *cp == '+'))
 				++cp;
-		if (cp - string == 0)
-wp = _("time zone abbreviation lacks alphabetic at start");
 		if (noise && cp - string > 3)
-wp = _("time zone abbreviation has more than 3 alphabetics");
+wp = _("time zone abbreviation has more than 3 characters");
 		if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN)
-wp = _("time zone abbreviation has too many alphabetics");
-		if (wp == NULL && (*cp == '+' || *cp == '-')) {
-			++cp;
-			if (isascii((unsigned char) *cp) &&
-				isdigit((unsigned char) *cp))
-					if (*cp++ == '1' &&
-						*cp >= '0' && *cp <= '4')
-							++cp;
-		}
+wp = _("time zone abbreviation has too many characters");
 		if (*cp != '\0')
 wp = _("time zone abbreviation differs from POSIX standard");
 		if (wp != NULL) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201610151238.u9FCcMNs032079>