*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.26 1997/09/18 20:19:38 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.27 1997/10/25 01:08:45 momjian Exp $
*
* NOTES
* some of the executor utility code such as "ExecTypeFromTL" should be
}
else
{
- strNcpy(typename, entry->typename->name, NAMEDATALEN - 1);
+ StrNCpy(typename, entry->typename->name, NAMEDATALEN);
attdim = 0;
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.20 1997/09/12 04:07:20 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.21 1997/10/25 01:08:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* unlisten prior to dying.
*/
relnamei = malloc(NAMEDATALEN); /* persists to process exit */
- strNcpy(relnamei, relname, NAMEDATALEN - 1);
+ StrNCpy(relnamei, relname, NAMEDATALEN);
on_exitpg(Async_UnlistenOnExit, (caddr_t) relnamei);
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.17 1997/09/08 21:42:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.18 1997/10/25 01:08:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
if (strlen(stmt->relname) >= NAMEDATALEN)
elog(WARN, "the relation name %s is >= %d characters long", stmt->relname,
NAMEDATALEN);
- strNcpy(relname, stmt->relname, NAMEDATALEN - 1); /* make full length for
+ StrNCpy(relname, stmt->relname, NAMEDATALEN); /* make full length for
* copy */
/* ----------------
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.9 1997/09/08 21:42:42 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.10 1997/10/25 01:08:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
if ((strlen(rte->refname) < 4) ||
(strcmp(rte->relname, rte->refname) != 0))
continue;
- strNcpy(prefix, rte->refname, 4);
+ StrNCpy(prefix, rte->refname, 5);
if (strcmp(prefix, "tee_") == 0)
{
/* okay, we found a tee node entry in the range table */
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.27 1997/10/12 07:09:02 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.28 1997/10/25 01:09:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
if (!HeapTupleIsValid(htp))
elog(WARN, "ExecCheckPerms: bogus RT relid: %d",
relid);
- strNcpy(rname.data,
+ StrNCpy(rname.data,
((Form_pg_class) GETSTRUCT(htp))->relname.data,
- NAMEDATALEN - 1);
+ NAMEDATALEN);
if (i == resultRelation)
{ /* this is the result relation */
qvars = pull_varnos(parseTree->qual);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.19 1997/09/18 20:20:35 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.20 1997/10/25 01:09:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
att->attrelid = 0; /* dummy value */
if (attName != (char *) NULL)
- strNcpy(att->attname.data, attName, NAMEDATALEN - 1);
+ StrNCpy(att->attname.data, attName, NAMEDATALEN);
else
MemSet(att->attname.data, 0, NAMEDATALEN);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.15 1997/09/08 21:43:41 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.16 1997/10/25 01:09:16 momjian Exp $
*
* NOTES
* This should be moved to a more appropriate place. It is here
/*
* open the file to be read in
*/
- strNcpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ);
+ StrNCpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ + 1);
fd = open(fnamebuf, O_RDONLY, 0666);
if (fd < 0)
{ /* error */
* open the file to be written to
*/
oumask = umask((mode_t) 0);
- strNcpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ);
+ StrNCpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ + 1);
fd = open(fnamebuf, O_CREAT | O_WRONLY, 0666);
umask(oumask);
if (fd < 0)
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.7 1997/09/08 21:43:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.8 1997/10/25 01:09:18 momjian Exp $
*
*-------------------------------------------------------------------------
*/
len = strlen(str);
newstr = (char *) palloc((unsigned) len + 1);
- strNcpy(newstr, str, len);
+ StrNCpy(newstr, str, len+1);
newstr[len] = (char) 0;
return newstr;
}
if (test_pw[strlen(test_pw) - 1] == '\n')
test_pw[strlen(test_pw) - 1] = '\0';
- strNcpy(salt, test_pw, 2);
+ StrNCpy(salt, test_pw, 3);
if (strcmp(user, test_user) == 0)
{
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/portal.c,v 1.9 1997/09/08 21:43:47 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/portal.c,v 1.10 1997/10/25 01:09:21 momjian Exp $
*
*-------------------------------------------------------------------------
*/
{
if (!rule_p || portals[i]->portal->rule_p)
{
- strncpy(pnames[cur_pname], portals[i]->name, PortalNameLength);
+ strncpy(pnames[cur_pname], portals[i]->name, PortalNameLength+1);
++cur_pname;
}
}
pqNotifyList = DLNewList();
p = (PQNotifyList *) pbuf_alloc(sizeof(PQNotifyList));
- strNcpy(p->relname, relname, NAMEDATALEN - 1);
+ StrNCpy(p->relname, relname, NAMEDATALEN);
p->be_pid = pid;
p->valid = 1;
DLAddTail(pqNotifyList, DLNewElem(p));
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/portalbuf.c,v 1.7 1997/09/08 21:43:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/portalbuf.c,v 1.8 1997/10/25 01:09:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
pbuf_setportalinfo(PortalEntry *entry, char *pname)
{
if (entry)
- strNcpy(entry->name, pname, PortalNameLength - 1);
+ StrNCpy(entry->name, pname, PortalNameLength);
}
/* --------------------------------
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.9 1997/09/08 21:44:10 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.10 1997/10/25 01:09:28 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
RangeTblEntry *rte;
rte = rt_fetch(((Scan *) p)->scanrelid, parsetree->rtable);
- strNcpy(extraInfo, rte->relname, NAMEDATALEN - 1);
+ StrNCpy(extraInfo, rte->relname, NAMEDATALEN);
}
else if (IsA(p, IndexScan))
{
- strNcpy(extraInfo,
+ StrNCpy(extraInfo,
((RangeTblEntry *) (nth(((IndexScan *) p)->scan.scanrelid - 1,
parsetree->rtable)))->relname,
- NAMEDATALEN - 1);
+ NAMEDATALEN);
}
else
extraInfo[0] = '\0';
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.9 1997/09/08 21:44:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.10 1997/10/25 01:09:30 momjian Exp $
*
* NOTES
* Most of the read functions for plan nodes are tested. (In fact, they
NotifyStmt *n = makeNode(NotifyStmt);
n->relname = palloc(length + 1);
- strNcpy(n->relname, token, length);
+ StrNCpy(n->relname, token, length+1);
local_node->utilityStmt = (Node *) n;
}
else
{
local_node->uniqueFlag = palloc(length + 1);
- strNcpy(local_node->uniqueFlag, token, length);
+ StrNCpy(local_node->uniqueFlag, token, length+1);
}
token = lsptok(NULL, &length); /* skip :targetlist */
token = lsptok(NULL, &length); /* eat :aggname */
token = lsptok(NULL, &length); /* get aggname */
local_node->aggname = (char *) palloc(length + 1);
- strNcpy(local_node->aggname, token, length);
+ StrNCpy(local_node->aggname, token, length+1);
token = lsptok(NULL, &length); /* eat :basetype */
token = lsptok(NULL, &length); /* get basetype */
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.46 1997/10/16 06:58:38 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.47 1997/10/25 01:09:35 momjian Exp $
*
*-------------------------------------------------------------------------
*/
Ident *id = makeNode(Ident);
id->name = palloc(NAMEDATALEN);
- strNcpy(id->name, attr[i]->attname.data, NAMEDATALEN - 1);
+ StrNCpy(id->name, attr[i]->attname.data, NAMEDATALEN);
id->indirection = NIL;
id->isRel = false;
if (tl == NIL)
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.56 1997/10/09 05:43:59 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.57 1997/10/25 01:09:41 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
relation_name: SpecialRuleRelation
{
$$ = $1;
- strNcpy(saved_relname, $1, NAMEDATALEN-1);
+ StrNCpy(saved_relname, $1, NAMEDATALEN);
}
| ColId
{
elog(WARN,"%s cannot be accessed by users",$1);
else
$$ = $1;
- strNcpy(saved_relname, $1, NAMEDATALEN-1);
+ StrNCpy(saved_relname, $1, NAMEDATALEN);
}
;
* first SYMNMLEN chars and make sure we have a zero byte at
* the end.
*/
- strNcpy(tmpsym, ls->l_name, SYMNMLEN);
+ StrNCpy(tmpsym, ls->l_name, SYMNMLEN+1);
symname = tmpsym;
}
ep->name = strdup(symname);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.58 1997/09/18 20:21:08 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.59 1997/10/25 01:09:55 momjian Exp $
*
* NOTES
*
msgType = (MsgType) ntohl(port->buf.msgtype);
- strNcpy(namebuf, sp.user, NAMEDATALEN - 1);
+ StrNCpy(namebuf, sp.user, NAMEDATALEN);
if (!namebuf[0])
{
strncpy(errormsg,
sprintf(portbuf, "-P%d", portFd);
av[ac++] = portbuf;
- strNcpy(argbuf, packet->options, ARGV_SIZE);
+ StrNCpy(argbuf, packet->options, ARGV_SIZE);
strncat(argbuf, ExtraOptions, ARGV_SIZE);
argbuf[(2 * ARGV_SIZE)] = '\0';
split_opts(av, &ac, argbuf);
if (packet->database[0])
- strNcpy(dbbuf, packet->database, ARGV_SIZE);
+ StrNCpy(dbbuf, packet->database, ARGV_SIZE);
else
- strNcpy(dbbuf, packet->user, NAMEDATALEN - 1);
+ StrNCpy(dbbuf, packet->user, NAMEDATALEN);
av[ac++] = dbbuf;
av[ac] = (char *) NULL;
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.22 1997/09/18 20:21:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.23 1997/10/25 01:10:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* do this.
*/
- strNcpy(fname, RelationGetRelationName(reln)->data, NAMEDATALEN - 1);
+ StrNCpy(fname, RelationGetRelationName(reln)->data, NAMEDATALEN);
if (FileNameUnlink(fname) < 0)
return (SM_FAIL);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.49 1997/09/18 20:22:03 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.50 1997/10/25 01:10:16 momjian Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
* o - send output (stdout and stderr) to the given file
* ----------------
*/
- strNcpy(OutputFileName, optarg, MAXPGPATH);
+ StrNCpy(OutputFileName, optarg, MAXPGPATH);
break;
case 'p': /* started by postmaster */
if (IsUnderPostmaster == false)
{
puts("\nPOSTGRES backend interactive interface");
- puts("$Revision: 1.49 $ $Date: 1997/09/18 20:22:03 $");
+ puts("$Revision: 1.50 $ $Date: 1997/10/25 01:10:16 $");
}
/* ----------------
* Routines for handling of 'SET var TO', 'SHOW var' and 'RESET var'
* statements.
*
- * $Id: variable.c,v 1.16 1997/09/08 21:47:59 momjian Exp $
+ * $Id: variable.c,v 1.17 1997/10/25 01:10:22 momjian Exp $
*
*/
}
*tok = (char *) PALLOC(len + 1);
- strNcpy(*tok, start, len);
+ StrNCpy(*tok, start, len+1);
/* skip white spaces */
while (isspace(*str))
}
*val = (char *) PALLOC(len + 1);
- strNcpy(*val, start, len);
+ StrNCpy(*val, start, len+1);
/* skip white spaces */
while (isspace(*str))
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/tioga/Attic/tgRecipe.c,v 1.6 1997/09/08 21:48:01 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tioga/Attic/tgRecipe.c,v 1.7 1997/10/25 01:10:26 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* extra character for \0
* anyway */
word = (char *) malloc(nextlen);
- strNcpy(word, beginQuote + 1, nextlen - 1);
+ StrNCpy(word, beginQuote + 1, nextlen);
addArr_TgString(result, (TgString *) & word);
free(word);
str = endQuote + 1;
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.11 1997/09/08 21:48:18 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.12 1997/10/25 01:10:32 momjian Exp $
*
*-------------------------------------------------------------------------
*/
result[1] = '\0';
}
else
- strNcpy(result, s, 16);
+ StrNCpy(result, s, 16);
return (result);
}
{
char *result = (char *) palloc(3);
- strNcpy(result, (char *) &s, 2);
+ StrNCpy(result, (char *) &s, 3);
return (result);
}
{
char *result = (char *) palloc(5);
- strNcpy(result, (char *) &s, 4);
+ StrNCpy(result, (char *) &s, 5);
return (result);
}
result[1] = '\0';
}
else
- strNcpy(result, s, 8);
+ StrNCpy(result, s, 9);
return (result);
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/filename.c,v 1.10 1997/09/08 02:30:40 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/filename.c,v 1.11 1997/10/25 01:10:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
else
{
/* Someone else's directory */
- char name[16],
+ char name[17],
*p;
struct passwd *pw;
int len;
else
{
len = (p - file) - 1;
- strNcpy(name, file + 1, len);
+ StrNCpy(name, file + 1, len+1);
}
/* printf("name: %s\n"); */
if ((pw = getpwnam(name)) == NULL)
else
{
len = (p - file) - 1;
- strNcpy(environment, file + 1, len);
+ StrNCpy(environment, file + 1, len+1);
}
envirp = getenv(environment);
if (envirp)
/* be sure sterm is null-terminated */
sterm = (char *) palloc(charlen + 1);
- strNcpy(sterm, s, charlen);
+ StrNCpy(sterm, s, charlen+1);
/*
* p is a text = varlena, not a string so we have to make a string
}
-/* $Revision: 1.9 $
+/* $Revision: 1.10 $
** "like.c" A first attempt at a LIKE operator for Postgres95.
**
** Originally written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986.
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/name.c,v 1.9 1997/09/08 21:48:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/name.c,v 1.10 1997/10/25 01:10:40 momjian Exp $
*
*-------------------------------------------------------------------------
*/
return (NULL);
result = (NameData *) palloc(NAMEDATALEN);
/* always keep it null-padded */
- strNcpy(result->data, s, NAMEDATALEN - 1);
+ StrNCpy(result->data, s, NAMEDATALEN);
return (result);
}
{
if (!name || !str)
return (-1);
- strNcpy(name->data, str, NAMEDATALEN - 1);
+ StrNCpy(name->data, str, NAMEDATALEN);
return (0);
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidname.c,v 1.8 1997/09/18 20:22:16 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidname.c,v 1.9 1997/10/25 01:10:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
oc->id = (Oid) pg_atoi(inStr, sizeof(Oid), ',');
/* copy one less to ensure null-padding */
++inptr;
- strNcpy(oc->name.data, inptr, NAMEDATALEN - 1);
+ StrNCpy(oc->name.data, inptr, NAMEDATALEN);
}
else
elog(WARN, "Bad input data for type oidname");
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.10 1997/09/08 21:48:40 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.11 1997/10/25 01:10:44 momjian Exp $
*
* Alistair Crooks added the code for the regex caching
* agc - cached the regular expressions used - there's a good chance
/* be sure sterm is null-terminated */
sterm = (char *) palloc(charlen + 1);
- strNcpy(sterm, s, charlen);
+ StrNCpy(sterm, s, charlen+1);
result = RE_compile_and_execute(p, sterm, cflags);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.7 1997/09/08 02:30:58 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.8 1997/10/25 01:10:45 momjian Exp $
*
*-------------------------------------------------------------------------
*/
RelationGetTupleDescriptor(proc), &isnull);
if (!isnull)
{
- strNcpy(result, s, 16);
+ StrNCpy(result, s, 16);
break;
}
elog(FATAL, "regprocout: null procedure %d", proid);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.10 1997/09/08 02:31:05 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.11 1997/10/25 01:10:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
{
len = *(int32 *) s - 4;
result = (char *) palloc(len + 1);
- strNcpy(result, s + 4, len); /* these are blank-padded */
+ StrNCpy(result, s + 4, len+1); /* these are blank-padded */
}
return (result);
}
result = (char *) palloc(typlen);
*(int32 *) result = typlen;
- strncpy(result + 4, s, len);
+ strncpy(result + 4, s, len+1);
return (result);
}
{
len = *(int32 *) s - 4;
result = (char *) palloc(len + 1);
- strNcpy(result, s + 4, len);
+ StrNCpy(result, s + 4, len+1);
}
return (result);
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/psort.c,v 1.26 1997/10/15 06:36:08 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/psort.c,v 1.27 1997/10/25 01:10:52 momjian Exp $
*
* NOTES
* Sorts the first relation into the second relation.
* now, copy template with final null into palloc'd space
*/
- strNcpy(tp->tl_name, uniqueName, MAXPGPATH-1);
+ StrNCpy(tp->tl_name, uniqueName, MAXPGPATH);
file = AllocateFile(tp->tl_name, "w+");
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: c.h,v 1.22 1997/09/18 18:48:32 momjian Exp $
+ * $Id: c.h,v 1.23 1997/10/25 01:10:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* 5) IsValid macros for system types
* 6) offsetof, lengthof, endof
* 7) exception handling definitions, Assert, Trap, etc macros
- * 8) Min, Max, Abs, strNcpy macros
+ * 8) Min, Max, Abs, StrNCpy macros
* 9) externs
* 10) Berkeley-specific defs
* 11) system-specific hacks
#define Abs(x) ((x) >= 0 ? (x) : -(x))
/*
- * strNcpy --
+ * StrNCpy --
* Does string copy, and forces terminating NULL
*/
/* we do this so if the macro is used in an if action, it will work */
-#define strNcpy(dst,src,len) (strncpy((dst),(src),(len)),*((dst)+(len))='\0')
+#define StrNCpy(dst,src,len) do { \
+ strncpy((dst),(src),(len)); \
+ if (len > 0) \
+ *((dst)+(len)-1)='\0'; \
+ } while (0)
/* Get a bit mask of the bits set in non-int32 aligned addresses */
#define INT_ALIGN_MASK (sizeof(int32) - 1)