junk 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. struct partqueue *backinpackage; /* circular doubly linked list of */
  2. struct partqueue *nextinpackage; /* parts of a particular split file */
  3. /* in ascending order of part number */
  4. /* singly linked list of all files in depot */
  5. pq->nextinpackage= pq->backinpackage= 0;
  6. for (search= queue;
  7. search && !(!strcmp(pq->info.md5sum,search->info.md5sum) &&
  8. pq->info.maxpartlen == search->info.maxpartlen);
  9. search= search->next);
  10. if (search) {
  11. /* insert after search */
  12. while (!(search == search->nextinpackage ||
  13. (search->info.thispartn < search->nextinpackage->info.thispartn ?
  14. (search->info.thispartn <= pq->info.thispartn &&
  15. pq->info.thispartn < search->nextinpackage->info.thispartn) :
  16. (search->info.thispartn <= pq->info.thispartn ||
  17. search->nextinpackage->info.thispartn > pq->info.thispartn))))
  18. search= search->nextinpackage;
  19. if (search->info.maxpartn != pq->info.maxpartn)
  20. ohshit("inconsistency in parts depot - "
  21. "md5sum `%s' part length %lu has both %d and %d parts",
  22. pq->info.md5sum, pq->info.maxpartlen, pq->info.maxpartn,
  23. search->info.maxpartn);
  24. if (search->info.thispartn == pq->info.thispartn)
  25. ohshit("inconsistency in parts depot - two instances of "
  26. "md5sum `%s' part length %ld part %d/%d",
  27. pq->info.md5sum, pq->info.maxpartlen, pq->info.thispartn,
  28. pq->info.maxpartn);
  29. pq->nextinpackage= search->nextinpackage;
  30. pq->backinpackage= search;
  31. pq->nextinpackage->backinpackage= pq;
  32. pq->backinpackage->nextinpackage= pq;
  33. } else {
  34. pq->nextinpackage= pq->backinpackage= pq;
  35. }