1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-04-28 04:35:16 +02:00

Merge branch 'cw/compat-util-header-cleanup'

Further shuffling of declarations across header files to streamline
file dependencies.

* cw/compat-util-header-cleanup:
  git-compat-util: move alloc macros to git-compat-util.h
  treewide: remove unnecessary includes for wrapper.h
  kwset: move translation table from ctype
  sane-ctype.h: create header for sane-ctype macros
  git-compat-util: move wrapper.c funcs to its header
  git-compat-util: move strbuf.c funcs to its header
This commit is contained in:
Junio C Hamano 2023-07-17 11:30:42 -07:00
commit ce481ac8b3
147 changed files with 327 additions and 478 deletions

View File

@ -1,7 +1,6 @@
#include "git-compat-util.h"
#include "add-interactive.h"
#include "advice.h"
#include "alloc.h"
#include "editor.h"
#include "environment.h"
#include "gettext.h"

View File

@ -1,6 +1,5 @@
#include "git-compat-util.h"
#include "alias.h"
#include "alloc.h"
#include "config.h"
#include "gettext.h"
#include "strbuf.h"

75
alloc.h
View File

@ -17,79 +17,4 @@ void *alloc_object_node(struct repository *r);
struct alloc_state *allocate_alloc_state(void);
void clear_alloc_state(struct alloc_state *s);
#define alloc_nr(x) (((x)+16)*3/2)
/**
* Dynamically growing an array using realloc() is error prone and boring.
*
* Define your array with:
*
* - a pointer (`item`) that points at the array, initialized to `NULL`
* (although please name the variable based on its contents, not on its
* type);
*
* - an integer variable (`alloc`) that keeps track of how big the current
* allocation is, initialized to `0`;
*
* - another integer variable (`nr`) to keep track of how many elements the
* array currently has, initialized to `0`.
*
* Then before adding `n`th element to the item, call `ALLOC_GROW(item, n,
* alloc)`. This ensures that the array can hold at least `n` elements by
* calling `realloc(3)` and adjusting `alloc` variable.
*
* ------------
* sometype *item;
* size_t nr;
* size_t alloc
*
* for (i = 0; i < nr; i++)
* if (we like item[i] already)
* return;
*
* // we did not like any existing one, so add one
* ALLOC_GROW(item, nr + 1, alloc);
* item[nr++] = value you like;
* ------------
*
* You are responsible for updating the `nr` variable.
*
* If you need to specify the number of elements to allocate explicitly
* then use the macro `REALLOC_ARRAY(item, alloc)` instead of `ALLOC_GROW`.
*
* Consider using ALLOC_GROW_BY instead of ALLOC_GROW as it has some
* added niceties.
*
* DO NOT USE any expression with side-effect for 'x', 'nr', or 'alloc'.
*/
#define ALLOC_GROW(x, nr, alloc) \
do { \
if ((nr) > alloc) { \
if (alloc_nr(alloc) < (nr)) \
alloc = (nr); \
else \
alloc = alloc_nr(alloc); \
REALLOC_ARRAY(x, alloc); \
} \
} while (0)
/*
* Similar to ALLOC_GROW but handles updating of the nr value and
* zeroing the bytes of the newly-grown array elements.
*
* DO NOT USE any expression with side-effect for any of the
* arguments.
*/
#define ALLOC_GROW_BY(x, nr, increase, alloc) \
do { \
if (increase) { \
size_t new_nr = nr + (increase); \
if (new_nr < nr) \
BUG("negative growth in ALLOC_GROW_BY"); \
ALLOC_GROW(x, new_nr, alloc); \
memset((x) + nr, 0, sizeof(*(x)) * (increase)); \
nr = new_nr; \
} \
} while (0)
#endif

View File

