Module Name: src Committed By: martin Date: Sun Nov 11 10:06:10 UTC 2018
Modified Files: src/usr.sbin/sysinst: defs.h disks.c util.c Log Message: Skip floopies when selecting an install target, but do not add them to the CD list when selecting an installation source device. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/usr.sbin/sysinst/defs.h cvs rdiff -u -r1.24 -r1.25 src/usr.sbin/sysinst/disks.c cvs rdiff -u -r1.15 -r1.16 src/usr.sbin/sysinst/util.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/defs.h diff -u src/usr.sbin/sysinst/defs.h:1.23 src/usr.sbin/sysinst/defs.h:1.24 --- src/usr.sbin/sysinst/defs.h:1.23 Sun Nov 11 09:17:10 2018 +++ src/usr.sbin/sysinst/defs.h Sun Nov 11 10:06:09 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: defs.h,v 1.23 2018/11/11 09:17:10 martin Exp $ */ +/* $NetBSD: defs.h,v 1.24 2018/11/11 10:06:09 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -482,7 +482,7 @@ void toplevel(void); bool get_default_cdrom(char *, size_t); int find_disks(const char *); bool enumerate_disks(void *state,bool (*func)(void *state, const char *dev)); -bool is_cdrom_device(const char *dev); +bool is_cdrom_device(const char *dev, bool as_target); struct menudesc; void fmt_fspart(struct menudesc *, int, void *); Index: src/usr.sbin/sysinst/disks.c diff -u src/usr.sbin/sysinst/disks.c:1.24 src/usr.sbin/sysinst/disks.c:1.25 --- src/usr.sbin/sysinst/disks.c:1.24 Sun Nov 11 09:17:10 2018 +++ src/usr.sbin/sysinst/disks.c Sun Nov 11 10:06:09 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: disks.c,v 1.24 2018/11/11 09:17:10 martin Exp $ */ +/* $NetBSD: disks.c,v 1.25 2018/11/11 10:06:09 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -369,7 +369,7 @@ get_default_cdrom_helper(void *state, co { struct default_cdrom_data *data = state; - if (!is_cdrom_device(dev)) + if (!is_cdrom_device(dev, false)) return true; strlcpy(data->device, dev, data->max_len); @@ -511,11 +511,12 @@ is_ffs_wedge(const char *dev) /* * Does this device match an entry in our default CDROM device list? + * If looking for install targets, we also flag floopy devices. */ bool -is_cdrom_device(const char *dev) +is_cdrom_device(const char *dev, bool as_target) { - static const char *cdrom_devices[] = { + static const char *target_devices[] = { #ifdef CD_NAMES CD_NAMES #endif @@ -530,8 +531,15 @@ is_cdrom_device(const char *dev) #endif 0 }; + static const char *src_devices[] = { +#ifdef CD_NAMES + CD_NAMES , +#endif + 0 + }; - for (const char **dev_pat = cdrom_devices; *dev_pat; dev_pat++) + for (const char **dev_pat = as_target ? target_devices : src_devices; + *dev_pat; dev_pat++) if (fnmatch(*dev_pat, dev, 0) == 0) return true; @@ -593,7 +601,7 @@ get_disks_helper(void *arg, const char * struct disklabel l; /* is this a CD device? */ - if (is_cdrom_device(dev)) + if (is_cdrom_device(dev, true)) return true; strlcpy(state->dd->dd_name, dev, sizeof state->dd->dd_name - 2); Index: src/usr.sbin/sysinst/util.c diff -u src/usr.sbin/sysinst/util.c:1.15 src/usr.sbin/sysinst/util.c:1.16 --- src/usr.sbin/sysinst/util.c:1.15 Thu Nov 8 20:29:37 2018 +++ src/usr.sbin/sysinst/util.c Sun Nov 11 10:06:09 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: util.c,v 1.15 2018/11/08 20:29:37 martin Exp $ */ +/* $NetBSD: util.c,v 1.16 2018/11/11 10:06:09 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -431,7 +431,7 @@ get_available_cds_helper(void *arg, cons struct disklabel label; int part, dev, error, sess, ready; - if (!is_cdrom_device(device)) + if (!is_cdrom_device(device, false)) return true; sprintf(dname, "/dev/r%s%c", device, 'a'+RAW_PART);