mercurial/bdiff.h
author Pulkit Goyal <7895pulkit@gmail.com>
Sun, 10 Dec 2017 02:52:48 +0530
changeset 35357 576ba8194fa8
parent 34652 174d115d8104
child 48280 d86908050375
permissions -rw-r--r--
py3: handle keyword arguments correctly in hgext/largefiles/ Keys of keyword arguments must be str(unicode) on Python 3. The transformer which we use on Python 3, appends b'' in front of each string literal, so this may lead in KeyError or None return even when the key is present by we are using bytes value and it's stored in unicodes. This patch and all the similar patches handle this by either converting the keys of kwargs to bytes using 'pycompat.byteskwargs()' or adding r'' so that the transformer won't append b''. This next 23 patches follows the above mentioned way to handle keyword arguments. Differential Revision: https://phab.mercurial-scm.org/D1624

#ifndef _HG_BDIFF_H_
#define _HG_BDIFF_H_

#include "compat.h"

struct bdiff_line {
	int hash, n, e;
	ssize_t len;
	const char *l;
};

struct bdiff_hunk;
struct bdiff_hunk {
	int a1, a2, b1, b2;
	struct bdiff_hunk *next;
};

int bdiff_splitlines(const char *a, ssize_t len, struct bdiff_line **lr);
int bdiff_diff(struct bdiff_line *a, int an, struct bdiff_line *b, int bn,
               struct bdiff_hunk *base);
void bdiff_freehunks(struct bdiff_hunk *l);

#endif