diff options
author | Mike Baker <mbm@openwrt.org> | 2006-11-20 19:30:50 +0000 |
---|---|---|
committer | Mike Baker <mbm@openwrt.org> | 2006-11-20 19:30:50 +0000 |
commit | 9232f4adad2aa9e3ec89498f21fbc2d1f77938cd (patch) | |
tree | dc5e520c89795c8ccdc1e13c19205f2b82a525c1 /package/base-files | |
parent | d28e34c34a44afe72be59300d7773bc91e6e2388 (diff) | |
download | upstream-9232f4adad2aa9e3ec89498f21fbc2d1f77938cd.tar.gz upstream-9232f4adad2aa9e3ec89498f21fbc2d1f77938cd.tar.bz2 upstream-9232f4adad2aa9e3ec89498f21fbc2d1f77938cd.zip |
strtok helper function
SVN-Revision: 5592
Diffstat (limited to 'package/base-files')
-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 f7cb878bc9..aa5b000644 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 +} |