From c4e53a14110816d0d495bb7f00cb4e3bdee3f123 Mon Sep 17 00:00:00 2001
From: "Marc G. Fournier" <scrappy@hub.org>
Date: Tue, 6 Aug 1996 16:16:50 +0000
Subject: [PATCH] Fixes for:

Here are a few minor fixes to Postgres95.  Mostly I have added const
to some of the char pointers.  There was also a missing header file
and a place where it looks like "==" was used when "=" was meant.
I also changed some variables from Pfin and Pfout tp pfin and pfout
because the latter shadow global variables and that just seems like
an unsafe practice which I like to avoid.

Submitted by:  "D'Arcy J.M. Cain" <darcy@druid.druid.com>
---
 src/interfaces/libpq/fe-auth.c    |  28 ++++----
 src/interfaces/libpq/fe-auth.h    |   6 +-
 src/interfaces/libpq/fe-connect.c |   8 +--
 src/interfaces/libpq/fe-exec.c    | 106 +++++++++++++++---------------
 src/interfaces/libpq/fe-misc.c    |   7 +-
 src/interfaces/libpq/libpq-fe.h   |  24 +++----
 6 files changed, 90 insertions(+), 89 deletions(-)

diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c
index 27ed3eee65..88350b84b4 100644
--- a/src/interfaces/libpq/fe-auth.c
+++ b/src/interfaces/libpq/fe-auth.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.3 1996/07/27 02:27:55 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.4 1996/08/06 16:16:42 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -162,16 +162,16 @@ pg_krb4_authname(char* PQerrormsg)
  * (canonicalized to omit all domain suffixes).
  */
 static int
