/* annotated-file.h:
*
* vim:smartindent ts=8:sts=2:sta:et:ai:shiftwidth=2
****************************************************************
* Copyright (C) 2005 Canonical Limited
* Authors: Robert Collins <robert.collins@canonical.com>
*
* See the file "COPYING" for further information about
* the copyright and warranty status of this work.
*/
#ifndef INCLUDE__LIBARCH__ANNOTATED_FILE_H
#define INCLUDE__LIBARCH__ANNOTATED_FILE_H
#include "hackerlab/arrays/ar.h"
#include "libawk/relational.h"
#include "libarch/patch.h"
#include "libarch/file-offset-mapper.h"
/* A annotation builder.
* provides a builder interface for assembling annotation data
* about a revision
*/
typedef struct arch_annotated_file_
{
t_uchar *file_id;
arch_patch_t ** lines;
int unknown_lines;
int max_lines;
/* the mapper should be maintained by the builder when we get to the
* multi-branch code
*/
file_offset_mapper_t mapper;
} arch_annotated_file_t;
/* for derived classes only */
extern void arch_annotated_file_init (arch_annotated_file_t *file, t_uchar const * file_id, int lines);
extern void arch_annotated_file_finalise (arch_annotated_file_t *file);
/* user facing api */
extern arch_annotated_file_t * arch_annotated_file_new (void * context, t_uchar const *file_id, int lines);
extern void arch_annotated_file_note_line (arch_annotated_file_t *file,
int line, arch_patch_t *patch,
int final);
extern void arch_annotated_file_note_subtract (arch_annotated_file_t *file, int line);
#endif /* INCLUDE__LIBARCH__ANNOTATED_FILE_H */
syntax highlighted by Code2HTML, v. 0.9.1