# svn_diff_output_fns_t Struct Reference

A vtable for displaying (or consuming) differences between datasources. More...

`#include <svn_diff.h>`

## Data Fields
svn_error_t *(* | output_common )(void *output_baton, apr_off_t original_start, apr_off_t original_length, apr_off_t modified_start, apr_off_t modified_length, apr_off_t latest_start, apr_off_t latest_length)
| If doing a two-way diff, then an *identical* data range was found between the "original" and "modified" datasources.
svn_error_t *(* | output_diff_modified )(void *output_baton, apr_off_t original_start, apr_off_t original_length, apr_off_t modified_start, apr_off_t modified_length, apr_off_t latest_start, apr_off_t latest_length)
| If doing a two-way diff, then an *conflicting* data range was found between the "original" and "modified" datasources.
svn_error_t *(* | output_diff_latest )(void *output_baton, apr_off_t original_start, apr_off_t original_length, apr_off_t modified_start, apr_off_t modified_length, apr_off_t latest_start, apr_off_t latest_length)
| An identical data range was discovered between the "original" and "modified" datasources, but this conflicts with a range in the "latest" datasource.
svn_error_t *(* | output_diff_common )(void *output_baton, apr_off_t original_start, apr_off_t original_length, apr_off_t modified_start, apr_off_t modified_length, apr_off_t latest_start, apr_off_t latest_length)
| An identical data range was discovered between the "modified" and "latest" datasources, but this conflicts with a range in the "original" datasource.
svn_error_t *(* | output_conflict )(void *output_baton, apr_off_t original_start, apr_off_t original_length, apr_off_t modified_start, apr_off_t modified_length, apr_off_t latest_start, apr_off_t latest_length, svn_diff_t *resolved_diff)
| All three datasources have conflicting data ranges.

## Detailed Description

A vtable for displaying (or consuming) differences between datasources.

Differences, similarities, and conflicts are described by lining up "ranges" of data.

Note:
  These callbacks describe data ranges in units of "tokens". A "token" is whatever you've defined it to be in your datasource `svn_diff_fns_t` vtable.

Definition at line 286 of file svn_diff.h.

## Field Documentation

svn_error_t*(* svn_diff_output_fns_t::output_common)(void *output_baton, apr_off_t original_start, apr_off_t original_length, apr_off_t modified_start, apr_off_t modified_length, apr_off_t latest_start, apr_off_t latest_length)

If doing a two-way diff, then an *identical* data range was found between the "original" and "modified" datasources.

Specifically, the match starts at original_start and goes for original_length tokens in the original data, and at modified_start for modified_length tokens in the modified data.

If doing a three-way diff, then all three datasources have matching data ranges. The range latest_start, latest_length in the "latest" datasource is identical to the range original_start, original_length in the original data, and is also identical to the range modified_start, modified_length in the modified data.

Definition at line 303 of file svn_diff.h.

svn_error_t*(* svn_diff_output_fns_t::output_conflict)(void *output_baton, apr_off_t original_start, apr_off_t original_length, apr_off_t modified_start, apr_off_t modified_length, apr_off_t latest_start, apr_off_t latest_length, svn_diff_t *resolved_diff)

All three datasources have conflicting data ranges.

The range latest_start, latest_length in the "latest" datasource conflicts with the range original_start, original_length in the "original" datasource, and also conflicts with the range modified_start, modified_length in the "modified" datasource. If there are common ranges in the "modified" and "latest" datasources in this conflicting range, resolved_diff will contain a diff which can be used to retrieve the common and conflicting ranges.

Definition at line 365 of file svn_diff.h.

svn_error_t*(* svn_diff_output_fns_t::output_diff_modified)(void *output_baton, apr_off_t original_start, apr_off_t original_length, apr_off_t modified_start, apr_off_t modified_length, apr_off_t latest_start, apr_off_t latest_length)

If doing a two-way diff, then an *conflicting* data range was found between the "original" and "modified" datasources.

Specifically, the conflict starts at original_start and goes for original_length tokens in the original data, and at modified_start for modified_length tokens in the modified data.

If doing a three-way diff, then an identical data range was discovered between the "original" and "latest" datasources, but this conflicts with a range in the "modified" datasource.

Definition at line 322 of file svn_diff.h.

The documentation for this struct was generated from the following file:

- svn_diff.h

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines