Advertisement
zamotivator

Untitled

Jul 13th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. void cut(CutBuilder& builder) const
  2. {
  3. if (builder.length() == 0) {
  4. return;
  5. }
  6.  
  7. position_t resultOffset = builder.logical() % _interval;
  8. builder.skipResult(resultOffset);
  9.  
  10. position_t prefixLeft = 0;
  11. if (resultOffset < _prefix) {
  12. prefixLeft = min(_prefix - resultOffset, builder.length());
  13. }
  14. builder.skipSource(prefixLeft);
  15. builder.skipResult(prefixLeft);
  16.  
  17. if (builder.length() == 0) {
  18. return;
  19. }
  20.  
  21.  
  22. if (_nested) {
  23. position_t left = _copy;
  24. SCIDB_ASSERT(left > 0);
  25.  
  26. while(builder.length() > 0 && left > 0) {
  27. _nested->cut(builder);
  28. left -= _nested->_interval;
  29. }
  30. } else {
  31. builder.copy(min(_copy, builder.length()));
  32. }
  33.  
  34. if (builder.length() == 0) {
  35. return ;
  36. }
  37.  
  38. position_t left = min(_suffix, builder.length());
  39. builder.skipSource(left);
  40. builder.skipResult(left);
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement