diff options
author | Dave Brolley <brolley@redhat.com> | 2009-06-23 11:07:15 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-06-23 11:07:15 -0400 |
commit | f75b6811dee35832309e55a9e3455c40d4c13437 (patch) | |
tree | a4b0c9bab84c84c863b99bb993fcbb7f5c19b339 /tapset/string.stp | |
parent | d6454850dd3c9d74b700924b56378c4c9ab9fa57 (diff) | |
parent | e89118955d1e9f6f442e9c0f2e918ce9bf9a8529 (diff) | |
download | systemtap-steved-f75b6811dee35832309e55a9e3455c40d4c13437.tar.gz systemtap-steved-f75b6811dee35832309e55a9e3455c40d4c13437.tar.xz systemtap-steved-f75b6811dee35832309e55a9e3455c40d4c13437.zip |
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'tapset/string.stp')
-rw-r--r-- | tapset/string.stp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tapset/string.stp b/tapset/string.stp index cc842929..4b0a2a0d 100644 --- a/tapset/string.stp +++ b/tapset/string.stp @@ -98,6 +98,37 @@ function tokenize:string(input:string, delim:string) } %} +/** @addtogroup library + * @code str_replace:string (prnt_str:string, srch_str:string, rplc_str:string) @endcode + * @param prnt_str The parent string. + * @param srch_str The substring which is used to search in the parent string prnt_str. + * @param rplc_str The substring which is used to replace the searched string srch_str. + * @return Returns the parent string with substrings replaced. Else returns parent string. + */ +function str_replace:string (prnt_str:string, srch_str:string, rplc_str:string) +%{ + char *ptr = THIS->prnt_str; + char *ptr_base = THIS->prnt_str; + int strlen_srch_str = strlen(THIS->srch_str); + + if(strlen_srch_str == 0) { + strlcat(THIS->__retvalue, ptr_base, MAXSTRINGLEN); + return; + } + + while((ptr = strstr(ptr, THIS->srch_str)) != NULL) { + + *ptr = '\0'; + strlcat(THIS->__retvalue, ptr_base, MAXSTRINGLEN); + strlcat(THIS->__retvalue, THIS->rplc_str, MAXSTRINGLEN); + ptr = ptr + strlen_srch_str; + ptr_base = ptr; + } + + strlcat(THIS->__retvalue, ptr_base, MAXSTRINGLEN); + return; +%} + /* * strtol - Convert a string to a long * str String to convert |