pike.git / lib / modules / Array.pmod

version» Context lines:

pike.git/lib/modules/Array.pmod:404:    while (!ceq[ci]) cpart += ({c[ci++]});    }       //werror ("%O\n", ({apart, bpart, cpart}));    ares += ({apart}), bres += ({bpart}), cres += ({cpart});    }       return ({ares, bres, cres});   }    - // diff3, complement to diff (alpha stage) -  - array(array(array)) diff3_old(array mid,array left,array right) - { -  array(array) lmid,ldst; -  array(array) rmid,rdst; -  -  [lmid,ldst]=diff(mid,left); -  [rmid,rdst]=diff(mid,right); -  -  int l=0,r=0,n; -  array(array(array)) res=({}); -  int lpos=0,rpos=0; -  array eq=({}); -  int x; -  -  for (n=0; ;) -  { -  while (l<sizeof(lmid) && lpos>=sizeof(lmid[l])) -  { -  if (sizeof(ldst[l])>lpos) -  res+=({({({}),ldst[l][lpos..],({})})}); -  l++; -  lpos=0; -  } -  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]; -  res+=({({eq,eq,rdst[r][rpos..rpos+x-1]})}); -  } -  else if (rmid[r]==rdst[r]) -  { -  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)); -  -  rpos+=x; -  lpos+=x; -  n+=x; -  } -  -  return transpose(res); - } -  +    //! Sort without respect to number formatting (most notably leading   //! zeroes).   int(-1..1) dwim_sort_func(string a, string b)   {    if (a==b) return 0;    array aa=({}), bb=({});    int state, oi;       for( int i = 0; i<sizeof(a); i++ )    if( (<'0','1','2','3','4','5','6','7','8','9'>)[a[i]] != state )