Module Name: src
Committed By: kre
Date: Thu Jun 8 03:42:37 UTC 2017
Modified Files:
src/etc: MAKEDEV.tmpl
Log Message:
As (briefly) discussed on current-users, change the way that MAKEDEV checks
for more than one of the -m -p -s -t args (and checks whether any were given
to pick one if not) to be more shell friendly.
Note that while the method here is the same as was discussed on the list,
the actual implementation is free of the typos, and just pure lunacy that
was in the code that was shown there.
Also note these changes are intended to be completely internal, there
should be no visible impact upon the way that MAKEDEV works.
ok:christos. Thanks to pgoyette for the code review.
To generate a diff of this commit:
cvs rdiff -u -r1.183 -r1.184 src/etc/MAKEDEV.tmpl
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/etc/MAKEDEV.tmpl
diff -u src/etc/MAKEDEV.tmpl:1.183 src/etc/MAKEDEV.tmpl:1.184
--- src/etc/MAKEDEV.tmpl:1.183 Thu Sep 8 15:00:08 2016
+++ src/etc/MAKEDEV.tmpl Thu Jun 8 03:42:37 2017
@@ -1,5 +1,5 @@
#!/bin/sh -
-# $NetBSD: MAKEDEV.tmpl,v 1.183 2016/09/08 15:00:08 nonaka Exp $
+# $NetBSD: MAKEDEV.tmpl,v 1.184 2017/06/08 03:42:37 kre Exp $
#
# Copyright (c) 2003,2007,2008 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -567,7 +567,9 @@ setup()
# mknod is just very slow, because the shell has to fork for
# each device node.
#
- if ! ( $do_mtree || $do_pax || $do_mknod || $do_specfile ); then
+
+ case ",${do_mtree},,${do_pax},,${do_mknod},,${do_specfile}," in
+ ( ,false,,false,,false,,false, )
if check_mtree "${TOOL_MTREE}"; then
do_mtree=true
elif check_pax "${TOOL_PAX}"; then
@@ -575,16 +577,10 @@ setup()
else
do_mknod=true
fi
- fi
-
- # Now we need exactly one node-creation method.
- case $(( $($do_mtree && echo 1 || echo 0) + \
- $($do_pax && echo 1 || echo 0) + \
- $($do_mknod && echo 1 || echo 0) + \
- $($do_specfile && echo 1 || echo 0) ))
- in
- 1) : OK ;;
- *) die "-m, -p, -s, and -t options are mutually exclusive" ;;
+ ;;
+ ( *,true,*,true,* )
+ die "-m, -p, -s, and -t options are mutually exclusive"
+ ;;
esac
# If we are using mknod, then decide what options to pass it.
@@ -599,7 +595,7 @@ setup()
# do_mtree or do_pax internally implies do_specfile.
# This happens after checking for mutually-exclusive options.
- if ($do_mtree || $do_pax) && ! $do_specfile; then
+ if $do_mtree || $do_pax && ! $do_specfile; then
do_specfile=true
opts="${opts} -s"
fi