diff options
Diffstat (limited to 'libpatch_parse_patch.c')
-rw-r--r-- | libpatch_parse_patch.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libpatch_parse_patch.c b/libpatch_parse_patch.c new file mode 100644 index 0000000..526b197 --- /dev/null +++ b/libpatch_parse_patch.c @@ -0,0 +1,26 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + + +int +libpatch_parse_patch(const char *text, size_t textlen, size_t *textend, + struct libpatch_patch **patch, size_t *patchlen, enum libpatch_style style) +{ + switch (style) { + case LIBPATCH_STYLE_NORMAL: + return libpatch_parse_normal_patch(text, textlen, textend, patch, patchlen); + case LIBPATCH_STYLE_COPIED: + return libpatch_parse_copied_patch(text, textlen, textend, patch, patchlen); + case LIBPATCH_STYLE_UNIFIED: + return libpatch_parse_unified_patch(text, textlen, textend, patch, patchlen); + case LIBPATCH_STYLE_ED: + return libpatch_parse_ed_patch(text, textlen, textend, patch, patchlen); + case LIBPATCH_STYLE_RCS: + return libpatch_parse_rcs_patch(text, textlen, textend, patch, patchlen); + default: + case LIBPATCH_STYLE_ED_ALTERNATIVE: + case LIBPATCH_STYLE_GARBAGE: + errno = EINVAL; + return -1; + } +} |