Module Name:    src
Committed By:   rillig
Date:           Sat Nov  7 14:11:58 UTC 2020

Modified Files:
        src/usr.bin/make: buf.c buf.h cond.c dir.c for.c main.c var.c

Log Message:
make(1): make API of Buf_Init simpler

In most cases, the caller doesn't want to specify the exact number of
preallocated bytes.


To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/usr.bin/make/buf.c
cvs rdiff -u -r1.34 -r1.35 src/usr.bin/make/buf.h
cvs rdiff -u -r1.178 -r1.179 src/usr.bin/make/cond.c
cvs rdiff -u -r1.196 -r1.197 src/usr.bin/make/dir.c
cvs rdiff -u -r1.113 -r1.114 src/usr.bin/make/for.c
cvs rdiff -u -r1.434 -r1.435 src/usr.bin/make/main.c
cvs rdiff -u -r1.672 -r1.673 src/usr.bin/make/var.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/buf.c
diff -u src/usr.bin/make/buf.c:1.43 src/usr.bin/make/buf.c:1.44
--- src/usr.bin/make/buf.c:1.43	Sat Nov  7 10:16:18 2020
+++ src/usr.bin/make/buf.c	Sat Nov  7 14:11:58 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: buf.c,v 1.43 2020/11/07 10:16:18 rillig Exp $	*/
+/*	$NetBSD: buf.c,v 1.44 2020/11/07 14:11:58 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -75,7 +75,7 @@
 #include "make.h"
 
 /*	"@(#)buf.c	8.1 (Berkeley) 6/6/93"	*/
-MAKE_RCSID("$NetBSD: buf.c,v 1.43 2020/11/07 10:16:18 rillig Exp $");
+MAKE_RCSID("$NetBSD: buf.c,v 1.44 2020/11/07 14:11:58 rillig Exp $");
 
 /* Make space in the buffer for adding a single byte. */
 void
@@ -155,19 +155,22 @@ Buf_Empty(Buffer *buf)
     buf->data[0] = '\0';
 }
 
-/* Initialize a buffer.
- * If the given initial capacity is 0, a reasonable default is used. */
+/* Initialize a buffer. */
 void
-Buf_Init(Buffer *buf, size_t cap)
+Buf_InitSize(Buffer *buf, size_t cap)
 {
-    if (cap == 0)
-	cap = 256;
     buf->cap = cap;
     buf->len = 0;
     buf->data = bmake_malloc(cap);
     buf->data[0] = '\0';
 }
 
+void
+Buf_Init(Buffer *buf)
+{
+    Buf_InitSize(buf, 256);
+}
+
 /* Reset the buffer.
  * If freeData is TRUE, the data from the buffer is freed as well.
  * Otherwise it is kept and returned. */

Index: src/usr.bin/make/buf.h
diff -u src/usr.bin/make/buf.h:1.34 src/usr.bin/make/buf.h:1.35
--- src/usr.bin/make/buf.h:1.34	Sun Sep 27 16:59:02 2020
+++ src/usr.bin/make/buf.h	Sat Nov  7 14:11:58 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: buf.h,v 1.34 2020/09/27 16:59:02 rillig Exp $	*/
+/*	$NetBSD: buf.h,v 1.35 2020/11/07 14:11:58 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -124,7 +124,8 @@ void Buf_AddStr(Buffer *, const char *);
 void Buf_AddInt(Buffer *, int);
 char *Buf_GetAll(Buffer *, size_t *);
 void Buf_Empty(Buffer *);
-void Buf_Init(Buffer *, size_t);
+void Buf_Init(Buffer *);
+void Buf_InitSize(Buffer *, size_t);
 char *Buf_Destroy(Buffer *, Boolean);
 char *Buf_DestroyCompact(Buffer *);
 

Index: src/usr.bin/make/cond.c
diff -u src/usr.bin/make/cond.c:1.178 src/usr.bin/make/cond.c:1.179
--- src/usr.bin/make/cond.c:1.178	Sat Nov  7 10:16:18 2020
+++ src/usr.bin/make/cond.c	Sat Nov  7 14:11:58 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: cond.c,v 1.178 2020/11/07 10:16:18 rillig Exp $	*/
+/*	$NetBSD: cond.c,v 1.179 2020/11/07 14:11:58 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -93,7 +93,7 @@
 #include "dir.h"
 
 /*	"@(#)cond.c	8.2 (Berkeley) 1/2/94"	*/
