#ifndef pconf_H #define pconf_H #include #include #include struct output_ty; /* existence */ #ifndef boolean_DEF #define boolean_DEF enum boolean_ty { boolean_false, boolean_true }; #ifdef CONF_enum_is_int typedef enum boolean_ty boolean_ty; #else typedef int boolean_ty; #endif #endif /* boolean_DEF */ extern type_ty boolean_type; void boolean_write _((struct output_ty *, const char *, boolean_ty)); char *boolean_ename _((boolean_ty)); #ifndef change_cause_DEF #define change_cause_DEF enum change_cause_ty { change_cause_external_bug, change_cause_external_enhancement, change_cause_external_improvement, change_cause_internal_bug, change_cause_internal_enhancement, change_cause_internal_improvement, change_cause_chain }; #ifdef CONF_enum_is_int typedef enum change_cause_ty change_cause_ty; #else typedef int change_cause_ty; #endif #endif /* change_cause_DEF */ extern type_ty change_cause_type; void change_cause_write _((struct output_ty *, const char *, change_cause_ty)); char *change_cause_ename _((change_cause_ty)); #ifndef file_action_DEF #define file_action_DEF enum file_action_ty { file_action_create, file_action_modify, file_action_remove, file_action_insulate }; #ifdef CONF_enum_is_int typedef enum file_action_ty file_action_ty; #else typedef int file_action_ty; #endif #endif /* file_action_DEF */ extern type_ty file_action_type; void file_action_write _((struct output_ty *, const char *, file_action_ty)); char *file_action_ename _((file_action_ty)); #ifndef file_usage_DEF #define file_usage_DEF enum file_usage_ty { file_usage_source, file_usage_build, file_usage_test, file_usage_manual_test }; #ifdef CONF_enum_is_int typedef enum file_usage_ty file_usage_ty; #else typedef int file_usage_ty; #endif #endif /* file_usage_DEF */ extern type_ty file_usage_type; void file_usage_write _((struct output_ty *, const char *, file_usage_ty)); char *file_usage_ename _((file_usage_ty)); #ifndef metric_DEF #define metric_DEF #define metric_name_mask ((unsigned long)0) #define metric_value_mask ((unsigned long)1 << 0) typedef struct metric *metric; struct metric { long reference_count; unsigned long mask; string_ty *name; double value; }; #endif /* metric_DEF */ extern type_ty metric_type; void metric_write _((struct output_ty *, char *, metric)); metric metric_copy _((metric)); #ifndef metric_list_DEF #define metric_list_DEF typedef struct metric_list *metric_list; struct metric_list { size_t length; size_t maximum; metric *list; }; #endif /* metric_list_DEF */ extern type_ty metric_list_type; void metric_list_write _((struct output_ty *, char *, metric_list)); #ifndef history_version_encoding_DEF #define history_version_encoding_DEF enum history_version_encoding_ty { history_version_encoding_none, history_version_encoding_quoted_printable, history_version_encoding_base64 }; #ifdef CONF_enum_is_int typedef enum history_version_encoding_ty history_version_encoding_ty; #else typedef int history_version_encoding_ty; #endif #endif /* history_version_encoding_DEF */ extern type_ty history_version_encoding_type; void history_version_encoding_write _((struct output_ty *, const char *, history_version_encoding_ty)); char *history_version_encoding_ename _((history_version_encoding_ty)); #ifndef history_version_DEF #define history_version_DEF #define history_version_revision_mask ((unsigned long)0) #define history_version_encoding_mask ((unsigned long)1 << 0) typedef struct history_version *history_version; struct history_version { long reference_count; unsigned long mask; string_ty *revision; history_version_encoding_ty encoding; }; #endif /* history_version_DEF */ extern type_ty history_version_type; void history_version_write _((struct output_ty *, char *, history_version)); history_version history_version_copy _((history_version)); #ifndef pconf_integrate_begin_exceptions_list_DEF #define pconf_integrate_begin_exceptions_list_DEF typedef struct pconf_integrate_begin_exceptions_list *pconf_integrate_begin_exceptions_list; struct pconf_integrate_begin_exceptions_list { size_t length; size_t maximum; string_ty **list; }; #endif /* pconf_integrate_begin_exceptions_list_DEF */ extern type_ty pconf_integrate_begin_exceptions_list_type; void pconf_integrate_begin_exceptions_list_write _((struct output_ty *, char *, pconf_integrate_begin_exceptions_list)); #ifndef pconf_symlink_exceptions_list_DEF #define pconf_symlink_exceptions_list_DEF typedef struct pconf_symlink_exceptions_list *pconf_symlink_exceptions_list; struct pconf_symlink_exceptions_list { size_t length; size_t maximum; string_ty **list; }; #endif /* pconf_symlink_exceptions_list_DEF */ extern type_ty pconf_symlink_exceptions_list_type; void pconf_symlink_exceptions_list_write _((struct output_ty *, char *, pconf_symlink_exceptions_list)); #ifndef pconf_history_put_trashes_file_DEF #define pconf_history_put_trashes_file_DEF enum pconf_history_put_trashes_file_ty { pconf_history_put_trashes_file_fatal, pconf_history_put_trashes_file_warn, pconf_history_put_trashes_file_ignore }; #ifdef CONF_enum_is_int typedef enum pconf_history_put_trashes_file_ty pconf_history_put_trashes_file_ty; #else typedef int pconf_history_put_trashes_file_ty; #endif #endif /* pconf_history_put_trashes_file_DEF */ extern type_ty pconf_history_put_trashes_file_type; void pconf_history_put_trashes_file_write _((struct output_ty *, const char *, pconf_history_put_trashes_file_ty)); char *pconf_history_put_trashes_file_ename _((pconf_history_put_trashes_file_ty)); #ifndef pconf_history_content_limitation_DEF #define pconf_history_content_limitation_DEF enum pconf_history_content_limitation_ty { pconf_history_content_limitation_ascii_text, pconf_history_content_limitation_international_text, pconf_history_content_limitation_binary_capable }; #ifdef CONF_enum_is_int typedef enum pconf_history_content_limitation_ty pconf_history_content_limitation_ty; #else typedef int pconf_history_content_limitation_ty; #endif #endif /* pconf_history_content_limitation_DEF */ extern type_ty pconf_history_content_limitation_type; void pconf_history_content_limitation_write _((struct output_ty *, const char *, pconf_history_content_limitation_ty)); char *pconf_history_content_limitation_ename _((pconf_history_content_limitation_ty)); #ifndef pconf_architecture_mode_DEF #define pconf_architecture_mode_DEF enum pconf_architecture_mode_ty { pconf_architecture_mode_required, pconf_architecture_mode_optional, pconf_architecture_mode_forbidden }; #ifdef CONF_enum_is_int typedef enum pconf_architecture_mode_ty pconf_architecture_mode_ty; #else typedef int pconf_architecture_mode_ty; #endif #endif /* pconf_architecture_mode_DEF */ extern type_ty pconf_architecture_mode_type; void pconf_architecture_mode_write _((struct output_ty *, const char *, pconf_architecture_mode_ty)); char *pconf_architecture_mode_ename _((pconf_architecture_mode_ty)); #ifndef pconf_architecture_DEF #define pconf_architecture_DEF #define pconf_architecture_name_mask ((unsigned long)0) #define pconf_architecture_pattern_mask ((unsigned long)0) #define pconf_architecture_mode_mask ((unsigned long)1 << 0) typedef struct pconf_architecture *pconf_architecture; struct pconf_architecture { long reference_count; unsigned long mask; string_ty *name; string_ty *pattern; pconf_architecture_mode_ty mode; }; #endif /* pconf_architecture_DEF */ extern type_ty pconf_architecture_type; void pconf_architecture_write _((struct output_ty *, char *, pconf_architecture)); pconf_architecture pconf_architecture_copy _((pconf_architecture)); #ifndef pconf_architecture_list_DEF #define pconf_architecture_list_DEF typedef struct pconf_architecture_list *pconf_architecture_list; struct pconf_architecture_list { size_t length; size_t maximum; pconf_architecture *list; }; #endif /* pconf_architecture_list_DEF */ extern type_ty pconf_architecture_list_type; void pconf_architecture_list_write _((struct output_ty *, char *, pconf_architecture_list)); #ifndef pconf_file_template_pattern_list_DEF #define pconf_file_template_pattern_list_DEF typedef struct pconf_file_template_pattern_list *pconf_file_template_pattern_list; struct pconf_file_template_pattern_list { size_t length; size_t maximum; string_ty **list; }; #endif /* pconf_file_template_pattern_list_DEF */ extern type_ty pconf_file_template_pattern_list_type; void pconf_file_template_pattern_list_write _((struct output_ty *, char *, pconf_file_template_pattern_list)); #ifndef pconf_file_template_DEF #define pconf_file_template_DEF #define pconf_file_template_pattern_mask ((unsigned long)0) #define pconf_file_template_body_mask ((unsigned long)0) #define pconf_file_template_body_command_mask ((unsigned long)0) typedef struct pconf_file_template *pconf_file_template; struct pconf_file_template { long reference_count; unsigned long mask; pconf_file_template_pattern_list pattern; string_ty *body; string_ty *body_command; }; #endif /* pconf_file_template_DEF */ extern type_ty pconf_file_template_type; void pconf_file_template_write _((struct output_ty *, char *, pconf_file_template)); pconf_file_template pconf_file_template_copy _((pconf_file_template)); #ifndef pconf_file_template_list_DEF #define pconf_file_template_list_DEF typedef struct pconf_file_template_list *pconf_file_template_list; struct pconf_file_template_list { size_t length; size_t maximum; pconf_file_template *list; }; #endif /* pconf_file_template_list_DEF */ extern type_ty pconf_file_template_list_type; void pconf_file_template_list_write _((struct output_ty *, char *, pconf_file_template_list)); #ifndef pconf_whiteout_template_pattern_list_DEF #define pconf_whiteout_template_pattern_list_DEF typedef struct pconf_whiteout_template_pattern_list *pconf_whiteout_template_pattern_list; struct pconf_whiteout_template_pattern_list { size_t length; size_t maximum; string_ty **list; }; #endif /* pconf_whiteout_template_pattern_list_DEF */ extern type_ty pconf_whiteout_template_pattern_list_type; void pconf_whiteout_template_pattern_list_write _((struct output_ty *, char *, pconf_whiteout_template_pattern_list)); #ifndef pconf_whiteout_template_DEF #define pconf_whiteout_template_DEF #define pconf_whiteout_template_pattern_mask ((unsigned long)0) #define pconf_whiteout_template_body_mask ((unsigned long)0) typedef struct pconf_whiteout_template *pconf_whiteout_template; struct pconf_whiteout_template { long reference_count; unsigned long mask; pconf_whiteout_template_pattern_list pattern; string_ty *body; }; #endif /* pconf_whiteout_template_DEF */ extern type_ty pconf_whiteout_template_type; void pconf_whiteout_template_write _((struct output_ty *, char *, pconf_whiteout_template)); pconf_whiteout_template pconf_whiteout_template_copy _((pconf_whiteout_template)); #ifndef pconf_whiteout_template_list_DEF #define pconf_whiteout_template_list_DEF typedef struct pconf_whiteout_template_list *pconf_whiteout_template_list; struct pconf_whiteout_template_list { size_t length; size_t maximum; pconf_whiteout_template *list; }; #endif /* pconf_whiteout_template_list_DEF */ extern type_ty pconf_whiteout_template_list_type; void pconf_whiteout_template_list_write _((struct output_ty *, char *, pconf_whiteout_template_list)); #ifndef pconf_filename_pattern_accept_list_DEF #define pconf_filename_pattern_accept_list_DEF typedef struct pconf_filename_pattern_accept_list *pconf_filename_pattern_accept_list; struct pconf_filename_pattern_accept_list { size_t length; size_t maximum; string_ty **list; }; #endif /* pconf_filename_pattern_accept_list_DEF */ extern type_ty pconf_filename_pattern_accept_list_type; void pconf_filename_pattern_accept_list_write _((struct output_ty *, char *, pconf_filename_pattern_accept_list)); #ifndef pconf_filename_pattern_reject_list_DEF #define pconf_filename_pattern_reject_list_DEF typedef struct pconf_filename_pattern_reject_list *pconf_filename_pattern_reject_list; struct pconf_filename_pattern_reject_list { size_t length; size_t maximum; string_ty **list; }; #endif /* pconf_filename_pattern_reject_list_DEF */ extern type_ty pconf_filename_pattern_reject_list_type; void pconf_filename_pattern_reject_list_write _((struct output_ty *, char *, pconf_filename_pattern_reject_list)); #ifndef pconf_trojan_horse_suspect_list_DEF #define pconf_trojan_horse_suspect_list_DEF typedef struct pconf_trojan_horse_suspect_list *pconf_trojan_horse_suspect_list; struct pconf_trojan_horse_suspect_list { size_t length; size_t maximum; string_ty **list; }; #endif /* pconf_trojan_horse_suspect_list_DEF */ extern type_ty pconf_trojan_horse_suspect_list_type; void pconf_trojan_horse_suspect_list_write _((struct output_ty *, char *, pconf_trojan_horse_suspect_list)); #ifndef pconf_project_specific_DEF #define pconf_project_specific_DEF #define pconf_project_specific_name_mask ((unsigned long)0) #define pconf_project_specific_value_mask ((unsigned long)0) typedef struct pconf_project_specific *pconf_project_specific; struct pconf_project_specific { long reference_count; unsigned long mask; string_ty *name; string_ty *value; }; #endif /* pconf_project_specific_DEF */ extern type_ty pconf_project_specific_type; void pconf_project_specific_write _((struct output_ty *, char *, pconf_project_specific)); pconf_project_specific pconf_project_specific_copy _((pconf_project_specific)); #ifndef pconf_project_specific_list_DEF #define pconf_project_specific_list_DEF typedef struct pconf_project_specific_list *pconf_project_specific_list; struct pconf_project_specific_list { size_t length; size_t maximum; pconf_project_specific *list; }; #endif /* pconf_project_specific_list_DEF */ extern type_ty pconf_project_specific_list_type; void pconf_project_specific_list_write _((struct output_ty *, char *, pconf_project_specific_list)); #ifndef pconf_DEF #define pconf_DEF #define pconf_build_command_mask ((unsigned long)0) #define pconf_development_build_command_mask ((unsigned long)0) #define pconf_build_time_adjust_notify_command_mask ((unsigned long)0) #define pconf_build_covers_all_architectures_mask ((unsigned long)1 << 0) #define pconf_change_file_command_mask ((unsigned long)0) #define pconf_change_file_undo_command_mask ((unsigned long)0) #define pconf_project_file_command_mask ((unsigned long)0) #define pconf_develop_begin_command_mask ((unsigned long)0) #define pconf_integrate_begin_command_mask ((unsigned long)0) #define pconf_link_integration_directory_mask ((unsigned long)1 << 1) #define pconf_integrate_begin_exceptions_mask ((unsigned long)0) #define pconf_create_symlinks_before_build_mask ((unsigned long)1 << 2) #define pconf_create_symlinks_before_integration_build_mask ((unsigned long)1 << 3) #define pconf_remove_symlinks_after_build_mask ((unsigned long)1 << 4) #define pconf_remove_symlinks_after_integration_build_mask ((unsigned long)1 << 5) #define pconf_symlink_exceptions_mask ((unsigned long)0) #define pconf_history_create_command_mask ((unsigned long)0) #define pconf_history_get_command_mask ((unsigned long)0) #define pconf_history_put_command_mask ((unsigned long)0) #define pconf_history_query_command_mask ((unsigned long)0) #define pconf_history_put_trashes_file_mask ((unsigned long)1 << 6) #define pconf_history_content_limitation_mask ((unsigned long)1 << 7) #define pconf_diff_command_mask ((unsigned long)0) #define pconf_diff3_command_mask ((unsigned long)0) #define pconf_merge_command_mask ((unsigned long)0) #define pconf_patch_diff_command_mask ((unsigned long)0) #define pconf_test_command_mask ((unsigned long)0) #define pconf_development_test_command_mask ((unsigned long)0) #define pconf_batch_test_command_mask ((unsigned long)0) #define pconf_architecture_mask ((unsigned long)0) #define pconf_file_template_mask ((unsigned long)0) #define pconf_whiteout_template_mask ((unsigned long)0) #define pconf_maximum_filename_length_mask ((unsigned long)1 << 8) #define pconf_posix_filename_charset_mask ((unsigned long)1 << 9) #define pconf_dos_filename_required_mask ((unsigned long)1 << 10) #define pconf_windows_filename_required_mask ((unsigned long)1 << 11) #define pconf_shell_safe_filenames_mask ((unsigned long)1 << 12) #define pconf_filename_pattern_accept_mask ((unsigned long)0) #define pconf_filename_pattern_reject_mask ((unsigned long)0) #define pconf_new_test_filename_mask ((unsigned long)0) #define pconf_development_directory_template_mask ((unsigned long)0) #define pconf_metrics_filename_pattern_mask ((unsigned long)0) #define pconf_trojan_horse_suspect_mask ((unsigned long)0) #define pconf_project_specific_mask ((unsigned long)0) typedef struct pconf *pconf; struct pconf { long reference_count; unsigned long mask; string_ty *build_command; string_ty *development_build_command; string_ty *build_time_adjust_notify_command; boolean_ty build_covers_all_architectures; string_ty *change_file_command; string_ty *change_file_undo_command; string_ty *project_file_command; string_ty *develop_begin_command; string_ty *integrate_begin_command; boolean_ty link_integration_directory; pconf_integrate_begin_exceptions_list integrate_begin_exceptions; boolean_ty create_symlinks_before_build; boolean_ty create_symlinks_before_integration_build; boolean_ty remove_symlinks_after_build; boolean_ty remove_symlinks_after_integration_build; pconf_symlink_exceptions_list symlink_exceptions; string_ty *history_create_command; string_ty *history_get_command; string_ty *history_put_command; string_ty *history_query_command; pconf_history_put_trashes_file_ty history_put_trashes_file; pconf_history_content_limitation_ty history_content_limitation; string_ty *diff_command; string_ty *diff3_command; string_ty *merge_command; string_ty *patch_diff_command; string_ty *test_command; string_ty *development_test_command; string_ty *batch_test_command; pconf_architecture_list architecture; pconf_file_template_list file_template; pconf_whiteout_template_list whiteout_template; long maximum_filename_length; boolean_ty posix_filename_charset; boolean_ty dos_filename_required; boolean_ty windows_filename_required; boolean_ty shell_safe_filenames; pconf_filename_pattern_accept_list filename_pattern_accept; pconf_filename_pattern_reject_list filename_pattern_reject; string_ty *new_test_filename; string_ty *development_directory_template; string_ty *metrics_filename_pattern; pconf_trojan_horse_suspect_list trojan_horse_suspect; pconf_project_specific_list project_specific; }; #endif /* pconf_DEF */ extern type_ty pconf_type; void pconf_write _((struct output_ty *, pconf)); pconf pconf_copy _((pconf)); void pconf_write_file _((string_ty *filename, pconf value, int comp)); pconf pconf_read_file _((string_ty *filename)); void pconf__rpt_init _((void)); #endif /* pconf_H */