1 /* namespace.h: 2 * 3 **************************************************************** 4 * Copyright (C) 2003 Tom Lord 5 * 6 * See the file "COPYING" for further information about 7 * the copyright and warranty status of this work. 8 */ 9 10 #ifndef INCLUDE__LIBARCH__NAMESPACE_H 11 #define INCLUDE__LIBARCH__NAMESPACE_H 12 13 14 #include "hackerlab/machine/types.h" 15 #include "tla/libawk/relational.h" 16 17 18 19 #define arch_archive_re "[-a-zA-Z0-9]+[[:(\\.[-a-zA-Z0-9]*):]]*@[-a-zA-Z0-9.]*[[:(--[-a-zA-Z0-9.]*):]]?" 20 #define arch_base_re "[[:([a-zA-Z][[:([a-zA-Z0-9]*[[:(-[a-zA-Z0-9]+):]]?):]]*):]]" 21 #define arch_vsn_re "[[:([0-9]+\\.[0-9]+):]]" 22 #define arch_lvl_re "[[:(base-0|[[:([[:(patch|version|versionfix:)]]-[[:digit:]]+):]]):]]" 23 24 25 enum arch_valid_package_name_archive 26 { 27 arch_maybe_archive, 28 arch_req_archive, 29 arch_no_archive, 30 }; 31 32 enum arch_valid_package_name_types 33 { 34 arch_req_category, 35 arch_req_package, 36 arch_req_version, 37 arch_req_patch_level, 38 }; 39 40 enum arch_parse_package_name_type 41 { 42 arch_ret_archive, 43 arch_ret_non_archive, 44 arch_ret_category, 45 arch_ret_branch, 46 arch_ret_package, 47 arch_ret_version, 48 arch_ret_patch_level, 49 arch_ret_package_version, 50 }; 51 52 enum arch_patch_level_type 53 { 54 arch_is_base0_level, 55 arch_is_patch_level, 56 arch_is_version_level, 57 arch_is_versionfix_level, 58 }; 59 60 61 62 63 64 /* automatically generated __STDC__ prototypes */ 65 extern int arch_valid_id (const t_uchar * id); 66 extern int arch_valid_archive_name (const t_uchar * name); 67 extern int arch_valid_patch_level_name (const t_uchar * name); 68 extern int arch_valid_config_name (const t_uchar * name); 69 extern int arch_valid_package_name (const t_uchar * name, 70 enum arch_valid_package_name_archive archive_disposition, 71 enum arch_valid_package_name_types type, 72 int tolerant); 73 extern int arch_is_system_package_name (const t_uchar * name); 74 extern t_uchar * arch_parse_package_name (enum arch_parse_package_name_type type, 75 const t_uchar * default_archive, 76 const t_uchar * name); 77 extern t_uchar * arch_fully_qualify (const t_uchar * default_archive, 78 const t_uchar * name); 79 extern int arch_names_cmp (const t_uchar * a, 80 const t_uchar * b); 81 extern void arch_sort_table_by_name_field (int reverse_p, rel_table table, int field); 82 extern void arch_sort_table_by_patch_level_field (int reverse_p, rel_table table, int field); 83 extern int arch_patch_lvl_cmp (const t_uchar * a, 84 const t_uchar * b); 85 extern rel_table arch_pick_archives_by_field (rel_table in, int field); 86 extern rel_table arch_pick_categories_by_field (rel_table in, int field); 87 extern rel_table arch_pick_branches_by_field (rel_table in, int field); 88 extern rel_table arch_pick_versions_by_field (rel_table in, int field); 89 extern rel_table arch_pick_revisions_by_field (rel_table in, int field); 90 extern rel_table arch_pick_patch_levels_by_field (rel_table in, int field); 91 extern enum arch_patch_level_type arch_analyze_patch_level (t_ulong * n, 92 const t_uchar * patch_level); 93 extern t_uchar * arch_form_patch_level (enum arch_patch_level_type type, t_ulong n); 94 #endif /* INCLUDE__LIBARCH__NAMESPACE_H */ 95 96 97 /* tag: Tom Lord Sat Jan 5 15:26:10 2002 (namespace.h) 98 */ 99