/* make-changeset.h:
*
* vim:smartindent ts=8:sts=2:sta:et:ai:shiftwidth=2
****************************************************************
* Copyright (C) 2003 Tom Lord
*
* See the file "COPYING" for further information about
* the copyright and warranty status of this work.
*/
#ifndef INCLUDE__LIBARCH__MAKE_CHANGESET_H
#define INCLUDE__LIBARCH__MAKE_CHANGESET_H
#include "hackerlab/machine/types.h"
#include "hackerlab/os/stdarg.h"
#include "libawk/relational.h"
#include "libawk/associative.h"
#include "libarch/inv-ids.h"
#include "libarch/changeset-utils.h"
#include "libarch/changeset-report.h"
typedef void (*arch_changeset_report_callback) (void * thunk, char * fmt, va_list ap);
struct arch_make_changeset_report
{
arch_changeset_report_callback callback;
void * thunk;
struct arch_changeset_inventory orig_index;
struct arch_changeset_inventory mod_index;
assoc_table orig_dir_id_of;
assoc_table orig_dir_loc_of;
assoc_table orig_file_id_of;
assoc_table orig_file_loc_of;
assoc_table mod_dir_id_of;
assoc_table mod_dir_loc_of;
assoc_table mod_file_id_of;
assoc_table mod_file_loc_of;
assoc_table orig_container_dir_id_of_dir_id;
assoc_table orig_container_dir_id_of_file_id;
assoc_table mod_container_dir_id_of_dir_id;
assoc_table mod_container_dir_id_of_file_id;
rel_table renamed_dirs;
rel_table renamed_files;
rel_table modified_files;
rel_table perms_changed_files;
rel_table perms_changed_dirs;
rel_table added_files;
rel_table added_dirs;
rel_table removed_files;
rel_table removed_dirs;
};
/* automatically generated __STDC__ prototypes */
extern void arch_free_make_changeset_report_data (struct arch_make_changeset_report * report);
extern void arch_make_changeset (struct arch_make_changeset_report * report,
arch_project_tree_t * orig, arch_project_tree_t * mod,
t_uchar * dest_spec,
enum arch_id_tagging_method method,
enum arch_inventory_category untagged_source_category,
rel_table limits_spec,
assoc_table inode_sig_shortcuts_of_mod,
int link_same,
int escape_classes);
extern void arch_make_empty_changeset (struct arch_make_changeset_report * make_report,
struct arch_changeset_report * report,
t_uchar * changeset_path);
extern void arch_changeset_rewrite_indexes (t_uchar * changeset_path, struct arch_changeset_report * report);
extern int arch_changeset_add_file (t_uchar ** path_ret,
struct arch_changeset_report * report,
struct arch_make_changeset_report * make_report,
t_uchar * changeset_path,
t_uchar * mod_loc,
t_uchar * id);
extern int arch_changeset_add_diffs (struct arch_changeset_report * report,
struct arch_make_changeset_report * make_report,
t_uchar * changeset_path,
t_uchar * orig_loc,
t_uchar * mod_loc,
t_uchar * id);
extern void arch_make_changeset_compute_container_map (assoc_table * out, assoc_table dir_id_of, rel_table index);
#endif /* INCLUDE__LIBARCH__MAKE_CHANGESET_H */
/* tag: Tom Lord Sat Jan 5 15:26:10 2002 (make-changeset.h)
*/
syntax highlighted by Code2HTML, v. 0.9.1