aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKate Ward <kate.ward@forestent.com>2017-10-19 12:57:09 +0200
committerKate Ward <kate.ward@forestent.com>2017-10-19 12:57:09 +0200
commit78740ed6347816adcd7e863b0eb32099464a40a7 (patch)
tree073a6529540afcddcd042807f027b4e37bc1dc00
parentf5126eef3939df4d8d16aad5eeb03522feff7a64 (diff)
downloadshflags-78740ed6347816adcd7e863b0eb32099464a40a7.tar.gz
Fixed bug in _flags_columns() for when `stty size` gives unexpected output.
-rw-r--r--doc/CHANGES-1.2.md7
-rw-r--r--shflags17
2 files changed, 15 insertions, 9 deletions
diff --git a/doc/CHANGES-1.2.md b/doc/CHANGES-1.2.md
index 8f61e5c..c89cc70 100644
--- a/doc/CHANGES-1.2.md
+++ b/doc/CHANGES-1.2.md
@@ -1,5 +1,12 @@
# Changes in shFlags
+## Changes with 1.2.3
+
+Fixed bug in `_flags_columns()` where `stty size` sometimes gave unexpected output, causing the function to not work.
+
+Replaced `test_runner` with upstream from https://github.com/kward/shlib.
+
+
## Changes with 1.2.2
Ran all scripts through [ShellCheck](http://www.shellcheck.net/).
diff --git a/shflags b/shflags
index 2981e01..a261802 100644
--- a/shflags
+++ b/shflags
@@ -561,24 +561,23 @@ _flags_itemInList() {
#
# Output:
# integer: width in columns of the current screen.
-_flags_columns()
-{
+_flags_columns() {
if [ -z "${__flags_columns}" ]; then
- # Determine the value and store it.
if eval stty size >/dev/null 2>&1; then
# stty size worked :-)
# shellcheck disable=SC2046
set -- `stty size`
- __flags_columns=$2
- elif eval tput cols >/dev/null 2>&1; then
+ __flags_columns="${2:-}"
+ fi
+ fi
+ if [ -z "${__flags_columns}" ]; then
+ if eval tput cols >/dev/null 2>&1; then
# shellcheck disable=SC2046
set -- `tput cols`
- __flags_columns=$1
- else
- __flags_columns=80 # Default terminal width.
+ __flags_columns="${1:-}"
fi
fi
- echo ${__flags_columns}
+ echo "${__flags_columns:-80}"
}
# Validate a boolean.