@ -9,7 +9,6 @@
#include "git-compat-util.h"
#include "abspath.h"
#include "alloc.h"
#include "base85.h"
#include "config.h"
#include "object-store-ll.h"
@ -37,7 +36,6 @@
#include "symlinks.h"
#include "wildmatch.h"
#include "ws.h"
#include "wrapper.h"
struct gitdiff_data {
struct strbuf *root;

View File

@ -2,7 +2,6 @@
* Copyright (c) 2005, 2006 Rene Scharfe
*/
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "gettext.h"
#include "git-zlib.h"

View File

@ -1,6 +1,5 @@
#include "git-compat-util.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "convert.h"
#include "environment.h"

1
attr.c
View File

@ -7,7 +7,6 @@
*/
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "environment.h"
#include "exec-cmd.h"

View File

@ -44,7 +44,6 @@
#include "path.h"
#include "repository.h"
#include "pretty.h"
#include "wrapper.h"
/**
* Returns the length of the first line of msg.

View File

@ -15,7 +15,6 @@
#include "prompt.h"
#include "quote.h"
#include "revision.h"
#include "wrapper.h"
static GIT_PATH_FUNC(git_path_bisect_terms, "BISECT_TERMS")
static GIT_PATH_FUNC(git_path_bisect_expected_rev, "BISECT_EXPECTED_REV")

View File

@ -6,7 +6,6 @@
*/
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "color.h"
#include "builtin.h"

View File

@ -28,7 +28,6 @@
#include "worktree.h"
#include "help.h"
#include "commit-reach.h"
#include "wrapper.h"
static const char * const builtin_branch_usage[] = {
N_("git branch [<options>] [-r | -a] [--merged] [--no-merged]"),

View File

@ -11,7 +11,6 @@
#include "diagnose.h"
#include "object-file.h"
#include "setup.h"
#include "wrapper.h"
static void get_system_info(struct strbuf *sys_info)
{

View File

@ -5,7 +5,6 @@
*/
#define USE_THE_INDEX_VARIABLE
#include "builtin.h"
#include "alloc.h"
#include "config.h"
#include "convert.h"
#include "diff.h"

View File

@ -1,5 +1,4 @@
#include "builtin.h"
#include "alloc.h"
#include "config.h"
#include "entry.h"
#include "gettext.h"

View File

@ -45,7 +45,6 @@
#include "hook.h"
#include "bundle.h"
#include "bundle-uri.h"
#include "wrapper.h"
/*
* Overall FIXMEs:

View File

@ -1,6 +1,5 @@
#include "builtin.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "color.h"
#include "editor.h"
@ -15,7 +14,6 @@
#include "setup.h"
#include "strbuf.h"
#include "worktree.h"
#include "wrapper.h"
static const char *const builtin_config_usage[] = {
N_("git config [<options>]"),

View File

@ -1,6 +1,5 @@
#include "builtin.h"
#include "abspath.h"
#include "alloc.h"
#include "gettext.h"
#include "object-file.h"
#include "parse-options.h"

View File

@ -3,7 +3,6 @@
#include "parse-options.h"
#include "path.h"
#include "strbuf.h"
#include "wrapper.h"
#include "write-or-die.h"
#ifndef NO_UNIX_SOCKETS

View File

@ -32,7 +32,6 @@
#include "dir.h"
#include "entry.h"
#include "setup.h"
#include "wrapper.h"
static int trust_exit_code;

View File

@ -26,7 +26,6 @@
#include "commit-reach.h"
#include "khash.h"
#include "date.h"
#include "wrapper.h"
#define PACK_ID_BITS 16
#define MAX_PACK_ID ((1<<PACK_ID_BITS)-1)

View File

@ -1,5 +1,4 @@
#include "builtin.h"
#include "alloc.h"
#include "gettext.h"
#include "hex.h"
#include "object-file.h"

View File

@ -3,7 +3,6 @@
#include "fmt-merge-msg.h"
#include "gettext.h"
#include "parse-options.h"
#include "wrapper.h"
static const char * const fmt_merge_msg_usage[] = {
N_("git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]"),

View File

@ -1,6 +1,5 @@
#include "builtin.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "environment.h"
#include "gettext.h"

View File

@ -41,7 +41,6 @@
#include "hook.h"
#include "setup.h"
#include "trace2.h"
#include "wrapper.h"
#define FAILED_RUN "failed to run %s"

View File

@ -5,7 +5,6 @@
#include "commit.h"
#include "tar.h"
#include "quote.h"
#include "wrapper.h"
static const char builtin_get_tar_commit_id_usage[] =
"git get-tar-commit-id";

View File

@ -4,7 +4,6 @@
* Copyright (c) 2006 Junio C Hamano
*/
#include "builtin.h"
#include "alloc.h"
#include "gettext.h"
#include "hex.h"
#include "repository.h"

View File

@ -1,5 +1,4 @@
#include "builtin.h"
#include "alloc.h"
#include "config.h"
#include "delta.h"
#include "environment.h"
@ -25,7 +24,6 @@
#include "replace-object.h"
#include "promisor-remote.h"
#include "setup.h"
#include "wrapper.h"
static const char index_pack_usage[] =
"git index-pack [-v] [-o <index-file>] [--keep | --keep=<msg>] [--[no-]rev-index] [--verify] [--strict] (<pack-file> | --stdin [--fix-thin] [<pack-file>])";

View File

@ -13,7 +13,6 @@
#include "path.h"
#include "setup.h"
#include "strbuf.h"
#include "wrapper.h"
static int guess_repository_type(const char *git_dir)
{

View File

@ -6,7 +6,6 @@
*/
#include "git-compat-util.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "environment.h"
#include "gettext.h"

View File

@ -10,7 +10,6 @@
#include "builtin.h"
#include "abspath.h"
#include "advice.h"
#include "alloc.h"
#include "config.h"
#include "editor.h"
#include "environment.h"
@ -53,7 +52,6 @@
#include "commit-reach.h"
#include "wt-status.h"
#include "commit-graph.h"
#include "wrapper.h"
#define DEFAULT_TWOHEAD (1<<0)
#define DEFAULT_OCTOPUS (1<<1)

View File

@ -4,7 +4,6 @@
* Copyright (c) Junio C Hamano, 2006, 2009
*/
#include "builtin.h"
#include "alloc.h"
#include "gettext.h"
#include "hex.h"
#include "quote.h"

View File

@ -7,7 +7,6 @@
#include "builtin.h"
#include "abspath.h"
#include "advice.h"
#include "alloc.h"
#include "config.h"
#include "environment.h"
#include "gettext.h"

View File

@ -1,5 +1,4 @@
#include "builtin.h"
#include "alloc.h"
#include "environment.h"
#include "gettext.h"
#include "hex.h"

View File

@ -1,5 +1,4 @@
#include "builtin.h"
#include "alloc.h"
#include "environment.h"
#include "gettext.h"
#include "hex.h"
@ -43,7 +42,6 @@
#include "promisor-remote.h"
#include "pack-mtimes.h"
#include "parse-options.h"
#include "wrapper.h"
/*
* Objects we are going to pack are collected in the `to_pack` structure.

View File

@ -37,7 +37,6 @@
#include "reset.h"
#include "trace2.h"
#include "hook.h"
#include "wrapper.h"
static char const * const builtin_rebase_usage[] = {
N_("git rebase [-i] [options] [--exec <cmd>] "

View File

@ -40,7 +40,6 @@
#include "worktree.h"
#include "shallow.h"
#include "parse-options.h"
#include "wrapper.h"
static const char * const receive_pack_usage[] = {
N_("git receive-pack <git-dir>"),

View File

@ -1,5 +1,4 @@
#include "builtin.h"
#include "alloc.h"
#include "config.h"
#include "dir.h"
#include "environment.h"

View File

@ -6,7 +6,6 @@
#include "repository.h"
#include "string-list.h"
#include "rerere.h"
#include "wrapper.h"
#include "xdiff/xdiff.h"
#include "xdiff-interface.h"
#include "pathspec.h"

View File

@ -6,7 +6,6 @@
#define USE_THE_INDEX_VARIABLE
#include "builtin.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "commit.h"
#include "environment.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "builtin.h"
#include "parse-options.h"

View File

@ -5,7 +5,6 @@
*/
#define USE_THE_INDEX_VARIABLE
#include "builtin.h"
#include "alloc.h"
#include "advice.h"
#include "config.h"
#include "lockfile.h"

View File

@ -1,7 +1,6 @@
#define USE_THE_INDEX_VARIABLE
#include "builtin.h"
#include "abspath.h"
#include "alloc.h"
#include "environment.h"
#include "gettext.h"
#include "hex.h"

View File

@ -3,6 +3,7 @@
#include "gettext.h"
#include "refs.h"
#include "parse-options.h"
#include "strbuf.h"
static const char * const git_symbolic_ref_usage[] = {
N_("git symbolic-ref [-m <reason>] <name> <ref>"),

View File

@ -3,7 +3,6 @@
#include "hex.h"
#include "object-name.h"
#include "object-store-ll.h"
#include "wrapper.h"
static char *create_temp_file(struct object_id *oid)
{

View File

@ -12,6 +12,7 @@
#include "blob.h"
#include "commit.h"
#include "replace-object.h"
#include "strbuf.h"
#include "tag.h"
#include "tree.h"
#include "tree-walk.h"

View File

@ -24,7 +24,6 @@
#include "submodule.h"
#include "utf8.h"
#include "worktree.h"
#include "wrapper.h"
#include "quote.h"
#define BUILTIN_WORKTREE_ADD_USAGE \

View File

@ -2,7 +2,6 @@
* Copyright (c) 2011, Google Inc.
*/
#include "git-compat-util.h"
#include "alloc.h"
#include "bulk-checkin.h"
#include "environment.h"
#include "gettext.h"
@ -17,7 +16,6 @@
#include "packfile.h"
#include "object-file.h"
#include "object-store-ll.h"
#include "wrapper.h"
static int odb_transaction_nesting;

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "environment.h"
#include "hex.h"
#include "lockfile.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "chunk-format.h"
#include "csum-file.h"
#include "gettext.h"

View File

@ -17,7 +17,6 @@
#include "userdiff.h"
#include "oid-array.h"
#include "revision.h"
#include "wrapper.h"
static int compare_paths(const struct combine_diff_path *one,
const struct diff_filespec *two)

View File

@ -26,7 +26,6 @@
#include "trace2.h"
#include "tree.h"
#include "chunk-format.h"
#include "wrapper.h"
void git_test_write_commit_graph_or_die(void)
{

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "commit.h"
#include "commit-graph.h"
#include "decorate.h"

View File

@ -6,7 +6,6 @@
#include "run-command.h"
#include "string-list.h"
#include "hashmap.h"
#include "wrapper.h"
#if defined(HAVE_DEV_TTY) || defined(GIT_WINDOWS_NATIVE)

View File

@ -8,7 +8,6 @@
#include "git-compat-util.h"
#include "abspath.h"
#include "advice.h"
#include "alloc.h"
#include "date.h"
#include "branch.h"
#include "config.h"
@ -39,7 +38,6 @@
#include "wildmatch.h"
#include "worktree.h"
#include "ws.h"
#include "wrapper.h"
#include "write-or-die.h"
struct config_source {

View File

@ -16,7 +16,6 @@
#include "trace.h"
#include "utf8.h"
#include "merge-ll.h"
#include "wrapper.h"
/*
* convert.c - convert a file when checking it out and checking it in.

1
copy.c
View File

@ -1,7 +1,6 @@
#include "git-compat-util.h"
#include "copy.h"
#include "path.h"
#include "wrapper.h"
int copy_fd(int ifd, int ofd)
{

View File

@ -11,7 +11,6 @@
#include "progress.h"
#include "csum-file.h"
#include "hash.h"
#include "wrapper.h"
static void verify_buffer_or_die(struct hashfile *f,
const void *buf,

36
ctype.c
View File

@ -28,39 +28,3 @@ const unsigned char sane_ctype[256] = {
A, A, A, A, A, A, A, A, A, A, A, R, R, U, P, X, /* 112..127 */
/* Nothing in the 128.. range */
};
/* For case-insensitive kwset */
const unsigned char tolower_trans_tbl[256] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
' ', '!', '"', '#', '$', '%', '&', 0x27,
'(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?',
'@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', '[', 0x5c, ']', '^', '_',
'`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', '{', '|', '}', '~', 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
};

View File

@ -1,6 +1,5 @@
#include "git-compat-util.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "environment.h"
#include "path.h"
@ -10,7 +9,6 @@
#include "setup.h"
#include "strbuf.h"
#include "string-list.h"
#include "wrapper.h"
#ifdef NO_INITGROUPS
#define initgroups(x, y) (0) /* nothing */

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "attr.h"
#include "object.h"
#include "blob.h"

2
diff.c
View File

@ -3,7 +3,6 @@
*/
#include "git-compat-util.h"
#include "abspath.h"
#include "alloc.h"
#include "base85.h"
#include "config.h"
#include "convert.h"
@ -43,7 +42,6 @@
#include "setup.h"
#include "strmap.h"
#include "ws.h"
#include "wrapper.h"
#ifdef NO_FAST_WORKING_DIRECTORY
#define FAST_WORKING_DIRECTORY 0

View File

@ -3,7 +3,6 @@
* Copyright (C) 2005 Junio C Hamano
*/
#include "git-compat-util.h"
#include "alloc.h"
#include "diff.h"
#include "diffcore.h"
#include "object-store-ll.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "dir.h"
#include "iterator.h"
#include "dir-iterator.h"

2
dir.c
View File

@ -7,7 +7,6 @@
*/
#include "git-compat-util.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "convert.h"
#include "dir.h"
@ -32,7 +31,6 @@
#include "symlinks.h"
#include "trace2.h"
#include "tree.h"
#include "wrapper.h"
/*
* Tells read_directory_recursive how a file or directory should be treated.

View File

@ -11,7 +11,6 @@
#include "strvec.h"
#include "run-command.h"
#include "sigchain.h"
#include "wrapper.h"
#ifndef DEFAULT_EDITOR
#define DEFAULT_EDITOR "vi"

View File

@ -14,7 +14,6 @@
#include "fsmonitor.h"
#include "entry.h"
#include "parallel-checkout.h"
#include "wrapper.h"
static void create_directories(const char *path, int path_len,
const struct checkout *state)

View File

@ -28,7 +28,6 @@
#include "setup.h"
#include "shallow.h"
#include "trace.h"
#include "wrapper.h"
#include "write-or-die.h"
int trust_executable_bit = 1;

View File

@ -17,7 +17,6 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include "git-compat-util.h"
#include "alloc.h"
#include "ewok.h"
#define EWAH_MASK(x) ((eword_t)1 << (x % BITS_IN_EWORD))

View File

@ -17,7 +17,6 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include "git-compat-util.h"
#include "alloc.h"
#include "ewok.h"
#include "ewok_rlw.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "repository.h"
#include "config.h"
#include "date.h"
@ -34,7 +33,6 @@
#include "commit-graph.h"
#include "sigchain.h"
#include "mergesort.h"
#include "wrapper.h"
static int transfer_unpack_limit = -1;
static int fetch_unpack_limit = -1;

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "environment.h"
#include "refs.h"

1
fsck.c
View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "date.h"
#include "dir.h"
#include "hex.h"

View File

@ -627,7 +627,7 @@ static inline int git_has_dir_sep(const char *path)
#include "compat/bswap.h"
struct strbuf;
#include "wrapper.h"
/* General helper functions */
NORETURN void usage(const char *err);
@ -679,9 +679,6 @@ void set_warn_routine(report_fn routine);
report_fn get_warn_routine(void);
void set_die_is_recursing_routine(int (*routine)(void));
int starts_with(const char *str, const char *prefix);
int istarts_with(const char *str, const char *prefix);
/*
* If the string "str" begins with the string found in "prefix", return 1.
* The "out" parameter is set to "str + strlen(prefix)" (i.e., to the point in
@ -710,29 +707,6 @@ static inline int skip_prefix(const char *str, const char *prefix,
return 0;
}
/*
* If the string "str" is the same as the string in "prefix", then the "arg"
* parameter is set to the "def" parameter and 1 is returned.
* If the string "str" begins with the string found in "prefix" and then a
* "=" sign, then the "arg" parameter is set to "str + strlen(prefix) + 1"
* (i.e., to the point in the string right after the prefix and the "=" sign),
* and 1 is returned.
*
* Otherwise, return 0 and leave "arg" untouched.
*
* When we accept both a "--key" and a "--key=<val>" option, this function
* can be used instead of !strcmp(arg, "--key") and then
* skip_prefix(arg, "--key=", &arg) to parse such an option.
*/
int skip_to_optional_arg_default(const char *str, const char *prefix,
const char **arg, const char *def);
static inline int skip_to_optional_arg(const char *str, const char *prefix,
const char **arg)
{
return skip_to_optional_arg_default(str, prefix, arg, "");
}
/*
* Like skip_prefix, but promises never to read past "len" bytes of the input
* buffer, and returns the remaining number of bytes in "out" via "outlen".
@ -777,12 +751,6 @@ static inline int strip_suffix(const char *str, const char *suffix, size_t *len)
return strip_suffix_mem(str, len, suffix);
}
static inline int ends_with(const char *str, const char *suffix)
{
size_t len;
return strip_suffix(str, suffix, &len);
}
#define SWAP(a, b) do { \
void *_swap_a_ptr = &(a); \
void *_swap_b_ptr = &(b); \
@ -1079,36 +1047,6 @@ static inline int cast_size_t_to_int(size_t a)
# define xalloca(size) (xmalloc(size))
# define xalloca_free(p) (free(p))
#endif
char *xstrdup(const char *str);
void *xmalloc(size_t size);
void *xmallocz(size_t size);
void *xmallocz_gently(size_t size);
void *xmemdupz(const void *data, size_t len);
char *xstrndup(const char *str, size_t len);
void *xrealloc(void *ptr, size_t size);
void *xcalloc(size_t nmemb, size_t size);
void xsetenv(const char *name, const char *value, int overwrite);
void *xmmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);
const char *mmap_os_err(void);
void *xmmap_gently(void *start, size_t length, int prot, int flags, int fd, off_t offset);
int xopen(const char *path, int flags, ...);
ssize_t xread(int fd, void *buf, size_t len);
ssize_t xwrite(int fd, const void *buf, size_t len);
ssize_t xpread(int fd, void *buf, size_t len, off_t offset);
int xdup(int fd);
FILE *xfopen(const char *path, const char *mode);
FILE *xfdopen(int fd, const char *mode);
int xmkstemp(char *temp_filename);
int xmkstemp_mode(char *temp_filename, int mode);
char *xgetcwd(void);
FILE *fopen_for_writing(const char *path);
FILE *fopen_or_warn(const char *path, const char *mode);
/*
* Like strncmp, but only return zero if s is NUL-terminated and exactly len
* characters long. If it is not, consider it greater than t.
*/
int xstrncmpz(const char *s, const char *t, size_t len);
/*
* FREE_AND_NULL(ptr) is like free(ptr) followed by ptr = NULL. Note
@ -1198,6 +1136,81 @@ static inline void move_array(void *dst, const void *src, size_t n, size_t size)
#define FLEXPTR_ALLOC_STR(x, ptrname, str) \
FLEXPTR_ALLOC_MEM((x), ptrname, (str), strlen(str))
#define alloc_nr(x) (((x)+16)*3/2)
/**
* Dynamically growing an array using realloc() is error prone and boring.
*
* Define your array with:
*
* - a pointer (`item`) that points at the array, initialized to `NULL`
* (although please name the variable based on its contents, not on its
* type);
*
* - an integer variable (`alloc`) that keeps track of how big the current
* allocation is, initialized to `0`;
*
* - another integer variable (`nr`) to keep track of how many elements the
* array currently has, initialized to `0`.
*
* Then before adding `n`th element to the item, call `ALLOC_GROW(item, n,
* alloc)`. This ensures that the array can hold at least `n` elements by
* calling `realloc(3)` and adjusting `alloc` variable.
*
* ------------
* sometype *item;
* size_t nr;
* size_t alloc
*
* for (i = 0; i < nr; i++)
* if (we like item[i] already)
* return;
*
* // we did not like any existing one, so add one
* ALLOC_GROW(item, nr + 1, alloc);
* item[nr++] = value you like;
* ------------
*
* You are responsible for updating the `nr` variable.
*
* If you need to specify the number of elements to allocate explicitly
* then use the macro `REALLOC_ARRAY(item, alloc)` instead of `ALLOC_GROW`.
*
* Consider using ALLOC_GROW_BY instead of ALLOC_GROW as it has some
* added niceties.
*
* DO NOT USE any expression with side-effect for 'x', 'nr', or 'alloc'.
*/
#define ALLOC_GROW(x, nr, alloc) \
do { \
if ((nr) > alloc) { \
if (alloc_nr(alloc) < (nr)) \
alloc = (nr); \
else \
alloc = alloc_nr(alloc); \
REALLOC_ARRAY(x, alloc); \
} \
} while (0)
/*
* Similar to ALLOC_GROW but handles updating of the nr value and
* zeroing the bytes of the newly-grown array elements.
*
* DO NOT USE any expression with side-effect for any of the
* arguments.
*/
#define ALLOC_GROW_BY(x, nr, increase, alloc) \
do { \
if (increase) { \
size_t new_nr = nr + (increase); \
if (new_nr < nr) \
BUG("negative growth in ALLOC_GROW_BY"); \
ALLOC_GROW(x, new_nr, alloc); \
memset((x) + nr, 0, sizeof(*(x)) * (increase)); \
nr = new_nr; \
} \
} while (0)
static inline char *xstrdup_or_null(const char *str)
{
return str ? xstrdup(str) : NULL;
@ -1210,79 +1223,11 @@ static inline size_t xsize_t(off_t len)
return (size_t) len;
}
__attribute__((format (printf, 3, 4)))
int xsnprintf(char *dst, size_t max, const char *fmt, ...);
#ifndef HOST_NAME_MAX
#define HOST_NAME_MAX 256
#endif
int xgethostname(char *buf, size_t len);
/* in ctype.c, for kwset users */
extern const unsigned char tolower_trans_tbl[256];
/* Sane ctype - no locale, and works with signed chars */
#undef isascii
#undef isspace
#undef isdigit
#undef isalpha
#undef isalnum
#undef isprint
#undef islower
#undef isupper
#undef tolower
#undef toupper
#undef iscntrl
#undef ispunct
#undef isxdigit
extern const unsigned char sane_ctype[256];
extern const signed char hexval_table[256];
#define GIT_SPACE 0x01
#define GIT_DIGIT 0x02
#define GIT_ALPHA 0x04
#define GIT_GLOB_SPECIAL 0x08
#define GIT_REGEX_SPECIAL 0x10
#define GIT_PATHSPEC_MAGIC 0x20
#define GIT_CNTRL 0x40
#define GIT_PUNCT 0x80
#define sane_istest(x,mask) ((sane_ctype[(unsigned char)(x)] & (mask)) != 0)
#define isascii(x) (((x) & ~0x7f) == 0)
#define isspace(x) sane_istest(x,GIT_SPACE)
#define isdigit(x) sane_istest(x,GIT_DIGIT)
#define isalpha(x) sane_istest(x,GIT_ALPHA)
#define isalnum(x) sane_istest(x,GIT_ALPHA | GIT_DIGIT)
#define isprint(x) ((x) >= 0x20 && (x) <= 0x7e)
#define islower(x) sane_iscase(x, 1)
#define isupper(x) sane_iscase(x, 0)
#define is_glob_special(x) sane_istest(x,GIT_GLOB_SPECIAL)
#define is_regex_special(x) sane_istest(x,GIT_GLOB_SPECIAL | GIT_REGEX_SPECIAL)
#define iscntrl(x) (sane_istest(x,GIT_CNTRL))
#define ispunct(x) sane_istest(x, GIT_PUNCT | GIT_REGEX_SPECIAL | \
GIT_GLOB_SPECIAL | GIT_PATHSPEC_MAGIC)
#define isxdigit(x) (hexval_table[(unsigned char)(x)] != -1)
#define tolower(x) sane_case((unsigned char)(x), 0x20)
#define toupper(x) sane_case((unsigned char)(x), 0)
#define is_pathspec_magic(x) sane_istest(x,GIT_PATHSPEC_MAGIC)
static inline int sane_case(int x, int high)
{
if (sane_istest(x, GIT_ALPHA))
x = (x & ~0x20) | high;
return x;
}
static inline int sane_iscase(int x, int is_lower)
{
if (!sane_istest(x, GIT_ALPHA))
return 0;
if (is_lower)
return (x & 0x20) != 0;
else
return (x & 0x20) == 0;
}
#include "sane-ctype.h"
/*
* Like skip_prefix, but compare case-insensitively. Note that the comparison
@ -1459,72 +1404,6 @@ void bug_fl(const char *file, int line, const char *fmt, ...);
#endif
#endif
enum fsync_action {
FSYNC_WRITEOUT_ONLY,
FSYNC_HARDWARE_FLUSH
};
/*
* Issues an fsync against the specified file according to the specified mode.
*
* FSYNC_WRITEOUT_ONLY attempts to use interfaces available on some operating
* systems to flush the OS cache without issuing a flush command to the storage
* controller. If those interfaces are unavailable, the function fails with
* ENOSYS.
*
* FSYNC_HARDWARE_FLUSH does an OS writeout and hardware flush to ensure that
* changes are durable. It is not expected to fail.
*/
int git_fsync(int fd, enum fsync_action action);
/*
* Writes out trace statistics for fsync using the trace2 API.
*/
void trace_git_fsync_stats(void);
/*
* Preserves errno, prints a message, but gives no warning for ENOENT.
* Returns 0 on success, which includes trying to unlink an object that does
* not exist.
*/
int unlink_or_warn(const char *path);
/*
* Tries to unlink file. Returns 0 if unlink succeeded
* or the file already didn't exist. Returns -1 and
* appends a message to err suitable for
* 'error("%s", err->buf)' on error.
*/
int unlink_or_msg(const char *file, struct strbuf *err);
/*
* Preserves errno, prints a message, but gives no warning for ENOENT.
* Returns 0 on success, which includes trying to remove a directory that does
* not exist.
*/
int rmdir_or_warn(const char *path);
/*
* Calls the correct function out of {unlink,rmdir}_or_warn based on
* the supplied file mode.
*/
int remove_or_warn(unsigned int mode, const char *path);
/*
* Call access(2), but warn for any error except "missing file"
* (ENOENT or ENOTDIR).
*/
#define ACCESS_EACCES_OK (1U << 0)
int access_or_warn(const char *path, int mode, unsigned flag);
int access_or_die(const char *path, int mode, unsigned flag);
/* Warn on an inaccessible file if errno indicates this is an error */
int warn_on_fopen_errors(const char *path);
/*
* Open with O_NOFOLLOW, or equivalent. Note that the fallback equivalent
* may be racy. Do not use this as protection against an attacker who can
* simultaneously create paths.
*/
int open_nofollow(const char *path, int flags);
#ifndef SHELL_PATH
# define SHELL_PATH "/bin/sh"
#endif
@ -1664,13 +1543,4 @@ static inline void *container_of_or_null_offset(void *ptr, size_t offset)
((uintptr_t)&(ptr)->member - (uintptr_t)(ptr))
#endif /* !__GNUC__ */
void sleep_millisec(int millisec);
/*
* Generate len bytes from the system cryptographically secure PRNG.
* Returns 0 on success and -1 on error, setting errno. The inability to
* satisfy the full request is an error.
*/
int csprng_bytes(void *buf, size_t len);
#endif

View File

@ -12,7 +12,6 @@
#include "sigchain.h"
#include "tempfile.h"
#include "alias.h"
#include "wrapper.h"
#include "environment.h"
static int git_gpg_config(const char *, const char *,

1
grep.c
View File

@ -12,7 +12,6 @@
#include "commit.h"
#include "quote.h"
#include "help.h"
#include "wrapper.h"
static int grep_source_load(struct grep_source *gs);
static int grep_source_is_binary(struct grep_source *gs,

1
help.c
View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "builtin.h"
#include "exec-cmd.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "environment.h"
#include "git-zlib.h"
@ -19,7 +18,6 @@
#include "object-store-ll.h"
#include "protocol.h"
#include "date.h"
#include "wrapper.h"
#include "write-or-die.h"
static const char content_type[] = "Content-Type";

View File

@ -30,7 +30,6 @@
#include "parse-options.h"
#include "setup.h"
#include "strbuf.h"
#include "wrapper.h"
#if defined(NO_OPENSSL) && !defined(HAVE_OPENSSL_CSPRNG)
typedef void *SSL;
#endif

36
kwset.c
View File

@ -49,6 +49,42 @@ static void *obstack_chunk_alloc(long size)
#define U(c) ((unsigned char) (c))
/* For case-insensitive kwset */
const unsigned char tolower_trans_tbl[256] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
' ', '!', '"', '#', '$', '%', '&', 0x27,
'(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?',
'@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', '[', 0x5c, ']', '^', '_',
'`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', '{', '|', '}', '~', 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
};
/* Balanced tree of edges and labels leaving a given trie node. */
struct tree
{

View File

@ -26,6 +26,8 @@
The author may be reached (Email) at the address mike@ai.mit.edu,
or (US mail) as Mike Haertel c/o Free Software Foundation. */
extern const unsigned char tolower_trans_tbl[256];
struct kwsmatch
{
int index; /* Index number of matching keyword. */

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "line-range.h"
#include "hex.h"
#include "tag.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "commit.h"
#include "config.h"
#include "gettext.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "dir.h"
#include "gettext.h"
#include "hex.h"

View File

@ -13,7 +13,6 @@
#include "merge-ll.h"
#include "quote.h"
#include "strbuf.h"
#include "wrapper.h"
struct ll_merge_driver;

View File

@ -38,7 +38,6 @@
#include "tag.h"
#include "tree-walk.h"
#include "unpack-trees.h"
#include "wrapper.h"
#include "xdiff-interface.h"
struct merge_options_internal {

1
midx.c
View File

@ -1,6 +1,5 @@
#include "git-compat-util.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "csum-file.h"
#include "dir.h"

View File

@ -20,7 +20,6 @@
#include "trace.h"
#include "notes-utils.h"
#include "commit-reach.h"
#include "wrapper.h"
struct notes_merge_pair {
struct object_id obj, base, local, remote;

View File

@ -8,7 +8,6 @@
*/
#include "git-compat-util.h"
#include "abspath.h"
#include "alloc.h"
#include "config.h"
#include "convert.h"
#include "environment.h"
@ -44,7 +43,6 @@
#include "setup.h"
#include "submodule.h"
#include "fsck.h"
#include "wrapper.h"
/* The maximum size for an object header. */
#define MAX_HEADER_LEN 32

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "oid-array.h"
#include "hash-lookup.h"

View File

@ -4,7 +4,6 @@
*/
#include "git-compat-util.h"
#include "oidtree.h"
#include "alloc.h"
#include "hash.h"
struct oidtree_iter_data {

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "environment.h"
#include "gettext.h"
#include "hex.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "commit.h"
#include "gettext.h"
#include "hex.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "object.h"
#include "pack.h"
#include "pack-objects.h"

View File

@ -12,7 +12,6 @@
#include "pack-revindex.h"
#include "path.h"
#include "strbuf.h"
#include "wrapper.h"
void reset_pack_idx_option(struct pack_idx_option *opts)
{

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "environment.h"
#include "gettext.h"
#include "hex.h"
@ -24,7 +23,6 @@
#include "commit-graph.h"
#include "pack-revindex.h"
#include "promisor-remote.h"
#include "wrapper.h"
char *odb_pack_name(struct strbuf *buf,
const unsigned char *hash,

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "entry.h"
#include "gettext.h"
@ -15,7 +14,6 @@
#include "symlinks.h"
#include "thread-utils.h"
#include "trace2.h"
#include "wrapper.h"
struct pc_worker {
struct child_process cp;

1
path.c
View File

@ -18,7 +18,6 @@
#include "object-store-ll.h"
#include "lockfile.h"
#include "exec-cmd.h"
#include "wrapper.h"
static int get_st_mode_bits(const char *path, int *mode)
{

View File

@ -5,7 +5,6 @@
#include "hex.h"
#include "run-command.h"
#include "trace.h"
#include "wrapper.h"
#include "write-or-die.h"
char packet_buffer[LARGE_PACKET_MAX];

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "config.h"
#include "commit.h"
#include "environment.h"

View File

@ -1,5 +1,4 @@
#include "git-compat-util.h"
#include "alloc.h"
#include "prio-queue.h"
static inline int compare(struct prio_queue *queue, int i, int j)

Some files were not shown because too many files have changed in this diff Show More