remove_or_warn() is only used by entry.c and apply.c, but it is
currently declared and defined in wrapper.{h,c}, so it has a scope much
greater than it needs. This needlessly large scope also causes wrapper.c
to need to include object.h, when this file is largely unconcerned with
Git objects.
Move remove_or_warn() to entry.{h,c}. The file apply.c still has access
to it, since it already includes entry.h for another reason.
Signed-off-by: Calvin Wan <calvinwan@google.com>
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef ENTRY_H
 | 
						|
#define ENTRY_H
 | 
						|
 | 
						|
#include "convert.h"
 | 
						|
 | 
						|
struct cache_entry;
 | 
						|
struct index_state;
 | 
						|
 | 
						|
struct checkout {
 | 
						|
	struct index_state *istate;
 | 
						|
	const char *base_dir;
 | 
						|
	int base_dir_len;
 | 
						|
	const char *super_prefix;
 | 
						|
	struct delayed_checkout *delayed_checkout;
 | 
						|
	struct checkout_metadata meta;
 | 
						|
	unsigned force:1,
 | 
						|
		 quiet:1,
 | 
						|
		 not_new:1,
 | 
						|
		 clone:1,
 | 
						|
		 refresh_cache:1;
 | 
						|
};
 | 
						|
#define CHECKOUT_INIT { .base_dir = "" }
 | 
						|
 | 
						|
#define TEMPORARY_FILENAME_LENGTH 25
 | 
						|
/*
 | 
						|
 * Write the contents from ce out to the working tree.
 | 
						|
 *
 | 
						|
 * When topath[] is not NULL, instead of writing to the working tree
 | 
						|
 * file named by ce, a temporary file is created by this function and
 | 
						|
 * its name is returned in topath[], which must be able to hold at
 | 
						|
 * least TEMPORARY_FILENAME_LENGTH bytes long.
 | 
						|
 *
 | 
						|
 * With checkout_entry_ca(), callers can optionally pass a preloaded
 | 
						|
 * conv_attrs struct (to avoid reloading it), when ce refers to a
 | 
						|
 * regular file. If ca is NULL, the attributes will be loaded
 | 
						|
 * internally when (and if) needed.
 | 
						|
 */
 | 
						|
int checkout_entry_ca(struct cache_entry *ce, struct conv_attrs *ca,
 | 
						|
		      const struct checkout *state, char *topath,
 | 
						|
		      int *nr_checkouts);
 | 
						|
static inline int checkout_entry(struct cache_entry *ce,
 | 
						|
				 const struct checkout *state, char *topath,
 | 
						|
				 int *nr_checkouts)
 | 
						|
{
 | 
						|
	return checkout_entry_ca(ce, NULL, state, topath, nr_checkouts);
 | 
						|
}
 | 
						|
 | 
						|
void enable_delayed_checkout(struct checkout *state);
 | 
						|
int finish_delayed_checkout(struct checkout *state, int show_progress);
 | 
						|
 | 
						|
/*
 | 
						|
 * Unlink the last component and schedule the leading directories for
 | 
						|
 * removal, such that empty directories get removed.
 | 
						|
 *
 | 
						|
 * The "super_prefix" is either NULL, or the "--super-prefix" passed
 | 
						|
 * down from "read-tree" et al.
 | 
						|
 */
 | 
						|
void unlink_entry(const struct cache_entry *ce, const char *super_prefix);
 | 
						|
 | 
						|
void *read_blob_entry(const struct cache_entry *ce, size_t *size);
 | 
						|
int fstat_checkout_output(int fd, const struct checkout *state, struct stat *st);
 | 
						|
void update_ce_after_write(const struct checkout *state, struct cache_entry *ce,
 | 
						|
			   struct stat *st);
 | 
						|
 | 
						|
/*
 | 
						|
 * Calls the correct function out of {unlink,rmdir}_or_warn based on
 | 
						|
 * the supplied file mode.
 | 
						|
 */
 | 
						|
int remove_or_warn(unsigned int mode, const char *path);
 | 
						|
 | 
						|
#endif /* ENTRY_H */
 |