[arch-projects] [mkinitcpio][PATCH 07/26] functions: refactor get_{base, dir}name
Dave Reisner
d at falconindy.com
Mon Sep 26 21:22:08 EDT 2011
From: Dave Reisner <d at falconindy.com>
Make sure these are completely safe for user input. Use the same three
step process in both cases:
1) Strip any trailing slash
2) Trim the string according to base/dir request
3) Print the result, defaulting to / if step 2 yielded an empty string
Signed-off-by: Dave Reisner <d at falconindy.com>
---
functions | 15 ++++++++-------
1 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/functions b/functions
index c7e167e..2f5797a 100644
--- a/functions
+++ b/functions
@@ -30,15 +30,16 @@ die() {
cleanup 1
}
-get_dirname() {
- # strip any trailing slash first...
- local dir="${1%/}"
- # then get the directory portion
- echo "${dir%/*}"
+get_basename() {
+ local base=${1%/}
+ base=${base##*/}
+ printf '%s' "${base:-/}"
}
-get_basename() {
- echo "${1##*/}"
+get_dirname() {
+ local dir=${1%/}
+ dir=${dir%/*}
+ printf '%s' "${dir:-/}"
}
in_array() {
--
1.7.6.4
More information about the arch-projects
mailing list