/* patch-logs.h:
 *
 ****************************************************************
 * Copyright (C) 2003 Tom Lord
 *
 * See the file "COPYING" for further information about
 * the copyright and warranty status of this work.
 */

#ifndef INCLUDE__LIBARCH__PATCH_LOGS_H
#define INCLUDE__LIBARCH__PATCH_LOGS_H


#include "libawk/relational.h"
#include "libawk/associative.h"



enum arch_log_headers_summary
{
  arch_include_date = 1,
  arch_include_creator = 2,
  arch_include_summary = 4,
  arch_include_foreign_merges = 8,
  arch_include_local_merges = 16,
};

typedef struct arch_patch_log_dir_
{
    t_uchar *fqversion;
    rel_table logs;
} arch_patch_log_dir_t;


/* automatically generated __STDC__ prototypes */
extern t_uchar * arch_make_log_file (t_uchar * tree_root, t_uchar * archive, t_uchar * version);
extern t_uchar * arch_make_log (t_uchar * tree_root, t_uchar * archive, t_uchar * version);
extern t_uchar * arch_auto_log_message (t_uchar * tree_root, t_uchar * archive, t_uchar * version, t_uchar * summary, t_uchar * body);
extern t_uchar * arch_log_for_merge (t_uchar * tree_root, t_uchar * archive, t_uchar * version, int reverse);
extern t_uchar * arch_log_dir (t_uchar const * tree_root, t_uchar const * archive, t_uchar const * version);
extern t_uchar * arch_log_file (t_uchar * tree_root, t_uchar * archive, t_uchar * revision);
extern t_uchar * arch_log_contents (t_uchar * tree_root, t_uchar * archive, t_uchar * revision);
extern int arch_tree_has_log (t_uchar * tree_root, t_uchar * archive, t_uchar * revision);
extern void arch_add_log_version (t_uchar * tree_root, t_uchar * archive, t_uchar * version);
extern void arch_remove_log_version (t_uchar * tree_root, t_uchar * archive, t_uchar * version);
extern int arch_has_patch_log (t_uchar * tree_root, t_uchar * archive, t_uchar * version);
extern rel_table arch_log_versions (t_uchar * tree_root,
                                    t_uchar * only_archive,
                                    t_uchar * only_category,
                                    t_uchar * only_branch,
                                    t_uchar * only_version);
extern t_uchar * arch_highest_patch_level (t_uchar const * tree_root, t_uchar const * archive, t_uchar const * version);
extern t_uchar * arch_latest_logged_version (t_uchar * tree_root, t_uchar * archive, t_uchar * package);
extern rel_table arch_logs (t_uchar const * tree_root, t_uchar const * archive, t_uchar const * version, int full);
extern int arch_valid_log_file (t_uchar * log);
extern void arch_parse_log (rel_table * headers_list, assoc_table * headers, t_uchar ** body, t_uchar * log);
extern void arch_print_headers_summary (int out_fd, int indent_level, assoc_table headers, int summarized_headers);
extern void arch_print_log_list_header (int out_fd, t_uchar * header, rel_table list, int field);
extern void arch_print_log_pairs_header (int out_fd, t_uchar * header, rel_table list, int field_a, int field_b);
extern void arch_copy_to_patch_log (t_uchar * tree_root, t_uchar * archive, t_uchar * revision, t_uchar * log_file);
extern void arch_rename_to_patch_log (t_uchar * tree_root, t_uchar * archive, t_uchar * revision, t_uchar * log_file);
extern rel_table arch_all_logs (t_uchar * tree_root);
extern void arch_patch_log_dirs_init (arch_patch_log_dir_t **a_dirs);
extern void arch_patch_log_dirs_finalise (arch_patch_log_dir_t **a_dirs);

extern t_uchar * arch_tree_latest_revision (t_uchar * base_tree_root);

#endif  /* INCLUDE__LIBARCH__PATCH_LOGS_H */


/* tag: Tom Lord Sat Jan  5 15:26:10 2002 (patch-logs.h)
 */


syntax highlighted by Code2HTML, v. 0.9.1