/* cmdutils.h:
*
* vim:smartindent ts=8:sts=2:sta:et:ai:shiftwidth=2
****************************************************************
* Copyright (C) 2004 Tom Lord
*
* See the file "COPYING" for further information about
* the copyright and warranty status of this work.
*/
#ifndef INCLUDE__LIBARCH__CMDUTILS_H
#define INCLUDE__LIBARCH__CMDUTILS_H
#include "libarch/namespace.h"
#include "libarch/archive.h"
#include "libarch/project-tree.h"
#if !defined(__GNUC__)
# undef __attribute__
# define __attribute__(X)
#endif
extern t_uchar * arch_fqrvsn_from_tree_and_input (void * context,
t_uchar * cmd,
t_uchar * string,
t_uchar * dir);
extern void arch_check_for (struct arch_archive * arch,
enum arch_valid_package_name_types type,
t_uchar const * const package);
extern void arch_print_missing (struct arch_archive * arch,
enum arch_valid_package_name_types type,
enum arch_valid_package_name_types supplied_type,
t_uchar * spec);
extern void arch_check_library_for_revision (t_uchar * archive,
t_uchar * revision);
extern t_uchar * arch_determine_fqrevision_next (struct arch_archive ** arch,
t_uchar * default_archive,
t_uchar * revision_spec,
t_uchar const * const cmd_name);
extern t_uchar * arch_determine_fqrevision (struct arch_archive ** arch,
t_uchar * default_archive,
t_uchar * revision_spec,
t_uchar const * const cmd_name);
extern t_uchar * arch_determine_revision (struct arch_archive ** arch,
t_uchar * default_archive,
t_uchar * revision_spec,
t_uchar const * const cmd_name);
extern t_uchar * arch_determine_revision_next (struct arch_archive ** arch,
t_uchar * default_archive,
t_uchar * revision_spec,
t_uchar const * const cmd_name);
extern int arch_check_directory (t_uchar const * const path, int check_write, int soft_failures);
extern void arch_check_uri (t_uchar * uri);
extern void arch_check_revision_local (t_uchar * archive, t_uchar * revision);
extern t_uchar *arch_project_tree_revision (t_uchar const * name, t_uchar const * tree_root);
/* TODO add attribute noreturn here */
extern void arch_cmd_fail (t_uchar const *name, char const * format, ...)
__attribute__((format (printf, 2, 3)));
extern void arch_check_arch (struct arch_archive *arch);
extern t_uchar * safe_tree_version (t_uchar const * const cmd_name);
extern t_uchar * arch_archive_last_level (struct arch_archive * arch, t_uchar *version);
extern t_uchar * arch_next_revision (t_uchar * version, t_uchar * last_level, int seal, int fix, t_uchar const * const cmd_name);
extern t_uchar * arch_version_spec_to_fq_version(t_uchar * version_spec);
extern void arch_assert_in_tree(t_uchar * program_name, t_uchar * dir);
extern arch_project_tree_t * arch_interpret_delta_path (t_uchar ** arch, t_uchar ** rev, t_uchar * scratch_dir, t_uchar * spec, arch_project_tree_t * cache);
int arch_category_exists (struct arch_archive * arch, t_uchar * package);
int arch_package_exists (struct arch_archive * arch, t_uchar * package);
int arch_version_exists (struct arch_archive * arch, t_uchar * version_spec);
t_uchar * arch_any_local_changes (t_uchar * program_name, arch_project_tree_t * tree);
rel_table arch_paths_from_user (void * context, t_uchar const * program_name, arch_project_tree_t * tree, int count, char **first);
#endif /* INCLUDE__LIBARCH__CMDUTILS_H */
/* tag: Tom Lord Fri Jan 9 20:27:20 2004 (cmdutils.h)
*/
syntax highlighted by Code2HTML, v. 0.9.1