Module Name: src Committed By: martin Date: Wed Nov 7 21:59:30 UTC 2018
Modified Files: src/usr.sbin/sysinst: disks.c Log Message: Fix CD_NAMES against concrete instances comparision - if CD_NAMES entries have a wildcard, strip device instance number off from both comparands. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/usr.sbin/sysinst/disks.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.sbin/sysinst/disks.c diff -u src/usr.sbin/sysinst/disks.c:1.18 src/usr.sbin/sysinst/disks.c:1.19 --- src/usr.sbin/sysinst/disks.c:1.18 Wed Nov 7 21:20:23 2018 +++ src/usr.sbin/sysinst/disks.c Wed Nov 7 21:59:30 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: disks.c,v 1.18 2018/11/07 21:20:23 martin Exp $ */ +/* $NetBSD: disks.c,v 1.19 2018/11/07 21:59:30 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -509,17 +509,28 @@ static bool is_cdrom_device(const char *dev) { static const char *cdrom_devices[] = { CD_NAMES, 0 }; - char pat[SSTRSIZE], *star; + char pat[SSTRSIZE], comp[SSTRSIZE], *star, *p; const char **dev_pat; + /* trim device number off */ + strcpy(comp, dev); + for (p = comp + strlen(comp) - 1; p != comp; p--) + if (!isdigit((unsigned char)*p)) + break; + if (p != comp) + p[1] = 0; + for (dev_pat = cdrom_devices; *dev_pat; dev_pat++) { strcpy(pat, *dev_pat); star = strchr(pat, '*'); - if (star) + if (star) { *star = 0; - - if (strcmp(dev, pat) == 0) - return true; + if (strcmp(comp, pat) == 0) + return true; + } else { + if (strcmp(dev, pat) == 0) + return true; + } } return false;