26%macro mf_trimstr(basestr,trimstr);
27%local baselen trimlen trimval;
29%let baselen=%length(%superq(basestr));
30%let trimlen=%length(%superq(trimstr));
33%
if &baselen=0 %then %
return;
35%
if &baselen < &trimlen %then %
do;
42 %let trimval=%qsubstr(%superq(basestr)
47 %
if %superq(basestr)=%superq(trimstr) %then %
do;
50 %
else %
if %superq(trimval)=%superq(trimstr) %then %
do;
51 %qsubstr(%superq(basestr),1,&baselen-&trimlen)