Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer

Many call sites use strbuf_init(&foo, 0) to initialize local
strbuf variable "foo" which has not been accessed since its
declaration. These can be replaced with a static initialization
using the STRBUF_INIT macro which is just as readable, saves a
function call, and takes up fewer lines.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Brandon Casey
2008-10-09 14:12:12 -05:00
committed by Shawn O. Pearce
parent 7e7abea96b
commit f285a2d7ed
46 changed files with 91 additions and 197 deletions

View File

@ -124,11 +124,10 @@ static int write_tar_entry(struct archiver_args *args,
unsigned int mode, void *buffer, unsigned long size) unsigned int mode, void *buffer, unsigned long size)
{ {
struct ustar_header header; struct ustar_header header;
struct strbuf ext_header; struct strbuf ext_header = STRBUF_INIT;
int err = 0; int err = 0;
memset(&header, 0, sizeof(header)); memset(&header, 0, sizeof(header));
strbuf_init(&ext_header, 0);
if (!sha1) { if (!sha1) {
*header.typeflag = TYPEFLAG_GLOBAL_HEADER; *header.typeflag = TYPEFLAG_GLOBAL_HEADER;
@ -211,10 +210,9 @@ static int write_tar_entry(struct archiver_args *args,
static int write_global_extended_header(struct archiver_args *args) static int write_global_extended_header(struct archiver_args *args)
{ {
const unsigned char *sha1 = args->commit_sha1; const unsigned char *sha1 = args->commit_sha1;
struct strbuf ext_header; struct strbuf ext_header = STRBUF_INIT;
int err; int err;
strbuf_init(&ext_header, 0);
strbuf_append_ext_header(&ext_header, "comment", sha1_to_hex(sha1), 40); strbuf_append_ext_header(&ext_header, "comment", sha1_to_hex(sha1), 40);
err = write_tar_entry(args, NULL, NULL, 0, 0, ext_header.buf, err = write_tar_entry(args, NULL, NULL, 0, 0, ext_header.buf,
ext_header.len); ext_header.len);

View File

@ -29,11 +29,10 @@ static void format_subst(const struct commit *commit,
struct strbuf *buf) struct strbuf *buf)
{ {
char *to_free = NULL; char *to_free = NULL;
struct strbuf fmt; struct strbuf fmt = STRBUF_INIT;
if (src == buf->buf) if (src == buf->buf)
to_free = strbuf_detach(buf, NULL); to_free = strbuf_detach(buf, NULL);
strbuf_init(&fmt, 0);
for (;;) { for (;;) {
const char *b, *c; const char *b, *c;
@ -65,10 +64,9 @@ static void *sha1_file_to_archive(const char *path, const unsigned char *sha1,
buffer = read_sha1_file(sha1, type, sizep); buffer = read_sha1_file(sha1, type, sizep);
if (buffer && S_ISREG(mode)) { if (buffer && S_ISREG(mode)) {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
size_t size = 0; size_t size = 0;
strbuf_init(&buf, 0);
strbuf_attach(&buf, buffer, *sizep, *sizep + 1); strbuf_attach(&buf, buffer, *sizep, *sizep + 1);
convert_to_working_tree(path, buf.buf, buf.len, &buf); convert_to_working_tree(path, buf.buf, buf.len, &buf);
if (commit) if (commit)

View File

@ -321,13 +321,12 @@ static char *find_name(const char *line, char *def, int p_value, int terminate)
const char *start = line; const char *start = line;
if (*line == '"') { if (*line == '"') {
struct strbuf name; struct strbuf name = STRBUF_INIT;
/* /*
* Proposed "new-style" GNU patch/diff format; see * Proposed "new-style" GNU patch/diff format; see
* http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2 * http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2
*/ */
strbuf_init(&name, 0);
if (!unquote_c_style(&name, line, NULL)) { if (!unquote_c_style(&name, line, NULL)) {
char *cp; char *cp;
@ -675,11 +674,8 @@ static char *git_header_name(char *line, int llen)
if (*line == '"') { if (*line == '"') {
const char *cp; const char *cp;
struct strbuf first; struct strbuf first = STRBUF_INIT;
struct strbuf sp; struct strbuf sp = STRBUF_INIT;
strbuf_init(&first, 0);
strbuf_init(&sp, 0);
if (unquote_c_style(&first, line, &second)) if (unquote_c_style(&first, line, &second))
goto free_and_fail1; goto free_and_fail1;
@ -741,10 +737,9 @@ static char *git_header_name(char *line, int llen)
*/ */
for (second = name; second < line + llen; second++) { for (second = name; second < line + llen; second++) {
if (*second == '"') { if (*second == '"') {
struct strbuf sp; struct strbuf sp = STRBUF_INIT;
const char *np; const char *np;
strbuf_init(&sp, 0);
if (unquote_c_style(&sp, second, NULL)) if (unquote_c_style(&sp, second, NULL))
goto free_and_fail2; goto free_and_fail2;
@ -1508,11 +1503,10 @@ static const char minuses[]=
static void show_stats(struct patch *patch) static void show_stats(struct patch *patch)
{ {
struct strbuf qname; struct strbuf qname = STRBUF_INIT;
char *cp = patch->new_name ? patch->new_name : patch->old_name; char *cp = patch->new_name ? patch->new_name : patch->old_name;
int max, add, del; int max, add, del;
strbuf_init(&qname, 0);
quote_c_style(cp, &qname, NULL, 0); quote_c_style(cp, &qname, NULL, 0);
/* /*
@ -2292,14 +2286,12 @@ static void add_to_fn_table(struct patch *patch)
static int apply_data(struct patch *patch, struct stat *st, struct cache_entry *ce) static int apply_data(struct patch *patch, struct stat *st, struct cache_entry *ce)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
struct image image; struct image image;
size_t len; size_t len;
char *img; char *img;
struct patch *tpatch; struct patch *tpatch;
strbuf_init(&buf, 0);
if (!(patch->is_copy || patch->is_rename) && if (!(patch->is_copy || patch->is_rename) &&
((tpatch = in_fn_table(patch->old_name)) != NULL)) { ((tpatch = in_fn_table(patch->old_name)) != NULL)) {
if (tpatch == (struct patch *) -1) { if (tpatch == (struct patch *) -1) {
@ -2779,7 +2771,7 @@ static void add_index_file(const char *path, unsigned mode, void *buf, unsigned
static int try_create_file(const char *path, unsigned int mode, const char *buf, unsigned long size) static int try_create_file(const char *path, unsigned int mode, const char *buf, unsigned long size)
{ {
int fd; int fd;
struct strbuf nbuf; struct strbuf nbuf = STRBUF_INIT;
if (S_ISGITLINK(mode)) { if (S_ISGITLINK(mode)) {
struct stat st; struct stat st;
@ -2798,7 +2790,6 @@ static int try_create_file(const char *path, unsigned int mode, const char *buf,
if (fd < 0) if (fd < 0)
return -1; return -1;
strbuf_init(&nbuf, 0);
if (convert_to_working_tree(path, buf, size, &nbuf)) { if (convert_to_working_tree(path, buf, size, &nbuf)) {
size = nbuf.len; size = nbuf.len;
buf = nbuf.buf; buf = nbuf.buf;
@ -3060,13 +3051,12 @@ static void prefix_patches(struct patch *p)
static int apply_patch(int fd, const char *filename, int options) static int apply_patch(int fd, const char *filename, int options)
{ {
size_t offset; size_t offset;
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
struct patch *list = NULL, **listp = &list; struct patch *list = NULL, **listp = &list;
int skipped_patch = 0; int skipped_patch = 0;
/* FIXME - memory leak when using multiple patch files as inputs */ /* FIXME - memory leak when using multiple patch files as inputs */
memset(&fn_table, 0, sizeof(struct string_list)); memset(&fn_table, 0, sizeof(struct string_list));
strbuf_init(&buf, 0);
patch_input_file = filename; patch_input_file = filename;
read_patch_file(&buf, fd); read_patch_file(&buf, fd);
offset = 0; offset = 0;

View File

@ -2062,7 +2062,7 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
struct commit *commit; struct commit *commit;
struct origin *origin; struct origin *origin;
unsigned char head_sha1[20]; unsigned char head_sha1[20];
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
const char *ident; const char *ident;
time_t now; time_t now;
int size, len; int size, len;
@ -2082,7 +2082,6 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
origin = make_origin(commit, path); origin = make_origin(commit, path);
strbuf_init(&buf, 0);
if (!contents_from || strcmp("-", contents_from)) { if (!contents_from || strcmp("-", contents_from)) {
struct stat st; struct stat st;
const char *read_from; const char *read_from;

View File

@ -334,11 +334,10 @@ static void print_ref_item(struct ref_item *item, int maxwidth, int verbose,
} }
if (verbose) { if (verbose) {
struct strbuf subject; struct strbuf subject = STRBUF_INIT;
const char *sub = " **** invalid ref ****"; const char *sub = " **** invalid ref ****";
char stat[128]; char stat[128];
strbuf_init(&subject, 0);
stat[0] = '\0'; stat[0] = '\0';
commit = item->commit; commit = item->commit;

View File

@ -189,9 +189,8 @@ static int batch_one_object(const char *obj_name, int print_contents)
static int batch_objects(int print_contents) static int batch_objects(int print_contents)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
while (strbuf_getline(&buf, stdin, '\n') != EOF) { while (strbuf_getline(&buf, stdin, '\n') != EOF) {
int error = batch_one_object(buf.buf, print_contents); int error = batch_one_object(buf.buf, print_contents);
if (error) if (error)

View File

@ -268,13 +268,11 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
} }
if (read_from_stdin) { if (read_from_stdin) {
struct strbuf buf, nbuf; struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;
if (all) if (all)
die("git checkout-index: don't mix '--all' and '--stdin'"); die("git checkout-index: don't mix '--all' and '--stdin'");
strbuf_init(&buf, 0);
strbuf_init(&nbuf, 0);
while (strbuf_getline(&buf, stdin, line_termination) != EOF) { while (strbuf_getline(&buf, stdin, line_termination) != EOF) {
const char *p; const char *p;
if (line_termination && buf.buf[0] == '"') { if (line_termination && buf.buf[0] == '"') {

View File

@ -310,8 +310,7 @@ static void show_local_changes(struct object *head)
static void describe_detached_head(char *msg, struct commit *commit) static void describe_detached_head(char *msg, struct commit *commit)
{ {
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
strbuf_init(&sb, 0);
parse_commit(commit); parse_commit(commit);
pretty_print_commit(CMIT_FMT_ONELINE, commit, &sb, 0, NULL, NULL, 0, 0); pretty_print_commit(CMIT_FMT_ONELINE, commit, &sb, 0, NULL, NULL, 0, 0);
fprintf(stderr, "%s %s... %s\n", msg, fprintf(stderr, "%s %s... %s\n", msg,
@ -360,8 +359,7 @@ struct branch_info {
static void setup_branch_path(struct branch_info *branch) static void setup_branch_path(struct branch_info *branch)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
strbuf_addstr(&buf, "refs/heads/"); strbuf_addstr(&buf, "refs/heads/");
strbuf_addstr(&buf, branch->name); strbuf_addstr(&buf, branch->name);
branch->path = strbuf_detach(&buf, NULL); branch->path = strbuf_detach(&buf, NULL);
@ -484,7 +482,7 @@ static void update_refs_for_switch(struct checkout_opts *opts,
struct branch_info *old, struct branch_info *old,
struct branch_info *new) struct branch_info *new)
{ {
struct strbuf msg; struct strbuf msg = STRBUF_INIT;
const char *old_desc; const char *old_desc;
if (opts->new_branch) { if (opts->new_branch) {
create_branch(old->name, opts->new_branch, new->name, 0, create_branch(old->name, opts->new_branch, new->name, 0,
@ -493,7 +491,6 @@ static void update_refs_for_switch(struct checkout_opts *opts,
setup_branch_path(new); setup_branch_path(new);
} }
strbuf_init(&msg, 0);
old_desc = old->name; old_desc = old->name;
if (!old_desc) if (!old_desc)
old_desc = sha1_to_hex(old->commit->object.sha1); old_desc = sha1_to_hex(old->commit->object.sha1);
@ -738,8 +735,7 @@ no_reference:
} }
if (opts.new_branch) { if (opts.new_branch) {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
strbuf_addstr(&buf, "refs/heads/"); strbuf_addstr(&buf, "refs/heads/");
strbuf_addstr(&buf, opts.new_branch); strbuf_addstr(&buf, opts.new_branch);
if (!get_sha1(buf.buf, rev)) if (!get_sha1(buf.buf, rev))

View File

@ -31,11 +31,11 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
int i; int i;
int show_only = 0, remove_directories = 0, quiet = 0, ignored = 0; int show_only = 0, remove_directories = 0, quiet = 0, ignored = 0;
int ignored_only = 0, baselen = 0, config_set = 0, errors = 0; int ignored_only = 0, baselen = 0, config_set = 0, errors = 0;
struct strbuf directory; struct strbuf directory = STRBUF_INIT;
struct dir_struct dir; struct dir_struct dir;
const char *path, *base; const char *path, *base;
static const char **pathspec; static const char **pathspec;
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
const char *qname; const char *qname;
char *seen = NULL; char *seen = NULL;
struct option options[] = { struct option options[] = {
@ -58,7 +58,6 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, options, builtin_clean_usage, 0); argc = parse_options(argc, argv, options, builtin_clean_usage, 0);
strbuf_init(&buf, 0);
memset(&dir, 0, sizeof(dir)); memset(&dir, 0, sizeof(dir));
if (ignored_only) if (ignored_only)
dir.show_ignored = 1; dir.show_ignored = 1;
@ -88,7 +87,6 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
if (baselen) if (baselen)
path = base = xmemdupz(*pathspec, baselen); path = base = xmemdupz(*pathspec, baselen);
read_directory(&dir, path, base, baselen, pathspec); read_directory(&dir, path, base, baselen, pathspec);
strbuf_init(&directory, 0);
if (pathspec) if (pathspec)
seen = xmalloc(argc > 0 ? argc : 1); seen = xmalloc(argc > 0 ? argc : 1);

View File

@ -264,10 +264,9 @@ pid_t junk_pid;
static void remove_junk(void) static void remove_junk(void)
{ {
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
if (getpid() != junk_pid) if (getpid() != junk_pid)
return; return;
strbuf_init(&sb, 0);
if (junk_git_dir) { if (junk_git_dir) {
strbuf_addstr(&sb, junk_git_dir); strbuf_addstr(&sb, junk_git_dir);
remove_dir_recursively(&sb, 0); remove_dir_recursively(&sb, 0);
@ -354,7 +353,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
char *path, *dir; char *path, *dir;
const struct ref *refs, *head_points_at, *remote_head, *mapped_refs; const struct ref *refs, *head_points_at, *remote_head, *mapped_refs;
char branch_top[256], key[256], value[256]; char branch_top[256], key[256], value[256];
struct strbuf reflog_msg; struct strbuf reflog_msg = STRBUF_INIT;
struct transport *transport = NULL; struct transport *transport = NULL;
char *src_ref_prefix = "refs/heads/"; char *src_ref_prefix = "refs/heads/";
@ -404,7 +403,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
if (!stat(dir, &buf)) if (!stat(dir, &buf))
die("destination directory '%s' already exists.", dir); die("destination directory '%s' already exists.", dir);
strbuf_init(&reflog_msg, 0);
strbuf_addf(&reflog_msg, "clone: from %s", repo); strbuf_addf(&reflog_msg, "clone: from %s", repo);
if (option_bare) if (option_bare)
@ -526,7 +524,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
create_symref("HEAD", head_points_at->name, NULL); create_symref("HEAD", head_points_at->name, NULL);
if (!option_bare) { if (!option_bare) {
struct strbuf head_ref; struct strbuf head_ref = STRBUF_INIT;
const char *head = head_points_at->name; const char *head = head_points_at->name;
if (!prefixcmp(head, "refs/heads/")) if (!prefixcmp(head, "refs/heads/"))
@ -539,7 +537,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
head_points_at->old_sha1, head_points_at->old_sha1,
NULL, 0, DIE_ON_ERR); NULL, 0, DIE_ON_ERR);
strbuf_init(&head_ref, 0);
strbuf_addstr(&head_ref, branch_top); strbuf_addstr(&head_ref, branch_top);
strbuf_addstr(&head_ref, "HEAD"); strbuf_addstr(&head_ref, "HEAD");

View File

@ -448,7 +448,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix)
{ {
struct stat statbuf; struct stat statbuf;
int commitable, saved_color_setting; int commitable, saved_color_setting;
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
char *buffer; char *buffer;
FILE *fp; FILE *fp;
const char *hook_arg1 = NULL; const char *hook_arg1 = NULL;
@ -458,7 +458,6 @@ static int prepare_to_commit(const char *index_file, const char *prefix)
if (!no_verify && run_hook(index_file, "pre-commit", NULL)) if (!no_verify && run_hook(index_file, "pre-commit", NULL))
return 0; return 0;
strbuf_init(&sb, 0);
if (message.len) { if (message.len) {
strbuf_addbuf(&sb, &message); strbuf_addbuf(&sb, &message);
hook_arg1 = "message"; hook_arg1 = "message";
@ -511,10 +510,9 @@ static int prepare_to_commit(const char *index_file, const char *prefix)
stripspace(&sb, 0); stripspace(&sb, 0);
if (signoff) { if (signoff) {
struct strbuf sob; struct strbuf sob = STRBUF_INIT;
int i; int i;
strbuf_init(&sob, 0);
strbuf_addstr(&sob, sign_off_header); strbuf_addstr(&sob, sign_off_header);
strbuf_addstr(&sob, fmt_name(getenv("GIT_COMMITTER_NAME"), strbuf_addstr(&sob, fmt_name(getenv("GIT_COMMITTER_NAME"),
getenv("GIT_COMMITTER_EMAIL"))); getenv("GIT_COMMITTER_EMAIL")));
@ -672,7 +670,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix)
*/ */
static int message_is_empty(struct strbuf *sb) static int message_is_empty(struct strbuf *sb)
{ {
struct strbuf tmpl; struct strbuf tmpl = STRBUF_INIT;
const char *nl; const char *nl;
int eol, i, start = 0; int eol, i, start = 0;
@ -680,7 +678,6 @@ static int message_is_empty(struct strbuf *sb)
return 0; return 0;
/* See if the template is just a prefix of the message. */ /* See if the template is just a prefix of the message. */
strbuf_init(&tmpl, 0);
if (template_file && strbuf_read_file(&tmpl, template_file, 0) > 0) { if (template_file && strbuf_read_file(&tmpl, template_file, 0) > 0) {
stripspace(&tmpl, cleanup_mode == CLEANUP_ALL); stripspace(&tmpl, cleanup_mode == CLEANUP_ALL);
if (start + tmpl.len <= sb->len && if (start + tmpl.len <= sb->len &&
@ -931,7 +928,7 @@ static const char commit_utf8_warn[] =
int cmd_commit(int argc, const char **argv, const char *prefix) int cmd_commit(int argc, const char **argv, const char *prefix)
{ {
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
const char *index_file, *reflog_msg; const char *index_file, *reflog_msg;
char *nl, *p; char *nl, *p;
unsigned char commit_sha1[20]; unsigned char commit_sha1[20];
@ -966,12 +963,11 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
for (c = commit->parents; c; c = c->next) for (c = commit->parents; c; c = c->next)
pptr = &commit_list_insert(c->item, pptr)->next; pptr = &commit_list_insert(c->item, pptr)->next;
} else if (in_merge) { } else if (in_merge) {
struct strbuf m; struct strbuf m = STRBUF_INIT;
FILE *fp; FILE *fp;
reflog_msg = "commit (merge)"; reflog_msg = "commit (merge)";
pptr = &commit_list_insert(lookup_commit(head_sha1), pptr)->next; pptr = &commit_list_insert(lookup_commit(head_sha1), pptr)->next;
strbuf_init(&m, 0);
fp = fopen(git_path("MERGE_HEAD"), "r"); fp = fopen(git_path("MERGE_HEAD"), "r");
if (fp == NULL) if (fp == NULL)
die("could not open %s for reading: %s", die("could not open %s for reading: %s",
@ -991,7 +987,6 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
parents = reduce_heads(parents); parents = reduce_heads(parents);
/* Finally, get the commit message */ /* Finally, get the commit message */
strbuf_init(&sb, 0);
if (strbuf_read_file(&sb, git_path(commit_editmsg), 0) < 0) { if (strbuf_read_file(&sb, git_path(commit_editmsg), 0) < 0) {
rollback_index_files(); rollback_index_files();
die("could not read commit message"); die("could not read commit message");

View File

@ -5,8 +5,7 @@
static char *get_stdin(void) static char *get_stdin(void)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
if (strbuf_read(&buf, 0, 1024) < 0) { if (strbuf_read(&buf, 0, 1024) < 0) {
die("error reading standard input: %s", strerror(errno)); die("error reading standard input: %s", strerror(errno));
} }

View File

@ -358,7 +358,7 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)
}; };
FILE *in = stdin; FILE *in = stdin;
struct strbuf input, output; struct strbuf input = STRBUF_INIT, output = STRBUF_INIT;
int ret; int ret;
git_config(fmt_merge_msg_config, NULL); git_config(fmt_merge_msg_config, NULL);
@ -372,10 +372,8 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)
die("cannot open %s", inpath); die("cannot open %s", inpath);
} }
strbuf_init(&input, 0);
if (strbuf_read(&input, fileno(in), 0) < 0) if (strbuf_read(&input, fileno(in), 0) < 0)
die("could not read input file %s", strerror(errno)); die("could not read input file %s", strerror(errno));
strbuf_init(&output, 0);
ret = fmt_merge_msg(merge_summary, &input, &output); ret = fmt_merge_msg(merge_summary, &input, &output);
if (ret) if (ret)

View File

@ -322,11 +322,9 @@ static const char *cmd_to_page(const char *git_cmd)
static void setup_man_path(void) static void setup_man_path(void)
{ {
struct strbuf new_path; struct strbuf new_path = STRBUF_INIT;
const char *old_path = getenv("MANPATH"); const char *old_path = getenv("MANPATH");
strbuf_init(&new_path, 0);
/* We should always put ':' after our path. If there is no /* We should always put ':' after our path. If there is no
* old_path, the ':' at the end will let 'man' to try * old_path, the ':' at the end will let 'man' to try
* system-wide paths after ours to find the manual page. If * system-wide paths after ours to find the manual page. If

View File

@ -628,10 +628,9 @@ static void gen_message_id(struct rev_info *info, char *base)
const char *committer = git_committer_info(IDENT_WARN_ON_NO_NAME); const char *committer = git_committer_info(IDENT_WARN_ON_NO_NAME);
const char *email_start = strrchr(committer, '<'); const char *email_start = strrchr(committer, '<');
const char *email_end = strrchr(committer, '>'); const char *email_end = strrchr(committer, '>');
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
if (!email_start || !email_end || email_start > email_end - 1) if (!email_start || !email_end || email_start > email_end - 1)
die("Could not extract email from committer identity."); die("Could not extract email from committer identity.");
strbuf_init(&buf, 0);
strbuf_addf(&buf, "%s.%lu.git.%.*s", base, strbuf_addf(&buf, "%s.%lu.git.%.*s", base,
(unsigned long) time(NULL), (unsigned long) time(NULL),
(int)(email_end - email_start - 1), email_start + 1); (int)(email_end - email_start - 1), email_start + 1);
@ -650,7 +649,7 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
const char *msg; const char *msg;
const char *extra_headers = rev->extra_headers; const char *extra_headers = rev->extra_headers;
struct shortlog log; struct shortlog log;
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
int i; int i;
const char *encoding = "utf-8"; const char *encoding = "utf-8";
struct diff_options opts; struct diff_options opts;
@ -671,7 +670,6 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
committer = git_committer_info(0); committer = git_committer_info(0);
msg = body; msg = body;
strbuf_init(&sb, 0);
pp_user_info(NULL, CMIT_FMT_EMAIL, &sb, committer, DATE_RFC2822, pp_user_info(NULL, CMIT_FMT_EMAIL, &sb, committer, DATE_RFC2822,
encoding); encoding);
pp_title_line(CMIT_FMT_EMAIL, &msg, &sb, subject_start, extra_headers, pp_title_line(CMIT_FMT_EMAIL, &msg, &sb, subject_start, extra_headers,
@ -753,7 +751,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
const char *in_reply_to = NULL; const char *in_reply_to = NULL;
struct patch_ids ids; struct patch_ids ids;
char *add_signoff = NULL; char *add_signoff = NULL;
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
git_config(git_format_config, NULL); git_config(git_format_config, NULL);
init_revisions(&rev, prefix); init_revisions(&rev, prefix);
@ -861,8 +859,6 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
} }
argc = j; argc = j;
strbuf_init(&buf, 0);
for (i = 0; i < extra_hdr_nr; i++) { for (i = 0; i < extra_hdr_nr; i++) {
strbuf_addstr(&buf, extra_hdr[i]); strbuf_addstr(&buf, extra_hdr[i]);
strbuf_addch(&buf, '\n'); strbuf_addch(&buf, '\n');
@ -1139,8 +1135,7 @@ int cmd_cherry(int argc, const char **argv, const char *prefix)
sign = '-'; sign = '-';
if (verbose) { if (verbose) {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
pretty_print_commit(CMIT_FMT_ONELINE, commit, pretty_print_commit(CMIT_FMT_ONELINE, commit,
&buf, 0, NULL, NULL, 0, 0); &buf, 0, NULL, NULL, 0, 0);
printf("%c %s %s\n", sign, printf("%c %s %s\n", sign,

View File

@ -226,7 +226,7 @@ static void reset_hard(unsigned const char *sha1, int verbose)
static void restore_state(void) static void restore_state(void)
{ {
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
const char *args[] = { "stash", "apply", NULL, NULL }; const char *args[] = { "stash", "apply", NULL, NULL };
if (is_null_sha1(stash)) if (is_null_sha1(stash))
@ -234,7 +234,6 @@ static void restore_state(void)
reset_hard(head, 1); reset_hard(head, 1);
strbuf_init(&sb, 0);
args[2] = sha1_to_hex(stash); args[2] = sha1_to_hex(stash);
/* /*
@ -258,7 +257,7 @@ static void squash_message(void)
{ {
struct rev_info rev; struct rev_info rev;
struct commit *commit; struct commit *commit;
struct strbuf out; struct strbuf out = STRBUF_INIT;
struct commit_list *j; struct commit_list *j;
int fd; int fd;
@ -282,7 +281,6 @@ static void squash_message(void)
if (prepare_revision_walk(&rev)) if (prepare_revision_walk(&rev))
die("revision walk setup failed"); die("revision walk setup failed");
strbuf_init(&out, 0);
strbuf_addstr(&out, "Squashed commit of the following:\n"); strbuf_addstr(&out, "Squashed commit of the following:\n");
while ((commit = get_revision(&rev)) != NULL) { while ((commit = get_revision(&rev)) != NULL) {
strbuf_addch(&out, '\n'); strbuf_addch(&out, '\n');
@ -327,9 +325,8 @@ static int run_hook(const char *name)
static void finish(const unsigned char *new_head, const char *msg) static void finish(const unsigned char *new_head, const char *msg)
{ {
struct strbuf reflog_message; struct strbuf reflog_message = STRBUF_INIT;
strbuf_init(&reflog_message, 0);
if (!msg) if (!msg)
strbuf_addstr(&reflog_message, getenv("GIT_REFLOG_ACTION")); strbuf_addstr(&reflog_message, getenv("GIT_REFLOG_ACTION"));
else { else {
@ -380,7 +377,7 @@ static void merge_name(const char *remote, struct strbuf *msg)
{ {
struct object *remote_head; struct object *remote_head;
unsigned char branch_head[20], buf_sha[20]; unsigned char branch_head[20], buf_sha[20];
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
const char *ptr; const char *ptr;
int len, early; int len, early;
@ -389,7 +386,6 @@ static void merge_name(const char *remote, struct strbuf *msg)
if (!remote_head) if (!remote_head)
die("'%s' does not point to a commit", remote); die("'%s' does not point to a commit", remote);
strbuf_init(&buf, 0);
strbuf_addstr(&buf, "refs/heads/"); strbuf_addstr(&buf, "refs/heads/");
strbuf_addstr(&buf, remote); strbuf_addstr(&buf, remote);
resolve_ref(buf.buf, branch_head, 0, 0); resolve_ref(buf.buf, branch_head, 0, 0);
@ -444,10 +440,9 @@ static void merge_name(const char *remote, struct strbuf *msg)
if (!strcmp(remote, "FETCH_HEAD") && if (!strcmp(remote, "FETCH_HEAD") &&
!access(git_path("FETCH_HEAD"), R_OK)) { !access(git_path("FETCH_HEAD"), R_OK)) {
FILE *fp; FILE *fp;
struct strbuf line; struct strbuf line = STRBUF_INIT;
char *ptr; char *ptr;
strbuf_init(&line, 0);
fp = fopen(git_path("FETCH_HEAD"), "r"); fp = fopen(git_path("FETCH_HEAD"), "r");
if (!fp) if (!fp)
die("could not open %s for reading: %s", die("could not open %s for reading: %s",
@ -545,7 +540,7 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
const char **args; const char **args;
int i = 0, ret; int i = 0, ret;
struct commit_list *j; struct commit_list *j;
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
int index_fd; int index_fd;
struct lock_file *lock = xcalloc(1, sizeof(struct lock_file)); struct lock_file *lock = xcalloc(1, sizeof(struct lock_file));
@ -592,7 +587,6 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
} else { } else {
args = xmalloc((4 + commit_list_count(common) + args = xmalloc((4 + commit_list_count(common) +
commit_list_count(remoteheads)) * sizeof(char *)); commit_list_count(remoteheads)) * sizeof(char *));
strbuf_init(&buf, 0);
strbuf_addf(&buf, "merge-%s", strategy); strbuf_addf(&buf, "merge-%s", strategy);
args[i++] = buf.buf; args[i++] = buf.buf;
for (j = common; j; j = j->next) for (j = common; j; j = j->next)
@ -847,7 +841,7 @@ static int evaluate_result(void)
int cmd_merge(int argc, const char **argv, const char *prefix) int cmd_merge(int argc, const char **argv, const char *prefix)
{ {
unsigned char result_tree[20]; unsigned char result_tree[20];
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
const char *head_arg; const char *head_arg;
int flag, head_invalid = 0, i; int flag, head_invalid = 0, i;
int best_cnt = -1, merge_was_ok = 0, automerge_was_ok = 0; int best_cnt = -1, merge_was_ok = 0, automerge_was_ok = 0;
@ -896,7 +890,6 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
* Traditional format never would have "-m" so it is an * Traditional format never would have "-m" so it is an
* additional safety measure to check for it. * additional safety measure to check for it.
*/ */
strbuf_init(&buf, 0);
if (!have_message && is_old_style_invocation(argc, argv)) { if (!have_message && is_old_style_invocation(argc, argv)) {
strbuf_addstr(&merge_msg, argv[0]); strbuf_addstr(&merge_msg, argv[0]);
@ -926,7 +919,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
reset_hard(remote_head->sha1, 0); reset_hard(remote_head->sha1, 0);
return 0; return 0;
} else { } else {
struct strbuf msg; struct strbuf msg = STRBUF_INIT;
/* We are invoked directly as the first-class UI. */ /* We are invoked directly as the first-class UI. */
head_arg = "HEAD"; head_arg = "HEAD";
@ -939,7 +932,6 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
* codepath so we discard the error in this * codepath so we discard the error in this
* loop. * loop.
*/ */
strbuf_init(&msg, 0);
for (i = 0; i < argc; i++) for (i = 0; i < argc; i++)
merge_name(argv[i], &msg); merge_name(argv[i], &msg);
fmt_merge_msg(option_log, &msg, &merge_msg); fmt_merge_msg(option_log, &msg, &merge_msg);
@ -1014,7 +1006,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
!common->next && !common->next &&
!hashcmp(common->item->object.sha1, head)) { !hashcmp(common->item->object.sha1, head)) {
/* Again the most common case of merging one remote. */ /* Again the most common case of merging one remote. */
struct strbuf msg; struct strbuf msg = STRBUF_INIT;
struct object *o; struct object *o;
char hex[41]; char hex[41];
@ -1024,7 +1016,6 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
hex, hex,
find_unique_abbrev(remoteheads->item->object.sha1, find_unique_abbrev(remoteheads->item->object.sha1,
DEFAULT_ABBREV)); DEFAULT_ABBREV));
strbuf_init(&msg, 0);
strbuf_addstr(&msg, "Fast forward"); strbuf_addstr(&msg, "Fast forward");
if (have_message) if (have_message)
strbuf_addstr(&msg, strbuf_addstr(&msg,

View File

@ -54,7 +54,7 @@ static int add(int argc, const char **argv)
struct string_list track = { NULL, 0, 0 }; struct string_list track = { NULL, 0, 0 };
const char *master = NULL; const char *master = NULL;
struct remote *remote; struct remote *remote;
struct strbuf buf, buf2; struct strbuf buf = STRBUF_INIT, buf2 = STRBUF_INIT;
const char *name, *url; const char *name, *url;
int i; int i;
@ -81,9 +81,6 @@ static int add(int argc, const char **argv)
remote->fetch_refspec_nr)) remote->fetch_refspec_nr))
die("remote %s already exists.", name); die("remote %s already exists.", name);
strbuf_init(&buf, 0);
strbuf_init(&buf2, 0);
strbuf_addf(&buf2, "refs/heads/test:refs/remotes/%s/test", name); strbuf_addf(&buf2, "refs/heads/test:refs/remotes/%s/test", name);
if (!valid_fetch_refspec(buf2.buf)) if (!valid_fetch_refspec(buf2.buf))
die("'%s' is not a valid remote name", name); die("'%s' is not a valid remote name", name);
@ -352,7 +349,7 @@ static int rm(int argc, const char **argv)
OPT_END() OPT_END()
}; };
struct remote *remote; struct remote *remote;
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
struct known_remotes known_remotes = { NULL, NULL }; struct known_remotes known_remotes = { NULL, NULL };
struct string_list branches = { NULL, 0, 0, 1 }; struct string_list branches = { NULL, 0, 0, 1 };
struct branches_for_remote cb_data = { NULL, &branches, &known_remotes }; struct branches_for_remote cb_data = { NULL, &branches, &known_remotes };
@ -368,7 +365,6 @@ static int rm(int argc, const char **argv)
known_remotes.to_delete = remote; known_remotes.to_delete = remote;
for_each_remote(add_known_remote, &known_remotes); for_each_remote(add_known_remote, &known_remotes);
strbuf_init(&buf, 0);
strbuf_addf(&buf, "remote.%s", remote->name); strbuf_addf(&buf, "remote.%s", remote->name);
if (git_config_rename_section(buf.buf, NULL) < 1) if (git_config_rename_section(buf.buf, NULL) < 1)
return error("Could not remove config section '%s'", buf.buf); return error("Could not remove config section '%s'", buf.buf);

View File

@ -107,8 +107,7 @@ static void show_commit(struct commit *commit)
putchar('\n'); putchar('\n');
if (revs.verbose_header && commit->buffer) { if (revs.verbose_header && commit->buffer) {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
pretty_print_commit(revs.commit_format, commit, pretty_print_commit(revs.commit_format, commit,
&buf, revs.abbrev, NULL, NULL, &buf, revs.abbrev, NULL, NULL,
revs.date_mode, 0); revs.date_mode, 0);

View File

@ -307,19 +307,17 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
OPT_END(), OPT_END(),
}; };
struct strbuf sb, parsed; struct strbuf sb = STRBUF_INIT, parsed = STRBUF_INIT;
const char **usage = NULL; const char **usage = NULL;
struct option *opts = NULL; struct option *opts = NULL;
int onb = 0, osz = 0, unb = 0, usz = 0; int onb = 0, osz = 0, unb = 0, usz = 0;
strbuf_init(&parsed, 0);
strbuf_addstr(&parsed, "set --"); strbuf_addstr(&parsed, "set --");
argc = parse_options(argc, argv, parseopt_opts, parseopt_usage, argc = parse_options(argc, argv, parseopt_opts, parseopt_usage,
PARSE_OPT_KEEP_DASHDASH); PARSE_OPT_KEEP_DASHDASH);
if (argc < 1 || strcmp(argv[0], "--")) if (argc < 1 || strcmp(argv[0], "--"))
usage_with_options(parseopt_usage, parseopt_opts); usage_with_options(parseopt_usage, parseopt_opts);
strbuf_init(&sb, 0);
/* get the usage up to the first line with a -- on it */ /* get the usage up to the first line with a -- on it */
for (;;) { for (;;) {
if (strbuf_getline(&sb, stdin, '\n') == EOF) if (strbuf_getline(&sb, stdin, '\n') == EOF)

View File

@ -259,11 +259,10 @@ static void join_revs(struct commit_list **list_p,
static void show_one_commit(struct commit *commit, int no_name) static void show_one_commit(struct commit *commit, int no_name)
{ {
struct strbuf pretty; struct strbuf pretty = STRBUF_INIT;
const char *pretty_str = "(unavailable)"; const char *pretty_str = "(unavailable)";
struct commit_name *name = commit->util; struct commit_name *name = commit->util;
strbuf_init(&pretty, 0);
if (commit->object.parsed) { if (commit->object.parsed) {
pretty_print_commit(CMIT_FMT_ONELINE, commit, pretty_print_commit(CMIT_FMT_ONELINE, commit,
&pretty, 0, NULL, NULL, 0, 0); &pretty, 0, NULL, NULL, 0, 0);

View File

@ -70,14 +70,13 @@ void stripspace(struct strbuf *sb, int skip_comments)
int cmd_stripspace(int argc, const char **argv, const char *prefix) int cmd_stripspace(int argc, const char **argv, const char *prefix)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
int strip_comments = 0; int strip_comments = 0;
if (argc > 1 && (!strcmp(argv[1], "-s") || if (argc > 1 && (!strcmp(argv[1], "-s") ||
!strcmp(argv[1], "--strip-comments"))) !strcmp(argv[1], "--strip-comments")))
strip_comments = 1; strip_comments = 1;
strbuf_init(&buf, 0);
if (strbuf_read(&buf, 0, 1024) < 0) if (strbuf_read(&buf, 0, 1024) < 0)
die("could not read the input"); die("could not read the input");

View File

@ -338,7 +338,7 @@ static int parse_msg_arg(const struct option *opt, const char *arg, int unset)
int cmd_tag(int argc, const char **argv, const char *prefix) int cmd_tag(int argc, const char **argv, const char *prefix)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
unsigned char object[20], prev[20]; unsigned char object[20], prev[20];
char ref[PATH_MAX]; char ref[PATH_MAX];
const char *object_ref, *tag; const char *object_ref, *tag;
@ -388,7 +388,6 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
if (verify) if (verify)
return for_each_tag_name(argv, verify_tag); return for_each_tag_name(argv, verify_tag);
strbuf_init(&buf, 0);
if (msg.given || msgfile) { if (msg.given || msgfile) {
if (msg.given && msgfile) if (msg.given && msgfile)
die("only one -F or -m option is allowed."); die("only one -F or -m option is allowed.");

View File

@ -297,11 +297,9 @@ static void update_one(const char *path, const char *prefix, int prefix_length)
static void read_index_info(int line_termination) static void read_index_info(int line_termination)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
struct strbuf uq; struct strbuf uq = STRBUF_INIT;
strbuf_init(&buf, 0);
strbuf_init(&uq, 0);
while (strbuf_getline(&buf, stdin, line_termination) != EOF) { while (strbuf_getline(&buf, stdin, line_termination) != EOF) {
char *ptr, *tab; char *ptr, *tab;
char *path_name; char *path_name;
@ -717,10 +715,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
free((char*)p); free((char*)p);
} }
if (read_from_stdin) { if (read_from_stdin) {
struct strbuf buf, nbuf; struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;
strbuf_init(&buf, 0);
strbuf_init(&nbuf, 0);
setup_work_tree(); setup_work_tree();
while (strbuf_getline(&buf, stdin, line_termination) != EOF) { while (strbuf_getline(&buf, stdin, line_termination) != EOF) {
const char *p; const char *p;

View File

@ -742,9 +742,8 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
/* If not a fake symlink, apply filters, e.g. autocrlf */ /* If not a fake symlink, apply filters, e.g. autocrlf */
if (is_file) { if (is_file) {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
if (convert_to_git(elem->path, result, len, &buf, safe_crlf)) { if (convert_to_git(elem->path, result, len, &buf, safe_crlf)) {
free(result); free(result);
result = strbuf_detach(&buf, &len); result = strbuf_detach(&buf, &len);

View File

@ -753,9 +753,8 @@ static int store_write_section(int fd, const char* key)
{ {
const char *dot; const char *dot;
int i, success; int i, success;
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
strbuf_init(&sb, 0);
dot = memchr(key, '.', store.baselen); dot = memchr(key, '.', store.baselen);
if (dot) { if (dot) {
strbuf_addf(&sb, "[%.*s \"", (int)(dot - key), key); strbuf_addf(&sb, "[%.*s \"", (int)(dot - key), key);
@ -780,7 +779,7 @@ static int store_write_pair(int fd, const char* key, const char* value)
int i, success; int i, success;
int length = strlen(key + store.baselen + 1); int length = strlen(key + store.baselen + 1);
const char *quote = ""; const char *quote = "";
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
/* /*
* Check to see if the value needs to be surrounded with a dq pair. * Check to see if the value needs to be surrounded with a dq pair.
@ -797,7 +796,6 @@ static int store_write_pair(int fd, const char* key, const char* value)
if (i && value[i - 1] == ' ') if (i && value[i - 1] == ' ')
quote = "\""; quote = "\"";
strbuf_init(&sb, 0);
strbuf_addf(&sb, "\t%.*s = %s", strbuf_addf(&sb, "\t%.*s = %s",
length, key + store.baselen + 1, quote); length, key + store.baselen + 1, quote);

View File

@ -281,7 +281,7 @@ static int apply_filter(const char *path, const char *src, size_t len,
* (child --> cmd) --> us * (child --> cmd) --> us
*/ */
int ret = 1; int ret = 1;
struct strbuf nbuf; struct strbuf nbuf = STRBUF_INIT;
struct async async; struct async async;
struct filter_params params; struct filter_params params;
@ -299,7 +299,6 @@ static int apply_filter(const char *path, const char *src, size_t len,
if (start_async(&async)) if (start_async(&async))
return 0; /* error was already reported */ return 0; /* error was already reported */
strbuf_init(&nbuf, 0);
if (strbuf_read(&nbuf, async.out, len) < 0) { if (strbuf_read(&nbuf, async.out, len) < 0) {
error("read from external filter %s failed", cmd); error("read from external filter %s failed", cmd);
ret = 0; ret = 0;

15
diff.c
View File

@ -217,9 +217,8 @@ static char *quote_two(const char *one, const char *two)
{ {
int need_one = quote_c_style(one, NULL, NULL, 1); int need_one = quote_c_style(one, NULL, NULL, 1);
int need_two = quote_c_style(two, NULL, NULL, 1); int need_two = quote_c_style(two, NULL, NULL, 1);
struct strbuf res; struct strbuf res = STRBUF_INIT;
strbuf_init(&res, 0);
if (need_one + need_two) { if (need_one + need_two) {
strbuf_addch(&res, '"'); strbuf_addch(&res, '"');
quote_c_style(one, &res, NULL, 1); quote_c_style(one, &res, NULL, 1);
@ -683,7 +682,7 @@ static char *pprint_rename(const char *a, const char *b)
{ {
const char *old = a; const char *old = a;
const char *new = b; const char *new = b;
struct strbuf name; struct strbuf name = STRBUF_INIT;
int pfx_length, sfx_length; int pfx_length, sfx_length;
int len_a = strlen(a); int len_a = strlen(a);
int len_b = strlen(b); int len_b = strlen(b);
@ -691,7 +690,6 @@ static char *pprint_rename(const char *a, const char *b)
int qlen_a = quote_c_style(a, NULL, NULL, 0); int qlen_a = quote_c_style(a, NULL, NULL, 0);
int qlen_b = quote_c_style(b, NULL, NULL, 0); int qlen_b = quote_c_style(b, NULL, NULL, 0);
strbuf_init(&name, 0);
if (qlen_a || qlen_b) { if (qlen_a || qlen_b) {
quote_c_style(a, &name, NULL, 0); quote_c_style(a, &name, NULL, 0);
strbuf_addstr(&name, " => "); strbuf_addstr(&name, " => ");
@ -834,8 +832,7 @@ static void fill_print_name(struct diffstat_file *file)
return; return;
if (!file->is_renamed) { if (!file->is_renamed) {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
if (quote_c_style(file->name, &buf, NULL, 0)) { if (quote_c_style(file->name, &buf, NULL, 0)) {
pname = strbuf_detach(&buf, NULL); pname = strbuf_detach(&buf, NULL);
} else { } else {
@ -1820,10 +1817,9 @@ static int reuse_worktree_file(const char *name, const unsigned char *sha1, int
static int populate_from_stdin(struct diff_filespec *s) static int populate_from_stdin(struct diff_filespec *s)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
size_t size = 0; size_t size = 0;
strbuf_init(&buf, 0);
if (strbuf_read(&buf, 0, 0) < 0) if (strbuf_read(&buf, 0, 0) < 0)
return error("error while reading from stdin %s", return error("error while reading from stdin %s",
strerror(errno)); strerror(errno));
@ -1875,7 +1871,7 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only)
if (!s->sha1_valid || if (!s->sha1_valid ||
reuse_worktree_file(s->path, s->sha1, 0)) { reuse_worktree_file(s->path, s->sha1, 0)) {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
struct stat st; struct stat st;
int fd; int fd;
@ -1918,7 +1914,6 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only)
/* /*
* Convert from working tree format to canonical git format * Convert from working tree format to canonical git format
*/ */
strbuf_init(&buf, 0);
if (convert_to_git(s->path, s->data, s->size, &buf, safe_crlf)) { if (convert_to_git(s->path, s->data, s->size, &buf, safe_crlf)) {
size_t size = 0; size_t size = 0;
munmap(s->data, s->size); munmap(s->data, s->size);

View File

@ -26,9 +26,8 @@ int launch_editor(const char *path, struct strbuf *buffer, const char *const *en
int i = 0; int i = 0;
int failed; int failed;
const char *args[6]; const char *args[6];
struct strbuf arg0; struct strbuf arg0 = STRBUF_INIT;
strbuf_init(&arg0, 0);
if (strcspn(editor, "$ \t'") != len) { if (strcspn(editor, "$ \t'") != len) {
/* there are specials */ /* there are specials */
strbuf_addf(&arg0, "%s \"$@\"", editor); strbuf_addf(&arg0, "%s \"$@\"", editor);

View File

@ -59,9 +59,7 @@ static void add_path(struct strbuf *out, const char *path)
void setup_path(void) void setup_path(void)
{ {
const char *old_path = getenv("PATH"); const char *old_path = getenv("PATH");
struct strbuf new_path; struct strbuf new_path = STRBUF_INIT;
strbuf_init(&new_path, 0);
add_path(&new_path, argv_exec_path); add_path(&new_path, argv_exec_path);
add_path(&new_path, getenv(EXEC_PATH_ENVIRONMENT)); add_path(&new_path, getenv(EXEC_PATH_ENVIRONMENT));

3
fsck.c
View File

@ -307,9 +307,8 @@ int fsck_error_function(struct object *obj, int type, const char *fmt, ...)
{ {
va_list ap; va_list ap;
int len; int len;
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
strbuf_init(&sb, 0);
strbuf_addf(&sb, "object %s:", obj->sha1?sha1_to_hex(obj->sha1):"(null)"); strbuf_addf(&sb, "object %s:", obj->sha1?sha1_to_hex(obj->sha1):"(null)");
va_start(ap, fmt); va_start(ap, fmt);

3
git.c
View File

@ -389,10 +389,9 @@ static void handle_internal_command(int argc, const char **argv)
static void execv_dashed_external(const char **argv) static void execv_dashed_external(const char **argv)
{ {
struct strbuf cmd; struct strbuf cmd = STRBUF_INIT;
const char *tmp; const char *tmp;
strbuf_init(&cmd, 0);
strbuf_addf(&cmd, "git-%s", argv[0]); strbuf_addf(&cmd, "git-%s", argv[0]);
/* /*

13
graph.c
View File

@ -1010,14 +1010,12 @@ int graph_is_commit_finished(struct git_graph const *graph)
void graph_show_commit(struct git_graph *graph) void graph_show_commit(struct git_graph *graph)
{ {
struct strbuf msgbuf; struct strbuf msgbuf = STRBUF_INIT;
int shown_commit_line = 0; int shown_commit_line = 0;
if (!graph) if (!graph)
return; return;
strbuf_init(&msgbuf, 0);
while (!shown_commit_line) { while (!shown_commit_line) {
shown_commit_line = graph_next_line(graph, &msgbuf); shown_commit_line = graph_next_line(graph, &msgbuf);
fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout); fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout);
@ -1031,12 +1029,11 @@ void graph_show_commit(struct git_graph *graph)
void graph_show_oneline(struct git_graph *graph) void graph_show_oneline(struct git_graph *graph)
{ {
struct strbuf msgbuf; struct strbuf msgbuf = STRBUF_INIT;
if (!graph) if (!graph)
return; return;
strbuf_init(&msgbuf, 0);
graph_next_line(graph, &msgbuf); graph_next_line(graph, &msgbuf);
fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout); fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout);
strbuf_release(&msgbuf); strbuf_release(&msgbuf);
@ -1044,12 +1041,11 @@ void graph_show_oneline(struct git_graph *graph)
void graph_show_padding(struct git_graph *graph) void graph_show_padding(struct git_graph *graph)
{ {
struct strbuf msgbuf; struct strbuf msgbuf = STRBUF_INIT;
if (!graph) if (!graph)
return; return;
strbuf_init(&msgbuf, 0);
graph_padding_line(graph, &msgbuf); graph_padding_line(graph, &msgbuf);
fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout); fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout);
strbuf_release(&msgbuf); strbuf_release(&msgbuf);
@ -1057,7 +1053,7 @@ void graph_show_padding(struct git_graph *graph)
int graph_show_remainder(struct git_graph *graph) int graph_show_remainder(struct git_graph *graph)
{ {
struct strbuf msgbuf; struct strbuf msgbuf = STRBUF_INIT;
int shown = 0; int shown = 0;
if (!graph) if (!graph)
@ -1066,7 +1062,6 @@ int graph_show_remainder(struct git_graph *graph)
if (graph_is_commit_finished(graph)) if (graph_is_commit_finished(graph))
return 0; return 0;
strbuf_init(&msgbuf, 0);
for (;;) { for (;;) {
graph_next_line(graph, &msgbuf); graph_next_line(graph, &msgbuf);
fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout); fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout);

View File

@ -34,10 +34,8 @@ static void hash_object(const char *path, const char *type, int write_object,
static void hash_stdin_paths(const char *type, int write_objects) static void hash_stdin_paths(const char *type, int write_objects)
{ {
struct strbuf buf, nbuf; struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;
strbuf_init(&buf, 0);
strbuf_init(&nbuf, 0);
while (strbuf_getline(&buf, stdin, '\n') != EOF) { while (strbuf_getline(&buf, stdin, '\n') != EOF) {
if (buf.buf[0] == '"') { if (buf.buf[0] == '"') {
strbuf_reset(&nbuf); strbuf_reset(&nbuf);

View File

@ -1266,10 +1266,9 @@ static int imap_store_msg(struct store *gctx, struct msg_data *data, int *uid)
static int read_message(FILE *f, struct msg_data *msg) static int read_message(FILE *f, struct msg_data *msg)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
memset(msg, 0, sizeof(*msg)); memset(msg, 0, sizeof(*msg));
strbuf_init(&buf, 0);
do { do {
if (strbuf_fread(&buf, CHUNKSIZE, f) <= 0) if (strbuf_fread(&buf, CHUNKSIZE, f) <= 0)

View File

@ -252,7 +252,7 @@ void log_write_email_headers(struct rev_info *opt, const char *name,
void show_log(struct rev_info *opt) void show_log(struct rev_info *opt)
{ {
struct strbuf msgbuf; struct strbuf msgbuf = STRBUF_INIT;
struct log_info *log = opt->loginfo; struct log_info *log = opt->loginfo;
struct commit *commit = log->commit, *parent = log->parent; struct commit *commit = log->commit, *parent = log->parent;
int abbrev = opt->diffopt.abbrev; int abbrev = opt->diffopt.abbrev;
@ -381,7 +381,6 @@ void show_log(struct rev_info *opt)
/* /*
* And then the pretty-printed message itself * And then the pretty-printed message itself
*/ */
strbuf_init(&msgbuf, 0);
if (need_8bit_cte >= 0) if (need_8bit_cte >= 0)
need_8bit_cte = has_non_ascii(opt->add_signoff); need_8bit_cte = has_non_ascii(opt->add_signoff);
pretty_print_commit(opt->commit_format, commit, &msgbuf, pretty_print_commit(opt->commit_format, commit, &msgbuf,

View File

@ -498,8 +498,7 @@ static void update_file_flags(struct merge_options *o,
if (type != OBJ_BLOB) if (type != OBJ_BLOB)
die("blob expected for %s '%s'", sha1_to_hex(sha), path); die("blob expected for %s '%s'", sha1_to_hex(sha), path);
if (S_ISREG(mode)) { if (S_ISREG(mode)) {
struct strbuf strbuf; struct strbuf strbuf = STRBUF_INIT;
strbuf_init(&strbuf, 0);
if (convert_to_working_tree(path, buf, size, &strbuf)) { if (convert_to_working_tree(path, buf, size, &strbuf)) {
free(buf); free(buf);
size = strbuf.len; size = strbuf.len;

View File

@ -153,7 +153,7 @@ static int verify_tag(char *buffer, unsigned long size)
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
unsigned char result_sha1[20]; unsigned char result_sha1[20];
if (argc != 1) if (argc != 1)
@ -161,7 +161,6 @@ int main(int argc, char **argv)
setup_git_directory(); setup_git_directory();
strbuf_init(&buf, 0);
if (strbuf_read(&buf, 0, 4096) < 0) { if (strbuf_read(&buf, 0, 4096) < 0) {
die("could not read from stdin"); die("could not read from stdin");
} }

View File

@ -65,8 +65,8 @@ static const char mktree_usage[] = "git-mktree [-z]";
int main(int ac, char **av) int main(int ac, char **av)
{ {
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
struct strbuf p_uq; struct strbuf p_uq = STRBUF_INIT;
unsigned char sha1[20]; unsigned char sha1[20];
int line_termination = '\n'; int line_termination = '\n';
@ -82,8 +82,6 @@ int main(int ac, char **av)
av++; av++;
} }
strbuf_init(&sb, 0);
strbuf_init(&p_uq, 0);
while (strbuf_getline(&sb, stdin, line_termination) != EOF) { while (strbuf_getline(&sb, stdin, line_termination) != EOF) {
char *ptr, *ntr; char *ptr, *ntr;
unsigned mode; unsigned mode;

View File

@ -234,7 +234,7 @@ static char *get_header(const struct commit *commit, const char *key)
static char *replace_encoding_header(char *buf, const char *encoding) static char *replace_encoding_header(char *buf, const char *encoding)
{ {
struct strbuf tmp; struct strbuf tmp = STRBUF_INIT;
size_t start, len; size_t start, len;
char *cp = buf; char *cp = buf;
@ -250,7 +250,6 @@ static char *replace_encoding_header(char *buf, const char *encoding)
return buf; /* should not happen but be defensive */ return buf; /* should not happen but be defensive */
len = cp + 1 - (buf + start); len = cp + 1 - (buf + start);
strbuf_init(&tmp, 0);
strbuf_attach(&tmp, buf, strlen(buf), strlen(buf) + 1); strbuf_attach(&tmp, buf, strlen(buf), strlen(buf) + 1);
if (is_encoding_utf8(encoding)) { if (is_encoding_utf8(encoding)) {
/* we have re-coded to UTF-8; drop the header */ /* we have re-coded to UTF-8; drop the header */

View File

@ -1467,9 +1467,8 @@ int write_index(const struct index_state *istate, int newfd)
/* Write extension data here */ /* Write extension data here */
if (istate->cache_tree) { if (istate->cache_tree) {
struct strbuf sb; struct strbuf sb = STRBUF_INIT;
strbuf_init(&sb, 0);
cache_tree_write(&sb, istate->cache_tree); cache_tree_write(&sb, istate->cache_tree);
err = write_index_ext_header(&c, newfd, CACHE_EXT_TREE, sb.len) < 0 err = write_index_ext_header(&c, newfd, CACHE_EXT_TREE, sb.len) < 0
|| ce_write(&c, newfd, sb.buf, sb.len) < 0; || ce_write(&c, newfd, sb.buf, sb.len) < 0;

View File

@ -245,7 +245,7 @@ static void read_branches_file(struct remote *remote)
{ {
const char *slash = strchr(remote->name, '/'); const char *slash = strchr(remote->name, '/');
char *frag; char *frag;
struct strbuf branch; struct strbuf branch = STRBUF_INIT;
int n = slash ? slash - remote->name : 1000; int n = slash ? slash - remote->name : 1000;
FILE *f = fopen(git_path("branches/%.*s", n, remote->name), "r"); FILE *f = fopen(git_path("branches/%.*s", n, remote->name), "r");
char *s, *p; char *s, *p;
@ -283,7 +283,6 @@ static void read_branches_file(struct remote *remote)
* #branch specified. The "master" (or specified) branch is * #branch specified. The "master" (or specified) branch is
* fetched and stored in the local branch of the same name. * fetched and stored in the local branch of the same name.
*/ */
strbuf_init(&branch, 0);
frag = strchr(p, '#'); frag = strchr(p, '#');
if (frag) { if (frag) {
*(frag++) = '\0'; *(frag++) = '\0';

View File

@ -79,7 +79,7 @@ static int handle_file(const char *path,
enum { enum {
RR_CONTEXT = 0, RR_SIDE_1, RR_SIDE_2, RR_ORIGINAL, RR_CONTEXT = 0, RR_SIDE_1, RR_SIDE_2, RR_ORIGINAL,
} hunk = RR_CONTEXT; } hunk = RR_CONTEXT;
struct strbuf one, two; struct strbuf one = STRBUF_INIT, two = STRBUF_INIT;
FILE *f = fopen(path, "r"); FILE *f = fopen(path, "r");
FILE *out = NULL; FILE *out = NULL;
@ -97,8 +97,6 @@ static int handle_file(const char *path,
if (sha1) if (sha1)
git_SHA1_Init(&ctx); git_SHA1_Init(&ctx);
strbuf_init(&one, 0);
strbuf_init(&two, 0);
while (fgets(buf, sizeof(buf), f)) { while (fgets(buf, sizeof(buf), f)) {
if (!prefixcmp(buf, "<<<<<<< ")) { if (!prefixcmp(buf, "<<<<<<< ")) {
if (hunk != RR_CONTEXT) if (hunk != RR_CONTEXT)

View File

@ -2386,8 +2386,7 @@ static int index_mem(unsigned char *sha1, void *buf, size_t size,
* Convert blobs to git internal format * Convert blobs to git internal format
*/ */
if ((type == OBJ_BLOB) && path) { if ((type == OBJ_BLOB) && path) {
struct strbuf nbuf; struct strbuf nbuf = STRBUF_INIT;
strbuf_init(&nbuf, 0);
if (convert_to_git(path, buf, size, &nbuf, if (convert_to_git(path, buf, size, &nbuf,
write_object ? safe_crlf : 0)) { write_object ? safe_crlf : 0)) {
buf = strbuf_detach(&nbuf, &size); buf = strbuf_detach(&nbuf, &size);
@ -2411,8 +2410,7 @@ int index_fd(unsigned char *sha1, int fd, struct stat *st, int write_object,
size_t size = xsize_t(st->st_size); size_t size = xsize_t(st->st_size);
if (!S_ISREG(st->st_mode)) { if (!S_ISREG(st->st_mode)) {
struct strbuf sbuf; struct strbuf sbuf = STRBUF_INIT;
strbuf_init(&sbuf, 0);
if (strbuf_read(&sbuf, fd, 4096) >= 0) if (strbuf_read(&sbuf, fd, 4096) >= 0)
ret = index_mem(sha1, sbuf.buf, sbuf.len, write_object, ret = index_mem(sha1, sbuf.buf, sbuf.len, write_object,
type, path); type, path);

View File

@ -215,9 +215,8 @@ static int mark_complete(const char *path, const unsigned char *sha1, int flag,
int walker_targets_stdin(char ***target, const char ***write_ref) int walker_targets_stdin(char ***target, const char ***write_ref)
{ {
int targets = 0, targets_alloc = 0; int targets = 0, targets_alloc = 0;
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
*target = NULL; *write_ref = NULL; *target = NULL; *write_ref = NULL;
strbuf_init(&buf, 0);
while (1) { while (1) {
char *rf_one = NULL; char *rf_one = NULL;
char *tg_one; char *tg_one;

3
ws.c
View File

@ -99,8 +99,7 @@ unsigned whitespace_rule(const char *pathname)
/* The returned string should be freed by the caller. */ /* The returned string should be freed by the caller. */
char *whitespace_error_string(unsigned ws) char *whitespace_error_string(unsigned ws)
{ {
struct strbuf err; struct strbuf err = STRBUF_INIT;
strbuf_init(&err, 0);
if (ws & WS_TRAILING_SPACE) if (ws & WS_TRAILING_SPACE)
strbuf_addstr(&err, "trailing whitespace"); strbuf_addstr(&err, "trailing whitespace");
if (ws & WS_SPACE_BEFORE_TAB) { if (ws & WS_SPACE_BEFORE_TAB) {

View File

@ -103,10 +103,8 @@ static void wt_status_print_filepair(struct wt_status *s,
{ {
const char *c = color(t); const char *c = color(t);
const char *one, *two; const char *one, *two;
struct strbuf onebuf, twobuf; struct strbuf onebuf = STRBUF_INIT, twobuf = STRBUF_INIT;
strbuf_init(&onebuf, 0);
strbuf_init(&twobuf, 0);
one = quote_path(p->one->path, -1, &onebuf, s->prefix); one = quote_path(p->one->path, -1, &onebuf, s->prefix);
two = quote_path(p->two->path, -1, &twobuf, s->prefix); two = quote_path(p->two->path, -1, &twobuf, s->prefix);
@ -190,9 +188,8 @@ static void wt_status_print_changed_cb(struct diff_queue_struct *q,
static void wt_status_print_initial(struct wt_status *s) static void wt_status_print_initial(struct wt_status *s)
{ {
int i; int i;
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
if (active_nr) { if (active_nr) {
s->commitable = 1; s->commitable = 1;
wt_status_print_cached_header(s); wt_status_print_cached_header(s);
@ -268,9 +265,8 @@ static void wt_status_print_untracked(struct wt_status *s)
struct dir_struct dir; struct dir_struct dir;
int i; int i;
int shown_header = 0; int shown_header = 0;
struct strbuf buf; struct strbuf buf = STRBUF_INIT;
strbuf_init(&buf, 0);
memset(&dir, 0, sizeof(dir)); memset(&dir, 0, sizeof(dir));
if (!s->untracked) { if (!s->untracked) {