aboutsummaryrefslogblamecommitdiffstats
path: root/libpatch_format_patch.c
blob: 22df90656ffe43cf01adc5312c2f5a582bd97878 (plain) (tree)


























                                                                                                                      
/* See LICENSE file for copyright and license details. */
#include "common.h"


int
libpatch_format_patch(struct libpatch_diff2_printer *printer, struct libpatch_diff2 *diff, size_t difflen,
                      const struct libpatch_file *file1, const struct libpatch_file *file2, enum libpatch_style style)
{
	switch (style) {
	case LIBPATCH_STYLE_NORMAL:
		return libpatch_format_normal_patch(printer, diff, difflen, file1, file2);
	case LIBPATCH_STYLE_COPIED:
		return libpatch_format_copied_patch(printer, diff, difflen, file1, file2);
	case LIBPATCH_STYLE_UNIFIED:
		return libpatch_format_unified_patch(printer, diff, difflen, file1, file2);
	case LIBPATCH_STYLE_ED:
		return libpatch_format_ed_patch(printer, diff, difflen, file1, file2);
	case LIBPATCH_STYLE_ED_ALTERNATIVE:
		return libpatch_format_ed_alternative_patch(printer, diff, difflen, file1, file2);
	case LIBPATCH_STYLE_RCS:
		return libpatch_format_rcs_patch(printer, diff, difflen, file1, file2);
	default:
	case LIBPATCH_STYLE_GARBAGE:
		errno = EINVAL;
		return -1;
	}
}