/* changeset-utils.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__CHANGESET_UTILS_H
#define INCLUDE__LIBARCH__CHANGESET_UTILS_H
#include "hackerlab/os/sys/stat.h"
#include "libawk/relational.h"
#include "libarch/inv-ids.h"
#include "libarch/project-tree.h"
typedef struct
{
struct stat stat_buf;
} arch_changeset_inventory_entry_t;
extern arch_changeset_inventory_entry_t * arch_changeset_inventory_entry_new (struct stat const * const);
typedef struct cset_map_incomplete_type * cset_map;
extern void cset_map_insert (cset_map * vtable, t_uchar const * key, arch_changeset_inventory_entry_t * value);
extern arch_changeset_inventory_entry_t * cset_map_find (cset_map vtable, t_uchar const * key);
extern void cset_map_remove (cset_map vtable, t_uchar const * key);
extern void cset_map_free (cset_map table);
AR_TYPEDEF (arch_changeset_inventory_entry_t *, changeset_inventory_entry);
struct arch_changeset_inventory
{
/* [0] == loc; [1] == id (sort by 1)
*/
rel_table dirs;
rel_table files;
// ar_changeset_inventory_entry files;
enum arch_id_tagging_method method;
int escape_classes;
cset_map entries;
};
struct running_inventory_assocs
{
assoc_table dir_loc_of;
assoc_table dir_id_of;
assoc_table file_loc_of;
assoc_table file_id_of;
};
/* automatically generated __STDC__ prototypes */
extern void arch_changeset_inventory (struct arch_changeset_inventory * inv_out,
arch_project_tree_t *tree,
enum arch_id_tagging_method method,
enum arch_inventory_category untagged_source_category,
int escape_classes);
extern void arch_free_changeset_inventory_data (struct arch_changeset_inventory * i);
extern rel_table arch_read_changeset_index (t_uchar * path);
extern rel_table arch_read_changeset_dir_metadata (t_uchar * path);
extern mode_t arch_read_permissions_patch (t_uchar * file);
extern char * no_dot (char *name);
extern void save_patch_for_missing_file (t_uchar * missing_patch_dir, t_uchar * patch_path, t_uchar * mod_loc);
#endif /* INCLUDE__LIBARCH__CHANGESET_UTILS_H */
/* tag: Tom Lord Sat Jan 5 15:26:10 2002 (changeset-utils.h)
*/
syntax highlighted by Code2HTML, v. 0.9.1