зеркало из https://github.com/microsoft/git.git
move read_mmfile() into xdiff-interface
read_file() was a useful function if you want to work with the xdiff stuff, so it was renamed and put into a more central place. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
fa39b6b5b1
Коммит
7cab5883ff
|
@ -1,26 +1,10 @@
|
|||
#include "cache.h"
|
||||
#include "xdiff/xdiff.h"
|
||||
#include "xdiff-interface.h"
|
||||
|
||||
static const char merge_file_usage[] =
|
||||
"git merge-file [-p | --stdout] [-q | --quiet] [-L name1 [-L orig [-L name2]]] file1 orig_file file2";
|
||||
|
||||
static int read_file(mmfile_t *ptr, const char *filename)
|
||||
{
|
||||
struct stat st;
|
||||
FILE *f;
|
||||
|
||||
if (stat(filename, &st))
|
||||
return error("Could not stat %s", filename);
|
||||
if ((f = fopen(filename, "rb")) == NULL)
|
||||
return error("Could not open %s", filename);
|
||||
ptr->ptr = xmalloc(st.st_size);
|
||||
if (fread(ptr->ptr, st.st_size, 1, f) != 1)
|
||||
return error("Could not read %s", filename);
|
||||
fclose(f);
|
||||
ptr->size = st.st_size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cmd_merge_file(int argc, char **argv, char **envp)
|
||||
{
|
||||
char *names[3];
|
||||
|
@ -53,7 +37,7 @@ int cmd_merge_file(int argc, char **argv, char **envp)
|
|||
names[i] = argv[i + 1];
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
if (read_file(mmfs + i, argv[i + 1]))
|
||||
if (read_mmfile(mmfs + i, argv[i + 1]))
|
||||
return -1;
|
||||
|
||||
ret = xdl_merge(mmfs + 1, mmfs + 0, names[0], mmfs + 2, names[2],
|
||||
|
|
|
@ -102,3 +102,22 @@ int xdiff_outf(void *priv_, mmbuffer_t *mb, int nbuf)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int read_mmfile(mmfile_t *ptr, const char *filename)
|
||||
{
|
||||
struct stat st;
|
||||
FILE *f;
|
||||
|
||||
if (stat(filename, &st))
|
||||
return error("Could not stat %s", filename);
|
||||
if ((f = fopen(filename, "rb")) == NULL)
|
||||
return error("Could not open %s", filename);
|
||||
ptr->ptr = xmalloc(st.st_size);
|
||||
if (fread(ptr->ptr, st.st_size, 1, f) != 1)
|
||||
return error("Could not read %s", filename);
|
||||
fclose(f);
|
||||
ptr->size = st.st_size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -17,5 +17,6 @@ int xdiff_outf(void *priv_, mmbuffer_t *mb, int nbuf);
|
|||
int parse_hunk_header(char *line, int len,
|
||||
int *ob, int *on,
|
||||
int *nb, int *nn);
|
||||
int read_mmfile(mmfile_t *ptr, const char *filename);
|
||||
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче