From 27c4d36cbb029960ec271a5a7746771ab86acba8 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Thu, 19 Sep 2019 18:46:06 +0300 Subject: [PATCH] docs: update --- README.md | 3 +++ manuscript/chapter5.txt | 3 +++ test.sh | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 54109eb..88695a9 100644 --- a/README.md +++ b/README.md @@ -1072,8 +1072,11 @@ dirname() { # Usage: dirname "path" dir=${1:-.} dir=${dir%%${dir##*[!/]}} + [[ "${dir##*/*}" ]] && dir=. + dir=${dir%/*} + dir=${dir%%${dir##*[!/]}} printf '%s\n' "${dir:-/}" } diff --git a/manuscript/chapter5.txt b/manuscript/chapter5.txt index c3cd5e5..754a930 100644 --- a/manuscript/chapter5.txt +++ b/manuscript/chapter5.txt @@ -11,8 +11,11 @@ dirname() { # Usage: dirname "path" dir=${1:-.} dir=${dir%%${dir##*[!/]}} + [[ "${dir##*/*}" ]] && dir=. + dir=${dir%/*} + dir=${dir%%${dir##*[!/]}} printf '%s\n' "${dir:-/}" } diff --git a/test.sh b/test.sh index b859a38..238569f 100755 --- a/test.sh +++ b/test.sh @@ -144,6 +144,12 @@ test_dirname() { result="$(dirname "something/////////////////////")" assert_equals "$result" "." + + result="$(dirname "something/////////////////////a")" + assert_equals "$result" "something" + + result="$(dirname "something//////////.///////////")" + assert_equals "$result" "something" } test_basename() {