pike.git / lib / modules / Array.pmod

version» Context lines:

pike.git/lib/modules/Array.pmod:190:   // diff3, complement to diff (alpha stage)      array(array(array(mixed))) diff3(array mid,array left,array right)   {    array lmid,ldst;    array rmid,rdst;       [lmid,ldst]=diff(mid,left);    [rmid,rdst]=diff(mid,right);    +  werror(sprintf("%O\n",({rmid,rdst}))); +     array res=({});    int lpos=0,rpos=0;    int l=0,r=0,n;    array eq=({});    int x;    -  for (n=0; n<sizeof(mid);) +  for (n=0; ;)    { -  while (lpos>=sizeof(lmid[l])) +  while (l<sizeof(lmid) && lpos>=sizeof(lmid[l]))    {    if (sizeof(ldst[l])>lpos)    res+=({({({}),ldst[l][lpos..],({})})});    l++;    lpos=0;    } -  while (rpos>=sizeof(rmid[r])) +  while (r<sizeof(rmid) && rpos>=sizeof(rmid[r]))    {    if (sizeof(rdst[r])>rpos)    res+=({({({}),({}),rdst[r][rpos..]})});    r++;    rpos=0;    }    -  +  if (n==sizeof(mid)) break; +     x=min(sizeof(lmid[l])-lpos,sizeof(rmid[r])-rpos);       if (lmid[l]==ldst[l] && rmid[r]==rdst[r])    {    eq=lmid[l][lpos..lpos+x-1];    res+=({({eq,eq,eq})});    }    else if (lmid[l]==ldst[l])    {    eq=lmid[l][lpos..lpos+x-1];
pike.git/lib/modules/Array.pmod:237:    eq=rmid[r][rpos..rpos+x-1];    res+=({({eq,ldst[l][lpos..lpos+x-1],eq})});    }    else    {    res+=({({lmid[l][lpos..lpos+x-1],    ldst[l][lpos..lpos+x-1],    rdst[r][rpos..rpos+x-1]})});    }    - // werror(sprintf("-> %-5{%O%} %-5{%O%} %-5{%O%}" - // " x=%d l=%d:%d r=%d:%d \n",@res[-1],x,l,lpos,r,rpos)); + // werror(sprintf("-> %-5{%O%} %-5{%O%} %-5{%O%}" + // " x=%d l=%d:%d r=%d:%d \n",@res[-1],x,l,lpos,r,rpos));       rpos+=x;    lpos+=x;    n+=x;    }       return transpose(res);   }