-MAKE_RCSID("$NetBSD: cond.c,v 1.178 2020/11/07 10:16:18 rillig Exp $");
+MAKE_RCSID("$NetBSD: cond.c,v 1.179 2020/11/07 14:11:58 rillig Exp $");
 
 /*
  * The parsing of conditional expressions is based on this grammar:
@@ -225,7 +225,7 @@ ParseFuncArg(const char **pp, Boolean do
 
     cpp_skip_hspace(&p);
 
-    Buf_Init(&argBuf, 16);
+    Buf_InitSize(&argBuf, 16);
 
     paren_depth = 0;
     for (;;) {
@@ -398,7 +398,7 @@ CondParser_String(CondParser *par, Boole
     VarEvalFlags eflags;
     VarParseResult parseResult;
 
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
     str = NULL;
     *out_freeIt = NULL;
     *out_quoted = qt = par->p[0] == '"';

Index: src/usr.bin/make/dir.c
diff -u src/usr.bin/make/dir.c:1.196 src/usr.bin/make/dir.c:1.197
--- src/usr.bin/make/dir.c:1.196	Sat Nov  7 10:16:18 2020
+++ src/usr.bin/make/dir.c	Sat Nov  7 14:11:58 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: dir.c,v 1.196 2020/11/07 10:16:18 rillig Exp $	*/
+/*	$NetBSD: dir.c,v 1.197 2020/11/07 14:11:58 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -134,7 +134,7 @@
 #include "job.h"
 
 /*	"@(#)dir.c	8.2 (Berkeley) 1/2/94"	*/
-MAKE_RCSID("$NetBSD: dir.c,v 1.196 2020/11/07 10:16:18 rillig Exp $");
+MAKE_RCSID("$NetBSD: dir.c,v 1.197 2020/11/07 14:11:58 rillig Exp $");
 
 #define DIR_DEBUG0(text) DEBUG0(DIR, text)
 #define DIR_DEBUG1(fmt, arg1) DEBUG1(DIR, fmt, arg1)
