diff options
author | Christian Ruppert <idl0r@gentoo.org> | 2011-09-21 00:21:43 +0200 |
---|---|---|
committer | Christian Ruppert <idl0r@gentoo.org> | 2011-09-21 00:21:43 +0200 |
commit | 930f4021b1904b9c46c41c70b99d6e0620a1b59d (patch) | |
tree | 6519d98ac7db73f968760eef491c1f25ccc8ce0a | |
parent | bf49e59e3eb4fe12167812bc1b4531742eddc383 (diff) |
Add a new helper functions for _{flatten,get}_array
A new helper function (_array_helper) since both, the _flatten_array and
_get_array function share partially the same code.
We also reduce multiple whitespace to a single space, remove leading newlines
as well as skipping "empty" lines.
This makes the data returned by _{flatten,get}_array much nicer than before.
It also fixes bug 366677 where net-tools having trouble with the whitespace
mentioned above. iproute2 was not affected.
Reported-by: Andrew Maltsev <am@ejelta.com>
X-Gentoo-Bug: 366677
X-Gentoo-Bug-URL: https://bugs.gentoo.org/366677
-rw-r--r-- | init.d/net.lo.in | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/init.d/net.lo.in b/init.d/net.lo.in index 2f052ca6..9b6bf645 100644 --- a/init.d/net.lo.in +++ b/init.d/net.lo.in @@ -41,6 +41,15 @@ depend() done } +_array_helper() { + local _a= + + eval _a=\$$1 + _a=$(echo "${_a}" | sed -e 's:^[[:space:]]*::' -e 's:[[:space:]]*$::' -e '/^$/d' -e 's:[[:space:]]\{1,\}: :g') + + [ -n "${_a}" ] && printf "%s\n" "${_a}" +} + # Support bash arrays - sigh _get_array() { @@ -60,10 +69,7 @@ _get_array() esac fi - eval _a=\$$1 - printf "%s" "${_a}" - printf "\n" - [ -n "${_a}" ] + _array_helper $1 } # Flatten bash arrays to simple strings @@ -84,10 +90,7 @@ _flatten_array() esac fi - eval _a=\$$1 - printf "%s" "${_a}" - printf "\n" - [ -n "${_a}" ] + _array_helper $1 } _wait_for_carrier() |