Module Name: src Committed By: rillig Date: Sun Aug 8 14:05:33 UTC 2021
Modified Files: src/usr.bin/xlint/xlint: xlint.c Log Message: lint: make data flow in findlibs simpler No functional change. To generate a diff of this commit: cvs rdiff -u -r1.65 -r1.66 src/usr.bin/xlint/xlint/xlint.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/xlint/xlint/xlint.c diff -u src/usr.bin/xlint/xlint/xlint.c:1.65 src/usr.bin/xlint/xlint/xlint.c:1.66 --- src/usr.bin/xlint/xlint/xlint.c:1.65 Sun Aug 8 13:34:57 2021 +++ src/usr.bin/xlint/xlint/xlint.c Sun Aug 8 14:05:33 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: xlint.c,v 1.65 2021/08/08 13:34:57 rillig Exp $ */ +/* $NetBSD: xlint.c,v 1.66 2021/08/08 14:05:33 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -38,7 +38,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: xlint.c,v 1.65 2021/08/08 13:34:57 rillig Exp $"); +__RCSID("$NetBSD: xlint.c,v 1.66 2021/08/08 14:05:33 rillig Exp $"); #endif #include <sys/param.h> @@ -821,37 +821,40 @@ runchild(const char *path, char *const * } static void -findlibs(char *const *liblst) +findlib(const char *lib) { - int i, k; - const char *lib, *path; - char *lfn; - size_t len; + char *const *dir; + char *lfn; - lfn = NULL; + for (dir = libsrchpath; *dir != NULL; dir++) { + lfn = xasprintf("%s/llib-l%s.ln", *dir, lib); + if (rdok(lfn)) + goto found; + free(lfn); - for (i = 0; (lib = liblst[i]) != NULL; i++) { - for (k = 0; (path = libsrchpath[k]) != NULL; k++) { - len = strlen(path) + strlen(lib); - lfn = xrealloc(lfn, len + sizeof("/llib-l.ln")); - (void)sprintf(lfn, "%s/llib-l%s.ln", path, lib); - if (rdok(lfn)) - break; - lfn = xrealloc(lfn, len + sizeof("/lint/llib-l.ln")); - (void)sprintf(lfn, "%s/lint/llib-l%s.ln", path, lib); - if (rdok(lfn)) - break; - } - if (path != NULL) { - appstrg(&l2libs, concat2("-l", lfn)); - } else { - warnx("cannot find llib-l%s.ln", lib); - } + lfn = xasprintf("%s/lint/llib-l%s.ln", *dir, lib); + if (rdok(lfn)) + goto found; + free(lfn); } + warnx("cannot find llib-l%s.ln", lib); + return; + +found: + appstrg(&l2libs, concat2("-l", lfn)); free(lfn); } +static void +findlibs(char *const *liblst) +{ + char *const *p; + + for (p = liblst; *p != NULL; p++) + findlib(*p); +} + static bool rdok(const char *path) {