-pg_krb4_sendauth(char* PQerrormsg, int sock,
+pg_krb4_sendauth(const char* PQerrormsg, int sock,
 		 struct sockaddr_in *laddr,
 		 struct sockaddr_in *raddr,
-		 char *hostname)
+		 const char *hostname)
 {
     long		krbopts = 0;	/* one-way authentication */
     KTEXT_ST	clttkt;
     int		status;
     char		hostbuf[MAXHOSTNAMELEN];
-    char		*realm = getenv("PGREALM"); /* NULL == current realm */
+    const char		*realm = getenv("PGREALM"); /* NULL == current realm */
     
     if (!hostname || !(*hostname)) {
 	if (gethostname(hostbuf, MAXHOSTNAMELEN) < 0)
@@ -227,7 +227,7 @@ pg_krb4_sendauth(char* PQerrormsg, int sock,
  *     and we can't afford to punt.
  */
 static char *
-pg_an_to_ln(char *aname)
+pg_an_to_ln(const char *aname)
 {
     char	*p;
     
@@ -246,7 +246,7 @@ pg_an_to_ln(char *aname)
  * 
  */
 static int
-krb5_ccache pg_krb5_init()
+krb5_ccache pg_krb5_init(void)
 {
     krb5_error_code		code;
     char			*realm, *defname;
@@ -287,8 +287,8 @@ krb5_ccache pg_krb5_init()
  *
  * We obtain this information by digging around in the ticket file.
  */
-static char *
-pg_krb5_authname(char* PQerrormsg)
+static const char *
+pg_krb5_authname(const char* PQerrormsg)
 {
     krb5_ccache	ccache;
     krb5_principal	principal;
@@ -335,15 +335,15 @@ pg_krb5_authname(char* PQerrormsg)
  * in the PGREALM (or local) database.  This is probably a bad assumption.
  */
 static int
-pg_krb5_sendauth(char* PQerrormsg,int sock,
+pg_krb5_sendauth(const char* PQerrormsg,int sock,
 		 struct sockaddr_in *laddr,
 		 struct sockaddr_in *raddr,
-		 char *hostname)
+		 const char *hostname)
 {
     char			servbuf[MAXHOSTNAMELEN + 1 +
 					sizeof(PG_KRB_SRVNAM)];
-    char			*hostp;
-    char			*realm;
+    const char			*hostp;
+    const char			*realm;
     krb5_error_code		code;
     krb5_principal		client, server;
     krb5_ccache		ccache;
@@ -430,7 +430,7 @@ pg_krb5_sendauth(char* PQerrormsg,int sock,
  * fe_sendauth -- client demux routine for outgoing authentication information
  */
 int
-fe_sendauth(MsgType msgtype, Port *port, char *hostname, char* PQerrormsg)
+fe_sendauth(MsgType msgtype, Port *port, const char *hostname, const char* PQerrormsg)
 {
     switch (msgtype) {
 #ifdef KRB4
@@ -474,7 +474,7 @@ fe_sendauth(MsgType msgtype, Port *port, char *hostname, char* PQerrormsg)
 static pg_authsvc = -1;
 
 void
-fe_setauthsvc(char *name, char* PQerrormsg)
+fe_setauthsvc(const char *name, char* PQerrormsg)
 {
     int i;
     
diff --git a/src/interfaces/libpq/fe-auth.h b/src/interfaces/libpq/fe-auth.h
index d5b8ecd8f7..fa939ac122 100644
--- a/src/interfaces/libpq/fe-auth.h
+++ b/src/interfaces/libpq/fe-auth.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: fe-auth.h,v 1.1.1.1 1996/07/09 06:22:17 scrappy Exp $
+ * $Id: fe-auth.h,v 1.2 1996/08/06 16:16:44 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,8 +28,8 @@
 #define	DEFAULT_CLIENT_AUTHSVC	"kerberos"
 #endif /* KRB4 || KRB5 */
 
-extern int fe_sendauth(MsgType msgtype, Port *port, char *hostname, char* PQerromsg);
-extern void fe_setauthsvc(char *name, char* PQerrormsg);
+extern int fe_sendauth(MsgType msgtype, Port *port, const char *hostname, const char* PQerromsg);
+extern void fe_setauthsvc(const char *name, char* PQerrormsg);
 
 #define	PG_KRB4_VERSION	"PGVER4.1"	/* at most KRB_SENDAUTH_VLEN chars */
 #define	PG_KRB5_VERSION	"PGVER5.1"
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 59856a6f93..4b8fbecb48 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.4 1996/07/23 03:35:12 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.5 1996/08/06 16:16:45 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -31,7 +31,7 @@
 standard function? (My, my. Touchy today, are we?) */
 static
 char *
-strdup(char *string)
+strdup(const char *string)
 {
     char *nstr;
 
@@ -64,10 +64,10 @@ static void closePGconn(PGconn *conn);
  * ----------------
  */
 PGconn* 
-PQsetdb(char *pghost, char* pgport, char* pgoptions, char* pgtty, char* dbName)
+PQsetdb(const char *pghost, const char* pgport, const char* pgoptions, const char* pgtty, const char* dbName)
 {
     PGconn *conn;
-    char *tmp;
+    const char *tmp;
 
     conn = (PGconn*)malloc(sizeof(PGconn));
 
diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c
index 14675d4f92..7bf3527f9a 100644
--- a/src/interfaces/libpq/fe-exec.c
+++ b/src/interfaces/libpq/fe-exec.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.12 1996/07/31 18:40:09 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.13 1996/08/06 16:16:46 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -37,7 +37,7 @@ struct winsize {
 #define TUPARR_GROW_BY 100
 
 /* keep this in same order as ExecStatusType in pgtclCmds.h */
-char* pgresStatus[] = {
+const char* pgresStatus[] = {
     "PGRES_EMPTY_QUERY",
     "PGRES_COMMAND_OK",
     "PGRES_TUPLES_OK",
@@ -130,7 +130,7 @@ getTuple(PGconn *conn, PGresult* result, int binary)
   char 	bmap;		   /*  One byte of the bitmap */
   int 	bitcnt = 0; 	   /* number of bits examined in current byte */
   int 	vlen;		   /* length of the current field value */
-  FILE *Pfin = conn->Pfin;
+  FILE *pfin = conn->Pfin;
   FILE *Pfdebug = conn->Pfdebug;
 
   PGresAttValue* tup;
@@ -145,7 +145,7 @@ getTuple(PGconn *conn, PGresult* result, int binary)
   if ( (nfields % BYTELEN) > 0)
     nbytes++;
 
-  if (pqGetnchar(bitmap, nbytes, Pfin, Pfdebug) == 1){
+  if (pqGetnchar(bitmap, nbytes, pfin, Pfdebug) == 1){
       sprintf(conn->errorMessage,
 	      "Error reading null-values bitmap from tuple data stream\n");
       return NULL;
@@ -164,7 +164,7 @@ getTuple(PGconn *conn, PGresult* result, int binary)
     }
     else {
       /* get the value length (the first four bytes are for length) */
-      pqGetInt(&vlen, VARHDRSZ, Pfin, Pfdebug);
+      pqGetInt(&vlen, VARHDRSZ, pfin, Pfdebug);
       if (binary == 0) {
 	vlen = vlen - VARHDRSZ;
 	}
@@ -174,7 +174,7 @@ getTuple(PGconn *conn, PGresult* result, int binary)
       tup[i].value = (char*) malloc(vlen + 1);
       /* read in the value; */
       if (vlen > 0)
-	  pqGetnchar((char*)(tup[i].value), vlen, Pfin, Pfdebug);
+	  pqGetnchar((char*)(tup[i].value), vlen, pfin, Pfdebug);
       tup[i].value[vlen] = '\0';
     }
     /* get the appropriate bitmap */
@@ -240,7 +240,7 @@ makePGresult(PGconn* conn, char* pname)
 
   PGresAttValue* newTup;
 
-  FILE* Pfin = conn->Pfin;
+  FILE* pfin = conn->Pfin;
   FILE* Pfdebug = conn->Pfdebug;
 
   result = makeEmptyPGresult(conn, PGRES_TUPLES_OK);
@@ -249,7 +249,7 @@ makePGresult(PGconn* conn, char* pname)
   /* id of the stream is 'T' to start with */
 
   /* the next two bytes are the number of fields  */
-  if (pqGetInt(&nfields, 2, Pfin, Pfdebug) == 1) {
+  if (pqGetInt(&nfields, 2, pfin, Pfdebug) == 1) {
     sprintf(conn->errorMessage,
 	    "could not get the number of fields from the 'T' message\n");
     goto makePGresult_badResponse_return;
@@ -268,9 +268,9 @@ makePGresult(PGconn* conn, char* pname)
     int adtid;
     int adtsize;
     
-    if ( pqGets(typName, MAX_MESSAGE_LEN, Pfin, Pfdebug) ||
-	pqGetInt(&adtid, 4, Pfin, Pfdebug) ||
-	pqGetInt(&adtsize, 2, Pfin, Pfdebug)) {
+    if ( pqGets(typName, MAX_MESSAGE_LEN, pfin, Pfdebug) ||
+	pqGetInt(&adtid, 4, pfin, Pfdebug) ||
+	pqGetInt(&adtsize, 2, pfin, Pfdebug)) {
       sprintf(conn->errorMessage,
 	      "error reading type information from the 'T' message\n");
       goto makePGresult_badResponse_return;
@@ -281,7 +281,7 @@ makePGresult(PGconn* conn, char* pname)
    result->attDescs[i].adtsize = adtsize; /* casting from int to int2 here */
   }
 
-  id = pqGetc(Pfin,Pfdebug);
+  id = pqGetc(pfin,Pfdebug);
 
   /* process the data stream until we're finished */
   while(!done) {
@@ -306,12 +306,12 @@ makePGresult(PGconn* conn, char* pname)
     case 'C': /* end of portal tuple stream */
       {
       char command[MAX_MESSAGE_LEN];
-      pqGets(command,MAX_MESSAGE_LEN, Pfin, Pfdebug); /* read the command tag */
+      pqGets(command,MAX_MESSAGE_LEN, pfin, Pfdebug); /* read the command tag */
       done = 1;
     }
       break;
     case 'E': /* errors */
-      if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, Pfin, Pfdebug) == 1) {
+      if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, pfin, Pfdebug) == 1) {
 	sprintf(conn->errorMessage,
 		"Error return detected from backend, but error message cannot be read");
       }
@@ -319,7 +319,7 @@ makePGresult(PGconn* conn, char* pname)
       return result;
       break;
     case 'N': /* notices from the backend */
-      if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, Pfin, Pfdebug) == 1) {
+      if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, pfin, Pfdebug) == 1) {
 	sprintf(conn->errorMessage,
 	"Notice return detected from backend, but error message cannot be read");
       }   else
@@ -336,7 +336,7 @@ makePGresult(PGconn* conn, char* pname)
       break;
     }
     if (!done)
-      id = getc(Pfin);
+      id = getc(pfin);
   } /* while (1) */
 
   result->resultStatus = PGRES_TUPLES_OK;
@@ -362,7 +362,7 @@ makePGresult_badResponse_return:
  */
 
 PGresult*
-PQexec(PGconn* conn, char* query)
+PQexec(PGconn* conn, const char* query)
 {
   PGresult *result;
   int id, clear;
@@ -370,7 +370,7 @@ PQexec(PGconn* conn, char* query)
   char cmdStatus[MAX_MESSAGE_LEN];
   char pname[MAX_MESSAGE_LEN]; /* portal name */
   PGnotify *newNotify;
-  FILE *Pfin, *Pfout, *Pfdebug;
+  FILE *pfin, *pfout, *Pfdebug;
 
   pname[0]='\0';
 
@@ -397,7 +397,7 @@ PQexec(PGconn* conn, char* query)
   sprintf(buffer,"Q%s",query);
 
   /* send the query to the backend; */
-  if (pqPuts(buffer,Pfout, Pfdebug) == 1) {
+  if (pqPuts(buffer,pfout, Pfdebug) == 1) {
       (void) sprintf(conn->errorMessage,
 		     "PQexec() -- while sending query:  %s\n-- fprintf to Pfout failed: errno=%d\n%s\n",
 		     query, errno,strerror(errno));
@@ -412,7 +412,7 @@ PQexec(PGconn* conn, char* query)
   while (1) {
 
     /* read the result id */
-    id = pqGetc(Pfin,Pfdebug);
+    id = pqGetc(pfin,Pfdebug);
     if (id == EOF) {
       /* hmm,  no response from the backend-end, that's bad */
       (void) sprintf(conn->errorMessage,
@@ -423,14 +423,14 @@ PQexec(PGconn* conn, char* query)
     switch (id) {
     case 'A': 
 	newNotify = (PGnotify*)malloc(sizeof(PGnotify));
-	pqGetInt(&(newNotify->be_pid), 4, Pfin, Pfdebug);
-	pqGets(newNotify->relname, NAMEDATALEN, Pfin, Pfdebug);
+	pqGetInt(&(newNotify->be_pid), 4, pfin, Pfdebug);
+	pqGets(newNotify->relname, NAMEDATALEN, pfin, Pfdebug);
 	DLAddTail(conn->notifyList, DLNewElem(newNotify));
 	/* async messages are piggy'ed back on other messages,
 	   so we stay in the while loop for other messages */
 	break;
     case 'C': /* portal query command, no tuples returned */
-      if (pqGets(cmdStatus, MAX_MESSAGE_LEN, Pfin, Pfdebug) == 1) {
+      if (pqGets(cmdStatus, MAX_MESSAGE_LEN, pfin, Pfdebug) == 1) {
 	sprintf(conn->errorMessage,
 		"PQexec() -- query command completed, but return message from backend cannot be read");
 	return (PGresult*)NULL;
@@ -444,10 +444,10 @@ PQexec(PGconn* conn, char* query)
 	*/
 	clear = 0;
 
-	pqPuts("Q ",Pfout,Pfdebug); /* send an empty query */
+	pqPuts("Q ",pfout,Pfdebug); /* send an empty query */
 	while (!clear)
 	  {
-	    if (pqGets(buffer,ERROR_MSG_LENGTH,Pfin,Pfdebug) == 1)
+	    if (pqGets(buffer,ERROR_MSG_LENGTH,pfin,Pfdebug) == 1)
 	      clear = 1;
 	    clear = (buffer[0] == 'I');
 	  }
@@ -457,7 +457,7 @@ PQexec(PGconn* conn, char* query)
       }
       break;
     case 'E': /* error return */
-      if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, Pfin, Pfdebug) == 1) {
+      if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, pfin, Pfdebug) == 1) {
 	(void) sprintf(conn->errorMessage,
 		       "PQexec() -- error return detected from backend, but error message cannot be read");
       }
@@ -467,7 +467,7 @@ PQexec(PGconn* conn, char* query)
       /* read the throw away the closing '\0' */
       {
 	int c;
-	if ((c = pqGetc(Pfin,Pfdebug)) != '\0') {
+	if ((c = pqGetc(pfin,Pfdebug)) != '\0') {
 	  fprintf(stderr,"error!, unexpected character %c following 'I'\n", c);
 	}
 	result = makeEmptyPGresult(conn, PGRES_EMPTY_QUERY);
@@ -475,7 +475,7 @@ PQexec(PGconn* conn, char* query)
       }
       break;
     case 'N': /* notices from the backend */
-      if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, Pfin, Pfdebug) == 1) {
+      if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, pfin, Pfdebug) == 1) {
 	sprintf(conn->errorMessage,
 		"PQexec() -- error return detected from backend, but error message cannot be read");
 	return (PGresult*)NULL;
@@ -484,7 +484,7 @@ PQexec(PGconn* conn, char* query)
 	fprintf(stderr,"%s", conn->errorMessage);
       break;
     case 'P': /* synchronous (normal) portal */
-      pqGets(pname,MAX_MESSAGE_LEN,Pfin, Pfdebug);  /* read in the portal name*/
+      pqGets(pname,MAX_MESSAGE_LEN,pfin, Pfdebug);  /* read in the portal name*/
       break;
     case 'T': /* actual tuple results: */
       return makePGresult(conn, pname);
@@ -584,7 +584,7 @@ PQgetline(PGconn *conn, char *s, int maxlen)
  *
  */
 void
-PQputline(PGconn *conn, char *s)
+PQputline(PGconn *conn, const char *s)
 {
     if (conn && (conn->Pfout)) {
 	(void) fputs(s, conn->Pfout);
@@ -605,21 +605,21 @@ int
 PQendcopy(PGconn *conn)
 {
     char id;
-    FILE *Pfin, *Pfdebug;
+    FILE *pfin, *Pfdebug;
 
     if (!conn) return (int)NULL;
 
     Pfin = conn->Pfin;
     Pfdebug = conn->Pfdebug;
 
-    if ( (id = pqGetc(Pfin,Pfdebug)) > 0)
+    if ( (id = pqGetc(pfin,Pfdebug)) > 0)
 	return(0);
     switch (id) {
     case 'Z': /* backend finished the copy */
 	return(1);
     case 'E':
     case 'N':
-	if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, Pfin, Pfdebug) == 1) {
+	if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, pfin, Pfdebug) == 1) {
 	    sprintf(conn->errorMessage,
 		    "Error return detected from backend, but error message cannot be read");
 	}
@@ -661,7 +661,7 @@ void
 PQdisplayTuples(PGresult *res,
 		FILE *fp,      /* where to send the output */
 		int fillAlign, /* pad the fields with spaces */
-		char *fieldSep,  /* field separator */
+		const char *fieldSep,  /* field separator */
 		int printHeader, /* display headers? */
 		int quiet
 		)
@@ -674,7 +674,7 @@ PQdisplayTuples(PGresult *res,
     int fLength[MAX_FIELDS];
 
     if (fieldSep == NULL)
-	fieldSep == DEFAULT_FIELD_SEP;
+	fieldSep = DEFAULT_FIELD_SEP;
 
     /* Get some useful info about the results */
     nFields = PQnfields(res);
@@ -1197,7 +1197,7 @@ PQfn(PGconn *conn,
      PQArgBlock *args,
      int nargs)
 {
-    FILE *Pfin, *Pfout, *Pfdebug;
+    FILE *pfin, *pfout, *Pfdebug;
     int id;
     int i;
 
@@ -1210,24 +1210,24 @@ PQfn(PGconn *conn,
     /* clear the error string */
     conn->errorMessage[0] = '\0';
 
-    pqPuts("F ",Pfout,Pfdebug);           /* function */
-    pqPutInt(fnid, 4, Pfout, Pfdebug);    /* function id */
-    pqPutInt(nargs, 4, Pfout, Pfdebug);	     /*	# of args */
+    pqPuts("F ",pfout,Pfdebug);           /* function */
+    pqPutInt(fnid, 4, pfout, Pfdebug);    /* function id */
+    pqPutInt(nargs, 4, pfout, Pfdebug);	     /*	# of args */
 
     for (i = 0; i < nargs; ++i) { /*	len.int4 + contents	*/
-	pqPutInt(args[i].len, 4, Pfout, Pfdebug);
+	pqPutInt(args[i].len, 4, pfout, Pfdebug);
 	if (args[i].isint) {
-	    pqPutInt(args[i].u.integer, 4, Pfout, Pfdebug);
+	    pqPutInt(args[i].u.integer, 4, pfout, Pfdebug);
 	} else {
-	    pqPutnchar((char *)args[i].u.ptr, args[i].len, Pfout, Pfdebug);
+	    pqPutnchar((char *)args[i].u.ptr, args[i].len, pfout, Pfdebug);
 	}
     }
-    pqFlush(Pfout, Pfdebug);
+    pqFlush(pfout, Pfdebug);
 
-    id = pqGetc(Pfin, Pfdebug);
+    id = pqGetc(pfin, Pfdebug);
     if (id != 'V') {
 	if (id == 'E') {
-	    pqGets(conn->errorMessage,ERROR_MSG_LENGTH,Pfin,Pfdebug);
+	    pqGets(conn->errorMessage,ERROR_MSG_LENGTH,pfin,Pfdebug);
 	} else
 	    sprintf(conn->errorMessage,
 		    "PQfn: expected a 'V' from the backend. Got '%c' instead",
@@ -1235,19 +1235,19 @@ PQfn(PGconn *conn,
 	return makeEmptyPGresult(conn,PGRES_FATAL_ERROR);
     }
 
-    id = pqGetc(Pfin, Pfdebug);
+    id = pqGetc(pfin, Pfdebug);
     for (;;) {
 	int c;
 	switch (id) {
 	case 'G':		/* function returned properly */
-	    pqGetInt(actual_result_len,4,Pfin,Pfdebug);
+	    pqGetInt(actual_result_len,4,pfin,Pfdebug);
 	    if (result_is_int) {
-		pqGetInt(result_buf,4,Pfin,Pfdebug);
+		pqGetInt(result_buf,4,pfin,Pfdebug);
 	    } else {
 		pqGetnchar((char *) result_buf, *actual_result_len,
-			   Pfin, Pfdebug);
+			   pfin, Pfdebug);
 	    }
-	    c = pqGetc(Pfin, Pfdebug); /* get the last '0'*/
+	    c = pqGetc(pfin, Pfdebug); /* get the last '0'*/
 	    return makeEmptyPGresult(conn,PGRES_COMMAND_OK);
 	case 'E':
 	    sprintf(conn->errorMessage,
@@ -1255,7 +1255,7 @@ PQfn(PGconn *conn,
 	    return makeEmptyPGresult(conn,PGRES_FATAL_ERROR);
 	case 'N':
 	    /* print notice and go back to processing return values */
-	    if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, Pfin, Pfdebug) == 1) {
+	    if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, pfin, Pfdebug) == 1) {
 		sprintf(conn->errorMessage,
 			"Notice return detected from backend, but error message cannot be read");
 	    }   else
@@ -1333,7 +1333,7 @@ PQfname(PGresult *res, int field_num)
    returns -1 on a bad field name
 */
 int
-PQfnumber(PGresult *res, char* field_name) 
+PQfnumber(PGresult *res, const char* field_name) 
 {
   int i;
 
@@ -1406,7 +1406,7 @@ char* PQcmdStatus(PGresult *res) {
     if the last command was an INSERT, return the oid string 
     if not, return ""
 */
-char* PQoidStatus(PGresult *res) {
+const char* PQoidStatus(PGresult *res) {
   if (!res) {
     fprintf(stderr, "PQoidStatus() -- pointer to PQresult is null");
     return NULL;
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index c8b703b9d3..ea5b87df7e 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -11,13 +11,14 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.1.1.1 1996/07/09 06:22:17 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.2 1996/08/06 16:16:48 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include <stdlib.h>
 #include <stdio.h>
+#include "libpq-fe.h"
 
 /* pqGetc:
    get a character from stream f
@@ -41,7 +42,7 @@ pqGetc(FILE* fin, FILE* debug)
    returns 1 if there was an error, 0 otherwise.
 */
 int
-pqPutnchar(char* s, int len, FILE *f, FILE *debug)
+pqPutnchar(const char* s, int len, FILE *f, FILE *debug)
 {
     int status;
 
@@ -165,7 +166,7 @@ pqGetInt(int* result, int bytes, FILE* f, FILE *debug)
 
 
 int
-pqPuts(char* s, FILE *f, FILE *debug)
+pqPuts(const char* s, FILE *f, FILE *debug)
 {
   if (f == NULL)
     return 1;
diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h
index 072039558c..84de505337 100644
--- a/src/interfaces/libpq/libpq-fe.h
+++ b/src/interfaces/libpq/libpq-fe.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: libpq-fe.h,v 1.5 1996/07/31 18:40:12 scrappy Exp $
+ * $Id: libpq-fe.h,v 1.6 1996/08/06 16:16:50 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@ typedef enum {
 } ExecStatusType;
 
 /* string descriptions of the ExecStatusTypes */
-extern char* pgresStatus[]; 
+extern const char* pgresStatus[]; 
 
 /* 
  * POSTGRES backend dependent Constants. 
@@ -144,8 +144,8 @@ typedef struct _PQprintOpt PQprintOpt;
 
 /* ===  in fe-connect.c === */
   /* make a new client connection to the backend */
-extern PGconn* PQsetdb(char* pghost, char* pgport, char* pgoptions, 
-		       char* pgtty, char* dbName);
+extern PGconn* PQsetdb(const char* pghost, const char* pgport, const char* pgoptions, 
+		       const char* pgtty, const char* dbName);
   /* close the current connection and free the PGconn data structure */
 extern void PQfinish(PGconn* conn);
   /* close the current connection and restablish a new one with the same 
@@ -163,19 +163,19 @@ extern void PQtrace(PGconn *conn, FILE* debug_port);
 extern void PQuntrace(PGconn *conn);
 
 /* === in fe-exec.c === */
-extern PGresult* PQexec(PGconn* conn, char* query);
+extern PGresult* PQexec(PGconn* conn, const char* query);
 extern int PQgetline(PGconn *conn, char* string, int length);
 extern int PQendcopy(PGconn *conn);
-extern void PQputline(PGconn *conn, char* string);
+extern void PQputline(PGconn *conn, const char* string);
 extern ExecStatusType PQresultStatus(PGresult* res);
 extern int PQntuples(PGresult *res);
 extern int PQnfields(PGresult *res);
 extern char* PQfname(PGresult *res, int field_num);
-extern int PQfnumber(PGresult *res, char* field_name);
+extern int PQfnumber(PGresult *res, const char* field_name);
 extern Oid PQftype(PGresult *res, int field_num);
 extern int2 PQfsize(PGresult *res, int field_num);
 extern char* PQcmdStatus(PGresult *res);
-extern char* PQoidStatus(PGresult *res);
+extern const char* PQoidStatus(PGresult *res);
 extern char* PQgetvalue(PGresult *res, int tup_num, int field_num);
 extern int PQgetlength(PGresult *res, int tup_num, int field_num);
 extern void PQclear(PGresult* res);
@@ -183,7 +183,7 @@ extern void PQclear(PGresult* res);
 extern void PQdisplayTuples(PGresult *res,
 			    FILE *fp,      /* where to send the output */
 			    int fillAlign, /* pad the fields with spaces */
-			    char *fieldSep,  /* field separator */
+			    const char *fieldSep,  /* field separator */
 			    int printHeader, /* display headers? */
 			    int quiet);
 extern void PQprintTuples(PGresult* res, 
@@ -207,7 +207,7 @@ extern PGresult* PQfn(PGconn* conn,
 		      int nargs);
 /* === in fe-auth.c === */
 extern MsgType fe_getauthsvc(char* PQerrormsg);
-extern void fe_setauthsvc(char *name, char* PQerrormsg);
+extern void fe_setauthsvc(const char *name, char* PQerrormsg);
 extern char *fe_getauthname(char* PQerrormsg);
 
 /* === in fe-misc.c === */
@@ -217,8 +217,8 @@ extern char *fe_getauthname(char* PQerrormsg);
 */
 extern int pqGets(char* s, int maxlen, FILE* stream, FILE* debug);
 extern int pqGetnchar(char* s, int maxlen, FILE* stream, FILE* debug);
-extern int pqPutnchar(char* s, int maxlen, FILE* stream, FILE* debug);
-extern int pqPuts(char* s, FILE* stream, FILE* debug );
+extern int pqPutnchar(const char* s, int maxlen, FILE* stream, FILE* debug);
+extern int pqPuts(const char* s, FILE* stream, FILE* debug );
 extern int pqGetc(FILE* stream, FILE *debug);
 /* get a n-byte integer from the stream into result */
 /* returns 0 if successful */