From 773c13c686e4b6ae9dbbc150b342b82c3f47d73a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mina=20Gali=C4=87?= Date: Sat, 25 Feb 2023 10:31:58 -0700 Subject: kldxref: skip .pkgsave files This should help people transitioning from traditional setups to pkgbase experience a lot less friction. We do this by skipping all files containing two dots. Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/661 Differential Revision: https://reviews.freebsd.org/D27959 --- usr.sbin/kldxref/kldxref.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'usr.sbin/kldxref/kldxref.c') diff --git a/usr.sbin/kldxref/kldxref.c b/usr.sbin/kldxref/kldxref.c index 7a4d704356b8..933de4991e62 100644 --- a/usr.sbin/kldxref/kldxref.c +++ b/usr.sbin/kldxref/kldxref.c @@ -685,6 +685,7 @@ main(int argc, char *argv[]) { FTS *ftsp; FTSENT *p; + char *dot = NULL; int opt, fts_options, ival; struct stat sb; @@ -752,14 +753,15 @@ main(int argc, char *argv[]) fwrite(&ival, sizeof(ival), 1, fxref); reccnt = 0; } - /* skip non-files and separate debug files */ + /* skip non-files.. */ if (p->fts_info != FTS_F) continue; - if (p->fts_namelen >= 6 && - strcmp(p->fts_name + p->fts_namelen - 6, ".debug") == 0) - continue; - if (p->fts_namelen >= 8 && - strcmp(p->fts_name + p->fts_namelen - 8, ".symbols") == 0) + /* + * Skip files that generate errors like .debug, .symbol and .pkgsave + * by generally skipping all files with 2 dots. + */ + dot = strchr(p->fts_name, '.'); + if (dot && strchr(dot + 1, '.') != NULL) continue; read_kld(p->fts_path, p->fts_name); } -- cgit v1.2.3