@@ -1480,7 +1480,7 @@ Dir_MakeFlags(const char *flag, SearchPa
     Buffer buf;
     SearchPathNode *ln;
 
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
 
     if (path != NULL) {
 	for (ln = path->first; ln != NULL; ln = ln->next) {

Index: src/usr.bin/make/for.c
diff -u src/usr.bin/make/for.c:1.113 src/usr.bin/make/for.c:1.114
--- src/usr.bin/make/for.c:1.113	Sat Nov  7 10:16:18 2020
+++ src/usr.bin/make/for.c	Sat Nov  7 14:11:58 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: for.c,v 1.113 2020/11/07 10:16:18 rillig Exp $	*/
+/*	$NetBSD: for.c,v 1.114 2020/11/07 14:11:58 rillig Exp $	*/
 
 /*
  * Copyright (c) 1992, The Regents of the University of California.
@@ -60,7 +60,7 @@
 #include "make.h"
 
 /*	"@(#)for.c	8.1 (Berkeley) 6/6/93"	*/
-MAKE_RCSID("$NetBSD: for.c,v 1.113 2020/11/07 10:16:18 rillig Exp $");
+MAKE_RCSID("$NetBSD: for.c,v 1.114 2020/11/07 14:11:58 rillig Exp $");
 
 /* The .for loop substitutes the items as ${:U<value>...}, which means
  * that characters that break this syntax must be backslash-escaped. */
@@ -191,11 +191,11 @@ For_Eval(const char *line)
      */
 
     f = bmake_malloc(sizeof *f);
-    Buf_Init(&f->body, 0);
+    Buf_Init(&f->body);
     Vector_Init(&f->vars, sizeof(ForVar));
     f->items.words = NULL;
     f->items.freeIt = NULL;
-    Buf_Init(&f->curBody, 0);
+    Buf_Init(&f->curBody);
     f->short_var = FALSE;
     f->sub_next = 0;
 

Index: src/usr.bin/make/main.c
diff -u src/usr.bin/make/main.c:1.434 src/usr.bin/make/main.c:1.435
--- src/usr.bin/make/main.c:1.434	Sat Nov  7 10:25:28 2020
+++ src/usr.bin/make/main.c	Sat Nov  7 14:11:58 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.434 2020/11/07 10:25:28 rillig Exp $	*/
+/*	$NetBSD: main.c,v 1.435 2020/11/07 14:11:58 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -118,7 +118,7 @@
 #include "trace.h"
 
 /*	"@(#)main.c	8.3 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: main.c,v 1.434 2020/11/07 10:25:28 rillig Exp $");
+MAKE_RCSID("$NetBSD: main.c,v 1.435 2020/11/07 14:11:58 rillig Exp $");
 #if defined(MAKE_NATIVE) && !defined(lint)
 __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
 	    "The Regents of the University of California.  "
@@ -1768,7 +1768,7 @@ Cmd_Exec(const char *cmd, const char **e
 	(void)close(fds[1]);	/* No need for the writing half */
 
 	savederr = 0;
-	Buf_Init(&buf, 0);
+	Buf_Init(&buf);
 
 	do {
 	    char result[BUFSIZ];
@@ -1950,7 +1950,7 @@ execDie(const char *af, const char *av)
 {
 	Buffer buf;
 
-	Buf_Init(&buf, 0);
+	Buf_Init(&buf);
 	Buf_AddStr(&buf, progname);
 	Buf_AddStr(&buf, ": ");
 	Buf_AddStr(&buf, af);

Index: src/usr.bin/make/var.c
diff -u src/usr.bin/make/var.c:1.672 src/usr.bin/make/var.c:1.673
--- src/usr.bin/make/var.c:1.672	Sat Nov  7 10:16:19 2020
+++ src/usr.bin/make/var.c	Sat Nov  7 14:11:58 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.672 2020/11/07 10:16:19 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.673 2020/11/07 14:11:58 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -130,7 +130,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.672 2020/11/07 10:16:19 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.673 2020/11/07 14:11:58 rillig Exp $");
 
 #define VAR_DEBUG1(fmt, arg1) DEBUG1(VAR, fmt, arg1)
 #define VAR_DEBUG2(fmt, arg1, arg2) DEBUG2(VAR, fmt, arg1, arg2)
@@ -287,7 +287,7 @@ VarNew(const char *name, void *name_free
     Var *var = bmake_malloc(sizeof *var);
     var->name = name;
     var->name_freeIt = name_freeIt;
-    Buf_Init(&var->val, value_len + 1);
+    Buf_InitSize(&var->val, value_len + 1);
     Buf_AddBytes(&var->val, value, value_len);
     var->flags = flags;
     return var;
@@ -1048,7 +1048,7 @@ typedef struct SepBuf {
 static void
 SepBuf_Init(SepBuf *buf, char sep)
 {
-    Buf_Init(&buf->buf, 32 /* bytes */);
+    Buf_InitSize(&buf->buf, 32);
     buf->needSep = FALSE;
     buf->sep = sep;
 }
@@ -1596,7 +1596,7 @@ Words_JoinFree(Words words)
     Buffer buf;
     size_t i;
 
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
 
     for (i = 0; i < words.len; i++) {
 	if (i != 0)
@@ -1633,7 +1633,7 @@ static char *
 VarQuote(const char *str, Boolean quoteDollar)
 {
     Buffer buf;
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
 
     for (; *str != '\0'; str++) {
 	if (*str == '\n') {
@@ -1883,7 +1883,7 @@ ParseModifierPart(
     Buffer buf;
     const char *p;
 
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
 
     /*
      * Skim through until the matching delimiter is found; pick up variable
@@ -2115,7 +2115,7 @@ ApplyModifier_Defined(const char **pp, A
 	    eflags |= VARE_WANTRES;
     }
 
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
     p = *pp + 1;
     while (*p != st->endc && *p != ':' && *p != '\0') {
 
@@ -2335,7 +2335,7 @@ ApplyModifier_Range(const char **pp, App
 	Words_Free(words);
     }
 
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
 
     for (i = 0; i < n; i++) {
 	if (i != 0)
@@ -2741,7 +2741,7 @@ ApplyModifier_Words(const char **pp, App
 	    size_t ac = words.len;
 	    Words_Free(words);
 
-	    Buf_Init(&buf, 4);	/* 3 digits + '\0' is usually enough */
+	    Buf_InitSize(&buf, 4);	/* 3 digits + '\0' is usually enough */
 	    Buf_AddInt(&buf, (int)ac);
 	    st->newVal = Buf_Destroy(&buf, FALSE);
 	}
@@ -3507,7 +3507,7 @@ ParseVarname(const char **pp, char start
     const char *p = *pp;
     int depth = 1;
 
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
 
     while (*p != '\0') {
 	/* Track depth so we can spot parse errors. */
@@ -3959,7 +3959,7 @@ Var_Subst(const char *str, GNode *ctxt, 
      * to prevent a plethora of messages when recursing */
     static Boolean errorReported;
 
-    Buf_Init(&buf, 0);
+    Buf_Init(&buf);
     errorReported = FALSE;
 
     while (*p != '\0') {

Reply via email to