/* 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) */