Mercurial > hg
view mercurial/thirdparty/xdiff/xdiff.h @ 50093:ce60c8d4ac87
typing: add type hints to argument checking functions in cmdutil
These might be surprising, since they can take strings instead of bytes. The
way `AnyStr` works is that it must be all bytes or all str for any given
invocation.
The wildcard here will be the `opts` that get passed in- if the type is unknown
and defaults to `Any`, there's no enforcement that the dict key type matches the
additional args. But a lot of uses should be using `**opts` from the command
method, which has a str key. The uses of these methods in this module are now
typed because their internals force a specific type, and it can't just be
inferred from the caller.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 14 Feb 2023 12:40:59 -0500 |
parents | a2baa61bbb14 |
children |
line wrap: on
line source
/* * LibXDiff by Davide Libenzi ( File Differential Library ) * Copyright (C) 2003 Davide Libenzi * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, see * <http://www.gnu.org/licenses/>. * * Davide Libenzi <davidel@xmailserver.org> * */ #if !defined(XDIFF_H) #define XDIFF_H #ifdef __cplusplus extern "C" { #endif /* #ifdef __cplusplus */ #include <stddef.h> /* size_t */ #if !defined(_MSC_VER) || _MSC_VER >= 1600 #include <stdint.h> #else /* prior to Visual Studio 2010 */ typedef long long int64_t; typedef unsigned long long uint64_t; #endif /* xpparm_t.flags */ #define XDF_NEED_MINIMAL (1 << 0) #define XDF_INDENT_HEURISTIC (1 << 23) /* emit bdiff-style "matched" (a1, a2, b1, b2) hunks instead of "different" * (a1, a2 - a1, b1, b2 - b1) hunks */ #define XDL_EMIT_BDIFFHUNK (1 << 4) typedef struct s_mmfile { char *ptr; int64_t size; } mmfile_t; typedef struct s_mmbuffer { char *ptr; int64_t size; } mmbuffer_t; typedef struct s_xpparam { uint64_t flags; } xpparam_t; typedef struct s_xdemitcb { void *priv; } xdemitcb_t; typedef int (*xdl_emit_hunk_consume_func_t)(int64_t start_a, int64_t count_a, int64_t start_b, int64_t count_b, void *cb_data); typedef struct s_xdemitconf { uint64_t flags; xdl_emit_hunk_consume_func_t hunk_func; } xdemitconf_t; #define xdl_malloc(x) malloc(x) #define xdl_free(ptr) free(ptr) #define xdl_realloc(ptr,x) realloc(ptr,x) void *xdl_mmfile_first(mmfile_t *mmf, int64_t *size); int64_t xdl_mmfile_size(mmfile_t *mmf); int xdl_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdemitconf_t const *xecfg, xdemitcb_t *ecb); #ifdef __cplusplus } #endif /* #ifdef __cplusplus */ #endif /* #if !defined(XDIFF_H) */