Merge branch 'jk/size-t'
Code clean-up to use size_t/ssize_t when they are the right type. * jk/size-t: strbuf_humanise: use unsigned variables pass st.st_size as hint for strbuf_readlink() strbuf_readlink: use ssize_t strbuf: use size_t for length in intermediate variables reencode_string: use size_t for string lengths reencode_string: use st_add/st_mult helpers
This commit is contained in:
@ -73,7 +73,8 @@ static void copy_templates_1(struct strbuf *path, struct strbuf *template_path,
|
|||||||
continue;
|
continue;
|
||||||
else if (S_ISLNK(st_template.st_mode)) {
|
else if (S_ISLNK(st_template.st_mode)) {
|
||||||
struct strbuf lnk = STRBUF_INIT;
|
struct strbuf lnk = STRBUF_INIT;
|
||||||
if (strbuf_readlink(&lnk, template_path->buf, 0) < 0)
|
if (strbuf_readlink(&lnk, template_path->buf,
|
||||||
|
st_template.st_size) < 0)
|
||||||
die_errno(_("cannot readlink '%s'"), template_path->buf);
|
die_errno(_("cannot readlink '%s'"), template_path->buf);
|
||||||
if (symlink(lnk.buf, path->buf))
|
if (symlink(lnk.buf, path->buf))
|
||||||
die_errno(_("cannot symlink '%s' '%s'"),
|
die_errno(_("cannot symlink '%s' '%s'"),
|
||||||
|
@ -390,7 +390,7 @@ static int encode_to_git(const char *path, const char *src, size_t src_len,
|
|||||||
struct strbuf *buf, const char *enc, int conv_flags)
|
struct strbuf *buf, const char *enc, int conv_flags)
|
||||||
{
|
{
|
||||||
char *dst;
|
char *dst;
|
||||||
int dst_len;
|
size_t dst_len;
|
||||||
int die_on_error = conv_flags & CONV_WRITE_OBJECT;
|
int die_on_error = conv_flags & CONV_WRITE_OBJECT;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -453,7 +453,7 @@ static int encode_to_git(const char *path, const char *src, size_t src_len,
|
|||||||
*/
|
*/
|
||||||
if (die_on_error && check_roundtrip(enc)) {
|
if (die_on_error && check_roundtrip(enc)) {
|
||||||
char *re_src;
|
char *re_src;
|
||||||
int re_src_len;
|
size_t re_src_len;
|
||||||
|
|
||||||
re_src = reencode_string_len(dst, dst_len,
|
re_src = reencode_string_len(dst, dst_len,
|
||||||
enc, default_encoding,
|
enc, default_encoding,
|
||||||
@ -481,7 +481,7 @@ static int encode_to_worktree(const char *path, const char *src, size_t src_len,
|
|||||||
struct strbuf *buf, const char *enc)
|
struct strbuf *buf, const char *enc)
|
||||||
{
|
{
|
||||||
char *dst;
|
char *dst;
|
||||||
int dst_len;
|
size_t dst_len;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* No encoding is specified or there is nothing to encode.
|
* No encoding is specified or there is nothing to encode.
|
||||||
|
2
pretty.c
2
pretty.c
@ -1538,7 +1538,7 @@ void format_commit_message(const struct commit *commit,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (output_enc) {
|
if (output_enc) {
|
||||||
int outsz;
|
size_t outsz;
|
||||||
char *out = reencode_string_len(sb->buf, sb->len,
|
char *out = reencode_string_len(sb->buf, sb->len,
|
||||||
output_enc, utf8, &outsz);
|
output_enc, utf8, &outsz);
|
||||||
if (out)
|
if (out)
|
||||||
|
@ -363,7 +363,7 @@ stat_ref:
|
|||||||
/* Follow "normalized" - ie "refs/.." symlinks by hand */
|
/* Follow "normalized" - ie "refs/.." symlinks by hand */
|
||||||
if (S_ISLNK(st.st_mode)) {
|
if (S_ISLNK(st.st_mode)) {
|
||||||
strbuf_reset(&sb_contents);
|
strbuf_reset(&sb_contents);
|
||||||
if (strbuf_readlink(&sb_contents, path, 0) < 0) {
|
if (strbuf_readlink(&sb_contents, path, st.st_size) < 0) {
|
||||||
if (errno == ENOENT || errno == EINVAL)
|
if (errno == ENOENT || errno == EINVAL)
|
||||||
/* inconsistent with lstat; retry */
|
/* inconsistent with lstat; retry */
|
||||||
goto stat_ref;
|
goto stat_ref;
|
||||||
|
20
strbuf.c
20
strbuf.c
@ -134,7 +134,7 @@ void strbuf_ltrim(struct strbuf *sb)
|
|||||||
int strbuf_reencode(struct strbuf *sb, const char *from, const char *to)
|
int strbuf_reencode(struct strbuf *sb, const char *from, const char *to)
|
||||||
{
|
{
|
||||||
char *out;
|
char *out;
|
||||||
int len;
|
size_t len;
|
||||||
|
|
||||||
if (same_encoding(from, to))
|
if (same_encoding(from, to))
|
||||||
return 0;
|
return 0;
|
||||||
@ -209,7 +209,7 @@ void strbuf_list_free(struct strbuf **sbs)
|
|||||||
|
|
||||||
int strbuf_cmp(const struct strbuf *a, const struct strbuf *b)
|
int strbuf_cmp(const struct strbuf *a, const struct strbuf *b)
|
||||||
{
|
{
|
||||||
int len = a->len < b->len ? a->len: b->len;
|
size_t len = a->len < b->len ? a->len: b->len;
|
||||||
int cmp = memcmp(a->buf, b->buf, len);
|
int cmp = memcmp(a->buf, b->buf, len);
|
||||||
if (cmp)
|
if (cmp)
|
||||||
return cmp;
|
return cmp;
|
||||||
@ -389,7 +389,7 @@ size_t strbuf_expand_dict_cb(struct strbuf *sb, const char *placeholder,
|
|||||||
|
|
||||||
void strbuf_addbuf_percentquote(struct strbuf *dst, const struct strbuf *src)
|
void strbuf_addbuf_percentquote(struct strbuf *dst, const struct strbuf *src)
|
||||||
{
|
{
|
||||||
int i, len = src->len;
|
size_t i, len = src->len;
|
||||||
|
|
||||||
for (i = 0; i < len; i++) {
|
for (i = 0; i < len; i++) {
|
||||||
if (src->buf[i] == '%')
|
if (src->buf[i] == '%')
|
||||||
@ -469,7 +469,7 @@ int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint)
|
|||||||
hint = 32;
|
hint = 32;
|
||||||
|
|
||||||
while (hint < STRBUF_MAXLINK) {
|
while (hint < STRBUF_MAXLINK) {
|
||||||
int len;
|
ssize_t len;
|
||||||
|
|
||||||
strbuf_grow(sb, hint);
|
strbuf_grow(sb, hint);
|
||||||
len = readlink(path, sb->buf, hint);
|
len = readlink(path, sb->buf, hint);
|
||||||
@ -734,18 +734,18 @@ void strbuf_humanise_bytes(struct strbuf *buf, off_t bytes)
|
|||||||
{
|
{
|
||||||
if (bytes > 1 << 30) {
|
if (bytes > 1 << 30) {
|
||||||
strbuf_addf(buf, "%u.%2.2u GiB",
|
strbuf_addf(buf, "%u.%2.2u GiB",
|
||||||
(int)(bytes >> 30),
|
(unsigned)(bytes >> 30),
|
||||||
(int)(bytes & ((1 << 30) - 1)) / 10737419);
|
(unsigned)(bytes & ((1 << 30) - 1)) / 10737419);
|
||||||
} else if (bytes > 1 << 20) {
|
} else if (bytes > 1 << 20) {
|
||||||
int x = bytes + 5243; /* for rounding */
|
unsigned x = bytes + 5243; /* for rounding */
|
||||||
strbuf_addf(buf, "%u.%2.2u MiB",
|
strbuf_addf(buf, "%u.%2.2u MiB",
|
||||||
x >> 20, ((x & ((1 << 20) - 1)) * 100) >> 20);
|
x >> 20, ((x & ((1 << 20) - 1)) * 100) >> 20);
|
||||||
} else if (bytes > 1 << 10) {
|
} else if (bytes > 1 << 10) {
|
||||||
int x = bytes + 5; /* for rounding */
|
unsigned x = bytes + 5; /* for rounding */
|
||||||
strbuf_addf(buf, "%u.%2.2u KiB",
|
strbuf_addf(buf, "%u.%2.2u KiB",
|
||||||
x >> 10, ((x & ((1 << 10) - 1)) * 100) >> 10);
|
x >> 10, ((x & ((1 << 10) - 1)) * 100) >> 10);
|
||||||
} else {
|
} else {
|
||||||
strbuf_addf(buf, "%u bytes", (int)bytes);
|
strbuf_addf(buf, "%u bytes", (unsigned)bytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -960,7 +960,7 @@ static size_t cleanup(char *line, size_t len)
|
|||||||
*/
|
*/
|
||||||
void strbuf_stripspace(struct strbuf *sb, int skip_comments)
|
void strbuf_stripspace(struct strbuf *sb, int skip_comments)
|
||||||
{
|
{
|
||||||
int empties = 0;
|
size_t empties = 0;
|
||||||
size_t i, j, len, newlen;
|
size_t i, j, len, newlen;
|
||||||
char *eol;
|
char *eol;
|
||||||
|
|
||||||
|
10
utf8.c
10
utf8.c
@ -470,14 +470,14 @@ int utf8_fprintf(FILE *stream, const char *format, ...)
|
|||||||
#else
|
#else
|
||||||
typedef char * iconv_ibp;
|
typedef char * iconv_ibp;
|
||||||
#endif
|
#endif
|
||||||
char *reencode_string_iconv(const char *in, size_t insz, iconv_t conv, int *outsz_p)
|
char *reencode_string_iconv(const char *in, size_t insz, iconv_t conv, size_t *outsz_p)
|
||||||
{
|
{
|
||||||
size_t outsz, outalloc;
|
size_t outsz, outalloc;
|
||||||
char *out, *outpos;
|
char *out, *outpos;
|
||||||
iconv_ibp cp;
|
iconv_ibp cp;
|
||||||
|
|
||||||
outsz = insz;
|
outsz = insz;
|
||||||
outalloc = outsz + 1; /* for terminating NUL */
|
outalloc = st_add(outsz, 1); /* for terminating NUL */
|
||||||
out = xmalloc(outalloc);
|
out = xmalloc(outalloc);
|
||||||
outpos = out;
|
outpos = out;
|
||||||
cp = (iconv_ibp)in;
|
cp = (iconv_ibp)in;
|
||||||
@ -497,7 +497,7 @@ char *reencode_string_iconv(const char *in, size_t insz, iconv_t conv, int *outs
|
|||||||
* converting the rest.
|
* converting the rest.
|
||||||
*/
|
*/
|
||||||
sofar = outpos - out;
|
sofar = outpos - out;
|
||||||
outalloc = sofar + insz * 2 + 32;
|
outalloc = st_add3(sofar, st_mult(insz, 2), 32);
|
||||||
out = xrealloc(out, outalloc);
|
out = xrealloc(out, outalloc);
|
||||||
outpos = out + sofar;
|
outpos = out + sofar;
|
||||||
outsz = outalloc - sofar - 1;
|
outsz = outalloc - sofar - 1;
|
||||||
@ -534,9 +534,9 @@ static const char *fallback_encoding(const char *name)
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *reencode_string_len(const char *in, int insz,
|
char *reencode_string_len(const char *in, size_t insz,
|
||||||
const char *out_encoding, const char *in_encoding,
|
const char *out_encoding, const char *in_encoding,
|
||||||
int *outsz)
|
size_t *outsz)
|
||||||
{
|
{
|
||||||
iconv_t conv;
|
iconv_t conv;
|
||||||
char *out;
|
char *out;
|
||||||
|
10
utf8.h
10
utf8.h
@ -25,14 +25,14 @@ void strbuf_utf8_replace(struct strbuf *sb, int pos, int width,
|
|||||||
|
|
||||||
#ifndef NO_ICONV
|
#ifndef NO_ICONV
|
||||||
char *reencode_string_iconv(const char *in, size_t insz,
|
char *reencode_string_iconv(const char *in, size_t insz,
|
||||||
iconv_t conv, int *outsz);
|
iconv_t conv, size_t *outsz);
|
||||||
char *reencode_string_len(const char *in, int insz,
|
char *reencode_string_len(const char *in, size_t insz,
|
||||||
const char *out_encoding,
|
const char *out_encoding,
|
||||||
const char *in_encoding,
|
const char *in_encoding,
|
||||||
int *outsz);
|
size_t *outsz);
|
||||||
#else
|
#else
|
||||||
static inline char *reencode_string_len(const char *a, int b,
|
static inline char *reencode_string_len(const char *a, size_t b,
|
||||||
const char *c, const char *d, int *e)
|
const char *c, const char *d, size_t *e)
|
||||||
{ if (e) *e = 0; return NULL; }
|
{ if (e) *e = 0; return NULL; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user