@@ -90,7 +90,7 @@ static struct blame_origin *get_origin(struct commit *commit, const char *path)
9090
9191
9292
93- static void verify_working_tree_path (struct repository * repo ,
93+ static void verify_working_tree_path (struct repository * r ,
9494 struct commit * work_tree , const char * path )
9595{
9696 struct commit_list * parents ;
@@ -102,15 +102,15 @@ static void verify_working_tree_path(struct repository *repo,
102102 unsigned mode ;
103103
104104 if (!get_tree_entry (commit_oid , path , & blob_oid , & mode ) &&
105- oid_object_info (repo , & blob_oid , NULL ) == OBJ_BLOB )
105+ oid_object_info (r , & blob_oid , NULL ) == OBJ_BLOB )
106106 return ;
107107 }
108108
109- pos = index_name_pos (repo -> index , path , strlen (path ));
109+ pos = index_name_pos (r -> index , path , strlen (path ));
110110 if (pos >= 0 )
111111 ; /* path is in the index */
112- else if (-1 - pos < repo -> index -> cache_nr &&
113- !strcmp (repo -> index -> cache [-1 - pos ]-> name , path ))
112+ else if (-1 - pos < r -> index -> cache_nr &&
113+ !strcmp (r -> index -> cache [-1 - pos ]-> name , path ))
114114 ; /* path is in the index, unmerged */
115115 else
116116 die ("no such path '%s' in HEAD" , path );
@@ -166,7 +166,7 @@ static void set_commit_buffer_from_strbuf(struct commit *c, struct strbuf *sb)
166166 * Prepare a dummy commit that represents the work tree (or staged) item.
167167 * Note that annotating work tree item never works in the reverse.
168168 */
169- static struct commit * fake_working_tree_commit (struct repository * repo ,
169+ static struct commit * fake_working_tree_commit (struct repository * r ,
170170 struct diff_options * opt ,
171171 const char * path ,
172172 const char * contents_from )
@@ -183,7 +183,7 @@ static struct commit *fake_working_tree_commit(struct repository *repo,
183183 unsigned mode ;
184184 struct strbuf msg = STRBUF_INIT ;
185185
186- read_index (repo -> index );
186+ read_index (r -> index );
187187 time (& now );
188188 commit = alloc_commit_node (the_repository );
189189 commit -> object .parsed = 1 ;
@@ -195,7 +195,7 @@ static struct commit *fake_working_tree_commit(struct repository *repo,
195195
196196 parent_tail = append_parent (parent_tail , & head_oid );
197197 append_merge_parents (parent_tail );
198- verify_working_tree_path (repo , commit , path );
198+ verify_working_tree_path (r , commit , path );
199199
200200 origin = make_origin (commit , path );
201201
@@ -234,7 +234,7 @@ static struct commit *fake_working_tree_commit(struct repository *repo,
234234 switch (st .st_mode & S_IFMT ) {
235235 case S_IFREG :
236236 if (opt -> flags .allow_textconv &&
237- textconv_object (read_from , mode , & null_oid , 0 , & buf_ptr , & buf_len ))
237+ textconv_object (r , read_from , mode , & null_oid , 0 , & buf_ptr , & buf_len ))
238238 strbuf_attach (& buf , buf_ptr , buf_len , buf_len + 1 );
239239 else if (strbuf_read_file (& buf , read_from , st .st_size ) != st .st_size )
240240 die_errno ("cannot open or read '%s'" , read_from );
@@ -253,7 +253,7 @@ static struct commit *fake_working_tree_commit(struct repository *repo,
253253 if (strbuf_read (& buf , 0 , 0 ) < 0 )
254254 die_errno ("failed to read from stdin" );
255255 }
256- convert_to_git (repo -> index , path , buf .buf , buf .len , & buf , 0 );
256+ convert_to_git (r -> index , path , buf .buf , buf .len , & buf , 0 );
257257 origin -> file .ptr = buf .buf ;
258258 origin -> file .size = buf .len ;
259259 pretend_object_file (buf .buf , buf .len , OBJ_BLOB , & origin -> blob_oid );
@@ -264,28 +264,28 @@ static struct commit *fake_working_tree_commit(struct repository *repo,
264264 * bits; we are not going to write this index out -- we just
265265 * want to run "diff-index --cached".
266266 */
267- discard_index (repo -> index );
268- read_index (repo -> index );
267+ discard_index (r -> index );
268+ read_index (r -> index );
269269
270270 len = strlen (path );
271271 if (!mode ) {
272- int pos = index_name_pos (repo -> index , path , len );
272+ int pos = index_name_pos (r -> index , path , len );
273273 if (0 <= pos )
274- mode = repo -> index -> cache [pos ]-> ce_mode ;
274+ mode = r -> index -> cache [pos ]-> ce_mode ;
275275 else
276276 /* Let's not bother reading from HEAD tree */
277277 mode = S_IFREG | 0644 ;
278278 }
279- ce = make_empty_cache_entry (repo -> index , len );
279+ ce = make_empty_cache_entry (r -> index , len );
280280 oidcpy (& ce -> oid , & origin -> blob_oid );
281281 memcpy (ce -> name , path , len );
282282 ce -> ce_flags = create_ce_flags (0 );
283283 ce -> ce_namelen = len ;
284284 ce -> ce_mode = create_ce_mode (mode );
285- add_index_entry (repo -> index , ce ,
285+ add_index_entry (r -> index , ce ,
286286 ADD_CACHE_OK_TO_ADD | ADD_CACHE_OK_TO_REPLACE );
287287
288- cache_tree_invalidate_path (repo -> index , path );
288+ cache_tree_invalidate_path (r -> index , path );
289289
290290 return commit ;
291291}
@@ -318,7 +318,8 @@ static void fill_origin_blob(struct diff_options *opt,
318318
319319 (* num_read_blob )++ ;
320320 if (opt -> flags .allow_textconv &&
321- textconv_object (o -> path , o -> mode , & o -> blob_oid , 1 , & file -> ptr , & file_size ))
321+ textconv_object (opt -> repo , o -> path , o -> mode ,
322+ & o -> blob_oid , 1 , & file -> ptr , & file_size ))
322323 ;
323324 else
324325 file -> ptr = read_object_file (& o -> blob_oid , & type ,
@@ -520,14 +521,14 @@ static void queue_blames(struct blame_scoreboard *sb, struct blame_origin *porig
520521 *
521522 * This also fills origin->mode for corresponding tree path.
522523 */
523- static int fill_blob_sha1_and_mode (struct repository * repo ,
524+ static int fill_blob_sha1_and_mode (struct repository * r ,
524525 struct blame_origin * origin )
525526{
526527 if (!is_null_oid (& origin -> blob_oid ))
527528 return 0 ;
528529 if (get_tree_entry (& origin -> commit -> object .oid , origin -> path , & origin -> blob_oid , & origin -> mode ))
529530 goto error_out ;
530- if (oid_object_info (repo , & origin -> blob_oid , NULL ) != OBJ_BLOB )
531+ if (oid_object_info (r , & origin -> blob_oid , NULL ) != OBJ_BLOB )
531532 goto error_out ;
532533 return 0 ;
533534 error_out :
@@ -540,8 +541,9 @@ static int fill_blob_sha1_and_mode(struct repository *repo,
540541 * We have an origin -- check if the same path exists in the
541542 * parent and return an origin structure to represent it.
542543 */
543- static struct blame_origin * find_origin (struct commit * parent ,
544- struct blame_origin * origin )
544+ static struct blame_origin * find_origin (struct repository * r ,
545+ struct commit * parent ,
546+ struct blame_origin * origin )
545547{
546548 struct blame_origin * porigin ;
547549 struct diff_options diff_opts ;
@@ -561,7 +563,7 @@ static struct blame_origin *find_origin(struct commit *parent,
561563 * and origin first. Most of the time they are the
562564 * same and diff-tree is fairly efficient about this.
563565 */
564- diff_setup ( & diff_opts );
566+ repo_diff_setup ( r , & diff_opts );
565567 diff_opts .flags .recursive = 1 ;
566568 diff_opts .detect_rename = 0 ;
567569 diff_opts .output_format = DIFF_FORMAT_NO_OUTPUT ;
@@ -628,14 +630,15 @@ static struct blame_origin *find_origin(struct commit *parent,
628630 * We have an origin -- find the path that corresponds to it in its
629631 * parent and return an origin structure to represent it.
630632 */
631- static struct blame_origin * find_rename (struct commit * parent ,
632- struct blame_origin * origin )
633+ static struct blame_origin * find_rename (struct repository * r ,
634+ struct commit * parent ,
635+ struct blame_origin * origin )
633636{
634637 struct blame_origin * porigin = NULL ;
635638 struct diff_options diff_opts ;
636639 int i ;
637640
638- diff_setup ( & diff_opts );
641+ repo_diff_setup ( r , & diff_opts );
639642 diff_opts .flags .recursive = 1 ;
640643 diff_opts .detect_rename = DIFF_DETECT_RENAME ;
641644 diff_opts .output_format = DIFF_FORMAT_NO_OUTPUT ;
@@ -1259,7 +1262,7 @@ static void find_copy_in_parent(struct blame_scoreboard *sb,
12591262 if (!unblamed )
12601263 return ; /* nothing remains for this target */
12611264
1262- diff_setup ( & diff_opts );
1265+ repo_diff_setup ( sb -> repo , & diff_opts );
12631266 diff_opts .flags .recursive = 1 ;
12641267 diff_opts .output_format = DIFF_FORMAT_NO_OUTPUT ;
12651268
@@ -1441,7 +1444,7 @@ static void pass_blame(struct blame_scoreboard *sb, struct blame_origin *origin,
14411444 * common cases, then we look for renames in the second pass.
14421445 */
14431446 for (pass = 0 ; pass < 2 - sb -> no_whole_file_rename ; pass ++ ) {
1444- struct blame_origin * (* find )(struct commit * , struct blame_origin * );
1447+ struct blame_origin * (* find )(struct repository * , struct commit * , struct blame_origin * );
14451448 find = pass ? find_rename : find_origin ;
14461449
14471450 for (i = 0 , sg = first_scapegoat (revs , commit , sb -> reverse );
@@ -1454,7 +1457,7 @@ static void pass_blame(struct blame_scoreboard *sb, struct blame_origin *origin,
14541457 continue ;
14551458 if (parse_commit (p ))
14561459 continue ;
1457- porigin = find (p , origin );
1460+ porigin = find (sb -> repo , p , origin );
14581461 if (!porigin )
14591462 continue ;
14601463 if (oideq (& porigin -> blob_oid , & origin -> blob_oid )) {
@@ -1857,7 +1860,7 @@ void setup_scoreboard(struct blame_scoreboard *sb,
18571860 die (_ ("no such path %s in %s" ), path , final_commit_name );
18581861
18591862 if (sb -> revs -> diffopt .flags .allow_textconv &&
1860- textconv_object (path , o -> mode , & o -> blob_oid , 1 , (char * * ) & sb -> final_buf ,
1863+ textconv_object (sb -> repo , path , o -> mode , & o -> blob_oid , 1 , (char * * ) & sb -> final_buf ,
18611864 & sb -> final_buf_size ))
18621865 ;
18631866 else
0 commit comments