function updatefunstr(oneline)
declare_globals
s=length(funstr);
to0out={'.*','./','.''','.^'};
if nargin~=1
 lo=1;hi=s;
 funstrwords=cell(s,1);funstrwords_b=cell(s,1);funstrwords_e=cell(s,1);
 funstrnumbers=cell(s,1);funstrnumbers_b=cell(s,1);funstrnumbers_e=cell(s,1);
else
 lo=oneline;hi=oneline;
 funstrwords{oneline}=cell(0);
 funstrwords_b{oneline}=[];funstrwords_e{oneline}=[];
 funstrnumbers{oneline}=cell(0);
 funstrnumbers_b{oneline}=[];funstrnumbers_e{oneline}=[];
end
for i=lo:hi
 tempw_b=zeros(1,10);   tempw_e=zeros(1,10);
 tempn_b=zeros(1,10);   tempn_e=zeros(1,10);
 %funstr{i}='def.*4./tug.^23.45e-4.''+a2';
 both=~isspace(funstr{i});
 for j=1:length(to0out)
  temp=findstr(funstr{i},to0out{j});
  both(temp)=0;         both(temp+1)=0;
 end
 both=double(both&iskeep(funstr{i}));
 both(2:end)=both(2:end)-both(1:end-1);
 bothind=find(both==1);         ll=length(bothind);
 bothind2=find(both==-1);       ll2=length(bothind2);
 if ll2<ll, bothind2=[bothind2 length(both)+1]; end
 cww=1;                          cn=1;
 couple=0;
 for j=1:ll
  if isletter(funstr{i}(bothind(j)))
   funstrwords{i}{cww}=funstr{i}(bothind(j):bothind2(j)-1);
   tempw_b(cww)=bothind(j);
   tempw_e(cww)=bothind2(j)-1;
   cww=cww+1;
  else
   if couple==0
    if j~=ll
     if ~isletter(funstr{i}(bothind(j+1)))
      if (strcmpi(funstr{i}(bothind(j+1)-1),'e')|strcmpi(funstr{i}(bothind(j+1)-2),'e')|strcmpi(funstr{i}(bothind(j+1)-1),'d')|strcmpi(funstr{i}(bothind(j+1)-2),'d'))
       couple=1;
      end
     end
    end
    negsign=0;
    if bothind(j)>1
     if funstr{i}(bothind(j)-1)=='-'
      if bothind(j)>2
       temps=find(~isspace(funstr{i}));
       temps=temps(temps<bothind(j)-1);
       if ~isempty(temps)
        if ~(iskeep(funstr{i}(temps(end)))|(funstr{i}(temps(end))==')'))
         negsign=1;
        end
       else
        negsign=1;
       end         
      else
       negsign=1;
      end
     end
    end
    funstrnumbers{i}{cn}=funstr{i}(bothind(j)-negsign:bothind2(j+couple)-1);
    tempn_b(cn)=bothind(j)-negsign;
    tempn_e(cn)=bothind2(j+couple)-1;
    cn=cn+1;
   else
    couple=0;
   end
  end
 end
 funstrwords_b{i}=tempw_b(1:cww-1);
 funstrwords_e{i}=tempw_e(1:cww-1);
 funstrnumbers_b{i}=tempn_b(1:cn-1);
 funstrnumbers_e{i}=tempn_e(1:cn-1);
end
