From 14720f7c5709f10dbac56e0ff26d9d373904735d Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 1 Sep 2005 15:34:31 +0000
Subject: [PATCH] Fix unportable uses of <ctype.h> functions.  Per Sergey
 Koposov.

---
 src/backend/commands/copy.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 008413cc97f..7f6fe90c24e 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -8,12 +8,13 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.248 2005/08/06 20:41:58 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.249 2005/09/01 15:34:31 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
+#include <ctype.h>
 #include <unistd.h>
 #include <sys/stat.h>
 #include <netinet/in.h>
@@ -2657,10 +2658,10 @@ CopyReadLineCSV(CopyState cstate)
 static int
 GetDecimalFromHex(char hex)
 {
-	if (isdigit(hex))
+	if (isdigit((unsigned char) hex))
 		return hex - '0';
 	else
-		return tolower(hex) - 'a' + 10;
+		return tolower((unsigned char) hex) - 'a' + 10;
 }
 
 /*
@@ -2802,7 +2803,7 @@ CopyReadAttributesText(CopyState cstate, int maxfields, char **fieldvals)
 						{
 							char hexchar = *cur_ptr;
 
-							if (isxdigit(hexchar))
+							if (isxdigit((unsigned char) hexchar))
 							{
 								int val = GetDecimalFromHex(hexchar);
 
@@ -2810,7 +2811,7 @@ CopyReadAttributesText(CopyState cstate, int maxfields, char **fieldvals)
 								if (cur_ptr < line_end_ptr)
 								{
 									hexchar = *cur_ptr;
-									if (isxdigit(hexchar))
+									if (isxdigit((unsigned char) hexchar))
 									{
 										cur_ptr++;
 										val = (val << 4) + GetDecimalFromHex(hexchar);
-- 
GitLab