diff options
author | mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-11-20 19:30:50 +0000 |
---|---|---|
committer | mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-11-20 19:30:50 +0000 |
commit | 4fae1f4d2d72cab22841258a92474e769f32d6f8 (patch) | |
tree | dd43e6d9ba3b123ea3fbe594443cab66eded6964 /package/base-files/default/etc | |
parent | b6fee4a3b3fcbf1b3117d1832d970a8b1b58dc11 (diff) |
strtok helper function
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5592 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/default/etc')
-rwxr-xr-x | package/base-files/default/etc/functions.sh | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/package/base-files/default/etc/functions.sh b/package/base-files/default/etc/functions.sh index f7cb878bc..aa5b00064 100755 --- a/package/base-files/default/etc/functions.sh +++ b/package/base-files/default/etc/functions.sh @@ -118,3 +118,27 @@ find_mtd_part() { echo "${PART:+/dev/mtdblock/$PART}" } +strtok() { # <string> <variable> [<separator>] ... + local right + local left="$1" + local count=0 + + shift + + while [ $# -gt 1 ]; do + right="${left%%$2*}" + + [ "$right" = "$left" ] && break + + left="${left#$right$2}" + + export $1="$right"; count=$((count+1)) + shift 2 + done + + if [ $# -gt 0 -a "$left" ]; then + export $1="$left"; count=$((count+1)) + fi + + return $count +} |