Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/make make(1): replace str_concat with str_concat2 an...
details: https://anonhg.NetBSD.org/src/rev/5d2c4410122e
branches: trunk
changeset: 937180:5d2c4410122e
user: rillig <rillig%NetBSD.org@localhost>
date: Mon Aug 10 19:53:19 2020 +0000
description:
make(1): replace str_concat with str_concat2 and str_concat3
The new functions have a simpler interface, and str_concat3 is even more
general-purpose, since the middle string is no longer required to be
exactly of length 1.
diffstat:
usr.bin/make/dir.c | 19 +++++++++----------
usr.bin/make/job.c | 8 ++++----
usr.bin/make/main.c | 8 ++++----
usr.bin/make/nonints.h | 12 +++---------
usr.bin/make/parse.c | 8 ++++----
usr.bin/make/str.c | 46 ++++++++++++++++++++--------------------------
usr.bin/make/suff.c | 10 +++++-----
7 files changed, 49 insertions(+), 62 deletions(-)
diffs (truncated from 328 to 300 lines):
diff -r df1899381626 -r 5d2c4410122e usr.bin/make/dir.c
--- a/usr.bin/make/dir.c Mon Aug 10 19:30:30 2020 +0000
+++ b/usr.bin/make/dir.c Mon Aug 10 19:53:19 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: dir.c,v 1.86 2020/08/10 19:30:30 rillig Exp $ */
+/* $NetBSD: dir.c,v 1.87 2020/08/10 19:53:19 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -70,14 +70,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: dir.c,v 1.86 2020/08/10 19:30:30 rillig Exp $";
+static char rcsid[] = "$NetBSD: dir.c,v 1.87 2020/08/10 19:53:19 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)dir.c 8.2 (Berkeley) 1/2/94";
#else
-__RCSID("$NetBSD: dir.c,v 1.86 2020/08/10 19:30:30 rillig Exp $");
+__RCSID("$NetBSD: dir.c,v 1.87 2020/08/10 19:53:19 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -640,8 +640,7 @@
{
(void)Lst_AtEnd(expansions,
(isDot ? bmake_strdup(entry->name) :
- str_concat(p->name, entry->name,
- STR_ADDSLASH)));
+ str_concat3(p->name, "/", entry->name)));
}
}
return 0;
@@ -981,7 +980,7 @@
if (Hash_FindEntry(&p->files, cp) == NULL)
return NULL;
- file = str_concat(p->name, cp, STR_ADDSLASH);
+ file = str_concat3(p->name, "/", cp);
if (DEBUG(DIR)) {
fprintf(debug_file, " returning %s\n", file);
}
@@ -1012,7 +1011,7 @@
char *file; /* the current filename to check */
if (p != dot) {
- file = str_concat(p->name, name, STR_ADDSLASH);
+ file = str_concat3(p->name, "/", name);
} else {
/*
* Checking in dot -- DON'T put a leading ./ on the thing.
@@ -1117,7 +1116,7 @@
}
hits += 1;
cur->hits += 1;
- return str_concat(cur->name, cp, STR_ADDSLASH);
+ return str_concat3(cur->name, "/", cp);
}
return NULL;
@@ -1735,8 +1734,8 @@
if (Lst_Open(path) == SUCCESS) {
while ((ln = Lst_Next(path)) != NULL) {
p = (Path *)Lst_Datum(ln);
- s2 = str_concat(flag, p->name, STR_ADDNONE);
- str = str_concat(s1 = str, s2, STR_ADDSPACE);
+ s2 = str_concat2(flag, p->name);
+ str = str_concat3(s1 = str, " ", s2);
free(s1);
free(s2);
}
diff -r df1899381626 -r 5d2c4410122e usr.bin/make/job.c
--- a/usr.bin/make/job.c Mon Aug 10 19:30:30 2020 +0000
+++ b/usr.bin/make/job.c Mon Aug 10 19:53:19 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: job.c,v 1.205 2020/08/01 14:47:49 rillig Exp $ */
+/* $NetBSD: job.c,v 1.206 2020/08/10 19:53:19 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -70,14 +70,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: job.c,v 1.205 2020/08/01 14:47:49 rillig Exp $";
+static char rcsid[] = "$NetBSD: job.c,v 1.206 2020/08/10 19:53:19 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)job.c 8.2 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: job.c,v 1.205 2020/08/01 14:47:49 rillig Exp $");
+__RCSID("$NetBSD: job.c,v 1.206 2020/08/10 19:53:19 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -2199,7 +2199,7 @@
shellName++;
} else
#endif
- shellPath = str_concat(_PATH_DEFSHELLDIR, shellName, STR_ADDSLASH);
+ shellPath = str_concat3(_PATH_DEFSHELLDIR, "/", shellName);
}
if (commandShell->exit == NULL) {
commandShell->exit = "";
diff -r df1899381626 -r 5d2c4410122e usr.bin/make/main.c
--- a/usr.bin/make/main.c Mon Aug 10 19:30:30 2020 +0000
+++ b/usr.bin/make/main.c Mon Aug 10 19:53:19 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.302 2020/08/09 09:44:14 rillig Exp $ */
+/* $NetBSD: main.c,v 1.303 2020/08/10 19:53:19 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,7 +69,7 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: main.c,v 1.302 2020/08/09 09:44:14 rillig Exp $";
+static char rcsid[] = "$NetBSD: main.c,v 1.303 2020/08/10 19:53:19 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
@@ -81,7 +81,7 @@
#if 0
static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: main.c,v 1.302 2020/08/09 09:44:14 rillig Exp $");
+__RCSID("$NetBSD: main.c,v 1.303 2020/08/10 19:53:19 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -705,7 +705,7 @@
if (!*line)
return;
- buf = str_concat(argv0, line, STR_ADDSPACE);
+ buf = str_concat3(argv0, " ", line);
free(p1);
argv = brk_string(buf, &argc, TRUE, &args);
diff -r df1899381626 -r 5d2c4410122e usr.bin/make/nonints.h
--- a/usr.bin/make/nonints.h Mon Aug 10 19:30:30 2020 +0000
+++ b/usr.bin/make/nonints.h Mon Aug 10 19:53:19 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: nonints.h,v 1.92 2020/08/10 19:30:30 rillig Exp $ */
+/* $NetBSD: nonints.h,v 1.93 2020/08/10 19:53:19 rillig Exp $ */
/*-
* Copyright (c) 1988, 1989, 1990, 1993
@@ -134,14 +134,8 @@
Lst Parse_MainName(void);
/* str.c */
-
-typedef enum {
- STR_ADDNONE, /* just concat the two strings */
- STR_ADDSPACE, /* add a space between the two strings */
- STR_ADDSLASH /* add a slash between the two strings */
-} StrConcatMode;
-
-char *str_concat(const char *, const char *, StrConcatMode);
+char *str_concat2(const char *, const char *);
+char *str_concat3(const char *, const char *, const char *);
char **brk_string(const char *, int *, Boolean, char **);
char *Str_FindSubstring(const char *, const char *);
Boolean Str_Match(const char *, const char *);
diff -r df1899381626 -r 5d2c4410122e usr.bin/make/parse.c
--- a/usr.bin/make/parse.c Mon Aug 10 19:30:30 2020 +0000
+++ b/usr.bin/make/parse.c Mon Aug 10 19:53:19 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.250 2020/08/09 13:05:04 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.251 2020/08/10 19:53:19 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: parse.c,v 1.250 2020/08/09 13:05:04 rillig Exp $";
+static char rcsid[] = "$NetBSD: parse.c,v 1.251 2020/08/10 19:53:19 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)parse.c 8.3 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: parse.c,v 1.250 2020/08/09 13:05:04 rillig Exp $");
+__RCSID("$NetBSD: parse.c,v 1.251 2020/08/10 19:53:19 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -2219,7 +2219,7 @@
break;
*prefEnd = '\0';
}
- newName = str_concat(incdir, file + i, STR_ADDSLASH);
+ newName = str_concat3(incdir, "/", file + i);
fullname = Dir_FindFile(newName, parseIncPath);
if (fullname == NULL)
fullname = Dir_FindFile(newName, dirSearchPath);
diff -r df1899381626 -r 5d2c4410122e usr.bin/make/str.c
--- a/usr.bin/make/str.c Mon Aug 10 19:30:30 2020 +0000
+++ b/usr.bin/make/str.c Mon Aug 10 19:53:19 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: str.c,v 1.58 2020/08/10 19:30:30 rillig Exp $ */
+/* $NetBSD: str.c,v 1.59 2020/08/10 19:53:19 rillig Exp $ */
/*-
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,49 +69,43 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: str.c,v 1.58 2020/08/10 19:30:30 rillig Exp $";
+static char rcsid[] = "$NetBSD: str.c,v 1.59 2020/08/10 19:53:19 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)str.c 5.8 (Berkeley) 6/1/90";
#else
-__RCSID("$NetBSD: str.c,v 1.58 2020/08/10 19:30:30 rillig Exp $");
+__RCSID("$NetBSD: str.c,v 1.59 2020/08/10 19:53:19 rillig Exp $");
#endif
#endif /* not lint */
#endif
#include "make.h"
-/*-
- * str_concat --
- * concatenate the two strings, inserting a space or slash between them.
- *
- * returns --
- * the resulting string in allocated space.
- */
+/* Return the concatenation of s1 and s2, freshly allocated. */
char *
-str_concat(const char *s1, const char *s2, StrConcatMode mode)
+str_concat2(const char *s1, const char *s2)
{
size_t len1 = strlen(s1);
size_t len2 = strlen(s2);
- char *result = bmake_malloc(len1 + 1 + len2 + 1);
-
- /* copy first string into place */
+ char *result = bmake_malloc(len1 + len2 + 1);
memcpy(result, s1, len1);
+ memcpy(result + len1, s2, len2 + 1);
+ return result;
+}
- /* add separator character */
- if (mode == STR_ADDSPACE) {
- result[len1] = ' ';
- ++len1;
- } else if (mode == STR_ADDSLASH) {
- result[len1] = '/';
- ++len1;
- }
-
- /* copy second string plus EOS into place */
- memcpy(result + len1, s2, len2 + 1);
-
+/* Return the concatenation of s1, s2 and s3, freshly allocated. */
+char *
+str_concat3(const char *s1, const char *s2, const char *s3)
+{
+ size_t len1 = strlen(s1);
+ size_t len2 = strlen(s2);
+ size_t len3 = strlen(s3);
+ char *result = bmake_malloc(len1 + len2 + len3 + 1);
+ memcpy(result, s1, len1);
+ memcpy(result + len1, s2, len2);
+ memcpy(result + len1 + len2, s3, len3 + 1);
return result;
}
diff -r df1899381626 -r 5d2c4410122e usr.bin/make/suff.c
--- a/usr.bin/make/suff.c Mon Aug 10 19:30:30 2020 +0000
+++ b/usr.bin/make/suff.c Mon Aug 10 19:53:19 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: suff.c,v 1.94 2020/08/10 19:30:30 rillig Exp $ */
+/* $NetBSD: suff.c,v 1.95 2020/08/10 19:53:19 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: suff.c,v 1.94 2020/08/10 19:30:30 rillig Exp $";
+static char rcsid[] = "$NetBSD: suff.c,v 1.95 2020/08/10 19:53:19 rillig Exp $";
#else
Home |
Main Index |
Thread Index |
Old Index