sapling/edenscm/mercurial/mpatch.h
Jun Wu c12e300bb8 codemod: move Python packages to edenscm
Summary:
Move top-level Python packages `mercurial`, `hgext` and `hgdemandimport` to
a new top-level package `edenscm`. This allows the Python packages provided by
the upstream Mercurial to be installed side-by-side.

To maintain compatibility, `edenscm/` gets added to `sys.path` in
`mercurial/__init__.py`.

Reviewed By: phillco, ikostia

Differential Revision: D13853115

fbshipit-source-id: b296b0673dc54c61ef6a591ebc687057ff53b22e
2019-01-28 18:35:41 -08:00

33 lines
761 B
C

#ifndef _HG_MPATCH_H_
#define _HG_MPATCH_H_
#define MPATCH_ERR_NO_MEM -3
#define MPATCH_ERR_CANNOT_BE_DECODED -2
#define MPATCH_ERR_INVALID_PATCH -1
#include "edenscm/mercurial/compat.h"
struct mpatch_frag {
int start, end, len;
const char* data;
};
struct mpatch_flist {
struct mpatch_frag *base, *head, *tail;
};
int mpatch_decode(const char* bin, ssize_t len, struct mpatch_flist** res);
ssize_t mpatch_calcsize(ssize_t len, struct mpatch_flist* l);
void mpatch_lfree(struct mpatch_flist* a);
int mpatch_apply(
char* buf,
const char* orig,
ssize_t len,
struct mpatch_flist* l);
struct mpatch_flist* mpatch_fold(
void* bins,
struct mpatch_flist* (*get_next_item)(void*, ssize_t),
ssize_t start,
ssize_t end);
#endif