git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
blob a48c5aa5e3dcccdc2482a8208b3199c422e3d952 1961 bytes (raw)
name: reftable/compat.c 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
 
/*
Copyright 2020 Google LLC

Use of this source code is governed by a BSD-style
license that can be found in the LICENSE file or at
https://developers.google.com/open-source/licenses/bsd

*/

/* compat.c - compatibility functions for standalone compilation */

#include "system.h"
#include "basics.h"

#ifdef REFTABLE_STANDALONE

#include <dirent.h>

void put_be32(void *p, uint32_t i)
{
	uint8_t *out = (uint8_t *)p;

	out[0] = (uint8_t)((i >> 24) & 0xff);
	out[1] = (uint8_t)((i >> 16) & 0xff);
	out[2] = (uint8_t)((i >> 8) & 0xff);
	out[3] = (uint8_t)((i)&0xff);
}

uint32_t get_be32(uint8_t *in)
{
	return (uint32_t)(in[0]) << 24 | (uint32_t)(in[1]) << 16 |
	       (uint32_t)(in[2]) << 8 | (uint32_t)(in[3]);
}

void put_be64(void *p, uint64_t v)
{
	uint8_t *out = (uint8_t *)p;
	int i = sizeof(uint64_t);
	while (i--) {
		out[i] = (uint8_t)(v & 0xff);
		v >>= 8;
	}
}

uint64_t get_be64(void *out)
{
	uint8_t *bytes = (uint8_t *)out;
	uint64_t v = 0;
	int i = 0;
	for (i = 0; i < sizeof(uint64_t); i++) {
		v = (v << 8) | (uint8_t)(bytes[i] & 0xff);
	}
	return v;
}

uint16_t get_be16(uint8_t *in)
{
	return (uint32_t)(in[0]) << 8 | (uint32_t)(in[1]);
}

char *xstrdup(const char *s)
{
	int l = strlen(s);
	char *dest = (char *)reftable_malloc(l + 1);
	strncpy(dest, s, l + 1);
	return dest;
}

void sleep_millisec(int millisecs)
{
	usleep(millisecs * 1000);
}

void reftable_clear_dir(const char *dirname)
{
	DIR *dir = opendir(dirname);
	struct dirent *ent = NULL;
	assert(dir);
	while ((ent = readdir(dir)) != NULL) {
		unlinkat(dirfd(dir), ent->d_name, 0);
	}
	closedir(dir);
	rmdir(dirname);
}

#else

#include "../dir.h"

void reftable_clear_dir(const char *dirname)
{
	struct strbuf path = STRBUF_INIT;
	strbuf_addstr(&path, dirname);
	remove_dir_recursively(&path, 0);
	strbuf_release(&path);
}

#endif

int hash_size(uint32_t id)
{
	switch (id) {
	case 0:
	case SHA1_ID:
		return SHA1_SIZE;
	case SHA256_ID:
		return SHA256_SIZE;
	}
	abort();
}

debug log:

solving a48c5aa5e3 ...
found a48c5aa5e3 in https://public-inbox.org/git/570a8c4bcac54295865ee0fc4514073b59725511.1600283416.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/4190da597e65bce072fa3c37c9410a56def4b489.1601568663.git.gitgitgadget@gmail.com/

applying [1/1] https://public-inbox.org/git/570a8c4bcac54295865ee0fc4514073b59725511.1600283416.git.gitgitgadget@gmail.com/
diff --git a/reftable/compat.c b/reftable/compat.c
new file mode 100644
index 0000000000..a48c5aa5e3

Checking patch reftable/compat.c...
Applied patch reftable/compat.c cleanly.

skipping https://public-inbox.org/git/4190da597e65bce072fa3c37c9410a56def4b489.1601568663.git.gitgitgadget@gmail.com/ for a48c5aa5e3
index at:
100644 a48c5aa5e3dcccdc2482a8208b3199c422e3d952	reftable/compat.c

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).