#ifdef __cplusplus
extern "C" {
#endif
int wild_find(char *wild, char *names[], int max, int *tsize);
int wild_find_dir(char *wild, char *names[], int max);
void wild_free(char *names[], int n);

int do_xlist(char *src, char *dst, int(*fn)(char*,char*));
int do_xlist_ex(char *src, char *dst, void *dptr, int(*fn)(char*,char*,void*));
int do_xcopy(char *src, char *dst, int required);
void do_xcopy_rename(char *src, char *xdst, char *oldext, char *newext);

void do_copy_setown(int uid, int gid);

void set_last_copy_error(char *format, ...);
char *last_copy_error(void);
/* RMH: Now returns:
  FALSE if failed to read src or write dst (use last_copy_error to get error message)
  TRUE if succeeded
  -TRUE if file already exists and over_write is FALSE;
*/
int do_copy(char *src, char *xdst, int over_write);
int do_copy_raw(char *src, char *dst, int over_write);
int do_copy_exe_busy(char *src, char *xdst, int over_write);
int do_copy_exe(char *src, char *xdst, int over_write);

int do_wild_delete(char *src);

int delete_dir(char *dir);
int make_dir(char *dir);
#ifdef __cplusplus
}
#endif
