/* namespace.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__NAMESPACE_H
#define INCLUDE__LIBARCH__NAMESPACE_H


#include "hackerlab/machine/types.h"
#include "libawk/relational.h"



enum arch_valid_package_name_archive
{
  arch_maybe_archive,
  arch_req_archive,
  arch_no_archive,
};

enum arch_valid_package_name_types
{
  arch_req_category,
  arch_req_package,
  arch_req_version,
  arch_req_patch_level,
};

enum arch_parse_package_name_type
{
  arch_ret_archive,
  arch_ret_non_archive,
  arch_ret_category,
  arch_ret_branch,
  arch_ret_package,
  arch_ret_version,
  arch_ret_patch_level,
  arch_ret_package_version,
  arch_ret_fqversion
};

enum arch_patch_level_type
{
  arch_is_base0_level,
  arch_is_patch_level,
  arch_is_version_level,
  arch_is_versionfix_level,
};





/* automatically generated __STDC__ prototypes */
extern int arch_valid_id (t_uchar * id);
extern int arch_valid_archive_name (t_uchar const * name);
extern int arch_valid_patch_level_name (t_uchar const * const name);
extern int arch_valid_config_name (t_uchar * name);
extern int arch_valid_package_name (t_uchar const * name,
                         enum arch_valid_package_name_archive archive_disposition,
                         enum arch_valid_package_name_types type,
                         int tolerant);
extern int arch_is_system_package_name (t_uchar * name);
extern t_uchar * arch_parse_name (enum arch_parse_package_name_type type,
                         t_uchar const * default_archive,
                         t_uchar const * name);
extern t_uchar * arch_parse_package_name (enum arch_parse_package_name_type type,
                         t_uchar const * default_archive,
                         t_uchar const * name);
extern t_uchar * arch_fully_qualify (t_uchar const * const default_archive, t_uchar const * const name);
extern int arch_names_cmp (t_uchar const * a, t_uchar const * b);
extern void arch_sort_table_by_name_field (int reverse_p, rel_table table, int field);
extern int arch_patch_lvl_cmp (t_uchar * a, t_uchar * b);
extern void arch_sort_table_by_patch_level_field (int reverse_p, rel_table table, int field);
extern rel_table arch_pick_archives_by_field (rel_table in, int field);
extern rel_table arch_pick_categories_by_field (rel_table in, int field);
extern rel_table arch_pick_branches_by_field (rel_table in, int field);
extern rel_table arch_pick_versions_by_field (rel_table in, int field);
extern rel_table arch_pick_revisions_by_field (rel_table in, int field);
extern rel_table arch_pick_patch_levels_by_field (rel_table in, int field);
extern enum arch_patch_level_type arch_analyze_patch_level (t_ulong * n, t_uchar * patch_level);
extern int arch_cmp_revision (t_uchar *a, t_uchar *b);
extern int arch_cmp_patch_level_type (enum arch_patch_level_type a, enum arch_patch_level_type b);
extern t_uchar * arch_form_patch_level (enum arch_patch_level_type type, t_ulong n);
#endif  /* INCLUDE__LIBARCH__NAMESPACE_H */

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


syntax highlighted by Code2HTML, v. 0.9.1