#include "blob.h"
#include "quote.h"
#include "parse-options.h"
+#include "exec_cmd.h"
static void hash_fd(int fd, const char *type, int write_object, const char *path)
{
int fd;
fd = open(path, O_RDONLY);
if (fd < 0)
- die("Cannot open %s", path);
+ die_errno("Cannot open '%s'", path);
hash_fd(fd, type, write_object, vpath);
}
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) {
if (buf.buf[0] == '"') {
strbuf_reset(&nbuf);
type = blob_type;
- git_config(git_default_config, NULL);
+ git_extract_argv0_path(argv[0]);
- argc = parse_options(argc, argv, hash_object_options, hash_object_usage, 0);
+ argc = parse_options(argc, argv, NULL, hash_object_options,
+ hash_object_usage, 0);
if (write_object) {
prefix = setup_git_directory();
vpath = prefix_filename(prefix, prefix_length, vpath);
}
+ git_config(git_default_config, NULL);
+
if (stdin_paths) {
if (hashstdin)
errstr = "Can't use --stdin-paths with --stdin";
}
if (errstr) {
- error (errstr);
+ error("%s", errstr);
usage_with_options(hash_object_usage, hash_object_options);
}