summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/datetime.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/datetime.c')
-rw-r--r--src/backend/utils/adt/datetime.c64
1 files changed, 34 insertions, 30 deletions
diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index a167943dff..1426088e62 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.56 2000/11/11 19:55:19 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.57 2000/12/03 20:45:35 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -421,16 +421,17 @@ ParseDateTime(char *timestr, char *lowstr,
field[nf] = lp;
/* leading digit? then date or time */
- if (isdigit((int) *cp) || (*cp == '.'))
+ if (isdigit((unsigned char) *cp) || (*cp == '.'))
{
*lp++ = *cp++;
- while (isdigit((int) *cp))
+ while (isdigit((unsigned char) *cp))
*lp++ = *cp++;
/* time field? */
if (*cp == ':')
{
ftype[nf] = DTK_TIME;
- while (isdigit((int) *cp) || (*cp == ':') || (*cp == '.'))
+ while (isdigit((unsigned char) *cp) ||
+ (*cp == ':') || (*cp == '.'))
*lp++ = *cp++;
}
@@ -438,8 +439,9 @@ ParseDateTime(char *timestr, char *lowstr,
else if ((*cp == '-') || (*cp == '/') || (*cp == '.'))
{
ftype[nf] = DTK_DATE;
- while (isalnum((int) *cp) || (*cp == '-') || (*cp == '/') || (*cp == '.'))
- *lp++ = tolower(*cp++);
+ while (isalnum((unsigned char) *cp) || (*cp == '-') ||
+ (*cp == '/') || (*cp == '.'))
+ *lp++ = tolower((unsigned char) *cp++);
}
@@ -456,12 +458,12 @@ ParseDateTime(char *timestr, char *lowstr,
* text? then date string, month, day of week, special, or
* timezone
*/
- else if (isalpha((int) *cp))
+ else if (isalpha((unsigned char) *cp))
{
ftype[nf] = DTK_STRING;
- *lp++ = tolower(*cp++);
- while (isalpha((int) *cp))
- *lp++ = tolower(*cp++);
+ *lp++ = tolower((unsigned char) *cp++);
+ while (isalpha((unsigned char) *cp))
+ *lp++ = tolower((unsigned char) *cp++);
/*
* Full date string with leading text month? Could also be a
@@ -470,13 +472,14 @@ ParseDateTime(char *timestr, char *lowstr,
if ((*cp == '-') || (*cp == '/') || (*cp == '.'))
{
ftype[nf] = DTK_DATE;
- while (isdigit((int) *cp) || (*cp == '-') || (*cp == '/') || (*cp == '.'))
- *lp++ = tolower(*cp++);
+ while (isdigit((unsigned char) *cp) ||
+ (*cp == '-') || (*cp == '/') || (*cp == '.'))
+ *lp++ = tolower((unsigned char) *cp++);
}
/* skip leading spaces */
}
- else if (isspace((int) *cp))
+ else if (isspace((unsigned char) *cp))
{
cp++;
continue;
@@ -487,24 +490,25 @@ ParseDateTime(char *timestr, char *lowstr,
{
*lp++ = *cp++;
/* soak up leading whitespace */
- while (isspace((int) *cp))
+ while (isspace((unsigned char) *cp))
cp++;
/* numeric timezone? */
- if (isdigit((int) *cp))
+ if (isdigit((unsigned char) *cp))
{
ftype[nf] = DTK_TZ;
*lp++ = *cp++;
- while (isdigit((int) *cp) || (*cp == ':') || (*cp == '.'))
+ while (isdigit((unsigned char) *cp) ||
+ (*cp == ':') || (*cp == '.'))
*lp++ = *cp++;
/* special? */
}
- else if (isalpha((int) *cp))
+ else if (isalpha((unsigned char) *cp))
{
ftype[nf] = DTK_SPECIAL;
- *lp++ = tolower(*cp++);
- while (isalpha((int) *cp))
- *lp++ = tolower(*cp++);
+ *lp++ = tolower((unsigned char) *cp++);
+ while (isalpha((unsigned char) *cp))
+ *lp++ = tolower((unsigned char) *cp++);
/* otherwise something wrong... */
}
@@ -513,7 +517,7 @@ ParseDateTime(char *timestr, char *lowstr,
/* ignore punctuation but use as delimiter */
}
- else if (ispunct((int) *cp))
+ else if (ispunct((unsigned char) *cp))
{
cp++;
continue;
@@ -631,7 +635,7 @@ DecodeDateTime(char **field, int *ftype, int nf,
* PST)
*/
if ((i > 0) && ((fmask & DTK_M(TZ)) != 0)
- && (ftype[i - 1] == DTK_TZ) && (isalpha((int) *field[i - 1])))
+ && (ftype[i - 1] == DTK_TZ) && (isalpha((unsigned char) *field[i - 1])))
{
*tzp -= tz;
tmask = 0;
@@ -974,7 +978,7 @@ DecodeTimeOnly(char **field, int *ftype, int nf,
* PST)
*/
if ((i > 0) && ((fmask & DTK_M(TZ)) != 0)
- && (ftype[i - 1] == DTK_TZ) && (isalpha((int) *field[i - 1])))
+ && (ftype[i - 1] == DTK_TZ) && (isalpha((unsigned char) *field[i - 1])))
{
*tzp -= tz;
tmask = 0;
@@ -1162,18 +1166,18 @@ DecodeDate(char *str, int fmask, int *tmask, struct tm * tm)
while ((*str != '\0') && (nf < MAXDATEFIELDS))
{
/* skip field separators */
- while (!isalnum((int) *str))
+ while (!isalnum((unsigned char) *str))
str++;
field[nf] = str;
- if (isdigit((int) *str))
+ if (isdigit((unsigned char) *str))
{
- while (isdigit((int) *str))
+ while (isdigit((unsigned char) *str))
str++;
}
- else if (isalpha((int) *str))
+ else if (isalpha((unsigned char) *str))
{
- while (isalpha((int) *str))
+ while (isalpha((unsigned char) *str))
str++;
}
@@ -1193,7 +1197,7 @@ DecodeDate(char *str, int fmask, int *tmask, struct tm * tm)
/* look first for text fields, since that will be unambiguous month */
for (i = 0; i < nf; i++)
{
- if (isalpha((int) *field[i]))
+ if (isalpha((unsigned char) *field[i]))
{
type = DecodeSpecial(i, field[i], &val);
if (type == IGNORE)
@@ -1556,7 +1560,7 @@ DecodePosixTimezone(char *str, int *tzp)
char delim;
cp = str;
- while ((*cp != '\0') && isalpha((int) *cp))
+ while ((*cp != '\0') && isalpha((unsigned char) *cp))
cp++;
if (DecodeTimezone(cp, &tz) != 0)