Lines Matching defs:regions

214  * This code creates a list of 'regions' for each test line which
216 * Logic is performed on the list of regions, then the regions
232 static LineRegion regions[1024];
349 if (regions[0].type == REGION_COMMON) {
352 regions[iRegion] = regions[iRegion + 1];
358 * Give each region a size, then delete all trailing common regions
366 regions[iRegion].size = regions[iRegion + 1].col -
367 regions[iRegion].col;
369 regions[nRegions - 1].size = COLS - regions[nRegions - 1].col;
372 * Delete trailing common regions
374 while (regions[nRegions - 1].type == REGION_COMMON)
379 * Tiny common regions are merged into adjacent difference regions
387 if ((regions[from].type == REGION_COMMON) &&
388 (regions[from].size < JUMP_SIZE)) {
390 * Merge out tiny common regions
392 regions[to - 1].size += regions[from].size;
394 * Now join adjacent non-common regions
397 regions[to - 1].size += regions[from++].size;
399 regions[to++] = regions[from++];
406 * Create the initial list of regions for this row
453 regions[nRegions].type = REGION_DELETE;
454 regions[nRegions].col = deletePoint;
455 regions[nRegions].size = bestDeleteCount;
469 regions[nRegions].type = cmp ? REGION_COMMON :
471 regions[nRegions].col = col;
472 regions[nRegions].size = 0; /* Determine later */
481 regions[nRegions].type = REGION_DIFFERENT;
482 regions[nRegions].col = col;
483 regions[nRegions].size = 0; /* Determine later */
488 return (0); /* No difference regions */
496 * adjust regions accordingly
505 switch (regions[iRegion].type) {
507 if (regions[iRegion].col >= blankEolStart) {
509 * Delete this and all following regions
514 if (regions[iRegion].col + regions[iRegion].size >
520 regions[iRegion].size = blankEolStart -
521 regions[iRegion].col;
523 * Delete all following regions
550 * regions are guaranteed to start with a non-common region.
551 * tiny common regions have also been merged into
552 * bracketting common-regions.
556 switch (regions[iRegion].type) {
563 GOTO(row, regions[iRegion].col);
564 _deleteRegion(row, regions[iRegion]);
570 GOTO(row, regions[iRegion].col);
571 _writeRegion(row, regions[iRegion]);
582 * The new text_replace algorithm, which uses regions