blame: move textconv_object with related functions
textconv_object is used in places other than blame.c and should be moved to a more appropriate location. Other textconv related functions are located in diff.c so that seems as good a place as any. Signed-off-by: Jeff Smith <whydoubt@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b84bc9c367
commit
3a35cb2ea8
@ -25,8 +25,6 @@ struct fmt_merge_msg_opts {
|
|||||||
extern int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
|
extern int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
|
||||||
struct fmt_merge_msg_opts *);
|
struct fmt_merge_msg_opts *);
|
||||||
|
|
||||||
extern int textconv_object(const char *path, unsigned mode, const struct object_id *oid, int oid_valid, char **buf, unsigned long *buf_size);
|
|
||||||
|
|
||||||
extern int is_builtin(const char *s);
|
extern int is_builtin(const char *s);
|
||||||
|
|
||||||
extern int cmd_add(int argc, const char **argv, const char *prefix);
|
extern int cmd_add(int argc, const char **argv, const char *prefix);
|
||||||
|
@ -146,34 +146,6 @@ static int diff_hunks(mmfile_t *file_a, mmfile_t *file_b,
|
|||||||
return xdi_diff(file_a, file_b, &xpp, &xecfg, &ecb);
|
return xdi_diff(file_a, file_b, &xpp, &xecfg, &ecb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Prepare diff_filespec and convert it using diff textconv API
|
|
||||||
* if the textconv driver exists.
|
|
||||||
* Return 1 if the conversion succeeds, 0 otherwise.
|
|
||||||
*/
|
|
||||||
int textconv_object(const char *path,
|
|
||||||
unsigned mode,
|
|
||||||
const struct object_id *oid,
|
|
||||||
int oid_valid,
|
|
||||||
char **buf,
|
|
||||||
unsigned long *buf_size)
|
|
||||||
{
|
|
||||||
struct diff_filespec *df;
|
|
||||||
struct userdiff_driver *textconv;
|
|
||||||
|
|
||||||
df = alloc_filespec(path);
|
|
||||||
fill_filespec(df, oid->hash, oid_valid, mode);
|
|
||||||
textconv = get_textconv(df);
|
|
||||||
if (!textconv) {
|
|
||||||
free_filespec(df);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
*buf_size = fill_textconv(textconv, df, buf);
|
|
||||||
free_filespec(df);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Given an origin, prepare mmfile_t structure to be used by the
|
* Given an origin, prepare mmfile_t structure to be used by the
|
||||||
* diff machinery
|
* diff machinery
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
|
#include "diff.h"
|
||||||
#include "parse-options.h"
|
#include "parse-options.h"
|
||||||
#include "userdiff.h"
|
#include "userdiff.h"
|
||||||
#include "streaming.h"
|
#include "streaming.h"
|
||||||
|
23
diff.c
23
diff.c
@ -5270,6 +5270,29 @@ size_t fill_textconv(struct userdiff_driver *driver,
|
|||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int textconv_object(const char *path,
|
||||||
|
unsigned mode,
|
||||||
|
const struct object_id *oid,
|
||||||
|
int oid_valid,
|
||||||
|
char **buf,
|
||||||
|
unsigned long *buf_size)
|
||||||
|
{
|
||||||
|
struct diff_filespec *df;
|
||||||
|
struct userdiff_driver *textconv;
|
||||||
|
|
||||||
|
df = alloc_filespec(path);
|
||||||
|
fill_filespec(df, oid->hash, oid_valid, mode);
|
||||||
|
textconv = get_textconv(df);
|
||||||
|
if (!textconv) {
|
||||||
|
free_filespec(df);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
*buf_size = fill_textconv(textconv, df, buf);
|
||||||
|
free_filespec(df);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
void setup_diff_pager(struct diff_options *opt)
|
void setup_diff_pager(struct diff_options *opt)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
7
diff.h
7
diff.h
@ -385,6 +385,13 @@ extern size_t fill_textconv(struct userdiff_driver *driver,
|
|||||||
*/
|
*/
|
||||||
extern struct userdiff_driver *get_textconv(struct diff_filespec *one);
|
extern struct userdiff_driver *get_textconv(struct diff_filespec *one);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Prepare diff_filespec and convert it using diff textconv API
|
||||||
|
* if the textconv driver exists.
|
||||||
|
* Return 1 if the conversion succeeds, 0 otherwise.
|
||||||
|
*/
|
||||||
|
extern int textconv_object(const char *path, unsigned mode, const struct object_id *oid, int oid_valid, char **buf, unsigned long *buf_size);
|
||||||
|
|
||||||
extern int parse_rename_score(const char **cp_p);
|
extern int parse_rename_score(const char **cp_p);
|
||||||
|
|
||||||
extern long parse_algorithm_value(const char *value);
|
extern long parse_algorithm_value(const char *value);
|
||||||
|
Loading…
Reference in New Issue
Block a user